Když se plán "B" stane hrozbou
Mishandling of Exceptional Conditions řeší situace, kdy aplikace opustí svou "šťastnou cestu" (happy path) a narazí na neočekávaný stav. V BBP hunteři záměrně vyvolávají chyby, aby získali citlivá data nebo obešli logiku aplikace v momentě, kdy je systém nestabilní.
Kritické vektory selhání:
- Information Leakage (Verbose Errors): Únik interních informací o infrastruktuře skrze chybové hlášky.
- Improper Error State (Fail-Open): Stav, kdy selhání bezpečnostní kontroly vyústí v povolení přístupu.
- Resource Exhaustion: Neošetřené výjimky, které za sebou neuklízejí (neuzavřené soubory, paměť), vedoucí k DoS.
Hloubková analýza: Stack Trace & Debug Info
Pro útočníka je Stack Trace (výpis zásobníku) mapou k pokladu. Prozrazuje nejen použité frameworky a jejich verze, ale i vnitřní logiku kódu a cesty v souborovém systému.
at com.target.app.DBManager.connect(DBManager.java:42)
at com.target.app.AuthService.validate(AuthService.java:115)
# Hunter vidí: IP databáze, jméno DB uživatele a strukturu balíčků v Javě.
Fail-Open: Nebezpečí "pohodlné" chyby
K Fail-Open dochází, když programátor předpokládá, že pokud se něco pokazí, není důvod uživatele obtěžovat. V bezpečnostních funkcích (autentizace, filtry) je to fatální.
Pokud webový firewall (WAF) při extrémní zátěži přestane stíhat a prostě "pustí" všechen provoz bez kontroly (aby web nespadl), útočník může v tento moment poslat škodlivý payload.
Mikroslužba pro ověření práv je nedostupná. Aplikace místo chyby 403 vrátí 200 OK, protože "nemá instrukci k zamítnutí".
Side-Channel útoky skrze chyby
I když aplikace nevrací detailní chybu, hunter může sledovat časovou odezvu (Time-based side channel). Pokud zpracování chyby u existujícího uživatele trvá 500 ms a u neexistujícího 10 ms, aplikace právě prozradila informaci o existenci uživatele (User Enumeration).
Prevence: Resilience by Design
Zabezpečení výjimek vyžaduje disciplínu a centralizaci.
| Opatření | Technický dopad |
|---|---|
| Custom Error Pages | Uživatel vidí jen statické HTML (např. 404.html), žádný kód. |
| Global Exception Handler | Jediné místo v kódu, které zachytí všechny pády a bezpečně je zaloguje. |
| Automatic Resource Release | Použití konstrukcí jako try-with-resources k eliminaci DoS. |
| Fail-Closed Policy | Pokud nastane nejasný stav, operace se vždy přeruší a přístup zamítne. |
Shrnutí OWASP (A10:2025)
Nová definice zdůrazňuje, že moderní systémy jsou distribuované. Selhání jedné komponenty nesmí vyvolat kaskádové selhání (Cascading Failure), které by odkrylo citlivá data v celém ekosystému. Rezilience (odolnost) je novým standardem bezpečnosti.