Professional Documents
Culture Documents
Secure SDLC
Oleh : Restia Moegiono {CEH|CHFI|ECSA|QRMO}
TLP : CLEAR
Checklist Secure SDLC Dokumen ini bisa disebarluaskan secara bebas
0
TLP:CLEAR
Riwayat Perubahan
A. Latar Belakang
Secure Software Development Life Cycle (Secure SDLC) berupaya menjadikan keamanan sebagai
tanggung jawab semua pihak, memungkinkan pengembangan perangkat lunak yang aman sejak
awal. Sederhananya, secure SDLC penting karena keamanan dan integritas perangkat lunak itu
penting. Ini mengurangi risiko kerentanan keamanan pada produk perangkat lunak dalam produksi,
serta meminimalkan dampaknya jika ditemukan. Secure SDLC menempatkan keamanan di depan dan
di tengah, yang jauh lebih penting dengan repositori kode sumber yang tersedia untuk umum, beban
kerja cloud, kontainerisasi, dan rantai manajemen pemasok. Secure SDLC menyediakan kerangka
kerja standar untuk menentukan tanggung jawab, meningkatkan visibilitas dan meningkatkan
kualitas perencanaan dan pelacakan serta mengurangi risiko.
B. Tujuan
1. Untuk memastikan pengembangan perangkat lunak dilakukan secara aman.
2. Menjadi panduan cepat bagi pengembang perangkat lunak dalam menerapkan Secure SDLC.
C. Manfaat
1. Pengurangan biaya
Berkat identifikasi awal masalah keamanan yang memungkinkan diimplementasikan kontrol
keamanan secara paralel, maka tidak perlu lagi melakukan patch setelah fase produksi.
2. Mengutamakan keamanan
Secure SDLC membangun budaya yang berfokus pada keamanan, menciptakan lingkungan kerja
yang mengutamakan keamanan, dan semua pihak memperhatikannya. Sehingga perbaikan
terjadi di seluruh bagian organisasi.
3. Strategi pengembangan
Menentukan kriteria keamanan sejak awal meningkatkan strategi teknologi, membuat semua
anggota tim pengembangan mengetahui kriteria keamanan produk, dan memastikan keamanan
pengembangan di sepanjang siklus hidup.
4. Keamanan yang lebih baik
Setelah proses secure SDLC dilakukan, maka postur keamanan meningkat di seluruh bagian
organisasi. Organisasi yang sadar akan keamanan dapat mengurangi risiko serangan siber secara
signifikan.
1. Persyaratan Keamanan
Tahap ini bertujuan untuk:
a. Mengidentifikasi dan menentukan persyaratan keamanan yang relevan untuk perangkat
lunak yang dikembangkan.
b. Mengidentifikasi persiapan keamanan untuk pengembangan perangkat lunak.
2) Penyamaran (masking)
Penyamaran adalah mekanisme pelindungan yang lebih lemah dari mekanisme
pelindungan kriptografi, dimana informasi asli diberi tanda bintang atau X.
Mekanisme penyamaran digunakan untuk melindungi dari serangan selancar
bahu (shoulder surfing attack), yaitu serangan dimana seseorang melihat dari
balik bahu orang lain dan mengamati informasi sensitif. Penyamaran nomor kartu
kredit, kecuali 4 (empat) digit terakhir saat dicetak pada kuitansi atau ditampilkan
di layar, adalah contoh penyamaran yang memberikan pelindungan kerahasiaan.
Persyaratan kerahasiaan harus ditentukan sepanjang siklus hidup informasi, mulai dari
data asal hingga data dihentikan. Penting untuk secara eksplisit menyatakan
persyaratan kerahasiaan untuk data non-publik:
1) Dalam transmisi (In Transit)
Ketika data ditransmisikan melalui jaringan yang tidak terlindungi, yaitu, data
bergerak.
d. Persyaratan Autentikasi
Persyaratan autentikasi bertujuan untuk memverifikasi dan memastikan keabsahan
dan validitas identitas yang mengajukan klaim entitas untuk verifikasi. Kredensial
autentikasi dapat diberikan oleh berbagai faktor atau kombinasi faktor yang mencakup
pengetahuan, kepemilikan, atau karakteristik.
Autentikasi dua faktor (two factor authentication/2FA) adalah autentikasi yang
menggunakan 2 (dua) faktor untuk memvalidasi klaim dan/atau kredensial entitas.
Sedangkan autentikasi multi-faktor (multi factor authentication/MFA) adalah
autentikasi yang menggunakan lebih dari 2 (dua) faktor.
Bentuk autentikasi yang paling umum adalah sebagai berikut:
1) Autentikasi Anonim
Autentikasi anonim adalah sarana akses ke area publik perangkat lunak tanpa
meminta kredensial seperti username dan password.
2) Autentikasi Dasar
e. Persyaratan Otorisasi
Persyaratan otorisasi bertujuan untuk mengonfirmasi bahwa entitas yang
diautentikasi memiliki hak dan hak istimewa (privilege) yang diperlukan untuk
mengakses dan melakukan tindakan pada sumber daya yang diminta.
Pada aktivitas mengidentifikasi subjek dan objek, subjek adalah entitas yang meminta
akses, sedangkan objek adalah item yang akan ditindaklanjuti oleh subjek. Subjek
dapat berupa pengguna manusia atau proses perangkat lunak. Tindakan pada objek
f. Persyaratan Akuntabilitas
Persyaratan akuntabilitas bertujuan untuk membantu membangun catatan riwayat
tindakan pengguna. Jejak audit dapat membantu mendeteksi saat pengguna yang
tidak sah melakukan perubahan, atau pengguna yang berwenang membuat perubahan
yang tidak sah, dimana keduanya merupakan kasus pelanggaran integritas.
2. Desain keamanan
Tahap ini bertujuan untuk:
a. Merancang arsitektur yang aman dengan mempertimbangkan elemen keamanan;
b. Mengamankan arsitektur perangkat lunak dengan memahami dan menganalisis ancaman
terhadap perangkat lunak sebelum dibangun.
4. Pengujian Keamanan
Tahap ini bertujuan untuk:
5. Penerapan Keamanan
Tahap ini bertujuan untuk:
a. Memastikan penyelesaian dari rencana operasi dan dokumentasi aplikasi;
b. Memastikan persetujuan pihak manajemen dan penerimaan risiko untuk penerapan;
c. Memastikan aplikasi memenuhi fungsinya dan aman;
d. Memastikan lingkungan dan konfigurasi untuk penerapan yang aman.
5.1 Pertimbangan Penerimaan Perangkat Lunak
Tahap ini bertujuan untuk:
a. Memastikan dokumentasi aplikasi dan rencana operasi sudah siap;
b. Mendapatkan persetujuan dan penerimaan risiko oleh pihak manajemen.
5.1.1 Kriteria Penyelesaian
Tahap ini bertujuan untuk memvalidasi dan memverifikasi semua persyaratan fungsional
dan keamanan sudah lengkap seperti yang diharapkan. Kriteria penyelesaian untuk
fungsionalitas dan keamanan perangkat lunak dengan milestone yang jelas harus
ditentukan dengan baik sebelumnya. Beberapa contoh milestone terkait keamanan
termasuk, namun tidak terbatas pada:
a. Pembuatan persyaratan keamanan selain persyaratan fungsional dalam tahap
persyaratan;
b. Penyelesaian model ancaman selama tahap desain;
c. Reviu dan persetujuan terhadap arsitektur keamanan pada akhir tahap desain;
d. Reviu kode untuk kerentanan keamanan setelah tahap pengembangan;
e. Penyelesaian pengujian keamanan pada akhir tahap pengujian aplikasi;
f. Penyelesaian dokumentasi sebelum tahap penerapan dimulai.
6. Pemeliharaan Keamanan
Tahap ini bertujuan untuk:
a. Memantau dan menjamin bahwa perangkat lunak akan terus berfungsi dengan cara yang
andal, tangguh, dan dapat dipulihkan;
b. Mengidentifikasi perangkat lunak dan kondisi dimana perangkat lunak perlu dibuang atau
diganti.
6.1 Operasi, Pemantauan dan Pemeliharaan
Tahap ini bertujuan untuk:
a. Memberikan layanan kepada bisnis atau pengguna akhir untuk kebutuhan
pengoperasian dan pemeliharaan perangkat lunak.
b. Memastikan aspek penjaminan pada pemrosesan perangkat lunak yang andal, tangguh,
dan dapat dipulihkan.
6.1.1 Melaksanakan Pengamanan Operasi
Tahap ini bertujuan untuk memastikan keamanan operasi dengan menjaga tetap aman
atau menjaga tingkat ketahanan perangkat lunak di atas tingkat risiko yang dapat
diterima. Tahap ini adalah penjaminan bahwa perangkat lunak akan terus berfungsi
seperti yang diharapkan dengan cara yang andal untuk bisnis tanpa mengorbankan
kondisi keamanannya dengan memantau, mengelola, dan menerapkan kontrol yang
diperlukan untuk melindungi aset informasi. Berbagai jenis kontrol keamanan operasi,
antara lain:
a. Kontrol detektif (detective control), yaitu kontrol yang dapat digunakan untuk
membangun bukti historis dari tindakan pengguna dan proses pada perangkat lunak.
b. Kontrol preventif (preventive control), yaitu kontrol yang mempersulit keberhasilan
penyerang dengan mencegah serangan secara aktif atau proaktif.
c. Kontrol pencegahan (deterrent control), yaitu kontrol yang tidak mencegah serangan,
hanya bersifat pasif.
d. Kontrol korektif (corrective control), yaitu kontrol yang bertujuan untuk dapat
memberikan pemulihan sebagai penjaminan perangkat lunak.
e. Kontrol kompensasi (compensating control) adalah kontrol yang harus diterapkan
ketika kontrol perangkat lunak yang ditentukan pada persyaratan keamanan tidak
dapat dipenuhi karena kendala bisnis atau teknis yang terdokumentasi.
6.1.2 Pemantauan Berkelanjutan
Tahap ini bertujuan untuk melakukan pemantauan terhadap sistem, perangkat lunak,
atau proses. Penting untuk terlebih dahulu menentukan persyaratan pemantauan
sebelum menerapkan solusi pemantauan. Persyaratan pemantauan perlu didefinisikan
dari aspek bisnis di awal siklus hidup pengembangan perangkat lunak.