sábado, marzo 27, 2010

Técnicas de ofuscación de código vírico

Creo que éste artículo será interesante a todas aquellas personas que aparte de analizar ejecutables se interesan por el análisis de código vírico ya que hay miles de funciónes que permiten mediante distintas técnicas dificultar a los antivirus la detección de ellos, esto se conoce como ofuscación de código y hay diferentes métodos para lograrlo.

A continuación describiremos algunos de ellos.

Cifrado propio/Descifrado propio: Algunos virus son capaces de cifrar y descifrar partes de su propio código cada vez que son ejecutados. Generalmente se usan claves criptográficas de forma aleatorio para hacer el cifrado y esto hace que para las empresas antivirus sea difícil establecer unos offsets a detectar ya que la estructura del ejecutable varía cada vez. En estos casos las empresas antivirus recurren a la ingeniería inversa y se intenta sacar patrones para detectar estos tipos de actividades.

Polimorfismo: El polimorfismo es un caso particular del "cifrado propio" pero es considerado más potente que éste. Esta técnica está muy limitada en cuanto a lenguajes de programación, solo aplicables por ejemplo a C, asm o delphi/pascal.

Metamorfismo: Es parecido al polimorfismo pero en este caso el virus es capaz no solo de cifrar su propio código sino de alterarlo desordenándolo o incluso añadiendo secuencias de código innecesario. El virus posteriormente es capaz de recomponer su código y recompilarlo y cabe señalar que será diferente al original.

Intrusión: Son capaces de infectar otros ficheros introduciendo su código total o parcialmente sin variar el tamaño de estos.

Ofus. Armada: Esta técnica trata de añadir funcionalidades al virus que posteriormente dificulte el análisis de éste por los expertos, por ejemplo dificultando el desensamblaje, depuración, o el uso en máquinas virtuales.

Tunnel: Ésta técnica consiste en hacer que el virus resida en el sistema operativo a bajo nivel pudiendo interceptar las llamadas al sistema operativo y evitar que un antivirus lo pueda detectar. Podríamos decir que ésta funcionalidad se asemeja a los de los rootkits con la diferencia que en éste caso se trata de pasar desapercibido sin usar procesos o archivos del sistema.

Compresión/Packers/Crypters: Ésta técnica consiste en utilizar software de terceros que són capazes por sus características de modificar los offsets del malware. En éste caso la ofuscación se ejecuta en el archivo ya compilado y no a nivel de código.

De entre éstas formas de ofuscación, las más fáciles de detectar por los antivírus son el cifrado propio, el polimorfismo y la intrusión. La más dificil de detectar es el metamorfísmo.

0 comentarios:

 
Contacto: albert_lopb@killtrojan.net