El fallo de seguridad más longevo: lleva 18 años funcionando y afecta a Chrome, Firefox y Safari
La mayoría de las vulnerabilidades que se detectan para los navegadores suelen corregirse antes de que se hagan públicas. Esto se debe gracias a los investigadores independientes que participan en los programas de recompensas (Bug Bounty) de Google, Microsoft, Mozilla, Apple, y demás compañías. Sin embargo, no siempre ocurre así. Y, a veces, aparecen fallos de seguridad que llevan poniéndonos en peligro años y años, como ocurre con el 0.0.0.0 Day.
Si buscamos por Internet, podemos ver cómo hay indicios de esta vulnerabilidad desde hace más de 18 años. Y, además, no es un fallo que haya pasado desapercibido e ignorado por los piratas informáticos, ni mucho menos. Estos piratas han estado atacando activamente todo tipo de sistemas (sobre todo routers) de forma remota aprovechándose de este fallo. Sin embargo, hace unos días, se ha disparado el número de sitios web que busca explotar este fallo de seguridad. Y, esta vez sí, han saltado las alarmas.
El código malicioso para aprovecharse de este fallo de seguridad se puede esconder en cualquier parte. Por ejemplo, pude ocultarse en páginas web para que, cuando la víctima entre, se explote automáticamente. Pero también se puede esconder en otros programas, e incluso en scripts (se han visto muchos ejemplos en Python, con librerías como Selenium) que ejecutamos en el ordenador.
Pero, ¿cómo funciona?
Cómo funciona el fallo 0.0.0.0 Day
El fallo de seguridad 0.0.0.0 Day es una vulnerabilidad que lleva 18 años funcionando y que afecta a prácticamente todos los navegadores web actuales del mercado. Este fallo de seguridad, en concreto, permite a piratas informáticos atacar otros dispositivos dentro de nuestra red local, u otros servicios que se están ejecutando dentro de la propia máquina, simplemente a través de una IP aparentemente inofensiva, como es la 0.0.0.0 que ha dado nombre al fallo de seguridad.
Lo que hace la vulnerabilidad es que, cuando usamos una IP comodín, como es el caso de 0.0.0.0, el servidor debería ignorarla. Sin embargo, los motores de los navegadores web las identifican como IPs normales, las enruta hasta el destino, y allí incluso se procesan. De esta forma, por ejemplo, si hacen una petición POST a 0.0.0.0:4444 podrían comunicarse con el servicio que se ejecuta en el puerto 4444 de nuestro servidor. Pero la cosa no se queda aquí, ya que, dependiendo de la forma en la que se realice el ataque, es posible incluso que se llegue a ejecutar código remoto en las máquinas.
Cómo protegernos del fallo de seguridad
Los principales navegadores web ya han empezado a tomar medidas para proteger a los usuarios de esta grave vulnerabilidad. Chrome, por ejemplo, ya ha bloqueado el acceso a la versión 0.0.0.0 de las URL, Firefox está trabajando en una nueva versión con su parche (aunque aún es vulnerable) y Apple ya ha hecho cambios en el WebKit de Safari para bloquear estas direcciones en la próxima versión del navegador.
Los investigadores de seguridad que han descubierto esta vulnerabilidad, Oligo, recomiendan a los desarrolladores de aplicaciones que añadan algunas mejoras de seguridad, como encabezados PNA, un sistema de verificación para encabezados HOST, no confiar nunca en localhost y usar HTTPS en las peticiones web.
Además, por esta vez, el fallo de seguridad solo afecta a Linux y macOS, siendo Windows el único sistema operativo que no está afectado por este problema. De esta forma, por una vez, si usamos el sistema operativo de Microsoft, no tendremos de qué preocuparnos.