Bagikan melalui


Mengamankan lingkungan pengembang untuk Zero Trust

Artikel ini membantu Anda, sebagai pengembang, untuk mengamankan lingkungan pengembangan Anda sehingga Anda dapat menerapkan prinsip Zero Trust (verifikasi secara eksplisit, menggunakan akses hak istimewa paling sedikit, mengasumsikan pelanggaran). Ini fitur konten dari eBook Mengamankan Lingkungan DevOps Enterprise kami dan menyoroti praktik terbaik untuk keamanan cabang dan alat kepercayaan, ekstensi, dan integrasi.

Kecepatan pengembang bergantung pada kemampuan Anda untuk bekerja bagaimana dan di mana Anda ingin memaksimalkan hasil bisnis. Anda menginginkan mesin yang kuat dan dapat disesuaikan dengan akses root atau administrator. Namun, permintaan pengembang dapat berjalan bertentangan dengan peraturan kepatuhan dan kebutuhan untuk mengaudit dan mengontrol akses dan penyimpanan lingkungan karyawan swasta.

Mesin tidak terkelola yang terhubung ke tim keamanan tantangan jaringan organisasi, pengadaan, dan dewan tata kelola. Skenario terbaik untuk memberi pengembang lingkungan karyawan default dan diperkeras menciptakan penghapus di kedua sisi. Ketika karyawan terhubung dari mana saja, jaringan Wi-Fi yang rentan adalah pintu terbuka untuk serangan cyber. Pencurian dan kehilangan perangkat keras adalah kekhawatiran utama.

Kerentanan meluas ke integrasi lingkungan pengembangan. Alat pengembangan yang memiliki ekstensibilitas kaya mungkin memiliki integrasi yang tidak tertandingi di marketplace mereka. Ekstensi berbahaya dapat membahmari alat pengembang dan menyebabkan pelanggaran di seluruh perusahaan.

Dalam diagram di bawah ini, perhatikan bagaimana lingkungan pengembang terhubung ke lingkungan alat DevOps untuk memengaruhi cabang Git. Ini melebarkan permukaan lingkungan melalui koneksi ke paket sumber terbuka dan ekstensi aplikasi. Ekstensi menyajikan vektor serangan dalam kerentanan aplikasi dependensi dan ekstensi.

Diagram menggambarkan lingkungan pengembang dan ancaman keamanan seperti yang dijelaskan dalam eBook sebelumnya dan dirangkum dalam artikel terkait yang ditautkan di sini.

Memberikan fleksibilitas dan kontrol anggota tim DevOps sekaligus mencegah serangan berbahaya adalah tantangan mendasar bagi kantor keamanan. DevOps dapat mengontrol lingkungan pengembang dengan lingkungan cloud (lihat Peluncuran tepercaya untuk Azure VM dan GitHub Enterprise Cloud Docs) dan mengamankan lingkungan pengembang dengan kontainer (lihat Dokumentasi Codespace GitHub).

Selain itu, pengembang dapat menerapkan langkah-langkah Zero Trust ini untuk membantu mengamankan lingkungan pengembang:

  • Konfigurasikan hak istimewa paling sedikit.
  • Batasi siapa yang dapat mengubah dan menyetujui kode dengan keamanan cabang.
  • Mengadopsi hanya alat, ekstensi, dan integrasi tepercaya.

Praktik terbaik untuk hak istimewa paling sedikit

Pengembang sering percaya bahwa mereka dapat menangkap malware, phishing, dan pelanggaran di lingkungan mereka. Permukaan ancaman lingkungan pengembang yang besar membuatnya tidak realistis bagi pengembang untuk mempertahankan pengetahuan sistem yang omnipresent. Organisasi kehilangan waktu remediasi yang berharga ketika mendeteksi pelanggaran setelah serangan membahayakan lingkungan pengembang yang memiliki akses administrator ke semua sistem.

