Belajar Security Tester - Security Test Reporting
Episode 11 of 28

Belajar Security Tester - Security Test Reporting

Menulis vulnerability report yang actionable: severity rating, CVSS scoring, reproduction steps, dan remediation guidance untuk developer

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Setelah di episode 10 kita menguji file uploads & SSRF, pada episode ini kita membahas output paling penting dari security testing: vulnerability report. Report yang buruk membuat developer tidak bisa memperbaiki; report yang baik mempercepat remediation.

Struktur Vulnerability Report

text
Vulnerability Report
├── Title: Deskripsi singkat & spesifik
├── Severity: Critical/High/Medium/Low/Info
├── CVSS Score: 0.0 - 10.0
├── Affected Component: URL/endpoint/file
├── Description: Apa vulnerability ini dan dampaknya
├── Reproduction Steps: Langkah pasti untuk mereproduksi
├── Evidence: Screenshots, request/response, logs
├── Impact: Apa yang bisa dilakukan attacker
├── Remediation: Cara memperbaiki
├── References: CWE, OWASP, CVE (jika applicable)
└── Classification: CWE-XXX, OWASP Top 10 category

CVSS Scoring

Komponen CVSS v3.1

KomponenContohScore
Attack Vector (AV)Network0.85
Attack Complexity (AC)Low0.77
Privileges Required (PR)None0.85
User Interaction (UI)None0.85
Scope (S)Changed1.08
Confidentiality (C)High0.56
Integrity (I)High0.56
Availability (A)None0.0

Severity Mapping

CVSS RangeSeverityAction
9.0 - 10.0CriticalFix segera (hari)
7.0 - 8.9HighFix dalam sprint
4.0 - 6.9MediumFix dalam quarter
0.1 - 3.9LowFix when possible
0.0InfoAwareness

Contoh Report

Title

text
SQL Injection pada Search Endpoint

Reproduction Steps

text
1. Buka http://localhost:3000
2. Login dengan akun biasa
3. Buka search dengan payload: ' OR 1=1--
4. Perhatikan: semua produk ditampilkan (seharusnya hanya yang match)
5. Submit request: GET /api/products?search=' OR 1=1--
6. Response mengembalikan semua data produk

Evidence

bash
# Request
GET /api/products?search=' OR 1=1-- HTTP/1.1
Host: localhost:3000
Authorization: Bearer eyJhbGciOi...
 
# Response
HTTP/1.1 200 OK
Content-Type: application/json
 
[{"id":1,"name":"Apple Juice",...},{"id":2,"name":"Orange Juice",...}]

Remediation

text
1. Gunakan parameterized queries (prepared statements)
2. Validasi dan sanitize input pengguna
3. Implementasi WAF rules untuk SQL injection
4. Gunakan ORM dengan built-in protection

Tips Report yang Efektif

text
DO:
├── Spesifik: "SQL injection pada /api/search" bukan "vulnerability found"
├── Reproducible: langkah pasti yang bisa diikuti developer
├── Evidence: sertakan request/response lengkap
├── Actionable: remediation spesifik, bukan generik
└── Prioritas: severity berdasarkan dampak nyata, bukan teori
 
DON'T:
├── Vague: "ada masalah keamanan"
├── Tanpa reproduction steps
├── Overstate severity untuk menakuti
├── Lupa sertakan references (CWE, OWASP)
└── Report tanpa remediation guidance

Tip

Selalu test reproduction steps sebelum mengirim report. Jika developer tidak bisa mereproduksi, report tidak akan diperbaiki.

Praktik: Tulis Report untuk Juice Shop

Buat report untuk vulnerability yang kalian temukan di Juice Shop. Mulai dari yang paling kritis:

bash
# 1. Identifikasi vulnerability terpenting
# 2. Tulis reproduction steps lengkap
# 3. Sertakan request/response evidence
# 4. Berikan remediation guidance
# 5. Assign CVSS score

Penutup

  • Report structure: title, severity, CVSS, reproduction steps, evidence, remediation.
  • CVSS: gunakan v3.1 untuk scoring yang konsisten.
  • Reproducibility: langkah pasti yang bisa diikuti developer.
  • Actionable: remediation spesifik, bukan generik.

Di episode 12 selanjutnya kita akan membahas testing mobile apps — app security testing, intercept HTTPS, storage analysis, dan backup inspection. Sampai jumpa di episode 12!

Belajar Security Tester - Security Test Reporting | Belajar Security Tester