Co je Vulnerability Management?
Vulnerability Management je systematický proces identifikace, hodnocení, prioritizace a remediace bezpečnostních zranitelností. Nejde jen o spouštění scannerů - jde o celý životní cyklus od nalezení problému až po ověření jeho opravy. Klíčové je mít centrální místo kde sledujete všechny findings a můžete efektivně pracovat na jejich řešení.
Životní cyklus zranitelností
Vulnerability Lifecycle
1. Discovery - Detekce
Nalezení zranitelností pomocí automatizovaných nástrojů
- SAST scannery (Semgrep, SonarQube)
- SCA nástroje (Snyk, Dependabot)
- DAST nástroje (OWASP ZAP)
- Container scanning (Trivy)
- Secret detection (GitLeaks)
2. Triage - Hodnocení
Posouzení závažnosti a relevance nalezení
- Je to skutečný problém nebo false positive?
- Jaká je závažnost (CVSS score)?
- Je zranitelnost exploitable v našem kontextu?
- Přiřazení CWE kategorie
3. Prioritization - Prioritizace
Určení pořadí řešení na základě rizika
- Kritičnost systému (production vs dev)
- Dostupnost exploitu (EPSS score)
- Business impact
- Snadnost remediace
4. Remediation - Oprava
Odstranění nebo zmírnění zranitelnosti
- Fix v kódu
- Update závislostí
- Konfigurační změna
- Compensating control (WAF pravidlo)
5. Verification - Ověření
Potvrzení že oprava funguje
- Re-scan po opravě
- Penetration testing
- Code review
- Uzavření tiketu
DefectDojo - Vulnerability Management Platform
DefectDojo je open-source platforma pro správu bezpečnostních nálezů. Integruje se s mnoha scanning nástroji a poskytuje centrální místo pro sledování všech zranitelností.
Hierarchie v DefectDojo
- Product Type: Nejvyšší úroveň - např. "Microservices Application"
- Product: Konkrétní aplikace/služba - např. "Payment Service"
- Engagement: Časový okamžik testování - např. "Release v2.1.0"
- Test: Typ testu - např. "SAST Scan", "Dependency Check"
- Finding: Konkrétní nalezená zranitelnost
Import scan results do DefectDojo
CWE - Common Weakness Enumeration
CWE je standardizovaný seznam bezpečnostních slabin v software a hardware. Každá zranitelnost má přiřazené CWE ID, které přesně identifikuje typ problému.
Příklady CWE kategorií
- CWE-89: SQL Injection
- CWE-79: Cross-site Scripting (XSS)
- CWE-798: Use of Hard-coded Credentials
- CWE-22: Path Traversal
- CWE-918: Server-Side Request Forgery (SSRF)
- CWE-502: Deserialization of Untrusted Data
CWE vs OWASP Top 10
OWASP Top 10 jsou široké kategorie. CWE jsou specifické typy zranitelností které do těchto kategorií spadají. Například CWE-89 (SQL Injection) a CWE-79 (XSS) obě spadají do OWASP kategorie "Injection".
Prioritizace zranitelností
CVSS - Common Vulnerability Scoring System
Standardní metrika pro hodnocení závažnosti zranitelností na škále 0-10.
- 0.0: None
- 0.1 - 3.9: Low
- 4.0 - 6.9: Medium
- 7.0 - 8.9: High
- 9.0 - 10.0: Critical
EPSS - Exploit Prediction Scoring System
Pravděpodobnost že zranitelnost bude aktivně zneužita v následujících 30 dnech. Pomáhá prioritizovat real-world rizika.
Práce s false positives
Ne každý finding je skutečný problém. Security scannery často generují false positives. Důležité je je správně identifikovat a označit, aby nezatěžovaly další analýzu.
Jak se vyhnout false positive overload
- Konfigurujte scannery pro váš stack (ignorujte nerelevantní pravidla)
- Používejte baseline - porovnávejte s předchozími scany
- Označujte false positives v DefectDojo
- Vytvářejte exceptions pro známé false positives
- Pravidelné review a čištění starých findings
Vulnerability Management Best Practices
Proces
- Definujte SLA pro remediaci podle severity (Critical=24h, High=7d, etc.)
- Automaticky importujte scan results do centrální platformy
- Pravidelné triage meetings (týdenní)
- Sledujte metriky (MTTR, open findings count, trend)
- Reportujte managementu (měsíční security posture report)
Developer Education
- Používejte findings jako učební materiál
- Ukažte developerům jak vypadá SQL injection v jejich kódu
- Security workshops zaměřené na nejčastější problémy
- Sdílejte CWE dokumentaci
- Cílem je méně nových zranitelností, ne jen opravovat staré
Co NEDĚLAT
- Ignorovat findings protože "není čas"
- Označovat všechno jako false positive
- Mít stovky neřešených findings (alert fatigue)
- Opravovat pouze kritické a ignorovat ostatní
- Nemít žádnou metriku nebo reporting