Bagikan melalui


Keamanan DevOps

Keamanan DevOps mengintegrasikan praktik keamanan di seluruh siklus hidup pengembangan perangkat lunak (SDLC)-dari desain dan pengodean awal melalui build, pengujian, dan penyebaran ke produksi. Tidak seperti pendekatan keamanan tradisional yang memperlakukan keamanan sebagai gerbang akhir, keamanan DevOps menyematkan kontrol keamanan, pengujian otomatis, dan pemantauan berkelanjutan ke setiap tahap alur pengembangan. Pendekatan ini mengakui bahwa pengiriman perangkat lunak modern bergantung pada alur CI/CD yang kompleks, dependensi pihak ketiga, infrastruktur sebagai kode, dan penyebaran otomatis—masing-masing memperkenalkan vektor ancaman potensial yang penyerang secara aktif mengeksploitasi. Dengan menerapkan prinsip Zero Trust (asumsikan pelanggaran, verifikasi secara eksplisit) dan strategi pertahanan mendalam, keamanan DevOps memastikan bahwa kode, dependensi, konfigurasi infrastruktur, dan proses alur tetap dapat dipercaya dan tahan terhadap perubahan dari desain melalui produksi. Tanpa keamanan DevOps yang komprehensif, organisasi menghadapi risiko penting termasuk serangan rantai pasokan, paparan kredensial dalam alur, injeksi kode berbahaya, gambar kontainer yang rentan, dan perubahan infrastruktur yang tidak sah yang dapat menetapkan backdoor persisten yang memengaruhi semua konsumen hilir.

Berikut adalah tiga pilar inti domain keamanan DevOps Security.

Amankan desain dan rantai pasokan: Lakukan pemodelan ancaman terstruktur lebih awal. Lindungi rantai pasokan dengan pemindaian dependensi dan lisensi, manajemen kerentanan, dan pembuatan SBOM. Verifikasi bukti dan integritas semua komponen.

Kontrol terkait:

Geser ke kiri kontrol keamanan: Geser ke kiri kontrol keamanan dengan mengintegrasikan SAST, pemindaian rahasia, pemindaian IaC, dan DAST ke dalam alur CI/CD. Mempusatkan manajemen rahasia (misalnya, Key Vault), membatasi otoritas perubahan alur, dan terus memindai dan mengamankan artefak (seperti kontainer dan gambar VM) sebelum penyebaran.

Kontrol terkait:

Memantau dan mengaudit aktivitas DevOps: Kumpulkan dan teruskan audit DevOps dan log keamanan ke platform analitik pusat untuk korelasi dan respons. Mendeteksi perubahan alur yang tidak sah, eskalasi hak istimewa, penerapan anomali, dan eksekusi di luar jam kerja.

Kontrol terkait:

DS-1: Melakukan pemodelan ancaman

Prinsip keamanan

Terapkan pemodelan ancaman sistematis menggunakan metodologi STRIDE selama fase desain untuk mengidentifikasi potensi ancaman keamanan, memprioritaskan risiko, dan menerapkan mitigasi yang sesuai sebelum pengembangan kode dimulai. Pendekatan shift-left ini mengurangi biaya remediasi dan meningkatkan postur keamanan secara keseluruhan.

Risiko yang perlu diminimalkan

Organisasi yang gagal melakukan pemodelan ancaman selama fase desain beroperasi dengan celah kritis yang dieksploitasi oleh pihak yang hendak mengancam secara sistematis. Tanpa analisis ancaman sistematis:

  • Kelemahan arsitektur akhir: Kerentanan desain yang disematkan memerlukan refaktor mahal dalam produksi, dengan biaya remediasi secara dramatis lebih tinggi daripada mengatasi masalah selama fase desain.
  • Permukaan serangan tak dikenal: Vektor ancaman seperti batas kepercayaan yang tidak aman, persyaratan autentikasi yang hilang, atau perlindungan aliran data yang tidak memadai tetap tidak terdokumentasi, memungkinkan penyerang mengeksploitasi kelemahan yang diketahui yang tidak dikenal oleh pembela.
  • Kontrol keamanan tidak mencukup: Kontrol keamanan yang hilang atau tidak memadai (enkripsi, autentikasi, otorisasi, pengelogan audit) dihasilkan dari analisis ancaman yang tidak lengkap, menciptakan celah yang dapat dieksploitasi dalam strategi pertahanan mendalam.
  • Titik buta kepatuhan: Persyaratan peraturan (PCI-DSS, HIPAA, SOX) yang mengamanatkan validasi desain yang aman tidak dapat dipenuhi tanpa model ancaman dan bukti mitigasi yang terdokumen.
  • Akumulasi utang keamanan: Penambahan fitur berkelanjutan tanpa pemodelan ancaman menciptakan utang teknis keamanan yang memperparah, membuat sistem semakin rentan dan sulit diamankan secara retroaktif.

Kurangnya pemodelan ancaman meningkatkan kemungkinan pelanggaran, memperpanjang waktu tinggal, dan mendorong biaya remediasi yang jauh lebih tinggi dibandingkan mitigasi fase desain awal.

MITRE ATT&CK

  • Akses Awal (TA0001): mengeksploitasi aplikasi yang menghadap publik (T1190) memanfaatkan kelemahan arsitektur dalam autentikasi, manajemen sesi, atau validasi input yang akan diidentifikasi oleh pemodelan ancaman.
  • Eskalasi Hak Istimewa (TA0004): mekanisme kontrol elevasi penyalahgunaan (T1548) mengeksploitasi pemisahan hak istimewa yang tidak mencukupi atau pemeriksaan otorisasi yang hilang dalam arsitektur sistem.
  • Defense Evasion (TA0005): pelemahan pertahanan (T1562) mengeksploitasi pencatatan log audit yang hilang, celah pemantauan, atau telemetri keamanan yang tidak mencukupi yang dibangun dalam sistem.

DS-1.1: Menerapkan pemodelan ancaman berbasis STRIDE

Pemodelan ancaman sistematis selama fase desain menyediakan fondasi untuk arsitektur perangkat lunak yang aman dengan mengidentifikasi kerentanan sebelum pengembangan dimulai. Mengatasi masalah keamanan pada tahap desain secara dramatis mengurangi biaya remediasi dan mencegah kelemahan arsitektur tertanam dalam sistem produksi. Identifikasi ancaman dini memastikan kontrol keamanan dibangun ke dalam arsitektur daripada diretrofitkan nanti.

Terapkan pendekatan terstruktur berikut untuk menetapkan pemodelan ancaman:

  • Menetapkan metodologi STRIDE sistematis: Menetapkan pemodelan ancaman sistematis sebagai aktivitas fase desain wajib menggunakan metodologi STRIDE (Spoofing, Perusakan, Penolakan, Pengungkapan Informasi, Penolakan Layanan, Elevasi Hak Istimewa). Mulailah dengan membuat diagram aliran data (DFD) yang memetakan komponen sistem, aliran data, batas kepercayaan, dan dependensi eksternal. Untuk setiap komponen dan aliran data, evaluasi potensi ancaman secara sistematis di enam kategori STRIDE, prioritaskan risiko berdasarkan kemungkinan dan dampak, dan dokumen mitigasi tertentu sebelum pengembangan dimulai.

  • Gunakan alat pemodelan ancaman terstruktur: Gunakan alat pemodelan ancaman terstruktur seperti Alat Pemodelan Ancaman Microsoft untuk mempertahankan konsistensi dan memanfaatkan templat bawaan untuk pola arsitektur umum (aplikasi web, API, layanan mikro, solusi IoT). Alat ini memfasilitasi pembuatan DFD, identifikasi ancaman otomatis berdasarkan jenis komponen dan aliran data, dan menghasilkan rekomendasi mitigasi yang dapat ditindaklanjuti dengan kontrol keamanan terkait. Simpan model ancaman sebagai artefak versi dalam kontrol sumber bersama dokumentasi arsitektur.

  • Integrasikan ke dalam alur kerja pengembangan: Integrasikan output pemodelan ancaman langsung ke alur kerja pengembangan dengan mengekspor ancaman yang diidentifikasi ke item kerja Azure DevOps dengan kepemilikan, prioritas, dan kriteria penerimaan yang jelas. Terapkan gerbang tinjauan arsitektur yang memerlukan model ancaman lengkap sebelum persetujuan desain, dan buat pemeriksaan permintaan pull yang memicu tinjauan model ancaman saat perubahan arsitektur terdeteksi. Ini memastikan analisis ancaman tetap disinkronkan dengan evolusi sistem sepanjang siklus hidup pengembangan.

DS-1.2: Mengotomatiskan integrasi analisis ancaman

Penskalaan pemodelan ancaman di seluruh organisasi besar memerlukan otomatisasi dan kemampuan terdistribusi untuk mencegah tinjauan keamanan menjadi hambatan pengembangan. Alur kerja identifikasi ancaman otomatis yang disematkan dalam inisiasi proyek dan proses permintaan pull memastikan analisis keamanan yang konsisten tanpa intervensi manual untuk setiap proyek. Membangun keahlian keamanan dalam tim pengembangan melalui program pengaktifan menciptakan praktik pemodelan ancaman yang berkelanjutan dan dapat diskalakan.

Terapkan kemampuan otomatisasi dan pengaktifan ini:

  • Menskalakan melalui otomatisasi dan pengaktifan: Menskalakan pemodelan ancaman di seluruh organisasi melalui otomatisasi dan pengaktifan. Sematkan kuesioner keamanan dalam templat inisiasi proyek yang secara otomatis menilai tingkat risiko, menentukan persyaratan pemodelan ancaman, dan menetapkan titik pemeriksaan tinjauan keamanan yang sesuai berdasarkan klasifikasi data, paparan eksternal, dan cakupan peraturan. Mengotomatiskan pemicu tinjauan arsitektur pada alur kerja permintaan penarikan yang mendeteksi perubahan pada batas sistem, alur autentikasi, atau perutean logika penanganan data, serta mengarahkan perubahan tersebut kepada arsitek keamanan untuk validasi model ancaman.

  • Bangun kemampuan terdistribusi dengan juara keamanan: Buat program Security Champions untuk membangun kemampuan pemodelan ancaman terdistribusi dalam tim pengembangan. Latih juara pada metodologi STRIDE, berikan alat dan templat pemodelan ancaman, dan berdayakan mereka untuk memfasilitasi sesi pemodelan ancaman bagi tim mereka. Pengampu keamanan berfungsi sebagai garis depan dalam tinjauan, mengeskalasikan skenario kompleks ke tim keamanan terpusat sambil memungkinkan sebagian besar pemodelan ancaman terjadi tanpa kendala.

Implementasi analisis ancaman otomatis:

  • Penilaian berbasis kuesioner: Kuesioner keamanan standar yang diintegrasikan ke dalam templat Azure DevOps untuk identifikasi ancaman yang konsisten
  • Program juara keamanan: Juara keamanan yang ditunjuk di setiap tim pengembangan yang dilatih tentang fasilitasi pemodelan ancaman
  • Otomatisasi tinjauan arsitektur: Pemeriksaan otomatis dalam pull request untuk pembaruan diagram arsitektur yang memerlukan peninjauan terhadap model ancaman
  • Model ancaman sebagai kode: Definisi model ancaman yang dikontrol versi menggunakan format terstruktur (JSON/YAML) yang memungkinkan analisis otomatis

Contoh implementasi

Organisasi layanan keuangan mengalami pelanggaran data ketika penyerang mengeksploitasi kelemahan otorisasi dalam API pembayaran yang tidak pernah diidentifikasi selama pengembangan, yang mengakibatkan transaksi penipuan yang signifikan dan denda peraturan.

Tantangan: Arsitektur layanan mikro dengan banyak API yang disebarkan tanpa tinjauan keamanan. Tim pengembangan tidak memiliki keahlian keamanan untuk mengidentifikasi ancaman. Masalah keamanan arsitektur hanya ditemukan setelah insiden produksi.

Pendekatan solusi:

  • Pemodelan ancaman STRIDE:Alat Pemodelan Ancaman Microsoft yang diimplementasikan untuk semua layanan mikro dan titik akhir API dengan Diagram Aliran Data memperlihatkan arsitektur dan aliran data sensitif.
  • Program pendukung keamanan: Fasilitator pemodelan ancaman terlatih di setiap tim pengembangan yang memungkinkan keamanan sejak awal desain tanpa memperlambat tim keamanan pusat.
  • Integrasi alur kerja otomatis: Tinjauan model ancaman terintegrasi ke alur kerja permintaan pull Azure DevOps yang memerlukan persetujuan keamanan untuk perubahan arsitektur.

Hasil: Mengidentifikasi banyak masalah keamanan pra-penyebaran yang mencegah potensi pelanggaran. Mengurangi kerentanan keamanan dalam produksi secara substansial. Tinjauan keamanan menambahkan waktu minimal untuk siklus pengembangan.

Tingkat kekritisan

Wajib ada

Pemetaan kontrol

  • NIST SP 800-53 Rev.5: SA-11, SA-15, PL-8, RA-3, RA-5
  • PCI-DSS v4: 6.3.1, 6.3.2, 12.3.1
  • Kontrol CIS v8.1: 14.2, 14.3
  • NIST CSF v2.0: ID.RA-3, PR. IP-2
  • ISO 27001:2022: A.5.12, A.8.25
  • SOC 2: CC3.2, CC7.1

DS-2: Mengamankan rantai pasokan perangkat lunak

Prinsip keamanan

Terapkan kepercayaan nol untuk dependensi dengan memverifikasi bukti, integritas, dan postur keamanan semua komponen pihak ketiga sebelum integrasi. Terus memindai dependensi untuk kerentanan, mempertahankan Daftar Bahan Perangkat Lunak (SBOM) yang komprehensif, dan menerapkan pembaruan keamanan otomatis untuk meminimalkan potensi serangan rantai pasokan.

Risiko yang perlu diminimalkan

Serangan rantai pasokan perangkat lunak menimbulkan ancaman penting karena musuh mengeksploitasi hubungan kepercayaan antara organisasi dan komponen pihak ketiga untuk mencapai dampak luas dengan upaya minimal. Tanpa keamanan rantai pasokan yang komprehensif:

  • Dependensi berbahaya: Penyerang menyuntikkan backdoor ke pustaka sumber terbuka populer (serangan ala SolarWinds) atau membuat paket tiposquatting yang menjalankan kode berbahaya selama penginstalan atau runtime.
  • Pustaka pihak ketiga yang rentan: CVE yang diketahui dalam dependensi (kerentanan Log4Shell, Heartbleed, Struts) tetap tidak ditambal selama berminggu-minggu atau berbulan karena kurangnya visibilitas atas kerentanan ini dan manajemen kerentanan otomatis.
  • Artefak pembangunan yang disusupi: Penyerang mencampuri biner, citra kontainer, atau paket penyebaran yang dikompilasi selama penyimpanan atau transit, menyuntikkan malware yang menghindari peninjauan kode sumber.
  • Serangan kebingungan dependensi: Aktor jahat mengunggah paket ke repositori publik dengan nama yang cocok dengan paket privat internal, mengeksploitasi logika resolusi manajer paket untuk menggantikan kode berbahaya.
  • Risiko dependensi transitif: Kerentanan dalam dependensi tidak langsung (dependensi dependensi) tetap tidak terlihat tanpa analisis pohon dependensi mendalam dan pembuatan SBOM.
  • Kurangnya verifikasi pembuktian: Tidak adanya verifikasi kriptografi memungkinkan serangan penggantian paket di mana paket yang sah diganti dengan versi berbahaya.

Kompromi rantai pasokan memungkinkan dampak yang luas, backdoor persisten di pustaka tepercaya, dan penghindaran tinggi karena tampilannya yang sah.

MITRE ATT&CK

  • Akses Awal (TA0001): penyusupan rantai pasokan (T1195.001) melalui penyusupan dependensi perangkat lunak dan alat pengembangan untuk mendapatkan pijakan awal di lingkungan target, dan hubungan tepercaya (T1199) mengeksploitasi kepercayaan antara organisasi dan vendor perangkat lunak pihak ketiga untuk memberikan pembaruan berbahaya.
  • Eksekusi (TA0002): penerjemah perintah dan skrip (T1059) menjalankan kode berbahaya yang disematkan dalam skrip penginstalan dependensi atau kait pasca-instal.
  • Persistensi (TA0003): mengkompromikan biner perangkat lunak klien (T1554) dengan menyematkan pintu belakang di pustaka yang dikompilasi yang bertahan meskipun aplikasi diperbarui.

DS-2.1: Menerapkan pemindaian dan manajemen dependensi

Manajemen keamanan dependensi komprehensif mencegah serangan rantai pasokan dengan mempertahankan visibilitas ke semua komponen pihak ketiga, terus memantau kerentanan, dan mengotomatiskan proses remediasi. Aplikasi modern mengandalkan ratusan atau ribuan dependensi (langsung dan transitif), membuat penilaian keamanan manual tidak mungkin dan menciptakan permukaan serangan yang luas melalui pustaka yang rentan. Pemindaian dependensi otomatis dengan pemantauan berkelanjutan memastikan organisasi mendeteksi dan memulihkan kerentanan sebelum eksploitasi.

