Autor Tema: Modificando malware para hacerlo indetectable  (Leído 5437 veces)

Desconectado destroyer

  • Administrator
  • ******
  • Mensajes: 15865
  • Si quieres cambiar al mundo, cámbiate a ti mismo
    • cajondesastres.com De todo un poco
Modificando malware para hacerlo indetectable
« en: 18 de Octubre de 2006, 10:24:29 am »

A raíz de la entrada anterior algunos me habéis preguntado como es posible que aprovechen cualquier antivirus para hacer indetectable una muestra. Evidentemente queda fuera de la temática de este blog, y por descontado de Hispasec, dar ideas en ese sentido, pero si puedo comentar las cosas más extendidas y conocidas por todos, lo que nos puede dar una idea de porque hay tal proliferación de malware en la actualidad y de los problemas de las soluciones basadas exclusivamente en firmas.

Básicamente el uso de los antivirus es como herramienta de ensayo y error, van realizando modificaciones en el malware hasta dar con una versión que no es detectada por el antivirus, de modo que ninguna firma es capaz de identificarlo. Si es una creación nueva o tiene el código fuente del bicho en cuestión las opciones de modificar el binario final son mayores, sino también hay formas bastante sencillas de conseguirlo modificando el binario directamente.

Contrariamente a lo que la mayoría de personas cree, la modificación de un malware, como por ejemplo un troyano, no requiere conocimientos de programación, incluso muchas veces se hace a golpe de ratón dando algunos clicks. El caso más habitual es el uso de empaquetadores o packers, como compresores o cifrados de binarios. Básicamente es una utilidad donde eliges un binario (el troyano) y te devuelve otro binario modificado (compactado, cifrado, incrustado en otro ejecutable, etc). A efectos prácticos el binario resultante tendrá un aspecto "exterior" diferente al original, pero a nivel funcional se comportará igual. Si el motor antivirus no reconoce ese método de empaquetamiento no podrá desenmascarlo y detectarlo en base a las firma con la que reconocía al troyano original.

Otro método también muy extendido es modificar directamente el binario, para lo que es necesario detectar que porción del código es la reconocida por la firma del antivirus. Hay formas de hacerlo manualmente, pero también han desarrollado pequeñas utilidades que van realizando modificaciones de forma automática y comprobando por ensayo y error contra el antivirus hasta que devuelve las posiciones exactas que han de modificar. Dependiendo de lo que haya modificar requerirá desensamblar y modificar algunas instrucciones para evitar "estropear" el troyano o, en algunos casos, directamente se podrá modificar con un editor hexadecimal.

Este tipo de prácticas es una plaga en la actualidad, de hecho una gran parte de las variantes que surgen son modificaciones más o menos burdas de un espécimen original.

La buena noticia es que este tipo de prácticas masivas no tienen en cuenta la evolución de las soluciones antivirus, y cada vez más los atacantes se llevan sorpresas al ver que su versión recien modificada termina siendo cazada y reconocida por los antivirus de los usuarios que utilizan técnicas más avanzadas o complementarias a las firmas, como por ejemplo el análisis del comportamiento. Estos antivirus a su vez recolectan y envían las muestras sospechosas a los laboratorios para generar firmas específicas.

Este tipo de detecciones no las pueden comprobar con motores antivirus llamados a través de línea de comandos (que es lo que suelen hacer en los tests de ensayo-error), sino que requiere que la solución antivirus esté totalmente instalada en el equipo y ejecutar la variante del troyano en el mismo. Sin duda se les complica el invento, lo que son buenas noticias para el resto de nosotros.

No obstante aun hay mucho antivirus que básicamente depende de las firmas tradicionales, y este tipo de prácticas sigue siendo efectiva contra ellos.

Para terminar vamos con un ejemplo práctico, lo suficientemente simple y absurdo como para ver lo débil que puede resultar una firma y, al mismo tiempo, que NO sirva de pista para que cualquiera pueda imitarlo con un malware auténtico. Para ello vamos a aprovechar el anzuelo.com de la entrada anterior.

Siguiendo las instrucciones de la entrada anterior llegamos hasta el desensamblado del código, y lo que vamos a hacer es modificar un sólo byte, en concreto el que se encuentra en la dirección 118h que contiene el valor 6F (instrucción DB 6F) que modificaremos por 61 (instrucción DB 61). Para ello ejecutamos el comando -a 118. A continuación introduciremos la instrucción: DB 61, pulsamos intro, aparecerá la línea 119, pulsamos intro de nuevo.



Con ésto lo que hemos hecho es simplemente cambiar una "o" (código ASCII 111, 6F en hexadecimal) por una "a" (código ASCII 97, 61 en hexadecimal). De manera que habremos "cambiado el sexo" (o al menos creado un conflicto de identidad sexual o género) a nuestro ejecutable, en vez de decir "Soy un com infectado!!" ahora dirá "Soy un com infectada!!".

Para escribir en disco esta modificación vamos a dar unos comandos más a debug. Comando -n anzuelo2.com, comando -w, comando -q. Con esto habremos creado en el mismo directorio un nuevo archivo anzuelo2.com que recoge los cambios realizados. Para hacer la prueba puedes ejecutar anzuelo2.com.



Si pasamos anzuelo2.com por los motores antivirus de McAfee o TrendMicro, y a diferencia del anzuelo.com original, veremos que ya no es detectado. Son más permisivos con el sexo femenino ;)





http://blog.hispasec.com/laboratorio/166


 

Aviso Legal | Política de Privacidad | Política de Cookies

el contenido de la web se rige bajo licencia
Creative Commons License