Análisis de packers: UPX y sus variantes

Como ya hemos hecho en otra oportunidad, en este post hablaremos del ya conocido packer UPX. Sin embargo, en esta ocasión nos focalizaremos en sus características más importantes, para tener una idea de por qué sigue siendo el packer más utilizado por los creadores de malware.

Entonces, repasemos, ¿qué es UPX? Las siglas significan Ultimate Packer for eXecutables. Es un compresor de código abierto y de gran performance, que soporta archivos ejecutables y objetos de Windows que respeten la especificaciones de Microsoft PE (Portable Executables) y COFF (Common Object File Format), como por ejemplo archivos de extensiones EXE y DLL. A la vez, soporta archivos ejecutables de varios sistemas operativos como pueden ser Linux (ELF), Linux Kernel, ejecutables Mac OS X, FreeBSD, NetBSD y Playstation 1, entre otros. También permite una gran tasa de compresión, reduciendo el tamaño de los ejecutables en hasta 60% de su tamaño original. De hecho, en general es mejor compresor que WinZIP/ZIP/GZIP:

Tasa de compresión de UPX

Su versión actual es la 3.07 y está disponible para varias arquitecturas. Las versiones oficiales se utilizan desde línea de comandos, pero también existen interfaces GUIs no oficiales para el que guste utilizarlo desde interfaz gráfica. Una de estas interfaces gráficas es GUiPeX, la cual se pueden descargar desde su pagina oficial.

Otra característica de UPX es que no solo sirve como empaquetador, sino que también da la posibilidad de desempaquetar archivos previamente empaquetados con versiones de UPX no modificadas de una manera muy sencilla. En el caso de malware empaquetado con UPX, esta opción en general no se puede utilizar ya que la mayoría de los códigos maliciosos existentes utilizan versiones modificadas de este packer, haciendo uso de sus beneficios de compresión y a su vez haciendo un poco más difícil su desempaquetado.

Como dijimos anteriormente, este es un packer de código abierto, lo que permite que existan muchas versiones derivadas del mismo. Las más conocidas son UPXScrambler, UPXFreak, UPXSh!T, UPXCrypter y UPXModifier. Además de estas, existen cientos de versiones personalizadas que no tienen nombre propio.

En cuanto al análisis de malware empaquetado con UPX o sus derivados, este packer no representa un desafío muy grande a la hora de desempaquetarlo, más bien es muy fácil y los creadores de malware lo saben. Se preguntarán, ¿por qué si es tan fácil de desempaquetar es tan utilizado? La respuesta es simple: los creadores de malware buscan eficacia en cuanto a compresión y velocidad de ejecución. Además, otros packers utilizados exclusivamente por los creadores de malware, suelen ser detectados directamente por soluciones antivirus.

Por todas las características arriba mencionadas y más que nada por su gran versatilidad, UPX y sus variantes lideran el ranking de packers utilizados en malware, situación que al parecer permanecerá así por mucho tiempo.

Juan Esteban Forgia
Analista de Malware

Autor , ESET

Síguenos