Os desenvolvedores do projeto openSUSE anunciaram a implementação do suporte para builds repetíveis no repositório openSUSE Factory, que adota um modelo de ciclo contínuo de atualização de versões de software (atualizações rolling) e serve como base para a construção da distribuição openSUSE Tumbleweed. A configuração de build do openSUSE Factory agora permite garantir que os arquivos binários distribuídos em pacotes são compilados a partir dos códigos-fonte fornecidos e não contêm alterações ocultas. Por exemplo, qualquer usuário pode verificar pessoalmente que os builds oferecidos coincidem bit a bit com os builds compilados a partir dos códigos-fonte.
Ao formar builds repetíveis, são considerados aspectos como a correspondência exata das dependências, a utilização de um conjunto imutável e versões das ferramentas de build, um conjunto idêntico de opções e configurações padrão, a preservação da ordem de construção dos arquivos (aplicação dos mesmos métodos de ordenação), a desabilitação da adição de informações de serviço não determinísticas pelo compilador, como valores aleatórios, referências a caminhos de arquivos e dados de data e hora da construção.
A capacidade de verificar a identidade de um build binário permite não depender apenas da confiança na infraestrutura de build, cuja compilação ou ferramentas de build podem ser comprometidas, levando à inserção de backdoors ocultos. Por exemplo, builds repetíveis foram utilizados pelos desenvolvedores do openSUSE para eliminar modificações maliciosas que poderiam ter surgido no repositório como resultado de um incidente com a adição de um backdoor no pacote xz (a biblioteca comprometida liblzma, utilizada para descompactar o arquivo de código do GCC, poderia potencialmente ter introduzido alterações no código do GCC que poderiam ser usadas para inserir elementos maliciosos nas aplicações compiladas).
O repositório Factory não é destinado a usuários finais e é utilizado principalmente por desenvolvedores de distribuições, pois não garante estabilidade em nenhum momento. Os pacotes do sistema adicionados ao Factory passam por testes automatizados usando a ferramenta openQA. Após a conclusão dos testes e a verificação do estado consistente das dependências, o conteúdo do repositório é sincronizado com os espelhos várias vezes por semana e o instantâneo do estado é publicado como openSUSE Tumbleweed.
Fonte: opennet.ru
