Symantec acaba de
ofrecer detalles sobre el funcionamiento un nuevo
malware para Linux que llama la atención por su relativa sofisticación. Fue
descubierto en junio como parte fundamental de un ataque personalizado a un proveedor de
hosting, pero es ahora cuando ofrecen detalles técnicos sobre su
funcionamiento.
Aunque sofisticado para
el entorno Linux, técnicamente queda en poco comparado con el
malware para
Windows.
En mayo de 2013, se atacó un importante proveedor de
alojamiento en internet. Los autores sabían perfectamente lo que hacían y qué
errores no debían cometer. Iban tras los datos financieros y las contraseñas de
sus usuarios (curiosamente se almacenaban cifrados, pero no pueden asegurar que
no haya accedido a la clave maestra...). Esto ocurre a diario, pero la diferencia
es el método usado: Fokirtor, que es como Symantec ha bautizado al troyano
usado como herramienta para el ataque.
Se trata de una empresa relativamente importante y
necesitaban eludir sus sistemas de seguridad, así que intentaron pasar
desapercibidos inyectándose en algunos procesos del servidor como el demonio SSH.
De esta forma camuflaban su presencia tanto "físicamente" (no se
advertirían procesos) como en el tráfico generado (que se mezclaría con el
generado por el propio SSH). Este es un método "estándar" del malware
en Windows, donde los troyanos habituales suelen inyectarse en el navegador y
camuflar tráfico bajo HTTP.
Por supuesto, el malware necesitaba conectividad con el
exterior para recibir órdenes. En este sentido, en el mundo Windows normalmente
el malware se conecta periódicamente desde dentro al exterior (para evitar el
cortafuegos entrante) hacia un C&C por HTTP. En el caso de
Fokirtor,
lo que
hacía era "hookear" funciones y esperar inyectados en el proceso SSH
los caracteres (sin las comillas) "
:!;. " , lo que indicaría que el atacante deseaba realizar una
acción. Este método no es nuevo en cierta forma. Habitualmente,
cuando se troyaniza software legítimo en el mundo Linux, se le programa la capacidad de
reaccionar ante cierto patrón de tráfico y se publica para que sea
descargado. Lo que no es tan habitual hacerlo "al vuelo" en una
inyección en los procesos. Aunque la noticia no lo aclara, entendemos que el
atacante tuvo que hacerse con privilegios de root en la máquina afectada.
El atacante solo tenía que conectarse por SSH a los
servidores y enviar la secuencia mágica para tener el control. Los comandos
recibidos estaban codificados en base64 y cifrados con blowfish (diseñado por Bruce
Schneier en 1993). Ese tráfico no aparecía en los logs.
¿Sofisticado?
En términos absolutos, técnicamente queda por debajo del
malware estándar para Windows, y a años luz del malware profesional como
"ciberarma" (TheFlame, Stuxnet, etc). Sin embargo, sí supone un
interesante hito que no suele ocurrir a menudo. Encontrar malware específico
para servidores Linux que busque activamente pasar desapercibidos.
Para disponer de noticias parecidas, debemos remontarnos a
hace justo un año.
Un usuario envió un correo a la lista de seguridad Ful lDisclosure 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 y los módulos del kernel responsables del
problema, que adjuntó al correo de alerta para que pudiera ser estudiado. No se
tuvieron demasiadas noticias de ese rootkit después de ser analizado a fondo.
Algunas preguntas sin respuesta
Algo que llama la atención pero no parece haber sido
explicado, es que Symantec detectaba este malware desde junio, con el mismo
nombre, pero solo ahora ofrece ciertos detalles técnicos de su funcionamiento.
¿Qué ha ocurrido en estos cinco meses? Probablemente han estudiado en colaboración con la
empresa afectada, el comportamiento en detalle. A no ser que se hayan topado
con problemas administrativos o legales, técnicamente no es necesario tanto tiempo para
analizar un malware. ¿Y qué ocurrió antes de junio de este año? En mayo se
detectó el ataque, pero no se dice en ningún momento cuánto tiempo pasó el
malware en el servidor de la empresa infectada. Un dato interesante sería conocer el éxito de su estrategia de ocultación medido en el periodo de infección real. Al tratarse de una compañía de
hosting, ¿se han visto comprometidas páginas de clientes?
No se habla de que el troyano tuviera ninguna capacidad de
replicarse, ni de su posible detección en otros sistemas. Posiblemente se trate
de un ataque personalizado a una empresa concreta, y los atacantes no han
dotado a su herramienta de más funcionalidad que la estrictamente necesaria
para llevar a cabo su objetivo.
Aunque instintivamente relacionamos con sistemas Windows el
mundo del malware, cuando se tiene un objetivo claro, sea el sistema operativo
que sea, no existen barreras. O incluso son menores. No olvidemos que el
malware, técnicamente hablando, es un programa "como otro cualquiera" y sólo la
voluntad de programarlo es lo que le separa de que se haga realidad para una
plataforma concreta.
Sergio de los Santos
ssantos@11paths.com