Está disponível o TUF 1.0, uma estrutura para organizar a entrega segura de atualizações

O lançamento do TUF 1.0 (The Update Framework) foi publicado, fornecendo ferramentas para verificar e baixar atualizações com segurança. O principal objetivo do projeto é proteger o cliente de ataques típicos a repositórios e infraestrutura, inclusive combatendo a promoção por invasores de atualizações fictícias criadas após obter acesso a chaves para geração de assinaturas digitais ou comprometimento do repositório. O projeto é desenvolvido sob os auspícios da Linux Foundation e é utilizado para melhorar a segurança da entrega de atualizações em projetos como Docker, Fuchsia, Automotive Grade Linux, Bottlerocket e PyPI (a inclusão de verificação de download e metadados no PyPI é esperada no futuro próximo). O código de implementação de referência do TUF é escrito em Python e distribuído sob a licença Apache 2.0.

O projeto está desenvolvendo uma série de bibliotecas, formatos de arquivo e utilitários que podem ser facilmente integrados aos sistemas de atualização de aplicativos existentes, fornecendo proteção em caso de comprometimento importante por parte dos desenvolvedores de software. Para utilizar o TUF, basta adicionar os metadados necessários ao repositório e integrar os procedimentos previstos no TUF para download e verificação de arquivos no código do cliente.

A estrutura TUF assume as tarefas de verificação de atualizações, download da atualização e verificação de sua integridade. O sistema de instalação de atualizações não interfere diretamente nos metadados adicionais, cuja verificação e carregamento são realizados pelo TUF. Para integração com aplicativos e sistemas de instalação de atualizações, são oferecidas uma API de baixo nível para acesso a metadados e uma implementação de uma API cliente de alto nível ngclient, pronta para integração com aplicativos.

Entre os ataques que o TUF pode combater estão a substituição de versões antigas sob o pretexto de atualizações, a fim de bloquear a correção de vulnerabilidades de software ou a reversão do usuário para uma versão antiga vulnerável, bem como a promoção de atualizações maliciosas assinadas corretamente usando um software comprometido. chave, ataques DoS a clientes, como encher o disco com atualizações infinitas.

A proteção contra o comprometimento da infraestrutura do fornecedor de software é obtida através da manutenção de registros separados e verificáveis ​​do estado do repositório ou aplicativo. Os metadados verificados pelo TUF incluem informações sobre chaves que podem ser confiáveis, hashes criptográficos para avaliar a integridade dos arquivos, assinaturas digitais adicionais para verificar metadados, informações sobre números de versão e informações sobre o tempo de vida dos registros. As chaves utilizadas para verificação têm vida útil limitada e requerem atualização constante para proteção contra a formação de assinaturas por chaves antigas.

A redução do risco de comprometimento de todo o sistema é conseguida através da utilização de um modelo de confiança partilhada, em que cada parte está limitada apenas à área pela qual é diretamente responsável. O sistema utiliza uma hierarquia de funções com chaves próprias, por exemplo, a função raiz assina chaves para funções responsáveis ​​​​pelos metadados no repositório, dados sobre o tempo de geração de atualizações e assemblies de destino, por sua vez, a função responsável pelos assemblies assina funções associadas à certificação de arquivos entregues.

Está disponível o TUF 1.0, uma estrutura para organizar a entrega segura de atualizações

Para proteger contra comprometimento de chaves, é usado um mecanismo para revogação e substituição imediata de chaves. Cada chave individual contém apenas os poderes mínimos necessários, e as operações de autenticação requerem a utilização de diversas chaves (o vazamento de uma única chave não permite um ataque imediato ao cliente, e para comprometer todo o sistema, as chaves de todos os participantes devem ser capturado). O cliente só pode aceitar arquivos mais recentes que os recebidos anteriormente, e os dados são baixados apenas de acordo com o tamanho especificado nos metadados certificados.

A versão publicada do TUF 1.0.0 oferece uma implementação de referência completamente reescrita e estabilizada da especificação TUF que você pode usar como um exemplo pronto ao criar suas próprias implementações ou para integração em seus projetos. A nova implementação contém significativamente menos código (1400 linhas em vez de 4700), é mais fácil de manter e pode ser facilmente estendida, por exemplo, se for necessário adicionar suporte para pilhas de rede específicas, sistemas de armazenamento ou algoritmos de criptografia.

Fonte: opennet.ru

Adicionar um comentário