SEC06-BP04 Validasikan integritas perangkat lunak - AWS Well-Architected Framework

SEC06-BP04 Validasikan integritas perangkat lunak

Gunakan verifikasi kriptografis untuk memvalidasi integritas artefak perangkat lunak (termasuk image) yang digunakan beban kerja Anda.  Tanda tangani perangkat lunak Anda secara kriptografis sebagai perlindungan terhadap perubahan tidak sah yang berjalan di lingkungan komputasi Anda.

Hasil yang diinginkan: Semua artefak diperoleh dari sumber tepercaya. Sertifikat situs web vendor divalidasi.  Artefak yang diunduh diverifikasi secara kriptografis berdasarkan tanda tangannya. Perangkat lunak Anda sendiri ditandatangani secara kriptografis dan diverifikasi oleh lingkungan komputasi Anda.

Antipola umum:

  • Memercayai situs web vendor terkemuka untuk mendapatkan artefak perangkat lunak, tetapi mengabaikan pemberitahuan tentang sertifikat yang kedaluwarsa.  Melanjutkan pengunduhan tanpa mengonfirmasi bahwa sertifikatnya valid.

  • Memvalidasi sertifikat situs web vendor, tetapi tidak secara kriptografis memverifikasi artefak yang diunduh dari situs web ini.

  • Hanya mengandalkan digest atau hash untuk memvalidasi integritas perangkat lunak.  Hash menetapkan bahwa artefak belum dimodifikasi dari versi aslinya, tetapi tidak memvalidasi sumbernya.

  • Tidak menandatangani perangkat lunak, kode, atau pustaka Anda sendiri, meskipun hanya digunakan dalam deployment Anda sendiri. 

Manfaat menjalankan praktik terbaik ini: Validasi terhadap integritas artefak yang diandalkan oleh beban kerja Anda akan membantu mencegah malware memasuki lingkungan komputasi Anda.  Penandatanganan perangkat lunak Anda membantu melindungi terhadap pengoperasian yang tidak sah di lingkungan komputasi Anda.   Amankan rantai pasokan perangkat lunak Anda dengan menandatangani dan memverifikasi kodenya.

Tingkat risiko yang terjadi jika praktik terbaik ini tidak dijalankan: Sedang

Panduan implementasi

Image sistem operasi, image kontainer, dan artefak kode sering didistribusikan dengan pemeriksaan integritas yang tersedia, seperti melalui digest atau hash.  Hal ini memungkinkan klien memverifikasi integritas dengan melakukan komputasi hash payload mereka sendiri dan memastikan itu sama dengan yang dipublikasikan.  Meskipun pemeriksaan ini membantu memverifikasi bahwa payload belum dimanipulasi, tetapi tidak memvalidasi payload berasal dari sumber aslinya (asal-usulnya).  Verifikasi asal-usul memerlukan sertifikat yang dikeluarkan oleh otoritas tepercaya untuk menandatangani artefaknya secara digital.

Jika Anda menggunakan perangkat lunak atau artefak unduhan dalam beban kerja Anda, periksa apakah penyedianya menyediakan kunci publik untuk verifikasi tanda tangan digital.  Berikut adalah beberapa contoh cara AWS menyediakan kunci publik dan instruksi verifikasi untuk perangkat lunak yang kami publikasikan:

Tambahkan verifikasi tanda tangan digital ke dalam proses yang Anda gunakan untuk memperoleh dan melakukan hardening image, seperti yang dibahas dalam SEC06-BP02 Sediakan komputasi dari image yang di-hardening.

Anda dapat menggunakan AWS Signer untuk membantu mengelola verifikasi tanda tangan, serta siklus hidup penandatanganan kode Anda sendiri untuk perangkat lunak dan artefak Anda sendiri.  AWS Lambda dan Amazon Elastic Container Registry menyediakan integrasi dengan Signer untuk memverifikasi tanda tangan kode dan image Anda.  Menggunakan contoh di bagian Sumber Daya, Anda dapat menerapkan Signer ke dalam pipeline integrasi dan pengiriman berkelanjutan (CI/CD) untuk mengotomatiskan verifikasi tanda tangan serta penandatanganan kode dan image Anda sendiri.

Sumber daya

Dokumen terkait:

Contoh terkait:

Alat terkait: