15
octubre
2006

Analiza tú mismo un "peligroso" troyano

Do It Yourself para todos los públicos
Este puente ando rescatando cosas de mi antiguo portátil al nuevo, y he descubierto una carpeta que contiene algunos textos y muestras de cuando hacía las primeras comparativas antivirus para PcActual, a finales de los 90.


Me ha traido muchos recuerdos de las pruebas que hacía entonces, desde llamar a altas horas de la madrugada un fin de semana simulando ser un cliente con problemas de infección, a todo tipo de tests de detecciones con diferentes muestras. Sin duda lo más complicado era intentar mantener una colección de muestras representativas y no adulterada para hacer los tests.


Me he topado con un archivo, "anzuelo.com", que recuerdo formaba parte del más de centenar de muestras que catalogué en mi coleccion como "novirus". Todos sabemos que un motor antivirus tiene un "positivo" cuando detecta de forma correcta un archivo infectado o malicioso, mientras que un "falso positivo" se produce cuando detecta erróneamente como malware un archivo limpio, bien por problemas de heurística, bien coincidencia con una firma, etc.


¿A qué llamaba "novirus"? Pues a un archivo que era detectado como malware por uno o varios motores antivirus pero que, a diferencia del "falso positivo", no se trataba de un error. Es decir, el laboratorio antivirus había desarrollado una firma para identificar ese archivo en concreto, aunque no era un virus ni representaba ningún peligro para el usuario o sistema. En definitiva, sin entrar a discutir si era de forma premeditada o no, se creaba una firma para identificar a un falso virus.


No me he podido reprimir, y he enviado el "anzuelo.com" a VirusTotal, a ver si continuaba siendo detectado.



En su día, 1999, tan sólo Sophos lo detectaba como "Troj/Anzuelo", pero debió tomar nota de lo que publiqué en aquella comparativa y, con buen criterio, retiró la firma para no volver a detectarlo. Curiosamente ahora es detectado por 2 motores antivirus, McAfee tal y como aparece en la captura de pantalla, y TrendMicro como "JOKE_ANZUELO.A" (os recuerdo que TrendMicro es el único antivirus que no quiere participar en VirusTotal, por eso no aparece en el listado).


En ambos casos resuelven la papeleta al utilizar el prefijo "JOKE", que se utiliza para nombrar a los programas no deseados que no dejan de ser bromas y no representan un peligro real. La nomenclatura original de Sophos se prestaba a más confusión, porque directamente lo catalogaron como troyano. Rectificar es de sabios.


Aprovechando que es un COM de tan sólo 41 bytes, y que se trata de un espécimen totalmente inocuo (lo de "peligroso" en el título de esta entrada iba con segundas), me permite proponeros un análisis para saber exactamente que hace este ejecutable. Ya sabes, desde ahora podrás decir que has desensamblado y analizado un "supuesto virus" tú mismo :p


Lo primero es descargar el archivo anzuelo.com en algún directorio de tu ordenador. Recuerda que si tienes un antivirus de McAfee o TrendMicro puede que no te deje.


Suponiendo que estamos en Windows, y que has descargado el archivo en el directorio c:/temp, abre una ventana de DOS, sitúate en c:/temp, y ejecuta "debug anzuelo.com".



Si no te sonaba la utilidad DEBUG, lleva en DOS toda la vida, desde la primera version DOS de IBM en 1981 hasta en las últimas versiones de Windows. Aunque es bastante primitivo, sobra para el ejemplo y te evitará tener que descargarte alguna utilidad adicional para desensamblar.


Una vez que tenemos cargado en memoria el anzuelo.com, le vamos a dar una orden a debug para que nos lo muestre desensamblado (comando U rango). Como los archivos COM se cargan después del prefijo de segmento de programa (PSP, no confundir con la consola) que ocupa 256 bytes (100 hexadecimal), y anzuelo.com tiene 41 bytes (29 si lo pasamos a formato hexadecimal), el rango a indicar será de 100 a 128 (como en 100h ya se encuentra el primer byte hay que restar uno para tener el límite final, 100h+29h-1h=128h). Es decir, comando: u 100,128



Ahora ya podemos ver los 41 bytes de anzuelo.com desensamblado. Tendremos 4 columnas, la primera indica la dirección de memoria, en la segunda los bytes que hay en cada zona de memoria, y la tercera más la cuarta la interpretación en lenguaje ensamblador (instrucción + parámetros) de los bytes de la segunda columna.



Los .COM siempre comienzan con un salto, instrucción JMP, a la dirección donde se encuentra la primera instrucción propia del programa. En esta ocasión el salto es a 011E, donde comienza con la instrucción MOV DX,0103 le sigue MOV AH,09 y INT 21.


La interrupción 21h del DOS sirve, entre otras cosas, para las funciones de entrada y salida en consola/pantalla. A través del registro AH se selecciona el servicio, en este caso se ha asignado 09 que sirve para mostrar una secuencia de caracteres que comienza en la dirección DX hasta que se encuentra el carácter "$" (24 en hexadecimal) que indica el final.


Como la instrucción MOV DX,103 sitúa el comienzo de la cadena que va a mostrar en pantalla en la dirección 0103, vamos a ir formando la cadena hasta la dirección 011B donde se encuentra el final del mensaje (secuencia 0D0A24, 0D0A CR/LF de retorno de carro y línea nueva, y 24 o "$" que indica el final de la cadena).


Para saber que es lo que ha asignado al registro DX tendremos que traducir a ASCII los bytes desde la dirección 0103 hasta 011B, en concreto tenemos 0D 0A 53 6F 79 20 75 6E 20 43 4F 4D 20 69 6E 66 65 63 74 61 64 6F 21 21. Los dos primeros bytes 0D0A son CR+LF (código de nueva línea, dejará una línea en blanco), y a partir del 53 comienza la cadena. 53h a decimal es 83, que equivale al carácter "S", 6Fh a decimal es 111, que equivale al carácter "o", 79h a decimal es 121, que equivale al carácter "y", etc. Haciendo la serie completa obtenemos la cadena "Soy un COM infectado!!".


Por último nos encontramos con las instrucciones MOV AH,4C y INT 21, que de nuevo llama a la interrupcion 21, y en concreto al servicio 4C que lo que hace es terminar el proceso, es decir, finaliza el programa.


En definitiva, todo lo que hace el programa es mostrarnos por pantalla la frase "Soy un com infectado!!". Nada más, y nada menos. Acabamos de ver en ensamblador lo que equivaldría en BASIC a un PRINT "Soy un com infectado!!".


Si estás aun con la ventana DOS en debug teclea el comando "q" y dale al intro para salir de debug. Una vez en el prompt, ejecuta sin miedo anzuelo.com, verás como aparece la frase en pantalla y termina.



Pues este programa fue catalogado por Sophos a finales de los 90 como troyano bajo la denominación "Troj/Anzuelo", que como hemos dicho afortunadamente rectificó y dejó de detectar después de que publicara un comentario en una comparativa antivirus de PCActual sobre algunos casos de "virus que no son virus".


¿Por que ahora lo detectan McAfee y TrendMicro?. Probablemente el archivo, al ser detectado por Sophos, pasó a formar parte de colecciones de muestras utilizadas en comparativas antivirus, y de alguno u otro modo llegó a sus laboratorios. Cuando vieron el archivo, evidentemente, fueron conscientes de que no entrañaba peligro alguno, ni tenía sentido su detección (más simplón no puede ser el programa, una especie de "Hola mundo"). Pero mi hipótesis es la siguiente, al encontrarlo en alguna colección la disyuntiva fue: detectarlo y sumar un positivo más en las comparativas antivirus (aunque no sirva de nada de cara al usuario ya que es inofensivo), o no detectarlo y que existiera la posibilidad de que otro motor antivirus si lo hiciera y consiguiera esa ventaja en las comparativas.


Aquí hemos visto un ejemplo en concreto, pero en realidad cualquier colección de muestras de cierto volumen cuenta con un buen número de este tipo de archivos basura que no debería tenerse en cuenta. Por eso, como os comentaba al principio, lo más complicado para hacer las comparativas era mantener una colección de muestras depurada que no adulterara los resultados.


Moraleja: se crítico, no te creas que todo lo que detecta un antivirus es algo que realmente puede hacer daño, y menos aun te creas las comparativas antivirus, hay muy pocas que se hagan medio bien, poquísimas (por no decir que tienden a nulas). Te lo dice alguien que se dedicó durante algunos años a hacer comparativas antivirus para las principales revistas del sector.

Enviado por bquintero a las 02:31 | Enlace permanente | Comentarios (4) | Trackbacks (0)
Comentarios
Re: Analiza tú mismo un "peligroso" troyano

k no me tomeis el pelo

Posted by: k os jodan at octubre 15,2006 18:05
Re: Analiza tú mismo un "peligroso" troyano

Ah, que tiempos! En los que Bernardo y yo escribíamos en PC Actual. La verdad es que salieron artículos de gran interés, y comparativas que creo que aun son recordadas y han servido como ejemplo para muchas otras que se han hecho después.

Por cierto, aquellas comparativas, aunque ya se han quedado un poco anticuadas y sus resultados no es que sirvan mucho como referencia, aun pueden consultarse en Hispasec. En ellas se incluyen comentarios y análisis de gran valor, que hacen que su lectura aun pueda resultar muy interesante.

La comparativa de 1999 marcó todo un hito, al ser la primera vez en la historia en que se analizaban los servicios de soporte de los diferentes productos.
Y fue precisamente dentro de esta comparativa donde se incluía el comentario sobre los "virus que no son virus" y se hablaba del ya conocido "anzulo.com":

La comparativa del 2000 se extendía a ni más ni menos que 30 antivirus.

Y por último la del 2001, en la que se incluía una interesante entrevista que Bernardo realizó a dos nombres propios del mercado antivirus, Eugene Karspersky y Mikel Urizarbarrena.

Una vez más recordar el año en que se realizó cada una de ellas y que como se suele decir, ha llovido mucho desde entonces.

Posted by: ARopero at octubre 15,2006 20:25
Re: Analiza tú mismo un "peligroso" troyano

Didáctico y bonito, Bernardo.

Yo, los mandaría (los análisis como este) como postdata didáctica o boletines didácticos (sólo para lectores curiosos o interesados), al final de algún boletín sobre vulnerabilidades, cada vez que saques algo así.

Porque no creo que mucha gente lea este bloque (propongo la castellanización de blog por bloque (otras sugerencias son bienvenidas)).

Y ciertamente , hacía mucho tiempo que no sólo no creíamos en los antivirus, sino que tampoco nos tragábamos las comparativas con los ojos cerrados; porque en cuanto cierras un ojo, te infectas.
Hay que ser ciego para no darse cuenta de ello....

Posted by: sopadeajo at octubre 16,2006 01:17
Re: Analiza tú mismo un "peligroso" troyano

Todo comenzo cuando intenté bajarme unos codec de una pagina Phorno para intentar ver una peli a través de estos se introdujo un virus Troyano, tengo el antivirus Symantec y un antiespias el Spybot o algo parecido, la verdad es que aparentemente este virus ha desaparecido o dejado de dar problemas, lo único que ocurre ahora es que cuando intento entrar en el explores entro pero sali una pagina fija recomendadome una serie de programas para eliminar el supuesto virus y esa pagina no logro quitarla de hay, entro en la barra pequeña de Google y pongo la palabra google y me sale el google pero cuando salgo y vuelvo a entrar me sale de nuevo la dichosa pagina indicandome lo que referia anteriormente, que debo hacer si alguien tiene alguna información que me puedad ayudar me gustaria que me la enviara ¡gracias¡ espero vuestras noticias

Posted by: José Antonio at octubre 26,2006 23:37
Trackbacks
Por favor envía los trackbacks a: http://blog.hispasec.nospam/laboratorio/164/tbZ3ping
Reemplazando "nospam" por "com"
No hay trackbacks.
Enviar un comentario