

# SEC06-BP04 Validar a integridade do software
<a name="sec_protect_compute_validate_software_integrity"></a>

 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. 

 **Práticas comuns que devem ser evitadas:** 
+  Confiar em sites de fornecedores de boa reputação 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 de implementar esta prática recomendada:** validar a integridade dos artefatos dos quais sua workload depende ajuda a impedir a entrada de malware em seus ambientes computacionais.  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 risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

 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 verificar se a carga não foi adulterada, elas não validam que a carga 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: 
+  [EC2 Image Builder: verificar a assinatura do download da instalação do AWS TOE](https://docs.aws.amazon.com/imagebuilder/latest/userguide/awstoe-verify-sig.html) 
+  [AWS Systems Manager: verificar a assinatura do SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/verify-agent-signature.html) 
+  [Amazon CloudWatch: verificar a assinatura do pacote do agente do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/verify-CloudWatch-Agent-Package-Signature.html) 

 Incorpore a verificação de assinatura digital aos processos que você usa para obter e reforçar imagens, conforme discutido em [SEC06-BP02 Provisionar a computação com base em imagens reforçadas](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_protect_compute_hardened_images.html). 

 Você pode usar o [AWS Signer](https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html) para ajudar a gerenciar a verificação de assinaturas, bem como seu próprio ciclo de vida de assinatura de código para seu próprio software e artefatos.  Tanto o [AWS Lambda](https://aws.amazon.com/lambda/) quanto o [Amazon Elastic Container Registry](https://aws.amazon.com/ecr/) fornecem integrações com o Signer para verificar as assinaturas do seu 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
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Assinatura criptográfica para contêineres](https://aws.amazon.com/blogs/containers/cryptographic-signing-for-containers/) 
+  [Práticas recomendadas para ajudar a proteger sua imagem de contêiner: crie um pipeline usando AWS Signer](https://aws.amazon.com/blogs/security/best-practices-to-help-secure-your-container-image-build-pipeline-by-using-aws-signer/) 
+  [Assinatura de imagens de contêineres com o AWS Signer e o Amazon EKS](https://aws.amazon.com/blogs/containers/announcing-container-image-signing-with-aws-signer-and-amazon-eks/) 
+  [Configurar a assinatura de código para o AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) 
+  [Práticas recomendadas e padrões avançados para assinatura de código do Lambda](https://aws.amazon.com/blogs/security/best-practices-and-advanced-patterns-for-lambda-code-signing/) 
+  [Assinatura de código usando CA privada do AWS Certificate Manager e chaves assimétricas do AWS Key Management Service](https://aws.amazon.com/blogs/security/code-signing-aws-certificate-manager-private-ca-aws-key-management-service-asymmetric-keys/) 

 **Exemplos relacionados:** 
+  [Automatizar a assinatura de código do Lambda com o Amazon CodeCatalyst e o AWS Signer](https://aws.amazon.com/blogs/devops/automate-lambda-code-signing-with-amazon-codecatalyst-and-aws-signer/) 
+  [Assinar e validar artefatos OCI com o AWS Signer](https://aws.amazon.com/blogs/containers/signing-and-validating-oci-artifacts-with-aws-signer/) 

 **Ferramentas relacionadas:** 
+  [AWS Lambda](https://aws.amazon.com/lambda/) 
+  [AWS Signer](https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html) 
+  [AWS Certificate Manager](https://aws.amazon.com/certificate-manager/) 
+  [AWS Key Management Service](https://aws.amazon.com/kms/) 
+  [AWS CodeArtifact](https://aws.amazon.com/codeartifact/) 