El complejo de malware Drovorub infecta el sistema operativo Linux

Agencia de Seguridad Nacional y Oficina Federal de Investigaciones de EE. UU. publicó un informe, según el cual el 85º centro principal de servicios especiales Dirección Principal del Estado Mayor de las Fuerzas Armadas de Rusia (85 GCSS GRU) se utiliza un complejo de malware llamado “Drovorub”. Drovorub incluye un rootkit en forma de módulo del kernel de Linux, una herramienta para transferir archivos y redirigir puertos de red y un servidor de control. La parte del cliente puede descargar y cargar archivos, ejecutar comandos arbitrarios como usuario root y redirigir puertos de red a otros nodos de red.

El centro de control de Drovorub recibe la ruta al archivo de configuración en formato JSON como argumento de la línea de comando:

{
"db_host": " ",
"puerto_db": " ",
"db_db": " ",
"db_user": " ",
"contraseña_db": " ",

"lportar": " ",
"lhost": " ",
"ping_sec": " ",

"priv_key_file": " ",
"frase" : " »
}

MySQL DBMS se utiliza como backend. El protocolo WebSocket se utiliza para conectar clientes.

El cliente tiene una configuración incorporada, que incluye la URL del servidor, su clave pública RSA, nombre de usuario y contraseña. Después de instalar el rootkit, la configuración se guarda como un archivo de texto en formato JSON, que el módulo del kernel de Drovoruba oculta al sistema:

{
«id» : «cbcf6abc-466b-11e9-853b-000c29cb9f6f»,
"clave": "Y2xpZW50a2V5"
}

Aquí, "id" es un identificador único emitido por el servidor, en el que los últimos 48 bits corresponden a la dirección MAC de la interfaz de red del servidor. El parámetro "clave" predeterminado es una cadena "clientkey" codificada en base64 que utiliza el servidor durante el protocolo de enlace inicial. Además, el archivo de configuración puede contener información sobre archivos, módulos y puertos de red ocultos:

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
"clave": "Y2xpZW50a2V5",
"monitor" : {
"archivo" : [
{
"activo": "verdadero"
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
"máscara": "archivo de prueba1"
}
],
"módulo": [
{
"activo": "verdadero"
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
"máscara": "módulo de prueba1"
}
],
"neto" : [
{
"activo": "verdadero"
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
"puerto": "12345",
"protocolo": "tcp"
}
]}
}

Otro componente de Drovorub es el agente; su archivo de configuración contiene información para conectarse al servidor:

{
"client_login": "usuario123",
"contraseña_cliente": "contraseña4567",
"clienteid": "e391847c-bae7-11ea-b4bc-000c29130b71",
«clientkey_base64» : «Y2xpZW50a2V5»,
"pub_key_file": "clave_pública",
"servidor_host": "192.168.57.100",
"puerto_servidor": "45122",
"servidor_uri": "/ws"
}

Inicialmente faltan los campos “clientid” y “clientkey_base64”; se agregan después del registro inicial en el servidor.

Después de la instalación, se realizan las siguientes operaciones:

  • se carga el módulo del kernel, que registra enlaces para llamadas al sistema;
  • el cliente se registra con un módulo del kernel;
  • El módulo del kernel oculta el proceso del cliente en ejecución y su archivo ejecutable en el disco.

Se utiliza un pseudodispositivo, por ejemplo /dev/zero, para comunicarse entre el cliente y el módulo del kernel. El módulo del kernel analiza todos los datos escritos en el dispositivo y, para transmitirlos en la dirección opuesta, envía la señal SIGUSR1 al cliente, después de lo cual lee los datos del mismo dispositivo.

Para detectar Lumberjack, puede utilizar el análisis del tráfico de red mediante NIDS (la actividad de red maliciosa en el sistema infectado no se puede detectar, ya que el módulo del kernel oculta los sockets de red que utiliza, las reglas de netfilter y los paquetes que podrían ser interceptados por sockets sin formato) . En el sistema donde está instalado Drovorub, puede detectar el módulo del kernel enviándole el comando para ocultar el archivo:

toque el archivo de prueba
echo “ASDFZXCV:hf:archivo de prueba” > /dev/zero
ls

El archivo "testfile" creado se vuelve invisible.

Otros métodos de detección incluyen el análisis del contenido de la memoria y del disco. Para prevenir infecciones, se recomienda utilizar la verificación de firma obligatoria del kernel y los módulos, disponible a partir de la versión 3.7 del kernel de Linux.

El informe contiene reglas de Snort para detectar la actividad de red de Drovorub y reglas de Yara para detectar sus componentes.

Recordemos que el 85º GTSSS GRU (unidad militar 26165) está asociado al grupo APT28 (Oso elegante), responsable de numerosos ciberataques.

Fuente: opennet.ru