Anlisis de Memoria Introduccin y aplicaciones Panorama Actual
- Slides: 51
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 • 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:
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 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 • 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 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 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 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 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 • Intel 386/486 • Intel Pentium • … I/D Cache
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 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 • 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 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 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 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 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 • 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” (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 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 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) • • 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 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 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 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 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 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?
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
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) nemo (https: //github. com/bconstanzo/nemo)
¿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
- Anlisis financiero
- Anlisis foda
- Anlisis foda
- Las 4 etapas de la filosofía
- Induccin
- Introduccin
- Introduccin
- Master memfi
- Introduccin
- Introduccin
- Ambientales
- Mini mini foda
- Actual-theoretical/actual
- Actual sin and actual grace
- Panorama creation
- Panorama general de un sistema financiero
- Vértesi panoráma tanösvény
- Pearson vue pcnse
- Panorama biblico
- Pepfar panorama
- Prenatal
- Halimbawa ng dalampasigan
- Dirio panorama
- Bacteria disinfection panorama city
- Panorama biblico
- Panorama biblico
- Panorama stitching
- Panorama contabilidade
- Tustin school district map
- Kaiser permanente wa pharmacy
- Panorama stitching algorithm
- Panorama de riesgos de una empresa
- Pastas panorama
- "panorama antennas"
- Esquema del panorama del periodo
- What is mobility panaroma?
- Magnitudes de la termodinamica
- Aplicaciones de un solenoide
- Grafo rueda
- Aplicaciones logica difusa
- Elementos del bloque d
- Aplicaciones de ecuaciones diferenciales de primer orden
- Aplicaciones del lenguaje ensamblador
- Desarrollo de aplicaciones web con asp.net
- Fotodiodo aplicaciones
- Aplicaciones de la electrólisis
- Qumica
- Aplicaciones de la polarimetria
- Taller sobre aplicaciones en la administración
- Aplicaciones de la regresión lineal
- Electromagnetismo
- Valor presente de un flujo continuo de ingresos