Millones de dispositivos con UPnP vulnerables

Universal Plug and Play, en adelante UPnP, es un protocolo estandar que permite la comunicación entre dispositivos de red, facilitando el descubrimiento y permitiendo establecer automáticamente configuraciones. Uno de sus usos más típicos es habilitarlo en el router para que una aplicación (normalmente P2P) pueda abrir automáticamente puertos. Por defecto se soporta en Microsoft Windows, Mac OS X y en muchas distribuciones de Linux, y también viene activado en multitud de dispositivos, incluyendo routers, impresoras, cámaras, televisiones, etc. Además, aunque UPnP está destinado a ser utilizado principalmente en la LAN, millones de direcciones IP públicas en Internet responden a solicitudes de este protocolo...


Historicamente UPnP adolece de algunos problemas de seguridad: raramente los fabricantes implementan autenticación, a menudo están expuestas caratecteríticas con privilegios elevados en redes no confiables y es común encontrarse con errores de programación en muchas implementaciones de software UPnP. Pero, ¿cómo te quedarías si te dijéramos que mediante un sólo paquete UDP, cuyo origen podríamos falsificar, pudieramos explotar una vulnerabilidad y ejecutar código remotamente en cualquiera de cada uno de estos millones de dispositivos? Da miedo, ¿verdad? Pues sí es posible, has supuesto bien...

Rapid 7 publica un impactante whitepaper en el que se clasifican tres tipos de vulnerabilidades:

- fallos de programación en implementaciones del protocolo común de descubrimiento UPnP (SSDP) que pueden explotarse para tirar el servicio y ejecutar código arbitrariamente.
- exposición de la interfaz de control UPnP (SOAP) que expone a las redes privadas a ataques desde Internet y puede derivar en fugas de datos sensibles.
- fallos de programación en HTTP UPnP y en implementaciones SOAP que puede ser aprovechado para bloquear el servicio y ejecutar código arbitrariamente.

Como comentamos los productos vulnerables expuestos se cuentan por millones ya que sus implementaciones, ya sea el API de SOAP, la librería open-source libupnp (un SDK de Intel) o MiniUPnP, son utilizados por más de 1.500 fabricantes y 6.900 productos, entre los que se encuentran dispositivos de Belkin, D-Link, Linksys, Netgear o Apple.

Estas vulnerabilidades han sido solucionadas en la versión 1.6.18 del kit de desarrollo de UPnP, sin embargo son muchos los dispositivos y fabricantes que implementan este protocolo y que por tanto tardarán cierto tiempo en actualizar.
De hecho muchos recomiendan desactivar UPnP por completo.

Desde Rapid7 han puesto a disposición del usuario un programa llamado ScanNow UPnP que permite al usuario analizar su red y ver que dispositivos serían sensibles de ser controlados de forma remota gracias a este fallo de seguridad. O si lo prefieres puedes lanzar el escaneo directamente desde Metasploit:


msf > use auxiliary/scanner/upnp/ssdp_msearch
msf  auxiliary(ssdp_msearch) > set RHOSTS 192.168.0.0/24
msf  auxiliary(ssdp_msearch) > run 


o con NMap:

nmap --script upnp-info.nse -p 1900 -sU 192.168.0.0/24

Fuentes:
Encontrados varios fallos en conexiones UPnP
Un fallo en el protocolo UPnP pone a más de 50 millones de dispositivos en peligro 
Security Flaws in Universal Plug and Play: Unplug, Don't Play  
UPnP flaws expose tens of millions of networked devices to remote attacks 

Comentarios