Un atacante desconocido apuntó a decenas de miles de servidores Redis no autenticados expuestos en Internet en un intento de instalar un minero de criptomonedas .
No se sabe de inmediato si todos estos hosts se vieron comprometidos con éxito. No obstante, fue posible gracias a una «técnica menos conocida» diseñada para engañar a los servidores para que escriban datos en archivos arbitrarios, un caso de acceso no autorizado que se documentó por primera vez en septiembre de 2018.
«La idea general detrás de esta técnica de explotación es configurar Redis para escribir su base de datos basada en archivos en un directorio que contenga algún método para autorizar a un usuario (como agregar una clave a ‘.ssh/authorized_keys’), o iniciar un proceso (como agregar un script para ‘/etc/cron.d’)», dijo Censys en un nuevo artículo.
La plataforma de administración de superficie de ataque dijo que descubrió evidencia (es decir, comandos de Redis) que indican los esfuerzos por parte del atacante para almacenar entradas crontab maliciosas en el archivo «/var/spool/cron/root», lo que resultó en la ejecución de un script de shell alojado en un servidor remoto.
El script de shell, al que aún se puede acceder, está diseñado para realizar las siguientes acciones:
- Terminar los procesos de monitoreo del sistema y relacionados con la seguridad
- Purgar archivos de registro e historiales de comandos
- Agregue una nueva clave SSH («backup1») al archivo authorized_keys del usuario raíz para habilitar el acceso remoto
- Deshabilitar el cortafuegos de iptables
- Instale herramientas de escaneo como Masscan y
- Instale y ejecute la aplicación de minería de criptomonedas XMRig
Se dice que la clave SSH se configuró en 15,526 de los 31,239 servidores Redis no autenticados, lo que sugiere que el ataque se intentó en «más del 49% de los servidores Redis no autenticados conocidos en Internet».
Sin embargo, una razón principal por la que este ataque podría fallar es que el servicio Redis debe ejecutarse con permisos elevados (es decir, raíz) para permitir que el adversario escriba en el directorio cron mencionado anteriormente.
«Aunque, este puede ser el caso cuando se ejecuta Redis dentro de un contenedor (como una ventana acoplable), donde el proceso podría verse ejecutándose como root y permitir que el atacante escriba estos archivos», dijeron los investigadores de Censys. «Pero en este caso, solo el contenedor se ve afectado, no el host físico».
El informe de Censys también reveló que hay alrededor de 350 675 servicios de base de datos Redis accesibles por Internet que abarcan 260 534 hosts únicos.
«Si bien la mayoría de estos servicios requieren autenticación, el 11 % (39 405) no la requiere», dijo la compañía, y agregó que «del total de 39 405 servidores Redis no autenticados que observamos, la exposición potencial de datos es de más de 300 gigabytes».
Los 10 principales países con servicios Redis expuestos y no autenticados incluyen China (20 011), EE. UU. (5108), Alemania (1724), Singapur (1236), India (876), Francia (807), Japón (711), Hong Kong ( 512), Países Bajos (433) e Irlanda (390).
China también lidera en lo que respecta a la cantidad de datos expuestos por país, con 146 gigabytes de datos, con EE. UU. en un distante segundo lugar con aproximadamente 40 gigabytes.
Censys dijo que también encontró numerosos casos de servicios de Redis que se han configurado mal, y señaló que «Israel es una de las únicas regiones donde la cantidad de servidores Redis mal configurados supera a los configurados correctamente».
Para mitigar las amenazas , se recomienda a los usuarios que habiliten la autenticación del cliente, configuren Redis para que se ejecute solo en las interfaces de red orientadas hacia el interior, eviten el abuso del comando CONFIG renombrándolo a algo que no se pueda adivinar y configuren los firewalls para que acepten conexiones de Redis solo de hosts confiables.