EMZETT.
Login

SSRF: Server-Side Request Forgery

Kurz: Ein Angriff, bei dem ein Angreifer einen Server dazu bringt, im Auftrag des Angreifers Anfragen an andere Adressen zu senden, oft an interne Systeme.

Genauer: Viele Anwendungen laden Inhalte von einer URL, die der Benutzer angibt (Bildvorschau, Webhook, Import). Prüft die Anwendung die Adresse nicht, kann ein Angreifer sie auf interne Dienste richten, die von außen nicht erreichbar sind. Der Server wird so zum Werkzeug des Angreifers. SSRF ist seit 2021 ein eigener Punkt der OWASP Top 10.

Im Detail

Beispiel

Eine Seite lädt ein Profilbild von https://example.com/bild.png. Ein Angreifer gibt stattdessen http://169.254.169.254/latest/meta-data/ ein, die Adresse des Metadaten-Dienstes vieler Cloud-Anbieter. Der Server fragt sie ab und liefert womöglich temporäre Zugangsschlüssel zurück. Ähnlich lassen sich http://localhost:8080/admin oder Adressen im Firmennetz ansprechen.

Warum es gefährlich ist

Der Server steht oft im internen Netz und wird von Firewalls anders behandelt als Fremde. Folgen sind das Auslesen interner Daten, das Auslösen interner Aktionen, das Scannen des internen Netzes und in Cloud-Umgebungen der Diebstahl von Zugangsdaten. Bei Blind-SSRF sieht der Angreifer die Antwort nicht, kann aber über Zeitverhalten oder Nebenwirkungen Schlüsse ziehen.

Schutzmaßnahmen

  • Erlaubte Ziele per Allowlist festlegen (Domains, Protokolle, Ports), statt Verbotenes zu sperren.
  • Adresse nach der DNS-Auflösung prüfen und interne Bereiche (127.0.0.0/8, 10.0.0.0/8, 169.254.0.0/16, …) ablehnen; DNS-Rebinding bedenken.
  • Weiterleitungen nicht automatisch folgen oder erneut prüfen.
  • Nur http und https zulassen, keine file:, gopher: oder ähnliche Schemata.
  • Ausgehenden Verkehr des Servers per Firewall beschränken; in der Cloud den Metadatendienst absichern (zum Beispiel IMDSv2).

Einordnung

SSRF ähnelt CSRF nur im Namen: Bei CSRF missbraucht ein Angreifer den Browser eines Nutzers, bei SSRF den Server der Anwendung.

Siehe auch: OWASP Top 10, Firewall, CSRF