Secara otomatis mengaudit grup AWS keamanan yang memungkinkan akses dari alamat IP publik - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Secara otomatis mengaudit grup AWS keamanan yang memungkinkan akses dari alamat IP publik

Eugene Shifer dan Stephen DiCato, Amazon Web Services

Ringkasan

Sebagai praktik terbaik keamanan, sangat penting untuk meminimalkan paparan AWS sumber daya hanya pada apa yang mutlak diperlukan. Misalnya, server web yang melayani masyarakat umum perlu mengizinkan akses masuk dari internet, tetapi akses ke beban kerja lain harus dibatasi pada jaringan tertentu untuk mengurangi paparan yang tidak perlu. Grup keamanan di Amazon Virtual Private Cloud (Amazon VPC) adalah kontrol yang efektif untuk membantu Anda membatasi akses sumber daya. Namun, mengevaluasi grup keamanan dapat menjadi tugas yang rumit, terutama dalam arsitektur multi-akun. AWS Config aturan dan AWS Security Hub kontrol dapat membantu Anda mengidentifikasi grup keamanan yang mengizinkan akses dari internet publik (0.0.0.0/0) ke protokol komunikasi jaringan tertentu, seperti Secure Shell (SSH), HTTP, HTTPS, dan protokol desktop jarak jauh Windows (RDP). Namun, aturan dan kontrol ini tidak berlaku jika layanan berjalan pada port non-standar atau jika akses dibatasi untuk alamat IP publik tertentu. Misalnya, ini mungkin terjadi ketika layanan web dikaitkan dengan port TCP 8443, bukan port TCP standar 443. Ini mungkin juga terjadi ketika pengembang memiliki akses ke server dari jaringan rumah mereka, seperti untuk tujuan pengujian.

Untuk mengatasinya, Anda dapat menggunakan solusi infrastruktur sebagai kode (IAc) yang disediakan dalam pola ini untuk mengidentifikasi grup keamanan yang memungkinkan akses dari alamat IP non-pribadi (RFC 1918 yang tidak sesuai) ke beban kerja apa pun di atau organisasi Anda. Akun AWS AWS AWS CloudFormationTemplate menyediakan AWS Config aturan khusus, AWS Lambdafungsi, dan izin yang diperlukan. Anda dapat menerapkannya sebagai tumpukan dalam satu akun atau sebagai tumpukan yang disetel di seluruh organisasi, dikelola melalui AWS Organizations.

Prasyarat dan batasan

Prasyarat

  • Aktif Akun AWS

  • Pengalaman menggunakan GitHub

  • Jika Anda menerapkan ke dalam satu Akun AWS:

    • Izin untuk membuat tumpukan CloudFormation

    • AWS Config diatur di akun target

    • (Opsional) Security Hub disiapkan di akun target

  • Jika Anda menerapkan ke dalam AWS organisasi:

    • Izin untuk membuat set CloudFormation tumpukan

    • Security Hub diatur dengan AWS Organizations integrasi

    • AWS Config atur di akun tempat Anda menerapkan solusi ini

    • Menunjuk Akun AWS untuk menjadi administrator yang didelegasikan untuk AWS Config dan Security Hub

Batasan

  • Jika Anda menerapkan ke akun individual yang tidak mengaktifkan Security Hub, Anda dapat menggunakannya AWS Config untuk mengevaluasi temuan.

  • Jika Anda menerapkan ke organisasi yang tidak memiliki administrator yang didelegasikan untuk AWS Config dan Security Hub, Anda harus masuk ke akun anggota individu untuk melihat temuan.

  • Jika Anda menggunakannya AWS Control Tower untuk mengelola dan mengatur akun di organisasi Anda, gunakan IAc dalam pola ini dengan menggunakan Kustomisasi untuk (CFCT). AWS Control Tower Menggunakan CloudFormation konsol akan membuat penyimpangan konfigurasi dari AWS Control Tower pagar pembatas dan mengharuskan Anda mendaftarkan ulang unit organisasi () OUs atau akun terkelola.

  • Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat Layanan AWS berdasarkan Wilayah. Untuk titik akhir tertentu, lihat halaman titik akhir dan kuota Layanan, dan pilih tautan untuk layanan.

Arsitektur

Menyebarkan menjadi individu Akun AWS

