Latihan 1 dari materi Threat Modeling dengan STRIDE di Security — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Buat function classifyStride(threat) yang mengklasifikasikan deskripsi ancaman ke kategori STRIDE.
threat adalah string deskripsi (case-insensitive, jadi ubah ke huruf kecil dulu). Kembalikan salah satu string: "spoofing", "tampering", "repudiation", "info-disclosure", "dos", "elevation", atau "unknown".
Cek kata kunci dari atas ke bawah, yang cocok duluan menang:
"spoofing" jika mengandung impersonat, fake identity, stolen token, atau phish.
"tampering" jika mengandung modif, alter, change price, atau forge.
"repudiation" jika mengandung deny/denies/denied, repudiat, no log, atau audit.
"info-disclosure" jika mengandung leak, expose, disclose, atau stack trace.
"dos" jika mengandung flood, exhaust, denial, atau crash.
"elevation" jika mengandung privilege, admin, escalat, atau idor.
"unknown" untuk sisanya.
Yang dinilai nilai kembaliannya, contohnya:
classifyStride("Attacker floods login endpoint") harus "dos"
classifyStride("Change price in POST body") harus "tampering"
classifyStride("User denies they made the transaction") harus "repudiation"
Ada juga cek tersembunyi untuk spoofing, info-disclosure, dan elevation. Tiga baris console.log di kode awal biarkan saja.