Integrasi dua arah AWS Security Hub dengan perangkat lunak Jira - AWS Prescriptive Guidance

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

Integrasi dua arah AWS Security Hub dengan perangkat lunak Jira

Joaquin Rinaudo, Amazon Web Services

Ringkasan

Solusi ini mendukung integrasi dua arah antara AWS Security Hub dan Jira. Dengan menggunakan solusi ini, Anda dapat secara otomatis dan manual membuat dan memperbarui tiket Jira dari temuan Security Hub. Tim keamanan dapat menggunakan integrasi ini untuk memberi tahu tim pengembang tentang temuan keamanan parah yang memerlukan tindakan.

Solusinya memungkinkan Anda untuk:

  • Pilih Security Hub yang mengontrol secara otomatis membuat atau memperbarui tiket di Jira.

  • Di konsol Security Hub, gunakan tindakan kustom Security Hub untuk meningkatkan tiket secara manual di Jira.

  • Secara otomatis menetapkan tiket di Jira berdasarkan Akun AWS tag yang ditentukan dalam. AWS Organizations Jika tag ini tidak didefinisikan, penerima tugas default digunakan.

  • Secara otomatis menekan temuan Security Hub yang ditandai sebagai positif palsu atau risiko yang diterima di Jira.

  • Tutup tiket Jira secara otomatis saat temuan terkait diarsipkan di Security Hub.

  • Buka kembali tiket Jira saat temuan Security Hub terulang kembali.

Alur kerja Jira

Solusinya menggunakan alur kerja Jira khusus yang memungkinkan pengembang mengelola dan mendokumentasikan risiko. Saat masalah bergerak melalui alur kerja, integrasi dua arah memastikan bahwa status tiket Jira dan temuan Security Hub disinkronkan di seluruh alur kerja di kedua layanan. Alur kerja ini adalah turunan dari Alur Kerja SecDevOps Risiko oleh Dinis Cruz, berlisensi di bawah Lisensi Apache versi 2.0. Sebaiknya tambahkan kondisi alur kerja Jira sehingga hanya anggota tim keamanan Anda yang dapat mengubah status tiket.

Diagram alur kerja dari masalah Jira. Anda dapat memperbaiki masalah, menerima risiko, atau menandainya sebagai positif palsu.

Untuk contoh tiket Jira yang dibuat secara otomatis oleh solusi ini, lihat bagian Informasi tambahan dari pola ini.

Prasyarat dan batasan

Prasyarat

  • Jika Anda ingin menerapkan solusi ini di lingkungan multi-akun AWS :

    • Lingkungan multi-akun Anda aktif dan dikelola oleh AWS Organizations.

    • Security Hub diaktifkan di file Anda Akun AWS.

    • Di AWS Organizations, Anda telah menetapkan akun administrator Security Hub.

    • Anda memiliki peran lintas akun AWS Identity and Access Management (IAM) yang memiliki AWSOrganizationsReadOnlyAccess izin ke akun manajemen. AWS Organizations

    • (Opsional) Anda telah menandai Anda Akun AWS denganSecurityContactID. Tag ini digunakan untuk menetapkan tiket Jira ke kontak keamanan yang ditentukan.

  • Jika Anda ingin menerapkan solusi ini dalam satu Akun AWS:

    • Anda memiliki yang aktif Akun AWS.

    • Security Hub diaktifkan di file Anda Akun AWS.

  • Sebuah contoh Pusat Data Jira

    penting

    Solusi ini mendukung penggunaan Jira Cloud. Namun, Jira Cloud tidak mendukung mengimpor alur kerja XHTML, jadi Anda perlu membuat ulang alur kerja secara manual di Jira. Anda dapat menemukan transisi dan status di GitHub repositori.

  • Izin administrator di Jira

  • Salah satu token Jira berikut:

    • Untuk Jira Enterprise, token akses pribadi (PAT). Untuk informasi selengkapnya, lihat Menggunakan Token Akses Pribadi (dukungan Atlassian).

    • Untuk Jira Cloud, token API Jira. Untuk informasi selengkapnya, lihat Mengelola token API (dukungan Atlassian).

Arsitektur

Bagian ini menggambarkan arsitektur solusi dalam berbagai skenario, seperti ketika pengembang dan insinyur keamanan memutuskan untuk menerima risiko atau memutuskan untuk memperbaiki masalah.

Skenario 1: Pengembang mengatasi masalah ini

  1. Security Hub menghasilkan temuan terhadap kontrol keamanan tertentu, seperti yang ada dalam standar Praktik Terbaik Keamanan AWS Dasar.

  2. CloudWatch Acara Amazon yang terkait dengan temuan dan CreateJIRA tindakan memulai AWS Lambda fungsi.

  3. Fungsi Lambda menggunakan file konfigurasi dan GeneratorId bidang temuan untuk mengevaluasi apakah itu harus meningkatkan temuan.

  4. Fungsi Lambda menentukan temuan harus ditingkatkan, ia memperoleh tag SecurityContactID akun dari AWS Organizations dalam akun manajemen. AWS ID ini dikaitkan dengan pengembang dan digunakan sebagai ID penerima hak untuk tiket Jira.

  5. Fungsi Lambda menggunakan kredenal yang disimpan AWS Secrets Manager untuk membuat tiket di Jira. Jira memberi tahu pengembang.

  6. Pengembang membahas temuan keamanan yang mendasarinya dan, di Jira, mengubah status tiket keTEST FIX.

  7. Security Hub memperbarui temuan sebagaiARCHIVED, dan acara baru dihasilkan. Peristiwa ini menyebabkan fungsi Lambda menutup tiket Jira secara otomatis.

Diagram arsitektur yang menunjukkan integrasi Jira dan Security Hub saat pengembang memperbaiki masalah.

Skenario 2: Pengembang memutuskan untuk menerima risiko

  1. Security Hub menghasilkan temuan terhadap kontrol keamanan tertentu, seperti yang ada dalam standar Praktik Terbaik Keamanan AWS Dasar.

  2. CloudWatch Peristiwa yang terkait dengan temuan dan CreateJIRA tindakan memulai fungsi Lambda.

  3. Fungsi Lambda menggunakan file konfigurasi dan GeneratorId bidang temuan untuk mengevaluasi apakah itu harus meningkatkan temuan.

  4. Fungsi Lambda menentukan temuan harus ditingkatkan, ia memperoleh tag SecurityContactID akun dari AWS Organizations dalam akun manajemen. AWS ID ini dikaitkan dengan pengembang dan digunakan sebagai ID penerima hak untuk tiket Jira.

  5. Fungsi Lambda menggunakan kredensi yang disimpan di Secrets Manager untuk membuat tiket di Jira. Jira memberi tahu pengembang.

  6. Pengembang memutuskan untuk menerima risiko dan, di Jira, mengubah status tiket keAWAITING RISK ACCEPTANCE.

  7. Insinyur keamanan meninjau permintaan dan menemukan pembenaran bisnis yang tepat. Insinyur keamanan mengubah status tiket Jira menjadiACCEPTED RISK. Ini menutup tiket Jira.

  8. Acara CloudWatch harian memulai fungsi penyegaran Lambda, yang mengidentifikasi tiket Jira yang ditutup dan memperbarui temuan Security Hub terkait sebagai. SUPPRESSED

Diagram arsitektur yang menunjukkan integrasi Jira dan Security Hub ketika pengembang menerima risiko temuan.

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.

  • Amazon CloudWatch Events membantu Anda memantau peristiwa sistem untuk AWS sumber daya Anda dengan menggunakan aturan untuk mencocokkan peristiwa dan meruteknya ke fungsi atau aliran.

  • 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 Secrets Managermembantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram.

  • 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.

Repositori kode

Kode untuk pola ini tersedia di GitHub, di repositori aws-securityhub-jira-software-integration. Ini termasuk kode sampel dan alur kerja Jira untuk solusi ini.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Impor alur kerja.

Sebagai administrator di Jira, impor issue-workflow.xml file ke instance Pusat Data Jira Anda. Jika Anda menggunakan Jira Cloud, Anda perlu membuat alur kerja sesuai dengan file assets/jira-cloud-transitions.png danassets/jira-cloud-status.png.

File dapat ditemukan di repositori aws-securityhub-jira-software-integration di. GitHub Untuk petunjuk, lihat Menggunakan XMLuntuk membuat alur kerja (dokumentasi Jira).

Administrator Jira

Aktifkan dan tetapkan alur kerja.