Untuk memulihkan potensi peluang akses yang menyebabkan peretas menargetkan peran pengembang perangkat lunak, pertimbangkan praktik terbaik keamanan hak istimewa terkecil Zero Trust berikut untuk aplikasi.

  • Terapkan hak istimewa paling sedikit dan akses just-in-time untuk DevOps. Pastikan bahwa anggota tim hanya mempertahankan akses minimal ke lingkungan untuk waktu yang diperlukan terpendek. Menerapkan kebijakan untuk mencakup hak akses administrator pada perangkat utama, alat DevOps, alur rilis, repositori kode, lingkungan, penyimpanan rahasia, dan database. Untuk tim DevOps, persyaratan dasar adalah koneksi ke penyimpanan identitas organisasi. Gunakan federasi identitas untuk mengintegrasikan dengan lingkungan SaaS untuk menghindari duplikasi identitas pada platform pihak ketiga dan untuk mengurangi risiko paparan.
  • Jangan gunakan token akses pribadi untuk akses kode sumber. Praktik aman untuk tim DevOps termasuk akses ke alat DevOps berbasis SaaS, repositori kode (melalui SSH, HTTPS, atau token akses pribadi). Untuk akses lingkungan berbasis SaaS, memiliki instruksi yang jelas tentang bagaimana prinsip akses menentukan siapa yang dapat mengunduh (mengkloning) repos kode sistem dan dari perangkat mana (lokal, cloud, dan kontainer). Misalnya, OneDrive dapat memblokir atau membatasi akses perangkat yang tidak dikelola.
  • Menstandarkan dan menyinkronkan akun pengguna GitHub Enterprise Managed User (EMU) dengan identitas perusahaan. Dengan Pengguna Terkelola Perusahaan, Anda dapat mengontrol akun pengguna anggota perusahaan Anda melalui Penyedia Identitas (IdP) Anda. Di penyimpanan identitas organisasi Anda, tentukan nama pengguna, email, dan nama tampilan GitHub secara eksplisit. Pengguna kemudian dengan mudah mengidentifikasi kolaborator.
  • Untuk tiga cara pengembang dapat terhubung ke lingkungan SaaS (HTTPS dengan identitas, token akses pribadi, terhubung dengan kunci SSH), membuat koneksi dengan penyimpanan identitas organisasi. Dengan GitHub (kecuali untuk akun GitHub EMU), identitas Anda selalu merupakan identitas publik Anda. Akses terkontrol melalui akses menyeluruh (SSO) memerlukan koneksi dengan penyimpanan identitas organisasi.
  • Gunakan otoritas sertifikat SSH (CA) untuk menyediakan sertifikat SSH yang ditandatangani bagi anggota untuk mengakses sumber daya dengan git dengan aman. Sertifikat SSH adalah mekanisme untuk satu kunci SSH untuk menandatangani kunci SSH lain. GitHub Enterprise Cloud mendukung sertifikat SSH untuk memberi organisasi kontrol lebih besar atas cara anggota mengakses repositori. Admin dapat mengunggah kunci publik SSH CA mereka dan menerbitkan sertifikat untuk digunakan anggota untuk autentikasi Git. Sertifikat hanya dapat mengakses repositori milik organisasi. Admin dapat mengharuskan anggota untuk menggunakan sertifikat saat mengakses repositori mereka.
  • Gunakan manajer kredensial Git untuk mengeraskan akses ke kode Anda. Alat seperti Visual Studio (VS) memiliki dukungan identitas bawaan. Visual Studio Code menunjuk ke manajer kredensial Git.

Praktik terbaik untuk keamanan cabang

Ketika peretas mendapatkan akses ke repositori kode, mereka dapat mempelajari keamanan sistem dan memodifikasi kode tanpa tim melihat. Untuk mencegah akses repositori kode yang tidak sah, terapkan strategi percabangan untuk membuat kontrol atas perubahan kode (lihat contoh yang diilustrasikan dalam diagram berikut).

Diagram mengilustrasikan contoh strategi percabangan yang melindungi repositori utama.

