Web exploits: qué son y cómo defenderse (Parte 1)
Hemos querido dedicar un amplio espacio al tema del «Web Exploit», un tema que todo responsable informático debería tratar con familiaridad; por ello, publicaremos dos artículos complementarios.
» Part 1: el presente artículo
» Part 2: «Stay Tuned.»
1. Vulnerabilidades, exploits web, parches
Para entender qué son los web exploits y para qué se utilizan, es importante partir del concepto de «vulnerabilidad», que, en cierto sentido, es el factor que habilita el exploit y permite utilizarlo. Por consiguiente, la vulnerabilidad y el exploit están estrechamente relacionados: para que un exploit web actúe debe haber una o más vulnerabilidades.
Las vulnerabilidades (también llamadas «bugs») son los puntos débiles que se encuentran dentro del software: todo software es -por definición- imperfecto, precisamente porque está creado por seres humanos. Para dar una idea de la escala: el sistema operativo Microsoft Windows contiene más de 50 millones de líneas de código, el conjunto de todos los servicios de Google, hasta 40 veces más (2.000 millones de líneas).
Es inevitable que dentro de un software tan complejo se escondan algunos fallos, más o menos graves. Estos «fallos» en la seguridad de un programa se llaman, de hecho, vulnerabilidades y pueden explotarse para llevar un ataque al sistema informático. Prácticamente todos los ataques utilizan vulnerabilidades (ya sean del sistema informático o del factor humano) para entrar en el sistema.
Para comprender la importancia que puede tener -o no- una vulnerabilidad, debemos evaluar hasta qué punto es realmente explotable. En otras palabras, una vulnerabilidad solo supone un riesgo si la amenaza es capaz de explotarla para ejecutar un ataque.
En realidad, no todas las vulnerabilidades pueden explotarse para la distribución de malware. Algunas pueden no ser explotables porque los sistemas de seguridad impiden que alguien las utilice, o su explotación puede ser demasiado costosa en comparación con los resultados que se obtendrían.
Una vulnerabilidad aún no descubierta o que sólo conocen unos pocos, pero que desconocen los desarrolladores de software (que en ese caso han tenido «cero días» para solucionarla), se denomina «Vulnerabilidad de día cero«. Son las más temidas porque si un atacante -y sólo él- la conoce, tendría un arma en su mano capaz de hacer graves daños. Los exploits Zero-Day se aprovechan precisamente de estos fallos.
Cuando se tiene conocimiento de la vulnerabilidad, se denomina «n-día» y, en ese momento, suele solucionarse mediante una actualización del software. Dicha actualización de seguridad se denomina «parche». Cuando el parche está disponible (por el fabricante del software), la vulnerabilidad puede volverse inofensiva, pero sólo si se instala el parche, y esto -como veremos- puede no ocurrir, dejando aún vulnerable el sistema.
Las vulnerabilidades conocidas se clasifican como Vulnerabilidades y Exposiciones Comunes, abreviadas como CVE («common vulnerabilities and exposures»). La Mitre Corporation, una agencia financiada por los Centros de Investigación y Desarrollo Financiados con Fondos Federales (FFRDC) del Departamento de Seguridad Nacional de Estados Unidos, mantiene actualizada esta clasificación.
Cada vulnerabilidad está catalogada en el mencionado sitio del MITRE con la clasificación definida como: CVE – año – número secuencial.
Por ejemplo: CVE-2019-0708 es la famosa vulnerabilidad que afecta al Protocolo de Escritorio Remoto (RDP) de Windows y que puede ser explotada mediante un ataque de Ejecución Remota de Código (RCE) desde el exploit web Bluekeep, del que hablaremos más adelante.
Las vulnerabilidades se clasifican según el nivel (puntuación) de gravedad.
Uno de los más utilizados es el «Common Vulnerability Scoring System» (CVSS). Se trata de un método para identificar las principales características de una vulnerabilidad y producir una puntuación numérica que refleja su gravedad. A continuación, la puntuación numérica puede traducirse en una representación cualitativa (como baja, media, alta o crítica) para ayudar a las organizaciones a evaluar y priorizar adecuadamente sus procesos de gestión de vulnerabilidades.
CVSS es ahora un estándar público utilizado por organizaciones de todo el mundo. Su uso por parte de las agencias estadounidenses fue recomendado por el Instituto Nacional de Estándares y Tecnología (NIST) en «NIST Special Publication (SP) 800-51, Use of the CVE Vulnerability Naming Scheme», que se publicó inicialmente en 2002.
A continuación, reproducimos la tabla de clasificaciones CVSS v3.0, tomada del sitio NVD del NIST, donde puede verse que el nivel de gravedad de una vulnerabilidad puede oscilar entre una puntuación de 0,0 y 10,0 para las más críticas.
En el mismo sitio también hay disponible una calculadora del Sistema de Puntuación de Vulnerabilidades Comunes para calcular la puntuación.
Un Exploit es un código (programa) creado para explotar una vulnerabilidad con el fin de llevar a cabo un ataque a un sistema informático: la «exploitation» informática es precisamente la explotación de una vulnerabilidad.
Si el exploit se crea para una vulnerabilidad de día cero, estamos hablando de exploits de día cero. Estos son, obviamente, los más temidos porque todavía no hay un parche que haya cerrado esa vulnerabilidad.
Sólo el atacante ha descubierto esa vulnerabilidad y sólo él sabe cómo explotarla. Para responder al ataque, el desarrollador del software debe crear y publicar un parche, que sólo podrá proteger a quienes lo instalen, obviamente sólo después de su publicación y una vez conocida la vulnerabilidad.
Esta es precisamente la razón por la que las vulnerabilidades de día cero pueden tener un enorme valor comercial: las más valiosas se cotizan entre 2,5 y 3 millones de dólares. Podemos verlo en el sitio web de la empresa Zerodium, fundada por Chaouky Bekrar, que anteriormente había creado
Vupen y que cotiza una vulnerabilidad de día cero para Android tan elevada a 2,5 millones de dólares.
Hay muchas empresas que, de forma más o menos transparente, comercian con estas vulnerabilidades.
Entre ellas se encuentra Crowdfense, una empresa con sede en Dubái dirigida por el italiano Andrea Zapparoli Manzoni (miembro de Clusit), que lanzó su primer «Bug Bounty Program» en abril de 2018, destinando un presupuesto de 10 millones de dólares a la compra de vulnerabilidades de día cero. En 2019, el programa se amplió con 15 millones de dólares adicionales.
El precio reconocido por cada envío individual de vulnerabilidades oscila entre 100.000 y 3 millones de dólares. El programa está dirigido a investigadores de software y tiene como clientes principalmente a la policía, los servicios de inteligencia y la administración pública. El objetivo declarado de Crowdfense es hacer transparente y legal el mercado de compraventa de vulnerabilidades y exploits.
>> FlashStart te protege de una amplia gama de amenazas y bloquea el acceso a sitios dañinos ? Comience su prueba gratuita o solicite una cotizaciòn
2. Kits de explotación
El mercado de los exploits web se ha industrializado y articulado cada vez más. Han surgido los kits de explotación: se trata de herramientas informáticas que permiten automatizar la explotación de una vulnerabilidad y ejecutar un código malicioso.
Debido a su naturaleza altamente automatizada, los kits de exploits se han convertido en uno de los métodos más populares de distribución masiva de malware o herramientas de acceso remoto (RAT) por parte de los grupos delictivos, lo que reduce la barrera de acceso para los atacantes.
Los creadores de exploit kits ofrecen estos programas en la Web y, especialmente, en la Darkweb, junto con una interfaz de gestión y un conjunto de vulnerabilidades atacables, además de un conjunto de características que hacen que los ciberataques sean sencillos y eficaces y, en la mayoría de los casos, también automatizados.
En consecuencia, hoy en día convertirse en ciberdelincuente es fácil, aunque no se tengan grandes conocimientos técnicos: se pueden «alquilar» kits de exploits a las plataformas que los gestionan: es el fenómeno Cybercrime-as-a-service.
Entre los kits de exploits históricos y más famosos podemos mencionar: Angler, Neutrino, Nuclear.
Muchos kits de explotación web se construyen para explotar vulnerabilidades en programas específicos: el muy atacado Adobe Flash Player, un complemento del navegador, ampliamente utilizado hasta hace unos años y conocido por ser una «mina» de vulnerabilidades, que fueron explotadas, por ejemplo, por Neutrino (¡y más!). Afortunadamente, desde finales de 2020, la propia Adobe lo ha abandonado.
Ahora que ya no se utiliza Flash y que los navegadores modernos admiten actualizaciones automáticas (el navegador más popular, Chrome, recibe una media de una actualización por semana), los kits de exploits son menos eficaces en general.
A pesar de que las medidas de seguridad han mejorado, especialmente en lo que se refiere a la navegación web, algunos kits de exploits web siguen siendo herramientas utilizadas para la ciberdelincuencia.
Veamos un ejemplo de un exploit en acción en un ataque denominado «drive-by-download» (o «trough»):
» El exploit se inicia desde una página web comprometida. La página comprometida desviará el tráfico web a otra página. Dentro de la página de destino hay un código (inyectado por el atacante que comprometió el sitio) que hace un perfil del dispositivo de la víctima en busca de cualquier posible aplicación vulnerable basada en navegador. Si el dispositivo está totalmente parcheado y actualizado, el exploit se detiene. Si, por el contrario, existen vulnerabilidades, el sitio web comprometido dirige silenciosamente el tráfico de red al exploit.
» El exploit utiliza una aplicación vulnerable para ejecutar secretamente malware en un host. Las aplicaciones más atacadas son Adobe Flash Player, Java Runtime Environment y Microsoft Silverlight. También puede utilizar el navegador web: el exploit web se envía como código dentro del tráfico web.
» Si el exploit tiene éxito, envía un payload para infectar el host. El payload puede ser un descargador de archivos que recupera otro malware o el propio malware. En los kits de explotación más sofisticados, el payload se envía a través de la red como un binario cifrado que, una vez que llega al host de la víctima, se descifra y ejecuta. El payload más común hoy en día es el ransomware, pero hay muchos otros, como el malware de botnet, los infostealers y los troyanos bancarios.
»En conclusión, el exploit web es la herramienta encargada de ser el portador del ataque real (payload).
3. Web exploits: algunos casos famosos… y dónde encontrarlos
Repasemos la historia de algunos exploits web famosos. Comenzaremos con algunos casos históricos y ahora inactivos.
Neutrino fue uno de los kits de exploits más populares, empezando en 2016. Aprovechaba principalmente vulnerabilidades de Flash conocidas como CVE-2016-4117 y CVE-2016-1019. Se utilizó como fuente de propagación de algunos tipos populares de ransomware, como Crypwall, Cerber y Locky.
Angler, además de las vulnerabilidades crónicas de Flash, explotaba las de Microsoft Silverlight, como la CVE-2016-1034. Esto también se utilizó como base para propagar determinados tipos de ransomware.
Veamos ahora algunos de los más recientes y famosos exploits web responsables de ataques que han hecho historia.
No podemos dejar de mencionar el famoso exploit EternalBlue, que, en mayo de 2017, fue el portador del ransomware WannaCry y, posteriormente, en junio de 2017, de NotPetya.
>> Con FlashStart puede bloquear contenidos no deseados o inapropiados: comience su prueba gratuita o solicite una cotizaciòn
En cuestión de pocos días, el ransomware WannaCry llegó a 150 países de todo el mundo, con más de 300.000 ataques detectados. Uno de los países más afectados fue el Reino Unido, donde WannaCry colapsó al menos veinticinco hospitales y puso en crisis el Servicio Nacional de Salud (NHS).
La peculiaridad de WannaCry, en comparación con otros ransomware, fue precisamente el uso del exploit EternalBlue, que aprovechaba una vulnerabilidad en SMBv1 (un protocolo de compartición de archivos en red, Server Message Block, utilizado por los sistemas Microsoft Windows). La vulnerabilidad clasificada como CVE-2017-0144 (MS17-010 por Microsoft) ya había sido cerrada por Microsoft el 14 de marzo de 2017.
Sin embargo, los sistemas Windows XP y Windows Server 2003 ya no estaban protegidos (fin de soporte a partir del 8 de abril de 2014) y, por tanto, sin parches, fueron fácilmente hackeados por EternalBlue.
El caso WannaCry tiene un giro adicional: parece que EternalBlue fue creado por la NSA (la Agencia de Seguridad Nacional de Estados Unidos). Sin embargo, un grupo de hackers llamado The Shadow Brokers (TSB) robó el exploit a la NSA, quienes lo difundieron en la Darkweb, poniéndolo a disposición de los atacantes que lo utilizaron.
En este caso, el ataque fue realizado por el grupo de hackers patrocinado por el estado de Corea del Norte conocido por el nombre de Lazarus. Ya informamos de ello en este artículo.
WannaCry y EternalBlue deberían habernos hecho tomar conciencia de la importancia de las actualizaciones de seguridad. En cambio, -parece mentira- hoy, seis años después, hay sistemas que todavía tienen Windows XP y Windows Server 2003 instalados y son, por tanto, fácilmente atacables por este exploit que sigue activo y en uso.
Otro exploit web popular es Bluekeep: aprovecha una vulnerabilidad de ejecución remota de código (RCE) identificada como CVE-2019-0708 que afecta a los Servicios de Escritorio Remoto de Windows y puede permitir a los hackers criminales acceder a una máquina vulnerable incluso sin autenticación.
Permite abrir una brecha en una LAN para que el malware se propague a todos los PCs conectados.
Los sistemas operativos vulnerables a Bluekeep son: Windows Server 2003, Windows XP, Windows Vista, Windows 7, Windows Server 2008 y Windows Server 2008 R2, todos ellos sistemas ya declarados descatalogados por Microsoft y no actualizables.
Hoy en día, los exploits web y los kits de exploits están fácilmente disponibles -por una tarifa y, a veces, incluso de forma gratuita- en los foros de la Web oscura, pero no sólo allí.
Muchos de ellos son ahora de dominio público y cualquiera puede descargarlos de sitios web conocidos.
Uno de los más populares es https://www.exploit-db.com/, donde también encontrarás EternalBlue y Bluekeep listos para descargar… ¡y muchos otros!
La segunda parte del artículo se publicará próximamente ….
4. El autor
Giorgio Sbaraglia, ingeniero, ofrece consultoría y formación en seguridad de la información y privacidad.
Imparte cursos sobre estos temas para muchas de las principales empresas de formación italianas, como ABIFormazione y 24Ore Business School.
Es coordinador científico del máster «Ciberseguridad y Protección de Datos» de 24Ore Business School.
Es miembro del Comité Científico de CLUSIT (Asociación Italiana para la Seguridad de la Información) y «Gestor de la Innovación» certificado por RINA.
Ocupa puestos de DPO (Responsable de Protección de Datos) en varias empresas y asociaciones profesionales.
Es autor de los libros
» “GDPR kit di sopravvivenza” (Editore goWare),
» “Cybersecurity kit di sopravvivenza. Il web è un luogo pericoloso. Dobbiamo difenderci!” (2a edizione 2022, Editore goWare),
» “iPhone. Come usarlo al meglio. Scopriamo insieme tutte le funzioni e le app migliori” (Editore goWare).
Es colaborador de CYBERSECURITY360, Cybersecurity group’s specialist publication.
También escribe para ICT Security Magazine, para AGENDA DIGITALE, y para la revista CLASS.
En cualquier Router y Firewall puede activar la protección FlashStart® Cloud para asegurar dispositivos de escritorio y móviles y dispositivos IdC en las redes locales.