Mengelola temuan dari deteksi sampai tertutup: memprioritaskan dengan CVSS dan EPSS berimbang konteks eksposur, menulis fix guidance yang dieksekusi developer, menetapkan SLA per severity, dan menjalankan proses risk acceptance resmi untuk kerentanan yang tidak bisa segera diperbaiki

Setelah di episode 12 kalian bisa menemukan temuan bernilai lewat review manual, episode ini menjawab pertanyaan yang justru lebih sering menentukan keberhasilan program AppSec: apa yang terjadi setelah temuan itu ada? Organisasi yang gagal di AppSec jarang karena buta menemukan bug — mereka gagal karena temuan menumpuk tanpa prioritas, fix guidance yang tidak dipahami, dan SLA yang tidak pernah ditegakkan. Remediasi adalah tempat security berubah dari aktivitas menjadi hasil.
Kita bahas empat bagian: skoring & prioritisasi, penulisan fix guidance, SLA, dan jalur exception.
CVSS (Common Vulnerability Scoring System) memberi skor 0–10 dari vektor eksploitasi — versi 4.0 adalah standar aktif saat ini. Nilai praktisnya: bahasa umum untuk urgensinya. Kelemahannya juga nyata: CVSS buta konteks bisnis. CVE 9.8 pada library internal yang tidak terpapar internet bukan urgensi sama dengan CVE 9.8 di edge API production.
Lengkapi dengan dua dimensi:
1. EPSS (Exploit Prediction Scoring System) — probabilitas 0–100% bahwa CVE akan dieksploitasi di alam liar dalam 30 hari. Ini data empiris dari aktivitas eksploitasi aktual, jauh lebih prediktif daripada angka severity teoretis:
curl -s "https://api.first.org/data/v1/epss?cve=CVE-2021-44228" | jq '.data[0]'
# epss: "0.97xxx" → 97% kemungkinan dieksploitasi — patch HARI INI2. Konteks aset: terpapar internet atau internal? Data apa yang disentuh? Ada compensating control (WAF, segmentasi)? Reachable dari kode kalian atau hanya bundled?
| Prioritas | Kriteria |
|---|---|
| P0 — hari ini | Sedang dieksploitasi aktif ATAU critical + internet-facing + reachable |
| P1 — ≤ 7 hari | Critical internal, atau High internet-facing |
| P2 — ≤ 30 hari | High internal, Medium internet-facing |
| P3 — backlog | Low semua posisi, Medium internal |
EPSS mengubah banyak keputusan nyata: CVE "High" dengan EPSS 0.5% boleh menunggu sprint depan; CVE "Medium" dengan EPSS 60% harus maju. Tanpa EPSS, kalian memprioritaskan berdasar kesan; dengannya, berdasar data.
Temuan tanpa guidance adalah keluhan. Struktur tiket remediasi yang saya pakai:
JUDUL : [P1] IDOR pada GET /api/orders/{id} — checkout service
SEVERITY: High | CVSS 7.5 | EPSS n/a (custom finding)
DAMPAK : User A dapat membaca order User B → PII leak, regulasi UU PDP
REPRO : curl -H "Auth token A" .../api/orders/<id-milik-B> → 200 + data
ROOT CAUSE: query by id tanpa filter userId
FIX : tambahkan userId: req.user.id pada kondisi findOne (diff terlampir)
REGRESI : integration test baru — replay suite antar dua akun
SLA : due 2026-08-23Tiga aturan penyusunannya:
Tip
Untuk dependency upgrade yang breaking, sertakan opsi mitigasi sementara (konfigurasi aman, WAF rule) agar risiko tertahan selama tim menyelesaikan upgrade besar — remediasi bukan pilihan biner patch/tidak.
SLA remediasi hanya bermakna jika tiga komponennya lengkap:
Sumber temuan mempengaruhi ekspektasi waktu: temuan internal review bisa masuk sprint normal; temuan bug bounty publik dan CVE aktif di komponen internet-facing biasanya menuntut hotfix path. Siapkan jalur rilis cepat (cherry-pick + patch release) untuk kasus kedua.
Kenyataan produksi: beberapa temuan tidak bisa diperbaiki dalam SLA — vendor belum rilis patch, sistem legacy akan di-rewrite kuartal depan, library fork terlalu mahal. Tanpa jalur resmi, orang akan mematikan scanner atau mengabaikan tiket. Proses acceptance yang sehat punya empat syarat:
ID : EXC-2026-031
TEMUAN : CVE-2025-XXXX di library pdf-gen (internal tool HR)
ALASAN : Tidak ada fix upstream; tool hanya internal; rewrite Q4
CONTROL : WAF blok path /pdf-gen dari VLAN user; alert antrian job > 100
EXPIRY : 2026-11-30 (review ulang saat Q4 planning)
APPROVED: Head of Engineering, 2026-08-20Warning
Exception yang expired tapi masih aktif adalah temuan audit favorit. Automasikan notifikasi expiry-14-hari dan auto-close exception lewat batas waktu — jangan andalkan ingatan manusia.
Inti yang harus dibawa pulang:
Di episode 14 kita zoom out dari satu temuan ke keseluruhan program: Security Testing Strategy — kapan memakai SAST, DAST, SCA, atau pentest; bagaimana mengukur coverage; dan cara mengelola false positive lintas tool agar organisasi tidak mati oleh noise. Sampai jumpa di episode 14!