Untuk memulihkan potensi peluang akses repositori, pertimbangkan praktik terbaik keamanan cabang berikut.

  • Lindungi cabang dengan ulasan kode untuk memberi tim DevOps kontrol atas perubahan kode dan mengaudit kemajuan. Strategi percabangan dalam diagram sebelumnya mengartikulasikan alur perubahan terkontrol yang memberikan rantai perintah dan cetak biru yang jelas untuk mengatasi perubahan kode. Dari berbagai pendekatan untuk strategi percabangan, salah satu kesamaan adalah bahwa cabang yang dilindungi berfungsi sebagai sumber untuk rilis baru ke produksi.
  • Minta administrator repositori Git mengontrol otorisasi persetujuan. Mekanisme kontrol strategi percabangan ada dalam alur kerja persetujuan. Cabang yang dilindungi memerlukan validasi, ulasan, dan persetujuan sebelum menerima perubahan. Salah satu opsinya adalah membuat aturan perlindungan cabang untuk memberlakukan alur kerja. Misalnya, memerlukan tinjauan persetujuan atau cek status untuk semua permintaan pull yang digabungkan ke cabang yang dilindungi. Kebijakan cabang membantu tim melindungi cabang penting pengembangan. Kebijakan memberlakukan kualitas kode tim Anda dan mengubah standar manajemen.

Praktik terbaik untuk memercayai alat, ekstensi, dan integrasi

Ekstensibilitas dalam lingkungan pengembang terintegrasi (IDE) sangat produktif sehingga pada dasarnya merupakan fitur yang diamanatkan. Anda mengandalkan kemampuan untuk menerapkan dan mengumpulkan ekstensi dalam marketplace IDE tertentu untuk merancang lingkungan kerja optimal Anda.

Untuk memulihkan ID yang aman, pertimbangkan alat, ekstensi, dan praktik terbaik integrasi berikut.

  • Pastikan Anda hanya mengintegrasikan alat dari marketplace tepercaya dan penerbit. Misalnya, marketplace VISUAL Code memiliki ribuan ekstensi untuk mempermudah hidup Anda. Namun, ketika tim Anda mengadopsi alat atau ekstensi baru, aspek terpenting dapat memverifikasi kepercayaan penerbit.
  • Siapkan praktik aman untuk mengontrol penggunaan ekstensi untuk membatasi permukaan serangan lingkungan pengembang. Sebagian besar ekstensi IDE memerlukan persetujuan hak istimewa tertentu untuk berfungsi, seringkali sebagai file dengan izin baca pada sistem untuk menganalisis kode. Ekstensi memerlukan koneksi ke lingkungan cloud agar berfungsi (umum dalam alat metrik). Menyetujui fungsionalitas tambahan di atas IDE membuka organisasi untuk lebih banyak ancaman.
  • Pada mesin pengembang, lacak jumlah dan kematangan ekstensi yang digunakan untuk memahami potensi permukaan serangan. Hanya masukkan ekstensi marketplace VISUAL Code dari penerbit terverifikasi. Saat Anda menginstal ekstensi aplikasi dengan Visual Studio Code, periksa ekstensi yang Anda jalankan secara teratur dengan baris perintah, kode --list-extensions --show-versions. Memiliki pemahaman yang baik tentang komponen yang dapat diperluas yang Anda jalankan di lingkungan pengembang Anda.

Langkah berikutnya

  • Menyematkan keamanan Zero Trust ke alur kerja pengembang Membantu Anda berinovasi dengan cepat dan aman.
  • Mengamankan lingkungan platform DevOps membantu Anda menerapkan prinsip Zero Trust di lingkungan platform DevOps Anda dan menyoroti praktik terbaik untuk manajemen rahasia dan sertifikat.
  • Lingkungan DevOps aman untuk Zero Trust menjelaskan praktik terbaik untuk mengamankan lingkungan DevOps Anda dengan pendekatan Zero Trust untuk mencegah peretas membahayakan kotak pengembang, menginfeksi alur rilis dengan skrip berbahaya, dan mendapatkan akses ke data produksi melalui lingkungan pengujian.
  • Menerapkan prinsip Zero Trust seperti yang dijelaskan dalam memorandum 22-09 (mendukung perintah eksekutif AS 14028, Meningkatkan Keamanan Cyber Bangsa) dengan menggunakan MICROSOFT Entra ID sebagai sistem manajemen identitas terpusat.
  • Mempercepat dan mengamankan kode Anda dengan Azure DevOps dengan alat yang memberi pengembang kode tercepat dan paling aman untuk pengalaman cloud.
  • Konfigurasikan Azure untuk mempercayai OIDC GitHub sebagai identitas federasi. OpenID Koneksi (OIDC) memungkinkan alur kerja GitHub Actions Anda mengakses sumber daya di Azuretanpa perlu menyimpan kredensial Azure sebagai rahasia GitHub berumur panjang.