5 may 2010

Bichología – Introducción

Uno de los temas que más me apasiona del (amplio) mundo de la seguridad informática es el que se refiere a la respuesta a incidentes, y dentro de este el análisis post-mortem o “forense” y la investigación de código malicioso (léase virus, troyanos, gusanos, adware, spyware, etc.).

Del análisis forense en general ya hemos hablado en Introducción a la Informática Forense (parte I, parte II y parte III).
Este artículo no pretende ser una guía exhaustiva ni un curso avanzado sobre el tema, sino proporcionar algunas pistas y enlaces sobre cómo proceder en estos casos por parte de casi cualquiera, aunque algunos conocimientos básicos se presuponen.
El malware actual es variado y utiliza técnicas bastante avanzadas para conseguir algo: dinero. Ya pasaron los tiempos del “I love you” o de virus cuya motivación era ser “visibles” y si es posible salir en la tele. Y si has conseguido infectar varios millones de PCs en el primer día de propagación, pues más gloria que te llevas. No, el malware de ahora busca pasar desapercibido, propagarse sin hacer saltar alarmas, intentar que el usuario no se de cuenta, y dedicarse a enviar spam, robar contraseñas, etc.

Todo “bicho” que se precie tiene, simplificando, varios elementos:
  • Mecanismo de infección. Puede ser una combinación de métodos que el malware realiza por si mismo (infección a otras máquinas desde una máquina infectada via red, por ejemplo) o con ayuda (desde una página web que te lo “enchufa” cuando la visitas, o oculto en documentos PDF, o “a caballo” de otros troyanos, downloaders, etc.)
  • Mecanismo de “Command & Control”. Para tener una botnet efectiva, una vez que tienes varias decenas de miles de PCs infectados, necesitas poder “decirles” que quieres que hagan. Ya sea enviar SPAM, lanzar ataques de Denegación de Servicio (DoS), robar contraseñas de Facebook, etc. Para ello el malware debe tener algun mecanismo que permita recibir comandos de la gente que controla la red. Esto puede ser conectándose a un canal de IRC, a una página web, etc. Los sistemas de “command & control” pueden ser muy sencillos o extremadamente complicados, implementando funcionalidad de redes peer-to-peer (P2P).
  • Carga útil o payload. Es decir, el código que implementa lo que quieres que haga el “bicho”: robar datos, etc.
  • Mecanismo de persistencia y ocultación. Cualquier cosa que haga para mantener la máquina infectada, y ocultar su presencia. Puede ir desde aparentar ser un fichero de sistema normal y corriente, a alterar el funcionamiento de software antivirus, etc.
¿Por qué molestarse en analizarlo nosotros mismos? Podemos enviar la muestra a nuestro fabricante favorito de antivirus y que hagan el trabajo ellos, que tienen expertos que se dedican a ello. Varias razones:
  • Podemos tener un incidente más o menos grave en curso. El fabricante de antivirus puede tardar horas o días en darnos una solución. Mientras tanto es importante conocer un poco a qué nos enfrentamos y poder desarrollar un procedimiento de detección, de contención de la propagación, y si es posible de eliminación.
  • Porque mola y es divertido.
Digamos que en el transcurso de una investigación encontramos algo sospechoso. O bien nos lo remite un usuario que lo ha detectado. O nuestro flamante antivirus dice que encuentra “algo” que podría ser un virus, ya sea mediante heurística o mediante monitorización de su actividad. ¿Cómo procedemos?

Esto es una sugerencia de pasos a seguir:
  • Establece un entorno (“laboratorio”) de análisis. Aislado.
  • Intenta ejecutar el “bicho” y monitoriza su comportamiento (acceso a ficheros y registro, conexiones de red, etc.)
  • Realiza análisis estáticos y dinámicos del código para determinar su funcionamiento interno. Esto suele ser lo más complicado y lo que requiere más expertise por parte del analista.
  • Documenta los resultados.
Ten preparado (de antemano) el entorno aislado donde puedas copiar el malware para su análisis. Puedes seguir los consejos de Lenny Zeltser, pero en general suele ser suficiente un entorno virtual (tipo VMWare), en una red aislada (y monitorizada), y con herramientas de análisis de comportamiento (Process Explorer, Wireshark, Process Monitor, etc.). Esto suele ser suficiente para empezar.

En el post del próximo día hablaremos del “laboratorio” y las herramientas habituales.

Fuente: Blog de Alfredo Reino

Suscríbete a nuestro Boletín

1 comentario:

  1. Muy muy interesante este tema, me encantaría que continuen con esto.

    ResponderBorrar

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!