SSRF (Server-Side Request Forgery) to atak, w którym napastnik nakłania serwer aplikacji do wysłania żądania HTTP pod wskazany adres, najczęściej do zasobów wewnętrznych niedostępnych z internetu.
Jak działa SSRF?
Dzieje się to tam, gdzie aplikacja pobiera zasoby z adresu podanego przez użytkownika, np. importując obraz z URL. Napastnik podaje adres wewnętrzny, a serwer pobiera dane, do których z zewnątrz nie ma dostępu.
Jakie są skutki?
Wyciek danych z usług wewnętrznych, odczyt metadanych chmury z kluczami dostępu oraz skanowanie sieci lokalnej. W środowiskach chmurowych SSRF bywa drogą do przejęcia całej infrastruktury.
Jak zapobiegać SSRF?
Dopuszczaj tylko adresy z listy dozwolonych, blokuj adresy prywatne i lokalne, wyłącz niepotrzebne protokoły i ograniczaj ruch wychodzący serwera zaporą.
Przykład z praktyki
Funkcja „pobierz obraz z adresu” przyjmuje URL i pobiera plik po stronie serwera. Napastnik wpisuje adres usługi metadanych w chmurze albo panelu administracyjnego dostępnego tylko w sieci lokalnej, a odpowiedź wraca do niego w komunikacie lub w podglądzie. Dlatego sama blokada oparta na nazwie hosta nie wystarcza: trzeba sprawdzać adres IP po rozwiązaniu nazwy oraz po każdym przekierowaniu.
Podobnie jak przy zabezpieczaniu aplikacji przed SQL Injection, podstawą ochrony jest traktowanie wszystkich danych od użytkownika jako niezaufanych.
Zobacz w praktyce
Jak zabezpieczyć aplikację przed SQL Injection
Ochrona przed atakami brute force – jak zabezpieczam logowanie na stronie i serwerze
Konfiguracja CDN – cache, czyszczenie i reguły