Alur kerja tidak aktif sampai Anda menetapkannya ke skema alur kerja. Anda kemudian menetapkan skema alur kerja untuk proyek.

  1. Untuk proyek Anda, pastikan Anda telah mengidentifikasi skema jenis masalah untuk proyek tersebut. Anda dapat membuat jenis masalah baru atau memilih dari yang sudah ada, sepertiBug.

  2. Tetapkan alur kerja yang diimpor ke skema alur kerja sesuai dengan instruksi di Aktifkan alur kerja (dokumentasi JIRA).

  3. Tetapkan skema alur kerja ke proyek sesuai dengan instruksi di Kaitkan skema alur kerja dengan proyek (dokumentasi Jira).

Administrator Jira
TugasDeskripsiKeterampilan yang dibutuhkan

Konfigurasikan parameter solusi.

  1. Di folder conf, bukaparams_prod.shfile.

  2. Berikan nilai untuk parameter berikut:

    • ORG_ACCOUNT_ID— ID akun untuk akun AWS Organizations manajemen Anda. Solusinya membaca tag akun dan menetapkan tiket ke kontak keamanan tertentu yang ditentukan dalam Akun AWS tag tersebut.

    • ORG_ROLE— Nama peran IAM yang digunakan untuk mengakses akun AWS Organizations manajemen. Peran ini harus memiliki OrganizationsReadOnlyAccess izin.

    • EXTERNAL_ID— Parameter opsional jika Anda menggunakan ID eksternal untuk mengasumsikan peran IAM yang ditentukan dalamORG_ROLE. Untuk informasi selengkapnya, lihat Cara menggunakan ID eksternal (dokumentasi IAM).

    • JIRA_DEFAULT_ASSIGNEE— Ini adalah penerima tugas default Jira untuk semua masalah keamanan. Penerima tugas default ini digunakan jika akun tidak ditandai dengan benar atau peran tidak dapat diasumsikan.

    • JIRA_INSTANCE— Alamat HTTPS untuk titik akhir Jira Anda dalam format berikut: team-<team-id>.atlassian.net/

    • JIRA_PROJECT_KEY— Nama kunci proyek Jira yang digunakan untuk membuat tiket, seperti SEC atauTEST. Proyek ini pasti sudah ada di Jira. 

    • ISSUE_TYPE— Nama skema jenis masalah yang ditetapkan untuk proyek di Jira, seperti Bug atauSecurity Issue.

    • REGIONS— Daftar Wilayah AWS kode tempat Anda ingin menerapkan solusi ini, sepertieu-west-1.

  3. Simpan dan tutup file parameter solusi.

Administrator sistem AWS

Identifikasi temuan yang ingin Anda otomatiskan.

  1. Buka konsol Security Hub.

  2. Di panel navigasi Security Hub, pilih Temuan.

  3. Pilih judul temuan.

  4. Pilih ID temuan. Ini menampilkan JSON lengkap untuk temuan.

  5. Di JSON, salin string di GeneratorId lapangan. Nilai ini ada di AWS Security Finding Format (ASFF). Misalnya, aws-foundational-security-best-practices/v/1.0.0/S3.1 sesuai dengan temuan dari kontrol keamanan Pengaturan Akses Publik Blok S3.1 S3 harus diaktifkan.

  6. Ulangi langkah-langkah ini sampai Anda menyalin semua GeneratorID nilai untuk temuan apa pun yang ingin Anda otomatiskan.

Tambahkan temuan ke file konfigurasi.

  1. Dalam src/code, buka file. config.jsonconfig

  2. Rekatkan GeneratorID nilai yang Anda ambil di cerita sebelumnya ke dalam default parameter, dan gunakan koma untuk memisahkan setiap ID.

  3. Simpan dan tutup file konfigurasi .

Contoh kode berikut menunjukkan otomatisasi aws-foundational-security-best-practices/v/1.0.0/SNS.1 dan aws-foundational-security-best-practices/v/1.0.0/S3.1 temuan.

{ "Controls" : { "eu-west-1": [ "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0/rule/1.22" ], "default": [ aws-foundational-security-best-practices/v/1.0.0/SNS.1, aws-foundational-security-best-practices/v/1.0.0/S3.1 ] } }
catatan

Anda dapat memilih untuk mengotomatiskan temuan yang berbeda untuk masing-masing Wilayah AWS. Praktik yang baik untuk membantu mencegah temuan duplikat adalah memilih satu Wilayah untuk mengotomatiskan pembuatan kontrol yang terkait dengan IAM.

Administrator sistem AWS
TugasDeskripsiKeterampilan yang dibutuhkan

Menyebarkan integrasi.

