Skip to content

Apa itu Secure Software Development Life Cycle (SSDLC)?

Aplikasi Bagus Tapi Tidak Aman
Aplikasi Bagus Tapi Tidak Aman

Pendahuluan

Selain memberikan kenyamanan atau manfaat dari penggunaan aplikasi, pengembang juga harus memastikan bahwa aplikasi yang dibuatnya itu aman. Hal ini dilakukan untuk meningkatkan kepercayaan pengguna dan menghindari kerugian bisnis.

Dalam proses pengembangan aplikasi, biasanya pengembang menggunakan kerangka kerja yang disebut SDLC (Software Development Life Cycle) untuk memastikan pengembangan sesuai dengan kebutuhan bisnis.

Namun, SDLC hanya berfokus pada proses pengembangan tanpa memperhatikan aspek keamanan. Karena keamanan adalah aspek penting dalam pengembangan aplikasi, muncullah istilah Secure-SDLC (SSDLC), di mana tim keamanan membantu pengembang untuk menanamkan praktik keamanan di setiap tahapan SDLC.

Dari informasi ini, dapat diketahui bahwa pemahaman tentang SSDLC ini sangat penting, baik untuk tim keamanan internal (Application Security Engineer / Security Engineer) maupun eksternal (Cyber Security Consultant).

Sebelum membahas SSDLC, kita akan membahas sedikit tentang SDLC terlebih dahulu.

Apa itu SDLC?

Ilustrasi Pengembangan Aplikasi Menggunakan SDLC
Ilustrasi Pengembangan Aplikasi Menggunakan SDLC

SDLC (Software Development Life Cycle) adalah kerangka kerja yang digunakan untuk merancang, mengembangkan, dan memelihara aplikasi. Tujuannya adalah untuk memastikan bahwa aplikasi yang dikembangkan memenuhi kebutuhan bisnis/pengguna dan dikembangkan secara efisien.

Metode SDLC yang umum digunakan adalah:

Tetapi secara keseluruhan setiap metode memiliki tahapan utama berikut:

No.TahapTujuan Utama
1Perencanaan (Planning)Menentukan ruang lingkup, resource, dan timeline
2Analisis Kebutuhan (Requirement Analysis)Menggali kebutuhan aplikasi dari sisi bisnis dan pengguna
3Desain Sistem (System Design)Merancang arsitektur teknis berdasarkan kebutuhan yang telah disepakati
4Implementasi (Implementation)Membuat aplikasi (coding) oleh tim pengembang
5Pengujian (Testing)Memastikan aplikasi bekerja sesuai harapan melalui berbagai skenario uji
6Penerapan & Pemeliharaan (Deployment and Maintenance)Merilis aplikasi ke production dan melakukan pemeliharaan berkala

1. Perencanaan

Sebagai ilustrasi untuk lebih mengetahui SDLC, bayangkan sebuah perusahaan software house mendapatkan proyek untuk membuat aplikasi absensi.

Kliennya adalah perusahaan yang ingin karyawannya bisa absen secara online melalui aplikasi mobile. Aplikasi mobile ini memiliki fitur check-in, check-out, dan rekap laporan bulanan.

Proyek ini pun dimulai mengikuti tahapan SDLC.

Pada tahap Perencanaan, proyek dimulai dengan melakukan kick-off meeting antara tim internal dan klien.

Di sini, tim internal dan klien akan berdiskusi tentang ruang lingkup dan ekspektasi dari proyek yang akan berjalan.

Berikut adalah contoh pertanyaan umum yang ditanyakan kepada klien:

Setelah itu, tim internal (PM, dev, QA, dan desain) berdiskusi dan menyusun:

Dokumen dari hasil tahap ini bisa berupa:

2. Analisis Kebutuhan

Setelah tahap perencanaan selesai dan ruang lingkup umum disepakati, proyek berlanjut ke tahap Analisis Kebutuhan.

Di tahap ini, fokus utamanya adalah menggali detail kebutuhan secara fungsional maupun non-fungsional dari sisi pengguna.

Tim business analyst akan berdiskusi lebih dalam dengan klien untuk menjawab pertanyaan, seperti:

Semua jawaban ini akan dirangkum menjadi dokumen formal, yang bisa berbeda tergantung budaya kerja tim:

Dokumen ini akan menjadi dasar untuk proses desain di tahap berikutnya.

3. Desain Sistem

Pada tahap Desain Sistem, fokus utama adalah menerjemahkan dokumen kebutuhan (PRD/FRD/RFC) menjadi arsitektur teknis yang dapat diimplementasikan oleh tim pengembang.

Berikut adalah beberapa contoh kontribusi dari beberapa peran:

Semua hasil desain ini disusun ke dalam dokumen spesifikasi teknis, yang biasanya mencakup:

Dokumen ini akan menjadi pedoman utama bagi tim pengembang di tahap implementasi berikutnya.

4. Implementasi

Pada tahap ini, tim pengembang mulai menulis kode program sesuai spesifikasi teknis yang telah disusun sebelumnya.

Berikut adalah contoh aktivitas yang dilakukan:

5. Pengujian

Setelah aplikasi berhasil dibuat, proyek memasuki tahap Pengujian.

Di tahap ini, tim Quality Assurance (QA) bertugas untuk memastikan bahwa semua fitur berjalan sesuai dengan kebutuhan yang telah disepakati.

QA biasanya melakukan pengujian berdasarkan skenario, contohnya:

Berikut adalah contoh bug yang ditemukan oleh QA:

Semua temuan ini dicatat dan dikembalikan ke tim pengembang untuk diperbaiki, lalu diuji kembali oleh QA hingga aplikasi dianggap stabil dan siap untuk dirilis.

6. Penerapan dan Pemeliharaan

Pada tahap ini, aplikasi dipindahkan dari lingkungan pengujian ke lingkungan production, dan mulai digunakan oleh karyawan klien.

Tim infrastruktur atau DevOps biasanya akan:

Setelah rilis, aplikasi tetap memerlukan pemeliharaan, seperti:

Proses ini sering dikaitkan dengan model CI/CD, yang memungkinkan pembaruan dilakukan secara lebih cepat dan otomatis.

Itu lah gambaran umum tentang proses SDLC yang akan menjadi bekal pembahasan materi SSDLC.

Apa itu Secure-SDLC?

Ilustrasi Pengembangan Aplikasi Menggunakan Secure-SDLC
Ilustrasi Pengembangan Aplikasi Menggunakan Secure-SDLC

Setelah mempelajari konsep SDLC, kita tahu bahwa konsep tersebut hanya fokus pada pengembangan dan pengujian fungsi aplikasi, tanpa secara eksplisit memperhatikan aspek keamanan.

Padahal, seperti yang kita tahu bahwa keamanan adalah aspek penting yang harus dimiliki oleh aplikasi.

Inilah alasan munculnya konsep Secure Software Development Life Cycle (SSDLC).

Secure Software Development Life Cycle (SSDLC) adalah konsep di mana tim keamanan membantu tim pengembang untuk menanamkan aspek keamanan pada setiap tahap SDLC.

Dengan adanya SSDLC, keamanan bukan lagi menjadi sesuatu yang dipikirkan belakangan, melainkan menjadi bagian terencana sejak awal proses pengembangan.

Penerapan SSDLC tidak hanya meningkatkan keamanan aplikasi, tetapi membantu perusahaan untuk memenuhi standar keamanan seperti ISO 27001:2022 dan juga regulasi keamanan seperti SEOJK 21 MRTI.

Berikut adalah tahapan umum pada SSDLC:

