Problemas de los antivirus perimetrales con algunas versiones de Bagle
Algunas de las numerosas variantes de Bagle tienen la particularidad de
propagarse como un archivo ZIP protegido con contraseña.
Esta característica ha supuesto un contratiempo para los antivirus, en
especial para los situados en los servidores de correo, que en principio
no contaban con mecanismos para detectar este tipo de archivos, de forma
que estas muestras llegaban infectadas al buzón de los usuarios.
Este problema ya lo predecíamos en Hispasec el pasado diciembre, bajo el
título “Gusano invisible a filtros y antivirus perimetrales”
(http://www.hispasec.com/unaaldia/1863). A continuación reproducimos un
par de extractos de aquella nota:
“Desde el punto de vista de un
antivirus en el perímetro la detección se produce a través del análisis
del código. Una vez extraído el ejecutable que se encuentra en el ZIP,
se compara su código con una base de datos de firmas de virus (porciones
de código de los virus conocidos). Si existe coincidencia, hemos
encontrado al gusano.
Si además de comprimir, utilizamos funciones de
contraseña y cifrado, podemos obtener un archivo que contiene un
ejecutable que los antivirus no pueden extraer y, por tanto, comprobar
si se trata de un virus o no. Para que el virus sea efectivo debe,
mediante algún tipo de engaño, proporcionar la contraseña al usuario y
convencerlo para que lo descomprima y ejecute”[…].
“Pero, ¿que
ocurre si el gusano es capaz de comprimirse y cifrarse en base a una
contraseña al azar antes de cada autoenvío?. En ese caso tendríamos
envíos de archivos con aspectos externos diferentes, ya que la
contraseña se utiliza como clave para el cifrado simétrico del archivo,
dando como resultado diferentes archivos, con diferentes firmas, según
la contraseña utilizada.
Llegados a este punto tendríamos un archivo
protegido, de forma que los antivirus no pueden examinar su interior, y
que tampoco podrían reconocerlo por su aspecto exterior ya que varía en
cada envío al utilizar diferentes contraseñas.”
Esta técnica ha
sido la utilizada por algunas variantes de Bagle, que llegan al usuario
en un mensaje donde se le facilita una contraseña para que puedan abrir
el archivo ZIP adjunto. Veamos algunos mensajes de ejemplo, algunos más
elaborados como:
Dear user, the management of [dominio del
destinatario] mailing system wants to let you know that, Your e-mail
account has been temporary disabled because of unauthorized access.
Advanced details can be found in attached file.
In order to read the attach
you have to use the following password: 21049.
O tan simples como:
archive password: 38902
Los antivirus
Si tenemos un antivirus instalado en nuestro PC, en estos casos el
problema es menor, ya que en vez de detectar el gusano cuando llega a
nuestro buzón, simplemente lo detectaría más tarde, si engañados por el
mensaje introducimos la contraseña e intentamos acceder al interior del
ZIP. Al extraerlo o ejecutarlo se realiza una copia del ejecutable
original en el disco, momento en el cual nuestro antivirus residente
puede identificarlo sin problemas.
El auténtico problema de esta
técnica se presenta en los antivirus perimetrales, por ejemplo los que
están instalados en el servidor de correo. Cuando el ZIP protegido con
contraseña pasa por el servidor de correo, el motor antivirus no podía
examinar los archivos que esconde en su interior y determinar si están
infectados o no. El resultado es que el archivo ZIP pasa al buzón de los
usuarios, y éstos pueden tener una falsa sensación de seguridad al creer
que su servidor de correo les detecta cualquier tipo de virus o gusano.
En la nota del pasado diciembre, donde comentábamos este tipo de problemas,
también apuntábamos una posible solución en el caso de los ZIP
protegidos con contraseña:
“Si nos basamos en el formato ZIP, que
ya de por si tiene algunas debilidades por diseño en su algoritmo,
existen diversas soluciones para atajar este hipotético gusano en
tránsito, por ejemplo se almacena en el ZIP en texto claro algunos datos
como el nombre, tamaño o CRC del archivo original, que podría permitir
detectarlo de forma rápida si el gusano no utiliza funcionalidades
extras para modificar algunos de sus aspectos más externos.”
Este
método es el utilizado por soluciones antivirus como NOD32, que nos
conste el primero en detectar las variantes de ZIP con contraseñas, o
Panda, que también incorpora este tipo de reconocimiento. Estas
soluciones pueden detectar los ZIP protegidos que Bagle infecta, sin
necesidad de conocer la contraseña.
Más compañías
Otras casas han optado por otro camino, por ejemplo Kaspersky o
BitDefender, que consiste en identificar la contraseña en el cuerpo del
mensaje y utilizarla para poder abrir el ZIP protegido y analizar el
ejecutable de su interior.
Sin entrar en detalles, tampoco se
trata de dar ideas, es bastante obvio que ambos métodos tienen sus
propias debilidades intrínsecas, y que podrían ser también burladas por
futuras variantes de forma fácil. En cualquier caso lo importante es la
capacidad de reacción que algunas casas antivirus están demostrando para
adaptarse a las nuevas amenazas, y exigir al resto de motores antivirus,
que no lo hayan hecho ya, incorporen cuanto antes éstas u otras
soluciones.
Dejando a un lado las soluciones antivirus, otras
medidas que se están mostrando eficaces contra este tipo de gusanos van
desde simples políticas en el tipo de archivos permitidos en el correo
electrónico, filtros por contenidos, o filtros antispam.
Por
último, hacer hincapié una vez más, que si bien los antivirus y filtros
perimetrales representan una capa importante en la protección de una
red, el punto crítico a proteger sigue siendo el PC o la estación de
trabajo, ya que por definición hay formatos o protocolos que no permiten
analizar los contenidos desde el perímetro. Por eso nunca debemos
descuidar el antivirus en nuestro ordenador de trabajo, de manera
independiente a las soluciones de seguridad instaladas en el servidor de
correo o similares.