Vulnerabilidades de día cero

Descripción

Una vulnerabilidad es producida por un fallo o debilidad en el diseño o la implementación de un software o sistema que supone un riesgo, pudiendo ser explotada por un atacante con el objetivo de comprometer la confidencialidad, disponibilidad y/o la integridad del sistema o de los datos que almacena. Al código o herramienta usada para explotar una vulnerabilidad se le denomina exploit.

Las vulnerabilidades de día cero (comúnmente referidas por el término inglés zero-day) son aquellas cuya existencia era desconocida en el momento en que fueron explotadas, tanto para el fabricante del producto o sistema afectado como para el público en general. Hay quien asocia su nombre con el hecho de que hay "cero días" para su corrección. La dificultad de prever estos fallos y, en consecuencia, los posibles ataques que se deriven de ellos hacen que supongan un alto riesgo para la seguridad informática.

Ejemplos

SolarWinds (CVE-2021-35211)

El pasado mes de julio de 2021 Microsoft informaba de haber descubierto una vulnerabilidad de día cero de ejecución de código remoto en el software Serv-U FTP de SolarWinds, la cual había sido explotada en ataques dirigidos. La explotación de esta vulnerabilidad (CVE-2021-35211) permite a los atacantes la ejecución de código arbitrario con privilegios. Microsoft atribuyó estos ataques con un alto grado de confianza al grupo APT chino conocido como DEV-0322.

SolarWinds: Supernova (CVE-2020-10148)

El malware Supernova fue encontrado en un servidor que requiere el acceso autorizado a la red de un cliente y estaba diseñado para que pareciese ser parte de un producto de SolarWinds. Constaba de dos componentes: una webshell maliciosa sin firmar que se trataba de una copia de una DLL de SolarWinds a la que se le habían incorporado las funcionalidades maliciosas; y una vulnerabilidad de día cero (CVE-2020-10148) de la que se aprovecha para instalar dicha DLL.

La vulnerabilidad reside en la API de SolarWinds Orion y permite eludir la autenticación, permitiendo a un atacante ejecutar comandos de la API, lo que podría dar lugar a un compromiso de la instancia de SolarWinds.

WannaCry (CVE-2017-0144)

A principios de 2017, el grupo APT conocido como Shadow Brokers filtró un paquete de herramientas y exploits de vulnerabilidades de día cero. A pesar de que Microsoft publicó un parche en un breve periodo de tiempo, los cibercriminales aprovecharon que muchos equipos siguieron sin parchear.

El ataque del ransomware WannaCry en mayo de 2017, que afectó a más de 75.000 equipos en más de 100 países, utilizó el exploit conocido "Eternal Blue" que explotaba la vulnerabilidad en SMBv1 identificada como CVE-2017-0144, permitiendo la ejecución de código arbitrario por parte de atacantes remotos.

Stuxnet

Stuxnet es un malware de tipo gusano con afectación a sistemas SCADA que se distribuía en memorias USB y se propagaba por los ordenadores con Microsoft Windows.

El gusano explotaba cuatro vulnerabilidades, tres de ellas consideradas de día cero, de las cuales dos eran vulnerabilidades de ejecución de código arbitrario (CVE-2010-2568 y CVE-2010-2729) en Windows y la tercera (CVE-2010-2772) una vulnerabilidad de escalada de privilegios en sistemas SCADA.

Fue usado inicialmente en ataques contra instalaciones nucleares iraníes. Al distribuirse a un nuevo equipo, el gusano comprobaba la presencia del software “Siemens Step 7”, que es utilizado por los equipos PLC. Una vez localizado, el malware actualizaba su código y comenzaba a enviar instrucciones que provocaban daños a los equipos que eran controlados por PLC, enviando mientras tanto información falsa al controlador principal. Finalmente, el equipo se autodestruía.

El gusano evolucionó y amplió su lista de objetivos, atacando a instalaciones industriales y de producción de energía.

Mirai

Mirai es un malware de la familia de las botnets destinada a infectar equipos del IoT. Su objetivo principal es la infección de enrutadores y cámaras IP, con el fin de usarlos para realizar ataques de tipo Denegación de Servicio Distribuido (DDoS).

La publicación de su código fuente por parte de su autor a finales de 2016 supuso la creación de numerosas variantes de Mirai. Muchas de ellas han hecho uso de vulnerabilidades de día cero para conseguir acceso a los sistemas. Tal es el ejemplo de la botnet Ttint que explotaba dos vulnerabilidades de día cero en enrutadores Tenda: CVE-2020-10987 y CVE-2018-14558, que permitían la ejecución de comandos arbitrarios del sistema. La variante conocida como Satori u Okiru, que causó daños a infraestructuras mundiales en 2016, también aprovechaba este tipo de vulnerabilidades, en este caso, en enrutadores Huawei: una vulnerabilidad de ejecución remota de código arbitrario (CVE-2017-17215), y una vulnerabilidad que, además de lo anterior, permitía a atacantes remotos añadir datos a archivos arbitrarios (CVE-2013-6955).

Mitigaciones

Se recomienda implementar medidas preventivas tales como el uso de cortafuegos, sistemas de detección de intrusiones (IDS), sistemas EDR (del inglés Endpoint Detection and Response), así como la realización de auditorías de seguridad periódicas.

Es de especial importancia promover una correcta política de actualizaciones y parches, de forma periódica, tanto de los sistemas como de los programas utilizados, para evitar que nuevas vulnerabilidades puedan ser explotadas.

Una buena práctica de seguridad consiste en deshabilitar todos los servicios que no sean usados en un sistema.

Referencias:

https://www.osi.es/es/actualidad/blog/2020/08/28/que-es-una-vulnerabilidad-zero-day

https://www.welivesecurity.com/la-es/2015/02/25/que-es-un-0-day/

https://www.avast.com/es-es/c-zero-day

https://us.norton.com/internetsecurity-emerging-threats-how-do-zero-day-vulnerabilities-work.html

https://www.trendmicro.com/vinfo/us/security/definition/zero-day-vulnerability