Los investigadores de Intezer y BlackBerry dieron a conocer recientemente que han descubierto un malware con nombre en código «Symbiote», que se caracteriza por ser usado para inyectar puertas traseras y rootkits en servidores Linux comprometidos.
Este software malicioso se encontró en los sistemas de instituciones financieras en varios países de América Latina. Una característica de Symbiote es la distribución en forma de biblioteca compartida, que se carga durante el inicio de todos los procesos utilizando el mecanismo LD_PRELOAD y reemplaza algunas llamadas a la biblioteca estándar.
Lo que diferencia a Symbiote de otros programas maliciosos de Linux con los que nos encontramos habitualmente es que necesita infectar otros procesos en ejecución para infligir daños en los equipos infectados.
En lugar de ser un archivo ejecutable independiente que se ejecuta para infectar una máquina, es una biblioteca de objetos compartidos (SO) que se carga en todos los procesos en ejecución mediante LD_PRELOAD (T1574.006) e infecta la máquina de forma parasitaria. Una vez que ha infectado todos los procesos en ejecución, proporciona al actor de amenazas la funcionalidad de rootkit, la capacidad de recopilar credenciales y la capacidad de acceso remoto.
Para poder lograr instalar Symbiote en un sistema, un atacante debe tener acceso root, el cual puede obtenerse, por ejemplo, como resultado de la explotación de vulnerabilidades sin parches o de la filtración de cuentas. Symbiote le permite al atacante poder asegurar su presencia en el sistema después de la piratería para realizar más ataques, ocultar la actividad de otras aplicaciones maliciosas y organizar la interceptación de datos confidenciales.
Nuestra detección más temprana de Symbiote es de noviembre de 2021, y parece haber sido escrito para apuntar al sector financiero en América Latina . Una vez que el malware ha infectado una máquina, se oculta a sí mismo y a cualquier otro malware utilizado por el actor de amenazas, lo que hace que las infecciones sean muy difíciles de detectar. Es posible que la realización de análisis forenses en vivo en una máquina infectada no revele nada, ya que el malware oculta todos los archivos, procesos y artefactos de la red. Además de la capacidad de rootkit, el malware proporciona una puerta trasera para que el actor de amenazas inicie sesión como cualquier usuario en la máquina con una contraseña codificada y ejecute comandos con los privilegios más altos.
Los controladores de llamadas falsificados ocultan la actividad relacionada con la puerta trasera, como excluir elementos individuales en la lista de procesos, bloquear el acceso a ciertos archivos en /proc, ocultar archivos en directorios, excluir una biblioteca compartida maliciosa de la salida ldd (la función execve se intercepta y las llamadas son analizados con una variable de entorno LD_TRACE_LOADED_OBJECTS) no muestran sockets de red asociados con actividad maliciosa.
Symbiote también permite eludir algunos analizadores de actividad en el sistema de archivos, ya que el robo de datos confidenciales puede llevarse a cabo no al nivel de abrir archivos, sino interceptando operaciones de lectura de estos archivos en aplicaciones legítimas (por ejemplo, sustitución de biblioteca funciones le permite interceptar la entrada del usuario de una contraseña o archivos cargados desde un archivo clave de acceso a datos).
Dado que es extremadamente evasivo, es probable que una infección de Symbiote «vuele por debajo del radar». En nuestra investigación, no hemos encontrado suficiente evidencia para determinar si Symbiote se está utilizando en ataques amplios o altamente dirigidos.
Para organizar el inicio de sesión remoto, Symbiote intercepta algunas llamadas PAM (Módulo de autenticación conectable), lo que le permite conectarse al sistema a través de SSH con ciertas credenciales de ataque. También hay una opción oculta para elevar sus privilegios a root configurando la variable de entorno HTTP_SETTHIS.
Para protegerse contra la inspección del tráfico, las funciones de la biblioteca libpcap se redefinen, se filtra la lectura de /proc/net/tcp y se inserta código adicional en los programas BPF cargados en el núcleo.
Finalmente si estás interesado en poder conocer más al respecto sobre la nota, puedes consultar el articulo original en el siguiente enlace.