Tetapkan keamanan dependensi berkelanjutan melalui kemampuan inti ini:

  • Menetapkan visibilitas komprehensif dan pembuatan SBOM: Menetapkan manajemen keamanan dependensi berkelanjutan dengan tiga kemampuan inti: visibilitas komprehensif, deteksi kerentanan otomatis, dan remediasi proaktif. Mulailah dengan menghasilkan inventori dependensi lengkap yang memetakan dependensi langsung (secara eksplisit dideklarasikan dalam manifes paket) dan dependensi transitif (dependensi dependensi) di semua repositori. Pertahankan Software Bill of Materials (SBOM) dalam format standar industri (SPDX, CycloneDX) untuk kepatuhan peraturan dan kesiapan respons insiden.

  • Terapkan pemindaian dan remediasi kerentanan otomatis: Terapkan pemindaian kerentanan otomatis yang terus memantau dependensi terhadap National Vulnerability Database (NVD), GitHub Advisory Database, dan saran keamanan khusus bahasa. Konfigurasikan pemberitahuan waktu nyata saat CVE baru diungkapkan memengaruhi tumpukan dependensi Anda, dengan perutean berdasarkan tingkat keparahan ke tim yang sesuai. Aktifkan kemampuan pembaruan keamanan otomatis yang menghasilkan permintaan penarikan dengan peningkatan versi dependensi, termasuk pengujian kompatibilitas dan resolusi konflik penggabungan secara cerdas untuk mengurangi beban perbaikan manual.

  • Integrasikan validasi keamanan ke dalam alur kerja pengembangan: Integrasikan validasi keamanan dependensi langsung ke alur kerja pengembangan melalui tinjauan permintaan pull yang secara otomatis menilai dampak keamanan dari dependensi perubahan-menandai dependensi baru dengan kerentanan yang diketahui, masalah kepatuhan lisensi, atau karakteristik yang mencurigakan (typosquatting, kurangnya reputasi pengelola). Tetapkan gerbang persetujuan untuk perubahan dependensi berisiko tinggi dan terapkan kebijakan yang melarang dependensi dengan kerentanan penting dari penggabungan ke cabang yang dilindungi.

  • Perluas visibilitas ke lingkungan produksi: Perluas visibilitas di luar kode sumber ke lingkungan yang disebarkan menggunakan alat seperti Microsoft Defender for Cloud DevOps Security untuk menghubungkan dependensi kode dengan beban kerja yang berjalan, mengidentifikasi jalur serangan melalui rantai dependensi, dan memprioritaskan remediasi berdasarkan paparan produksi aktual daripada risiko teoritis saja. Alat seperti GitHub Advanced Security menyediakan visualisasi grafik dependensi yang komprehensif, pembaruan otomatis berbasis Dependabot, dan dukungan pola kerentanan kustom untuk ekosistem paket kepemilikan.

Contoh implementasi

Organisasi layanan kesehatan menemukan paket npm berbahaya dalam aplikasi produksi yang menyelundupkan data pasien selama berbulan-bulan. Investigasi mengungkapkan banyak dependensi rentan dengan CVE yang sudah diketahui termasuk kerentanan Log4Shell yang kritis.

Tantangan: Ribuan dependensi di ratusan repositori tanpa visibilitas ke dalam kerentanan atau paket berbahaya. Tinjauan ketergantungan manual menghabiskan beberapa minggu untuk setiap aplikasi. Audit peraturan mengidentifikasi kesenjangan rantai pasokan penting.

Pendekatan solusi:

  • Manajemen kerentanan otomatis: Mengaktifkan GitHub Advanced Security dengan dependensi pemindaian Dependabot dan secara otomatis membuat permintaan pull untuk pembaruan keamanan.
  • Transparansi rantai pasokan: Alat Microsoft SBOM yang diimplementasikan menghasilkan Tagihan Perangkat Lunak Bahan dalam format SPDX untuk kepatuhan terhadap peraturan dan respons insiden.
  • Verifikasi paket: Mengonfigurasi Azure Artifacts dengan verifikasi tanda tangan dan penyematan dependensi untuk mencegah serangan kebingungan dan penggantian paket yang tidak sah.
  • Pemantauan keamanan DevOps: Menyebarkan Microsoft Defender for Cloud DevOps Security untuk keterlacakan kode-ke-cloud.

Hasil: Dependensi rentan ekstensif yang terdeteksi dan diperbaiki dengan cepat. Mencegah beberapa insiden paket berbahaya melalui verifikasi otomatis. Mencapai kepatuhan terhadap peraturan dengan dokumentasi SBOM yang komprehensif.

Tingkat kekritisan

Wajib ada

Pemetaan kontrol

  • NIST SP 800-53 Rev.5: SR-3, SR-4, SR-6, SA-12, SA-15(9), RA-5
  • PCI-DSS v4: 6.2.4, 6.3.2, 6.3.3
  • Kontrol CIS v8.1: 16.1, 16.2, 16.11
  • NIST CSF v2.0: ID.SC-2, ID.SC-4, DE.CM-8
  • ISO 27001:2022: A.5.19, A.5.22, A.5.23
  • SOC 2: CC3.2, CC8.1

DS-3: Mengamankan infrastruktur DevOps

Prinsip keamanan

Terapkan pertahanan secara mendalam untuk membangun infrastruktur melalui manajemen rahasia yang komprehensif, kontrol akses alur dengan gerbang persetujuan, konfigurasi agen build yang aman, dan pemantauan berkelanjutan. Hilangkan kredensial yang dikodekan secara permanen dan terapkan akses hak istimewa paling sedikit untuk melindungi integritas proses pengembangan dan penyebaran perangkat lunak.

Risiko yang perlu diminimalkan

Infrastruktur DevOps yang tidak aman menciptakan kerentanan kritis yang dieksploitasi oleh penyerang untuk menyusupi seluruh rantai distribusi perangkat lunak. Tanpa keamanan infrastruktur yang komprehensif:

  • Alur CI/CD yang disusupi: Penyerang mendapatkan akses untuk membangun alur melalui kredensial yang dicuri, kerentanan yang dieksploitasi, atau akses orang dalam, memungkinkan injeksi kode, perusakan artefak, atau manipulasi penyebaran yang memengaruhi semua konsumen hilir.
  • Rahasia yang diekspos dalam log build dan artefak: Kredensial yang dikodekan secara tetap, kunci API, sertifikat, dan string koneksi bocor melalui log pipeline, pesan kesalahan, atau artefak yang dikompilasi, memberikan penyerang akses langsung ke lingkungan produksi.
  • Modifikasi alur yang tidak sah: Kurangnya kontrol perubahan dan alur kerja persetujuan memungkinkan aktor jahat untuk memodifikasi definisi alur, menyuntikkan langkah-langkah build berbahaya, atau mengubah konfigurasi penyebaran tanpa deteksi.
  • Kontrol akses tidak mencukup: Penetapan peran yang terlalu permisif dan kurangnya pemisahan tugas memungkinkan gerakan lateral, eskalasi hak istimewa, dan pembentukan akses persisten dalam infrastruktur DevOps.
  • Agen build yang tidak aman: Agen build yang tidak dipaketkan, salah dikonfigurasi, atau disusupi memberi penyerang akses persisten ke lingkungan build dan titik pivot potensial ke dalam jaringan produksi.
  • Jejak audit hilang: Pengelogan dan pemantauan aktivitas DevOps yang tidak memadai mencegah deteksi akses yang tidak sah, modifikasi mencurigakan, atau ancaman orang dalam.

Kompromi infrastruktur memungkinkan penyerang menyuntikkan kode di sumber, melewati alur tepercaya, dan memengaruhi setiap aplikasi hilir.

MITRE ATT&CK

  • Akses Awal (TA0001): akun yang valid (T1078) menggunakan kredensial yang dicuri atau rahasia perwakilan layanan untuk mengakses platform dan alur DevOps.
  • Persistence (TA0003): manipulasi akun (T1098) yang membuat perwakilan layanan backdoor, token akses pribadi, atau kunci SSH untuk akses yang dipertahankan.
  • Credential Access (TA0006): kredensial tidak aman (T1552.001) memanen rahasia dari log alur, variabel lingkungan, atau file konfigurasi.
  • Defense Evasion (TA0005): menghalangi pertahanan (T1562) menonaktifkan tahapan pemindaian keamanan, pencatatan audit, atau gerbang persetujuan dalam definisi alur.

DS-3.1: Menerapkan Pengelolaan Rahasia untuk Pipeline

Manajemen rahasia terpusat menghilangkan paparan kredensial dalam alur DevOps dengan menghapus rahasia yang dikodekan secara permanen dari kode, file konfigurasi, dan definisi alur. Kredensial yang disematkan dalam YAML pipeline, variabel lingkungan, atau repositori sumber merupakan vektor serangan utama untuk kompromi keamanan pipeline, memungkinkan penyerang yang mendapatkan akses ke repositori atau log untuk mengekstrak kredensial untuk produksi. Menerapkan penyimpanan rahasia yang dilindungi secara kriptografis dengan pengambilan dinamis dan pola akses just-in-time mencegah pencurian kredensial sambil mempertahankan efisiensi operasional.