Di terminal baris perintah, masukkan perintah berikut:

./deploy.sh prod
Administrator sistem AWS

Unggah kredensi Jira ke Secrets Manager.

  1. Buka konsol Secrets Manager.

  2. Di bawah Rahasia, pilih Simpan rahasia baru.

  3. Untuk Tipe rahasia, pilih Tipe rahasia lainnya.

  4. Jika Anda menggunakan Jira Enterprise, untuk pasangan kunci/nilai, lakukan hal berikut:

    • Di baris pertama, masukkan auth di kotak kunci, lalu masukkan token_auth di kotak nilai.

    • Tambahkan baris kedua, masukkan token di kotak kunci, lalu masukkan token akses pribadi Anda di kotak nilai.

    Jika Anda menggunakan Jira Cloud, untuk pasangan kunci/nilai, lakukan hal berikut:

    • Di baris pertama, masukkan auth di kotak kunci, lalu masukkan basic_auth di kotak nilai.

    • Tambahkan baris kedua, masukkan token di kotak kunci, lalu masukkan token API Anda di kotak nilai.

    • Tambahkan baris ketiga, masukkan email di kotak kunci, lalu masukkan alamat email Anda di kotak nilai.

  5. Pilih Berikutnya.

  6. Untuk nama RahasiaJira-Token, masukkan, dan kemudian di bagian bawah halaman, pilih Berikutnya.

  7. Pada halaman rotasi Rahasia, tetap Nonaktifkan rotasi otomatis, dan kemudian di bagian bawah halaman, pilih Berikutnya.

  8. Pada halaman Ulasan, tinjau detail rahasia, lalu pilih Store.

Administrator sistem AWS

Buat tindakan kustom Security Hub.

  1. Untuk masing-masing Wilayah AWS, di AWS Command Line Interface (AWS CLI), gunakan create-action-targetperintah untuk membuat tindakan kustom Security Hub bernamaCreateJiraIssue.

    aws securityhub create-action-target --name "CreateJiraIssue" \  --description "Create ticket in JIRA" \  --id "CreateJiraIssue" --region $<aws-region>
  2. Buka konsol Security Hub.

  3. Di panel navigasi Security Hub, pilih Temuan.

  4. Dalam daftar temuan, pilih temuan yang ingin Anda eskalasi.

  5. Di menu Tindakan, pilihCreateJiraIssue.

Administrator sistem AWS

Sumber daya terkait

Informasi tambahan

Contoh tiket Jira

Ketika temuan Security Hub tertentu terjadi, solusi ini secara otomatis membuat tiket Jira. Tiket termasuk informasi berikut:

  • Judul - Judul mengidentifikasi masalah keamanan dalam format berikut:

    AWS Security Issue :: <AWS account ID> :: <Security Hub finding title>
  • Deskripsi — Bagian deskripsi tiket menjelaskan kontrol keamanan yang terkait dengan temuan, menyertakan tautan ke temuan di konsol Security Hub, dan memberikan deskripsi singkat tentang cara menangani masalah keamanan dalam alur kerja Jira.

Berikut ini adalah contoh tiket Jira yang dibuat secara otomatis.

Judul

AWS Masalah Keamanan:: 012345678912:: Lambda.1 Kebijakan fungsi Lambda harus melarang akses publik.

Deskripsi

Apa masalahnya? Kami mendeteksi temuan keamanan dalam Akun AWS 012345678912 yang menjadi tanggung jawab Anda.

Kontrol ini memeriksa apakah kebijakan AWS Lambda fungsi yang dilampirkan pada sumber daya Lambda melarang akses publik. Jika kebijakan fungsi Lambda mengizinkan akses publik, kontrol gagal.

<Link to Security Hub finding>

Apa yang harus saya lakukan dengan tiket?

  • Akses akun dan verifikasi konfigurasi. Akui mengerjakan tiket dengan memindahkannya ke “Dialokasikan untuk Perbaikan”. Setelah diperbaiki, dipindahkan ke perbaikan pengujian sehingga keamanan memvalidasi masalah ditangani.

  • Jika Anda berpikir risiko harus diterima, pindahkan ke “Menunggu Penerimaan Risiko”. Ini akan membutuhkan peninjauan oleh insinyur keamanan.

  • Jika Anda berpikir positif palsu, transisikan ke “Tandai sebagai Positif Palsu”. Ini akan ditinjau oleh insinyur keamanan dan reopened/closed karenanya.