Se han descubierto dos vulnerabilidades de día cero en Ivanti Secure VPN, una popular solución VPN utilizada por organizaciones de todo el mundo. Actualmente, las vulnerabilidades están siendo explotadas en estado salvaje por al menos un actor de amenazas de estado-nación chino denominado UTA0178. El encadenamiento de las dos vulnerabilidades permite a cualquier atacante ejecutar código remoto sin ninguna autenticación y comprometer los sistemas afectados.
¿Cuáles son las vulnerabilidades de día cero de Ivanti Secure VPN?
Ivanti publicó un aviso de seguridad oficial y base de conocimientos artículo sobre dos vulnerabilidades de día cero, CVE-2023-46805 y CVE-2024-21887que afecta a todas las versiones compatibles de Ivanti Connect Secure (anteriormente conocido como Pulse Connect Secure) y Ivanti Policy Secure Gateways.
- CVE-2023-46805 es una vulnerabilidad de omisión de autenticación en el componente web de Ivanti Connect Secure e Ivanti Policy Secure. Permite a un atacante acceder a recursos restringidos eludiendo los controles.
- CVE-2024-21887 es una inyección de comando en componentes web de Ivanti Connect Secure e Ivanti Policy Secure. Permite a un administrador autenticado enviar solicitudes especialmente diseñadas y ejecutar comandos arbitrarios en el dispositivo y puede explotarse a través de Internet.
Cuando se combinan, estas dos vulnerabilidades permiten a un atacante ejecutar comandos en los dispositivos afectados.
Patrice Auffret, fundador, director ejecutivo y director de tecnología de ONYPHE, un motor de búsqueda de ciberdefensa francés dedicado al descubrimiento y gestión de superficies de ataque, dijo a TechRepublic en una entrevista por correo electrónico hoy que 29,664 dispositivos Ivanti Secure VPN están conectados a Internet. , con más del 40% de los sistemas expuestos en los EE. UU., seguidos por Japón (14,3%) y Alemania (8,48%) (Figura A).
Figura A
Explotación de estas vulnerabilidades de día cero en la naturaleza
Empresa de ciberseguridad con sede en EE. UU. Volexity descubrió ambas vulnerabilidades durante una investigación de respuesta a incidentes en múltiples sistemas. La respuesta al incidente reveló que un actor de amenazas modificó varios archivos ubicados en el dispositivo Ivanti Connect Secure VPN (Figura B).
Figura B
Volexity también cree que se crearon y utilizaron/ejecutaron varios archivos en la carpeta temporal del sistema (/tmp), pero ya no estaban disponibles para su investigación en el momento de la respuesta al incidente, como por ejemplo:
- /tmp/rev
- /tmp/s.py
- /tmp/s.jar
- /tmp/b
- /tmp/matar
En una imagen de disco se encontró una utilidad proxy basada en Python, PySoxy, que se cree que es s.py. Es un script proxy SOCKS5 disponible gratuitamente en Internet.
El actor de amenazas, denominado UTA0178 por Volexity, implementó webshells y modificó archivos para permitir el robo de credenciales antes de pasar de un sistema a otro utilizando las credenciales comprometidas. El actor de amenazas siguió recopilando credenciales recién recopiladas en cada sistema al que atacaba y se le observó volcando una imagen completa de la base de datos de Active Directory. Finalmente, el atacante modificó el JavaScript cargado por la página de inicio de sesión web del dispositivo VPN para capturar cualquier credencial que se le haya proporcionado. El script legítimo lastauthserverused.js se modificó para enviar las credenciales robadas a un dominio controlado por el atacante: symantke(.)com.
Una vez en posesión de las credenciales, el actor de amenazas exploró la red, examinó los archivos de usuario y los archivos de configuración, e implementó más webshells en la red, incluido un webshell personalizado denominado GLASSTOKEN.
Webshell GLASSTOKEN personalizado
Si bien el actor de amenazas utilizó varias herramientas públicas y conocidas, GLASSTOKEN se implementó en dos versiones ligeramente diferentes.
La primera versión incluye dos rutas de código, según los parámetros proporcionados en la solicitud. La primera ruta se usa para transmitir una conexión, mientras que la segunda se usa para ejecutar código que se decodifica en hexadecimal antes de decodificarse en base64. Según las observaciones de Volexity, el actor de amenazas lo usó principalmente para ejecutar comandos de PowerShell.
La segunda versión del webshell es similar a la primera, excepto que carece de la función de proxy y solo permite la ejecución de código.
Código completo para esos webshells ha sido proporcionado por Volexity.
Detección de amenazas
Análisis del tráfico de red.
Un análisis cuidadoso del tráfico saliente del dispositivo VPN puede detectar actividad sospechosa. Aparte de la conexión legítima a pulsesecure.net y cualquier otra integración configurada relacionada con el cliente (SSO, MFA, etc.), se debe analizar cualquier actividad sospechosa. Los ejemplos observados por Volexity son solicitudes curl a sitios web remotos, conexiones SSH a direcciones IP remotas o comunicaciones cifradas a hosts que no están asociados con proveedores o actualizaciones de dispositivos.
También se debe verificar cuidadosamente la actividad en el tráfico de red entrante desde las direcciones IP asociadas con el dispositivo VPN. El tráfico sospechoso que podría observarse en dichas conexiones puede ser actividad RDP o SMB en sistemas internos, intentos de conexión SSH o escaneo de puertos, por nombrar algunos.
Análisis de registros de dispositivos VPN
Cualquier indicación de que los archivos de registro de los dispositivos VPN se han eliminado o desactivado es un fuerte indicador de compromiso, en caso de que estuvieran activos anteriormente.
Las solicitudes de archivos en rutas atípicas en los registros también deben ser preocupantes y analizadas, ya que los actores de amenazas podrían almacenar o manipular archivos fuera de las carpetas habituales.
Herramienta de verificación de integridad
El Herramienta de verificación de integridad incorporada se puede utilizar para ejecutarse automáticamente y detectar archivos nuevos o no coincidentes. Como escribieron los investigadores de Volexity, «si aparece algún archivo nuevo o que no coincide, el dispositivo debe considerarse comprometido».
Ivanti proporciona una versión externa de la herramienta Integrity Checker, que debe usarse en caso de que se sospeche que el sistema está comprometido. La herramienta solo debe instalarse e iniciarse después de que se hayan recopilado todas las pruebas forenses del sistema, en particular una imagen de memoria, porque la ejecución de la herramienta reiniciará el dispositivo y posiblemente sobrescribirá los datos de las pruebas.
Mitigación de amenazas
Ivanti proporciona un método de mitigación hasta que esté disponible un parche completo. Ivanti indica que «los parches se lanzarán en un cronograma escalonado con la primera versión prevista para estar disponible para los clientes la semana del 22 de enero y la versión final prevista para la semana del 19 de febrero».
La mitigación consiste en importar un archivo mitigation.release.20240107.1.xml a través del portal de descargas. Dependiendo de la configuración, esta operación podría provocar una degradación del sistema, como se indica en la página dedicada a Ivanti. Se recomienda encarecidamente seguir cuidadosamente todas las instrucciones de Ivanti y comprobar que la mitigación funciona correctamente.
Divulgación: Trabajo para Trend Micro, pero las opiniones expresadas en este artículo son mías.