

# SEC06-BP04 Convalida l'integrità del software
<a name="sec_protect_compute_validate_software_integrity"></a>

 Utilizza la verifica crittografica per convalidare l'integrità degli artefatti software (comprese le immagini) utilizzati dal tuo carico di lavoro.  La firma crittografica del software è una tutela contro le modifiche non autorizzate eseguite negli ambienti di calcolo. 

 **Risultato desiderato:** ottenimento di tutti gli artefatti da fonti attendibili. I certificati del sito Web del fornitore sono convalidati.  Gli artefatti scaricati vengono verificati a livello crittografico tramite le relative firme. Il tuo software è firmato e verificato a livello crittografico dai tuoi ambienti di elaborazione. 

 **Anti-pattern comuni:** 
+  Affidarsi a siti Web di fornitori attendibili per ottenere artefatti software, ma ignorare gli avvisi di scadenza dei certificati.  Download senza confermare la validità dei certificati. 
+  Convalida dei certificati dei siti Web dei fornitori, ma senza verificare a livello crittografico gli artefatti scaricati da questi siti Web. 
+  Affidarsi esclusivamente a digest o hash per convalidare l'integrità del software.  Gli hash stabiliscono che gli artefatti non sono stati modificati rispetto alla versione originale, ma non ne convalidano l'origine. 
+  Mancata firma di software, codice o librerie di proprietà, anche se utilizzati solo per le proprie implementazioni.  

 **Vantaggi dell'adozione di questa best practice:** la convalida dell'integrità degli artefatti da cui dipende il carico di lavoro consente di prevenire l'ingresso di malware negli ambienti di calcolo.  La firma del software aiuta a proteggerti dall'esecuzione non autorizzata nei tuoi ambienti di calcolo.   Proteggi la catena di approvvigionamento del software firmando e verificando il codice. 

 **Livello di rischio associato se questa best practice non fosse adottata:** medio 

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Immagini del sistema operativo, immagini dei container e artefatti del codice sono spesso distribuiti con controlli di integrità disponibili, ad esempio attraverso un digest o un hash.  Questi permettono ai client di verificare l'integrità elaborando il proprio hash del payload e verificando che sia uguale a quello pubblicato.  Sebbene questi controlli aiutino a verificare l'assenza di manomissioni del payload, non ne convalidano la provenienza dalla fonte originale (la sua *provenienza*).  La verifica della provenienza richiede un certificato rilasciato da un'autorità attendibile per firmare digitalmente l'artefatto. 

 Se utilizzi un software o artefatti scaricati nel tuo carico di lavoro, controlla se il fornitore offre una chiave pubblica per la verifica della firma digitale.  Ecco alcuni esempi di come AWS fornisce una chiave pubblica e le istruzioni di verifica per il software che pubblichiamo: 
+  [EC2Image Builder: verifica la firma del download di installazione AWS TOE](https://docs.aws.amazon.com/imagebuilder/latest/userguide/awstoe-verify-sig.html) 
+  [AWS Systems Manager: verifica della firma dell'agente SSM](https://docs.aws.amazon.com/systems-manager/latest/userguide/verify-agent-signature.html) 
+  [Amazon CloudWatch: verifica della firma del pacco dell' CloudWatch agente](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/verify-CloudWatch-Agent-Package-Signature.html) 

 Incorpora la verifica della firma digitale nei processi utilizzati per ottenere e rafforzare le immagini, come discusso in [SEC06-BP02](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_protect_compute_hardened_images.html) Provision compute from hardened images. 

 È possibile utilizzare [AWS Signer](https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html) per la gestione della verifica delle firme, nonché del ciclo di vita di firma del codice per il tuo software e i tuoi artefatti.  [AWS Lambda](https://aws.amazon.com/lambda/) e [Amazon Elastic Container Registry](https://aws.amazon.com/ecr/) offrono entrambi integrazioni con Signer per verificare le firme di codice e immagini.  Utilizzando gli esempi nella sezione Risorse, puoi incorporare Signer nelle tue pipeline di integrazione e distribuzione continua (CI/CD) per automatizzare la verifica delle firme e la firma del tuo codice e delle tue immagini. 

## Risorse
<a name="resources"></a>

 **Documenti correlati:** 
+  [Cryptographic Signing for Containers](https://aws.amazon.com/blogs/containers/cryptographic-signing-for-containers/) 
+  [Le migliori pratiche per proteggere la pipeline di creazione delle immagini dei container utilizzando AWS Signer](https://aws.amazon.com/blogs/security/best-practices-to-help-secure-your-container-image-build-pipeline-by-using-aws-signer/) 
+  [Annuncio della firma di Container Image con AWS Signer Amazon EKS](https://aws.amazon.com/blogs/containers/announcing-container-image-signing-with-aws-signer-and-amazon-eks/) 
+  [Configurazione della firma del codice per AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) 
+  [Best practices and advanced patterns for Lambda code signing](https://aws.amazon.com/blogs/security/best-practices-and-advanced-patterns-for-lambda-code-signing/) 
+  [Firma del codice tramite CA AWS Certificate Manager privata e chiavi AWS Key Management Service asimmetriche](https://aws.amazon.com/blogs/security/code-signing-aws-certificate-manager-private-ca-aws-key-management-service-asymmetric-keys/) 

 **Esempi correlati:** 
+  [Automatizza la firma del codice Lambda con Amazon e CodeCatalyst AWS Signer](https://aws.amazon.com/blogs/devops/automate-lambda-code-signing-with-amazon-codecatalyst-and-aws-signer/) 
+  [Firma e convalida OCI degli artefatti con AWS Signer](https://aws.amazon.com/blogs/containers/signing-and-validating-oci-artifacts-with-aws-signer/) 

 **Strumenti correlati:** 
+  [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/) 