Threat Modeling dengan STRIDE — Security

Apa itu Threat Modeling? Threat modeling adalah proses terstruktur untuk mengidentifikasi, mendaftar, dan memprioritaskan ancaman terhadap sebuah sistem —…

Apa itu Threat Modeling?

Threat modeling adalah proses terstruktur untuk mengidentifikasi, mendaftar, dan memprioritaskan ancaman terhadap sebuah sistem — sebelum attacker menemukannya. Daripada menebak-nebak "kira-kira apa yang bisa dihack", kita memakai framework untuk memetakan ancaman secara sistematis.

Kapan Dilakukan?

Framework STRIDE

STRIDE adalah model dari Microsoft yang membagi ancaman menjadi enam kategori. Setiap huruf mengingatkan kita menanyakan satu jenis pertanyaan pada setiap komponen sistem.

STRIDE Threat Canvas STRIDE Login Service Payment API File Storage Spoofing Credential stuffing Stolen API key Presigned URL leak Tampering Modify JWT claims Change price param Overwrite avatar Repudiation "Bukan saya login" "Bukan saya bayar" "Bukan saya upload" Info Disclosure User enumeration Leak card BIN Public S3 bucket DoS Login brute force Webhook flood Upload 10GB file Elevation IDOR ke admin Refund any order Path traversal
Canvas STRIDE: untuk setiap aset (kolom), tanyakan enam kategori ancaman (baris).

Langkah Praktis

  1. Gambar Data Flow Diagram (DFD) — User → Frontend → API → Database, plus pihak ketiga (payment, email). Tandai trust boundary (titik dimana data berpindah zona kepercayaan).
  2. Identifikasi aset — Apa yang berharga? Data user, uang, reputasi.
  3. Jalankan STRIDE pada tiap komponen — Untuk setiap boundary crossing, tanyakan keenam huruf.
  4. Bangun threat tree — Akar = goal attacker ("curi saldo"), cabang = cara mencapainya.
  5. Nilai dengan risk matrix — Likelihood × Impact → prioritas mitigasi.

Risk Matrix

// Skor likelihood (1-5) × impact (1-5) = risk score
// Contoh:
// - SQL Injection di login: L=4, I=5 → 20 (CRITICAL, fix dulu)
// - XSS di halaman admin: L=2, I=4 → 8 (HIGH)
// - Log disclosure di debug endpoint: L=3, I=2 → 6 (MEDIUM)
// - DoS via slow endpoint: L=2, I=2 → 4 (LOW)

STRIDE vs OWASP Top 10

STRIDE dan OWASP Top 10 saling melengkapi. STRIDE memandu pertanyaan sistematis ("apa yang harus saya khawatirkan?"), OWASP Top 10 memberi katalog vulnerability konkret ("ini jenis bug yang paling umum"). Mapping kasar: Spoofing↔A07 Auth Failures, Tampering↔A08 Data Integrity, Info Disclosure↔A02 Crypto Failures, Elevation↔A01 Broken Access Control.

Best Practices

Yang akan kamu pelajari