Apa itu DevSecOps?
Pelajari cara mengintegrasikan praktik keamanan ke setiap fase siklus hidup pengembangan perangkat lunak di seluruh lingkungan multicloud Anda.
DevSecOps ditentukan
DevSecOps, yang merupakan singkatan dari pengembangan, keamanan, dan operasi, adalah kerangka kerja yang mengintegrasikan keamanan ke dalam semua fase siklus hidup pengembangan perangkat lunak. Organisasi mengadopsi pendekatan ini untuk mengurangi risiko pelepasan kode yang memiliki kerentanan keamanan. Melalui kolaborasi, otomatisasi, dan proses yang jelas, tim berbagi tanggung jawab atas keamanan, dibandingkan membiarkannya sampai akhir ketika permasalahan menjadi jauh lebih sulit dan mahal untuk diatasi. DevSecOps adalah komponen penting dari strategi keamanan multicloud.
DevSecOps versus DevOps
Dalam pengembangan perangkat lunak tradisional, proyek dibagi menjadi beberapa fase berbeda untuk perencanaan, desain, pengembangan, integrasi, dan pengujian, yang terjadi secara berurutan selama beberapa bulan atau bahkan bertahun-tahun. Meskipun pendekatan ini sangat metodis, banyak organisasi menganggapnya terlalu lambat, sehingga sulit memenuhi harapan pelanggan untuk perbaikan produk secara berkelanjutan. Selain itu, keamanan biasanya diterapkan pada bagian paling akhir, sehingga menempatkan perusahaan pada risiko pelanggaran.
Agar tetap kompetitif, banyak perusahaan telah mengadopsi model DevOps yang memprioritaskan pengiriman paket kecil kode berkualitas tinggi daripada proyek kaya fitur yang membutuhkan waktu lebih lama. Dalam kerangka ini, tim pengembangan dan operasi perangkat lunak berkolaborasi untuk menggabungkan pengujian dan integrasi di seluruh proses. Automation, proses terstandar, dan kolaborasi membantu tim bergerak cepat tanpa mengorbankan kualitas.
DevSecOps adalah penyempurnaan devOps yang membangun keamanan ke semua aspek proses. Tujuannya adalah untuk mengatasi masalah keamanan dari awal proyek. Dalam kerangka kerja ini, tidak hanya seluruh tim yang bertanggung jawab atas jaminan kualitas dan integrasi kode, tetapi juga keamanan. Dalam praktiknya, hal ini berarti tim mendiskusikan implikasi keamanan selama perencanaan dan mulai menguji masalah keamanan di lingkungan pengembangan, bukan menunggu hingga akhir. Nama lain untuk pendekatan ini adalah keamanan kiri giliran kerja.
Mengapa DevSecOps Penting?
Ada banyak metode yang digunakan penyerang untuk mendapatkan akses ke data dan aset organisasi’, tetapi taktik umumnya adalah dengan mengeksploitasi kerentanan perangkat lunak. Jenis pelanggaran ini memakan biaya, waktu, dan tergantung pada tingkat keparahannya, dapat merusak reputasi perusahaan. Kerangka kerja DevSecOps mengurangi risiko penyebaran perangkat lunak dengan kesalahan konfigurasi dan kerentanan lainnya yang dapat dimanfaatkan oleh pelaku kejahatan.
Komponen Kunci DevSecOps
Proses DevSecOps yang berhasil mencakup komponen berikut:
Integrasi berkelanjutan
Dengan pengembang integrasi berkelanjutan, pengembang menerapkan kode mereka ke penyimpanan pusat beberapa kali sehari. Kemudian kode secara otomatis diintegrasikan dan diuji. Pendekatan ini memungkinkan tim untuk menangkap masalah integrasi dan bug lebih awal dalam proses daripada menunggu hingga akhir ketika mungkin ada beberapa masalah yang perlu diatasi.
Pengiriman berkelanjutan
Build pengiriman berkelanjutan setelah integrasi berkelanjutan untuk mengotomatiskan proses pemindahan kode dari lingkungan build ke lingkungan penahapan. Setelah penahapan, selain pengujian unit, perangkat lunak secara otomatis diuji untuk memastikan antarmuka pengguna berfungsi, kode berhasil diintegrasikan, API tersebut dapat diandalkan, dan bahwa perangkat lunak dapat menangani volume lalu lintas yang diharapkan. Tujuan pendekatan ini adalah untuk secara konsisten memberikan kode siap produksi yang memberikan nilai kepada pelanggan.
Keamanan berkelanjutan
Membangun keamanan ke seluruh siklus hidup pengembangan perangkat lunak adalah komponen utama DevSecOps. Hal ini termasuk pemodelan ancaman awal dalam proses dan pengujian keamanan otomatis di seluruh siklus hidup, dimulai dengan lingkungan pengembang’ sendiri. Dengan menguji perangkat lunak secara menyeluruh untuk masalah keamanan lebih awal dan sering, organisasi dapat memberikan perangkat lunak dengan efisien dengan masalah minimal.
Komunikasi dan kolaborasi
DevSecOps sangat bergantung pada individu dan tim yang bekerja sama secara erat. Integrasi berkelanjutan mengharuskan orang berkolaborasi untuk mengatasi konflik dalam kode, dan tim perlu berkomunikasi secara efektif untuk menyatukan tujuan yang sama.
Cara menerapkan DevSecOps
Menambahkan keamanan ke proses DevOps Anda memerlukan perencanaan yang cermat. Mulai perlahan dengan proses yang memperkenalkan gesekan paling sedikit untuk tim dan menawarkan pembayaran keamanan terbesar. Berikut adalah beberapa cara untuk menambahkan keamanan ke sprint DevOps pada umumnya.
Perencanaan dan pengembangan
Memperkenalkan keamanan lebih awal ke sprint pengembangan tidak hanya membantu mengurangi kerentanan di lain waktu, tetapi juga menghemat waktu karena lebih mudah untuk mengatasi masalah sebelum kode dibuat dan diintegrasikan. Selama perencanaan dan pengembangan, gunakan pemodelan ancaman untuk mengidentifikasi dan mengurangi potensi ancaman terhadap aplikasi. Hal ini akan membantu Anda membangun keamanan ke dalam aplikasi langsung dari awal. Untuk mengungkap masalah keamanan sebelum kode diterapkan ke repositori bersama, terapkan pemeriksaan otomatis, seperti plug-in keamanan lingkungan pengembangan terintegrasi, yang memberikan umpan balik langsung kepada pengembang jika ada potensi risiko keamanan dalam kode yang mereka tulis. Selama peninjauan kode, minta seseorang yang memiliki keahlian keamanan untuk memberikan rekomendasi untuk melakukan penyempurnaan.
Penerapan kode
Salah satu kunci ke proses DevSecOps yang berhasil adalah integrasi berkelanjutan. Pengembang biasanya menerapkan kode mereka ke penyimpanan sentral beberapa kali sehari untuk memastikan masalah integrasi tertangkap lebih awal. Penting untuk menambahkan pemeriksaan keamanan otomatis ke fase ini. Hal ini dapat mencakup pemindaian pustaka dan dependensi pihak ketiga, pengujian unit, dan pengujian keamanan aplikasi statis. Penyebaran kontrol akses berbasis peran juga penting untuk melindungi integrasi berkelanjutan dan infrastruktur pengiriman berkelanjutan dari penyerang yang ingin menjalankan kode berbahaya atau mencuri kredensial.
Membuat dan menguji
Menjalankan skrip keamanan otomatis pada lingkungan pengujian membantu mengungkap potensi masalah yang sebelumnya tidak terdeteksi. Beberapa pengujian keamanan yang dapat Anda jalankan selama fase ini meliputi pengujian keamanan aplikasi dinamis, pemindaian infrastruktur, pemindaian kontainer, validasi konfigurasi cloud, dan pengujian penerimaan keamanan.
Produksi
Setelah aplikasi disebarkan ke produksi, beberapa organisasi terlibat dalam pengujian penetrasi untuk mencoba menemukan kelemahan di lingkungan langsung. Dalam pengujian penetrasi, orang mengadopsi pola pikir penyerang dan mencari cara untuk melanggar aplikasi.
Operasi
Bahkan proses DevSecOps terbaik tidak akan menangkap semuanya, sehingga sangat penting untuk terus memantau aplikasi untuk kerentanan dan ancaman. Data analitik dapat membantu Anda mengevaluasi apakah postur keamanan Anda sedang ditingkatkan dan menyoroti area untuk pengoptimalan.
Alat dan Teknologi DevSecOps
Saat memilih alat keamanan,’penting untuk memilih alat yang berfungsi dengan baik dengan teknologi DevOps Anda saat ini. Hal ini akan mempermudah penggabungan keamanan ke seluruh proses Anda. Berikut adalah beberapa tipe alat yang mungkin Anda perlukan:
Infrastruktur sebagai pemindaian kode
Untuk meningkatkan efisiensi mereka, tim DevSecOps biasanya menggunakan alat sumber terbuka seperti Terraform untuk mengelola dan menyediakan infrastruktur seperti jaringan, mesin virtual, dan penyeimbang beban melalui kode daripada melakukannya secara manual. Terraform membantu memastikan bahwa infrastruktur disiapkan dan diperbarui secara konsisten di ratusan atau ribuan server. Untuk mengurangi risiko kesalahan konfigurasi disebarkan ke lingkungan produksi, infrastruktur sebagai alat pemindaian kode secara otomatis memeriksa infrastruktur di tingkat kode untuk ketidakpatuhan dengan kebijakan dan standar keamanan.
Pengujian keamanan aplikasi statis
Sebelum kode mereka dikompilasi, pengembang DevSecOps mulai menguji kode kustom mereka untuk kerentanan keamanan. Hal ini membantu mereka memperbaiki masalah tanpa memengaruhi build. Alat pengujian keamanan aplikasi statis mempermudah proses ini dengan pemeriksaan otomatis dan umpan balik real-time. Banyak alat yang mengidentifikasi kode mana yang berisiko dan menawarkan saran perbaikan.
Analisis komposisi perangkat lunak
Salah satu cara tim membuat aplikasi dan fitur secara lebih efisien adalah dengan menggunakan plug-in dan kerangka kerja pihak ketiga. Alat bawaan ini menghemat waktu, tetapi juga dapat menimbulkan risiko, seperti masalah dengan lisensi, kode yang ditulis dengan buruk, atau kerentanan keamanan. Alat analisis komposisi perangkat lunak mengidentifikasi komponen sumber terbuka dalam aplikasi dan mengevaluasinya terhadap database kepemilikan atau gratis untuk mendeteksi pelanggaran lisensi dan masalah keamanan dan kualitas.
Pengujian keamanan aplikasi interaktif
Selama pengujian jaminan kualitas atau ketika aplikasi digunakan, alat keamanan aplikasi interaktif memindai kode untuk menemukan kerentanan dan memberikan laporan yang mengidentifikasi di mana dalam kode masalah tersebut.
Pengujian keamanan aplikasi dinamis
Pengujian keamanan aplikasi dinamis meniru metode yang mungkin digunakan aktor jahat untuk menyerang aplikasi. Pengujian ini terjadi saat aplikasi berjalan dan didasarkan pada kasus penggunaan yang ditentukan sebelumnya.
Pemindaian kontainer
Kontainer banyak digunakan di DevSecOps karena membantu pengembang menyebarkan unit kode mandiri dengan mudah. Dalam kontainer adalah gambar kontainer yang menyertakan kode yang menjalankan proses untuk kontainer. Namun, gambar ini sering dibuat menggunakan gambar yang sudah ada atau ditarik dari penyimpanan publik. Alat pemindaian kontainer, pindai kontainer, dan bandingkan dengan database kerentanan publik atau kepemilikan untuk mengungkap potensi masalah keamanan.
Praktik Terbaik DevSecOps
DevSecOps sama banyaknya dengan perubahan kultur sebagai proses dan alat. Berikut adalah beberapa praktik terbaik untuk membantu mengadopsi kerangka kerja ini semulus mungkin.
Pergeseran budaya
Kenali bahwa orang-orang mungkin mengalami kesulitan mengubah cara mereka bekerja, dan konflik mungkin muncul. Untuk membantu mereka beradaptasi, sampaikan dengan jelas tujuan dan ekspektasi organisasi, berikan banyak peluang untuk dialog terbuka, dan antisipasi bahwa Anda harus fleksibel hingga tim menemukan alat, proses, dan irama yang paling sesuai bagi mereka.
Tentukan persyaratan dan metrik
Tetapkan garis dasar keamanan minimum. Untuk panduan, lihat persyaratan industri dan peraturan atauSepuluh Teratas Worldwide Application Security Project® (OWASP) risiko penting terhadap aplikasi web dan kesalahan perangkat lunak SANS Top 25. ’Setelah menentukan persyaratan, tentukan metrik mana yang ingin Anda lacak untuk membantu memantau kemajuan Anda.
Mulai dari kecil
Alat otomatisasi keamanan menawarkan banyak opsi untuk memeriksa masalah, tetapi mengaktifkan semuanya, terutama pada awal penerapan DevSecOps, dapat membuat tim Anda kewalahan. Berhati-hatilah terhadap alat yang Anda terapkan dan berapa banyak masalah yang Anda pindai.
Lakukan pemodelan ancaman
Kembangkan proses pemodelan ancaman, yang dapat sesederhana atau sedetail mungkin dan teknis sesuai kebutuhan Anda. Gunakan pendekatan ini untuk mendokumentasikan tampilan keamanan realistis aplikasi Anda yang mencakup:
- Bagaimana penyerang dapat menyalahgunakan desain aplikasi.
- Cara memperbaiki kerentanan.
- Prioritas masalah yang berbeda.
Terapkan otomatisasi
Automation adalah kunci untuk mengaktifkan kualitas dan kecepatan dalam proses DevSecOps. Dengan menyematkan pemindaian keamanan otomatis selama semua fase integrasi berkelanjutan dan siklus hidup pengiriman berkelanjutan, Anda akan dapat meningkatkan keamanan aplikasi tanpa memperlambat proses secara signifikan.
Kelola dependensi
Sebagian besar pengembang menggunakan paket dan pustaka pihak ketiga untuk membuat aplikasi secara efisien. Masalahnya adalah beberapa solusi ini memiliki kelemahan keamanan, dan pengembang tidak selalu rajin untuk terus memperbaruinya. Untuk mengurangi risiko, pastikan komponen yang Anda gunakan diperiksa untuk risiko keamanan dan mengembangkan proses standar untuk memperbaruinya.
Evaluasi dan tingkatkan
Secara teratur menilai cara kerja proses dan menyesuaikan sesuai kebutuhan untuk memastikan organisasi Anda memenuhi tujuannya. Pasca-mortem tanpa pengambilalihan setelah penyelesaian sprint dapat membantu mengungkap peluang untuk peningkatan. Data analitik dan kecerdasan ancaman juga dapat membantu Anda menentukan apakah ada kebutuhan keamanan yang tidak terpenuhi oleh pendekatan Anda saat ini.
DevSecOps untuk aplikasi cloud-asli
Aplikasi cloud-asli dirancang untuk cloud dan biasanya netral vendor, memungkinkan mereka untuk diportkan dari satu cloud ke cloud lainnya. Dirancang agar sangat mudah diskalakan dan tangguh, tim pengembangan biasanya menyusunnya menggunakan layanan mikro, kontainer, dan otomatisasi, sehingga cocok untuk proses DevSecOps. Membangun keamanan berkelanjutan, integrasi berkelanjutan, dan pengiriman berkelanjutan ke proses pengembangan untuk aplikasi cloud-asli memungkinkan skalabilitas tanpa mengorbankan keamanan. Gunakan solusi keamanan otomatis, seperti Microsoft Defender untuk DevOps, untuk membantu Anda mengamankan kode dan seluruh alur DevOps. Setelah menyebarkan aplikasi ke cloud, terus pantau risikonya. platform perlindungan beban kerja Cloud (CWPP) membantu melindungi aplikasi ini dan data yang mendasar dengan mendeteksi dan memitigasi ancaman terhadap beban kerja di seluruh lingkungan multicloud. Manajemen postur keamanan Cloud (CSPM) penemuan solusi dan mengatasi kesalahan konfigurasi dan kerentanan di seluruh lingkungan Anda.
Pelajari selengkapnya tentang Microsoft Security
Microsoft Defender untuk Cloud
Lindungi lingkungan multicloud dan hibrid dari pengembangan hingga runtime dengan platform perlindungan aplikasi cloud-asli yang komprehensif.
Microsoft Defender for Cloud Apps
Modernkan cara Anda mengamankan aplikasi, melindungi data, dan meningkatkan postur keamanan aplikasi dengan perangkat lunak ini sebagai solusi layanan.
Manajemen Postur Keamanan Microsoft Defender untuk Cloud.
Fokus pada risiko paling penting di seluruh lingkungan multicloud Anda dengan manajemen postur keamanan cloud kontekstual.
Microsoft Defender untuk DevOps
Dapatkan manajemen keamanan DevOps terpadu di seluruh lingkungan multicloud dan multialur.
Tanya jawab umum
-
DevSecOps adalah proses yang mengintegrasikan keamanan ke seluruh siklus hidup pengembangan perangkat lunak. Organisasi mengadopsi pendekatan ini untuk mengurangi risiko pelepasan kode yang memiliki kerentanan keamanan. Melalui kolaborasi, otomatisasi, dan proses yang jelas, tim berbagi tanggung jawab untuk keamanan, daripada membiarkannya sampai akhir ketika dapat jauh lebih sulit dan hemat biaya untuk mengatasi masalah.
-
DevSecOps adalah singkatan dari pengembangan, keamanan, dan operasi. Hal ini merujuk pada proses mengintegrasikan keamanan ke semua fase pengembangan perangkat lunak.
-
Shift kiri adalah konsep di DevSecOps yang merujuk pada penggabungan praktik keamanan mulai dari awal proses pengembangan.
-
Kerangka kerja DevSecOps mencakup integrasi berkelanjutan, pengiriman berkelanjutan, dan keamanan berkelanjutan. Ini adalah metode yang digunakan tim keamanan, operasi, dan keamanan untuk bekerja bersama dan berbagi tanggung jawab untuk menghadirkan perangkat lunak berkualitas dengan cepat, sekaligus mengurangi kerentanan keamanan.
-
Tidak ada proses DevSecOps, tetapi cara umum orang-orang menjalankan proyek ini adalah dengan membagi pekerjaan menjadi sprint yang masing-masing mencakup komponen berikut: perencanaan dan pengembangan, build dan pengujian, serta produksi. Di seluruh sprint, tim menggunakan otomatisasi untuk terus mengatasi masalah jaminan kualitas, terus mengintegrasikan, dan terus menguji risiko keamanan.
Ikuti Microsoft Security