jueves, 13 de marzo de 2014

A la caza de malware con Sysinternals

En el vídeo de arriba, Mark Russinovich, miembro técnico de la división Cloud y Enterprise de Microsoft, además de claramente reconocido experto en sistemas Windows, nos cuenta las novedades de algunas de las herramientas que conforman la suite de Sysinternals, y cómo le han servido a él para encontrar y eliminar malware en distintos casos a los que se ha enfrentado. Todos estos casos los desmenuza y los explica uno a uno en su blog, donde además tiene otros artículos muy interesantes de cómo ha resuelto problemas de funcionamiento de equipos Windows y explicaciones bastante detalladas de la arquitectura de un sistema Windows.

A modo de resumen, he querido destacar los puntos que indica el autor a tener en cuenta a la hora de embarcarnos en la tarea de hacer frente al malware (extraído del vídeo) y que además Mark hace mención en sus diapositivas

Pasos a seguir para limpiar malware

  • Desconectar el equipo de la red. Puede darse el caso en el que un "bicho" hace que se descarguen n "bichos" más, y así, perder la pista de lo que estabas investigando en un principio. 
  • Identificar procesos y drivers maliciosos. 
  • Termniar procesos identificados como para "eliminar". Una curiosidad que tiene que ver con este punto, es tener cuidado con los procesos "colegas". Ésta es la terminología que usa el autor para referirse a un conjunto de procesos que se ayudan entre ellos, de forma que si matamos a uno de ellos, los otros se encargan de lanzar uno nuevo como contramedida. Para evitar esto, nos recomienda que usemos la función de "Suspender" antes de "matar". 
  • Identificar y eliminar entradas maliciosas en "autoarranque/inicio automático". 
  • Borrar archivos malware del sistema de ficheros. 
  • Reinciamos y repetimos hasta ver que no se repiten los patrones encontrados anteriormente.

¿Y qué estamos buscando?

Básicamente buscamos procesos que cumplan los siguientes criterios, pero antes que nada, me gustaría destacar la diferenciación que hace el autor entre procesos e hilos:

  • Un proceso en Windows es un contenedor que almacena la imagen de un archivo ejecutable. Está representado por un objeto proceso de kernel y Windows emplea ese objeto y sus estructuras de datos asociadas para almacenar y realizar un seguimiento de la ejecución de dicha imagen. 
  • Un proceso incluye uno o más hilos que realmente ejecutan el código, y están representados por objetos hilo de kernel. Técnicamente, los que corren son los hilos, y no los procesos. 

Fuente: https://blogs.technet.com/b/markrussinovich/archive/2009/07/08/3261309.aspx 


Dicho ésto, enumeramos esos criterios que hay que tener en cuenta para "la caza" en los procesos analizados:
  • No tienen icono. 
  • No tienen descripción o nombre de compañía. 
  • Imágenes de procesos Microsoft no firmados. 
  • Ubicados en el directorio Windows (%SytemRoot%) o en el perfil del usuario (%userprofile%)
  • Están "empaquetados". Respecto a este punto, hay una serie de artículos en SecurityByDefault muy interesantes de Abraham Pasamar acerca de qué son los crypters, cómo funcionan y qué técnicas usan para llevar a cabo la evasión de antivirus. Y en concreto, en el primero de ellos, en la introuducción, menciona lo siguiente:

Crypters vs. packers 

Hay que puntualizar que en algunos entornos se habla indistintamente de 'crypters' y 'packers', pero en realidad son cosas distintas. El objetivo de un packer es 'empaquetar' o 'comprimir' el archivo ejecutable. Sería como usar un ZIP pero sin perder la estructura de un archivo ejecutable PE (Portable Executable). El objetivo del 'crypter' es 'cifrar' el ejecutable. Sería como usar PGP o TrueCrypt, pero sin perder la estructura PE. 

Fuente: http://www.securitybydefault.com/2013/07/introduccion-los-crypters.html

Éstos son los procesos a los que se refiere Mark, tanto empaquetados como cifrados, o ambos.

  • Incluyen URLs extrañas en sus Strings. 
  • Tienen conexiones TCP/IP abiertas a ubicaciones no esperadas. 
  • Incluyen DLLs o servicios sospechosos. 

No siempre un proceso que tenga estas características corresponde a malware, pero sí en la mayoría de los casos. Espero que os haya parecido interesante y hasta la próxima!!!