Se
ha descubierto un rootkit interesante
para servidores Linux, que inyecta código en todas las páginas servidas por
el servidor Proxy nginx, muy usado como "puerta" hacia Apache en servidores *nix en sitios de tráfico
intenso.
Un usuario envió un correo a la lista de seguridad Full Disclosure afirmando que había descubierto sus sistemas
Debian infectados por lo que parecía un "rootkit trabajando junto con nginx". Se trataba de un administrador
que se había percatado de que los visitantes de su web estaban siendo
redireccionados a sitios infectados. Varios tipos de petición hacia ese
servidor web, devolvía un iframe inyectado en la página, que llevaba a un punto
donde se intentaba infectar a los usuarios de Windows. El administrador
descubrió también procesos ocultos (típico comportamiento de un rootkit) y los
módulos del kernel responsables del problema, que adjuntó al correo de alerta
para que pudiera ser estudiado.
Parece que el sistema de este
administrador ha sido efectivamente comprometido (a nivel de root, al tratarse
de un módulo para el kernel) para incluir un rootkit en él, y modificar el
comportamiento de su servidor web. Así, todos
los visitantes podían ser redirigidos a páginas de malware.
Nos encontramos pues ante una
pieza más del puzle. Un nuevo método de distribución
que implica una pieza de software interesante que previamente se
desconocía. Se ha dado en llamar Rootkit.Linux.Snakso, y por ahora su detección es mínima (6 de 43 motores).
El principal problema para este
rootkit es que si bien puede pasar desapercibido en el sistema, es muy fácilmente detectable por su propio funcionamiento:
cualquier visitante de la web puede comprobar que se añaden iframes hacia
ciertas webs sospechosas.
Cómo funciona
Está diseñado para atacar
sistemas Linux de 64 bits y se ha compilado para la versión 2.6.32-5 que
utiliza Debian Squeeze. Intercepta las llamadas a ciertas funciones del kernel
para poder cumplir su función y, además, acepta instrucciones de un sistema
central. Puede que esté en desarrollo aún. El atacante ha sido muy descuidado,
porque el binario todavía contiene toda la información de "debug", y no ha sido "strippeado" (eliminada esa
información). También se intuye que no es muy profesional. Algo interesante es
que llega a muy bajo nivel para inyectar
los iframes, sustituyendo la función de sistema tcp_sendmsg, así que el
troyano modifica directamente los paquetes TCP que salen del servidor. Para
saber qué inyectar, se conecta a su controlador con protocolo propio, protegido
por contraseña cifrada.
Las IPs públicas que aparecen en
el módulo son:
91.123.100.207
149.20.20.133
149.20.4.69
64.189.125.254
Como curiosidad, en vez de comprobar
que la página servida ofrece un 200 para "inyectarse" (un OK en código HTTP) está programado para no mostrarse
solo cuando se da un 403, 304 o la cadena "not found on this server" (o sea, un 404). Esta lógica es un
poco extraña y seguro ha acelerado el proceso de descubrimiento.
Conclusiones
Los rootkits o el malware en
Linux no son nuevos. La novedad consiste en que se ha creado un rootkit nuevo
para entornos Linux, cuando lo habitual es nutrirse de código ya hecho. Otro
asunto extraño es el aroma a "novato"
de este rootkit. No parece un ataque
dirigido, sino algo que apuntaba a infectar más sistemas. Sin embargo no
cuenta con ningún mecanismo de reproducción. El atacante ha debido o bien tener
acceso como root a la máquina infectada o el administrador ha quedado infectado
a través de algún método que desconocemos. Hasta aquí, todo misterios.
Eliminando estos aspectos, el encuadre del ataque no es nada nuevo:
los atacantes se nutren de servidores en cualquier plataforma (páginas comprometidas
habitualmente) para infectar Windows. El "objetivo" de la infección es habitualmente Windows, pero no es
extraño que el "medio" sea
cualquier otra plataforma para maximizar su difusión.
Es, en realidad, un paso más allá en el sistema de distribución
de malware. Si bien hasta ahora habíamos sido testigos de páginas comprometidas
donde se añadían enlaces maliciosos, no eran comunes ataques en los que todo el
sistema del servidor web se viese comprometido hasta sus entrañas... y mucho
menos a través de un rootkit para Linux.
Más información:
linux rootkit in combination with nginx
HTTP iframe Injecting Linux Rootkit
Sergio de los Santos
Twitter: @ssantosv
Fuente: Hispasec
No hay comentarios:
Publicar un comentario