Tecnología

Así burlan los hackers a los antivirus

A pesar de que los creadores de hardware antivirus han aplicado todo tipo de tecnología para buscar una seguridad, la misma estrategia utilizan los hackers en la creación de sus malwares

Revista Protocolo

Hackers, eternos villanos sin detenimiento algunoHistóricamente, la mayoría de las soluciones antivirus tradicionales han dependido de firmas estáticas para identificar el malware conocido, en consecuencia, los creadores de estos, comenzaron a utilizar herramientas para ofuscar el código del software a fin de evitar dicha firma basada en la detección y obstaculizar el análisis estático.

Estas herramientas de ofuscación han proliferado en los últimos años; de hecho, hoy existe un gran número de ofertas a las que incluso los autores de software legítimo recurren para al menos dificultar la aplicación de la ingeniería inversa a sus productos. Si bien los métodos y los resultados varían, la intención final ahora es dificultar la lectura del código.

La seguridad a través de la oscuridad

La ofuscación tiene una larga historia dentro de los lenguajes interpretados, ya que la gente espera tener experiencias más completas cuando navega por los sitios web, los cuales se entregan en JavaScript y otros lenguajes en el lado del cliente, lo que motiva a los autores legítimos a desarrollar métodos para proteger y comprimir el código fuente.

Por otro lado, la ofuscación maliciosa normalmente va más allá y encripta el código fuente del script para que se abra en el momento en que el script se ejecuta. Estas técnicas ocasionalmente producen resultados inusuales, como en el ejemplo que se muestra a continuación.

Cuando las aplicaciones .NET se convierten en un lenguaje intermediario y después se compilan durante el tiempo de ejecución, su código se expone a muchos de los mismos riegos que los lenguajes de scripting interpretados: los ejecutables .NET pueden descompilarse en una aproximación cercana del código original de manera relativamente sencilla.

En este punto cabe señalar que no toda la ofuscación, incluso la encriptación más avanzada vista normalmente en las muestras maliciosas, es mala.

Empacadores

El principal tipo de herramienta que se utiliza para proteger los binarios compilados son los packers, los empaquetadores tradicionales son archivos que se auto extraen de forma efectiva o al menos funcionan en términos ampliamente análogos. Además de los datos comprimidos, contienen un cabo “desofuscador” que, al ejecutarse, desofusca el binario y va a su punto de entrada restaurado.

Una coincidencia importante que comparte esta categoría es que el binario original se recupera completamente con la “desofuscación” y está disponible para realizar una mayor reingeniería inversa. Por tanto, este tipo de packer es fácilmente frustrado por un punto de interrupción bien ubicado dentro un depurador poco después de que se completa la “desofuscación” cuando el control de ejecución se transfiere al binario original.

Uno de los empacadores más básicos que se utiliza actualmente es el UPX de código abierto que se desarrolló en la década de 1990, el cual utiliza un algoritmo de compresión extremadamente sencillo, que no está diseñado para la ofuscación.

Otro ejemplo que se emplea regularmente es ASPack, el cual se enfoca más en la ofuscación y la seguridad en lugar de la compresión. Algunas versiones de ASPack utilizan el código de auto modificación que dificulta aún más el uso de los puntos de interrupción, pero al final del día se aplican los mismos principios para desempacarlo.

Empacadores basados en la visualización

Este tipo aumenta el tamaño del archivo en lugar de reducirlo, y funciona destruyendo el binario original y creando un nuevo binario funcionalmente equivalente mediante el uso de bytecode a la medida, el cual se ejecuta sobre un intérprete ofuscado a la medida. La conclusión es que el binario original nunca se restaura y permanece ofuscado durante su ejecución. Las desventajas obvias son el tamaño del archivo considerablemente mayor y la baja velocidad de ejecución.

Un ejemplo notable de esta categoría es VMProtect. La desofuscación manual de los binarios VMProtect es muy complicada: uno tiene que decodificar cada bytecode por cada binario protegido pues se generan de manera aleatoria cuando un binario se ofusca y, por tanto, no es constante en los binarios ofuscados.

Sin embargo, con perseverancia es posible decodificar cada instrucción del bytecode ya que el stack basado en el traductor es muy sencillo.

Curiosamente, VMProtect parece no ser muy popular entre los autores de malware: A mediados de 2017: Forcepoint Security Labs desarrolló un método genérico para detectar binarios empacados VMProtect y descubrió que las muestras identificadas no eran típicamente malware, y que la mayoría estaba integrada por hardware y software fraudulento para juegos.

Para mayor información visite

Países que nos están viendo

ALIANZAS