Konfigurasikan manajemen rahasia dengan kontrol keamanan ini:

  • Hilangkan kredensial yang dikodekan secara permanen dengan penyimpanan terpusat: Hilangkan kredensial yang dikodekan secara permanen dari definisi alur dan kode sumber dengan memusatkan semua rahasia dalam infrastruktur manajemen rahasia khusus dengan kontrol akses kriptografi dan jejak audit yang komprehensif. Tetapkan prinsip bahwa rahasia tidak boleh disimpan dalam file YAML alur, variabel lingkungan yang terlihat dalam log, atau file konfigurasi di repositori-ini adalah vektor utama untuk paparan kredensial di lingkungan DevOps.

  • Konfigurasikan pengambilan rahasia dinamis dengan identitas terkelola: Terapkan penyimpanan rahasia terpusat menggunakan solusi seperti Azure Key Vault yang menyediakan penyimpanan rahasia terenkripsi, kebijakan akses terperinci, rotasi rahasia otomatis, dan pengelogan audit komprehensif. Konfigurasikan pipelines untuk mengambil data rahasia secara dinamis pada waktu eksekusi dengan koneksi layanan aman daripada menyematkannya dalam definisi pipelines. Gunakan identitas terkelola atau federasi identitas tugas untuk mengautentikasi akses alur ke penyimpanan rahasia, menghilangkan kebutuhan akan kredensial principal layanan jangka panjang yang menjadi target pencurian.

  • Menerapkan akses just-in-time dengan gerbang persetujuan: Terapkan pola akses rahasia just-in-time di mana rahasia hanya diambil saat diperlukan, dengan pencabutan otomatis setelah penyelesaian alur untuk meminimalkan paparan masa pakai kredensial. Terapkan pembatasan akses terikat waktu dan memerlukan otorisasi multi-orang (gerbang persetujuan) untuk akses alur ke rahasia produksi, memastikan tidak ada satu akun yang disusupi yang dapat mengakses kredensial sensitif tanpa verifikasi tambahan.

  • Membuat kontrol akses infrastruktur berlapis: Menetapkan kontrol akses berlapis untuk infrastruktur DevOps: membatasi hak modifikasi alur untuk personel yang ditinjau keamanan, menerapkan izin khusus lingkungan yang memerlukan persetujuan untuk penyebaran produksi, menerapkan pembatasan koneksi layanan tingkat repositori yang mencegah alur mengakses rahasia di luar cakupan yang dimaksudkan, dan menyebarkan agen build yang dihost sendiri yang diperkeras dengan isolasi jaringan untuk beban kerja sensitif. Integrasikan pemindaian keamanan infrastruktur sebagai kode ke dalam alur untuk mencegah penyebaran sumber daya yang salah dikonfigurasi yang dapat mengekspos rahasia atau membuat jalur akses yang tidak sah.

Contoh implementasi

Perusahaan ritel mengalami pelanggaran keamanan ketika penyerang menggunakan kredensial prinsipal layanan curian yang ditemukan dalam log pipeline untuk mengakses database produksi, membocorkan jutaan catatan pelanggan.

Tantangan: String koneksi database dan kunci API yang dikodekan secara permanen dalam variabel alur. Izin alur yang terlalu permisif memungkinkan pengembang untuk menyebarkan ke produksi. Kompromi agen build memberi akses berkelanjutan ke infrastruktur.

Pendekatan solusi:

  • Manajemen rahasia terpusat: Menerapkan integrasi Azure Key Vault yang menghilangkan rahasia yang dikodekan secara permanen dari alur. Autentikasi identitas terkelola yang dikonfigurasi menghapus risiko paparan kredensial.
  • Kontrol akses pipeline: Menetapkan gerbang persetujuan dan izin khusus lingkungan menggunakan Lingkungan Azure DevOps yang memerlukan persetujuan tim keamanan untuk penggelaran produksi.
  • Agen build yang sudah diperkuat: Menggunakan agen yang di-host sendiri dengan pengerasan keamanan dan isolasi jaringan untuk beban kerja sensitif yang memproses data yang diatur.
  • Pemindaian keamanan infrastruktur: Validasi keamanan terintegrasi untuk templat ARM dan konfigurasi Terraform untuk mencegah penyebaran konfigurasi yang salah.

Hasil: Menghilangkan data rahasia dari log pipeline yang mencegah pencurian kredensial. Menghilangkan penyebaran produksi yang tidak sah. Deteksi dan blokir salah konfigurasi infrastruktur sebelum penyebaran.

Tingkat kekritisan

Wajib ada

Pemetaan kontrol

  • NIST SP 800-53 Rev.5: AC-2, AC-3, AC-6, SC-12, SC-13, AU-2, AU-6
  • PCI-DSS v4: 8.3.2, 8.6.1, 8.6.3, 12.3.3
  • Kontrol CIS v8.1: 4.1, 4.7, 6.1, 6.5
  • NIST CSF v2.0: PR. AC-4, PR. DS-5, DE. CM-7
  • ISO 27001:2022: A.5.15, A.5.16, A.8.3
  • SOC 2: CC6.1, CC6.6, CC6.7

DS-4: Mengintegrasikan Pengujian Keamanan Aplikasi Statis (SAST)

Prinsip keamanan

Terapkan pengujian keamanan otomatis yang komprehensif melalui beberapa pemindai Pengujian Keamanan Aplikasi Statis (SAST) khusus yang terintegrasi ke dalam setiap proses build. Gunakan cakupan multi-pemindai untuk deteksi komprehensif, terapkan pemindaian rahasia dengan perlindungan push, dan sebarkan analisis kode semantik untuk mengidentifikasi dan memblokir kerentanan sebelum mencapai produksi.

Risiko yang perlu diminimalkan

Kerentanan tingkat kode yang lolos dari deteksi selama pengembangan menciptakan kelemahan keamanan persisten yang dieksploitasi secara sistematis oleh pihak lawan. Tanpa integrasi SAST yang komprehensif:

  • Kerentanan injeksi: Injeksi SQL, scripting lintas situs (XSS), injeksi perintah, dan kelemahan injeksi LDAP memungkinkan penyerang memanipulasi logika aplikasi, mengekstrak data sensitif, atau menjalankan kode arbitrer.
  • Kredensial yang dikodekan secara permanen: Pengembang secara tidak sengaja menerapkan kata sandi, kunci API, sertifikat, dan string koneksi ke repositori kode sumber, memberi penyerang akses langsung ke sistem produksi dan data.
  • Implementasi kriptografi yang tidak aman: Algoritma enkripsi yang lemah (DES, MD5), kunci enkripsi yang dikodekan secara permanen, vektor inisialisasi yang tidak tepat, atau panjang kunci yang tidak mencukupi membahayakan kerahasiaan dan integritas data.
  • Luapan buffer dan kerusakan memori: Operasi memori yang tidak aman dalam aplikasi C/C++ memungkinkan eksekusi kode arbitrer, eskalasi hak istimewa, dan penolakan serangan layanan.
  • Kelemahan logika bisnis: Bypass autentikasi, kesenjangan otorisasi, kondisi perlombaan, dan validasi input yang tidak mencukupi memungkinkan eskalasi hak istimewa, penipuan, dan akses yang tidak sah.
  • Kesalahan konfigurasi Infrastruktur sebagai Kode (IaC): Manifes Terraform, templat ARM, atau Kubernetes yang tidak aman menyebarkan infrastruktur yang rentan dengan akses yang terlalu permisif, enkripsi yang hilang, atau titik akhir manajemen yang terekspos.

Tanpa SAST otomatis, kerentanan terakumulasi sebagai utang teknis, memperpanjang waktu bertahan, dan menjadi mahal untuk diperbaiki dalam tahap produksi.

MITRE ATT&CK

  • Akses Awal (TA0001): mengeksploitasi aplikasi yang menghadap publik (T1190) yang memanfaatkan kerentanan injeksi atau bypass autentikasi dalam kode aplikasi.
  • Eksekusi (TA0002): eksploitasi untuk eksekusi sisi klien (T1203) mengeksploitasi kerentanan sisi klien seperti XSS atau deserialisasi yang tidak aman.
  • Credential Access (TA0006): kredensial dari penyimpanan kata sandi (T1555) mengekstrak kredensial yang dikodekan secara permanen dari kode sumber, file konfigurasi, atau biner yang dikompilasi.
  • Eskalasi Hak Istimewa (TA0004): eksploitasi yang bertujuan untuk menaikkan hak istimewa (T1068) dengan mengeksploitasi luapan sebuah buffer atau kerusakan memori untuk akses tingkat tinggi.

DS-4.1: Menerapkan Alur SAST Multi-Pemindai

Pengujian keamanan aplikasi statis komprehensif yang diintegrasikan ke dalam setiap build memberikan deteksi awal kerentanan tingkat kode sebelum mencapai lingkungan produksi. Aplikasi modern menggunakan beragam bahasa, framework, dan infrastructure-as-code yang memerlukan penganalisis khusus - tidak ada pemindai tunggal yang dapat mendeteksi semua kelas kerentanan. Strategi SAST berlapis yang menggabungkan alat khusus dengan eksekusi otomatis dan gerbang kualitas memastikan cakupan komprehensif sekaligus memberikan umpan balik langsung kepada pengembang saat masalah keamanan terdeteksi.

Terapkan pengujian keamanan otomatis dengan komponen-komponen ini:

  • Terapkan strategi pemindaian berlapis: Sematkan pengujian keamanan aplikasi statis otomatis ke setiap build untuk mendeteksi kerentanan sebelum kode mencapai produksi. Terapkan strategi SAST berlapis yang menggabungkan beberapa alat pemindai khusus, karena tidak ada alat tunggal yang dapat mendeteksi semua kelas kerentanan. Oleh karena itu, cakupan komprehensif memerlukan penganalisis yang khusus untuk bahasa tertentu (seperti Python, JavaScript, C/C++), pemindai infrastruktur sebagai kode (seperti Terraform, templat ARM, manifes Kubernetes), deteksi rahasia, dan analisis kode semantik untuk kerentanan aliran data yang kompleks.

  • Konfigurasikan eksekusi otomatis dengan gerbang kualitas: Konfigurasikan pemindaian SAST untuk dijalankan secara otomatis pada setiap permintaan penerapan dan penarikan, memberi pengembang umpan balik langsung tentang masalah keamanan saat konteks kode masih baru. Tetapkan gerbang kualitas berbasis keparahan yang memblokir penggabungan atau penyebaran ketika kerentanan kritis atau tingkat keparahan tinggi terdeteksi, mencegah kode yang rentan maju melalui alur. Konfigurasikan pemindai untuk mengeluarkan temuan dalam format standar (SARIF) yang memungkinkan pelacakan kerentanan yang konsisten, deduplikasi di antara berbagai alat, dan integrasi dengan dasbor terpusat untuk keamanan.

  • Sebarkan pemindaian rahasia dengan perlindungan push: Terapkan pemindaian rahasia khusus dengan perlindungan push yang mencegah pengembang menyimpan kredensial, kunci API, sertifikat, atau token ke dalam repositori, dengan cara menangkap rahasia pada saat commit daripada menemukannya dalam tinjauan audit beberapa minggu kemudian. Mendukung pola rahasia standar (kunci AWS, token Azure, string koneksi database) dan pola khusus organisasi kustom untuk mekanisme autentikasi eksklusif. Ketika rahasia terdeteksi, berikan panduan remediasi langsung termasuk prosedur rotasi kredensial dan alternatif yang aman.

  • Gunakan analisis kode semantik untuk kerentanan kompleks: Sebarkan alat analisis kode semantik seperti GitHub CodeQL yang melakukan analisis aliran data mendalam untuk mengidentifikasi kerentanan kompleks yang tidak terlihat oleh pemindai pencocokan pola-seperti injeksi SQL melalui beberapa panggilan fungsi, bypass autentikasi dalam logika bisnis, atau rantai deserialisasi yang tidak aman. Buat kueri keamanan kustom yang disesuaikan dengan kerangka kerja organisasi Anda, persyaratan keamanan, dan pola kerentanan umum yang diidentifikasi dalam retrospektif insiden. Integrasikan temuan SAST langsung ke alur kerja pengembang melalui komentar permintaan pull dengan nomor baris tertentu, penjelasan kerentanan, dan rekomendasi remediasi.

  • Mengatur dengan platform terpadu: Platform SAST terpadu seperti Microsoft Security DevOps Extension dapat mengatur beberapa pemindai khusus (AntiMalware, Bandit, BinSkim, Checkov, ESLint, Template Analyzer, Terrascan, Trivy) melalui satu tugas alur, menstandarkan manajemen konfigurasi dan agregasi hasil di seluruh ekosistem alat heterogen.

Contoh implementasi

Penyedia SaaS menderita serangan injeksi SQL yang mengekspos ratusan ribu catatan pelanggan. Analisis pasca-insiden mengungkapkan kerentanan tingkat kode yang luas termasuk kredensial yang ditulis langsung di dalam kode dan kelemahan injeksi yang ada selama beberapa bulan.

Tantangan: Tinjauan kode manual hanya menangkap sebagian kecil kerentanan. Pengembang tidak memiliki pelatihan keamanan untuk mengidentifikasi kelemahan injeksi dan kelemahan kriptografi. Tidak ada pemindaian otomatis sebelum penyebaran ke lingkungan produksi.

Pendekatan solusi:

  • Multi-pemindai SAST: Menggunakan Ekstensi Microsoft Security DevOps dengan CodeQL, ESLint, dan Bandit yang menyediakan cakupan komprehensif di seluruh bahasa dan jenis kerentanan.
  • Perlindungan rahasia: Menerapkan GitHub Advanced Security dengan pemindaian rahasia dan perlindungan dorong untuk mencegah paparan kredensial dalam commit.
  • Analisis semantik:GitHub CodeQL yang dikonfigurasi dengan kueri kustom untuk kerentanan logika bisnis dan pola keamanan khusus kerangka kerja.
  • Gerbang keamanan: Menetapkan gerbang alur di Azure Pipelines yang memblokir penyebaran temuan tingkat keparahan tinggi.

Hasil: Kerentanan ekstensif yang diidentifikasi dan diperbaiki dengan cepat. Mencegah cacat keamanan kritis agar tidak sampai ke tahap produksi. Mengurangi utang keamanan secara substansial.

Tingkat kekritisan

Wajib ada

Pemetaan kontrol

  • NIST SP 800-53 Rev.5: SA-11, RA-5, SI-2
  • PCI-DSS v4: 6.3.2, 6.4.1, 11.3.1
  • Kontrol CIS v8.1: 16.3, 16.6
  • NIST CSF v2.0: PR.IP-2, DE.CM-4
  • ISO 27001:2022: A.8.25, A.8.29
  • SOC 2: CC7.1, CC7.2

DS-5: Mengintegrasikan Pengujian Keamanan Aplikasi Dinamis (DAST)

Prinsip keamanan

Terapkan pengujian keamanan dinamis yang komprehensif di lingkungan pra-produksi melalui pemindaian keamanan kontainer untuk beban kerja kontainer, pengujian penetrasi otomatis untuk aplikasi web dan Antarmuka Pemrograman Aplikasi (API), dan pengujian khusus untuk autentikasi, otorisasi, dan manajemen sesi. Validasi runtime mengidentifikasi kelemahan konfigurasi dan kerentanan integrasi yang tidak dapat dideteksi oleh analisis statis.

Risiko yang perlu diminimalkan

Kerentanan runtime yang tidak terlihat oleh analisis statis menciptakan kesenjangan keamanan kritis yang dieksploitasi oleh penyerang saat aplikasi sudah disebarkan. Tanpa DAST yang komprehensif:

  • Kelemahan konfigurasi penyebaran: Penyedia autentikasi yang salah dikonfigurasi, CORS permisif, konfigurasi TLS yang lemah, atau header keamanan yang hilang (CSP, HSTS, X-Frame-Options) memungkinkan tinjauan sumber serangan tidak dapat dideteksi.
  • Celah keamanan API: REST dan GraphQL API dengan bypass autentikasi, kegagalan otorisasi, paparan data yang berlebihan, pembatasan laju yang hilang, atau referensi objek langsung (IDOR) yang tidak aman memungkinkan akses dan ekstraksi data yang tidak sah.
  • Bypass autentikasi dan otorisasi: Kelemahan dalam manajemen sesi, alur reset kata sandi, implementasi autentikasi multifaktor, atau logika kontrol akses berbasis peran memungkinkan peningkatan hak istimewa dan pengambilalihan akun.
  • Kerentanan manajemen sesi: Token sesi yang dapat diprediksi, penegakan batas waktu yang tidak mencukup, kerentanan fiksasi sesi, atau pencabutan token yang hilang memungkinkan pembajakan sesi dan pencurian kredensial.
  • Masalah keamanan khusus lingkungan: Titik integrasi dengan database, antrean pesan, API eksternal, atau layanan pihak ketiga memperkenalkan kerentanan runtime yang tidak terlihat dalam pengembangan atau pengujian terisolasi.
  • Kelemahan logika bisnis: Kondisi balapan, kerentanan manipulasi status, validasi input yang tidak mencukupi dalam alur kerja yang kompleks, atau masalah integritas transaksi memungkinkan penipuan dan manipulasi data.

DAST memvalidasi perilaku runtime, konfigurasi lingkungan, dan menyediakan cakupan keamanan integrasi yang tidak dapat dicapai oleh analisis statis.

MITRE ATT&CK

  • Akses Awal (TA0001): mengeksploitasi aplikasi yang menghadap publik (T1190) dengan memanfaatkan pembobolan autentikasi, kelemahan injeksi, atau titik akhir API yang tidak aman yang teridentifikasi melalui pengujian waktu jalan.
  • Akses Kredensial (TA0006): serangan brute force (T1110) mengeksploitasi pembatasan laju yang hilang, kebijakan kata sandi yang lemah, atau token sesi yang dapat diprediksi terdeteksi selama DAST.
  • Eskalasi Hak Istimewa (TA0004): akun valid (T1078) menyalahgunakan pembobolan otorisasi atau kerentanan manipulasi peran dalam aplikasi yang diimplementasikan.
  • Koleksi (TA0009): data dari repositori informasi (T1213) mengekstrak data sensitif melalui respon API yang berlebihan, penelusuran direktori, atau kerentanan pada referensi objek langsung yang tidak aman.
  • Eksfiltrasi (TA0010): eksfiltrasi melalui layanan web (T1567) mengeksploitasi celah keamanan API untuk mengekstrak data dalam skala besar tanpa deteksi.

