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
Recursos
Documentos relacionados:
-
Best Practices to help secure your container image build pipeline by using AWS Signer
-
Announcing Container Image Signing with AWS Signer and Amazon EKS
-
Best practices and advanced patterns for Lambda code signing
-
Code signing using AWS Certificate Manager Private CA and AWS Key Management Service asymmetric keys
Exemplos relacionados:
Ferramentas relacionadas: