Históricamente,
la mayoría de las soluciones antivirus (AV) tradicionales han dependido de
firmas estáticas para identificar el malware conocido. En consecuencia, los
creadores de malware comenzaron a utilizar herramientas para ofuscar el código
de su software a fin de evitar dicha firma basada en la detección y
obstaculizar el análisis estático (humano).
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 (contrario a la
intención original del diseño detrás de los empacadores, o llamados packers,
tradicionales que era reducir el tamaño del archivo de un ejecutable).
Esta
serie de blogs examinará una gama de técnicas que se utilizan normalmente para
evitar que los productos antivirus las detecten, así como la disponibilidad de
estas herramientas.
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 (desde el punto de vista del autor) que los lenguajes de
scripting interpretados: los ejecutables .NET pueden descompilarse en una
aproximación cercana del código C#/VB 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. Forcepoint
Security Labs conoce por lo menos un producto antifraude integrado dentro de
los principales sitios web bancarios que se protege a sí mismo usando una
combinación de ambos métodos.
Empacadores
El
principal tipo de herramienta que se utiliza para ofuscar y ‘proteger’ los
binarios compilados son los empacadores, o 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/ofuscados (el binario original de la forma ofuscada), 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 empacador 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 los noventas, 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
Otra
categoría del empacador, o más bien ofuscador, pues este tipo aumenta el tamaño
del archivo en lugar de reducirlo- son los ofuscadores basados en la
visualización. Estos funcionan 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 (en contraste con el tipo previo de ofuscadores) 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 (a pesar de las inútiles
instrucciones utilizadas para frustrar los intentos de ingeniería inversa).
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 adware y software
fraudulento para juegos.
Para
mayor información visite
https://blogs.forcepoint.com/security-labs/part-one-security-performance-obfuscation-compression
Acerca
de Forcepoint
Forcepoint
está transformando la seguridad cibernética al enfocarse en lo que más importa:
entender las intenciones de la gente cuando interactúa con datos críticos
dondequiera que éstos residan. Nuestros sistemas robustos permiten a las
compañías brindar a los empleados libre acceso a los datos confidenciales, protegiendo
al mismo tiempo la propiedad intelectual y simplificando el cumplimiento. Con
sede en Austin, Texas, Forcepoint soporta a más de 20,000 organizaciones en
todo el mundo. Para obtener más información sobre Forcepoint, visite
www.Forcepoint.com y síganos en Twitter en @ForcepointSec
+++ T
No hay comentarios:
Publicar un comentario