GUERRA SOTO, MARIO
Datos técnicos
Se considera malware cualquier tipo de software dañino contra el normal funcionamiento de un dispositivo, aplicación o red. Dentro del término malware se engloban virus, troyanos, gusanos, backdoors, rootkits, scareware, spyware, keyloggers, ransomware, etc. En general, un malware moderno incluirá varios de estos comportamientos.
Esta obra compila y desgrana las principales TTP (Tácticas, Técnicas y Procedimientos) empleadas actualmente por los atacantes. Parte de estas TTP están diseñadas para comprometer la CIA (confidencialidad, integridad y disponibilidad) del sistema víctima o de la información almacenada en él. En cambio, técnicas como la ofuscación, el anti desensamblado, la anti depuración y el anti sandboxing, son específicamente implementadas por los desarrolladores de malware para impedir o dificultar la detección de la muestra maliciosa mediante la utilización de herramientas automatizadas y su análisis manual.
El contenido de este libro describe una amplia metodología de análisis estático y dinámico de muestras maliciosas desarrolladas con las técnicas más actuales y avanzadas para entornos Windows sobre IA-32/64 bits. Estos conocimientos permitirán al lector:
• Analizar, caracterizar y contextualizar muestras maliciosas.
• Determinar el alcance del incidente.
• Eliminar los artifacts maliciosos del sistema infectado.
• Contribuir a la mejora de las defensas y elevar el nivel de resiliciencia del sistema.
• Fortalecer su capacidad para gestionar ciberincidentes relacionados con malware.
Dado que se incluye el soporte teórico necesario relativo a sistemas operativos Microsoft Windows, arquitectura de computadores IA-32/IA-64 y programación (ensamblador y .NET), se trata de una obra ideal tanto para aquellos que quieran introducirse profesionalmente en el análisis de malware como un libro de referencia para analistas avanzados.
ÍNDICE
ACERCA DEL AUTOR
PRÓLOGO
CAPÍTULO 1. INTRODUCCIÓN
CAPÍTULO 2. MOTIVOS PARA REALIZAR UN ANÁLISIS DE MALWARE
CAPÍTULO 3. INGENIERÍA INVERSA DE SOFTWARE
3.1 INTRODUCCIÓN
3.2 FUNDAMENTOS DE PROGRAMACIÓN
3.2.1 Código fuente
3.2.2 Código máquina
3.2.3 Código ensamblador
3.2.4 Entornos de ejecución de software y bytecodes
3.2.5 Construcciones básicas de código
3.2.6 Herencia
3.2.7 Variables
3.2.8 Estructuras de datos
3.2.9 Listas
3.2.10 Control de flujo
3.3 ARQUITECTURA X86
3.3.1 Tipos de datos
3.3.2 Registros
3.3.3 Memoria
3.3.4 Representación complemento a dos
3.3.5 Formato de instrucciones
3.3.6 Modos de direccionamiento
3.3.7 Interrupciones
3.3.8 Funciones (functions)
3.3.9 Módulos (modules)
3.3.10 La pila (stack)
3.3.11 El heap.
3.3.12 Secciones de datos ejecutables
3.3.13 Modos de operación de los procesadores
3.3.14 Instrucciones en ensamblador x86
3.3.15 Control de flujo en ensambladoR
3.4 ANÁLISIS DE CÓDIGO DE 64 BITS
3.4.1 Introducción
3.4.2 Registros de propósito general en x86 de 64 bits
3.4.3 Convención de llamadas a funciones
3.4.4 Modos de direccionamiento
3.4.5 Instrucciones x64
3.4.6 Transferencia de datos en x64
CAPÍTULO 4. FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS MICROSOFT WINDOWS
4.1 BREVE HISTORIA
4.2 CARACTERÍSTICAS DE WINDOWS NT
4.3 COMPATIBILIDAD HARDWARE
4.4 GESTIÓN DE MEMORIA
4.4.1 Direccionamiento virtual de memoria
4.4.2 Memoria de kernel y memoria de usuario
4.4.3 Objetos de seccióN
4.4.4 Árboles VAD
4.4.5 Asignaciones en modo usuario
4.4.6 Símbolos
4.4.7 Funciones de la API para la gestión de memoria
4.5 OBJETOS Y HANDLES
4.5.1 Generalidades
4.5.2 Objetos con nombre (named objects)
4.6 PROCESOS E HILOS
4.6.1 Procesos
4.6.2 Hilos
4.6.3 Cambio de contexto
4.6.4 Objetos de sincronización
4.6.5 Atoms y tablas atom
4.6.6 Secuencia de inicialización de un proceso
4.7 API
4.8 FORMATO DE FICHERO PECOFF
4.8.1 Generalidades
4.8.2 Secciones de imagen
4.8.3 Dynamically Linked Libraries
4.8.4 Cabeceras de fichero
4.8.5 Sección Table (cabeceras de sección)
4.8.6 Sección DatA
4.8.7 Sección .drectvE
4.8.8 Sección .edatA
4.8.9 Sección .idatA
4.8.10 Sección .pdata
4.8.11 Sección .reloc
4.8.12 Sección .tls
4.8.13 Sección .rsrc.
4.8.14 Sección .cormeta
4.8.15 Sección .sxdatA
4.8.16 Cálculo del hash Authenticode de la imagen PE
4.9 ENTRADA/SALIDA
4.9.1 Generalidades
4.9.2 El sistema de E/S
4.9.3 Subsistema Win32.
4.10 STRUCTURED EXCEPTION HANDLING.
CAPÍTULO 5. VIRTUALIZACIÓN Y SANDBOXING
5.1 VIRTUALIZACIÓN
5.2 SANDBOXING.
CAPÍTULO 6. CRIPTOLOGÍA
6.1 INTRODUCCIÓN
6.2 DEFINICIONES
6.3 PRINCIPIOS DE LA CRIPTOGRAFÍA CLÁSICA
6.4 PRINCIPIOS DE CRIPTOGRAFÍA MODERNA
6.5 CRIPTOGRAFÍA DE CLAVE SIMÉTRICA
6.6 CRIPTOGRAFÍA DE CLAVE ASIMÉTRICA
6.7 CIFRADO HÍBRIDO
6.8 ALGORITMOS RESUMEN (HASHING)
6.9 ALGORITMOS DE LÓGICA DIFUSA (FUZZY HASHING) Y RESÚMENES DE SIMILITUD (SIMILARITY DIGESTS)
6.10 EMPLEO DE CIFRADO Y OFUSCACIÓN POR EL MALWARE
6.10.1 Generalidades
6.10.2 Cifrado CésaR
6.10.3 Codificación Base64.
6.10.4 Codificación XOR
6.10.5 Codificación mediante rotación
6.10.6 Técnicas de cifrado del malware
6.10.7 Técnicas de cifrado y codificación personalizadas
6.10.8 Cifrado de ficheros y volúmenes
6.11 PROTOCOLOS DE CIFRADO DE RED Y ANONIMIZACIÓN DE LAS COMUNICACIONES
CAPÍTULO 7. VECTORES DE INFECCIÓN DE UN SISTEMA
7.1 PROPAGACIÓN DEL MALWARE
7.2 DISTRIBUCIÓN DE MALWARE A TRAVÉS DE LA WEB
CAPÍTULO 8. CAPACIDADES DEL MALWARE
8.1 VIRUS Y GUSANOS
8.2 TROYANOS (TROJAN HORSES)
8.3 ADWARE/SPYWARE
8.4 SCAREWARE
8.5 WIPER
8.6 RANSOMWARE
8.7 DOWNLOADERS Y LAUNCHERS
8.8 PUERTAS TRASERAS (BACKDOORS)
8.8.1 Reverse shell
8.8.2 Windows Reverse Shell
8.8.3 Herramienta de acceso remoto (RAT)
8.8.4 Botnet.
8.9 ROOTKITS
8.10 MALWARE DE EXFILTRACIÓN DE INFORMACIÓN
8.11 ROBO DE CREDENCIALES
8.11.1 Interceptación GINA
8.11.2 Volcado de hashes
8.11.3 Registro de pulsaciones de teclado (keylogging)
8.12 MALWARE A NIVEL BIOS/FIRMARE
CAPÍTULO 9. COMPONENTES DEL MALWARE
9.1 FUNCIONALIDAD MODULAR
9.2 MALWARE DE MÚLTIPLES ETAPAS
9.3 EXPLOIT KITS
CAPÍTULO 10. MECANISMOS DE PERSISTENCIA DEL MALWARE
10.1 INTRODUCCIÓN
10.2 PERSISTENCIA EN LAS CARPETAS DE INICIO DE MICROSOFT WINDOWS
10.3 PERSISTENCIA EN LAS TAREAS PROGRAMADAS
10.4 PERSISTENCIA EN EL REGISTRO DE MICROSOFT WINDOWS
10.4.1 AppInit_DLLs
10.4.2 Valor Notify de Winlogon
10.4.3 Librerías SvcHost
10.5 TROYANIZACIÓN DE BINARIOS DEL SISTEMA
10.6 SECUESTRO DEL ORDEN DE CARGA DE LAS LIBRERÍAS
10.7 PERSISTENCIA EN MEMORIA DEL MALWARE
10.7.1 Inyección de shellcode
10.7.2 Inyección Reflexiva (Reflective DLL injection)
10.7.3 Módulo de memoria (memory module)
10.7.4 Process hollowing
10.7.5 Process Doppelgänging
10.7.6 Sobrescritura de módulo (module overwriting)
10.7.7 Gárgola (gargoyle)
10.8 FILELESS MALWARE
CAPÍTULO 11. ESCALADA DE PRIVILEGIOS
11.1 INTRODUCCIÓN
11.2 AUTORIZACIÓN EN SISTEMAS MICROSOFT WINDOWS
11.3 LOCALIZANDO EL OBJETO TOKEN
11.4 SEDEBUGPRIVILEGE
CAPÍTULO 12. TÉCNICAS DE OCULTACIÓN DE MALWARE
12.1 TÉCNICAS EVASIVAS
12.2 EMPAQUETADORES (PACKERS)
12.3 CIFRADORES (CRYPTERS)
12.4 PROTECTORES (PROTECTORS)
12.5 INYECCIÓN DE CÓDIGO
12.6 ROOTKITS
12.7 API HOOKING.
12.7.1 Generalidades
12.7.2 SSDT hooking
12.7.3 IRP hooking.
12.7.4 IAT hooking.
12.7.5 Inline hooking
12.7.6 Hooking en controladores
12.8 DKOM
12.8.1 Generalidades
12.8.2 Ocultación de procesos
12.8.3 Ocultación de controladores del sistemA
12.8.4 Elevación privilegio de token y de grupo con DKOM.
12.9 TAXONOMÍA DE LOS ROOTKITS
12.10 DETECCIÓN DE ROOTKITS
12.10.1 Detección basada en firma (signature based detection)
12.10.2 Detección basada en heurística/comportamiento (heuristic/behavioral detection)
12.10.3 Detección basada en visión transversal (cross view based)
12.10.4 Detección basada en integridad.
12.10.5 Path profiling en tiempo de ejecución (runtime execution profiling)
12.10.6 Detección manual de rootkits
CAPÍTULO 13. IDENTIFICACIÓN Y EXTRACCIÓN DEL MALWARE
13.1 INTRODUCCIÓN
13.2 DETECCIÓN DE LA CONFIGURACIÓN
13.3 MODELADO
13.4 INDICADORES
13.5 COMPORTAMIENTO DE LA AMENAZA .
13.6 COMPARACIÓN DE LAS DIFERENTES APROXIMACIONES DE DETECCIÓN DE LA AMENAZA
13.7 INDICADORES DE QUE SE HA PRODUCIDO UNA BRECHA DE SEGURIDAD
CAPÍTULO 14. ETAPAS DEL ANÁLISIS DE MALWARE
14.1 INTRODUCCIÓN
14.2 ANÁLISIS COMPLETAMENTE AUTOMATIZADO
14.3 ANÁLISIS ESTÁTICO DE PROPIEDADES
14.4 ANÁLISIS INTERACTIVO DE COMPORTAMIENTO
14.5 INGENIERÍA INVERSA MANUAL DEL CÓDIGO
14.6 COMBINANDO LAS ETAPAS DE ANÁLISIS DE MALWARE
CAPÍTULO 15. TÉCNICAS DE ANÁLISIS DE MALWARE
15.1 INTRODUCCIÓN
15.2 ANÁLISIS ESTÁTICO DE MALWARE
15.3 ANÁLISIS DINÁMICO DE MALWARE
15.4 ESTABLECIENDO UN ENTORNO DE ANÁLISIS DE MALWARE
CAPÍTULO 16. TÉCNICAS BÁSICAS DE ANÁLISIS ESTÁTICO DE MALWARE
16.1 EMPLEO DE HERRAMIENTAS ANTIVIRUS
16.2 RESÚMENES COMO HUELLA DIGITAL DE MALWARE
16.3 BÚSQUEDA DE CADENAS DE TEXTO
16.4 BÚSQUEDA DE MUTEXES
16.5 BÚSQUEDA DE PATRONES CON YARA
16.6 IDENTIFICACIÓN DE LAS DEPENDENCIAS DE FICHEROS
16.7 ATOMS Y TABLAS ATOM
16.8 MALWARE EMPAQUETADO Y OFUSCADO
16.9 BÚSQUEDA DE LA INFORMACIÓN DE PE
16.10 DESENSAMBLADO DE CÓDIGO
CAPÍTULO 17. TÉCNICAS BÁSICAS DE ANÁLISIS DINÁMICO DE MALWARE
17.1 INTRODUCCIÓN
17.2 MONITORIZACIÓN DE INSTALACIÓN DE APLICACIONES
17.3 MONITORIZACIÓN DE PROCESOS
17.4 MONITORIZACIÓN DE FICHEROS Y CARPETAS
17.5 MONITORIZACIÓN DEL REGISTRO DE WINDOWS
17.6 MONITORIZACIÓN DEL TRÁFICO DE RED DE LAS CAPAS DE RED Y TRANSPORTE
17.7 MONITORIZACIÓN/RESOLUCIÓN DNS
17.8 MONITORIZACIÓN DE TRÁFICO DE RED EN LA CAPA APLICACIÓN
17.9 MONITORIZACIÓN DE LAS LLAMADAS A LA API DE MICROSOFT WINDOWS
17.10 MONITORIZACIÓN DE CONTROLADORES DE DISPOSITIVOS
17.11 MONITORIZACIÓN DE PROGRAMAS AL INICIARSE MICROSOFT WINDOWS
17.12 MONITORIZACIÓN DE SERVICIOS EN MICROSOFT WINDOWS
CAPÍTULO 18. INTERACCIÓN CON SITIOS WEB E INFRAESTRUCTURA MALICIOSA
18.1 ANONIMIZACIÓN DE LAS COMUNICACIONES
18.2 SISTEMAS Y HERRAMIENTAS DEL ANALISTA
CAPÍTULO 19. ANÁLISIS DE DOCUMENTOS MALICIOSOS
19.1 METODOLOGÍA GENERAL DE ANÁLISIS DE DOCUMENTOS
19.2 ANÁLISIS DE SCRIPTS PARA POWERSHELL.
19.2.1 Generalidades
19.2.2 Análisis de comandos/scripts PowerShell.
19.2.3 Utilización de los atacantes de PowerShell
19.2.4 Weaponización de PowerShell
19.3 DESOFUSCACIÓN DE SCRIPTS UTILIZANDO DEPURADORES
19.4 DESOFUSCACIÓN DE SCRIPTS UTILIZANDO INTERPRETADORES388
19.5 FICHEROS HTA
19.6 ANÁLISIS DE DOCUMENTOS DE MICROSOFT OFFICE
19.7 ANÁLISIS DE FICHEROS MSG
19.8 ANÁLISIS DE DOCUMENTOS RTF
19.9 ANÁLISIS DE DOCUMENTOS PDF
19.10 ANÁLISIS DE SHELLCODE
CAPÍTULO 20. TÉCNICAS AVANZADAS DE ANÁLISIS DINÁMICO DE MALWARE
20.1 ANÁLISIS DE MALWARE EMPAQUETADO
20.2 DEPURACIÓN DE CÓDIGO EMPAQUETADO
20.3 ANÁLISIS DE MALWARE QUE UTILIZA MÚLTIPLES TECNOLOGÍAS
20.4 ANÁLISIS FORENSE DEL CONTENIDO DE LA MEMORIA RAM
CAPÍTULO 21. ANÁLISIS DE MALWARE QUE INCORPORA TÉCNICAS ANTIVIRTUALIZACIÓN
21.1 INTRODUCCIÓN
21.2 TÉCNICAS ANTIVIRTUALIZACIÓN
21.2.1 Detección de entornos de virtualizacióN
21.2.2 Artefactos de entornos de virtualización
21.2.3 Instrucciones vulnerables
21.2.4 Técnica antivirtualización Red Pill.
21.2.5 Técnica antivirtualización No Pill
21.2.6 Interrogación del puerto de comunicación I/O como técnica antivirtualización
21.2.7 Instrucción STR como técnica antivirtualizacióN
21.2.8 Otras técnicas antivirtualizacióN
21.2.9 Técnicas de escape del entorno virtualizado
21.3 MEDIDAS ANTI-ANTIDETECCIÓN DE ENTORNOS DE ANÁLISIS DEMALWARE
CAPÍTULO 22. ANÁLISIS DE MALWARE QUE INCORPORA TÉCNICAS ANTIDESENSAMBLADO
22.1 INTRODUCCIÓN
22.2 ALGORITMOS DE DESENSAMBLADO
22.2.1 Desensamblado lineal
22.2.2 Desensamblado orientado a flujo
22.3 TÉCNICAS ANTIDESENSAMBLADO
22.3.1 Introducción
22.3.2 Instrucciones de salto que apuntan al mismo objetivo
22.3.3 Instrucción de salto con una condición de constantE
22.3.4 Funciones de bifurcación
22.3.5 Desensamblado imposiblE
22.4 TÉCNICAS ANTIANÁLISIS DE LA PILA
CAPÍTULO 23. ANÁLISIS DE MALWARE QUE IMPLEMENTA TÉCNICAS DE OFUSCACIÓN DE FLUJO DE EJECUCIÓN
23.1 INTRODUCCIÓN
23.2 PUNTEROS A FUNCIONES
23.3 EXPLOTACIÓN DE LA INSTRUCCIÓN CALL
23.4 EXPLOTACIÓN DEL PUNTERO DE RETORNO
23.5 EXPLOTACIÓN DE SEH
CAPÍTULO 24. ANÁLISIS DE MALWARE QUE IMPLEMENTA TÉCNICAS ANTIDEPURACIÓN
24.1 INTRODUCCIÓN
24.2 DETECCIÓN DE ENTORNOS DE DEPURACIÓN
24.3 TÉCNICAS BASADAS EN LLAMADAS A LA API DE MICROSOFT WINDOWS
24.3.1 Introducción
24.3.2 Comprobación manual de la bandera BeingDebugged.
24.3.3 Comprobación de la bandera ProcessHeap
24.3.4 Comprobación de la bandera NtGlobalFlag.
24.3.5 Comprobación de rastros de depuración en el sistemA
24.3.6 Otras medidas anti-antidepuracióN
24.4 IDENTIFICANDO EL COMPORTAMIENTO DEL DEPURADOR
24.4.1 Introducción
24.4.2 INT scanning
24.4.3 Cálculo de checksums del código
24.4.4 Comprobaciones de paso del tiempo
24.4.5 Empleo de la Instrucción RDTSC
24.4.6 Empleo de las funciones QueryPerformanceCounter y GetTickCount.
24.5 INTERFIRIENDO EL FUNCIONAMIENTO DEL DEPURADOR
24.5.1 Introducción
24.5.2 TLS callbacks
24.5.3 Empleo de excepciones
24.5.4 Inserción de interrupciones
24.5.5 Inserción de la interrupción INT 3
24.5.6 Inserción de la interrupción INT 2D.
24.5.7 Inserción de ICE
24.6 VULNERABILIDADES EXISTENTES EN LOS DEPURADORES
CAPÍTULO 25. ANALIZANDO MUESTRAS
PROGRAMADAS EN .NET
25.1 INTRODUCCIÓN
25.2 INTRODUCCIÓN A .NET.
25.2.1 Generalidades
25.2.2 Código gestionado
25.2.3 Lenguajes de programación .NET
25.2.4 CTS
25.3 EL LENGUAJE IL
25.3.1 Pila de evaluación
25.3.2 Registros de activacióN
25.3.3 Instrucciones IL
25.4 ENSAMBLADOS .NET
25.5 DECOMPILADORES
25.6 PROTECCIÓN DE CÓDIGO EN .NET
25.7 OFUSCADORES EN .NET.
25.8 EMPAQUETADORES EN .NET
25.8.1 Renombramiento de símbolos
25.8.2 Ocultación de código CIL
25.8.3 Técnicas exclusivas de .NET.
25.9 ANÁLISIS DE MUESTRAS MALICIOSAS EN .NET.
25.10 INGENIERÍA INVERSA DE CÓDIGO OFUSCADO
25.10.1 API
25.10.2 Cadenas de usuario
25.10.3 LoadAssembly.
CAPÍTULO 26. COMPRENDIENDO LOS CIBERATAQUES
26.1 AGENTES DE LA AMENAZA
26.1.1 Cibercriminales
26.1.2 Hacktivistas
26.1.3 Atacantes con apoyo estatal.
26.1.4 La amenaza interna (insider threat)
26.1.5 Otras posibles clasificaciones
26.2 CATEGORIZACIÓN DE LA CIBERAMENAZA
26.3 DEFENSA DE RED BASADA EN INTELIGENCIA
26.4 PASOS PARA LA EJECUCIÓN DE UN CIBERATAQUE (CYBER KILL CHAIN)
26.4.1 Reconocimiento (Reconnaissance)
26.4.2 Preparación de la operación (Weaponize)
26.4.3 Envío (Deliver)
26.4.4 Explotación (Exploit)
26.4.5 Instalación en la víctima (Installation)
26.4.6 Control remoto del malware (Command and Control)
26.4.7 Acciones sobre los objetivos (Actions on objectives)
26.5 CURSOS DE ACCIÓN
26.6 RECONSTRUCCIÓN DE UNA INTRUSIÓN
26.7 ANÁLISIS DE CAMPAÑA
26.8 MODELO EN DIAMANTE DE ANÁLISIS DE INTRUSIÓN
26.9 MODELO ATT&CK; FOR ENTERPRISE
26.10 MODELO DE FIREEYE PARA EL CICLO DE VIDA DE UN CIBERATAQUE
2024 © Vuestros Libros Siglo XXI | Desarrollo Web Factor Ideas