Documentos de Académico
Documentos de Profesional
Documentos de Cultura
net/publication/317950025
CITATIONS READS
0 123
6 authors, including:
Some of the authors of this publication are also working on these related projects:
GT-LiF Guía Técnica para el diseño de un Laboratorio de Informática Forense View project
All content following this page was uploaded by Gonzalo Ruiz De Angeli on 27 June 2017.
E
N los últimos años el análisis forense de
en esta área [1], es que se decidió investigarlas en
la memoria volátil se ha convertido en
el marco de un proyecto final de graduación, junto
una herramienta fundamental de la
con el soporte del Grupo de Investigación en
informática forense por distintas razones. En
Sistemas Operativos e Informática Forense de la
primer lugar, el incremento en la capacidad de
Universidad FASTA.
almacenamiento de los discos rígidos, combinado
con la lentitud inherente a este tipo de tecnologías,
II. BIP-M: UN FRAMEWORK DE ANÁLISIS DE
impone tiempos de análisis cada vez mayores para
MEMORIA
estas fuentes de evidencia. Si a esto se suma la
El proyecto “BIP-M: Búsqueda de Información
creciente utilización de tecnologías de cifrado para
de Procesos en Memoria” tuvo por objetivo el
los medios de almacenamiento, la situación
estudio del marco teórico y la implementación de
presenta serios obstáculos para superar.
un framework de análisis de memoria volátil. El
El análisis de memoria en cambio es mucho más
proyecto se planteó de forma que sus resultados
rápido para realizar, ya que los dumps de memoria
formen una base sobre la cual nuevos proyectos
son mucho más pequeños que una imagen de disco,
puedan construir nuevo conocimiento y nuevas
al punto que en ocasiones es posible cargarlos en su
funcionalidades. Actualmente se encuentra en la
totalidad dentro de la memoria de la computadora
fase de testeo y validación de las funcionalidades
del investigador. En el caso que el sistema
implementadas, que se limitaron al sistema
analizado utilizara tecnologías de cifrado, estas
operativo Windows 7 en sus ediciones de 32 y 64
claves por lo general se encuentran almacenadas en
bits. Ese Sistema Operativo fue elegido por ser un
la memoria, o es posible deducirlas en base a
producto muy presente en el mercado, y a nivel
información que se encuentra presente en la misma.
técnico tiene grandes similitudes con las versiones
También en la memoria se encuentran artefactos
más recientes.
propios de ella que es imposible encontrar en otras
El objetivo de la etapa de desarrollo, es el diseño
fuentes de evidencia digital: información de las
e implementación de un framework extensible y
conexiones del equipo, los procesos que se están
adaptable, apoyándose en patrones de diseño
ejecutando al momento de realizar la imagen (junto
orientados a objetos con el propósito de lograr bajo
con toda la información que habían cargado), e
acoplamiento, alta cohesión y definiendo
claramente las diferentes responsabilidades de cada III.A. PROCESOS
módulo. El framework pretende brindar un marco La estructura _EPROCESS[2] representa a los
para analizar la memoria y encontrar cualquier tipo procesos en los sistemas operativos Windows, y
de objeto que se requiera, denominado contiene, los atributos que se presentan en este
genéricamente entidades. Un objeto, ya sea un esquema, útiles en un análisis forense.
proceso, módulo, conexión, driver, archivo o un
nuevo artefacto que se desee contemplar, puede _EPROCESS
considerarse un tipo especial de entidad y esto
Windows 7 x86
permite extender funcionalidad para la búsqueda de
nuevos objetos. +0x000 Pcb : _KPROCESS
Por otra parte, BIP-M framework ofrece desde +0x098 ProcessLock : _EX_PUSH_LOCK
+0x0a0 CreateTime : _LARGE_INTEGER
su diseño la posibilidad de adaptarse a varios
+0x0a8 ExitTime : _LARGE_INTEGER
formatos de volcado de memoria, así como también +0x0b0 RundownProtect : _EX_RUNDOWN_REF
a diferentes Sistemas Operativos con sus +0x0b4 UniqueProcessId : Ptr32 Void
correspondientes versionados. Además, +0x0b8 ActiveProcessLinks : _LIST_ENTRY
+0x140 InheritedFromUniqueProcessId : Ptr32
implementa persistencia en bases de datos MySQL,
_______________________________________Void
lo que permite un procesamiento de información +0x16c ImageFileName : [15] UChar
más poderoso para lograr un análisis más profundo. +0x188 ThreadListHead : _LIST_ENTRY
Además, también permite desarrollar a futuro +0x198 ActiveThreads : Uint4B
nuevas maneras de persistir la información, dado +0x1a8 Peb : Ptr32 _PEB
4 elementos, 5 elementos,
_OBJECT_HEADER_QUOTA_INFO
0x10 bytes 0x20 bytes
III.B. MÓDULOS
Los módulos, por ejemplo las DLLs, se _OBJECT_HEADER_HANDLE_INFO
2 elementos, 2 elementos,
Opcionales
0x8 bytes 0x10 bytes
almacenan en memoria con una estructura
denominada _LDR_DATA_TABLE_ENTRY, la _OBJECT_HEADER_NAME_INFO
3 elementos, 3 elementos,
0x10 bytes 0x20 bytes
cual contiene los siguientes atributos:
4 elementos, 4 elementos,
_OBJECT_HEADER_CREATOR_INFO
0x10 bytes 0x20 bytes
+0x010 InInitializationOrderLinks:_LIST_ENTRY
+0x018 DllBase : Ptr32 Void
Para estructura el encabezado almacena un tag
+0x01c EntryPoint : Ptr32 Void
+0x020 SizeOfImage : Uint4B que permite identificar qué tipo de objeto se
+0x024 FullDllName : _UNICODE_STRING almacena en ella:
+0x02c BaseDllName : _UNICODE_STRING
...
TABLA II. POOL-TAG DE ESTRUCTURAS EN MEMORIA
+0x070 LoadTime : _LARGE_INTEGER
Estructura Etiqueta en memoria (tag)
Process Proã
Los primeros 3 atributos son punteros a Thread Thrä
diferentes listas enlazadas de módulos cargados en
File Filå
memoria, que se mencionaran más adelante.
SymbolicLink Linö
Además de esos punteros, los atributos de mayor
interés son: Driver Driö
● DllBase: es el puntero a la dirección de Desktop Desö
memoria donde está cargado el módulo WindowStation Winä
propiamente dicho. TCPConnection TcpE
● FullDllName: es la dirección de memoria TCPSocket TcpL
donde se encuentra almacenado el nombre
UDPConnection UdpA
del módulo completo (path + filename).
RegistryEntry CM10
● BaseDllName: dirección de memoria
donde se encuentra almacenado el nombre
del módulo. Más allá que las estructuras en memoria ocupen
Estos últimos dos atributos, apuntan a una uno o varios pools de memoria existe una relación
estructura _UNICODE_STRING, que lleva el largo lógica entre distintos artefactos: los procesos
de la cadena, el tamaño máximo y un buffer de activos y los módulos se vinculan formando parte
caracteres. de una lista circular doblemente enlazada, donde
cada uno de ellos es un ítem de la misma.
typedefstruct _KTHREAD
{
/*0x000*/ struct_DISPATCHER_HEADER Header;
/*0x090*/ struct_KTIMER Timer;
/*0x0BC*/ VOID* ServiceTable;
/*0x18C*/ VOID* Win32Thread;
Figura 3. Hook a la SSDT /*0x1E0*/ struct_LIST_ENTRYThreadListEntry;
/*0x1E8*/ struct_LIST_ENTRYMutantListHead;
La Figura 3 muestra cómo el rootkit reemplaza /*0x1F4*/ struct_KTHREAD_COUNTERS*
la entrada en la SSDT una llamada al sistema por ThreadCounters;
/*0x1F8*/ struct_XSTATE_SAVE* XStateSave;
un puntero a su propio código. }KTHREAD, *PKTHREAD;
Un ejemplo práctico de cómo lograr un hook a la
SSDT, consiste en deshabilitar el WP bit
De esta manera, analizando todos los threads,
(WriteProtection bit) del registro CR0 del
podemos ubicar los punteros a las SSDT y, desde
procesador. Cuando este bit se encuentra en 0,
estos, analizar la existencia de algún tipo de hook.
cualquier código en el kernel tiene acceso de
lectura/escritura en todas las páginas de memoria.
VI. CONCLUSIÓN línea]. Available:
Además de los rootkits, existen otros tipos de http://www.elladodelmal.com/2014/03/ssdt-hooking-
v2.html. [Último acceso: 24 Abril 2015].
malware, como backdoors, troyanos y botnets.
[9] G. Hoglund, J. Butler, Rootkits: Subverting the Windows
Cualquiera sea su tipo, debe considerarse que el
Kernel, 2015.
malware moderno siempre busca ocultarse, sin
embargo, deja indefectiblemente rastros en la
Ana Haydee Di Iorio es Ingeniera en
memoria. Es así que se torna fundamental hacer un Informática de la Universidad FASTA y
análisis forense de la memoria volátil para poder Directora del InFo-Lab: Laboratorio de
Investigación y Desarrollo de Tecnología
detectar la presencia de malware. en Informática Forense. Es miembro de la
BIP-M framework permite realizar búsqueda de Comisión Asesora de la Red de
Laboratorios Forenses de Ciencia y
estructuras ocultas y análisis de hooks, y brinda la Tecnología del Ministerio de Ciencia
posibilidad de extender su funcionalidad, Tecnología e Innovación Productiva de la
agregando parsers y seekers que puedan colaborar República Argentina. Ha participado, presidido y dictado
conferencias en numerosos congresos nacionales e
para realizar búsqueda de nuevos objetos y/o internacionales.
distintos tipos de malware. En su implementación
actual, el framework demuestra que es apto para Gonzalo Ruiz de Angeli es Técnico en
este tipo de análisis y extensibilidad, lo que deja Informática de la Universidad FASTA,
estudiante avanzado de Ingeniería en
abierta la posibilidad de incorporar nuevas clases Informática de la Universidad FASTA
para soportar tanto nuevas versiones como otros y participa como investigador alumno
en el Grupo de Investigación en
sistemas operativos. Informática Forense. Proyecto final en
El conocimiento adquirido en esta temática ha curso: BIP-M.
fortalecido las bases del Grupo de Investigación en
Juan Ignacio Alberdi es Técnico en
Sistemas Operativos e Informática Forense de la Informática de la Universidad FASTA
Universidad FASTA, permitiendo definir futuros y estudiante avanzado de Ingeniería en
Informática de la Universidad FASTA.
proyectos que continuarán esta línea. Proyecto final en curso: BIP-M.
Se espera que la nueva herramienta desarrollada,
colabore con la tarea de los analistas forenses
facilitando la tarea de análisis de memoria, y con el
mundo académico, desde el aporte de un Bruno Constanzo es Ingeniero en
Informática, Investigador del InFo-Lab y
framework factible de ser utilizado y extendido. docente e Investigador del Grupo de
Investigación en Sistemas Operativos e
REFERENCIAS Informática Forense de la Facultad de
Ingeniería de la Universidad FASTA.