Server-Side Request Forgery (SSRF)
- K chybám dochází vždy, když webová aplikace načítá vzdálený prostředek bez ověření uživatelem zadané URL adresy.
- Útočník může aplikaci přimět k odeslání vytvořeného požadavku na neočekávaný cíl, a to i v případě, že je stránka chráněna firewallem, VPN nebo jiným typem ACL.
- Vzhledem k tomu, že moderní webové aplikace poskytují koncovým uživatelům pohodlné funkce, stává se načítání adresy URL běžným scénářem.
- V důsledku toho se zvyšuje výskyt SSRF.
- Závažnost SSRF je stále vyšší v důsledku cloudových služeb a složitosti architektur.
Jak zranitelnosti předcházet
🔴 Nesnažte se SSRF zmírnit pomocí blacklistu nebo regulárních výrazů, útočníci mají k dispozici seznamy, nástroje a dovednosti, které jim to umožňují obejít.
Síťová vrstva
🔴 Segmentujte funkci vzdáleného přístupu k prostředkům v oddělených sítích s cílem snížit dopad SSRF.
🔴 Vynucujte firewall zásady "deny by default" nebo pravidla řízení přístupu k síti, abyste blokovali veškerý provoz (kromě nezbytného provozu v intranetu).
🔴 Stanovte ownership a lifecycle pro firewall na základě aplikací.
🔴 Logujte všechny přijaté a blokované síťové toky (viz logování a monitorování chyb).
Aplikační vrstva
🔴 Sanitizujte a ověřujte všechna zadaná vstupní data.
🔴 Vynuťte URL, port a cílovou destinaci pomocí whitelistu.
🔴 Neposílejte klientům nezpracované odpovědi.
🔴 Zakažte HTTP přesměrování.
🔴 Dbejte na konzistenci URL adres, abyste se vyhnuli útokům jako je DNS rebinding a "time of check, time of use" (TOCTOU) race conditions.
Další opatření
🔴 Nenasazujte jiné služby související se zabezpečením frontendu (např. OpenID).
🔴 Řiďte lokální provoz na těchto systémech (localhost).
🔴 Použijte síťové šifrování (VPN) u frontendů s vyhrazenými a spravovatelnými user groups na nezávislých systémech, čímž zohledníte vysoké požadavky na ochranu.
Příklad zneužití zranitelnosti
- Odhalení citlivých dat - útočníci mohou získat přístup k lokálním souborům nebo interním službám a získat citlivé informace, např.
file://etc/passwd
ahttp://localhost:28017/
. - Přístup k úložišti metadat cloudových služeb - většina poskytovatelů služeb má úložiště metadat, např.
http://169.254.169.254/
. Útočník může metadata přečíst a získat citlivé informace. - Kompromitace interních služeb - útočník může zneužít interní služby k dalším útokům - např. vzdálené spuštění kódu (RCE) nebo DoS.