Los códigos maliciosos realizan modificaciones en
los sistemas para acceder a espacios del mismo de manera no autorizada, con
múltiples intenciones más o menos invasivas.
Es en ese momento cuando se pueden interpretar esas
modificaciones que se realizan en el sistema como indicadores de que el sistema
ha sido comprometido.
Esto se conoce como Indicador de Compromiso (Indicator of Compromise - IOC)
Actualmente existen diversas iniciativas para
definir cómo se deben documentar los indicadores de compromiso:
1.- Incident
Object Description and Exchange Format (IODEF)*, creado por miembros del
IETF Extended Incident Handling (INCH) Working Group, que forman parte del IETF
Security Area.
2.- Open
Indicators of Compromise (OpenIOC)**, creado por la empresa de seguridad
MANDIANT.
3.- Cyber
Observable eXpression (CybOX)***, creado por los miembros de MITRE ****
*
http://www.ietf.org/rfc/rfc5070.txt
** http://www.openioc.org
*** http://cybox.mitre.org
**** http://www.mitre.org
Mediante estos IOCs, es posible definir todos los
elementos que compondrían un compromiso, como pueden ser rutas directorios,
nombres de ficheros, firmas MD5, claves del registro de Windows, nombres de
dominio, direcciones IP, etc.
Entre
estos IOCs están los MUTEX
Un MUTEX
(mutual exclusión) es un objeto que permite bloquear un recurso del sistema con
la intención de controlar el uso del mismo por parte de los distintos procesos
lanzados por el sistema, es decir, viene a ser un testigo.
Quién posea
ese testigo podrá hacer uso del recurso controla por el mismo.
Para nuestro objetivo, estos MUTEX pueden ayudar a
descubrir la presencia de un programa malicioso dentro de un sistema, ya que
algunos programas maliciosos usan estos objetos con el mismo propósito que un
programa legítimo. Es decir, un programa malicioso podría usar un MUTEX para indicar
la infección de un sistema, por lo que, si algún otra programa malicioso
chequea el sistema en busca de un MUTEX con un nombre específico y lo
encuentra, sabrá que el sistema ya se encuentra infectado.
NOTA: El
identificador único de un MUTEX es el nombre.
Existen varias herramientas que nos permiten
conocer los mutex que gestiona nuestro sistema, repasemos:
1.- CheckMutex
– Es una herramienta de línea de comandos, desarrollada por Jaime Blasco, que
pregunta a nuestro sistema por la presencia de mutex en concreto (nombre).
Sólo se encuentra disponible el código
fuente
2.- EnumerateMutex
– Es una herramienta de línea de comandos, desarrollada por Jaime Blasco, que
genera una lista con todos los MUTEX activos en nuestro sistema
Sólo se encuentra disponible el código
fuente
3.- Handle
– Herramienta de línea de comandos, ésta vez proporcionada por Microsoft, que
enumera la lista de MUTEX activos en nuestro sistema
NOTA:
Esta herramienta no sólo saca la lista de MUTEX, por lo que para obtener la
información que nos interesa tenemos que escribir:
Handle –a | findstr Mutant
Utilizando la herramienta
“Handle” para encontrar los objetos Mutex
4.- Process
Explorer – Es un herramienta gráfica.
Se obtiene mediante la opción “Find>Find Handle
or DLL …”, en la pantalla emergente solicitar el tipo “Mutant” que se
corresponde con los objetos MUTEX.
Utilizando “Process Explorer”
para buscar los objetos Mutex
5.- Monitor
de recursos – Herramienta gráfica incluida en los sistemas Windows.
Monitor de recursos de un
sistema Windows 7
6.- Volability,
mediante el uso del comando: mutantscan
Referencias:
1.- Guia STIC 423 de Octubre de 2015 (Indicadores de compromiso -IOC)
2.- https://digital-forensics.sans.org/blog/2012/07/24/mutex-for-malware-discovery-and-iocs
3.- https://www.alienvault.com/open-threat-exchange/blog/malware-exploring-mutex-objects
4.-
https://threat.com/new-technique-complicates-mutex-malware-analysis/111517
PD: ¡¡¡¡Muchísimas gracias Josechu!!!!
PD: ¡¡¡¡Muchísimas gracias Josechu!!!!
Me mola como lo has expresado, buen resumen. Un diez !!!
ResponderEliminarMás artículos gratis por favor :-)
Muy buen articulo, como todos los que has escrito anteriormente.
ResponderEliminarUn saludo