Web Proxy Autodiscovery Protocol
Das Web Proxy Auto-Discovery Protocol (WPAD; deutsch „Webproxy-Autoerkennungsprotokoll“) ist ein Protokoll, mit dem Web-Clients (wie ein Browser) zu verwendende Web-Proxys innerhalb eines Computernetzwerkes automatisch finden können, indem eine Proxy autoconfiguration (PAC)-Datei unter einer erratbaren URL gespeichert wird, beispielsweise http://wpad.example.com/wpad.dat
. Das Dateiformat Proxy Auto-Config wurde ursprünglich von Netscape Communications im Jahre 1996 für den Netscape Navigator 2.0 entwickelt.[1]
WPAD macht es möglich, alle Web-Clients einer Organisation anzuweisen, die gleichen Proxyserver zu verwenden, ohne jeden einzeln in Handarbeit konfigurieren zu müssen. Dies wird unter anderem von den verbreiteten Browsern Mozilla Firefox, Google Chrome und Internet Explorer in den aktuellen Versionen, aber auch anderen Programmen und Desktop-Umgebungen wie Unity unterstützt.
Geschichte
WPAD wurde von einem Konsortium der Firmen Inktomi Corporation, Microsoft, RealNetworks und Sun Microsystems (mittlerweile Oracle Corporation) entworfen. WPAD ist als Internet Draft dokumentiert, welcher jedoch im Dezember 1999 abgelaufen ist.[2] Nichtsdestotrotz wird WPAD weiterhin von allen verbreiteten Browsern unterstützt.[3][4] Im Internet Explorer wurde WPAD mit Version 5 eingeführt.
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 mehrere alternative Methoden, nach denen der Systemadministrator den Ort der Proxy-Konfigurationsdatei veröffentlichen kann:
- Dynamic Host Configuration Protocols (DHCP)
- Domain Name Systems (DNS A/CNAME, „Well Known Aliases“)
- Service Location Protocols (SVRLOC/SLP) (optional)
- DNS SRV Records
- DNS TXT „service: URLs“
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 FQDN (Fully Qualified Domain Name) des Rechners pc.department.branch.example.com
lautet, so wird der Browser nacheinander die folgenden URLs abfragen, bis er eine Proxy-Konfigurationsdatei findet.
http://wpad.department.branch.example.com/wpad.dat
http://wpad.branch.example.com/wpad.dat
http://wpad.example.com/wpad.dat
http://wpad/wpad.dat
- Unter Umständen auch
http://wpad.com/wpad.dat
(siehe #Sicherheit)
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 (der vermutlich den client identifier darstellt) 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
oderuniversitaet.edu
oft zu, liegt jedoch zum Beispiel beicompany.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 oftproxy.pac
(natürlich werden Dateien dieses Namens von der WPAD DNS-Suche ignoriert). - DNS-Abfrage mit Microsoft Internet Explorer 6 unter Windows XP sendet als
host
die IP-Adresse, daher sollte der WPAD-Webserver so konfiguriert sein, dass er als name-based-VirtualHost mit allen möglichen Hostnamen im HTTP/1.1-Request adressiert werden kann
Beispiel für Apache:
NameVirtualHost192.168.xx.yy
ServerNamewpad.sub.domain.tld
ServerAliaswpad
ServerAlias192.168.xx.yy
- Der MIME-Typ der Konfigurationsdatei muss lauten
application/x-ns-proxy-autoconfig
. Siehe auch: 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 vonhttp://xxx.yyy.zzz.qqq/wpad.dat
ausliefert, wobeixxx.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 Microsofts DHCP-Server, so sollte man dieserver options
jedes Servers sowie diescope options
eines jeden Bereiches überprüfen. - Ferner muss, um DHCP zu nutzen, der Rechner ein DHCP Client sein. Mit anderen Worten, die Browser (Internet Explorer und Firefox) senden keine eigenen (neuen) DHCP Requests aus, sondern sie verwenden lediglich die zuvor (bei der initialen Zuweisung der IP-Adresse zur Netzwerkkarte per DHCP) zugewiesene WPAD Option 252. Wenn der Rechner in den Netzwerkkarten-Einstellungen DHCP _nicht_ aktiv hat, wird auch der Browser keinen DHCP Request versenden.
- Um DNS zu benutzen, ist ein DNS-Eintrag für einen Host namens WPAD erforderlich.
- bei Windows 2003 DNS Server mit MS09-008 die DNS-Sperrliste bearbeiten
- bei Windows 2008 DNS Server die DNS-Sperrliste bearbeiten Technet-Artikel zu DNS-Sperrliste
- 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 vereinfacht, muss das WPAD-Protokoll 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
odercompany.com
und es steht innerhalb des Netzwerkes keinhttp://wpad.company.co.uk/wpad.dat
beziehungsweisehttp://wpad.company.com/wpad.dat
zur Verfügung, so werden manche Browser beihttp://wpad.co.uk/wpad.dat
bzw.http://wpad.com/wpad.dat
weiterfragen, weil sie gegebenenfalls keinen Unterschied zwischen der Domain der Organisation und einer Top-Level- oder landesweiten Domain machen. Die Zugriffe auf die Webserver von wpad-Domains wiehttp://wpad.com/
zeigen dies sehr deutlich.
Durch die WPAD-Datei kann ein Angreifer alle abfragenden Browser auf seine Proxys umleiten und dann jeglichen Verkehr abfangen und modifizieren.
Daher sollte sichergestellt werden, dass allen DHCP-Servern innerhalb einer Organisation vertraut 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 wird, sogar wenn JavaScript in Webseiten deaktiviert wurde.
Einzelnachweise
- Navigator Proxy Auto-Config File Format. In: Netscape Navigator Documentation. März 1996. Archiviert vom Original am 7. März 2007. Abgerufen am 10. Februar 2015.
- Paul Gauthier: Web Proxy Auto-Discovery Protocol (INTERNET-DRAFT). In: IETF. 28. Juli 1999. Abgerufen am 10. Februar 2015.
- Chromium #18575: Non-Windows platforms: WPAD (proxy autodetect discovery) does not test DHCP. 5. August 2009. Abgerufen am 10. Februar 2015.
- Firefox #356831 - Proxy autodiscovery doesn't check DHCP (option 252). 16. Oktober 2006. Abgerufen am 10. Februar 2015.
Weblinks
- IETF 1999: Web Proxy Auto-Discovery Protocol – verfallener Internet Draft (englisch)
- IETF 2000: Web Proxy Auto-Discovery Protocol – verfallener Internet Draft (englisch)
- IETF 1999: The wpad Abstract Service Type – verfallener Internet Draft zum Auffinden der Web-Proxy-Autodiscovery-Konfigurationsdatei über das Service Location Protocol (englisch)
- wpad.com – die Webseite, auf der fast alle unabgefangenen WPAD-Anfragen von .com-Domains landen (Memento vom 6. Januar 2009 im Internet Archive)
- http://www.fam-hauck.de/wiki/index.php/Automatische_Proxy-Konfiguration_(WPAD)
- Waikato Linux Users Group Wiki 2004: WPAD (englisch)
- Google-Suche nach proxy filetype:pac
- Vorzügliche „Frequently Given Answer“: Automatic proxy HTTP server configuration in web browsers (englisch)