Cómo los servidores Redis se están convirtiendo en el objetivo del nuevo malware Redigo

Redis que significa “servidor de diccionario remoto”, es un caché y una base de datos que se ejecuta en la memoria y es de código abierto. En 2009, estuvo disponible por primera vez como una solución para aplicaciones en tiempo real que requerían un mecanismo para enviar datos a sus clientes más rápido de lo que una base de datos relacional era capaz de administrar. Permite la recuperación y distribución de datos en un corto período de tiempo de respuesta y puede acomodar millones de consultas por segundo. Redis se asegura de que responda almacenando datos que a menudo se recuperan en la memoria y empleando un caché para hacerlo.

Los investigadores que trabajan para el negocio de seguridad en la nube Aqua Security acaban de descubrir una puerta trasera que apunta a los servidores de Redis y están haciendo sonar la alarma al respecto.

El software malicioso que recibió el nombre de Redigo y está escrito en Go se utilizó en un ataque que aprovechó una vulnerabilidad conocida en Redis (CVE-2022-0543 con una puntuación CVSS de 10) para obtener información inicial. acceso.

La vulnerabilidad que podría permitir la ejecución remota de código (RCE) fue noticia en abril cuando los expertos en el campo de la seguridad de la información identificaron más de 2.000 servidores conectados a Internet con posibilidad de verse afectados. Febrero vio el lanzamiento de muchos parches.

Redis es susceptible a ataques ya que utiliza el motor de secuencias de comandos Lua. Esto permite a los usuarios cargar y ejecutar programas Lua directamente en el servidor. La vulnerabilidad ha sido identificada. La arquitectura de Redis está compuesta por el cliente de Redis y el servidor de Redis como sus dos procesos principales en ejecución. El servidor Redis es el componente más significativo de todo el diseño. Se encarga de almacenar datos en memoria y gestionar las operaciones asociadas a la gestión del almacenamiento. El servidor también tiene un motor de secuencias de comandos Lua que permite a los usuarios cargar secuencias de comandos Lua y ejecutarlas directamente en el servidor sin necesidad de un intermediario. Debido a esta capacidad el proceso de lectura y escritura de datos de scripts se hace muy eficiente. El motor debe estar aislado de manera que las interacciones con los clientes de Redis se lleven a cabo mediante el uso de interfaces de programación de aplicaciones (API) de Redis lo que restringe la capacidad del cliente para ejecutar código arbitrario en la computadora en la que opera Redis. Por otro lado, en 2022, se descubrió que existía un agujero de seguridad en el motor de secuencias de comandos Lua. La biblioteca Lua ofrecía una biblioteca dinámica en algunos paquetes distribuidos por Debian. Se carga una instancia de una variable de paquete cada vez que el servidor Redis carga la biblioteca Lua. El paquete se mantiene en la caja de arena de Lua para que pueda llamarse desde dentro de cualquier biblioteca de Lua. 

Como consecuencia se produjo un escape del sandbox de Lua lo que hizo posible que un adversario llevara a cabo instrucciones arbitrarias por lo tanto restringe la capacidad del cliente para ejecutar código arbitrario en la computadora en la que opera Redis. Por otro lado en 2022 se descubrió que existía un agujero de seguridad en el motor de secuencias de comandos Lua. La biblioteca Lua ofrecía una biblioteca dinámica en algunos paquetes distribuidos por Debian. Se carga una instancia de una variable de paquete cada vez que el servidor Redis carga la biblioteca Lua. El paquete se mantiene en la caja de arena de Lua para que pueda llamarse desde dentro de cualquier biblioteca de Lua. Como consecuencia se produjo un escape del sandbox de Lua lo que hizo posible que un adversario llevara a cabo instrucciones arbitrarias por lo tanto restringe la capacidad del cliente para ejecutar código arbitrario en la computadora en la que opera Redis. Por otro lado en 2022 se descubrió que existía un agujero de seguridad en el motor de secuencias de comandos Lua. La biblioteca Lua ofrecía una biblioteca dinámica en algunos paquetes distribuidos por Debian. Se carga una instancia de una variable de paquete cada vez que el servidor Redis carga la biblioteca Lua. El paquete se mantiene en la caja de arena de Lua para que pueda llamarse desde dentro de cualquier biblioteca de Lua. Como consecuencia se produjo un escape del sandbox de Lua lo que hizo posible que un adversario llevara a cabo instrucciones arbitrarias. Se carga una instancia de una variable de paquete cada vez que el servidor Redis carga la biblioteca Lua. El paquete se mantiene en la caja de arena de Lua para que pueda llamarse desde dentro de cualquier biblioteca de Lua. Como consecuencia se produjo un escape del sandbox de Lua lo que hizo posible que un adversario llevara a cabo instrucciones arbitrarias. Se carga una instancia de una variable de paquete cada vez que el servidor Redis carga la biblioteca Lua. El paquete se mantiene en la caja de arena de Lua para que pueda llamarse desde dentro de cualquier biblioteca de Lua. Como consecuencia se produjo un escape del sandbox de Lua lo que hizo posible que un adversario llevara a cabo instrucciones arbitrarias.

Los atacantes que buscan servidores Redis accesibles por Internet pueden ejecutar una serie de comandos que les permitirán identificar instancias que son vulnerables a CVE-2022-0543. Luego pueden explotar la vulnerabilidad de seguridad para ejecutar código bajo el control del atacante después de identificar las instancias vulnerables.

Como parte de los ataques observados, los actores maliciosos lanzaban y ejecutaban la puerta trasera de Redigo, que camuflaba su existencia en la computadora al ocultar su conexión con el servidor de comando y control (C&C).

Aqua no ha tenido éxito en determinar el objetivo de los ciberataques de Redigo; no obstante, la empresa cree que la denegación de servicio distribuida (DDoS) la criptominería el robo de datos y el acceso permanente a entornos comprometidos son las explicaciones más probables.

Los investigadores creen que los perpetradores del ataque crearon la amenaza específicamente para los servidores de Redis debido al hecho de que algunas de las características de la puerta trasera son exclusivas de Redis. En este momento ninguno de los motores antimalware de VirusTotal reconoce el software malicioso.

Los adversarios se preocupan por mantener en secreto su comportamiento para evitar ser descubiertos. Pueden lograr esto mediante el uso de un método de conexión con Redis que parece ser genuino e imita la comunicación entre los clústeres de Redis mediante el uso del puerto 6379. Sin embargo, los adversarios están utilizando la conectividad para transmitir directivas que les darían el control del servidor que es susceptible de ser atacado.

Se recomienda encarecidamente que los propietarios de servidores Redis implementen correcciones tan pronto como estén disponibles y supervisen de cerca sus entornos para detectar cualquier comportamiento inusual.