jueves, abril 10, 2008

Inseguridad en UPnP.

Funcionamiento de UPnP:

UPnP (Universal Plug and Play), es un conjunto de protocolos que permite el intercambio de información y datos entre los dispositivos conectados a una red que soporten UPnP, de forma independiente al fabricante, sistema operativo, lenguaje de programación…
Un dispositivo con UPnP activado, puede controlar otros dispositivos UPnP tales como cortafuegos y routers, de forma automática y sin autenticación. Por ejemplo el Messenger utiliza UPnP para abrir automáticamente puertos en el router que tenga UPnP activado para los siguientes servicios:

  • Transferencia de Archivos: 6891-6900 TCP (UPnP)
  • Webcam: Puertos Dinámicos 9000-9999 TCP ( UPnP)
  • Audio: Puertos Dinámicos 5004-65535 UDP (UPnP)
  • Video Conferencia: Puertos Dinámicos 5004-65535 UDP (UPnP)

La arquitectura de UPnP esta basado en cuatro protocolos, que son: SSDP (protocolo simple de descubrimiento de servicios), GENA (arquitectura genérica de notificación de acontecimientos), SOAP (protocolo simple de acceso a objetos) y formato libre XML (lenguaje de marcas extensible). Cada uno de estas tecnologías es responsable de ocuparse de las partes particulares de apilado de UPnP. Su patrón básico de funcionamiento es el siguiente:

Dirección: Cada dispositivo necesita ensamblarse en la red adquiriendo una dirección única que los integrantes de la red puedan utilizar para comunicarse con el dispositivo.

Descubrimiento: Aquí es adonde SSDP entra en funcionamiento. Cada dispositivo permitido UPnP anuncia sus servicios descritos en una URL particular. Para anunciar esta información en UPnP, necesitamos enviar varios paquetes SSDP.

Descripción: Una vez que se descubran los dispositivos, se muestra la descripción del dispositivo. Esta información se encuentra dentro de los archivos ajustados a formato XML que se pueden mostrar en una URL obtenida del proceso del descubrimiento.

Control: Una vez que se termine el proceso de la descripción, se puede controlar el dispositivo sometiendo las peticiones de configuración como mensajes del SOAP. En el cuerpo de mensaje del SOAP proveemos el nombre y la información del método sobre los parámetros y su valor. Entonces lo sometemos al punto de control que procesa la petición y devuelve un mensaje de salida, que se encapsula otra vez en SOAP.

La vulnerabilidad:

Se ha descubierto que debido a UPnP no posee autentificación, mediante la utilización de plugins de navegadores, un atacante puede enviar mensaje UPnP a dispositivos locales. Los descubridores de la vulnerabilidad utilizan un vector de ataque usando un plugin de Flash, que usan los navegadores para visualizar animaciones.

Para que este ataque pueda ejecutarse necesita conocer la dirección IP del dispositivo, esto hace a los router vulnerables debido a que esta dirección puede ser obtenida mediante los navegadores web.

A nivel de UPnP estés ataques lo que envían son mensajes de control SOAP para cambiar configuraciones del dispositivo.

El ataque:

La mayoría de los router que se distribuyen tienen UPnP activado de fábrica. Simplemente un usuario que acceda a una dirección web que tenga una imagen en Flash con un vector de ataque, podría recibir mensajes UPnP al router que cambie la configuración, desde el direccionamiento de puertos, hasta en el peor de los casos cambiar los DNS. Por ejemplo: Cambiando el DNS principal, poniendo un servidor DNS del atacante, en el que la web de un banco este asociada a un servidor del atacante creado para recoger los datos de acceso.

También se le suma el factor de que muchos router permiten el uso de esta tecnología a través de redes inalámbricas, con los posibles daños que puede suponer en redes inalámbricas abiertas, usando como ejemplo un post anterior aquí publicado llamado “Epidemia a través de router WiFi”.

Como evitarlo:

En este momento la única forma de evitarlo es desconectando UPnP tanto en la configuración del router como en el sistema operativo. Este ataque es efectivo independientemente del navegador, hardware o sistema operativo. Aunque en Linux no es muy habitual tener soporte para UPnP en Windows si, de echo, esto le ha reportado alguna vulnerabilidad.

Como desconectarlo en Windows:

Bloquee el puerto UDP 1900 y TCP 2869 en el Firewall. El entorno UPnP usa el puerto UDP 1900 y el puerto TCP 2869. El Protocolo simple de descubrimiento de servicios (SSDP) usa búsquedas de multidifusión para detectar dispositivos UPnP. Las búsquedas de multidifusión se envían al puerto UDP 1900 mediante puertos salientes dinámicos. Firewall de Windows acepta respuestas de búsqueda de multidifusión coincidentes que se reciben al cabo de tres segundos de una búsqueda de multidifusión. Tras ello, el firewall bloqueará las respuestas de búsqueda de multidifusión aunque coincidan con las solicitudes de búsqueda.

Deshabilite el servicio Plug and Play universal. Al deshabilitar el servicio UPnP se contribuye a proteger el equipo afectado de intentos de aprovechar esta vulnerabilidad. Para deshabilitar el servicio UPnP, siga estos pasos:

  1. Haga clic en Inicio y, a continuación, en Panel de control .También puede seleccionar Configuración y, a continuación, hacer clic en Panel de control.
  2. Haga doble clic en Herramientas administrativas.
  3. Haga doble clic en Servicios.
  4. Haga doble clic en Host de dispositivo Plug and Play universal.
  5. En la lista Tipo de inicio, haga clic en Deshabilitado.
  6. Haga clic en Detener y, a continuación, en Aceptar.

También puede detener y deshabilitar el servicio UPnP mediante el siguiente comando en el símbolo del sistema:

sc stop UPnPHost &sc config UPnPHost start= disabled

En el caso de Windows Vista los puertos de UPnP están bloqueados en el firewall por defecto.

Flash UPnP Attack FAQ:
http://www.gnucitizen.org/blog/flash-upnp-attack-faq/

Hacking with UPnP (Universal Plug and Play):
http://www.gnucitizen.org/blog/hacking-with-upnp-universal-plug-and-play/

Hacking The Interwebs:
http://www.gnucitizen.org/blog/hacking-the-interwebs/

Microsoft Security Bulletin MS07-019 (Vulnerabilidad UPnP):
http://www.microsoft.com/technet/security/bulletin/ms07-019.mspx

Microsoft Knowledge Base Article – 931261 (Vulnerabilidad UPnP):
http://support.microsoft.com/kb/931261/es

Arquitectura UPnP:
http://www.upnp.org/resources/documents.asp

Epidemia a través de router WiFi:
http://vtroger.blogspot.com/2008/01/epidemia-travs-de-router-wifi.html
Publicar un comentario en la entrada