SEC06-BP02 Sediakan komputasi dari image yang di-hardening - Kerangka Kerja AWS Well-Architected

SEC06-BP02 Sediakan komputasi dari image yang di-hardening

Kurangi peluang untuk akses yang tidak diinginkan ke lingkungan runtime Anda dengan melakukan deployment-nya dari citra yang diperkeras (hardened images). Dapatkan dependensi runtime, seperti citra kontainer dan pustaka aplikasi, hanya dari registri tepercaya dan verifikasikan tanda tangannya. Buat registri privat Anda sendiri untuk menyimpan citra dan pustaka tepercaya yang akan digunakan dalam proses build dan deployment Anda.

Hasil yang diinginkan: Sumber daya komputasi Anda disediakan dari image dasar yang diperkeras. Anda mengambil dependensi eksternal, seperti citra kontainer dan pustaka aplikasi, hanya dari registri tepercaya dan memverifikasi tanda tangannya. Image dan pustaka ini disimpan dalam registri privat untuk dirujuk oleh proses build dan deployment Anda. Anda memindai dan memperbarui citra dan dependensi secara rutin untuk membantu Anda melindungi terhadap kerentanan yang baru ditemukan.

Anti-pola umum:

  • Mendapatkan citra dan pustaka dari registri tepercaya, tetapi tidak memverifikasi tanda tangannya atau melakukan pemindaian kerentanan sebelum menggunakannya.

  • Melakukan pengerasan citra, tetapi tidak mengujinya secara rutin untuk menemukan kerentanan baru atau memperbaruinya ke versi terkini.

  • Menginstal atau tidak menghapus paket-paket perangkat lunak yang tidak diperlukan selama perkiraan siklus hidup citra.

  • Hanya mengandalkan patching untuk menjaga sumber daya komputasi produksi tetap mutakhir. Patching saja masih dapat menyebabkan sumber daya komputasi menyimpang dari standar yang diperkeras dari waktu ke waktu. Patching juga dapat gagal menghapus malware yang mungkin telah diinstal oleh pelaku ancaman selama terjadi peristiwa keamanan.

Manfaat menerapkan praktik terbaik ini: Pengerasan gambar akan membantu mengurangi jumlah jalur yang tersedia di lingkungan runtime Anda yang dapat memungkinkan akses yang tidak diinginkan ke pengguna atau layanan yang tidak sah. Hal ini juga dapat mengurangi cakupan dampak jika terjadi akses yang tidak diinginkan.

Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan: Tinggi

Panduan implementasi

Untuk melakukan pengerasan terhadap sistem Anda, mulailah dari versi sistem operasi, citra kontainer, dan pustaka aplikasi terbaru. Terapkan patch untuk masalah yang diketahui. Minimalkan sistem dengan menghapus aplikasi-aplikasi, layanan, driver perangkat, pengguna default, dan kredensial lainnya yang tidak diperlukan. Lakukan tindakan-tindakan lain yang diperlukan, seperti menonaktifkan port untuk membuat lingkungan yang hanya memiliki sumber daya dan kemampuan yang dibutuhkan oleh beban kerja Anda. Dari acuan dasar ini, Anda kemudian dapat menginstal perangkat lunak, agen, atau proses lain yang Anda butuhkan untuk berbagai tujuan, seperti pemantauan beban kerja atau manajemen kerentanan.

Anda dapat mengurangi beban sistem pengerasan dengan menggunakan panduan yang disediakan sumber tepercaya, seperti Center for Internet Security (CIS) dan Defense Information Systems Agency (DISA) Security Technical Implementation Guides (STIG). Kami menyarankan Anda untuk memulai dengan Amazon Machine Image (AMI) yang diterbitkan oleh AWS atau mitra APN, dan gunakan AWS EC2 Image Builder untuk mengotomatiskan konfigurasi sesuai dengan kombinasi kontrol CIS dan STIG yang sesuai.

Meskipun tersedia image yang di-hardening dan resep EC2 Image Builder yang menerapkan rekomendasi CIS atau STIG DISA, Anda mungkin mendapati bahwa konfigurasinya menyebabkan perangkat lunak Anda tidak dapat berjalan lancar. Dalam situasi ini, Anda dapat memulai dari sebuah citra dasar yang tidak diperkeras, menginstal perangkat lunak Anda, lalu menerapkan kontrol CIS secara bertahap untuk menguji dampak-dampak yang ditimbulkannya. Untuk kontrol CIS apa pun yang menyebabkan perangkat lunak Anda tidak berjalan, lakukan pengujian untuk mengetahui apakah Anda dapat mengimplementasikan rekomendasi pengerasan terperinci di DISA. Lakukan pemantauan terhadap berbagai kontrol CIS dan konfigurasi STIG DISA yang dapat Anda terapkan dengan sukses. Gunakan hal tersebut untuk menentukan metode image hardening Anda di EC2 Image Builder sesuai keperluan.

Untuk beban kerja dalam kontainer, image yang dikeraskan dari Docker tersedia di repositori publik Amazon Elastic Container Registry (ECR). Anda dapat menggunakan EC2 Image Builder untuk melakukan hardening terhadap image kontainer bersama AMI.

Serupa dengan sistem operasi dan image kontainer, Anda dapat memperoleh paket kode (atau pustaka) dari repositori publik, melalui alat seperti pip, npm, Maven, dan NuGet. Kami menyarankan Anda untuk mengelola paket kode dengan mengintegrasikan repositori pribadi, seperti dalam AWS CodeArtifact, dengan repositori publik tepercaya. Integrasi ini dapat menangani pengambilan, penyimpanan, dan pembaruan paket untuk Anda. Proses build aplikasi Anda kemudian dapat memperoleh dan menguji versi terbaru dari paket ini bersama aplikasi Anda, dengan menggunakan teknik-teknik seperti Analisis Komposisi Perangkat Lunak (SCA), Pengujian Keamanan Aplikasi Statis (SAST), dan Pengujian Keamanan Aplikasi Dinamis (DAST).

Untuk beban kerja nirserver yang digunakan AWS Lambda, sederhanakan pengelolaan dependensi paket dengan menggunakan lapisan Lambda. Gunakan lapisan Lambda untuk mengonfigurasi sekumpulan dependensi standar yang ada di berbagai fungsi ke dalam arsip mandiri. Anda dapat membuat dan memelihara lapisan melalui proses build-nya sendiri, sehingga memberikan cara terpusat untuk terus memperbarui fungsi Anda.

Langkah-langkah implementasi

  • Lakukan pengerasan terhadap sistem operasi. Gunakan citra dasar dari sumber tepercaya sebagai landasan untuk membuat AMI yang diperkeras. Gunakan EC2 Image Builder untuk membantu Anda menyesuaikan perangkat lunak yang diinstal pada image Anda.

  • Lakukan pengerasan terhadap sumber daya terkontainerisasi. Konfigurasikan sumber daya terkontainerisasi untuk memenuhi praktik-praktik terbaik keamanan. Saat menggunakan kontainer, terapkan Pemindaian Image ECR di pipeline build Anda dan secara rutin terapkan juga terhadap repositori image Anda untuk mencari CVE di kontainer Anda. 

  • Saat Anda menggunakan implementasi nirserver dengan AWS Lambda, gunakan lapisan Lambda untuk melakukan segregasi terhadap kode fungsi aplikasi dan pustaka dependen bersama. Konfigurasikan penandatanganan kode untuk Lambda untuk memastikan bahwa hanya kode tepercaya yang berjalan dalam fungsi Lambda Anda.

Sumber daya

Praktik-praktik terbaik terkait:

Video terkait:

Contoh terkait: