Neutron, nuestro motor de IA, obtuvo un 96.75% en el benchmark CyberGym de UC Berkeley. Más información

Seguridad

Seguridad

Vulnerabilidades explotables conocidas: cómo detectarlas todas

En este artículo descubriremos herramientas esenciales y conclusiones empíricas para identificar vulnerabilidades críticas, de alta severidad y explotadas activamente, procedentes de fuentes reconocidas como CISA KEV, Tsunami de Google y el innovador Asteroid Project de Ostorlab.

Resumen

Este artículo comparte datos empíricos y herramientas para detectar vulnerabilidades críticas y de alta severidad, explotables de forma remota y de forma activa. Estas vulnerabilidades se han recopilado de fuentes como CISA KEV, Tsunami de Google y nuestra nueva incorporación, el proyecto Asteroid de Ostorlab. En este artículo publicamos como código abierto nuevas herramientas para detectar a escala una gran proporción de estas vulnerabilidades.

Introducción

No todas las vulnerabilidades «nacen» iguales: tienen impactos distintos y requieren condiciones diferentes para ser explotadas. Las vulnerabilidades críticas y de alto impacto, explotables de forma remota y sin autenticación, se cuentan entre las más peligrosas, ya se trate de ejecución remota de código, toma de control de cuentas o credenciales predeterminadas y débiles, pues todas pueden tener un impacto devastador.

Este artículo se centra en identificar estas vulnerabilidades críticas, distinguirlas del resto y presentar un conjunto de nuevas herramientas de código abierto (agentes) para detectarlas en cualquier sistema.

Además, se compartirán y analizarán los resultados de emplear estas herramientas a la escala de un programa de bug bounty.

Las vulnerabilidades

La severidad de una vulnerabilidad varía según diversos factores, entre ellos los vectores de ataque (locales o remotos), el nivel de privilegios necesario y la necesidad de interacción del usuario. Otro criterio importante que puede añadirse para evaluar estas vulnerabilidades es si han sido explotadas en entornos reales. Estos criterios ayudan a identificar y priorizar las vulnerabilidades que representan las amenazas más críticas, que exigen atención y corrección inmediatas.

Este proceso de priorización resulta más viable con la ayuda de varias fuentes, como CISA KEV y Tsunami de Google. CISA KEV es un catálogo de vulnerabilidades que registra los CVE explotados activamente, mientras que Tsunami se especializa en vulnerabilidades críticas y de alta severidad priorizadas por el Security Automated Team de Google.

CISA KEV :

La lista CISA KEV contenía 1054 CVE en total:

  • 680 no son explotables de forma remota o requieren interacción del usuario o autenticación.

  • 374 vulnerabilidades se explotan de forma remota sin interacción del usuario ni privilegios.

Figura 1: gráfico de la lista CISA KEV
Gráfico de CISA KEV

De las 374 vulnerabilidades analizadas, 264 tenían exploits públicos confirmados. Para el resto, algunas contaban con análisis técnicos que aportaban información, mientras que otras carecían de cualquier información asociada.

De las pruebas de concepto investigadas, no todas eran auténticas: algunas eran parciales, erróneas, maliciosas o meras bromas.

Otro ejemplo es CVE-2022-28958, que no es una vulnerabilidad real. Los atacantes utilizaron un payload falso en sus ataques, lo que indica que el exploit público se empleó sin verificarlo.

Figura 2: CVE-2022-28958
CVE-2022-28958

La descripción de la vulnerabilidad es: «DIR816L_FW206b01 shareport.php has an issue that attackers can use to execute commands via value parameter».

Sin embargo, tras la investigación, la prueba de concepto del investigador resultó no ser funcional, y las pruebas adicionales realizadas por VulnCheck sobre el firmware no lograron hallar ninguna evidencia que respaldara la existencia de la vulnerabilidad.

El análisis también reveló una gran diversidad entre los fabricantes y productos incluidos en la lista.

A continuación se muestra la distribución de CVE (explotables de forma remota frente a no explotables de forma remota) por fabricante

Figura 3: distribución de CVE (explotables de forma remota frente a no explotables de forma remota) por fabricante
Distribución de CVE (explotables de forma remota frente a no explotables de forma remota) por fabricante

Puntos destacables:

  • Microsoft: lidera la lista con 275 CVE, pero solo 16 son explotables de forma remota sin autenticación.
  • Apache: ocupa el primer lugar en CVE explotables de forma remota sin autenticación, con 31 vulnerabilidades.

Distribución por producto de los CVE que requieren credenciales o no son explotables de forma remota :

Figura 4: distribución por producto de los CVE que requieren credenciales o no son explotables de forma remota
Distribución por producto de los CVE que requieren credenciales o no son explotables de forma remota

Distribución por producto de los CVE explotables de forma remota sin autenticación:

Figura 5: distribución por producto de los CVE explotables de forma remota sin autenticación
Distribución por producto de los CVE explotables de forma remota sin autenticación

La lista completa está disponible en el siguiente repositorio y se actualiza constantemente: repositorio KEV de Ostorlab.

