Identificación de Actividad Maliciosa en nuestro equipo

 

Introducción

 

En muchas ocasiones, nos enfrentamos a problemas típicos como: “mi equipo se tarda en arrancar”, “está lento”, “las páginas de internet no cargan o se tardan bastante en hacerlo”, “se comporta de manera extraña” y un sinnúmero de ejemplos relacionados.

En la mayoría de los casos, cuando el equipo se comporta de una forma que no debería,  se le atribuye a la infección por algún código malicioso que el software antivirus instalado, no alcanzó a detectar y se cree que la solución más “rápida” ante el problema consiste en llevar a cabo la reinstalación del Sistema Operativo.

En este artículo se explicará de forma básica, la manera de identificar actividad maliciosa enfocándonos en cuatro aspectos fundamentales: los Procesos del sistema, la Actividad de red, el Registro de Windows y el Sistema de Archivos.

Para llevar a cabo la tarea de identificación de actividad maliciosa se emplearán diversas herramientas  gratuitas, para Windows, que pueden ser descargadas desde los siguientes enlaces:

 

Las Herramientas

Para analizar el comportamiento de nuestro equipo, cuando creemos que algo anda mal, es necesario contar con herramientas que nos ayuden a identificar con cierta facilidad aquellos elementos que están causando anomalías en nuestro equipo, para ello utilizaremos las herramientas señaladas anteriormente.

En algunas ocasiones, pueden descargarse directamente en el equipo “infectado”, pero en otras, es imposible, ya que los sitios para su descarga, están bloqueados. Este tipo de comportamiento es muy común cuando un equipo está infectado, por ejemplo, con Conficker, pero definitivamente no es una acción exclusiva de este gusano.

Lo más recomendable es descargar estas herramientas en un equipo alterno “seguro”, es decir, un equipo que se considere no está infectado, dependerá de nosotros escoger el equipo adecuado para realizar esta tarea. Posteriormente, se deberá crear una carpeta y copiar en ella todos los ejecutables que se obtienen al descomprimir los archivos .zip descargados. En la siguiente imagen (Imagen1) se muestran los ejecutables de las seis herramientas que utilizaremos a lo largo de este artículo, almacenadas en la carpeta Tools.

 

 

Las herramientas ProcessExplorer, TCPView y Autoruns, manejan una interfaz gráfica para una mayor sencillez y mejor visualización de la información. Por otro lado, MD5sum, ListDlls y los ejecutables de la suite PsTools, son programas que se ejecutan a través de la línea de comandos.

Una vez que se tenga la carpeta con las herramientas de análisis, el segundo paso será copiarla a un dispositivo de almacenamiento externo, como una USB. Este dispositivo deberá ser utilizado únicamente para este propósito, además de ser formateado cada vez que se vaya a realizar el análisis del algún equipo y se copiará en éste la carpeta (Tools en nuestro caso) con las herramientas descargadas anteriormente.

Es recomendable que después del análisis de algún equipo, la USB utilizada no se conecte a ningún equipo con Windows, ya que en ocasiones, los códigos maliciosos llegan a infectar el dispositivo y al ser insertadas en estos equipos, la infección se propaga. Es posible introducir la USB en algún S.O basado en Unix para visualizar los archivos que contiene y si alguno de ellos es un autorun.inf, con características parecidas al que se muestra en la siguiente imagen (Imagen2), entonces, el dispositivo está infectado y es posible que más equipos se contaminen.

 

 

El procedimiento

La forma más rápida de identificar actividad maliciosa en el equipo, es a través de los procesos que están en ejecución en ese momento. Para poder apreciarlos, se va a utilizar la herramienta ProcessExplorer, localizada en la carpeta copiada dentro del dispositivo USB. Al momento de ejecutarla, se va a abrir una ventana como la que se muestra en la siguiente imagen (Imagen3), en la cual aparece el árbol de procesos del sistema, con su PID (ProcessID), el porcentaje de utilización del CPU, información de la memoria que está utilizando y una descripción del mismo.

 

 

Los procesos que dependen del proceso System (smss, winlogon, services, lsass, spoolsv, alg y las diversas instancias de svchost) son procesos del sistema que muchas veces pueden llegar a ser suplantados (nuevos procesos que se hacen pasar por los originales) o modificados (inyectando código en ellos) de tal forma que su comportamiento es anómalo. Debido a lo anterior, es necesario prestarle cierta atención a la actividad que realizan.

