Přeskočit na obsah

Server-side request forgery

Z Wikipedie, otevřené encyklopedie

Server-side request forgery (zkráceně SSRF) je zranitelnost ve webové bezpečnosti. Jedná se o exploit nebo techniku, při které útočník donutí server provozující webovou aplikaci, aby provedl požadavek na jinou URL adresu, než bylo zamýšleno. Tento požadavek může směřovat buď do vnitřní sítě (např. k databázovým serverům, interním API atp.) nebo na externí služby.[1]

Útok tedy funguje podobně jako příbuzné CSRF, ale namísto přihlášeného uživatele útočník zneužívá samotný webový server.[2]

Typický průběh

[editovat | editovat zdroj]

Parametr nějakého HTTP požadavku, který vytvořila webová aplikace (typicky metoda GET, nebo POST),[3] obsahuje URL adresu. Útočník tuto adresu specificky upraví, aby požadavek ze strany serveru směřoval na jinou než zamýšlenou adresu.[1] To může být adresa jiného interního serveru, API, nebo dokonce i nějaké externí služby. Útočník zde využívá skutečnost, že server má ve vnitřní síti často vyšší oprávnění než běžný uživatel, tedy může použít daný server jako prostředníka a potenciálně tak zvýšit svá oprávnění. Se zvýšenými oprávněními může provést nekalou akci, nebo eskalovat v nebezpečnější útok.[4]

Další eskalace útoku

[editovat | editovat zdroj]

SSRF může útočníkovi napomoci k Remote code execution, nebo k úniku interních dat. Také může být cestou ke skenování portů, nebo rovnou celé vnitřní sítě – Cross-Site Port Attack (XSPA).[5][6] Potenciálně také zjednodušuje útoky typu DoS, protože vnitřní síť je často dimenzována na menší objem požadavků než ta vnější.[1]

Blind SSRF

[editovat | editovat zdroj]

K Blind SSRF (SSRF naslepo) může dojít například v situaci, kdy je útočník schopen poslat požadavek do vnitřní sítě, ale nemá přímý přístup k odpovědím, které ovládaný server na útočníkem vynucené požadavky dostává. Může tak pouze odhadovat zda byl jeho útok úspěšný, na základě chování dané aplikace nebo serveru.[3]

Ke zjištění více informací o úspěšnosti útoku musí pak útočník použít další vlastnosti, například stavové kódy nebo časové prodlevy, kdy v případě uzavřených portů je reakce rychlejší než v případě nedosažitelných atp.[3][7] Nebo je také možné směřovat dotaz na externí doménu provozovanou útočníkem.[8]

Ochrana proti SSRF

[editovat | editovat zdroj]

Ochrana proti SSRF musí být zavedena na více vrstvách podle principu Defense-in-Depth. Důležité je na ni myslet už v samotném návrhu. Tedy ideálně stránku navrhnout tak, aby adresy, na které je nutné přistupovat, byly zakódovány ve stránce přímo a nepocházely od klienta.[9]

Na síťové vrstvě může být ochranou proti SSRF například segmentace sítě takovým způsobem, abychom snížili jeho pravděpodobnost. Tedy aby externí servery měly minimální přístup k těm interním.[10] Také je možné instalovat WAF (webový firewall), který by omezil možnosti posílat interní požadavky a tak zabránil například již zmíněnému XSPA. Nebo ve firewallu definovat allowlisty, tedy vybrat jisté vstupy, nebo adresy, které explicitně povolíme (whitelist) nebo zakážeme (blacklist).[11] Příkladem je zablokování některých protokolů a schémat, jako je třeba file://, nebo alespoň omezit jejich užívání na nezbytné minimum.[6]

Na aplikační vrstvě je poté nutné správně ošetřovat vstupy a, pokud je to možné, také zakázat přesměrování.[10]

  1. a b c M. McDonald a Web Security For Developpers, s. 159.
  2. P. Yaworski a Real-World Bug Hunting, s. 150.
  3. a b c P. Yaworski a Real-World Bug Hunting, s. 152-153.
  4. V. Li a Bug Bounty Bootcamp, s. 213.
  5. CWE - CWE-918: Server-Side Request Forgery (SSRF) (4.17). cwe.mitre.org [online]. [cit. 2025-07-19]. Dostupné online. (anglicky) 
  6. a b Server Side Request Forgery - A10 OWASP Top 10 👁‍🗨. www.wallarm.com [online]. [cit. 2025-07-19]. Dostupné online. (anglicky) 
  7. V. Li a Bug Bounty Bootcamp, s. 228.
  8. Blind SSRF vulnerabilities [online]. portswigger.net [cit. 2025-07-19]. Dostupné online. 
  9. M. McDonald a Web Security For Developpers, s. 160.
  10. a b Server Side Request Forgery Prevention - OWASP Cheat Sheet Series. cheatsheetseries.owasp.org [online]. [cit. 2025-07-19]. Dostupné online. 
  11. V. Li a Bug Bounty Bootcamp, s. 215.

Literatura

[editovat | editovat zdroj]
  • MCDONALD, Malcolm. Web Security For Developpers. 1. vyd. San Francisco: No Starch Press, 2020. 189 s. ISBN 978-1-59327-994-3. S. 159-160. (anglicky) 
  • YAWORSKI, Peter. Real-World Bug Hunting. San Francisco: No Starch Press, 2019. 350 s. ISBN 978-1-59327-861-8. S. 150-164. (anglicky) 
  • LI, Vickie. Bug Bounty Bootcamp. San Francisco: No Starch Press, 2021. 390 s. ISBN 978-1-7185-0154-6. S. 213-229. (anglicky)