O Update Framework, um meio de verificar e baixar atualizações com segurança

Foi anunciado o lançamento da nova versão 1.0 do The Update Framework, mais conhecido como TUF e que se caracteriza por ser um framework que fornece um meio 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, incluindo o combate à promoção de atualizações falsas por invasores criadas após obter acesso a chaves para gerar assinaturas digitais ou comprometer o repositório.

Sobre o TUF

O projeto desenvolve uma série de bibliotecas, formatos de arquivo e utilitários que pode ser facilmente integrado aos sistemas de atualização de aplicativos existentes, fornecendo proteção em caso de comprometimento de chave por parte dos desenvolvedores de software. Para usar o TUF, basta adicionar os metadados necessários ao repositório e incorporar os procedimentos fornecidos no TUF para upload e verificação de arquivos no código do cliente.

A estrutura do TUF assume a tarefa de verificar uma atualização, baixar oatualizar e verificar sua integridade. O sistema de instalação de atualização não cruza diretamente com metadados adicionais, que são verificados e carregados pelo TUF.

Para integração com aplicativos e sistemas de instalação de atualização, é fornecida uma API de baixo nível para acessar metadados e implementação de uma API de cliente de alto nível ngclient, pronta para integração de aplicativos.

Entre os ataques que o TUF pode combater são as substituição de versão sob o pretexto de atualizações para bloquear correções de vulnerabilidades no software ou reverter o usuário para uma versão vulnerável anterior, bem como a promoção de atualizações maliciosas assinado corretamente usando uma chave comprometida, realizando ataques DoS em clientes, como encher o disco com uma atualização sem fim.

Proteção contra comprometimento da infraestrutura do fornecedor de software é obtido mantendo registros verificáveis ​​separados do estado do repositório ou aplicativo.

Os Metadados verificados pelo TUF incluem informações importantes que podem ser confiáveis, hashes criptográficos para avaliar a integridade do arquivo, assinaturas digitais adicionais para verificar metadados, informações de número de versão e informações de vida útil do registro. As chaves usadas para verificação têm uma vida útil limitada e exigem atualização constante para proteger contra assinaturas com chaves antigas.

A redução do risco de comprometimento de todo o sistema é alcançada por meio do uso de um modelo de split trust, no qual cada parte se limita apenas à área pela qual é diretamente responsável.

O sistema usa uma hierarquia de funções com suas próprias chaves, por exemplo, o papel root assina as chaves dos papéis responsáveis ​​pelos metadados no repositório, dados sobre o tempo de formação das atualizações e builds de destino, por sua vez, o papel responsável pelos builds assina os papéis associados à certificação do arquivos entregues.

Para proteger contra o comprometimento de chaves, usa um mecanismo para revogação e substituição rápida de chaves. Cada chave individual concentra apenas os poderes mínimos necessários, e as operações de notarização exigem o uso de várias chaves (o vazamento de uma única chave não permite um ataque imediato ao cliente e, para comprometer todo o sistema, é necessário capturar as chaves do todos os participantes).

O cliente só pode aceitar arquivos criados posteriormente aos arquivos recebidos anteriormente, e os dados são baixados apenas de acordo com o tamanho especificado nos metadados certificados.

A versão publicada de O TUF 1.0.0 oferece uma implementação de referência completamente reescrita e versão estabilizada da especificação TUF que você pode usar como um exemplo pronto para uso ao criar suas próprias implementações ou integrar 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 estendido, por exemplo, se você precisar adicionar suporte para pilhas de rede específicas, sistemas de armazenamento ou algoritmos de criptografia.

O projeto é desenvolvido sob os auspícios da Linux Foundation e é usado 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 em breve).

Por fim, se estiver interessado em poder saber um pouco mais sobre o assunto, pode consultar os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.