DS-5.1: Menerapkan DAST Otomatis dalam Pra-Produksi

Pengujian keamanan aplikasi dinamis memvalidasi kontrol keamanan dalam menjalankan aplikasi, menemukan kerentanan runtime yang tidak dapat dideteksi oleh analisis statis. Sementara SAST memeriksa kode sumber, DAST menguji aplikasi yang disebarkan dengan konfigurasi seperti produksi untuk mengidentifikasi masalah khusus penyebaran termasuk kesalahan konfigurasi autentikasi, kelemahan otorisasi, dan kesenjangan keamanan integrasi yang hanya bermanifestasi di lingkungan operasi. Pengujian DAST otomatis di lingkungan pra-produksi memastikan validasi keamanan sebelum sistem dihadapkan pada pengguna, untuk menguji skenario serangan realistis terhadap sistem yang terintegrasi.

Terapkan validasi keamanan runtime melalui kemampuan ini:

  • Melengkapi SAST dengan validasi runtime: Melengkapi analisis statis dengan pengujian keamanan aplikasi dinamis yang memvalidasi keamanan dalam menjalankan aplikasi dengan konfigurasi seperti produksi. Meskipun SAST mengidentifikasi kerentanan dalam kode sumber, DAST menemukan masalah runtime yang tidak terlihat oleh analisis statis: kelemahan konfigurasi penyebaran (penyedia autentikasi yang salah dikonfigurasi, kebijakan CORS permisif, header keamanan yang hilang), kelemahan integrasi khusus lingkungan (keamanan koneksi database, otorisasi API dalam konteks yang disebarkan), dan kerentanan logika bisnis yang hanya bermanifestasi dalam kondisi operasi yang realistis.

  • Sebarkan di lingkungan penahapan seperti produksi: Sebarkan pemindaian DAST di lingkungan penahapan pra-produksi yang mencerminkan arsitektur produksi, topologi jaringan, dependensi eksternal, dan parameter konfigurasi. Eksekusi DAST otomatis harus memicu penyebaran ke penahapan, menguji alur autentikasi secara sistematis, batas otorisasi, manajemen sesi, validasi input, keamanan API, dan penanganan kesalahan di bawah pola beban dan penggunaan yang realistis. Ini memvalidasi bahwa kontrol keamanan berfungsi dengan benar saat terintegrasi dengan sistem eksternal seperti produksi (penyedia identitas, database, antrean pesan, API pihak ketiga).

  • Menerapkan pemantauan runtime untuk kontainer: Untuk beban kerja kontainer, terapkan pemantauan keamanan runtime berkelanjutan yang menggabungkan pemindaian gambar pra-penyebaran dengan analisis perilaku pasca-penyebaran. Pindai citra kontainer untuk kerentanan yang diketahui sebelum penyebaran, lalu pantau kontainer yang berjalan untuk koneksi jaringan yang anomali, eksekusi proses yang tidak sah, modifikasi sistem file, dan upaya eskalasi privilege. Memprofilkan perilaku beban kerja Kubernetes normal untuk mendeteksi penyimpangan yang menunjukkan kompromi, dan secara kontinu menilai konfigurasi kontainer berdasarkan tolok ukur CIS dan praktik keamanan terbaik.

  • Fokus pada permukaan serangan berisiko tinggi: Fokuskan upaya DAST khusus pada permukaan serangan berisiko tinggi: REST dan GraphQL API (bypass autentikasi pengujian, kegagalan otorisasi, kerentanan injeksi, paparan data yang berlebihan, referensi objek langsung yang tidak aman), manajemen autentikasi dan sesi (memvalidasi keamanan token, penegakan waktu habis, fungsionalitas keluar, alur reset kata sandi, autentikasi multifaktor), dan alur kerja logika bisnis (pengujian untuk kondisi perlombaan, manipulasi status, masalah integritas transaksi). Menetapkan alur kerja korelasi SAST/DAST yang menggabungkan temuan dari kedua pendekatan, memprioritaskan kerentanan yang dikonfirmasi melalui analisis statis dan dinamis sebagai risiko tertinggi.

  • Manfaatkan platform terintegrasi: Untuk lingkungan dalam kontainer, Pertahanan Microsoft untuk Kontainer menyediakan penilaian kerentanan runtime terintegrasi, pembuatan profil beban kerja, dan kemampuan deteksi ancaman di seluruh siklus hidup kontainer.

Contoh implementasi

Organisasi e-niaga menemukan bypass autentikasi dalam API pembayaran yang memungkinkan pemberian diskon tanpa izin. SAST tidak mendeteksi kelemahan konfigurasi runtime yang hanya muncul di lingkungan yang telah diterapkan dengan penyedia autentikasi eksternal.

Tantangan: SAST mendeteksi kerentanan kode tetapi gagal mendeteksi masalah konfigurasi runtime dan kelemahan otorisasi API. Konfigurasi penyebaran produksi berbeda dengan pengembangan yang menciptakan kesenjangan keamanan yang tidak terlihat oleh analisis statis.

Pendekatan solusi:

  • Pemindaian DAST otomatis:OWASP ZAP diterapkan di lingkungan pra-produksi untuk menguji aplikasi yang disebarkan dengan konfigurasi mirip produksi.
  • Perlindungan runtime kontainer: Menerapkan Microsoft Defender untuk Kontainer untuk pemantauan keamanan runtime dan penilaian kerentanan.
  • Pengujian keamanan API: Mengonfigurasi pengujian API khusus yang memvalidasi autentikasi, otorisasi, dan validasi data di titik akhir REST dan GraphQL yang disebarkan.
  • Korelasi SAST/DAST: Alur kerja korelasi kerentanan yang dibuat menggabungkan temuan statis dan dinamis untuk validasi keamanan yang komprehensif.

Hasil: Ditemukan kerentanan runtime yang sebelumnya terlewat oleh SAST, termasuk autentikasi yang bisa di-bypass dan kekurangan otorisasi API. Mencegah insiden keamanan melalui deteksi pra-produksi.

Tingkat kekritisan

Wajib ada

Pemetaan kontrol

  • NIST SP 800-53 Rev.5: SA-11, CA-8, RA-5
  • PCI-DSS v4: 6.4.2, 11.3.2
  • Kontrol CIS v8.1: 16.7, 16.8
  • NIST CSF v2.0: DE.CM-4, PR.IP-12
  • ISO 27001:2022: A.8.29, A.8.30
  • SOC 2: CC7.1, CC7.3

DS-6: Mengamankan siklus hidup beban kerja

Azure Policy: Lihat Definisi kebijakan bawaan Azure: DS-6.

Prinsip keamanan

Terapkan infrastruktur yang tidak dapat diubah (immutable) dengan keamanan citra yang komprehensif melalui registri kontainer dan pemindaian keamanan untuk beban kerja kontainer, manajemen citra baku, dan pembangunan otomatis untuk beban kerja Komputer Virtual (VM), serta pemindaian kerentanan secara berkelanjutan dengan karantina otomatis. Verifikasi tanda tangan kriptografi, pertahankan gambar dasar minimal, dan tertibkan garis besar keamanan di seluruh siklus hidup beban kerja.

Risiko yang perlu diminimalkan

Manajemen siklus hidup beban kerja yang tidak aman memungkinkan artefak yang rentan atau disusupi untuk mencapai produksi, menciptakan vektor serangan persisten yang dieksploitasi secara sistematis. Tanpa keamanan beban kerja yang komprehensif:

  • Gambar VM produksi yang rentan: Garis besar OS yang tidak dipaketkan atau gambar emas yang salah dikonfigurasi menyebarkan kelemahan di semua VM yang disebarkan.
  • Gambar dasar yang rentan dan belum dipatch: Kontainer yang dibangun di atas basis yang dipengaruhi CVE (Log4Shell, Heartbleed, OpenSSL) dapat mengekspos beban kerja terhadap risiko eksploitasi dan keamanan.
  • Artefak rentan yang basi: Gambar dan paket yang tidak dipindai menumpuk CVE, memperluas permukaan serangan.
  • Verifikasi gambar tidak mencukup: Kurangnya penandatanganan kriptografi dan validasi yang terbukti memungkinkan lawan mengganti gambar yang sah dengan versi yang disusupi yang berisi backdoor atau malware.
  • Permukaan serangan berlebihan: Gambar kontainer yang berisi paket yang tidak perlu, alat pengembangan, atau utilitas debugging meningkatkan paparan kerentanan dan menyediakan penyerang dengan alat eksploitasi tambahan.
  • Patokan keamanan yang hilang: Gambar VM dan kontainer yang didistribusikan tanpa kepatuhan terhadap sertifikasi CIS, pengerasan keamanan, atau konfigurasi hak istimewa minimal menimbulkan celah yang dapat dieksploitasi dalam pertahanan berlapis.

