Nuevo malware de Linux conocido como Sneaky Orbit 

Se ha reportado un nuevo malware de Linux conocido como Sneaky Orbit, que permitiría a un atacante robar información de forma silenciosa del equipo infectado, incluyendo posibles backdoors, instalación persistente y evasión de controles de seguridad. 

El malware, apodado Orbit, es diferente a otras amenazas de en Linux, debido a que roba información de diferentes comandos y utilidades, luego los almacena en archivos específicos en la máquina. De hecho, el nombre del malware proviene de uno de los nombres de archivo utilizado para almacenar temporalmente la salida de los comandos ejecutados. 

Normalmente, las amenazas Linux existentes, como Symbiote y HiddenWasp, secuestran bibliotecas compartidas de Linux modificando la variable de entorno LD_PRELOAD. Sin embargo, Orbit funciona de manera diferente, utilizando dos formas diferentes de cargar la biblioteca maliciosa: 

  • La primera forma es agregando el objeto compartido al archivo de configuración que utiliza el cargador. 
  • La segunda forma es parchando el binario del propio cargador para que cargue el objeto compartido malicioso. 

Nota: Específicamente, Orbit utiliza cadenas cifradas XOR y roba contraseñas, tácticas que son similares a otras puertas traseras (backdoors) de Linux ya reportadas por investigadores. 

Orbit se carga en una máquina o dispositivo Linux a través de un dropper que no solo instala la carga útil, sino que también prepara el entorno para la ejecución de malware. Para instalar la carga útil y agregarla a las bibliotecas compartidas que está cargando el enlazador dinámico, el dropper llama a una función llamada patch_ld y luego al enlace simbólico del enlazador dinámico /lib64/ld-linux-x86-64.so.2. Este último se realiza para verificar si la carga útil maliciosa ya está cargada buscando la ruta utilizada por el malware, si se encuentra la carga útil, la función puede intercambiarla con la otra ubicación. De lo contrario, el dropper busca /etc/ld.so.preload y lo reemplaza con un enlace simbólico a la ubicación de la biblioteca maliciosa: /lib/libntpVnQE6mk/.l oo /dev/shm/ldx/.l, dependiendo del argumento pasado al cuentagotas, y por último, el dropper agregará /etc/ld.so.preload al final del archivo temporal para asegurarse de que la biblioteca maliciosa se cargue primero. La carga útil en sí es un objeto compartido (.SO) que se puede colocar en almacenamiento persistente o en memoria shim (volátil).  

El objeto compartido enlaza funciones de tres bibliotecas: libc, libcap y Pluggable Authentication Module (PAM). Una vez hecho esto, los procesos existentes que usan estas funciones utilizarán esencialmente las funciones modificadas, y los nuevos procesos también se engancharán con la biblioteca maliciosa. Orbit también engancha múltiples funciones como su estrategia para evadir la detección, evitando así que liberen información que podría revelar la existencia de la biblioteca compartida maliciosa ya sea en los procesos en ejecución o en los archivos en uso por Orbit. 

El malware utiliza un valor GID codificado (el establecido por el dropper) para identificar los archivos y procesos que están relacionados con el malware y en función de eso manipulará el comportamiento de las funciones enganchadas. En Linux, un GID es un valor numérico utilizado para representar un grupo específico. 

Como ejemplo de esta funcionalidad, Orbit enlaza a readdir, una función de Linux que devuelve un puntero a una estructura diferente que describe la siguiente entrada de directorio en el flujo de directorios asociado con dirp, para verificar el GID del proceso de llamada. 

Nota: Si no coincide con el valor codificado, todos los directorios con el valor GID predefinido se omitirán de la salida de la función. 

Referencias: 

Compartir: