Mengamankan lingkungan platform DevOps untuk Zero Trust

Artikel ini membantu Anda, sebagai anggota tim DevOps, untuk menerapkan prinsip Zero Trust dengan hak istimewa paling sedikit dan mengamankan lingkungan platform DevOps. Ini menampilkan konten dari eBook Mengamankan Lingkungan DevOps Enterprise kami dan menyoroti praktik terbaik untuk pengelolaan rahasia dan sertifikat.

Perusahaan modern mengandalkan platform DevOps untuk penyebaran, termasuk alur dan lingkungan produksi yang diperlukan pengembang untuk menjadi produktif. Di masa lalu, metode keamanan aplikasi tidak mempertimbangkan peningkatan permukaan serangan yang terbuka dalam pipeline dan lingkungan produksi masa kini. Saat pelaku jahat bergeser ke kiri dan menargetkan alat hulu, Anda memerlukan pendekatan inovatif untuk mengamankan lingkungan platform DevOps Anda.

Dalam diagram berikut, perhatikan bahwa lingkungan platform DevOps terhubung ke lingkungan aplikasi dan ke ekstensi alur CI/CD (integrasi dan pengiriman berkelanjutan).

Diagram mengilustrasikan lingkungan platform DevOps dan ancaman keamanan.

Ekstensi alur CI/CD menghadirkan pelaku jahat dengan peluang untuk terlibat dalam eskalasi hak istimewa dari lingkungan aplikasi. Ekstensi dan integrasi meningkatkan kerentanan permukaan serangan. Sangat penting untuk melindungi dari ancaman penyusupan malware.

Bagaimana dan mengapa peretas menargetkan sistem pipa

Alur dan lingkungan produksi mungkin independen dari praktik dan proses keamanan aplikasi standar. Mereka biasanya memerlukan kredensial akses tingkat tinggi yang dapat memberikan akses mendalam dan bermakna ke pelaku jahat.

Meskipun pelaku jahat menemukan cara baru untuk membahayakan sistem, kerentanan paling umum untuk alur meliputi:

  • Mengekstrak variabel runtime dan penyuntikan argumen.
  • Skrip yang mengambil prinsipal layanan atau kredensial dari alur kerja.
  • Token akses pribadi yang salah dikonfigurasi yang memungkinkan siapa pun dengan kunci untuk mengakses lingkungan platform DevOps.
  • Kerentanan dan kesalahan konfigurasi dalam alat terintegrasi yang memerlukan akses ke kode (seringkali baca-saja, tetapi terkadang akses menulis). Alat terintegrasi dapat mencakup kerangka kerja pengujian, pengujian keamanan aplikasi statis (SAST), dan pengujian keamanan aplikasi dinamis (DAST).

Praktik terbaik untuk manajemen rahasia dan sertifikat

Menghindari pelanggaran bencana bisa sesederhana manajemen rahasia yang efektif. Diagram berikut mengilustrasikan contoh rahasia, kata sandi, token akses, dan manajemen sertifikat yang efektif.

Diagram mengilustrasikan manajemen rahasia dan sertifikat.

Seperti yang ditunjukkan pada diagram sebelumnya, pengembang memulai build untuk permintaan pelanggan. GitHub kemudian memulai runner dengan ID Role dan ID Rahasia dari Peran Aplikasi Vault. Entitas Tepercaya secara berkala meminta ID rahasia baru dari Vault dan mendapatkan ID rahasia Rahasia GitHub dari GitHub. Vault menggunakan ID peran Rahasia GitHub dan ID rahasia untuk masuk dan mendapatkan aset penandatanganan kode. Runner menyesuaikan dan membubuhkan tanda tangan digital pada kode aplikasi seluler.

