Cuando se decide comenzar una investigación sobre alguna amenaza es indispensable realizar un análisis del código malicioso. Podemos caracterizar el análisis en dos tipos: estático y dinámico. La principal diferencia es que en un análisis dinámico tenemos la posibilidad de observar en tiempo real el comportamiento de un archivo al ser ejecutado en un ambiente controlado. Esto no quiere decir que un tipo de análisis sea mejor que otro, sino que siempre depende de lo que estemos investigando o intentando obtener como resultado.
Para analizar u observar detalladamente qué sucede cuando un archivo es ejecutado, se recurre a una técnica nombrada “depurar” o "debugging", que permite la ejecución controlada de un programa. Entre las herramientas que permiten realizar esta acción, las más populares son IDA Pro, Immunity Debugger y OllyDbg.
Cuando se analiza código malicioso hay que tener ciertos recaudos, ya que sin darnos cuenta podríamos infectarnos de forma indeseada, perder el control y dar al atacante información que quizás no era nuestra intención brindar.
Por esta razón, explicaremos cómo configurar IDA Pro para poder hacer debugging remotamente a un ejecutable, y evitar fugar información como, por ejemplo, una licencia paga del software mencionado.
Manos a la obra
Para la práctica utilizaremos dos máquinas, una PC física y una virtual, ambas con sistema operativo Windows pero diferentes versiones del mismo. En la maquina física tendremos instalado IDA Pro y la ejecución del archivo .EXE ocurrirá en la máquina virtual.
Primero abriremos el ejecutable con IDA Pro. En la parte superior de la pantalla principal de la herramienta observaremos un menú con varias opciones, entre las cuales seleccionaremos el botón “Debbuger”. Luego podremos elegir la que corresponda según nuestro entorno de análisis; en nuestro caso utilizaremos la opción “Remote Windows debbuger” y presionaremos “OK” para guardar la configuración.
Luego volvemos a dirigirnos a “Debugger” y seleccionamos “Process options…”. En la nueva ventana que se mostrará en pantalla, tendremos que indicar en dónde se encuentra el archivo que vamos a depurar en la máquina virtual, como también su dirección IP y la contraseña correspondiente, en caso de que se encuentre configurada. Si no, se dejará en blanco, tal cual como se puede apreciar en las imágenes:
Ahora llegó el momento de configurar la máquina virtual, donde será necesario y crucial tener dos archivos. El primero es el ejecutable que queremos analizar y el otro es también un ejecutable, llamado “win32_remote.exe”, que tendrá como tarea establecer la comunicación del depurador con la máquina virtual. Este archivo se encuentra en la carpeta “dbgsrv” dentro del directorio en donde tenemos instalado IDA Pro.
Una vez configurados ambos ambientes, volvemos a la ventana principal de IDA Pro y presionamos F9 para comenzar la ejecución del software que decidimos analizar.
A continuación, se puede observar el depurador en acción, en donde el registro EIP contiene el valor 0040108F que es la dirección de la siguiente instrucción a ejecutar. De esta manera podemos manipular la ejecución de un software de forma controlada y segura.
Esta es una buena práctica a la hora de incursionar un análisis o realizar ingeniería inversa sobre un software que desoncemos.
Cada uno puede aplicar las técnicas que crea más adecuadas para realizar su trabajo; no existe una receta o una única metodología para realizar un análisis o recolectar información sobre algún archivo. Pero, sin duda, nunca está de más conocer otra forma de realizar una misma tarea o proceso.