Figura 6: lista de todos los CVE
Lista de todos los CVE

Nuevas herramientas de código abierto

El framework de escaneo de seguridad de código abierto de Ostorlab desempeñó un papel fundamental para establecer una solución de escaneo centralizada. Permitió ejecutar simultáneamente varios agentes con capacidades diversas para probar estas vulnerabilidades a escala.

Por ejemplo, probar la presencia de estas vulnerabilidades contra rangos de IP arrojó malos resultados. Varias de estas vulnerabilidades solo son accesibles mediante nombres de dominio válidos.

Los agentes creados y utilizados para detectar estas vulnerabilidades son:

Nuclei agent: un agente de código abierto que envuelve el escáner Nuclei, lo que permite escanear cualquier objetivo y utilizar cualquier plantilla especificada. Para más información, consulte: https://github.com/Ostorlab/agent_nuclei.

Tsunami agent: un agente de código abierto que envuelve el escáner Tsunami, con la capacidad de ejecutar todos los plugins que proporciona el escáner. Para más información, consulte: https://github.com/Ostorlab/agent_tsunami.

Metasploit agent: un agente de código abierto diseñado para utilizar los módulos de Metasploit contra cualquier objetivo y comprobar la presencia de vulnerabilidades. Para más información sobre su uso, consulte: https://github.com/Ostorlab/agent_metasploit.

Agent Asteroid: un nuevo agente que permite ejecutar comprobaciones complejas que requieren protocolos personalizados o lógica compleja, como el descifrado de claves criptográficas, que sería más difícil de implementar con una plantilla de Nuclei. El agente está disponible en https://github.com/Ostorlab/agent_asteroid.

Figura 7: Agent asteroid
Agent Asteroid

La carpeta 'exploits' contiene las distintas pruebas de concepto implementadas, a las que seguiremos añadiendo otras.

En el momento de publicar este informe, nuestro conjunto de herramientas abarca 18 comprobaciones distintas para diversos CVE. Además, hemos desarrollado comprobaciones personalizadas específicas, como la que detecta la exposición de Android Debug Bridge (ADB).

Nmap agent: un agente de código abierto para ejecutar el descubrimiento de puertos. El agente de Nmap es el que puede descubrir qué puertos deben ser objetivo del agente de detección, de modo que se escaneen una sola vez y todos los agentes los prueben.

Amass agent: un agente de código abierto para enumerar subdominios. Este agente se ha utilizado durante las pruebas a gran escala para cubrir todos los objetivos de acceso público de un dominio determinado.

Subfinder agent: otro agente de código abierto para enumerar subdominios. Este agente complementa a amass para mejorar la enumeración de dominios.

Cómo juntarlo todo

Para ejecutar todos estos agentes simultáneamente, Ostorlab ofrece la funcionalidad de definir un grupo de agentes y especificar los agentes deseados.

Para ver la definición completa del grupo de agentes, puede consultar vulnerabilidades explotables conocidas.

Para ejecutar este grupo de agentes:

oxo scan run --install -g agent_group.yaml domain-name example.com

Los agentes se empaquetan como imágenes de docker y el indicador –-install garantiza que se descargue la última versión.

Para visualizar cómo colaboran estos agentes sin fricciones, puede utilizar la herramienta disponible en: https://report.ostorlab.co/library/agent/group.

Figura 8: visualización de la definición de un grupo de agentes
Visualización de la definición de un grupo de agentes

Ofrece una funcionalidad de arrastrar y soltar que permite generar un archivo YAML para el grupo de agentes. Además, permite visualizar la comunicación entre los agentes, sus entradas y salidas, y su posición en el flujo de trabajo.

Pruebas a escala

Ejecutar las herramientas desarrolladas contra diversos objetivos de bug bounty proporcionó resultados empíricos sobre la presencia de estas vulnerabilidades en objetivos con una postura de seguridad madura.

De los 1500 objetivos, se obtuvieron los siguientes resultados: veinticinco (25) de los objetivos contenían vulnerabilidades críticas que conducían a la ejecución remota de código.

Por ejemplo:

La vulnerabilidad Jboss Application Server - Remote Code Execution, con una puntuación CVSS de 9.8.

Figura 9: ejecución remota de código en JBOSS
Ejecución remota de código en JBOSS

Once de los objetivos (11) contenían vulnerabilidades de alta severidad, que iban desde RCE previo a la autenticación y credenciales débiles en servicios como FTP e IMAP, hasta omisión del control de acceso.

Esto significa que, de estos objetivos, que se presupone que tienen una postura de seguridad madura, el 2.5% seguía sufriendo vulnerabilidades explotables públicamente.

Conclusiones

Las vulnerabilidades suponen un desafío constante y su priorización sigue siendo compleja, por decir lo menos. Una herramienta centralizada de código abierto para detectar amenazas conocidas ofrece una ventaja (y un primer paso) para proteger los entornos.

No dude en contribuir a este proyecto de código abierto. Puede crear un pull request con su prueba de concepto en:

Vulnerabilidades explotables conocidas o en Agent Asteroid.

Etiquetas:

security, cisa, kev, cve