WPAD (Web Proxy Auto-Discovery) es un protocolo que permite a los navegadores web y sistemas operativos descubrir automáticamente la ubicación de un archivo de Configuración Automática de Proxy (PAC), el cual define cómo las aplicaciones cliente deben conectarse a un servidor proxy para acceder a internet.
Descripción general de WPAD
WPAD simplifica la configuración del proxy del lado del cliente al eliminar la necesidad de ajustes manuales. En lugar de configurar cada aplicación cliente (por ejemplo, navegadores web, configuraciones de proxy a nivel de sistema) con la dirección IP y el puerto de un servidor proxy, los administradores pueden publicar un único archivo PAC. Los clientes configurados para usar WPAD localizarán y descargarán automáticamente este archivo, y luego ejecutarán su lógica JavaScript para determinar el servidor proxy apropiado para una URL determinada. Esto es particularmente útil en grandes organizaciones o entornos de red dinámicos donde la configuración del proxy puede cambiar con frecuencia o variar según la ubicación de la red.
Cómo funciona WPAD: Métodos de descubrimiento
WPAD emplea dos métodos principales para descubrir el archivo PAC: DHCP y DNS. Los clientes suelen intentar primero el descubrimiento DHCP, recurriendo a DNS si DHCP falla o no proporciona la información de WPAD.
Descubrimiento DHCP
El método DHCP (Dynamic Host Configuration Protocol) implica que el servidor DHCP proporcione a los clientes la URL del archivo PAC.
- Solicitud del cliente: Cuando un cliente configurado para WPAD obtiene una dirección IP de un servidor DHCP, solicita opciones DHCP específicas.
- Opción DHCP 252: El servidor DHCP puede configurarse para incluir la Opción 252 (Proxy Auto-Discovery) en su oferta de arrendamiento. El valor de esta opción es una cadena que contiene la URL del archivo
wpad.dat(por ejemplo,http://wpad.example.com/wpad.dat). - Recuperación del archivo PAC: El cliente recibe la URL e intenta descargar el archivo
wpad.datdesde la ubicación especificada.
Descubrimiento DNS
Si el descubrimiento DHCP no tiene éxito o no está configurado, los clientes suelen intentar el descubrimiento basado en DNS.
- Construcción del nombre de host: El cliente construye una serie de posibles nombres de host para el servidor WPAD eliminando progresivamente componentes de su propio nombre de dominio. Por ejemplo, si el FQDN de un cliente es
host.sub.example.com, intentará resolverwpad.sub.example.com, luegowpad.example.com, y finalmentewpad.com(aunque este último a menudo está bloqueado por razones de seguridad). - Consulta DNS: Para cada nombre de host construido (por ejemplo,
wpad.example.com), el cliente realiza una consulta DNS para un registro A (o registro AAAA para IPv6). - Recuperación del archivo PAC: Si una resolución DNS es exitosa, el cliente forma una URL
http://<resolved_IP_address>/wpad.datohttp://<resolved_hostname>/wpad.date intenta descargar el archivo PAC.
Comparación del descubrimiento DHCP vs. DNS
| Característica | Descubrimiento por Opción DHCP 252 | Descubrimiento DNS (wpad.dominio.tld) |
|---|---|---|
| Configuración | Se configura en el servidor DHCP (opción de ámbito). | Se configura en el servidor DNS (registro A o CNAME para wpad). |
| Prioridad | Generalmente preferido e intentado primero por los clientes. | Se usa como respaldo si DHCP falla o no está configurado. |
| Mecanismo | URL proporcionada directamente por el servidor DHCP. | El cliente infiere el nombre de host y lo resuelve vía DNS. |
| Seguridad | Requiere confianza en el servidor DHCP. | Requiere confianza en la infraestructura DNS. Más susceptible a la suplantación de DNS si no está asegurado. |
| Facilidad de configuración | Relativamente sencillo para los administradores de red. | Requiere gestión de registros DNS y configuración de servidor web. |
| Problemas comunes | Valor de Opción 252 incorrecto, mala configuración del servidor DHCP. | Problemas de orden de búsqueda DNS, envenenamiento de DNS, bloqueo del nombre de host wpad, problemas de tipo MIME. |
El archivo PAC (Proxy Auto-Configuration)
El núcleo de WPAD es el archivo PAC, típicamente llamado wpad.dat. Este archivo es un script JavaScript que define una única función: FindProxyForURL(url, host). Cuando un cliente necesita acceder a una URL, llama a esta función, pasando la URL de destino y su nombre de host. El valor de retorno de la función dicta cómo debe proceder el cliente.
Requisitos del archivo PAC
- Nombre de archivo: Debe llamarse
wpad.dat. - Tipo MIME: El servidor web que aloja
wpad.datdebe servirlo con el tipo MIME correcto:application/x-ns-proxy-autoconfig. Sin esto, algunos clientes pueden negarse a procesar el archivo.
Ejemplo básico de archivo PAC
function FindProxyForURL(url, host) {
// Acceso directo para dominios internos
if (isPlainHostName(host) ||
dnsDomainIs(host, ".example.com") ||
isInNet(myIpAddress(), "192.168.1.0", "255.255.255.0")) {
return "DIRECT";
}
// Proxy para tráfico específico a través de un proxy principal
if (shExpMatch(url, "*.google.com/*")) {
return "PROXY proxy1.example.com:8080";
}
// Todo el demás tráfico pasa por un proxy primario con conmutación por error a uno secundario
return "PROXY proxy1.example.com:8080; PROXY proxy2.example.com:8080; DIRECT";
}
Valores de retorno comunes del archivo PAC
DIRECT: Conectar directamente al destino sin usar un proxy.PROXY host:port: Usar el servidor proxy HTTP especificado. Se pueden especificar múltiples proxies para la conmutación por error (por ejemplo,PROXY proxy1:8080; PROXY proxy2:8080).SOCKS host:port: Usar el servidor proxy SOCKS especificado.
Ventajas de WPAD para servicios de proxy
- Gestión centralizada: Los administradores pueden gestionar la configuración del proxy para toda una red desde una única ubicación (el archivo
wpad.daten un servidor web). - Configuración dinámica: La configuración del proxy puede cambiar según la dirección IP del cliente, la URL de destino, la hora del día u otra lógica definida en el archivo PAC. Esto soporta requisitos de enrutamiento complejos.
- Movilidad: Las computadoras portátiles o dispositivos móviles reconfiguran automáticamente sus ajustes de proxy al moverse entre diferentes redes (por ejemplo, LAN de oficina, Wi-Fi de invitado) que proporcionan diferentes configuraciones de WPAD.
- Balanceo de carga y conmutación por error: Los archivos PAC pueden especificar múltiples servidores proxy, permitiendo a los clientes distribuir el tráfico o cambiar automáticamente a un proxy alternativo si el principal no está disponible.
- Control granular: Tipos específicos de tráfico (por ejemplo, recursos internos, sitios seguros) pueden omitir el proxy, mientras que otros se enrutan a través de él, optimizando el rendimiento y la seguridad.
Desventajas y preocupaciones de seguridad
Aunque WPAD ofrece comodidad, introduce varios riesgos de seguridad y desafíos operativos:
- Ataques de intermediario (Man-in-the-Middle - MITM):
- Suplantación de DNS: Un atacante puede suplantar las respuestas DNS para
wpad.dominio.tld, dirigiendo a los clientes a un servidor WPAD malicioso. - Suplantación de DHCP: Un atacante puede configurar un servidor DHCP malicioso para proporcionar a los clientes una URL WPAD maliciosa.
- Archivos PAC maliciosos: Si un cliente descarga un archivo PAC malicioso, el atacante puede redirigir todo el tráfico a través de su proxy, interceptando o modificando datos, o incluso bloqueando el acceso a servicios críticos.
- Suplantación de DNS: Un atacante puede suplantar las respuestas DNS para
- Punto único de fallo: Si el servidor WPAD o el servidor web que aloja el archivo
wpad.datdeja de estar disponible, los clientes perderán su configuración de proxy y potencialmente el acceso a internet, a menos que la lógica del archivo PAC contemple la conmutación por error aDIRECT. - Vulnerabilidad del orden de búsqueda DNS: Los clientes a menudo añaden sus sufijos de dominio a
wpadal realizar el descubrimiento DNS. Si un cliente está en una red con un sufijo de dominio corto (por ejemplo,empresa.local), podría consultarwpad.localo inclusowpad.com(silocalno está configurado). Un atacante que controle estos dominios genéricos podría alojar un archivowpad.datmalicioso. Muchos navegadores y sistemas operativos modernos mitigan esto impidiendo el descubrimiento de WPAD para dominios de nivel superior como.como.local. - Sobrecarga de rendimiento: El proceso de descubrimiento de WPAD (DHCP, búsquedas DNS) y la ejecución del archivo PAC pueden introducir un ligero retraso al establecer conexiones, aunque esto suele ser insignificante.
- Potencial de bypass: Usuarios sofisticados o malware pueden omitir la configuración de WPAD, especialmente si no se aplica a través de otros controles de red.
- Mala configuración del tipo MIME: Un tipo MIME incorrecto en el servidor web (por ejemplo,
text/plainen lugar deapplication/x-ns-proxy-autoconfig) puede hacer que los clientes ignoren el archivowpad.dat.
Configuración de WPAD para un servicio de proxy
La implementación de WPAD implica varios pasos para asegurar que los clientes puedan descubrir y utilizar su servicio de proxy.
-
Crear el archivo PAC (
wpad.dat):- Desarrollar la lógica JavaScript para
FindProxyForURLque defina sus reglas de enrutamiento de proxy. - Probar el archivo PAC a fondo utilizando herramientas o consolas de desarrollador del navegador para asegurar que se comporta como se espera.
- Desarrollar la lógica JavaScript para
-
Alojar el archivo PAC en un servidor web:
- Implementar
wpad.daten un servidor web accesible (por ejemplo, Apache, Nginx, IIS). - Asegurarse de que el servidor web esté configurado para servir
wpad.datcon el tipo MIMEapplication/x-ns-proxy-autoconfig.- Apache: Añadir
AddType application/x-ns-proxy-autoconfig .datahttpd.confo a un archivo.htaccess. - Nginx: Añadir
types { application/x-ns-proxy-autoconfig dat; }anginx.conf. - IIS: Añadir una entrada de tipo MIME para la extensión
.datcon el tipoapplication/x-ns-proxy-autoconfig.
- Apache: Añadir
- Implementar
-
Configurar DHCP:
- En su servidor DHCP, configurar la Opción 252 (Proxy Auto-Discovery) para los ámbitos relevantes.
- Establecer el valor de la cadena a la URL completa de su archivo PAC (por ejemplo,
http://wpad.example.com/wpad.dat).
-
Configurar DNS:
- En su servidor DNS interno, crear un registro A (o CNAME) para
wpad.<su_dominio.tld>que apunte a la dirección IP del servidor web que alojawpad.dat. - Ejemplo: Un registro A para
wpad.example.comque apunte a192.168.1.100.
- En su servidor DNS interno, crear un registro A (o CNAME) para
-
Configuración del cliente:
- Asegurarse de que los sistemas operativos y navegadores de los clientes estén configurados para "Detectar la configuración automáticamente" o "Usar script de configuración automática de proxy". Esta suele ser la configuración predeterminada.
- Para clientes Windows, esta configuración se encuentra típicamente en Opciones de Internet -> Conexiones -> Configuración de LAN.
Deshabilitar WPAD
En entornos donde WPAD presenta riesgos de seguridad inaceptables o no es necesario, se puede deshabilitar:
- Política de grupo (Windows): Los administradores pueden usar Objetos de Política de Grupo (GPO) para deshabilitar la detección automática de proxy para máquinas unidas al dominio.
- Registro (Windows): Las ediciones manuales del registro pueden deshabilitar WPAD. La clave
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connectionscontiene configuraciones comoDefaultConnectionSettingsySavedLegacySettingsdonde se pueden alterar las banderas de WPAD. - Configuración del navegador: La mayoría de los navegadores tienen una configuración para deshabilitar explícitamente la detección automática de proxy.
- Configuración de red: No configurar la Opción DHCP 252 y no crear un registro DNS
wpad.
Mejores prácticas para servicios de proxy con WPAD
- Asegurar el punto final de WPAD: Asegurarse de que el servidor web que aloja
wpad.datesté endurecido y parcheado regularmente. Considerar el uso de HTTPS para la entrega dewpad.dat, aunque no todos los clientes soportan completamente HTTPS para el descubrimiento de WPAD, especialmente los más antiguos. - Validar los archivos PAC: Revisar regularmente el contenido de su archivo
wpad.datpara verificar su corrección y prevenir la inyección de código malicioso. - Monitorear el uso de WPAD: Registrar las solicitudes de
wpad.daten su servidor web para detectar patrones de acceso inusuales o posibles ataques. - Implementar segmentación de red: Aislar el servidor WPAD y la infraestructura del proxy de las redes de usuarios generales.
- Educar a los usuarios: Informar a los usuarios sobre la importancia de la configuración del proxy y los riesgos asociados con su desactivación o la conexión a redes no confiables.
- Considerar alternativas para entornos sensibles: Para entornos altamente seguros o sensibles, considerar la configuración explícita del proxy a través de la Política de Grupo o soluciones de Gestión de Dispositivos Móviles (MDM), que ofrecen un control más directo y una menor dependencia de los protocolos de descubrimiento.
- Bloquear WPAD para dominios externos: Configurar los servidores DNS internos para evitar la resolución de
wpadpara dominios fuera de su control organizacional (por ejemplo,wpad.com,wpad.org). Esto mitiga la vulnerabilidad del orden de búsqueda DNS.