Server-Side Request Forgery (SSRF)
Server-Side Request Forgery (SSRF) ist eine Sicherheitslücke in Webanwendungen, bei der ein Angreifer den Server dazu bringt, ungewollte Anfragen an interne oder externe Systeme zu senden und so auf geschützte Ressourcen hinter Firewalls zugreifen kann.
Ausführliche Erklärung
SSRF-Schwachstellen entstehen, wenn eine Webanwendung externe Ressourcen basierend auf Nutzereingaben abruft, ohne diese ausreichend zu validieren. Der Angreifer manipuliert dabei URL-Parameter so, dass der Server Anfragen an unbeabsichtigte Ziele sendet – typischerweise an interne Netzwerkdienste, localhost-Adressen oder Cloud-Metadaten-Endpunkte. Da diese Anfragen vom Server selbst ausgehen, umgehen sie Firewalls und andere Netzwerk-Zugriffskontrollen, die normalerweise externe Zugriffe blockieren würden.
Besonders kritisch wird SSRF in Cloud-Umgebungen und Microservice-Architekturen. Angreifer können über SSRF auf Cloud-Metadaten-APIs zugreifen, um sensible Zugangsdaten zu extrahieren, interne Dienste zu scannen oder administrative Funktionen auszunutzen. SSRF ist seit 2021 als Position 10 in den OWASP Top 10 gelistet und wurde in der Version 2025 in die Kategorie "Broken Access Control" integriert, was die wachsende Bedeutung dieser Schwachstelle unterstreicht.
Typische Einfallstore für SSRF sind Funktionen wie Bildvorschauen aus URLs, PDF-Generierung aus Webseiten, Webhook-Konfigurationen oder Import-Funktionen. KMU sind besonders gefährdet, wenn sie moderne Webanwendungen oder APIs einsetzen, ohne spezifische Sicherheitsmaßnahmen gegen SSRF implementiert zu haben. Die Auswirkungen reichen von Informationsabfluss über interne Netzwerk-Scans bis hin zur vollständigen Kompromittierung der Infrastruktur.
Wirksame Schutzmaßnahmen umfassen eine strikte Validierung aller Nutzereingaben mittels Allowlists für zulässige Domains und Protokolle, Netzwerksegmentierung zur Isolation von Anwendungen mit URL-Abruf-Funktionen sowie regelmäßige Sicherheitstests. Blacklist-basierte Ansätze werden ausdrücklich nicht empfohlen, da Angreifer diese systematisch umgehen können.
Praxisbeispiel
Ein österreichisches IT-Beratungsunternehmen mit 25 Mitarbeitenden betreibt ein Kundenportal, das automatisch Website-Vorschauen aus eingegebenen URLs generiert. Ein Penetrationstest deckt auf, dass über manipulierte URLs auf interne Administrationsoberflächen zugegriffen werden kann. Nach Implementierung einer Whitelist für externe Domains und Netzwerksegmentierung wird die Lücke geschlossen.
Code-Beispiel
// Unsicher: Direkte Verwendung von Nutzereingaben
$url = $_GET['image_url'];
$content = file_get_contents($url); // SSRF!
// Sicher: Validierung mit Whitelist
$allowed_hosts = ['cdn.example.com', 'images.partner.at'];
$parsed = parse_url($_GET['image_url']);
if (!in_array($parsed['host'], $allowed_hosts)) {
throw new Exception('Domain nicht erlaubt');
}
$content = file_get_contents($_GET['image_url']);