Los investigadores han descubierto que cientos de miles de servidores que ejecutan el software de monitoreo Prometheus de código abierto en la web abierta exponen contraseñas, tokens y oportunidades de denegación de servicio (DoS) y ejecución remota de código.
Como líder entre las herramientas de observabilidad de código abierto, Prometheus es ampliamente utilizado por las organizaciones para monitorear el rendimiento de sus aplicaciones y su infraestructura en la nube. Pero tiene un inconveniente: como dice su documentación: “Se presume que Los usuarios que no son de confianza obtienen acceso al punto final HTTP de Prometheus. y periódicos. Tienen acceso a toda la información de series temporales contenida en la base de datos, así como a una variedad de información operativa/depuración.
Aparentemente, muchos usuarios desconocen cómo se expone Prometheus de forma predeterminada o no se dan cuenta del valor de los datos expuestos a lo largo del camino. Utilizando Shodan, los investigadores de Aqua Nautilus descubrieron más de 40.000 servidores Prometheus expuestos y más de 296.000 “exportadores” expuestos, que el programa utiliza para recopilar datos de los puntos finales monitoreados. Los investigadores descubrieron datos confidenciales en estos servidores y exportadores, así como oportunidades de repojacking y ataques DoS.
Lo que Prometeo expone
A primera vista, los datos recopilados por Prometheus pueden parecer bastante insulsos: métricas de rendimiento de aplicaciones, métricas asociadas con herramientas particulares de la nube, uso de CPU, memoria y disco, por ejemplo.
“Creemos que son sólo estadísticas, información sobre la salud del sistema. Ese es el problema”, dice Assaf Morag, director de inteligencia de amenazas de Aqua Nautilus. El análisis de los datos desde la perspectiva de un atacante revela todo tipo de información que puede impulsar los ciberataques.
“Nos dimos cuenta de que podemos ver contraseñas y tokens en texto plano, así como direcciones API para ubicaciones internas que deben permanecer ocultas”, afirma Morag. Por ejemplo, encontró una instancia expuesta y no autenticada de Prometheus perteneciente a Skoda Auto, el fabricante de automóviles checo, que expuso algunos de los subdominios de la empresa, así como registros e imágenes de Docker.
Además de exponer secretos, los servidores Prometheus abiertos y los exportadores web también conllevan un riesgo de DoS. Por ejemplo, existe el punto final “/debug/pprof”, que ayuda a los usuarios a crear perfiles de hosts remotos y está habilitado de forma predeterminada en la mayoría de los componentes de Prometheus. En sus pruebas, los investigadores demostraron que podían sobrecargar el punto final para interrumpir las comunicaciones o bloquear por completo las instancias de Amazon Web Services Elastic Compute Cloud (AWS EC2) o los pods de Kubernetes.
“El resultado fue concluyente: terminamos deteniendo las máquinas virtuales cada vez que ejecutamos nuestro script”, informa Morag. Para resaltar la importancia de un escenario de ataque de este tipo, bromea: “Leí en alguna parte que los clústeres de Kubernetes funcionan a bordo de aviones de combate. No creo que estén expuestos a Internet, pero [it goes to show] Usamos Kubernetes en muchos lugares hoy. »
Oportunidades de repositorio en Prometheus
Los usuarios pueden proteger sus servidores y exportadores Prometheus desconectándolos o al menos agregando una capa de autenticación para evitar miradas indiscretas. Y, por supuesto, existen herramientas diseñadas para mitigar los riesgos DoS.
Un tercer problema que plantea la plataforma es menos fácil de resolver: varios de sus exportadores han demostrado ser vulnerables a ataques de repositorio.
La oportunidad de repositorio puede ocurrir cada vez que un desarrollador modifica o elimina su cuenta en GitHub y no realiza una eliminación del espacio de nombres. Simplemente, un atacante guarda el antiguo nombre de usuario del desarrollador y luego instala malware con el mismo título que los antiguos proyectos legítimos del desarrollador. Entonces, cualquier proyecto que haga referencia a este repositorio pero que no esté actualizado con el enlace de redireccionamiento correcto puede terminar ingiriendo la copiadora maliciosa.
La documentación oficial de Prometheus hacía referencia a múltiples exportadores asociados con nombres de usuario de libre reclamación, lo que significa que cualquier atacante podría haber intervenido y aprovechar esto para ejecutar código de forma remota. Aqua Nautilus informó del problema a Prometheus y desde entonces se resolvió.
Es probable que las oportunidades de repojacking estén mucho más extendidas de lo que uno podría pensar, señala Morag, por lo que las organizaciones deben monitorear cualquier discrepancia entre los proyectos en los que confían y los enlaces que siguen para acceder a ellos. “No es tan difícil”, dijo. “Pero si lo haces para millones de proyectos de código abierto, ahí es donde comienza el problema. Si usas software automatizado [scanning tool]puede que estés a salvo”.