Por otro lado, los procesos que dependen del proceso explorer.exe van a ser ejecutados por el usuario y en ellos deberemos centrar nuestra investigación. Todo aquel proceso que esté en ejecución y que resulte extraño (con nombre parecido a alguno del sistema, cualquier nombre sospechoso, mucha actividad de procesador, entre otras cosas), tendrá que ser analizado de manera particular.

En nuestro caso, analizaremos el proceso _Postal_.exe, ya que tiene todas las características necesarias para sospechar de él.

 

 

ProcessExplorer nos permite determinar la ubicación en el sistema de archivos desde donde se está ejecutando dicho proceso. Al hacer clic derecho sobre él, y seleccionar la opción Propiedades del menú contextual, se abre una ventana en cuya pestaña Image, se muestran tres rutas: Path, Command line y Current directory. En esta última, es desde donde se está ejecutando el proceso (Imagen5).

 

 

En el Explorador de Windows (Imagen6) nos dirigimos a la ubicación anterior y ahí podremos apreciar el ejecutable _Postal_.exe. Utilizaremos ahora la herramienta md5sum.exe para determinar el valor hash del archivo y con él, a través de herramientas web como VirusTotal y ThreatExpert, sabremos si es malicioso o no.

 

 

Para hacerlo, deberemos ingresar desde la línea de comandos a la carpeta donde se encuentra el ejecutable sospechoso, en este caso C:\Documents and Settings\usuario1\Configuración local\Temp. Una vez ahí deberemos ejecutar la herramienta md5sum desde la USB, de la siguiente forma:

<unidad>:\<Carpeta_con_las_herramientas>\md5sum.exe <archivo>. Ej. E:\Tools\md5sum.exe _Postal_.exe

 En la siguiente imagen (Imagen7) se muestra el comando y la salida del mismo.

Hash MD5: 144c2e51cf6cc1396a86bc8590e48597

 

 

La salida de la herramienta es un número hexadecimal de 32 elementos o 128 bits que es único para ese archivo. Este valor lo utilizaremos para buscar información acerca del ejecutable en las páginas: https://www.virustotal.com/#search y  http://threatexpert.com/threats.aspx(Imagen8).

En VirusTotal resulta que 37 motores antivirus de 43 lo detectan como amenaza. Por su parte, Threatexpert muestra un resumen del comportamiento de la muestra.

 

El link del reporte de Threatexpert es:

                               http://www.threatexpert.com/report.aspx?md5=144c2e51cf6cc1396a86bc8590e48597

Este mismo procedimiento se deberá realizar para todos aquellos procesos y ejecutables asociados de los cuales  se sospeche.

 

Retomando la ventana de propiedades del proceso _Postal_.exe, existen varios elementos útiles que podemos considerar. El primero está localizado en la pestaña Image, mencionada anteriormente, y se trata del botón Verify, a través del cual se puede comprobar el autor del archivo ejecutable. Además, en la pestaña TCP/IP es posible comprobar si este proceso está generando tráfico de red.

 

Otro programa que nos permite apreciar el tráfico de red generado por los procesos en ejecución, es TCPView. Este programa muestra la misma información que la pestaña TCP/IP de ProcessExplorer: nombre del proceso, PID, protocolo, dirección IP origen, puerto local, dirección IP destino, puerto remoto y el estado de la conexión.

Si el estado de la conexión que reporta TCPView o ProcessExplorer indica, por ejemplo SYN_SENT, quiere decir, entre otras cosas, que la IP a la cual se está tratando de conectar está dada de baja y no es posible completar la conexión. En nuestro ejemplo (Imagen11), esto no representa una amenaza mayor ya que no son muchos los intentos de conexión que se están realizando, pero en otros casos, es posible que este número aumente significativamente, lo que puede repercutir en el rendimiento del sistema.

 

En el caso de que el estado de la conexión sea ESTABLISHED y el puerto remoto sea diferente al 80 (HTTP) o a cualquier otro de los “bien conocidos”, es muy probable que se trate de una conexión IRC, es decir, que el equipo está conectado a su servidor de Control y Comando recibiendo instrucciones, o mandando información del equipo, comportamiento muy común de los bots (Imagen12).

