Menerapkan pendekatan Siklus Hidup Pengembangan Keamanan Berkelanjutan (SDL Berkelanjutan)
Inovasi adalah sumber kehidupan organisasi di era digital serta perlu diaktifkan dan dilindungi. Keamanan inovasi melindungi proses dan data inovasi terhadap serangan cyber. Inovasi di era digital berbentuk mengembangkan aplikasi menggunakan metode DevOps atau DevSecOps . Pendekatan ini memungkinkan organisasi untuk berinovasi dengan cepat tanpa menunggu jadwal kapal air terjun tradisional yang dapat memakan waktu berbulan-bulan atau bertahun-tahun antara rilis.
Kemampuan dan aplikasi yang berhasil memenuhi tiga jenis persyaratan yang berbeda:
- Fungsi (Dev): Aplikasi Anda harus memenuhi kebutuhan bisnis dan pengguna, yang sering berkembang pesat.
- Aman (Detik): Aplikasi Anda harus tangguh terhadap serangan dari penyerang yang berkembang pesat dan memanfaatkan inovasi dalam pertahanan keamanan.
- Reliable (Ops): Aplikasi Anda harus dapat diandalkan dan berkinerja efisien.
Menggabungkan ketiga persyaratan ini bersama-sama dan menciptakan budaya bersama sifatnya sangat penting, tetapi sering kali menantang. Para pemimpin tim pengembangan, IT, dan keamanan harus bekerja sama untuk mendorong perubahan ini.
Tonton video berikut untuk mempelajari selengkapnya tentang metode DevSecOps untuk inovasi yang aman dan cepat.
Mengintegrasikan keamanan di seluruh siklus hidup pengembangan
Sangat penting untuk mengintegrasikan keamanan di seluruh siklus hidup pengembangan untuk dengan cepat mengidentifikasi dan memperbaiki desain, kode, dan masalah lain lebih awal saat orang mengerjakan bagian dari proses tersebut. Pendekatan ini menghindari perbaikan yang lebih mahal dan sulit nantinya yang dapat menyebabkan sejumlah besar pengerjaan ulang.
Risiko keamanan (dan kebutuhan untuk menguranginya) dapat terjadi kapan saja dalam siklus hidup pengembangan:
- Desain - Pastikan bahwa desain tidak secara alami memungkinkan penyerang untuk dengan mudah mendapatkan akses tidak sah ke beban kerja, datanya, atau aset bisnis lainnya di organisasi.
- Kode – Pastikan penulisan (dan penggunaan kembali) kode tidak memungkinkan penyerang untuk dengan mudah mengontrol aplikasi untuk melakukan tindakan tidak sah yang membahayakan pelanggan, karyawan, sistem, data, atau aset bisnis lainnya. Pengembang juga harus bekerja di lingkungan yang aman yang tidak memungkinkan penyerang untuk mengambil kendali tanpa sepengetahuan mereka.
- Build and Deploy – Pastikan bahwa proses integrasi berkelanjutan dan penyebaran berkelanjutan (CI/CD) tidak memungkinkan pengguna yang tidak sah untuk mengubah kode dan memungkinkan penyerang untuk membahayakannya.
- Jalankan – Pastikan lingkungan yang menjalankan kode (cloud, server, perangkat seluler, lainnya) mengikuti praktik terbaik keamanan di seluruh orang, proses, dan teknologi untuk menghindari penyerang membahayakan dan menyalahgunakan beban kerja. Proses ini mencakup adopsi praktik terbaik yang mapan, konfigurasi garis besar keamanan, dan banyak lagi.
- Arsitektur dan Tata Kelola Zero Trust – Semua tahapan ini harus mengikuti prinsip Zero Trust untuk mengasumsikan pelanggaran (asumsikan kompromi), secara eksplisit memverifikasi kepercayaan, dan memberikan hak istimewa paling sedikit yang diperlukan untuk setiap akun pengguna, identitas mesin/layanan, dan komponen aplikasi.
Apa itu DevSecOps?
Inovasi teknologi sering dikembangkan dalam konteks pendekatan pengembangan yang cepat, ramping, dan gesit yang menggabungkan pengembangan dan operasi bersama-sama ke dalam proses DevOps dan mengintegrasikan keamanan ke dalam proses tersebut sangat penting untuk mengurangi risiko pada proses inovasi, pertumbuhan organisasi, dan aset yang ada dalam organisasi. Mengintegrasikan keamanan ke dalam proses sebuah proses DevSecOps.
Aman menurut rancangan dan shift left
Ketika organisasi mengadopsi DevOps dan metodologi inovasi cepat lainnya, keamanan harus menjadi hal yang mendasari organisasi dan proses pengembangannya. Mengintegrasikan keamanan di akhir proses bersifat mahal dan sulit diperbaiki.
Lakukan shift left pada keamanan sesuai garis waktu untuk mengintegrasikannya ke dalam perencanaan, rancangan, implementasi, dan pengoperasian layanan dan produk. Ketika tim pengembangan beralih ke DevOps dan mengadopsi teknologi cloud, keamanan harus menjadi bagian dari transformasi tersebut.
Dalam model waterfall, keamanan secara tradisional merupakan gerbang kualitas setelah pengembangan selesai.
DevOps memperluas model pengembangan tradisional (orang, proses, dan teknologi) guna menyertakan tim operasi. Perubahan ini mengurangi gesekan yang dihasilkan dari pemisahan tim pengembangan dan operasi. Demikian pula, DevSecOps memperluas DevOps untuk mengurangi gesekan dari tim keamanan yang terpisah atau berbeda.
DevSecOps adalah integrasi keamanan ke dalam setiap tahap siklus hidup DevOps dari awal ide melalui visi, desain arsitektur, pengembangan aplikasi berulang, dan operasi. Tim harus selaras secara bersamaan dengan tujuan kecepatan inovasi, keandalan, dan ketahanan keamanan. Dengan saling memahami dan saling menghormati kebutuhan satu sama lain, tim bekerja pada masalah yang paling penting terlebih dahulu, apa pun sumbernya.
Metodologi Atur Kerangka Kerja Adopsi Cloud menyediakan konteks lebih lanjut tentang struktur DevSecOps dalam organisasi. Untuk informasi selengkapnya, lihat Memahami keamanan aplikasi dan fungsi DevSecOps.
Mengapa DevSecOps?
DevOps menghadirkan kelincahan, DevSecOps menghadirkan kelincahan yang aman.
Hampir setiap organisasi di dunia menantikan pengembangan perangkat lunak untuk mendapatkan keunggulan kompetitif melalui inovasi. Mengamankan proses DevOps sangat penting bagi keberhasilan organisasi. Penyerang telah memperhatikan pergeseran ini ke aplikasi kustom dan meningkatkan serangan terhadap aplikasi kustom selama serangan mereka. Aplikasi baru ini sering menjadi sumber intelektual berharga yang kaya dan mengandung ide-ide baru yang berharga yang belum menjadi komoditas pasar.
Melindungi inovasi ini mengharuskan organisasi mengatasi potensi kelemahan dan serangan keamanan baik dalam proses pengembangan maupun infrastruktur yang menghosting aplikasi. Pendekatan ini harus diterapkan ke sumber daya cloud dan lokal.
Penyerang dapat mencapai tujuan mereka dengan mengeksploitasi kelemahan baik dalam proses pengembangan, infrastruktur yang mendasar untuk beban kerja, atau keduanya:
- Serangan Pengembangan menggunakan kelemahan dalam proses desain dan pengembangan aplikasi. Misalnya, penyerang mungkin menemukan kode yang tidak memvalidasi input (memungkinkan serangan umum seperti injeksi SQL) atau mereka mungkin menemukan aplikasi menggunakan enkripsi yang lemah (atau tidak ada enkripsi) untuk komunikasi. Selain itu, penyerang mungkin menanamkan pintu belakang dalam kode yang memungkinkan mereka untuk kembali nanti untuk mengakses aset di lingkungan Anda atau di lingkungan pelanggan Anda.
- Serangan Infrastruktur yang membahayakan titik akhir dan elemen infrastruktur yang dihosting proses pengembangan menggunakan serangan standar. Penyerang juga dapat melakukan serangan multitahap yang menggunakan informasi masuk atau malware curian untuk mengakses infrastruktur pengembangan dari bagian lain lingkungan.
Selain itu, risiko serangan rantai pasokan perangkat lunak menjadikan integrasi keamanan ke dalam proses Anda penting untuk:
- Melindungi organisasi Anda dari kode berbahaya dan kerentanan dalam rantai pasokan kode sumber Anda
- Melindungi pelanggan Anda dari masalah keamanan apa pun dalam aplikasi dan sistem Anda, yang dapat mengakibatkan kerusakan reputasi, tanggung jawab, atau dampak bisnis negatif lainnya pada organisasi Anda
Perjalanan DevSecOps
Sebagian besar organisasi menemukan bahwa DevOps atau DevSecOps untuk beban kerja atau aplikasi tertentu sebenarnya adalah proses dua fase. Ide pertama kali menginkubatasi di ruang yang aman dan kemudian dirilis ke produksi sebagai produk layak minimum (MVP). Mereka kemudian diperbarui secara berulang dan terus diperbarui.
Diagram ini menunjukkan siklus hidup pendekatan pabrik inovasi semacam ini:
Inovasi yang aman adalah pendekatan terintegrasi untuk kedua fase ini:
- Inkubasi ide di mana ide awal dibangun, divalidasi, dan disiapkan untuk penggunaan produksi awal. Fase ini dimulai dengan ide baru dan berakhir ketika rilis produksi pertama memenuhi kriteria produk layak minimum (MVP) untuk:
- Pengembangan: Fungsionalitas memenuhi persyaratan bisnis minimum
- Keamanan: Kemampuan memenuhi persyaratan kepatuhan, keamanan, dan keselamatan peraturan untuk penggunaan produksi
- Operasi: Fungsionalitas memenuhi persyaratan kualitas, performa, dan dukungan minimum untuk menjadi sistem produksi
- DevOps: Fase ini adalah proses pengembangan berulang yang sedang berlangsung dari aplikasi atau beban kerja yang memungkinkan inovasi dan peningkatan berkelanjutan
Imperatif kepemimpinan: Memadukan budaya
Memenuhi ketiga persyaratan ini membutuhkan penggabungan ketiga budaya ini bersama-sama untuk memastikan bahwa semua anggota tim menghargai semua jenis persyaratan dan bekerja sama menuju tujuan bersama.
Mengintegrasikan budaya dan tujuan ini bersama-sama ke dalam pendekatan DevSecOps sejati dapat menjadi tantangan, tetapi investasi ini sepadan dengan tantangannya. Banyak organisasi mengalami tingkat gesekan yang tidak sehat dari tim pengembangan, operasi IT, dan keamanan yang bekerja secara independen, menyebabkan masalah berupa:
- Pengiriman nilai yang lambat dan kelincahan yang rendah
- Masalah kualitas dan performa
- Masalah keamanan
Meskipun mengalami beberapa masalah bersifat normal dan diharapkan dengan pengembangan baru, konflik antar tim sering kali secara dramatis meningkatkan jumlah dan tingkat keparahan masalah ini. Konflik ini terjadi, sering kali diakibatkan karena satu atau dua tim memiliki keuntungan politik, dan berulang kali mengesampingkan persyaratan tim lain. Seiring waktu, volume dan keseriusan masalah yang diabaikan bertambah. Jika dibiarkan belum terpecahkan, dinamika ini mungkin memburuk dengan DevOps karena kecepatan dalam membuat keputusan meningkat untuk memenuhi evolusi kebutuhan bisnis dan preferensi pelanggan yang cepat.
Memecahkan masalah ini mengharuskan menciptakan budaya bersama yang menghargai persyaratan dev, detik, dan ops yang didukung oleh kepemimpinan. Pendekatan ini akan memungkinkan tim Anda untuk bekerja sama dengan lebih baik dan membantu memecahkan masalah paling mendesak pada sprint tertentu, baik ketika mereka meningkatkan keamanan, stabilitas operasional, atau menambahkan fitur bisnis penting.
Teknik kepemimpinan
Teknik-teknik kunci ini dapat membantu kepemimpinan membangun budaya bersama:
- Tidak ada yang memenangkan semua argumen: Pemimpin harus memastikan bahwa tidak ada pola pikir tunggal yang mendominasi semua keputusan yang dapat menyebabkan ketidakseimbangan yang berdampak negatif terhadap bisnis.
- Mengharapkan peningkatan yang terus-menerus, bukan kesempurnaan: Pemimpin harus menetapkan harapan pada peningkatan yang terus-menerus dan pembelajaran berkelanjutan. Membangun program DevSecOps yang berhasil tidak terjadi dalam waktu singkat. Ini adalah perjalanan terus menerus dengan kemajuan yang bertambah bertahap.
- Hargai kepentingan bersama dan nilai-nilai individu yang unik: Pastikan tim dapat melihat bahwa mereka bekerja menuju hasil yang sama dan setiap individu memberikan sesuatu yang tidak dapat dilakukan orang lain. Semua jenis persyaratan adalah tentang menciptakan dan melindungi nilai bisnis yang sama. Pengembangan mencoba membuat nilai baru, sementara ops dan keamanan berusaha melindungi dan mempertahankan nilai itu, terhadap skenario risiko yang berbeda. Para pemimpin di semua tingkatan di seluruh organisasi harus mengomunikasikan kesamaan ini dan betapa pentingnya memenuhi semua jenis persyaratan, baik untuk kesuksesan langsung maupun jangka panjang.
- Kembangkan pemahaman bersama: Semua orang di tim harus memiliki pemahaman dasar tentang:
- Urgensi bisnis: Tim harus memiliki gambaran yang jelas tentang pendapatan yang dipertaruhkan. Tampilan ini harus mencakup pendapatan saat ini (jika layanan offline), dan potensi pendapatan di masa mendatang yang terpengaruh oleh keterlambatan pengiriman aplikasi dan fitur. Pandangan ini harus secara langsung didasarkan pada sinyal dari pemangku kepentingan kepemimpinan.
- Kemungkinan risiko dan ancaman: Berdasarkan masukan tim inteligensi ancaman, jika ada, tim harus mengembangkan kepekaan terhadap kemungkinan ancaman yang akan dihadapi portofolio aplikasi.
- Persyaratan ketersediaan: Tim harus memiliki kesadaran bersama tentang persyaratan operasional seperti waktu aktif yang diperlukan, masa pakai aplikasi yang diharapkan, dan persyaratan pemecahan masalah dan pemeliharaan, misalnya, melakukan patch saat layanan online.
- Menunjukkan dan mencontohkan perilaku yang diinginkan: Pemimpin harus secara terbuka mencontohkan perilaku yang mereka inginkan dari tim mereka. Misalnya, tunjukkan kerendahan hati, fokus pada pembelajaran dan hargai disiplin ilmu lainnya. Contoh lain adalah manajer pengembangan membahas nilai keamanan dan aplikasi berkualitas tinggi atau manajer keamanan membahas nilai inovasi yang cepat dan performa aplikasi.
- Memantau tingkat gesekan keamanan: Keamanan secara alami menciptakan gesekan yang memperlambat proses. Sangat penting bagi para pemimpin untuk memantau tingkat dan jenis gesekan yang dihasilkan keamanan:
- Gesekan yang sehat: Sama halnya dengan olahraga yang membuat otot lebih kuat, mengintegrasikan tingkat gesekan keamanan yang tepat memperkuat aplikasi dengan cara memaksa berpikir kritis pada waktu yang tepat. Jika tim belajar dan menggunakan pembelajaran tersebut untuk meningkatkan keamanan, misalnya, mempertimbangkan mengapa dan bagaimana penyerang dapat mencoba membahayakan aplikasi, dan menemukan dan memperbaiki bug keamanan penting, maka mereka berada di jalurnya.
- Gesekan yang tidak sehat: Carilah gesekan yang menghambat nilai lebih dari yang dilindunginya. Gesekan ini sering terjadi ketika bug keamanan yang dihasilkan oleh alat memiliki tingkat positif palsu yang tinggi atau alarm palsu, atau ketika upaya keamanan untuk memperbaiki sesuatu melebihi dampak potensial dari serangan.
- Mengintegrasikan keamanan ke dalam perencanaan anggaran: Pastikan bahwa anggaran keamanan dialokasikan secara proporsional untuk investasi lain ke dalam keamanan. Konsep ini dianalogikan dengan acara fisik seperti konser di mana anggaran acara mencakup keamanan fisik sebagai norma. Beberapa organisasi mengalokasikan 10 persen dari total biaya untuk keamanan sebagai aturan umum untuk memastikan penerapan praktik terbaik keamanan yang konsisten.
- Menetapkan tujuan bersama: Memastikan metrik performa dan keberhasilan untuk beban kerja aplikasi mencerminkan tujuan pengembangan, keamanan, dan operasi.
Catatan
Idealnya tim-tim ini harus secara kolektif membuat tujuan bersama ini untuk memaksimalkan pembelian, baik untuk seluruh organisasi atau untuk proyek atau aplikasi tertentu.
Identifikasi DevSecOps MVP
Selama transisi dari ide ke produksi, penting untuk memastikan bahwa kemampuan tersebut memenuhi persyaratan minimum, atau produk minimum yang layak (MVP), untuk setiap jenis persyaratan:
- Pengembang (dev) fokus pada mewakili kebutuhan bisnis untuk pengiriman kemampuan yang cepat yang memenuhi harapan pengguna, pelanggan, dan pemimpin bisnis. Identifikasi persyaratan minimum untuk memastikan bahwa kemampuan membantu kesuksesan organisasi.
- Keamanan (sec) mengarahkan fokus untuk memenuhi kewajiban kepatuhan dan bertahan dari penyerang yang terus mencari keuntungan terlarang dari sumber daya organisasi. Identifikasi persyaratan minimum untuk memenuhi persyaratan kepatuhan peraturan, mempertahankan postur keamanan, dan memastikan operasi keamanan dapat dengan cepat mendeteksi dan merespons serangan aktif.
- Operasi (ops) fokus pada performa, kualitas, dan efisiensi, memastikan bahwa beban kerja dapat terus memberikan nilai dalam jangka panjang. Identifikasi persyaratan minimum untuk memastikan bahwa beban kerja dapat dilakukan dan didukung tanpa memerlukan perubahan arsitektur atau rancangan besar-besaran di perkiraan masa mendatang.
Definisi untuk MVP dapat berubah dari waktu ke waktu, dan dengan jenis beban kerja yang berbeda, karena tim belajar bersama dari pengalaman mereka sendiri dan dari organisasi lain.
Mengintegrasikan keamanan secara bawaan dalam proses
Persyaratan keamanan harus fokus pada mengintegrasikan secara bawaan dengan proses dan alat yang ada. Contohnya:
- Kegiatan desain seperti pemodelan ancaman harus diintegrasikan ke dalam fase perancangan
- Alat pemindaian keamanan harus diintegrasikan ke dalam sistem integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) seperti Azure DevOps, GitHub, dan Jenkins
- Masalah keamanan harus dilaporkan menggunakan sistem dan proses pelacakan bug yang sama, misalnya, skema prioritas, seperti bug lainnya.
Cara keamanan diintegrasikan ke dalam proses harus terus ditingkatkan sejalan dengan tim yang belajar dan proses yang matang. Ulasan keamanan dan penilaian risiko harus memastikan mitigasi diintegrasikan ke dalam proses pengembangan end-to-end, layanan produksi akhir, dan infrastruktur yang mendasarinya.
Untuk informasi selengkapnya tentang DevSecOps, lihat Kontrol teknis DevSecOps.
Tips dalam menavigasi perjalanan
Transformasi membutuhkan pembangunan menuju keadaan ideal ini secara bertahap dalam perjalanan. Banyak organisasi harus menavigasi kompleksitas dan tantangan dalam perjalanan ini. Bagian ini menguraikan beberapa contoh yang umum dihadapi organisasi.
- Perubahan pendidikan dan budaya adalah langkah-langkah awal yang penting: Anda berperang dengan tentara yang Anda miliki. Tim yang Anda miliki sering kali perlu mengembangkan keterampilan baru dan mengadopsi perspektif baru untuk memahami bagian lain dari model DevSecOps. Perubahan pendidikan dan budaya ini membutuhkan waktu, fokus, sponsor eksekutif, dan tindak lanjut berkala untuk membantu individu sepenuhnya memahami dan melihat nilai perubahan. Mengubah budaya dan keterampilan secara drastis kadang-kadang dapat mengetuk identitas profesional individu, menciptakan potensi ketahanan yang kuat. Sangat penting untuk memahami dan mengungkapkan mengapa, apa, dan bagaimana perubahan untuk setiap individu dan situasi mereka.
- Perubahan membutuhkan waktu: Anda hanya dapat bergerak secepat tim Anda dapat beradaptasi dengan implikasi dari melakukan sesuatu dengan cara baru. Tim akan selalu harus melakukan pekerjaan yang ada sembari melakukan perubahan. Sangat penting untuk memprioritaskan dengan hati-hati apa yang paling penting dan untuk mengelola harapan tentang seberapa cepat perubahan ini dapat terjadi. Berfokus pada strategi merangkak, berjalan, berlari, di mana elemen yang paling penting dan mendasar adalah yang utama, akan bermanfaat bagi organisasi Anda.
- Sumber daya terbatas: Tantangan yang biasanya dihadapi organisasi sejak awal adalah menemukan bakat dan keterampilan baik dalam pengembangan keamanan maupun aplikasi. Ketika organisasi mulai berkolaborasi dengan lebih efektif, mereka mungkin menemukan bakat tersembunyi, seperti pengembang dengan pola pikir keamanan atau profesional keamanan dengan latar belakang pengembangan.
- Sifat aplikasi, kode, dan infrastruktur yang berubah: Definisi teknis dan komposisi aplikasi secara fundamental berubah dengan diperkenalkannya teknologi seperti tanpa server, layanan cloud, API cloud, dan aplikasi tanpa kode, seperti Power Apps. Pergeseran ini mengubah praktik pengembangan, keamanan aplikasi, dan bahkan memberdayakan nondeveloper untuk membuat aplikasi.
Catatan
Beberapa implementasi menggabungkan tanggung jawab operasi dan keamanan menjadi peran site reliability engineer (SRE).
Meskipun menggabungkan tanggung jawab ini menjadi satu peran mungkin merupakan kondisi akhir yang ideal untuk beberapa organisasi, hal ini sering kali merupakan perubahan ekstrem dari praktik, budaya, peralatan, dan keahlian perusahaan saat ini.
Bahkan jika Anda menargetkan model SRE, sebaiknya mulai dengan menanamkan keamanan ke dalam DevOps menggunakan solusi cepat praktis dan kemajuan bertambah bertahap yang diuraikan dalam panduan ini untuk memastikan Anda mendapatkan laba atas investasi (ROI) yang baik dan memenuhi kebutuhan mendesak. Ini secara bertahap akan menambah tanggung jawab keamanan pada personel operasi dan pengembangan Anda, yang membuat orang-orang Anda lebih dekat ke keadaan akhir SRE (jika organisasi Anda berencana untuk mengadopsi model itu nantinya).
Langkah berikutnya
Tinjau Kontrol teknis DevSecOps untuk panduan lebih detail tentang DevSecOps.
Untuk informasi tentang cara keamanan tingkat lanjut GitHub mengintegrasikan keamanan ke dalam alur integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD), lihat Tentang keamanan tingkat lanjut GitHub.
Untuk informasi dan peralatan lebih lanjut tentang cara organisasi IT Microsoft menerapkan DevSecOps, lihat Toolkit DevOps yang aman.