Praktik terbaik berikut membantu Anda membangun penyiapan aman yang meminimalkan paparan rahasia dan parameter.

  • Menyediakan penyimpanan yang aman untuk rahasia dan sertifikat pada setiap tahap siklus hidup aplikasi. Selalu kembangkan seolah-olah itu adalah proyek sumber terbuka. Pastikan bahwa tim menyimpan rahasia di gudang kunci alih-alih di dalam kode atau di lingkungan tim. Gunakan layanan cloud Azure Key Vault untuk menyimpan dan mengakses rahasia dengan aman.
  • Konfigurasikan Azure untuk mempercayai OIDC GitHub sebagai identitas federasi. OpenID Connect (OIDC) memungkinkan alur kerja GitHub Actions Anda untuk mengakses sumber daya di Azure tanpa perlu menyimpan kredensial Azure sebagai rahasia GitHub berumur panjang.

Praktik terbaik lainnya untuk keamanan lingkungan DevOps

Untuk membantu melindungi dari insiden keamanan, tinjau praktik terbaik berikut untuk membentengi lingkungan platform DevOps Anda. Temukan diskusi terperinci tentang rekomendasi ini di eBook Mengamankan Lingkungan DevOps Perusahaan kami.

  • Lengkapi setiap lingkungan platform DevOps dengan jejak audit.Tinjau log audit untuk melacak siapa yang mendapatkan akses, perubahan apa yang terjadi, dan tanggal/waktu untuk sistem aktif apa pun. Termasuk secara khusus platform DevOps dengan pipeline CI/CD yang mengarah ke produksi. Jejak audit untuk alat DevOps menyediakan cara yang kuat untuk memulihkan ancaman dengan lebih cepat, menemukan, dan memperingatkan aktivitas mencurigakan terhadap kemungkinan pelanggaran atau kerentanan, dan menemukan potensi penyalahgunaan data atau hak istimewa. Pastikan kontrol terperinci dan jejak audit tersedia di setiap lingkungan.
  • Amankan rantai pasokan perangkat lunak. Dengan setiap pustaka yang Anda bawa ke basis kode, Anda memperluas rantai pasokan perangkat lunak dan mewarisi dependensi dari setiap proyek atau alat sumber terbuka. Dengan hati-hati, hapus pustaka yang tidak perlu dan komponen sumber terbuka untuk mengurangi permukaan serangan rantai pasokan perangkat lunak Anda.
  • Mengotomatiskan pemindaian templat Infrastructure-as-Code (IaC). Dengan lingkungan Infrastructure as Code (IaC), mudah untuk memindai kesalahan konfigurasi, audit kepatuhan, dan isu kebijakan. Menerapkan pemeriksaan kepatuhan dan kontrol akses meningkatkan postur keamanan seluruh infrastruktur Anda. Verifikasi keamanan integrasi alat yang memenuhi persyaratan sistem otomatisasi.
  • Mengotomatiskan alur kerja persetujuan. Agar alur kerja persetujuan apa pun dapat mendorong kode ke produksi, pemeriksaan otomatis atau manual tertentu harus mengonfirmasi keamanan, nilai bisnis, status, dan kualitas setiap permintaan. Pemeriksaan ini berfungsi sebagai gerbang antara pengembangan dan produksi untuk mencegah serangan penolakan layanan dan pelaku jahat yang menyuntikkan kode ke lingkungan produksi tanpa menandai atau memicu pemberitahuan.
  • Izinkan hanya integrasi alat DevOps terverifikasi. Seperti di lingkungan pengembang, alat DevOps dilengkapi dengan ekstensi dan integrasi untuk membuat tim DevOps efisien dan aman. Konfirmasikan bahwa integrasi terverifikasi memerlukan hak istimewa sekecil mungkin untuk menjalankan pekerjaan mereka. Terapkan akses hak istimewa paling sedikit jika memungkinkan dan pastikan tingkat izin baca/tulis yang tepat. Pelajari cara menonaktifkan atau membatasi GitHub Actions untuk organisasi Anda.

Langkah berikutnya