Netzwerk-Policy und SSRF-Schutz für Webrequests umsetzen #10

Closed
opened 2026-07-17 09:05:50 +02:00 by frank · 1 comment
Owner

Teil von #1. Blockiert durch die HTTP-Ausführungsengine.

Ziel

Die Proxy-Funktion ist standardmäßig auf bewusst erlaubte Ziele begrenzt und kann nicht unbemerkt als Zugriffspfad auf lokale Infrastruktur oder Metadaten-Dienste missbraucht werden.

Scope

  • Konfigurierbare Policy mit Default-Deny für:
    • Loopback
    • Link-local
    • private IPv4-/IPv6-Netze
    • Multicast, Unspecified und weitere nicht globale Ziele
    • Cloud-Metadatenziele
  • Hostname vor Connect auflösen und jede resultierende IP prüfen.
  • DNS-Rebinding vermeiden: geprüfte IP beim Dial verwenden und Host/SNI korrekt erhalten.
  • Redirect-Ziele bei jedem Hop vollständig neu prüfen.
  • Allow-/Deny-Regeln für Schemes, Hosts, Suffixe, Ports und CIDRs.
  • Standardmäßig nur http und https; userinfo in URLs ablehnen.
  • Sensible und Hop-by-hop Header sperren oder explizit erlauben, insbesondere Proxy-Authorization und Connection.
  • Private Ziele nur über eine bewusst gesetzte Opt-in-Allowlist freischalten; diese Entscheidung im Wiki dokumentieren.
  • Fehler nennen die verletzte Policy, aber keine unnötigen internen Netzdetails.
  • Request- und Responsegrößen, Methoden, Redirects und Parallelität als zusätzliche Missbrauchsgrenzen.

Akzeptanzkriterien

  • Tests decken IPv4, IPv6, alternative IP-Schreibweisen, CNAME/Mehrfachauflösung, Redirects und DNS-Rebinding-Simulation ab.
  • 127.0.0.1, ::1, RFC1918, link-local und bekannte Metadata-Ziele sind standardmäßig blockiert.
  • Explizit erlaubte interne Ziele funktionieren.
  • Policy wird vor jedem tatsächlichen Dial durchgesetzt.
  • Kein TOCTOU-Pfad zwischen DNS-Prüfung und Verbindung bleibt offen.
  • Sicherheitsmodell und Restrisiken sind im Wiki dokumentiert.

Referenzen

Teil von #1. Blockiert durch die HTTP-Ausführungsengine. ## Ziel Die Proxy-Funktion ist standardmäßig auf bewusst erlaubte Ziele begrenzt und kann nicht unbemerkt als Zugriffspfad auf lokale Infrastruktur oder Metadaten-Dienste missbraucht werden. ## Scope - Konfigurierbare Policy mit Default-Deny für: - Loopback - Link-local - private IPv4-/IPv6-Netze - Multicast, Unspecified und weitere nicht globale Ziele - Cloud-Metadatenziele - Hostname vor Connect auflösen und jede resultierende IP prüfen. - DNS-Rebinding vermeiden: geprüfte IP beim Dial verwenden und Host/SNI korrekt erhalten. - Redirect-Ziele bei jedem Hop vollständig neu prüfen. - Allow-/Deny-Regeln für Schemes, Hosts, Suffixe, Ports und CIDRs. - Standardmäßig nur http und https; userinfo in URLs ablehnen. - Sensible und Hop-by-hop Header sperren oder explizit erlauben, insbesondere Proxy-Authorization und Connection. - Private Ziele nur über eine bewusst gesetzte Opt-in-Allowlist freischalten; diese Entscheidung im Wiki dokumentieren. - Fehler nennen die verletzte Policy, aber keine unnötigen internen Netzdetails. - Request- und Responsegrößen, Methoden, Redirects und Parallelität als zusätzliche Missbrauchsgrenzen. ## Akzeptanzkriterien - Tests decken IPv4, IPv6, alternative IP-Schreibweisen, CNAME/Mehrfachauflösung, Redirects und DNS-Rebinding-Simulation ab. - 127.0.0.1, ::1, RFC1918, link-local und bekannte Metadata-Ziele sind standardmäßig blockiert. - Explizit erlaubte interne Ziele funktionieren. - Policy wird vor jedem tatsächlichen Dial durchgesetzt. - Kein TOCTOU-Pfad zwischen DNS-Prüfung und Verbindung bleibt offen. - Sicherheitsmodell und Restrisiken sind im Wiki dokumentiert. ## Referenzen - MCP Security Best Practices und SSRF: https://modelcontextprotocol.io/docs/tutorials/security/security_best_practices - Go net/netip: https://pkg.go.dev/net/netip - Go net.Dialer: https://pkg.go.dev/net#Dialer
Author
Owner

🤖 forge agent started

  • Agent: codex
  • Model: gpt-5.6-sol
  • Mode: pr
  • Trigger: assignee=agent|+5 mapped

Netzwerk-Policy und SSRF-Schutz für Webrequests umsetzen — Teil von #1. Blockiert durch die HTTP-Ausführungsengine.

🤖 **forge agent started** - Agent: `codex` - Model: `gpt-5.6-sol` - Mode: `pr` - Trigger: `assignee=agent|+5 mapped` Netzwerk-Policy und SSRF-Schutz für Webrequests umsetzen — Teil von #1. Blockiert durch die HTTP-Ausführungsengine.
frank closed this issue 2026-07-17 13:23:24 +02:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
ai-tools/private-proxy-mcp#10
No description provided.