Web Proxy Autodiscovery Protocol
Das Web Proxy Autodiscovery Protocol (WPAD), ist eine Methode eine Proxy autoconfiguration (PAC)-Datei unter einer erratbaren URL zu speichern, beispielsweise http://wpad.foo.com/wpad.dat. WPAD macht es möglich alle Browser einer Organisation anzuweisen, die gleichen Proxyserver zu verwenden, ohne jeden einzeln in Handarbeit konfigurieren zu müssen.
Zusammenhang
Um alle Browser einer Organisation anzuweisen, ihren Proxy nach den gleichen Regeln auszusuchen, ohne alles von Hand konfigurieren zu müssen, sind zwei Technologien notwendig:
- Der Proxy Auto-Config (PAC)-Standard: Es wird eine zentrale Proxy-Konfigurationsdatei erstellt. (Näheres im betreffenden Artikel).
- Der Web Proxy Autodiscovery Protocol (WPAD)-Standard: Damit wird sichergestellt, dass die einzelnen Browser diese Datei automatisch finden. Damit beschäftigt sich dieser Artikel.
Der WPAD-Standard definiert zwei alternative Methoden, nach denen der Systemadministrator den Ort der Proxy-Konfigurationsdatei veröffentlichen kann, entweder unter Benutzung des Dynamic Host Configuration Protocolles (DHCP) oder des Domain Name Systems (DNS):
Bevor die erste Seite abgefragt wird sendet ein Webbrowser, der die Methode beherrscht, dem lokalen DHCP-Server eine DHCPINFORM-Anfrage und benutzt dann die URL, die ihm in der WPAD-Option der Antwort mitgeteilt wird. Hat der DHCP-Server die gewünschte Information nicht, so wird das DNS benutzt. Wenn beispielsweise der Netzwerkname des Rechners pc.department.branch.company.com lautet, so wird der Browser nacheinander die folgenden URLs abfragen, bis er eine Proxy-Konfigurationsdatei findet:
- http://wpad.department.branch.company.com/wpad.dat
- http://wpad.branch.company.com/wpad.dat
- http://wpad.company.com/wpad.dat
(Anmerkung: Die URLs sind nichtexistente Beispiele.)
Anmerkungen
- DHCP hat eine höhere Priorität als DNS: Falls DHCP eine WPAD URL liefert wird keine DNS-Abfrage durchgeführt.
- Bei der DNS-Abfrage wird der erste Teil der Adresse (die vermutlich den client identifier darstellen) entfernt und durch wpad. ersetzt. Dann bewegt es sich aufwärts in der Hierarchie indem weitere Teile des Domainnamens entfernt werden, bis es eine WPAD-PAC-Datei findet oder die jeweilige Organisation verlassen wird.
- Der Browser versucht zu erraten, wo die Organisation verlassen wird. Diese Schätzung trifft bei Domains nach dem Muster 'firma.com' or 'universität.edu' oft zu, liegt jedoch z.B. bei 'company.co.uk' falsch (siehe Sicherheit).
- Bei der DNS-Abfrage lautet der Pfad der Konfigurationsdatei immer wpad.dat. Beim DHCP-Protokoll kann jegliche URL benutzt werden. Aus traditionellen Gründen lauten die Namen der PAC-Dateien oft proxy.pac (natürlich werden Dateien dieses Namens von der WPAD DNS-Suche ignoriert).
- Der MIME-Typ der Konfigurationsdatei muss lauten "application/x-ns-proxy-autoconfig". Mehr Details enthält der Artikel Proxy Auto-Config.
Prüfliste
Damit WPAD funktioniert, müssen einige Bedingungen erfüllt sein:
- Um DHCP zu benutzen muss das DHCP so konfiguriert sein, dass es die "site-local"-Option 252 ("auto-proxy-config") mit einem String-Wert von "http://xxx.yyy.zzz.qqq/wpad.dat" (ohne die Anführungszeichen) ausliefert, wobei xxx.yyy.zzz.qqq die IP-Adresse eines Webservers sein muss. (Es könnte besser sein, einen Domainnamen zu benutzen anstatt einer numerischen IP-Adresse). Nutzt man Microsoft's DHCP-Server, so sollte man die "server options" jedes Servers sowie die "scope options" eines jeden Bereiches überprüfen!
- Um DNS zu benutzen ist ein DNS-Eintrag erforderlich für einen Host namens WPAD.
- Der WPAD-Host muss fähig sein eine Webseite auszuliefern.
- In beiden Fällen muss der Webserver so konfiguriert werden, dass er .dat-Dateien mit dem MIME-Typ "application/x-ns-proxy-autoconfig" ausliefert.
- Eine Datei namens wpad.dat muss im Hauptverzeichnis der WPAD-Seite liegen.
- Beispiele von PAC-Dateien im Artikel Proxy Auto-Config.
Sicherheit
Während es die Konfiguration der Webbrowser einer Organisation großartig vereinfacht muss das WPAD-Protokoll doch mit Vorsicht behandelt werden, da bereits kleine Fehler folgenschwere Angriffe möglich machen können:
- Ein Angreifer innerhalb des Netzwerkes kann einen DHCP-Server einrichten, der die URL eines bösartigen PAC-Skriptes ausgibt.
- Hat die jeweilige Organisation eine Domain nach dem Muster 'company.co.uk' und es steht innerhalb des Netzwerkes keine http://wpad.company.co.uk/wpad.dat zur Verfügung, so werden die Browser bei http://wpad.co.uk/wpad.dat weiterfragen, in dem Glauben, es sein noch Teil der Domain der Organisation, was in Wahrheit nicht der Fall ist.
Durch die WPAD-Datei kann ein Angreifer alle abfragenden Browser auf seine Proxies umleiten und dann jeglichen Verkehr abfangen und modifizieren.
Daher sollte sichergestellt werden, dass allen DHCP-Servern innerhalb einer Organisation getraut werden kann und dass alle WPAD-Domains, die sich aus der jeweiligen Domain ergeben können, unter Kontrolle der jeweiligen Organisation sind.
Zusätzlich zu diesen Gefahren holt das WPAD im Grunde eine JavaScript-Datei, die auf allen Browsern des Systems ausgeführt werden, sogar wenn JavaScript in Webseiten deaktiviert wurde.
Weblinks
- IETF 1999: Web Proxy Auto-Discovery Protocol - Verfallener Internet-Entwurf, Anwendung auf eigene Gefahr (englisch)
- Waikato Linux Users Group Wiki 2004: WPAD (englisch)
- http://www.monash.edu.au/proxy-secure.pac
- Google-Suche nach proxy filetype:pac http://www.google.com/search?q=proxy+filetype%3Apac
- Vorzügliche "Frequently Given Answer": Automatic proxy HTTP server configuration in web browsers (englisch)