La ventaja de estas dos herramientas es que nos permiten “matar” los procesos maliciosos del sistema, para lo cual, es necesario hacer clic derecho en el proceso y en el menú contextual, seleccionar la opción “Kill Process” o “End Process” para ProcessExplorer y TCPView, respectivamente.

 

Las alternativas en línea de comando para estos programas son PsList y Netstat. PsList se encuentra dentro de la carpeta PsTools localizada en la USB y muestra una lista de los procesos en ejecución dentro del equipo. Netstat es un programa nativo de Windows que nos permite obtener información de las conexiones de red del equipo. Ambos se pueden utilizar con la opción -h para mostrar la ayuda de los mismos. En la Imagen13, se muestra la salida de ambos comandos.

 

 

Para “matar” procesos específicos desde línea de comando, existe la herramienta PsKill que nos permite hacerlo ya sea por PID o por nombre del proceso. También se localiza en la carpeta PsTools de la USB. Con la opción -h se muestra la ayuda del programa. En la siguiente imagen, se muestra cómo eliminar el proceso _Postal_.exe.

 

 

Desafortunadamente, los problemas no se acaban cuando “matamos” el o los procesos maliciosos que hayamos identificado, porque es muy probable que cuando se presente el siguiente reinicio del sistema, se vuelvan a ejecutar. Existen varias técnicas que los creadores de malware utilizan para garantizar la ejecución de sus programas en los equipos comprometidos y la más común es llevar a cabo la modificación del Registro de Windows.

La herramienta que utilizaremos para identificar actividad maliciosa en el Registro de Windows, es Autoruns, la cual se localiza, de igual manera en la carpeta Tools de nuestra USB.

 

Al momento de ejecutar la herramienta se muestran diversas pestañas que hacen referencia a cuestiones muy específicas del equipo. Las únicas que vamos a considerar en esta ocasión, se relacionan con el proceso de inicio del sistema (Logon) y con el proceso explorer.

En la pestaña Logon (Imagen15), podemos ver 3 valores llamados Windows Defender que están presentes en tres lugares distintos del Registro de Windows. El primero hace referencia a la llave HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run y todo programa que esté presente en este sitio, será ejecutado cuando se reinicie el sistema. En este caso, se va a ejecutar el archivo u57oxubmc0.exe.

 

El segundo valor creado en el registro se localiza en la llave HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run, la cual va a hacer que el proceso explorer ejecute de inicio el mismo programa, u57oxubmc0.exe.

 

El tercer valor es muy parecido al primero, la diferencia radica en que se localiza bajo HKCU (HKEY_CURRENT_USER) y va a afectar al usuario actual del sistema, ejecutando de inicio el mismo programa.

 

 

 

Autoruns permite eliminar los valores de las llaves del registro mencionadas al hacer clic derecho sobre cada uno y seleccionar la opción Delete del menú contextual. También pueden ser eliminados al presionar la tecla Supr, cuando el valor correspondiente esté seleccionado.

En la pestaña Explorer están presentes ciertos elementos que el proceso explorer va a cargar cuando se ejecuta durante el inicio del sistema. En la imagen 16 se muestran elementos identificados como n/a que van a ejecutar el programa u57oxubmc0.exe. Pueden ser eliminados de la manera señalada anteriormente.

 

 

 

Es muy importante mencionar que se debe tener mucho cuidado al borrar valores en el registro de Windows, ya sea a través de esta herramienta o directamente a partir del programa regedit.exe, ya que cualquier cambio efectuado en él, se refleja de manera automática en el comportamiento del sistema. Como medida de precaución, es posible desactivar, en lugar de eliminar, el valor que está presente en determinada llave del registro, para que no se lleve a cabo su ejecución. Para realizar lo anterior, únicamente se tendrá que desactivar el “checkbox” presente en el extremo izquierdo del valor involucrado.

 

Es muy frecuente que cuando un código malicioso se ejecuta en el sistema, se copia a sí mismo en una ubicación diferente dentro del sistema de archivos, con el mismo nombre o con otro diferente y además, se elimina de su localización inicial. En nuestro ejemplo, identificamos que el proceso _Postal_.exe se ejecuta desde  C:\Documents and Settings\usuario1\Configuración local\Temp y a través de Autoruns determinamos que el programa u57oxubmc0.exe se va a ejecutar en cada reinicio del sistema, desde  C:\documents and settings\usuario1\datos de programa.

 

Para determinar si se trata del mismo código malicioso, se utilizará la herramienta md5sum.

 

Desde una ventana de línea de comando nos dirigimos a la primera ubicación y ejecutamos el comando e:\Tools\md5sum _Postal_.exe. Hacemos lo mismo para el archivo u57oxubmc0.exe.En la Imagen 17 se muestra que la salida del comando, en ambos casos, regresó el mismo valor hash.

 

 

Sólo hasta este momento tenemos la certeza de que el ejecutable presente en las llaves del registro es malicioso y podemos eliminar los valores sin ningún problema. Sin embargo, cuando encontramos que los hash no son los mismos, es importante recurrir nuevamente a VirusTotal o Threatexpert para tener una idea más clara de si el ejecutable es malicioso.

 

 

Suplantación de procesos del sistema

 

 

Existen casos en los cuales procesos maliciosos se hacen pasar por procesos del sistema. El acercamiento para determinar si en verdad son maliciosos es el mismo que se ha descrito a lo largo de este manual.

En el ejemplo siguiente se encontró que al ejecutar ProcessExplorer y TCPview en un equipo “comprometido”, un procesos llamado IEXPLORE.exe, con PID 756 estaba generando tráfico de red hacia el puerto 82 y otros más, de un servidor remoto. Lo extraño fue que IEXPLORE.exe es el nombre del ejecutable del navegador web de Microsoft, Internet Explorer y éste no se encontraba en ejecución en el equipo.

 

Al intentar ver desde dónde se estaba ejecutando el proceso, conProcessExplorer, encontramos que en la sección “Current directory” de la pestaña “Image” de las propiedades del proceso, se tenía la ruta: C:\Documents and Settings\usuario1 y al dirigirnos a dicha ubicación, no encontramos algún archivo sospechoso.

Sin embargo, en las propiedades del proceso desde TCPView, encontramos que estaba ejecutándosedesde C:\Archivos de programa\install\WinUpdate.exe.

 

Para comprobar la naturaleza maliciosa de este ejecutable, obtuvimos el valor hash MD5 de dicho archivo, lo buscamos en VirusTotal y el resultado fue el siguiente:

 

 

Sólo dos fabricantes de antivirus lo detectan como amenaza. Aspecto mínimo necesario para considerarlo una amenaza real.

Hash MD5 del archivo: aa55f9a9d6484259b9401cd8c57a622b

 

 

Posteriormente, “matamos” el proceso desde ProcessExplorer y ejecutamos Autoruns para verificar si llevó a cabo la modificación de alguna llave del registro.

En la pestaña “Logon” identificamos cuatro valores sospechosos que hacían referencia al ejecutable winupdate.exe:

  • El primero llamado word, localizado en la llave HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  • Un segundo valor identificado como n/a, localizado en HKLM\Software\ActiveSetup\InstalledComponents
  • El tercer valor, también llamado word, localizado en HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  • El último valor llamado HKCU, localizado en  HKCU\Software\Microsoft\Windows\CurrentVersion\Run.

 

 

Otra forma de identificar el proceso que se está ejecutando en realidad, es con la herramienta ListDlls, contenida en la carpeta Tools de la USB. ListDlls muestra todas las Bibliotecas de Enlace Dinámico que utilizan los programas para su ejecución.

Al ejecutar la herramienta desde la línea de comando, se tiene que escribir el nombre del proceso del cual se quieran saber las dlls, como se muestra en la Imagen22. Como resultado, se despliega una lista de todas las dlls que utiliza dicho proceso y se puede notar que en la primera línea de ésta, aparece el nombre del ejecutable responsable de levantar ese proceso.

 

 

 

Conclusión

 

A lo largo de este artículo se mostró una forma básica pero efectiva de identificar actividad maliciosa en un equipo de cómputo, sin embargo, en la actualidad puede no ser tan fácil hacerlo ya que existen códigos maliciosos mucho más complejos que utilizan técnicas especializadas para ocultar su comportamiento y que al utilizar las herramientas vistas en este documento, no muestran actividad relevante.

El procedimiento contemplado en este manual pretende ofrecer una alternativa a los usuarios antes de pensar en formatear el equipo. No creemos que sea el único método para llevar a cabo la identificación de actividad maliciosa, pero sí un acercamiento bastante sencillo para detectar problemas en los equipos de cómputo, atribuidos, la mayoría de las veces, a códigos maliciosos.