Sertifikasi

Threat Modeling untuk Pemula — Belajar Melihat Risiko Sebelum Celah Menjadi Masalah

Threat Modeling untuk Pemula — Belajar Melihat Risiko Sebelum Celah Menjadi Masalah

Threat Modeling untuk Pemula — Belajar Melihat Risiko Sebelum Celah Menjadi Masalah

Waktu pertama kali belajar security, aku sempat mengira urutannya sederhana: pelajari daftar vulnerability, cari tools, lalu coba menutup celah yang terlihat. Kenyataannya, daftar celah itu panjang dan alatnya semakin banyak. Tanpa cara menentukan mana yang perlu diperhatikan lebih dulu, prosesnya terasa seperti membawa payung ke mana-mana tanpa pernah melihat ramalan cuaca.

Di situlah threat modeling berguna. Ia bukan aktivitas khusus perusahaan besar atau materi yang hanya relevan saat mengejar sertifikasi. Ini adalah kebiasaan berpikir untuk mengenali apa yang perlu dilindungi, siapa yang mungkin mencoba mengganggunya, dan jalan mana yang bisa mereka pakai. Dengan kebiasaan ini, belajar konsep security jadi lebih terarah.

Bukan Menebak Serangan Secara Acak

Threat modeling adalah proses sistematis untuk memetakan ancaman terhadap sebuah sistem. Tujuannya bukan meramal masa depan dengan tepat, melainkan mengurangi kejutan. Kita menerima kenyataan bahwa setiap sistem punya batas, lalu membuat keputusan keamanan berdasarkan konteksnya.

Bayangkan rumah saat akan ditinggal mudik. Kita tidak langsung membeli semua alat keamanan yang ada di toko. Kita mulai dari hal mendasar: pintu mana yang dapat dibuka dari luar, barang apa yang paling penting, siapa yang memegang kunci, dan apakah lampu teras cukup terang. Rumah kecil dan gudang usaha tentu punya risiko yang berbeda. Server, aplikasi web, dan API juga begitu.

Cara berpikir ini sering muncul dalam materi sertifikasi security, walau namanya dapat berbeda. Ujian mungkin membahas risk assessment, asset classification, access control, atau incident response. Threat modeling membantu menyambungkan konsep-konsep tersebut menjadi satu gambaran: kontrol keamanan dipasang karena ada risiko yang ingin dikurangi, bukan karena checklist menyuruhnya.

Mulai dari Aset, Bukan dari Tools

Kesalahan yang mudah terjadi adalah memulai dengan pertanyaan, “Tool apa yang harus aku pasang?” Padahal pertanyaan yang lebih berguna ialah, “Apa yang akan rugi bila sistem ini bermasalah?” Jawabannya adalah aset. Aset tidak hanya berupa server fisik. Akun administrator, database pelanggan, API key, file backup, konfigurasi DNS, dan reputasi layanan juga aset.

Coba tulis aset sebuah blog pribadi yang berjalan di home server. Database berisi artikel dan akun admin jelas penting. File upload penting karena mungkin berisi gambar asli. Token untuk push notification dan kredensial backup juga perlu dijaga, walau tidak muncul di halaman publik. Setelah daftar ini ada, prioritas mulai terlihat: kebocoran API key atau pengambilalihan akun admin biasanya lebih berbahaya daripada perubahan kecil pada tampilan halaman.

Tahap ini melatih kemampuan yang penting saat belajar sertifikasi: membedakan confidentiality, integrity, dan availability. Data pelanggan yang bocor adalah masalah confidentiality. Artikel yang diam-diam diubah adalah masalah integrity. Situs yang tidak dapat dibuka saat dibutuhkan adalah masalah availability. Satu aset dapat menyentuh lebih dari satu aspek.

Gambar Aliran Data dengan Sederhana

Kamu tidak perlu membuat diagram yang rumit untuk memulai. Kertas, aplikasi catatan, atau diagram kotak dan panah sudah cukup. Gambarkan pengguna, browser, reverse proxy, aplikasi, database, dan layanan pihak ketiga. Kemudian beri panah pada data yang bergerak di antaranya.

Misalnya, browser mengirim username dan password ke aplikasi melalui HTTPS. Aplikasi memeriksa password hash di database, lalu membuat session cookie. Saat admin mengunggah gambar, file disimpan ke disk dan metadata dicatat ke database. Tiap perpindahan data adalah tempat untuk bertanya: apakah koneksinya terenkripsi, apakah identitas pengirim terverifikasi, dan apakah input sudah divalidasi?

Batas kepercayaan atau trust boundary perlu mendapat perhatian khusus. Internet publik dan jaringan internal bukan lingkungan yang sama. Browser pengunjung tidak boleh dipercaya seperti proses aplikasi di server. Demikian juga layanan eksternal yang menerima webhook atau token. Batas ini seperti loket stasiun: setiap orang boleh datang, tetapi tidak semua orang boleh masuk ke ruang pengendali kereta.