Artefak yang disusupi berubah menjadi vektor serangan persisten, membantu gerakan lateral, dan tampak sah bagi penjaga.

MITRE ATT&CK

  • Akses Awal (TA0001): mengeksploitasi aplikasi yang terhubung ke publik (T1190) dengan memanfaatkan kerentanan yang belum dipatch dalam container aplikasi atau layanan web.
  • Eksekusi (TA0002): menyebarkan kontainer (T1610) menyebarkan kontainer berbahaya yang tampak sah karena verifikasi gambar yang tidak mencukupi.
  • Eskalasi Hak Istimewa (TA0004): escape to host (T1611) mengeksploitasi kerentanan kontainer untuk keluar dari isolasi kontainer dan membahayakan sistem host.
  • Gerakan Lateral (TA0008): eksploitasi layanan remote (T1210) mengakses VM atau kontainer yang rentan yang di-deploy dari image yang disusupi.

DS-6.1: Menerapkan Keamanan Gambar Kontainer

Gambar kontainer dan VM mewakili permukaan serangan penting yang membutuhkan kontrol keamanan yang komprehensif sepanjang siklus hidupnya. Citra dasar yang rentan dapat menyebarkan kelemahan ke setiap instans yang dikerahkan, meningkatkan dampak pada seluruh infrastruktur. Memperlakukan artefak beban kerja dengan kekakuan keamanan yang sama dengan kode sumber termasuk pemindaian, penandatanganan, dan penyimpanan aman-memastikan organisasi hanya menyebarkan gambar terverifikasi dan dapat dipercaya sambil mencegah penyerang mengeksploitasi kerentanan yang diketahui atau mengganti gambar berbahaya.

Amankan artefak beban kerja melalui praktik ini:

  • Menetapkan prinsip infrastruktur yang tidak dapat diubah: Perlakukan citra kontainer dan citra VM sebagai artefak penting yang memerlukan ketelitian keamanan yang sama dengan kode sumber—citra dasar yang rentan dapat menyebarkan kelemahan ke setiap instans yang dikerahkan. Tetapkan prinsip infrastruktur yang tidak dapat diubah di mana artefak beban kerja dibangun sekali, dipindai secara komprehensif, ditandatangani secara kriptografis, dan disebarkan tanpa modifikasi untuk memastikan konsistensi dan keterlacakan sepanjang siklus hidup.

  • Gunakan gambar dasar minimal dengan build multi-tahap: Untuk beban kerja kontainer, terapkan keamanan gambar berlapis yang dimulai dengan gambar dasar minimal yang hanya berisi komponen runtime penting, secara dramatis mengurangi permukaan serangan dibandingkan dengan gambar sistem operasi penuh. Gunakan build multi-tahap untuk memisahkan dependensi build-time dari kompilasi gambar runtime dan membangun gambar kaya fitur, lalu hanya menyalin artefak akhir ke gambar runtime minimal, menghilangkan alat pengembangan, manajer paket, dan membangun dependensi yang meningkatkan paparan kerentanan dan menyediakan penyerang dengan alat eksploitasi.

  • Integrasikan pemindaian otomatis dengan kebijakan karantina: Integrasikan pemindaian kerentanan otomatis ke dalam alur build gambar yang memindai setiap gambar sebelum penyimpanan registri, memeriksa database CVE yang komprehensif dan terus memindai ulang gambar yang disimpan saat kerentanan baru diungkapkan. Terapkan kebijakan karantina otomatis yang mencegah gambar dengan kerentanan kritis atau tingkat keparahan tinggi dari penyebaran, dengan alur kerja pengecualian yang memerlukan persetujuan tim keamanan dan penerimaan risiko yang didokumentasikan. Buat kebijakan refresh gambar dasar dengan pemicu alur otomatis saat patch keamanan dirilis, memastikan gambar tidak mengakumulasi CVE dari waktu ke waktu.

  • Menerapkan penandatanganan dan verifikasi kriptografi: Terapkan integritas gambar melalui penandatanganan dan verifikasi kriptografi pada setiap tahap—lakukan penandatanganan gambar pada waktu build, verifikasi tanda tangan sebelum penyebaran, dan tolak gambar yang tidak ditandatangani atau diubah secara otomatis. Ini mencegah serangan penggantian gambar di mana musuh mengganti gambar yang sah dengan versi yang disusupi yang berisi backdoor. Simpan gambar dalam registri kontainer yang aman dengan kontrol akses jaringan (titik akhir privat, integrasi jaringan virtual), kebijakan akses berbasis peran yang membatasi siapa yang dapat mengunggah/mengunduh gambar, dan pencatatan audit yang komprehensif dari semua operasi registri.

  • Pertahankan citra emas (golden images) yang diperkeras untuk VM: Untuk beban kerja VM, pertahankan repositori citra emas terpusat dengan citra dasar yang sesuai dengan tolok ukur CIS dan telah diperkeras, yang menjalani patching keamanan reguler dan validasi kepatuhan. Terapkan alur pembuatan gambar otomatis yang menggabungkan pembaruan keamanan, hapus layanan yang tidak perlu, terapkan konfigurasi hak istimewa paling sedikit, dan hasilkan gambar baru pada jadwal yang ditentukan daripada menambal sistem yang sedang berjalan.

  • Manfaatkan platform keamanan terintegrasi: Solusi seperti Azure Container Registry dengan integrasi Pertahanan Microsoft untuk Kontainer menyediakan pemindaian otomatis, alur kerja karantina, kepercayaan konten, dan replikasi multi-wilayah dengan kebijakan keamanan yang konsisten.

Contoh implementasi

Organisasi logistik menyebarkan aplikasi kontainer dengan gambar dasar yang belum di-patch, yang berisi kerentanan eksekusi kode jarak jauh yang kritis. Penyerang mengeksploitasi kerentanan segera setelah penyebaran, membahayakan data pengiriman.

Tantangan: Banyak gambar kontainer tanpa pemindaian kerentanan. Gambar yang dibuat berbulan-bulan lalu menumpuk banyak CVE, termasuk kerentanan kritis. Tidak ada verifikasi yang mencegah penggantian gambar berbahaya.

Pendekatan solusi:

  • Keamanan registri kontainer: Menerapkan Azure Container Registry dengan pemindaian kerentanan yang mengkarantina gambar dengan CVE dengan tingkat keparahan tinggi sebelum penyebaran.
  • Gambar VM yang diperkeras: Menyebarkan Azure Shared Image Gallery dengan citra VM yang mematuhi tolok ukur CIS untuk beban kerja yang diatur.
  • Perlindungan runtime: Microsoft Defender for Containers dikonfigurasi untuk deteksi ancaman secara berkelanjutan dan pemantauan pergantian.
  • Integritas artefak: Penandatanganan dan verifikasi kriptografi yang ditetapkan memastikan keaslian gambar sepanjang siklus hidup.

Hasil: Memblokir gambar yang rentan dari penyebaran produksi. Pengurangan CVE pada citra kontainer secara dramatis. Mencegah serangan penggantian gambar melalui verifikasi tanda tangan.

Tingkat kekritisan

Wajib ada

Pemetaan kontrol

  • NIST SP 800-53 Rev.5: CM-2, CM-3, SI-2, SI-7, RA-5
  • PCI-DSS v4: 6.2.4, 6.3.3, 11.3.1
  • Kontrol CIS v8.1: 4.1, 7.3, 7.4
  • NIST CSF v2.0: PR.IP-1, PR.IP-3, DE.CM-8
  • ISO 27001:2022: A.8.9, A.8.31, A.8.32
  • SOC 2: CC7.2, CC8.1

DS-7: Menerapkan pengelogan dan pemantauan DevOps

Prinsip keamanan

Terapkan pengelogan aktivitas DevOps yang komprehensif melalui streaming audit dengan integrasi ke platform Security Information and Event Management (SIEM) terpusat untuk analisis keamanan, deteksi ancaman real time, dan respons otomatis. Buat analitik perilaku, deteksi anomali, dan metrik keamanan untuk memungkinkan respons insiden yang cepat dan mempertahankan jejak audit kepatuhan.

Risiko yang perlu diminimalkan

