Vulnerabilidad importante en el protocolo UPnP de 81 millones de routers
Esta noticia no tiene que ver directamente con Java, pero es importante para cualquiera que tenga un router en su empresa (o en su casa). Debido a lo critico de la vulnerabilidad en cuestión, y al hecho de que no se está cubriendo demasiado, he decidido escribir un artículo aquí sobre ella.
UPnP (Universal Plug and Play) es un protocolo que permite que un dispositivo que esté "del lado de la LAN" de un router abra puertos automáticamente en el router. Por ejemplo, Skype, los clientes de bittorrent, o cualquier video consola hace esto para permitir que lleguen conexiones desde el exterior. Esta funcionalidad no suele requerir ningún tipo de autenticación, y se supone no es problemática porque en teoría sólo está disponible del lado de la LAN (donde se supone que todos los dispositivos son fiables, y donde probablemente hace falta un password para conectarse a la red inalámbrica).
En un estudio realizado por Rapid7 donde se han dedicado durante meses escanear todo el espacio de direcciones IP v4 de Internet han encontrado un total de 81 millones de routers que exponen el protocolo UPnP "del lado de la WAN", es decir, que lo exponen abiertamente a todo Internet. Esto es un agujero de seguridad como un túnel de autopista en sí mismo. Además, de estos 81 millones, al menos 50 millones de estos dispositivos son vulnerables a ataques conocidos que pueden realizarse desde cualquier punto de Internet y que pueden permitir abrir puertos en nuestro router. Encima, estos ataques pueden realizarse de modo completamente anónimo porque UPnP funciona con paquetes UDP, donde es fácil falsificar la dirección IP de origen.
De los 81 millones de routers, unos 16 exponen además la interfaz SOA del protocolo UPnP al lado de la WAN. Esto quiere decir que no hace falta ningún tipo de ataque ingenioso a través del envío de un determinado paquete malformado para abrir un puerto en nuestro router. Simplemente basta con decirle al router que habrá un puerto, al igual que haría nuestra Xbox desde la LAN. Sólo que cualquiera conectado a Internet puede pedírselo.
El resto de los aproximadamente 35 millones de routers vulnerables son vulnerables a través de algún ataque ya conocido para el software que emplean como firmware. Pero, potencialmente, todos los 81 millones de routers que exponen este protocolo del lado de la WAN son vulnerables.
La forma de realizar estos ataques y de descubrir que routers son vulnerables ha sido hecha pública por Rapid 7, y ha sido incorporado en Metasploit. Es decir, con práctica total seguridad en este momento ya están siendo explotados de modo activo por hackers ya que tienen toda la información que necesitan para ello e incluso código fuente de ejemplo.
Las vulnerabilidades descritas en el informe de Rapid 7 afectan a un total de 6900 modelos diferentes de router fabricados por 1500 vendedores diferentes. Si queréis más detalles sobre el informe, podéis descargarlo desde aquí. El informe es muy completo e incluso contiene ejemplos de código fuente en C donde se muestran subrayadas el origen de las vulnerabilidades.
Algunas de estas vulnerabilidades son para caerse de culo… a saber quién programó el software. Por ejemplo, mirad el siguiente fragmento de código C donde bufr es una cadena de texto que acaba de leerse de un Socket:
¿Y qué puedo hacer para resolver esto?
Primero, puedes comprobar si eres o no vulnerable empleando este escáner que ha creado la gente de Rapid 7. Ojo, deberías tratar de escáner desde el lado de la WAN del router en cuestión.
Desactivar UPnP en la interfaz de administración de tu router probablemente no va a solucionar el problema porque el router nunca debería haber expuesto esta funcionalidad a la WAN. Desactivar esta funcionalidad probablemente tenga como efecto que no funcione desde la LAN y que siguafuncionando en la WAN, aunque dependerá de cada de router.
Si eres vulnerable, o si no lo tienes claro, la única solución es actualizar el firmware de tu router (o comprar uno nuevo). Muchos vendedores nunca actualizan el firmware de sus router porque no es algo que puedan monetizar. En su defecto, la alternativa es instalar un firmware opensource que no tenga esta vulnerabilidad en tu router. Mi recomendación es emplear Tomato.
Reader Comments (1)
¿ Es suficiente con poner la IP WAN del router a escanear o es necesario que el escaner se lance desde otro equipo no incluido en la LAN ?
Gracias