SEC06-BP04 驗證軟體完整性 - AWS Well-Architected 架構

SEC06-BP04 驗證軟體完整性

使用加密驗證來驗證工作負載所使用之軟體成品 (包括映像) 的完整性。 以加密方式簽署您的軟體,以防範未經授權的變更在您的運算環境內執行。

預期成果:所有成品都是從受信任的來源取得。廠商網站憑證經過驗證。 下載的成品已藉由其簽章以加密方式驗證。自有軟體會由您的運算環境以加密方式簽署和驗證。

常見的反模式:

  • 信任信譽良好的廠商網站來取得軟體成品,但忽略憑證到期通知。 未先確認憑證是否有效,即逕行下載。

  • 驗證廠商網站憑證,但未以加密方式驗證從這些網站下載的成品。

  • 僅依賴摘要或雜湊值來驗證軟體完整性。 雜湊值確定成品的原版未經修改,但未驗證其來源。

  • 即使僅在您自己的部署中使用,也未簽署自有軟體、程式碼或程式庫。 

建立此最佳實務的優勢:驗證您的工作負載所依賴之成品的完整性,有助於防止惡意軟體進入您的運算環境。 簽署您的軟體有助於防範運算環境中發生未經授權執行的情況。  藉由簽署和驗證程式碼來保護您的軟體供應鏈。

未建立此最佳實務時的風險暴露等級:

實作指引

作業系統映像、容器映像和程式碼成品通常在散佈時會提供完整性檢查,例如透過摘要或雜湊值。 這些檢查可讓用戶端運算自有的承載雜湊值並確認其與發佈的雜湊值相同,藉此驗證完整性。 雖然這些檢查有助於驗證承載未遭到竄改,但不會驗證承載來自原始出處 (其來源)。 驗證來源需要使用受信任的授權機構發出的憑證來數位簽署成品。

如果您在工作負載中使用下載的軟體或成品,請確認提供者是否提供了用於驗證數位簽章的公有金鑰。 以下範例說明 AWS 如何提供公有金鑰,以及如何驗證我們發佈的軟體:

請將數位簽章驗證納入您用來取得和強化映像的程序中,如 SEC06-BP02 從強化的映像佈建運算中所述。

您可以使用 AWS Signer 協助您管理簽章驗證,以及您自有軟體和成品的程式碼簽署生命週期。 AWS LambdaAmazon Elastic Container Registry 兩者都提供與 Signer 的整合,可用來驗證程式碼和映像的簽章。 您可以使用「資源」區段中的範例,將 Signer 納入您的持續整合與持續交付 (CI/CD) 管道中,以便自動驗證簽章及自動簽署自有程式碼和映像。

資源

相關文件:

相關範例:

相關工具: