Anlisis de Memoria Introduccin y aplicaciones Panorama Actual

  • Slides: 51
Download presentation
Análisis de Memoria Introducción y aplicaciones Panorama Actual sobre Ciberdefensa y Ciberseguridad Respuesta a

Análisis de Memoria Introducción y aplicaciones Panorama Actual sobre Ciberdefensa y Ciberseguridad Respuesta a Incidentes - Informática Forense - Criptoanálisis Facultad de Ingeniería del Ejército, Universidad de la Defensa Nacional Presenta: Bruno Constanzo de In. Fo-Lab (Universidad FASTA)

Índice • Introducción e Historia • Administración de Memoria • Análisis de Memoria •

Índice • Introducción e Historia • Administración de Memoria • Análisis de Memoria • Aplicaciones • Preguntas

Índice El trabajo que vamos a ver hoy es resultado de la cooperación de:

Índice El trabajo que vamos a ver hoy es resultado de la cooperación de:

Índice El trabajo que vamos a ver hoy es resultado de la cooperación de:

Índice El trabajo que vamos a ver hoy es resultado de la cooperación de:

Introducción e Historia • ¿Qué podemos encontrar en memoria? • • Tokens de acceso

Introducción e Historia • ¿Qué podemos encontrar en memoria? • • Tokens de acceso y claves de cifrado Procesos en ejecución (programas legítimos o malware) Información que no fue persistida (en disco o cloud) Archivos abiertos Datos y metadatos de conexiones Información cargada desde Internet (entre otras) • Desafío: justificar adecuadamente el procedimiento

Introducción e Historia https: //twitter. com/daisyowl/status/841802094361235456

Introducción e Historia https: //twitter. com/daisyowl/status/841802094361235456

Introducción e Historia https: //twitter. com/daisyowl/status/841802094361235456 https: //upload. wikimedia. org/wikipedia/commons/e/e 9/Silicon. Croda. jpg

Introducción e Historia https: //twitter. com/daisyowl/status/841802094361235456 https: //upload. wikimedia. org/wikipedia/commons/e/e 9/Silicon. Croda. jpg

Introducción e Historia https: //youtu. be/NGFhc 8 R_u. O 4

Introducción e Historia https: //youtu. be/NGFhc 8 R_u. O 4

Introducción e Historia • Máquinas de Turing • Máquina de Harvard • Máquina de

Introducción e Historia • Máquinas de Turing • Máquina de Harvard • Máquina de Von Neumann

Introducción e Historia • Máquinas de Turing • Máquina de Harvard • Máquina de

Introducción e Historia • Máquinas de Turing • Máquina de Harvard • Máquina de Von Neumann Fuentes de las imágenes: https: //upload. wikimedia. org/wikipedia/en/b/bb/Turing_machine_1. JPG https: //upload. wikimedia. org/wikipedia/commons/3/3 f/Harvard_architecture. svg https: //upload. wikimedia. org/wikipedia/commons/e/e 5/Von_Neumann_Architecture. svg

Introducción e Historia • Máquinas de Turing • Máquina de Harvard • Máquina de

Introducción e Historia • Máquinas de Turing • Máquina de Harvard • Máquina de Von Neumann Fuentes de las imágenes: https: //upload. wikimedia. org/wikipedia/en/b/bb/Turing_machine_1. JPG https: //upload. wikimedia. org/wikipedia/commons/3/3 f/Harvard_architecture. svg https: //upload. wikimedia. org/wikipedia/commons/e/e 5/Von_Neumann_Architecture. svg

Introducción e Historia • Máquinas de Turing • Máquina de Harvard • Máquina de

Introducción e Historia • Máquinas de Turing • Máquina de Harvard • Máquina de Von Neumann Fuentes de las imágenes: https: //upload. wikimedia. org/wikipedia/en/b/bb/Turing_machine_1. JPG https: //upload. wikimedia. org/wikipedia/commons/3/3 f/Harvard_architecture. svg https: //upload. wikimedia. org/wikipedia/commons/e/e 5/Von_Neumann_Architecture. svg

Introducción e Historia • Máquinas de Turing • Máquina de Harvard • Máquina de

Introducción e Historia • Máquinas de Turing • Máquina de Harvard • Máquina de Von Neumann Fuentes de las imágenes: https: //upload. wikimedia. org/wikipedia/en/b/bb/Turing_machine_1. JPG https: //upload. wikimedia. org/wikipedia/commons/3/3 f/Harvard_architecture. svg https: //upload. wikimedia. org/wikipedia/commons/e/e 5/Von_Neumann_Architecture. svg

Introducción e Historia Máquina de Harvard Modificada (semi Von-Neumann) • Motorola 680 x 0

Introducción e Historia Máquina de Harvard Modificada (semi Von-Neumann) • Motorola 680 x 0 • Intel 386/486 • Intel Pentium • … I/D Cache

Introducción e Historia • Bare metal • Monitor residente • Multiprogramación Imagen: https: //en.

Introducción e Historia • Bare metal • Monitor residente • Multiprogramación Imagen: https: //en. wikipedia. org/wiki/File: Pdp-11 -40. jpg

Introducción e Historia • Bare metal • Monitor residente • Multiprogramación • Paginación y

Introducción e Historia • Bare metal • Monitor residente • Multiprogramación • Paginación y Segmentación • Memoria Virtual Imagen: https: //commons. wikimedia. org/wiki/File: Personal_System_2_Series_of_Computers. png

Administración de Memoria • Sistemas Operativos “modernos”: • Paginación con swapping (comprimido) a disco

Administración de Memoria • Sistemas Operativos “modernos”: • Paginación con swapping (comprimido) a disco • Espacio de direcciones lineal por proceso • Puede ser con base aleatoria • Mitigación de ataques • Sistemas operativos específicos utilizan otras estrategias

Administración de Memoria • El Kernel mantiene una lista de Procesos • Las estructuras

Administración de Memoria • El Kernel mantiene una lista de Procesos • Las estructuras de Proceso guardan información sobre la memoria asignada y compartida • Cada proceso tiene un espacio de direcciones propio • El Kernel tiene espacios reservados de memoria • Memory Pools

Administración de Memoria • Direcciones Lógicas y Físicas • Traducción de direcciones: • El

Administración de Memoria • Direcciones Lógicas y Físicas • Traducción de direcciones: • El proceso de traducción depende de la arquitectura (ISA) • Operaciones de bits (AND, SHIFT) y aritméticas (ADD) • En x 86 una dirección lógica se compone de un offset o desplazamiento, y uno o más índices a tablas de páginas

Administración de Memoria • Direcciones Lógicas y Físicas • Traducción de direcciones: • El

Administración de Memoria • Direcciones Lógicas y Físicas • Traducción de direcciones: • El proceso de traducción depende de la arquitectura (ISA) • Operaciones de bits (AND, SHIFT) y aritméticas (ADD) • En x 86 una dirección lógica se compone de un offset o desplazamiento, y uno o más índices a tablas de páginas 0 x 8454 f 020

Administración de Memoria • Direcciones Lógicas y Físicas • Traducción de direcciones: • El

Administración de Memoria • Direcciones Lógicas y Físicas • Traducción de direcciones: • El proceso de traducción depende de la arquitectura (ISA) • Operaciones de bits (AND, SHIFT) y aritméticas (ADD) • En x 86 una dirección lógica se compone de un offset o desplazamiento, y uno o más índices a tablas de páginas 0 x 8454 f 020 -Amigo… ¿Qué es esa cosa llena de números?

Administración de Memoria 0 x 8454 f 020 -Es una dirección de memoria…

Administración de Memoria 0 x 8454 f 020 -Es una dirección de memoria…

Administración de Memoria • vtop en x 86 32 bits+PAE

Administración de Memoria • vtop en x 86 32 bits+PAE

Administración de Memoria • vtop en x 86 32 bits+PAE

Administración de Memoria • vtop en x 86 32 bits+PAE

Administración de Memoria • vtop en x 86 32 bits+PAE

Administración de Memoria • vtop en x 86 32 bits+PAE

Análisis de Memoria • En informática forense hablamos de obtener un “volcado de memoria”

Análisis de Memoria • En informática forense hablamos de obtener un “volcado de memoria” (memory dump) • En Windows hay 3 métodos para obtenerlo: • Aplicaciones en modo administrador FTK Imager, Moon. Sols Dump. It/Comae Dump. It • Mecanismo de Crash Dump Configurar el sistema, después correr Not. My. Fault. exe • Adquisición física Dispositivos que se conectan físicamente a un equipo En Virtual. Box puede simularse con comandos de debugging

Análisis de Memoria • Formatos de volcado: • RAW Dump Volcado “clásico” proveniente de

Análisis de Memoria • Formatos de volcado: • RAW Dump Volcado “clásico” proveniente de un dispositivo de memoria física. • Crash Dump Volcado proveniente de una falla de sistema, orientado a debuggers. Puede provenir de un proceso, o de todo el sistema. Contiene información y punteros de utilidad para el análisis. • Hiberfil Volcado de toda la memoria física a un archivo en disco como parte del proceso de hibernación. Usualmente se encuentra comprimido y es necesario convertir a un formato RAW.

Análisis de Memoria • Estructuras en memoria en Windows 7 32 bits • ¿Cómo

Análisis de Memoria • Estructuras en memoria en Windows 7 32 bits • ¿Cómo podríamos hacer un pslist()? • 4 estructuras básicas: • • _EPROCESS _KPROCESS _LIST_ENTRY _LARGE_INTEGER Vamos a verlas de la más simple a la más compleja…

Análisis de Memoria • LARGE_INTEGER (https: //msdn. microsoft. com/en-us/library/windows/desktop/aa 383713(v=vs. 85). aspx) • •

Análisis de Memoria • LARGE_INTEGER (https: //msdn. microsoft. com/en-us/library/windows/desktop/aa 383713(v=vs. 85). aspx) • • Se compone de dos campos, HI y LO Son 2 enteros sin signo de 32 bits, uno al lado del otro Es un mecanismo para lograr enteros de 64 bits Múltiples usos, entre ellos, la representación de fecha/hora Interpretado como FILETIME, cuenta la cantidad de tics de 10 nanosegundos transcurridos desde el 1 ro. de enero del 1601. LARGE_INTEGER HI LO

Análisis de Memoria • LIST_ENTRY (https: //msdn. microsoft. com/en-us/library/windows/hardware/ff 554296(v=vs. 85). aspx) • Se

Análisis de Memoria • LIST_ENTRY (https: //msdn. microsoft. com/en-us/library/windows/hardware/ff 554296(v=vs. 85). aspx) • Se compone de dos campos, FLINK y BLINK • Dos punteros (32 bits) a LIST_ENTRY • Es utilizada ampliamente por Windows donde se necesita una lista doblemente enlazada • Por ejemplo, en la lista de procesos activos LIST_ENTRY FLINK BLINK

Análisis de Memoria • EPROCESS (https: //docs. microsoft. com/en-us/windows-hardware/drivers/kernel/eprocess) • Es la estructura que

Análisis de Memoria • EPROCESS (https: //docs. microsoft. com/en-us/windows-hardware/drivers/kernel/eprocess) • Es la estructura que almacena toda la información y punteros del proceso • Incluye los tiempos de creación, y finalización de los procesos, el Process ID, links a la lista de procesos activos, el image_name de proceso, entre otros atributos

Análisis de Memoria • EPROCESS (https: //docs. microsoft. com/en-us/windows-hardware/drivers/kernel/eprocess) • Es la estructura que

Análisis de Memoria • EPROCESS (https: //docs. microsoft. com/en-us/windows-hardware/drivers/kernel/eprocess) • Es la estructura que almacena toda la información y punteros del proceso • Incluye los tiempos de creación, y finalización de los procesos, el Process ID, links a la lista de procesos activos, el image_name de proceso, entre otros atributos

Análisis de Memoria • KPROCESS (entramos en tierra del debugger…) • Es la estructura

Análisis de Memoria • KPROCESS (entramos en tierra del debugger…) • Es la estructura que representa al Process Control Block • Almacena información de importancia de los procesos • Por ejemplo, el DISPATCHER_HEADER que es utilizado por el dispatcher de Windows para realizar scheduling de los procesos • Se encuentra al principo de EPROCESS, ocupando los primeros 152 bytes (Windows 7 -SP 2 32 bits)

Análisis de Memoria • KPROCESS (entramos en tierra del debugger…) • Es la estructura

Análisis de Memoria • KPROCESS (entramos en tierra del debugger…) • Es la estructura que representa al Process Control Block • Almacena información de importancia de los procesos • Por ejemplo, el DISPATCHER_HEADER que es utilizado por el dispatcher de Windows para realizar scheduling de los procesos • Se encuentra al principo de EPROCESS, ocupando los primeros 152 bytes (Windows 7 -SP 2 32 bits)

Análisis de Memoria ¿Cómo encajan entre si todas estructuras?

Análisis de Memoria ¿Cómo encajan entre si todas estructuras?

Estructuras en Memoria Process List Head

Estructuras en Memoria Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Estructuras en Memoria EPROCESS Process Control Block Active. Process. List Process List Head

Aplicaciones • Usos y ventajas del análisis de memoria: • • • Los volcados

Aplicaciones • Usos y ventajas del análisis de memoria: • • • Los volcados son más pequeños que una imagen de disco Podemos obtener claves Podemos extraer malware (post descifrado/unpacking) Evidencia directa de actividad Incident Response Monitoreo en vivo de sistemas • Claramente útil para informática forense, también infosec y cyberdefensa.

Aplicaciones • Softwares: • • • Volatility Rekall winpmem GRR BIP-M (https: //github. com/ruizgon/bip-m_framework)

Aplicaciones • Softwares: • • • Volatility Rekall winpmem GRR BIP-M (https: //github. com/ruizgon/bip-m_framework) nemo (https: //github. com/bconstanzo/nemo)

¿Preguntas? In. Fo-Lab Laboratorio de Investigación y Desarrollo de Tecnología en Informática Forense www.

¿Preguntas? In. Fo-Lab Laboratorio de Investigación y Desarrollo de Tecnología en Informática Forense www. info-lab. org. ar @infolabmdq @bruno_constanzo info-lab@ufasta. edu. ar bconstanzo@ufasta. edu. ar