SEC06-BP04 Validar a integridade do software - AWS Well-Architected Framework

SEC06-BP04 Validar a integridade do software

Use a verificação criptográfica para validar a integridade dos artefatos de software (incluindo imagens) que a workload usa.  Assine criptograficamente seu software como uma proteção contra alterações não autorizadas executadas em seus ambientes de computação.

Resultado desejado: todos os artefatos são obtidos de fontes confiáveis. Os certificados do site do fornecedor são validados.  Os artefatos baixados são verificados criptograficamente com base na respectiva assinatura. Seu próprio software é assinado e verificado criptograficamente por seus ambientes de computação.

Antipadrões comuns:

  • Confiar em sites de fornecedores confiáveis para obter artefatos de software, mas ignorar os avisos de expiração de certificado.  Prosseguir com os downloads sem confirmar se os certificados são válidos.

  • Validar certificados de sites de fornecedores, mas não verificar criptograficamente os artefatos baixados desses sites.

  • Confiar apenas em resumos ou hashes para validar a integridade do software.  Os hashes estabelecem que os artefatos não foram modificados da versão original, mas não validam a respectiva fonte.

  • Não assinar seu próprio software, código ou biblioteca, mesmo quando usados apenas em suas próprias implantações. 

Benefícios do estabelecimento desta prática recomendada: validar a integridade dos artefatos dos quais a workload depende ajuda a impedir a entrada de malware em seus ambientes de computação.  Assinar seu software ajuda a impedir a execução não autorizada em seus ambientes de computação.   Proteja sua cadeia de suprimentos de software assinando e verificando o código.

Nível de exposição a riscos se esta prática recomendada não for estabelecida: médio

Orientações para a implementação

As imagens do sistema operacional, as imagens de contêiner e os artefatos de código geralmente são distribuídos com verificações de integridade disponíveis, como por meio de um resumo ou hash.  Isso permite que os clientes verifiquem a integridade calculando o hash da carga útil e validando se ele é o mesmo que o publicado.  Embora essas verificações ajudem a conferir se a carga útil não foi adulterada, elas não validam se a carga útil veio da fonte original (sua procedência).  A verificação de procedência exige um certificado emitido por uma autoridade confiável para assinar o artefato digitalmente.

Se você estiver usando um software ou artefatos baixados na workload, verifique se o provedor fornece uma chave pública para verificação de assinatura digital.  Veja alguns exemplos de como a AWS fornece uma chave pública e instruções de verificação para o software que publicamos:

Incorpore a verificação de assinatura digital aos processos que você usa para obter e reforçar imagens, conforme discutido em SEC06-BP02 Provisionar computação por meio de imagens reforçadas.

Você pode usar o AWS Signer para ajudar a gerenciar a verificação de assinaturas, bem como seu próprio ciclo de vida de assinatura de código para seus próprios programas de software e artefatos.  Tanto o AWS Lambda quanto o Amazon Elastic Container Registry fornecem integrações com o Signer para verificar as assinaturas de código e imagens.  Usando os exemplos na seção “Recursos”, você pode incorporar o Signer aos pipelines de integração e entrega contínuas (CI/CD) para automatizar a verificação de assinaturas e a assinatura de código e imagens.

Recursos

Documentos relacionados:

Exemplos relacionados:

Ferramentas relacionadas: