Este nuevo y sigiloso malware roba datos de dispositivos Linux
Investigadores han descubierto un nuevo malware malicioso para Linux que utiliza puertas traseras para robar datos. Este malware puede afectar todos los procesos que se ejecutan en una máquina en particular.
El malware, denominado Orbit, se diferencia de otras amenazas de Linux en que roba información de diferentes comandos y utilidades. Posteriormente, el malware almacena la información robada en archivos específicos en la máquina, según revelaron los investigadores de la firma de automatización de seguridad Intezer. De hecho, el nombre del malware proviene de uno de los nombres de archivo para almacenar temporalmente la salida de los comandos ejecutados.
Orbit puede lograr la persistencia en una máquina o instalarse como un implante volátil, explicó Nicole Fishbein de Intezer en una publicación realizada la semana pasada.
El malware se distingue de amenazas similares por su “enganche casi hermético” de bibliotecas en las máquinas objetivo, Esto le permite ganar persistencia y evadir la detección mientras roba información y configura la puerta trasera SSH.
“El malware implementa técnicas avanzadas de evasión y gana persistencia en la máquina al conectar funciones clave. Asimismo, brinda a los atacantes capacidades de acceso remoto a través de SSH, recopila credenciales y registra comandos TTY”.
Fishbein
Además, una vez que se instala Orbit, infecta todos los procesos en ejecución en la máquina, incluidos los nuevos.
Un malware distinto
OrBit no es el primer malware de Linux altamente evasivo que ha surgido recientemente, capaz de usar enfoques similares para comprometer completamente los dispositivos con puerta trasera.
Symbiote también usa la directiva LD_PRELOAD
para cargarse en procesos en ejecución, actuando como un parásito en todo el sistema y sin dejar signos de infección.
BPFDoor, otro malware detectado recientemente que se dirige a los sistemas Linux, se camufla usando los nombres de los demonios comunes de Linux. Esto le ayudó a pasar desapercibido durante más de cinco años.
Ambas cepas utilizan la funcionalidad de enlace BPF (Berkeley Packet Filter) para monitorear y manipular el tráfico de la red. En otras palabras, pueden ocultar sus canales de comunicación de las herramientas de seguridad.
Por lo general, las amenazas de Linux como Symbiote y HiddenWasp, secuestran las 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 usa el cargador. La segunda forma es parcheando el binario del propio cargador para que cargue el objeto compartido malicioso.
Específicamente, Orbit usa cadenas cifradas XOR y roba contraseñas, tácticas que son similares a otras puertas traseras de Linux ya reportadas por investigadores de ESET.
Pero ahí es donde termina la similitud con la forma en que esas puertas traseras secuestran bibliotecas. Orbit va un paso más allá no solo al robar información de diferentes comandos y utilidades, sino también al implementar “un uso extensivo de archivos” para almacenar los datos robados, algo que los investigadores no habían visto antes.
Instalación y Ejecución
Orbit se carga en una máquina o dispositivo Linux a través de un instalador que no solo instala el payload, sino que también prepara el entorno para la ejecución del malware.
Para instalar el payload y agregarlo a las bibliotecas compartidas que está cargando el enlazador dinámico, el instalador 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
. Esto último se hace para verificar si el payload malicioso ya está cargado buscando la ruta utilizada por el malware.
Si se encuentra el payload, la función puede intercambiarlo con la otra ubicación. De lo contrario, el instalador busca /etc/ld.so.preload
y lo reemplaza con un enlace simbólico a la ubicación de la biblioteca maliciosa: /lib/libntpVnQE6mk/.l
o /dev/shm/ldx/.l
, según el argumento pasado al instalador.
Por último, el instalador agrega /etc/ld.so.preload
al final del archivo temporal para asegurarse de que la biblioteca maliciosa se cargue primero
El payload en sí es un objeto compartido (archivo .SO) que se puede colocar en almacenamiento persistente o en memoria. Si se coloca en la primera ruta, el malware será persistente; de lo contrario, será volátil.
El objeto compartido enlaza funciones de tres bibliotecas: libc, libcap y módulo de autenticación conectable (PAM). Una vez hecho esto, los procesos existentes que usan estas funciones esencialmente usarán las funciones modificadas, y los nuevos procesos también se infectaran con la biblioteca maliciosa.
Este enlace permite que el malware infecte toda la máquina y recolecte credenciales, evada la detección, gane persistencia y brinde acceso remoto a los atacantes.
Tácticas de evasión
Orbit también utiliza múltiples funciones como su estrategia para evadir la detección, evitando así que liberen información que pueda revelar la existencia de la biblioteca compartida maliciosa, ya sea en los procesos en ejecución o en los archivos que usa Orbit.
El malware utiliza un valor GID codificado (el que establece el instalador) para identificar los archivos y procesos que están relacionados con el malware. Y, en base a eso, manipula el comportamiento de las funciones infectadas. En Linux, un GID es un valor numérico que se usa para representar un grupo específico.
Como ejemplo de esta funcionalidad, Orbit infecta readdir, una función de Linux que devuelve un puntero a una estructura directa que describe la siguiente entrada de directorio en el flujo de directorio asociado con dirp, para verificar el GID del proceso de llamada.
Si no coincide con el valor codificado, todos los directorios con el valor GID predefinido se omiten de la salida de la función.