Gunakan STRIDE sebagai Daftar Pertanyaan

Untuk pemula, framework STRIDE cukup membantu agar tidak berhenti pada ancaman yang paling populer. STRIDE bukan mantra yang harus dipakai kaku, tetapi daftar pertanyaan untuk melihat sistem dari beberapa sisi:

  • Spoofing: bisakah seseorang menyamar sebagai pengguna, layanan, atau admin?
  • Tampering: bisakah data atau konfigurasi diubah tanpa izin?
  • Repudiation: apakah tindakan penting sulit dibuktikan karena tidak ada audit log?
  • Information Disclosure: apakah error, backup, atau endpoint membuka data yang seharusnya rahasia?
  • Denial of Service: apakah satu permintaan berulang dapat membuat layanan kehabisan sumber daya?
  • Elevation of Privilege: bisakah akun biasa mendapatkan akses admin?

Ambil contoh endpoint upload gambar. Spoofing mengarahkan kita pada perlunya authentication. Tampering mengingatkan bahwa nama file dan MIME type dari pengguna tidak boleh dipercaya begitu saja. Information disclosure mendorong kita untuk tidak menyimpan file upload di lokasi yang dapat mengeksekusi script. Denial of Service membuat kita mempertimbangkan batas ukuran file dan rate limiting. Satu fitur sederhana ternyata memiliki beberapa sudut pandang.

Prioritaskan Risiko yang Masuk Akal

Threat modeling bukan kompetisi membuat daftar ancaman terpanjang. Daftar yang panjang tetapi tidak ditindaklanjuti hanya menjadi dokumen yang berdebu. Beri nilai sederhana pada kemungkinan terjadi dan dampaknya. Risiko dengan kemungkinan tinggi serta dampak besar harus diselesaikan lebih dulu.

Pada aplikasi kecil, password admin yang lemah atau backup database yang terbuka di web sering lebih realistis daripada skenario serangan yang sangat canggih. Jangan salah paham, serangan canggih tetap ada. Namun keamanan yang baik dimulai dari menutup pintu depan sebelum memikirkan pagar laser seperti di film.

Catatan prioritas dapat dibuat sekecil ini:

Aset: akun administrator
Ancaman: credential stuffing mengambil alih akun
Kemungkinan: sedang
Dampak: tinggi
Mitigasi: password unik, MFA, rate limiting, audit log login
Status: MFA belum tersedia, rate limiting sudah aktif

Format tersebut membuat risiko dapat ditinjau lagi. Ia juga memisahkan mitigasi yang sudah ada dari harapan yang belum dikerjakan. Dalam pekerjaan nyata, keputusan seperti menerima risiko, mengurangi risiko, memindahkan risiko, atau menghindarinya harus dicatat dengan sadar.

Threat Modeling adalah Siklus, Bukan Tugas Sekali Jadi

Sistem berubah. Hari ini hanya ada halaman artikel, bulan depan mungkin ada login, upload, API, atau integrasi AI. Setiap fitur baru membuka aliran data dan batas kepercayaan baru. Karena itu, lakukan threat modeling saat merancang fitur, sebelum deployment besar, dan setelah ada perubahan arsitektur.

Aku suka menjadikannya bagian dari pertanyaan sebelum menekan tombol deploy: data baru apa yang masuk, siapa yang boleh mengaksesnya, apa yang terjadi bila inputnya aneh, dan log apa yang tersedia bila terjadi masalah? Empat pertanyaan ini tidak menggantikan penetration testing atau code review, tetapi membuat keduanya lebih fokus.

Bagi yang sedang belajar untuk sertifikasi, jangan hanya menghafal definisi STRIDE atau CIA triad. Ambil satu proyek kecil, buat diagramnya, lalu jelaskan alasan setiap kontrol keamanan. Saat dapat menghubungkan teori dengan sistem yang benar-benar kamu kenal, jawaban ujian dan keputusan teknis akan terasa lebih masuk akal.

Penutup

Threat modeling mengajarkan bahwa security bukan soal takut pada semua kemungkinan. Ini soal memilih perhatian dengan tepat. Mulailah dari aset, lihat aliran data, tanyakan ancaman dengan STRIDE, lalu utamakan risiko yang paling masuk akal. Seperti merapikan rumah sebelum hujan, langkah kecil yang dilakukan sebelum masalah datang sering lebih berharga daripada perbaikan panik setelah semuanya basah.

Kalau kamu sedang membangun aplikasi atau home server, coba buat satu diagram sederhana minggu ini. Ancaman apa yang pertama kali terlihat setelah kamu memetakan aliran datanya? Tulis pengalamanmu di kolom komentar, atau bagikan artikel ini kepada teman yang baru mulai belajar cyber security.