HTTPoxy - Ist meine Go-Anwendung betroffen?
Environment
Red Hat Enterprise Linux 7.x
Issue
Dieses Problem tritt auf, wenn Go im CGI-Modus verwendet wird. Falls ein Go CGI-Skript die Umgebungsvariable "HTTP_PROXY" zur Konfiguration eines ausgehenden HTTP-Proxys für nachfolgende HTTP-Anfragen verwendet, oder falls Ihr Skript ein Modul oder eine Bibliothek verwendet, die dieses Verhalten aufweist, wie zum Beispiel das "http"-Modul von Go, dann kann darauf folgender HTTP-Datenverkehr, der aus dem Go CGI-Skript stammt, über einen Proxy, der vom Angreifer kontrolliert wird, umgeleitet werden.
Bitte beachten Sie, dass dies nur ein Problem ist, wenn das betroffene Go CGI-Skript auf einem CGI-aktivierten HTTP-Server bereitgestellt ist, der die Inhalte des "Proxy" Headers einer eingehenden HTTP-Anfrage über die "HTTP_PROXY" Umgebungsvariable bereitstellt.
Resolution
Red Hat hat Updates und Anleitungen zur Vorbeugung für HTTP-Server herausgegeben, wodurch HTTP-Server davon abgehalten werden, die Inhalte des HTTP "Proxy" Headers als "HTTP_PROXY" Umgebungsvariable auszugeben. Wenn Sie Ihren HTTP-Server aktualisieren oder die Vorbeugung anwenden, wird dieser Vektor geschlossen und die Ausnutzung dieses Fehlers verhindert.
Wenn Sie vermeiden wollen, dass der vom Angreifer erstellte Header verwendet wird, können Sie eine der folgenden Vorgehensweisen ausführen:
- Konfigurieren Sie die Firewall Ihrer Web-Anwendung, um den "Proxy:"-Header zu entfernen
- Ändern Sie die Konfiguration Ihres HTTP-Servers, damit der "Proxy:" Header entfernt wird, bevor Go-Skripte aufgerufen werden (siehe andere Knowledgebase-Artikel, Links im Haupt-HTTPoxy Artikel unten).
- Nehmen Sie folgende Änderungen an Ihrem Programm vor:
Fügen Sie “os” zu den Imports hinzu, wenn es nicht bereits vorhanden ist:
import “os”
Fügen Sie oben in Ihrer "Haupt"-funktion hinzu:
os.Unsetenv(“HTTP_PROXY”)
Root Cause
Unter HTTPoxy - CGI "HTTP_PROXY" Variablenname kollidiert finden Sie weitere Informationen.
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Comments