Análisis de malware
Malware Drovorub: qué es, cómo funciona y cómo prevenirlo | Destacado malware
30 de diciembre de por Pedro Tavares
Introducción
El malware es una amenaza que ha aumentado exponencialmente en los últimos años, con muchos hilos sofisticados que afectan a ciudadanos, dispositivos, organizaciones, estados-nación, etc. Una de las amenazas recientes reportadas por el FBI y la NSA es un nuevo malware para Linux desarrollado por piratas informáticos militares de Rusia, llamado Drovorub.
Según el análisis del FBI y la NSA, el malware parece estar asociado con el APT28 (Fancy Bear, Sednit) , un apodo dado a los piratas informáticos que operan desde la unidad militar 26165 de la Dirección Principal de Inteligencia del Estado Mayor Ruso (GRU) 85th Main. Centro de Servicios Especiales (GTsSS). Este malware se ha utilizado para implantar puertas traseras dentro de redes comprometidas para lograr persistencia, exfiltración y acceso posterior.
¡Conviértete en un ingeniero inverso certificado!
Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender
Drovorub: cómo funciona
Drovorub es un kit de malware de Linux que aprovecha el kernel de Linux para infectar a las víctimas. Está equipado con un módulo de kernel rootkit, un módulo de transferencia de archivos, un módulo de reenvío de puertos y un servidor C2 que permite un control total sobre el dispositivo y la red infectados.
Cuando este malware se instala en el objetivo, proporciona la capacidad de comunicarse directamente con el servidor C2 controlado por delincuentes, descargar y cargar archivos de destino entre C2 y los dispositivos infectados, reenviar el tráfico de red a hosts arbitrarios y ejecutar comandos con privilegios de root. .
1: Diagrama de alto nivel de Drovorub con los componentes del malware.
La comunicación entre los módulos Drovorub se realiza utilizando JSON a través de WebSockets, como se ve en la 1. El agente Drovorub, el cliente Drovorub y el servidor Drovorub requieren archivos de configuración y una clave pública RSA (para el agente Drovorub y el cliente Drovorub) o clave privada (para el servidor Drovorub) para la comunicación.
A continuación se muestran breves descripciones de los módulos Drovorub.
Servidor Drovorub
El servidor está instalado y ejecutándose en el servidor C2 y es responsable de recibir y enviar mensajes a los agentes instalados en los dispositivos de la víctima. El servidor Drovorub utiliza una base de datos MySQL para gestionar los clientes (clientes y agentes de Drovorub). La base de datos almacena datos utilizados para el registro, la autenticación y la asignación de tareas del agente Drovorub y del cliente Drovorub.
2: Ejemplo del archivo de configuración del servidor Drovorub.
Drovorub-cliente
El componente cliente Drovorub se instala en los dispositivos de destino. Este componente es capaz de cargar y descargar archivos desde C2, reenviar puertos en la red interna y ejecutar comandos de privilegios gracias al módulo rootkit que proporciona funciones sigilosas para ocultar el cliente y los ganchos de explotación del módulo del kernel.
3: Archivo de configuración del agente Drovorub después del registro en un servidor Drovorub.
Módulo de núcleo Drovorub
El módulo Drovorub-kernel implementa la funcionalidad básica para ocultarse a sí mismo y a varios artefactos del espacio del usuario, incluidos archivos y directorios específicos, puertos de red, sesiones, etc.
Cuando se instala y ejecuta el módulo del kernel, se realizan las siguientes actividades, a saber:
- El módulo Drovorub-kernel instala todos los enlaces de llamadas del sistema necesarios y registra el módulo del kernel enviando un mensaje al servidor C2.
- El módulo Drovorub-kernel oculta los procesos en ejecución del cliente Drovorub y el ejecutable del cliente Drovorub en el disco
Para realizar comunicaciones con C2, Drovorub utiliza JSON como formato de mensaje para sus cargas útiles WebSocket. Todas las comunicaciones tienen la misma estructura:
4: Estructura de carga útil JSON básica de Drovorub.
La 5 a continuación muestra la conexión WebSocket inicial que tanto el cliente Drovorub como el agente Drovorub utilizan para conectarse y autenticarse en el servidor Drovorub.
5: Conexión inicial de WebSocket y sesión de autenticación de Drovorub.
Agente Drovorub
El agente Drovorub se instala en hosts accesibles a Internet dentro de la infraestructura comprometida. Este agente ejecutable recibe comandos de su servidor Drovorub configurado e incluye gran parte de la misma funcionalidad que el cliente Drovorub, excepto por la capacidad de shell remoto.
El agente Drovorub no está equipado con el rootkit del módulo del kernel. El agente Drovorub solo se utiliza para cargar y descargar archivos desde los puntos finales del cliente Drovorub y para reenviar el tráfico de red a través de retransmisiones de puertos.
El cliente y el agente de Drovorub comparten algunas funciones, como la descarga y carga de archivos:
6: Secuencia de carga y descarga de archivos.
El siguiente diagrama ilustra un escenario potencial en el que se podría utilizar la configuración de túnel de puertos entre un agente Drovorub y un cliente Drovorub para retransmitir el tráfico de red a un host remoto dentro de la red comprometida donde reside la máquina infectada con el cliente Drovorub.
7: Ejemplo de configuración de «túnel».
Mediante el uso de esta panoplia de técnicas, Drovorub es visto como una de las amenazas más emergentes que atacan dispositivos Linux este año. A continuación se presentan algunas medidas de prevención y mitigación como una forma de responder rápidamente a incidentes en esta línea.
Medidas de prevención y mitigaciones.
Para evitar ataques en estado salvaje, las organizaciones deben actualizar cualquier sistema Linux a una versión que ejecute la versión 3.7 o posterior del kernel, «para aprovechar al máximo la aplicación de la firma del kernel», una característica de seguridad que evitaría que los piratas informáticos de APT28 instalen el rootkit de Drovorub. .
Por otro lado, el uso de sistemas de detección como los Sistemas de Detección de Intrusiones en la Red (NIDS) como Suricata, Snort, Zeek y agentes basados en host debe verse como una medida obligatoria para bloquear intentos maliciosos y activar una notificación cuando se detecta actividad anormal. . Asimismo, se recomienda el uso de productos de seguridad en entornos Linux, incluidos antivirus, agentes de detección de endpoints y respuesta. Para la detección basada en host, la NSA proporciona las siguientes soluciones:
- Probar la presencia del módulo del kernel Drovorub mediante scripts
- Utilice productos de seguridad que puedan detectar artefactos de malware y la funcionalidad de rootkit (Sistema de auditoría del kernel de Linux)
- Implemente técnicas de respuesta en vivo: búsqueda de nombres de archivos, rutas, hashes específicos y con reglas de Yara
- Realizar análisis de memoria: El método más efectivo para encontrar el rootkit
- Realice un análisis de la imagen del disco: los artefactos de malware son persistentes en el disco, pero están ocultos de los archivos binarios normales del sistema y de las llamadas del rootkit.
Además, se recomienda a los administradores de sistemas que endurezcan sus sistemas para cargar sólo módulos con una firma digital válida, lo que hace que los sistemas sean más resistentes a ataques maliciosos al kernel a través de rootkit.
Fuentes
La NSA y el FBI exponen el malware ruso «Drovorub» no revelado previamente en un aviso de ciberseguridad, NSA
El GRU 85.º GTsSS ruso implementa malware Drovorub no revelado previamente , NSA
Drovorub “Llevando los sistemas a la trituradora de madera” – Lo que necesita saber , El estado de la seguridad
El FBI y la NSA exponen el nuevo malware para Linux Drovorub, utilizado por piratas informáticos estatales rusos , ZDNet