A principios de diciembre de 2022, una solución de monitorización de red de código abierto llamada Cacti (originalmente diseñada para ser un frontend para la base de datos de gráficos de red estándar de la industria RRDTool) publicó un aviso de seguridad detallado para versiones hasta la 1.2.22 inclusive y se le asignó el número CVE CVE-2022-46169. Esta vulnerabilidad pasó desapercibida hasta que, el 2 de enero de 2023, SonarSource publicó una entrada en su blog detallando sus hallazgos, y unos días más tarde, el 7 de enero de 2023, la Fundación Shadowserver publicó que habían empezado a ver que la vulnerabilidad estaba siendo explotada para descargar e instalar malware.
Censys ha observado 6.427 hosts en Internet que ejecutan una versión de Cacti. Desafortunadamente, sólo podemos ver la versión exacta del software en ejecución cuando un tema específico(sunrise) está habilitado en la aplicación web. Pero esto nos da una idea de lo que es vulnerable y no vulnerable a este problema. Las siguientes son las versiones de Cacti que pudimos ver. Las filas resaltadas en rojo son vulnerables, mientras que las resaltadas en verde son versiones más recientes no vulnerables. Como podemos ver, la mayoría de estos servidores Cacti están ejecutando una versión muy antigua y obsoleta, con sólo 26 hosts que ejecutan una de las versiones parcheadas.
Versión Cactus |
Recuento de anfitriones |
1.1.38 |
465 |
1.2.16 |
141 |
1.2.22 |
122 |
1.2.21 |
111 |
1.2.19 |
106 |
1.2.14 |
84 |
1.2.10 |
64 |
1.2.15 |
63 |
1.2.2 |
55 |
1.2.18 |
53 |
1.2.17 |
52 |
1.2.20 |
44 |
1.1.19 |
33 |
1.2.12 |
32 |
1.2.3 |
25 |
1.2.23 |
22 |
1.2.8 |
19 |
1.1.36 |
16 |
1.2.9 |
15 |
1.1.37 |
15 |
1.2.7 |
13 |
1.2.5 |
12 |
1.2.6 |
11 |
1.2.1 |
10 |
1.1.28 |
8 |
1.2.13 |
8 |
1.2.4 |
8 |
1.1.30 |
7 |
1.1.27 |
7 |
1.1.24 |
6 |
1.2.11 |
6 |
1.1.35 |
6 |
1.2.0 |
4 |
1.3.0 |
4 |
1.1.29 |
4 |
1.1.26 |
3 |
1.1.25 |
3 |
1.1.20 |
3 |
1.1.33 |
2 |
1.1.21 |
1 |
La mayoría de los hosts que ejecutan Cacti se encuentran en Brasil, con 1.320 hosts, seguido de Indonesia, con 795 hosts, y Estados Unidos, con 254.
Detalles de la vulnerabilidad
La vulnerabilidad más importante se encuentra en la forma en que Cacti procesa una consulta HTTP específica para un tipo concreto de "acción" de sondeo definida en la base de datos. En el software, los usuarios pueden definir acciones para monitorizar un único host (llamado "poller"). Uno de estos tipos de sondeo ejecutará un script PHP con la expectativa de que los datos devueltos estén formateados correctamente. Pero uno de los argumentos de consulta utilizados para ejecutar estos scripts PHP no se desinfecta correctamente y se pasa a la llamada de ejecución, dando lugar a la inyección de comandos. Aunque esta función sólo debería estar disponible para usuarios autenticados, se ha descubierto otro error que permite al atacante saltarse la autenticación por completo.
¿Quién vigila a los vigilantes?
Cacti no es la única aplicación utilizada para monitorizar la salud de un conjunto de servicios o de una red; hay muchos más ejemplos. Este tipo de herramientas de monitorización son objetivos excelentes para los atacantes. Dado que estos sistemas son, en muchos sentidos, bases de datos de inventario de activos, contienen información valiosa sobre la disposición y la arquitectura de una red. Dado que estos sistemas suelen tener algún nivel de acceso por defecto (normalmente, como mínimo, de sólo lectura) a puntos finales (de monitorización) de organizaciones enteras, comprometer un host de este tipo podría ser el primer paso para infiltrarse en todo.
Aunque no todo el software de monitorización como Cacti tiene una vulnerabilidad conocida (actualmente), esto no es excusa para dejarlos expuestos públicamente en Internet si no tienen que estarlo, especialmente porque los datos que contienen son muy valiosos. Censys siempre sugiere habilitar la autenticación y colocar los servicios de monitorización detrás de una VPN o segmento VPC, junto con reglas de filtrado de IP adecuadas para garantizar que Internet no tenga ningún acceso a sus recursos críticos.
Los atacantes pueden utilizar otros servicios como Cacti para obtener información sobre una organización. Por ejemplo, la herramienta de monitorización de sistemas Netdata proporciona en tiempo real métricas del sistema a nivel de host sobre el dispositivo en el que se está ejecutando. Tampoco viene con autenticación por defecto, lo que significa que cualquiera con un navegador web puede ver el funcionamiento interno de un servidor y todos los detalles jugosos que contiene. En el momento de escribir estas líneas, había más de 30.000 paneles de Netdata en Internet.
Traefik, un moderno proxy inverso HTTP y equilibrador de carga para microservicios, también incluye un servicio opcional de monitorización y un panel de control para sus despliegues. Cuando el servicio no está configurado con la seguridad activada, mucha información puede ser divulgada accidentalmente al público. Por ejemplo, todas las aplicaciones y servicios que se están ejecutando actualmente, los puertos y los mensajes de error que pueda tener la instancia.
(Página de inicio del panel de control de Traefik)
(Supervisión a nivel de servicio)
En el momento de escribir este post, más de 14.000 paneles de monitorización de Traefik estaban expuestos a Internet, lo que podría proporcionar información valiosa sobre la red de una organización.
Incluso los protocolos utilizados para ayudar a monitorizar los sistemas pueden configurarse mal y utilizarse para desenterrar información sobre una red; por ejemplo, SNMP (Simple Network Management Protocol) suele configurarse con un usuario público y, si sabes cómo utilizarlo, puede convertirse en una interfaz muy valiosa. Por ejemplo, puedes utilizar los servicios públicos de SNMP para recopilar información sobre las tablas de enrutamiento internas y externas de un host o router:
~$ snmpnetstat -v 2c -c public -Cr <X.X.X.X>
Routing tables (ipCidrRouteTable)
Destination Gateway Flags Interface
default XXX.XX.XX.254 <UG>
10/8 10.255.1.254 <UG>
10.255.1/24 * <U> Gi2.1023
10.255.1.6 * <UH> Gi2.1023
172.XX.10/24 * <U> Gi1.1017
172.XX.10.22 * <UH> Gi1.1017
172.XX/16 XXX.XX.X.254 <UG>
172.XX.1/24 * <U> Gi2.1012
172.XX.1.6 * <UH> Gi2.1012
Incluso puedes ver todas las conexiones de red actualmente establecidas que se ejecutan a través de ese dispositivo y todos los servicios de escucha que pueden o no estar detrás de un cortafuegos. Incluso puede imitar la funcionalidad del comando Unix "netstat":
~$ snmpnetstat -v 2c -c public -Ca X.X.X.X
Active Internet (tcp) Connections
Proto Local Address Remote Address State PID
tcp4 *.* *.* 0 0
Listening Internet (tcp) Connections
Proto Local Address PID
tcp4 *.* 0
Active Internet (udp) Connections
Proto Local Address Remote Address PID
udp4 *.* *.* 0
udp4 *.* *.* 0
udp4 *.* *.* 0
udp4 *.* *.* 0
udp4 *.* *.* 0
udp4 *.* *.* 0
udp4 *.* *.* 0
udp4 XX.XXX.XXX.XX.snmp ?.35504 0
udp4 XXX.10.10.22.bootps XXX.XX.X.XXX.bootps 331
udp4 XXX.10.10.22.ntp *.ntp 0
udp4 XXX.10.10.22.snmp-tra *.* 0
udp4 XXX.10.10.22.isakmp *.* 0
udp4 XXX.10.10.22.ipsec-na *.* 0
udp4 XXX.10.10.22.50834 *.* 0
SNMP está tan ampliamente desplegado que Censys puede ver más de 1,5 millones de estos servicios en Internet, y si sumamos todas las interfaces físicas de red de todos estos servicios (sumando todos los valores del OID, que contiene el número de interfaces), obtenemos 2.197.202.422 interfaces físicas. Podría seguir y seguir sobre la utilidad de SNMP desde la perspectiva de un atacante, pero eso es para otro post en otro día.
Estos son sólo algunos ejemplos de herramientas de monitorización mal configuradas o inseguras por defecto que hemos encontrado en Censys; el punto principal que queremos destacar es que este tipo de servicios deberían estar bloqueados y lejos de las manos indiscretas de posibles atacantes.
¿Qué se puede hacer?
- Actualizar a la última versión de Cacti (v1.2.23 y v1.3.0)
- Restrinja el acceso a esta aplicación (y a todas las aplicaciones de supervisión de red) mediante reglas de cortafuegos, segmentación VPN o segmentación VPC para hacerla inaccesible desde Internet.
- Censys Los clientes de ASM tienen acceso a varios riesgos de Cacti.
Referencias