En este post daremos una breve explicación de una técnica de protección de archivos llamada empaquetado. La misma consiste en el "encapsulamiento" del código de una aplicación, logrando una serie de beneficios que detallaremos a continuación.

Los archivos ejecutables de programas tienen muchas formas de proteger su código para evitar su:

  • Modificación : Principalmente en programas comerciales, donde su modificación permite acceder a funcionalidades  extra, generalmente pagas.
  • Detección: Es en donde nos focalizaremos en este post ya que es una técnica muy utilizada por el malware.

El análisis de binarios, mediante un proceso llamado ingeniería inversa , busca entender el funcionamiento interno del programa para luego, basado en este conocimiento, realizar ciertas modificaciones que nos permitan acceder a aspectos que el desarrollador busco ocultar a los usuarios. En muchos casos este análisis permite descubrir de que forma son validados los códigos de activación de las aplicaciones, o el desbloqueo de funciones, entre otras cosas.

Este tipo de técnica es utilizada en el análisis de malware, para lograr entender de qué forma los archivos maliciosos afectan los equipo, qué cambios realizan, qué información buscan y hacia dónde se envía la misma.

Los archivos maliciosos, se diferencian de los archivos legítimos, por sus acciones, las cuales el usuario desconoce.  Ambos utilizan una técnica para proteger su código llamada empacado la cual explicaremos a continuación.

Las aplicaciones comerciales buscan proteger su código, para evitar que usuarios maliciosos logren generar claves de activación válidas que les permitan usar versiones completas de su programa sin pagar un solo centavo. El caso del malware es muy diferente, la idea de proteger el código no radica en "activar" una versión completa, sino en tratar de ocultar su presencia de las soluciones antivirus y obviamente, también de los analistas que estudian su comportamiento para desarrollar firmas y así hacer posible su detección creando procesos de limpieza de los mismos.

Es una creencia común pensar que cuanto más nuevo es el malware, más complejas son estas formas de "disfrazarlo" o empaquetarlo, cuando esto no podría estar más alejado de la realidad.

Basados en datos estadísticos propios y de la reconocida pagina VirusTotal , pudimos comprobar nuevamente que a pesar de esta creencia "popular" el packer  más utilizado sigue siendo UPX.

UPX es un acrónimo de Ultimate Packer for eXecutables, un packer que permite una excelente compresión del ejecutable, logrando un archivo binario final mucho mas pequeño. También es conocido por su velocidad de descompresión en tiempo de ejecución, logrando así un mejor desempeño del programa. Otras ventajas de este packer son portabilidad y extendibilidad, lo que es posible ya que es de código abierto. Su código esta disponible es su página oficial, por esta razón existen hoy en día muchas variantes de este packer.

El hecho de que  el malware evolucione constantemente,  no significa que las técnicas de empaquetado lo hagan a la misma velocidad, lo que significa que estas técnicas fueron muy eficientes desde su creación y no tuvieron la necesidad de evolucionar significativamente.

Juan Esteban Forgia
Analista de Malware