SSRF-Abwehr am Edge: Nginx/Apache Regeln und Security Controls

Server-Side Request Forgery (SSRF) ist eine Angriffsart, bei der ein Angreifer den Server dazu bringt, Anfragen an interne oder externe Ressourcen auszuführen, die er normalerweise nicht direkt erreichen könnte. Besonders in Web Stacks mit Nginx oder Apache als Reverse Proxy kann SSRF kritische Sicherheitslücken öffnen, z. B. Zugriff auf interne Dienste, Cloud-Metadaten oder andere vertrauliche APIs. Eine konsequente Absicherung am Edge ist daher essenziell.

Was ist SSRF?

SSRF entsteht, wenn ein Webserver oder ein Backend-Service URLs von Benutzern akzeptiert und ohne ausreichende Validierung oder Einschränkung aufruft. Angreifer können damit:

  • Interne Dienste (localhost, 127.0.0.1) erreichen.
  • Cloud-Metadaten wie AWS EC2 Instance Metadata abrufen.
  • Port-Scanning oder interne Netzwerkrecherche durchführen.
  • Externe Dienste für böswillige Aktivitäten missbrauchen.

Typische Angriffsvektoren

  • Datei-Upload Funktionen mit URL-Downloads.
  • Server-Rendering von externen Bildern oder PDFs.
  • Webhook-Endpunkte oder interne APIs, die von außen aufgerufen werden können.
  • HTTP-Redirects ohne Kontrolle.

Grundprinzipien der SSRF-Abwehr

Die Sicherheit gegen SSRF basiert auf mehreren Ebenen:

  • Whitelist statt Blacklist: Nur vertrauenswürdige Domains und IPs zulassen.
  • Netzwerksegmentierung: Backend-Systeme in getrennten Zonen betreiben.
  • Timeouts & Limits: Request-Timeouts und Response-Size-Limits einrichten.
  • Validierung: URL-Schemata, Ports, IP-Ranges prüfen.
  • Logging und Monitoring: Auffällige Requests sofort erkennen.

Nginx-Regeln gegen SSRF

Nginx kann als Edge-Proxy viele SSRF-Vektoren reduzieren, bevor sie das Backend erreichen.

1. Blockieren von Loopback- und Private-IP-Adressen

map $remote_addr $blocked_ip {
    default 0;
    127.0.0.1 1;
    ::1 1;
    10.0.0.0/8 1;
    172.16.0.0/12 1;
    192.168.0.0/16 1;
}

server {
listen 80;
if ($blocked_ip) {
return 403;
}
}

2. Limitieren von URL-Schemas

server {
    location /fetch/ {
        if ($request_uri !~* ^https?://) {
            return 400;
        }
    }
}

3. Request Size und Timeouts

server {
    client_max_body_size 1m;
    proxy_read_timeout 5s;
    proxy_connect_timeout 2s;
}

Apache SSRF-Abwehr

In Apache kann SSRF durch ModSecurity oder interne Konfigurationen eingeschränkt werden.

1. IP- und Port-Filter

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REMOTE_ADDR} ^127.0.0.1$ [OR]
    RewriteCond %{REMOTE_ADDR} ^10.
    RewriteCond %{REMOTE_ADDR} ^172.(1[6-9]|2[0-9]|3[0-1]).
    RewriteCond %{REMOTE_ADDR} ^192.168.
    RewriteRule ^ - [F]
</IfModule>

2. ModSecurity Regeln

Beispiel-Regeln für URL-Validierung:

SecRule REQUEST_URI "@rx ^https?://" 
    "id:1001,phase:1,deny,log,msg:'Non-HTTP schema blocked'"

SecRule REMOTE_ADDR "@ipMatch 127.0.0.1/8,10.0.0.0/8,192.168.0.0/16,172.16.0.0/12"
"id:1002,phase:1,deny,log,msg:'Private IP blocked'"

Best Practices für sichere SSRF-Abwehr

  • Whitelisting von erlaubten Domains für Backend-Aufrufe.
  • Interne APIs nur über private Netzwerk-Schnittstellen zugänglich machen.
  • Regelmäßige Updates von Nginx, Apache und ModSecurity durchführen.
  • Monitoring: Auffällige Request-Muster aufzeichnen und alarmieren.
  • Sandboxing von URL-Fetch-Funktionen in Applikationen.

Zusammenfassung

SSRF ist ein schwerwiegender Angriffsvektor, der sowohl interne Systeme als auch Cloud-Ressourcen gefährden kann. Durch gezielte Edge-Konfigurationen mit Nginx und Apache, die IP-Filter, URL-Validierung und ModSecurity-Regeln kombinieren, lassen sich die Risiken deutlich reduzieren. Zusätzlich erhöhen Monitoring, Logging und strikte Whitelists die Sicherheit des gesamten Web Stacks und verhindern, dass manipulierte Requests intern Schaden anrichten.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles