El protocolo de detección automática de proxy web (WPAD) es un método que utilizan los clientes para localizar la URL de un archivo de configuración mediante métodos de detección de DHCP o DNS . Una vez que se completa la detección y descarga del archivo de configuración, se puede ejecutar para determinar el proxy para una URL específica.
Historia
El protocolo WPAD sólo describe el mecanismo para descubrir la ubicación de este archivo, pero el formato de archivo de configuración más comúnmente implementado es el formato de configuración automática de proxy diseñado originalmente por Netscape en 1996 para Netscape Navigator 2.0 . [1] El protocolo WPAD fue redactado por un consorcio de empresas que incluía a Inktomi Corporation , Microsoft Corporation , RealNetworks, Inc. y Sun Microsystems, Inc. (ahora Oracle Corp. ). WPAD está documentado en un BORRADOR DE INTERNET que expiró en diciembre de 1999. [2] Sin embargo, WPAD todavía es compatible con todos los navegadores principales. [3] [4] WPAD se incluyó por primera vez con Internet Explorer 5.0 .
Contexto
Para que todos los navegadores de una organización reciban la misma política de proxy, sin configurar cada navegador manualmente, se requieren las dos tecnologías siguientes:
- Estándar de configuración automática de proxy (PAC): crea y publica un archivo de configuración de proxy central. Los detalles se analizan en un artículo aparte.
- Estándar del protocolo de descubrimiento automático de proxy web (WPAD): garantiza que los navegadores de una organización encuentren este archivo sin necesidad de realizar una configuración manual. Este es el tema de este artículo.
El estándar WPAD define dos métodos alternativos que el administrador del sistema puede utilizar para publicar la ubicación del archivo de configuración del proxy, utilizando el Protocolo de configuración dinámica de host (DHCP) o el Sistema de nombres de dominio (DNS):
Antes de obtener su primera página, un navegador web que implementa este método envía una consulta DHCPINFORM al servidor DHCP local y utiliza la URL de la opción WPAD en la respuesta del servidor. Si el servidor DHCP no proporciona la información deseada, se utiliza DNS. Si, por ejemplo, el nombre de red de la computadora del usuario es pc.department.branch.example.com , el navegador probará las siguientes URL una por una hasta que encuentre un archivo de configuración de proxy dentro del dominio del cliente:
- http://wpad.department.branch.example.com/wpad.dat
- http://wpad.branch.example.com/wpad.dat
- http://wpad.example.com/wpad.dat
- http://wpad.com/wpad.dat (en implementaciones incorrectas, consulte la nota de Seguridad a continuación)
(Nota: Estos son ejemplos y no son URL "en vivo" debido a que emplean el nombre de dominio reservado de " ejemplo.com ").
Además, en Windows, si la consulta DNS no tiene éxito, se utilizará la resolución de nombres de multidifusión local de enlace (LLMNR) y/o NetBIOS . [5] [6]
Notas
DHCP tiene mayor prioridad que DNS: si DHCP proporciona la URL de WPAD, no se realiza ninguna búsqueda de DNS. Esto solo funciona con DHCPv4. En DHCPv6, no hay una opción WPAD definida.
Al construir el paquete de consulta, la búsqueda DNS elimina la primera parte del nombre de dominio (el nombre de host del cliente) y lo reemplaza por wpad . Luego, "asciende" en la jerarquía eliminando más partes del nombre de dominio, hasta que encuentra un archivo PAC de WPAD o abandona la organización actual.
El navegador adivina dónde están los límites de la organización. La suposición suele ser correcta para dominios como "company.com" o "university.edu", pero incorrecta para "company.co.uk" (consulte la sección de seguridad a continuación).
Para las búsquedas DNS, la ruta del archivo de configuración siempre es wpad.dat . Para el protocolo DHCP, se puede utilizar cualquier URL. Por razones tradicionales, los archivos PAC suelen llamarse proxy.pac (por supuesto, la búsqueda DNS de WPAD ignorará los archivos con este nombre).
El tipo MIME del archivo de configuración debe ser "application/x-ns-proxy-autoconfig". Consulte Configuración automática del proxy para obtener más detalles.
Internet Explorer y Konqueror son actualmente los únicos navegadores que ofrecen soporte para los métodos DHCP y DNS; el método DNS es compatible con la mayoría de los navegadores principales. [7]
Requisitos
Para que WPAD funcione, se deben cumplir algunos requisitos:
- Para utilizar DHCP, el servidor debe estar configurado para servir la opción "site-local" 252 ("auto-proxy-config") con un valor de cadena de, por ejemplo, http://example.com/wpad.dat, donde "example.com" es la dirección de un servidor web.
- Para utilizar solo el método DNS, se necesita una entrada DNS para un host llamado WPAD.
- El host en la dirección WPAD debe poder servir una página web .
- En ambos casos, el servidor web debe estar configurado para servir el archivo WPAD con un tipo MIME de
application/x-ns-proxy-autoconfig. - Si se utiliza el método DNS, debe ubicarse un archivo llamado wpad.dat en el directorio raíz del sitio web WPAD .
- Los archivos PAC se analizan en el artículo Configuración automática de proxy .
- Tenga cuidado al configurar un servidor WPAD en un entorno de alojamiento virtual . Cuando se utiliza la detección automática de proxy, WinHTTP y WinINET en Internet Explorer 6 y versiones anteriores envían un encabezado "Host: <dirección IP>" e IE7+ y Firefox envían un encabezado "Host: wpad". Por lo tanto, se recomienda que el archivo wpad.dat se aloje en el host virtual predeterminado en lugar de en el suyo propio.
- Internet Explorer versión 6.0.2900.2180.xpsp_sp2_rtm solicita "wpad.da" en lugar de "wpad.dat" del servidor web.
- Si se utiliza Windows Server 2003 (o posterior) como servidor DNS, es posible que se deba deshabilitar la lista de bloqueo de consultas globales del servidor DNS o se puede modificar el registro para editar la lista de consultas bloqueadas. [8] [9]
Seguridad
Si bien el protocolo WPAD simplifica enormemente la configuración de los navegadores web de una organización, debe usarse con cuidado: errores simples pueden abrir puertas para que los atacantes cambien lo que aparece en el navegador de un usuario:
- Un atacante dentro de una red puede configurar un servidor DHCP que distribuya la URL de un script PAC malicioso.
- Si la red es 'company.co.uk' y no se proporciona el archivo http://wpad.company.co.uk/wpad.dat, los navegadores solicitarán http://wpad.co.uk/wpad.dat. Antes de la introducción de la lista de sufijos públicos en la década de 2010, algunos navegadores no podían determinar que wpad.co.uk ya no se encontraba dentro de la organización.
- Se ha utilizado el mismo método con http://wpad.org.uk. Este solía servir un archivo wpad.dat que redirigía todo el tráfico del usuario a un sitio de subastas de Internet.
- Los ISP que han implementado el secuestro de DNS pueden romper la búsqueda de DNS del protocolo WPAD al dirigir a los usuarios a un host que no es un servidor proxy.
- Las consultas WPAD filtradas podrían provocar colisiones de nombres de dominio con esquemas de nombres de red internos. Si un atacante registra un dominio para responder consultas WPAD filtradas y configura un proxy válido, existe la posibilidad de realizar ataques de intermediario (MitM) a través de Internet. [10]
A través del archivo WPAD, el atacante puede dirigir los navegadores de los usuarios a sus propios servidores proxy e interceptar y modificar el tráfico WWW de todos los usuarios conectados a la red. Aunque en 2005 se aplicó una solución simplista para el manejo de WPAD en Windows, sólo se solucionó el problema del dominio .com. Una presentación en Kiwicon mostró que el resto del mundo seguía siendo críticamente vulnerable a este agujero de seguridad, con un dominio de muestra registrado en Nueva Zelanda con fines de prueba que recibía solicitudes de proxy de todo el país a una velocidad de varias por segundo. Varios de los nombres de dominio wpad.tld (incluidos COM, NET, ORG y US) ahora apuntan a la dirección de bucle invertido del cliente para ayudar a protegerse contra esta vulnerabilidad, aunque algunos nombres aún están registrados (wpad.co.uk).
Por lo tanto, un administrador debe asegurarse de que un usuario pueda confiar en todos los servidores DHCP de una organización y de que todos los posibles dominios wpad de la organización estén bajo control. Además, si no hay un dominio wpad configurado para una organización, un usuario irá a cualquier ubicación externa que tenga el siguiente sitio wpad en la jerarquía de dominios y lo usará para su configuración. Esto permite que quien registre el subdominio wpad en un país en particular realice un ataque de intermediario en grandes porciones del tráfico de Internet de ese país al configurarse como un proxy para todo el tráfico o los sitios de interés.
Además de estas trampas, el método WPAD obtiene un archivo JavaScript y lo ejecuta en los navegadores de todos los usuarios, incluso cuando han desactivado JavaScript para ver páginas web.
Referencias
- ^ "Formato de archivo de configuración automática del proxy de Navigator". Documentación de Netscape Navigator . Marzo de 1996. Archivado desde el original el 7 de marzo de 2007. Consultado el 10 de febrero de 2015 .
- ^ Gauthier, Paul; Josh Cohen; Martin Dunsmuir; Charles Perkins (28 de julio de 1999). "Web Proxy Auto-Discovery Protocol (INTERNET-DRAFT)" (Protocolo de descubrimiento automático de proxy web [BORRADOR DE INTERNET]). IETF . Consultado el 10 de febrero de 2015 .
- ^ "Chromium #18575: Plataformas que no son Windows: WPAD (detección automática de proxy) no prueba DHCP". 2009-08-05 . Consultado el 2015-02-10 .
- ^ "Firefox #356831 - La detección automática de proxy no comprueba DHCP (opción 252)". 2006-10-16 . Consultado el 2015-02-10 .
- ^ "Solución de problemas de detección automática de proxy web (WPAD)". GFI Software. Archivado desde el original el 2021-04-14 . Consultado el 2015-02-10 .
- ^ Hjelmvik, Erik (17 de julio de 2012). "El hombre en el medio de WPAD" . Consultado el 10 de febrero de 2015 .
- ^ "Konqueror: Automatic Proxy Discovery". KDE . 20 de mayo de 2013. Archivado desde el original el 11 de febrero de 2015. Consultado el 10 de febrero de 2015 .
- ^ King, Michael (17 de febrero de 2010). "WPAD no se resuelve en DNS" . Consultado el 10 de febrero de 2015 .
- ^ "Eliminación de WPAD de la lista de bloqueo de DNS". Microsoft TechNet . 26 de septiembre de 2008 . Consultado el 10 de febrero de 2015 .
- ^ "Alerta (TA16-144A) Vulnerabilidad de colisión de nombres en WPAD". US-CERT . 2016-10-06 . Consultado el 2017-05-02 .
Lectura adicional
- de Boyne Pollard, Jonathan (2004). "Configuración automática de servidores proxy HTTP en navegadores web". Respuestas frecuentes .
- Jim Groves (noviembre de 2007). "Lista de bloqueo de consultas globales del servidor DNS". Microsoft .
- "Ejemplos de archivos PAC y WPAD". 18 de septiembre de 2015.