Threat Modeling
Víte co chráníte. A před kým.
STRIDE/DREAD analýza, attack surface mapping a risk scoring. Bezpečnostní hrozby identifikujeme při návrhu architektury — ne po incidentu.
Co je Threat Modeling¶
Threat modeling je systematický proces identifikace bezpečnostních hrozeb. Nejde o intuici nebo zkušenost jednoho člověka — je to strukturovaná metoda, která zajistí, že nepřehlédnete kritická rizika.
Proč na tom záleží¶
Většina bezpečnostních incidentů využívá zranitelnosti, které byly identifikovatelné při návrhu. SQL injection, broken access control, insecure direct object references — to nejsou sofistikované zero-day útoky. Jsou to design flaws, které threat model odhalí za hodiny.
Náš přístup: STRIDE + DREAD¶
STRIDE — Kategorizace hrozeb¶
Pro každý komponent systému analyzujeme šest kategorií:
- Spoofing — Může se útočník vydávat za legitimního uživatele nebo službu? Jak ověřujeme identitu?
- Tampering — Může útočník modifikovat data v transit nebo at rest? Jsou data integritně chráněná?
- Repudiation — Může uživatel popřít akci? Máme audit trail?
- Information Disclosure — Mohou uniknout citlivá data? Error messages, debug informace, API responses?
- Denial of Service — Může útočník znepřístupnit službu? Rate limiting, resource exhaustion?
- Elevation of Privilege — Může uživatel získat oprávnění, která nemá? Horizontal i vertical escalation?
DREAD — Prioritizace rizik¶
Každou identifikovanou hrozbu skórujeme:
- Damage — Jak velká škoda? (1-10)
- Reproducibility — Jak snadno se útok zopakuje? (1-10)
- Exploitability — Jak snadné je zranitelnost exploitovat? (1-10)
- Affected users — Kolik uživatelů je postiženo? (1-10)
- Discoverability — Jak snadné je zranitelnost najít? (1-10)
Výsledné skóre prioritizuje, co řešit první. Critical (40-50), High (30-39), Medium (20-29), Low (10-19).
Attack Surface Mapping¶
Data Flow Diagram¶
Začínáme mapou systému: kde data vznikají, kudy tečou, kde se ukládají. Každý trust boundary (hranice důvěry) je místo, kde se mění security kontext — a kde útočník hledá slabinu.
Typické trust boundaries: - Internet ↔ Load balancer (WAF) - Load balancer ↔ API gateway - API gateway ↔ Backend služby - Backend ↔ Databáze - Služba ↔ Služba (east-west traffic) - CI/CD pipeline ↔ Production environment
Supply Chain Analysis¶
Attack surface není jen váš kód. Zahrnuje: - Dependencies — npm packages, NuGet, PyPI. Známé CVE, typosquatting, dependency confusion. - Container images — Base images, multi-stage builds, vulnerability scanning. - CI/CD pipeline — Build server credentials, artifact integrity, deployment secrets. - Third-party integrace — API klíče, webhook endpoints, OAuth flows.
Workshop formát¶
Den 1: System Discovery¶
- Architektonický overview
- Data flow diagramy
- Identifikace trust boundaries
- Inventarizace assets (data, služby, infrastruktura)
Den 2: Threat Identification¶
- STRIDE analýza per komponent
- Attack tree construction pro kritické scénáře
- Supply chain threat assessment
- Business logic attack scenarios
Den 3: Risk Assessment & Mitigation¶
- DREAD scoring
- Prioritizace rizik
- Návrh mitigací
- Integrace do backlogu
Výstup¶
- Threat Model dokument — Data flow diagramy, identifikované hrozby, DREAD skóre, navrhované mitigace
- Security backlog — User stories pro implementaci mitigací, prioritizované podle rizika
- Attack surface mapa — Vizuální přehled všech vstupních bodů a trust boundaries
- Kontinuální proces — Jak aktualizovat threat model při architektonických změnách
Automatizace¶
Pro větší systémy automatizujeme části threat modelingu:
- IaC scanning — Terraform, Kubernetes manifesty → automatická identifikace exposed services, missing encryption, overly permissive RBAC
- API scanning — OpenAPI spec → automatická identifikace chybějící autentizace, injection points
- Dependency scanning — Continuous monitoring nových CVE v závislostech
Automatizace nenahrazuje workshop — doplňuje ho. Zachytí known patterns, workshop odhalí business logic a architektonické problémy.
Technologie a nástroje¶
Microsoft Threat Modeling Tool, OWASP Threat Dragon, draw.io pro DFD, Jira/Azure DevOps pro security backlog, Snyk/Dependabot pro dependency scanning, Trivy pro container scanning, custom STRIDE templates.
Časté otázky
Na začátku projektu — ideálně při architektonickém návrhu. Ale i pro existující systémy má smysl — odhalíte rizika, o kterých nevíte.
Architekti, senior vývojáři, security engineer, product owner. Kombinace technického a business pohledu je klíčová.