Know-How
OWASP Top 10: Insecure Design
Insecure Design je kategorie zranitelností, které nelze opravit pouhou implementací. Problém je v architektuře. Žádný patch neopraví špatný design.
Příklady Insecure Design
- Reset hesla přes bezpečnostní otázky
- E-shop bez limitu na kuponové kódy
- API bez rate limitingu na citlivých endpointech
- Autentizace přes SMS bez alternativy (SIM swap)
Threat Modeling — STRIDE
- Spoofing — vydávání se za jiného
- Tampering — neoprávněná modifikace
- Repudiation — popření akce
- Information Disclosure — únik informací
- Denial of Service — znepřístupnění
- Elevation of Privilege — eskalace oprávnění
Secure by Design principy
- Defense in depth — více vrstev ochrany
- Least privilege — minimální nutná oprávnění
- Fail secure — při chybě zamknout, ne otevřít
- Separation of duties
- Trust boundaries — jasné hranice důvěry
Threat model jako kód
# threatmodel.yaml
application: e-shop
data_flows:
- name: user_login
source: browser
destination: auth_service
threats:
- type: spoofing
mitigation: MFA + rate limiting
- type: information_disclosure
mitigation: TLS 1.3, no password in logs
Klíčový takeaway
Bezpečnost začíná v návrhu, ne v kódu. Dělejte threat modeling před prvním řádkem kódu.