Más de la mitad de los servidores web de Internet utilizan
Apache, por lo tanto,
nos pareció alarmante descubrir un módulo malicioso in the wild (Chapro) diseñado para inyectar código en sitios alojados en servidores Apache comprometidos. Dicha preocupación aumentó más cuando
descubrimos que este malware estaba siendo utilizado como parte de un esquema de robo de credenciales bancarias.
En una primera instancia nos preguntamos si esta amenaza estaba relacionada de alguna forma con
Linux/Snakso.A, un rootkit diseñado para inyectar Iframe en servidores web,
sin embargo, pudimos determinar que se trata de una amenaza
completamente distinta. El módulo malicioso para Apache que analizamos
es detectado por los
productos de ESET como
Linux/Chapro.A.
El principal objetivo de Chapro es inyectar código dentro de sitios web
alojados en un servidor comprometido. En la siguiente imagen es posible
apreciar la inyección de código (puede ser JavaScript u otro tipo):
Pese a que este módulo puede inyectar cualquier tipo de código, en
este caso descubrimos que estaba siendo utilizado para infectar
computadoras con una variante del troyano Win32/Zbot a través de la inyección de etiquetas Iframe. Asimismo, descubrimos algunas características de este malware
diseñadas para ocultar su presencia en el sistema y de ese modo,
disminuir la posibilidad de que un administrador encuentre la infección.
Nuestro análisis incluyó tanto el módulo malicioso para Apache como la
amenaza que estaba siendo propagada. A continuación explicaremos el
funcionamiento de Chapro, el kit de exploit utilizado para instalar el malware y el payload (comportamiento) de la variante de Zbot asociada a este caso.
Características de Linux/Chapro.A
Chapro es un módulo malicioso para Apache que consta de un binario de
Linux de 64 bit. Este
malware
utiliza una técnica de ofuscación que consiste en un bucle XOR con una
llave de 12 bit de longitud que se utiliza para cifrar la mayoría de las
string. La amenaza posee varias características para evadir la
detección por parte de los administradores de sistemas. Antes de que se
inyecte código en un sitio, Chapro comprueba múltiples elementos.
Primero determina el
user agent y lo compara con otros con el objetivo de evitar inyectar código si este pertenece a algún rastreador web (
crawler) o navegador web que no sea vulnerable. La siguiente captura muestra algunas palabras claves que intenta evitar:
Linux/Chapro.A también inspecciona todas las sesiones SSH
activas del sistema Linux en el cual se está ejecutado. Esto lo hace con
el fin de poder determinar las direcciones IP que están siendo
utilizadas por dichos sistemas. Si un usuario visita algún sitio
comprometido y la IP de este coincide con alguna dirección obtenida en
la etapa anterior, se evita inyectar código. Esto dificulta que algún
administrador, desarrollador web u otros que trabajen en dichos equipos,
se den cuenta de la infección. Chapro también mantiene una lista de
direcciones IP que han sido utilizadas para propagar contenido
malicioso. Si un usuario visita un sitio comprometido en más de una
ocasión desde la misma IP, recibirá el contenido malicioso solo una vez.
Esto dificulta aún más el descubrimiento de esta amenaza.
Contenido inyectado
El principal objetivo de Chapro es inyectar etiquetas Iframe dentro
de los sitios que están alojados en el servidor Apache comprometido.
Para lograr este propósito envía una petición HTTP Post al
Centro de Comando y Control (C&C) cada diez minutos. A continuación se muestra una imagen con una petición HTTP Post que envía este
malware:
Al momento del análisis, el C&C estaba siendo alojado en
Alemania, sin embargo, ya no está disponible. Como puede verse la
petición es sencilla, solo incluye la versión del malware y del sistema
operativo en el que se está ejecutando. Una vez que envía esta
información, el C&C responde a la solicitud con el Iframe que
inyectará el módulo malicioso para Apache. La etiqueta Iframe está
cifrada utilizando base64 y XOR. Si la potencial víctima no cumple
algunos de los requisitos que este
código malicioso
impone para evitar la infección, se procede a la inyección del Iframe
obtenido del Centro de Comando y Control. La captura que se expone a
continuación muestra el código HTML que inyecta Chapro. La etiqueta
Iframe es posicionada fuera del rango de visión del navegador web para
que el usuario no note nada extraño.
Kit de exploit
Basados en nuestro análisis estamos seguros que la etiqueta Iframe que inyecta
Linux/Chapro.A apunta al sitio del kit de
exploit “
Sweet Orange”. Al momento del análisis el kit de
exploit estaba siendo alojado en Lituania. El pack intenta explotar las siguientes
vulnerabilidades encontradas en algunos navegadores y
plugin modernos:
Si el kit de exploit logra explotar una de esas vulnerabilidades, el payload final es ejecutado.
Payload de ataque
El objetivo final de todo este esquema de ataque es instalar una variante de
Win32/Zbot también conocida como
ZeuS. Este troyano ha sido utilizado por cibercriminales durante años para robar información bancaria. En este caso, el
malware
estaba robando información perteneciente a entidades financieras de
Europa y Rusia. La siguiente imagen muestra un formulario que despliega
un banco para que los usuarios puedan manejar sus cuentas en línea:
Aparentemente este banco está consciente de que los cibercriminales
están intentando obtener de los clientes los códigos PIN, CVC y CVV. De
hecho, la institución financiera muestra una advertencia específica en
el formulario, sin embargo, cuando este mismo sitio es visitado desde
una computadora infectada, esta advertencia es removida por el malware como se puede apreciar a continuación:
Una vez que el usuario ha iniciado sesión en su cuenta, Zbot inyecta código para mostrar un pop-up
que le solicita al usuario ingresar su código CVV. Cabe destacar que la
advertencia del banco describe exactamente este comportamiento
malicioso (la petición del código CVV por parte de ciberdelincuentes).
Conclusiones
El esquema de ataque utilizado por Linux/Chapro.A ha sido documentado
solo una vez en el pasado. Por otro lado, nuestro sistema de
estadísticas no ha reportado otra instalación in the wild de
este módulo malicioso para Apache. Pese a que el objetivo de Chapro es
el mismo que de Snakso, es decir, inyectar etiquetas Iframe en sitios
web, pudimos concluir que ambas son amenazas pertenecientes a familias
completamente distintas.
Pese a que no hemos observado otros casos de Chapro in the wild , notamos miles de usuarios accediendo al kit de exploit Sweet Orange antes de que bloqueáramos el acceso a este servidor en nuestros productos. No obstante cabe destacar que ESET
bloqueó los intentos de explotación mediante una firma genérica incluso
antes de que impidiéramos el acceso al sitio malicioso. El
ataque descrito en el presente análisis demuestra el aumento en la
complejidad de los códigos maliciosos. Esta operación delictual se
propagó a través de tres países y las víctimas pertenecían a una cuarta
nación, lo que dificulta el actuar de las autoridades frente a estos
delitos. Desconocemos con exactitud si son los mismos ciberdelincuentes
los responsables de toda esta operación, o si múltiples grupos de
cibercriminales intervinieron en todo el proceso. Quizá hubo algún grupo
encargado de dirigir a las víctimas hacia el kit de exploit para luego vender las computadoras infectadas a otros ciberdelincuentes que estaban utilizando Zbot.
Agradecimientos
Les damos las gracias a los siguientes investigadores por haber
colaborado en este análisis: Jean-Ian Boutin, François Chagnon,
Sébastien Duquette y Aleksander Matrosov.
Actualización (21/12/2012): ESET Norteamérica ha
publicado un post aclaratorio en donde se explican algunos aspectos de
este código malicioso diseñado para afectar servidores web Apache. En la
publicación Malicious Apache Module: a clarification
se dilucidan temas como el hecho de que desconocemos con exactitud si
Chapro logró ingresar al servidor comprometido a través de la
explotación de una vulnerabilidad de Apache. También aprovechamos de
mencionar que es poco probable que este malware haya sido propagado a
través de una distribución de Linux debido a que el número de servidores
infectados sería mucho mayor. Más antecedentes pueden ser consultados
en el enlace citado anteriormente.
No hay comentarios:
Publicar un comentario