Diagram arsitektur berikut menunjukkan penyebaran sumber AWS daya dalam satu Akun AWS. Anda menyediakan sumber daya dengan menggunakan CloudFormation templat langsung melalui CloudFormation konsol. Jika Security Hub diaktifkan, Anda dapat melihat hasilnya di salah satu AWS Config atau Security Hub. Jika Security Hub tidak diaktifkan, Anda dapat melihat hasilnya hanya di AWS Config.

Penerapan template IAC sebagai CloudFormation tumpukan dalam satu akun AWS.

Diagram menunjukkan alur kerja berikut:

  1. Anda membuat CloudFormation tumpukan. Ini menyebarkan fungsi Lambda dan AWS Config aturan. Aturan dan fungsi diatur dengan izin AWS Identity and Access Management (IAM) yang diperlukan untuk mempublikasikan evaluasi sumber daya dan log AWS Config .

  2. AWS Config Aturan ini beroperasi dalam mode evaluasi detektif dan memanggil fungsi Lambda setiap 24 jam.

  3. Fungsi Lambda menilai grup keamanan dan mengirimkan pembaruan ke. AWS Config

  4. Security Hub menerima semua AWS Config temuan.

  5. Anda dapat melihat temuan di Security Hub atau di AWS Config, tergantung pada layanan yang telah Anda siapkan di akun.

Menyebarkan ke dalam organisasi AWS

Diagram berikut menunjukkan penyebaran pola di beberapa akun yang dikelola melalui AWS Organizations dan AWS Control Tower. Anda menyebarkan CloudFormation template melalui CFCT. Hasil penilaian terpusat di Security Hub di akun administrator yang didelegasikan. Bagian AWS CodePipeline alur kerja diagram menunjukkan langkah-langkah latar belakang yang terjadi selama penyebaran CFCT.

Penerapan template IAC sebagai CloudFormation tumpukan yang ditetapkan dalam organisasi AWS.

Diagram menunjukkan alur kerja berikut:

  1. Di akun manajemen, Anda mengunggah file terkompresi (ZIP) dari template IAc ke bucket Amazon Simple Storage Service (Amazon S3) S3 yang digunakan oleh CFCT.

  2. Pipeline CFCT membuka ritsleting file, menjalankan pemeriksaan cfn-nag (GitHub), dan menerapkan template sebagai kumpulan tumpukan. CloudFormation

  3. Bergantung pada konfigurasi yang Anda tentukan dalam file manifes CFCT, CloudFormation StackSets menyebarkan tumpukan ke akun individual atau ditentukan. OUs Ini menyebarkan fungsi Lambda dan aturan di AWS Config akun target. Aturan dan fungsi diatur dengan izin IAM yang diperlukan untuk mempublikasikan evaluasi sumber daya dan log AWS Config .

  4. AWS Config Aturan ini beroperasi dalam mode evaluasi detektif dan memanggil fungsi Lambda setiap 24 jam.

  5. Fungsi Lambda menilai grup keamanan dan mengirimkan pembaruan ke. AWS Config

  6. AWS Config meneruskan semua temuan ke Security Hub.

  7. Temuan Security Hub dikumpulkan dalam akun administrator yang didelegasikan.

  8. Anda dapat melihat temuan gabungan di Security Hub di akun administrator yang didelegasikan.

Alat

Layanan AWS

  • AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS

  • AWS Configmemberikan tampilan rinci tentang sumber daya di Anda Akun AWS dan bagaimana mereka dikonfigurasi. Ini membantu Anda mengidentifikasi bagaimana sumber daya terkait satu sama lain dan bagaimana konfigurasinya telah berubah dari waktu ke waktu. AWS Config Aturan menentukan pengaturan konfigurasi ideal Anda untuk sumber daya, dan AWS Config dapat mengevaluasi apakah AWS sumber daya Anda mematuhi ketentuan dalam aturan.

  • AWS Control Towermembantu Anda mengatur dan mengatur lingkungan AWS multi-akun, mengikuti praktik terbaik preskriptif. Kustomisasi untuk AWS Control Tower (CFCT) membantu Anda menyesuaikan AWS Control Tower landing zone dan tetap selaras dengan praktik terbaik. AWS Kustomisasi untuk solusi ini diimplementasikan melalui CloudFormation templat dan kebijakan kontrol AWS Organizations layanan () SCPs.

  • AWS Lambdaadalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

  • AWS Organizationsadalah layanan manajemen akun yang membantu Anda mengkonsolidasikan beberapa Akun AWS ke dalam organisasi yang Anda buat dan kelola secara terpusat.

  • AWS Security Hubmemberikan pandangan komprehensif tentang keadaan keamanan Anda di AWS. Ini juga membantu Anda memeriksa AWS lingkungan Anda terhadap standar industri keamanan dan praktik terbaik.

Alat-alat lainnya

Repositori kode

Kode untuk pola ini tersedia di repositori GitHub Detect vulnerable security groups.

Praktik terbaik

Kami menyarankan Anda mematuhi praktik terbaik dalam sumber daya berikut:

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Tentukan strategi penyebaran Anda.

Tinjau solusi dan kode untuk menentukan strategi penyebaran untuk AWS lingkungan Anda. Tentukan apakah Anda menerapkan ke dalam satu akun atau AWS organisasi.

Pemilik aplikasi, AWS Umum

Kloning repositori.

Masukkan perintah berikut untuk mengkloning repositori Deteksi grup keamanan rentan:

git clone https://github.com/aws-samples/detect-public-security-groups.git
Pengembang aplikasi, Pemilik aplikasi

Validasi versi Python.

  1. Arahkan ke direktori tingkat atas di repositori kloning:

    cd detect-public-security-groups
  2. Buka Security-Group-Public-Assesment.yaml.

  3. Di SgPublicAccessCheckLambdaFunction sumber daya, konfirmasikan bahwa versi Python kompatibel dengan target Anda. Wilayah AWS Secara default, fungsi ini menggunakan Python 3.12. Untuk informasi selengkapnya, lihat AWS Lambda menambahkan dukungan untuk Python 3.12. Jika perlu, perbarui versi Python.

  4. Simpan dan tutup Security-Group-Public-Assesment.yaml.

Administrator AWS, Pengembang aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Menyebarkan CloudFormation template.

Menyebarkan CloudFormation template ke AWS lingkungan Anda. Lakukan salah satu tindakan berikut:

Pengembang aplikasi, administrator AWS, AWS Umum

Verifikasi penyebaran.

Di CloudFormation konsol, verifikasi bahwa kumpulan tumpukan atau tumpukan telah berhasil diterapkan.

Administrator AWS, Pemilik aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Lihat temuan AWS Config aturan.

Di Security Hub, lakukan hal berikut untuk melihat daftar temuan individu:

  1. Buka konsol Security Hub.

  2. Di panel navigasi, pilih Temuan.

  3. Di kotak Tambahkan filter, tambahkan filter berikut:

    • Status Kepatuhan adalah FAILED

    • Judul adalah SgPublicAccessCheck

  4. Pilih Terapkan.

Di Security Hub, lakukan hal berikut untuk melihat daftar total temuan yang dikelompokkan berdasarkan: Akun AWS

  1. Buka konsol Security Hub.

  2. Pada panel navigasi, silakan pilih Wawasan.

  3. Pilih Buat wawasan.

  4. Untuk memilih atribut pengelompokan untuk wawasan:

    1. Pilih kotak pencarian untuk menampilkan opsi filter.

    2. Pilih Grup berdasarkan.

    3. Pilih AwsAccountId.

    4. Pilih Terapkan.

  5. Di kotak Tambahkan filter, tambahkan filter berikut:

    • Judul adalah SgPublicAccessCheck

    • Status Kepatuhan adalah FAILED

  6. Pilih Buat wawasan.

  7. Masukkan nama Insight, lalu pilih Create insight.

Di AWS Config, untuk melihat daftar temuan, ikuti petunjuk dalam Melihat Informasi Kepatuhan dan Hasil Evaluasi dalam AWS Config dokumentasi.

Administrator AWS, administrator sistem AWS, administrator Cloud

Pemecahan Masalah

IsuSolusi

Pembuatan atau penghapusan set CloudFormation tumpukan gagal.

Ketika AWS Control Tower dikerahkan, itu memberlakukan pagar pembatas yang diperlukan dan mengasumsikan kontrol atas agregator dan aturan. AWS Config Ini termasuk mencegah perubahan langsung melalui CloudFormation. Untuk menerapkan atau menghapus CloudFormation template ini dengan benar, termasuk semua sumber daya terkait, Anda harus menggunakan CFCT.

CFCT gagal menghapus CloudFormation template.

Jika CloudFormation template tetap ada bahkan setelah membuat perubahan yang diperlukan dalam file manifes dan menghapus file template, konfirmasikan bahwa file manifes berisi enable_stack_set_deletion parameter dan nilainya disetel kefalse. Untuk informasi selengkapnya, lihat Menghapus kumpulan tumpukan dalam dokumentasi CFCT.

Sumber daya terkait