No.TahapAktivitas Tim LainAktivitas Tim Keamanan
1Perencanaan (Planning)Kick-off meeting dengan klien; Menentukan ruang lingkup, timeline, anggaran, dan resource(Belum aktif – tim keamanan mulai terlibat di tahap berikutnya)
2Analisis Kebutuhan (Requirement Analysis)Mengumpulkan kebutuhan fungsional/non-fungsional; Menyusun PRD, FRD, atau RFCMengidentifikasi kebutuhan keamanan; Menyisipkan kontrol seperti autentikasi, logging, dan proteksi data ke dalam dokumen PRD/FRD/RFC; Menyesuaikan jika proyek tunduk pada standar atau regulasi tertentu
3Desain Sistem (System Design)Mendesain arsitektur sistem, API, dan database; Membuat ERD dan diagram alur; Merancang UI mockupMelakukan threat modeling terhadap alur proses bisnis; Security design review terhadap arsitektur dan kontrol akses
4Implementasi (Implementation)Menulis kode frontend/backend; Unit testing; Integrasi modul dan push ke repositoriMemberikan panduan secure coding; Menjalankan SAST, secret scanning dan SCA
5Pengujian (Testing)Pengujian fungsional dan integrasi oleh tim QA; User Acceptance Test (UAT)Menjalankan DAST; Penetration testing
6Penerapan & Pemeliharaan (Deployment and Maintenance)Deploy ke production; Monitoring performa; Patch fitur dan perbaikan bugMonitoring kerentanan dependency & komponen pihak ketiga; Implementasi WAF; Bug bounty & VDP; Patch & incident response; Security regression testing

1. Perencanaan

Pada tahap ini, tim keamanan belum melakukan aktivitas apa pun. Tim hanya menunggu rencana proyek masuk dan menyiapkan keterlibatan pada tahap berikutnya.

2. Analisis Kebutuhan

Pada tahap ini, tim keamanan mulai terlibat untuk memastikan bahwa aspek keamanan sudah dipikirkan sejak awal.

Saat tim business analyst merumuskan kebutuhan pengguna, tim keamanan membantu dengan mengajukan pertanyaan, seperti:

Dari diskusi ini, tim keamanan menyusun kebutuhan keamanan dasar, misalnya:

Semua poin ini dimasukkan ke dalam dokumen PRD/FRD/RFC.

3. Desain Sistem

Pada tahap ini, tim internal mulai menyusun desain arsitektur aplikasi. Di sini, tim keamanan akan membantu memeriksa desain dengan cara:

Dari hasil pemeriksaan ini, tim keamanan akan memberikan rekomendasi jika ditemukan potensi celah keamanan, sehingga desain bisa disempurnakan sebelum ke tahap implementasi.

4. Implementasi

Selanjutnya, tim pengembang akan mulai melakukan coding aplikasi sesuai desain dan spesifikasi yang telah disepakati.

Pada tahap ini, tim keamanan akan melakukan beberapa aktivitas, seperti:

Celah keamanan yang ditemukan dan telah divalidasi akan diperbaiki oleh tim pengembang.

5. Pengujian

Pada tahap ini tim keamanan akan melakukan pengujian setelah aplikasi lulus dari pengujian tim QA. Pengujian yang tim keamanan lakukan adalah:

6. Penerapan & Pemeliharaan

Setelah lolos validasi internal, tahap berikutnya adalah merilis aplikasi ke lingkungan production. Tim keamanan akan tetap terlibat untuk memastikan aplikasi tetap aman selama operasional.

Aktivitasnya yang dilakukan antara lain:

Manfaat Secure-SDLC

Dari penjelasan di atas, kita tahu bahwa Secure-SDLC memberikan manfaat, seperti:

Penutup

Itulah seluruh tahapan dan manfaat dari Secure-SDLC. Dengan menerapkan konsep ini, kita memastikan bahwa aplikasi tidak hanya berfungsi dengan baik, tetapi juga memiliki keamanan yang memumpuni.


[HTB Challenges] Writeup CTF: Baby RE