Pengelogan dan pemantauan DevOps yang tidak mencukupi menciptakan titik buta kritis yang dimanfaatkan oleh lawan untuk beroperasi tanpa terdeteksi, menetapkan keberlanjutan, dan mengekstraksi kode atau kredensial sensitif. Tanpa visibilitas komprehensif:

  • Kompromi alur yang tidak terdeteksi: Penyerang memodifikasi alur CI/CD untuk menyuntikkan kode berbahaya, menyelundupkan rahasia, atau membuat backdoor tanpa memicu pemberitahuan karena pengelogan audit yang tidak ada atau tidak mencukupi.
  • Ancaman orang dalam memodifikasi kode atau infrastruktur: Orang dalam berbahaya atau akun yang disusupi membuat perubahan tidak sah pada kode sumber, definisi infrastruktur, atau konfigurasi penerapan tanpa terdeteksi.
  • Kurangnya jejak audit komprehensif: Tidak adanya log aktivitas terperinci menghambat pelaksanaan penyelidikan forensik, penilaian dampak, dan analisis akar penyebab ketika insiden keamanan terjadi, memperpanjang waktu tinggal dan meningkatkan dampak pelanggaran.
  • Respons insiden tertunda: Mean Time to Detect (MTTD) diperpanjang dari jam ke minggu ketika tim keamanan tidak memiliki peringatan real time, deteksi anomali, dan korelasi otomatis peristiwa keamanan DevOps.
  • Kegagalan audit kepatuhan: Persyaratan peraturan (SOX, PCI-DSS, HIPAA, ISO 27001) yang mengamanatkan jejak audit komprehensif, pelacakan perubahan, dan pengelogan akses tidak dapat dipenuhi tanpa pemantauan DevOps terpusat.
  • Kebutaan terhadap eskalasi hak istimewa: Peningkatan izin yang tidak sah, pembuatan akun backdoor, atau modifikasi kontrol akses terjadi tanpa terdeteksi tanpa analitik perilaku dan pemantauan hak istimewa.

Kesenjangan pencatatan menyembunyikan perubahan alur berbahaya, upaya akses persisten, dan eskalasi hak istimewa di jalur pengembangan hak istimewa tinggi.

MITRE ATT&CK

  • Defense Evasion (TA0005): melemahkan pertahanan (T1562) dengan menonaktifkan pengelogan audit, langkah-langkah pemindaian keamanan, atau agen pemantauan untuk beroperasi di area yang tidak terpantau, dan penghapusan indikasi (T1070) menghapus log audit atau riwayat eksekusi data alur kerja untuk menyembunyikan aktivitas berbahaya.
  • Persistence (TA0003): manipulasi akun (T1098) dengan membuat prinsipal layanan tambahan, token akses pribadi, atau kunci SSH tanpa terdeteksi.
  • Koleksi (TA0009): data dari repositori informasi (T1213) menyelundupkan kode sumber, rahasia, atau kekayaan intelektual melalui akses alur.
  • Credential Access (TA0006): kredensial tidak aman (T1552) memanen rahasia yang diekspos dari log alur atau riwayat eksekusi.

DS-7.1: Menerapkan Pengelogan Audit untuk Platform DevOps

Platform DevOps dengan akses istimewa ke infrastruktur produksi dan kode sumber sensitif memerlukan pemantauan keamanan yang komprehensif untuk mendeteksi aktivitas adversary dan ancaman orang dalam. Kesenjangan pengelogan audit memungkinkan aktor jahat untuk beroperasi tanpa terdeteksi untuk jangka waktu yang lama, sementara agregasi log terpusat memungkinkan korelasi dengan telemetri keamanan yang lebih luas yang mengungkapkan rantai serangan canggih. Analitik perilaku real time mengidentifikasi pola mencurigakan yang tidak terlihat dalam peristiwa terisolasi, mengubah data audit mentah menjadi kecerdasan keamanan yang dapat ditindakkan.

Tetapkan pemantauan keamanan DevOps yang komprehensif melalui kemampuan ini:

  • Tangkap aktivitas yang relevan dengan keamanan komprehensif: Menetapkan pengelogan audit komprehensif yang menangkap semua aktivitas DevOps yang relevan dengan keamanan: peristiwa autentikasi dan otorisasi pengguna, penerapan kode sumber dan operasi cabang, pembuatan dan modifikasi alur, eksekusi penyebaran, akses rahasia, perubahan izin, pembuatan perwakilan layanan, dan tindakan administratif. Platform DevOps menyimpan akses istimewa ke infrastruktur produksi dan celah pengelogan kode sensitif memungkinkan pihak lawan dan orang dalam yang berniat jahat beroperasi tanpa terdeteksi untuk jangka waktu yang lama.

  • Meneruskan log ke SIEM terpusat secara real-time: Meneruskan log audit secara real time ke platform SIEM terpusat daripada mengandalkan retensi asli platform DevOps (biasanya 90 hari), memungkinkan analisis forensik jangka panjang, pelaporan kepatuhan, dan korelasi dengan peristiwa keamanan dari sistem lain. Mengalirkan log ke pusat operasi keamanan melalui protokol standar (/azure Event Hubs, syslog) dalam format terstruktur (JSON) yang memungkinkan penguraian, analisis, dan peringatan otomatis tanpa peninjauan log manual.

  • Menyebarkan analitik perilaku dan deteksi anomali: Terapkan analitik perilaku dan deteksi anomali pada data audit DevOps untuk mengidentifikasi pola mencurigakan yang tidak terlihat dalam peristiwa individual: modifikasi alur setelah jam kerja, akses yang tidak biasa ke repositori sensitif, eskalasi hak istimewa yang cepat, pembuatan perwakilan layanan diikuti oleh penyebaran mencurigakan, eksekusi alur dari lokasi yang tidak terduga, atau pola abnormal akses rahasia. Tetapkan profil perilaku dasar untuk pengguna dan layanan, dengan memperingatkan penyimpangan signifikan secara statistik yang dapat mengindikasikan ancaman penyusupan atau orang dalam.

  • Mengonfigurasi pemberitahuan otomatis untuk aktivitas berisiko tinggi: Konfigurasikan pemberitahuan otomatis untuk aktivitas berisiko tinggi dengan pemberitahuan langsung kepada tim keamanan: kegagalan penyebaran produksi, modifikasi alur di cabang yang dilindungi, pembuatan perwakilan layanan baru, peristiwa elevasi izin, langkah-langkah pemindaian keamanan yang dinonaktifkan, perubahan konfigurasi penerusan log audit, atau upaya untuk mengakses rahasia dari alur yang tidak sah. Terapkan eskalasi berbasis tingkat keparahan yang memastikan pemberitahuan penting segera mencapai operasi keamanan sementara peristiwa rutin di-batch untuk analisis.

  • Integrasikan dengan telemetri keamanan yang lebih luas: Integrasikan log audit DevOps dengan telemetri keamanan yang lebih luas di platform SIEM untuk korelasi dengan deteksi titik akhir, keamanan jaringan, peristiwa identitas, dan umpan inteligensi ancaman. Ini memungkinkan deteksi rantai serangan canggih di mana kompromi DevOps adalah salah satu tahap dalam operasi multi-fase—misalnya, mengaitkan kredensial terpancing dengan pemodifikasian alur berikutnya dan penyediaan sumber daya cloud yang tidak biasa.

  • Manfaatkan platform SIEM terintegrasi: Platform seperti Azure DevOps Audit Streaming dengan integrasi Microsoft Sentinel menyediakan penerusan log real time, aturan deteksi bawaan untuk ancaman DevOps, buku kerja keamanan untuk penyelidikan, dan orkestrasi respons otomatis.

Contoh implementasi

Organisasi manufaktur menemukan ancaman orang dalam ketika mantan kontraktor memodifikasi alur CI/CD yang menyuntikkan kode backdoor ke dalam aplikasi produksi. Insiden tetap tidak terdeteksi selama berbulan-bulan karena pengelogan audit yang tidak mencukupi.

Tantangan: Tidak ada pengelogan terpusat aktivitas DevOps. Modifikasi alur dan perubahan akses istimewa tidak dimonitor. Investigasi forensik terhambat oleh kurangnya jejak audit. Audit kepatuhan gagal karena pelacakan perubahan yang tidak mencukup.

Pendekatan solusi:

  • Pengelogan audit terpusat: Mengaktifkan peristiwa penerusan Streaming Audit Azure DevOps ke Microsoft Azure Sentinel untuk analisis keamanan dan retensi jangka panjang.
  • Analitik perilaku: Menerapkan deteksi anomali yang mengidentifikasi pola akses yang tidak biasa, modifikasi alur setelah jam kerja, dan eskalasi hak istimewa yang menunjukkan ancaman orang dalam.
  • Pemberitahuan otomatis: Pemberitahuan yang telah dikonfigurasi untuk aktivitas mencurigakan, termasuk penerapan produksi yang tidak sah dan pengalihan pembuatan 'service principal' ke operasi keamanan.
  • Pelaporan kepatuhan: Membuat generasi jejak audit otomatis yang memenuhi persyaratan regulasi dengan pelacakan perubahan yang komprehensif.

Hasil: Modifikasi pipeline berikutnya berhasil dideteksi dan dicegah dengan cepat. Mengurangi waktu investigasi insiden secara dramatis dengan jejak audit yang komprehensif. Mencapai kepatuhan dengan manajemen perubahan yang didokumenkan.

Tingkat kekritisan

Seharusnya.

Pemetaan kontrol

  • NIST SP 800-53 Rev.5: AU-2, AU-3, AU-6, AU-12, SI-4
  • PCI-DSS v4: 10.2.1, 10.2.2, 10.3.4
  • Kontrol CIS v8.1: 8.2, 8.5, 8.11
  • NIST CSF v2.0: DE.CM-1, DE.CM-7, RS.AN-1
  • ISO 27001:2022: A.8.15, A.8.16
  • SOC 2: CC7.2, CC7.3