
Un conjunto personal de suite de SOC para Windows construido en PowerShell — monitorea conexiones de red, uso de recursos, tareas programadas y eventos de energía con clasificación de severidad y detección de línea base.
Un Centro de Operaciones de Seguridad (SOC) personal construido desde cero durante un programa de reentrenamiento en Anwendungsentwicklung. Esta suite monitorea un endpoint Windows en busca de anomalías de red, picos de recursos, ejecución de procesos, cambios en el registro, actividad del Registro de Eventos de Seguridad, cambios en tareas programadas, consultas DNS y eventos de energía, registrando todo en archivos estructurados para análisis semanal y correlación a través de un motor Python.

Panel de control Flask de una sola página. Los 12 recolectores + motor de correlación activos, monitor de recursos en vivo, feed de conexiones salientes, fichas de eventos de recolectores y alertas del motor en streaming.
Construida como un proyecto de aprendizaje práctico junto con un reentrenamiento formal en TI, esta suite aplica conceptos reales de SOC — recopilación de línea base, detección de anomalías, clasificación de severidad, agregación de registros y correlación entre fuentes — a una máquina Windows personal. El proceso de diseño fue adversarial desde el principio: cada fase fue sometida a pruebas de estrés contra un análisis de equipo rojo antes de construir la siguiente, con 48 reglas de correlación definidas a partir de esos hallazgos que impulsaron la arquitectura del motor Python.
El desarrollo se sigue en roadmap.md — estado actual, planes de la Fase 9 del Motor Forense y objetivos de endurecimiento a largo plazo.
El panel de control se ejecuta como un servidor Flask y requiere elevación de Administrador para la detección de procesos del recolector. Cree un acceso directo después de clonar:
Reemplaza C:\path\to\SOC con tu ruta de instalación real.
3. Nómbralo: SOC Dashboard
4. Haz clic derecho en el acceso directo → Propiedades → Avanzadas → marca Ejecutar como administrador
5. Haz clic en Aceptar
El acceso directo inicia Flask, espera a que esté listo, luego abre el navegador automáticamente. Si Flask ya se está ejecutando, omite el inicio y abre el navegador directamente. Los puntos de estado se mostrarán grises si el acceso directo se ejecuta sin elevación de Administrador.
El panel impone una secuencia ordenada de inicio/parada para que los límites del Auditor (verificación de integridad matutina, validación de cadena hash vespertina) siempre se ejecuten en orden.

Todos los latidos de los recolectores están en rojo (archivos de estado faltantes o detenidos). El botón Apagar Panel está oculto — el panel no permitirá el apagado hasta que se haya ejecutado Fin de Día.

Iniciar Día ejecuta el límite matutino del Auditor (verificación de registros SHA256, validación de cadena hash de archivo) y lanza los 12 recolectores más el motor de correlación. Los latidos se vuelven verdes a medida que cada recolector reporta.

Fin de Día detiene todos los recolectores en secuencia y ejecuta el límite vespertino del Auditor. Los puntos de los recolectores permanecen verdes mientras se ejecuta la secuencia; la línea de estado muestra Ejecutando Auditor Vespertino…

Una vez que la auditoría vespertina se completa, todos los puntos de los recolectores se vuelven rojos, la línea de estado muestra Auditoría vespertina completa. Seguro para apagar., y aparece el botón Apagar Panel — al hacer clic, termina limpiamente el proceso de Flask.

La pestaña del navegador debe cerrarse manualmente (los navegadores no exponen una API de cierre a procesos externos).
Los paneles de eventos del recolector muestran los eventos etiquetados por severidad más recientes por fuente. El feed de Alertas del Motor transmite hallazgos correlacionados del motor Python en tiempo real, con número de regla, puntuación de confianza, cadena de evidencia completa y hash SHA256 de la evidencia.

Ejemplo: Regla 35 (Lectura de Disco en Bruto) activándose en powershell.exe
abriendo un identificador en bruto a \Device\HarddiskVolume3, y Regla 31
(Anomalía de Carga de DLL) marcando DLLs de Defender cargándose desde una ruta
escribible por usuario. Ambos con procedencia completa del proceso y hashes de
archivos.
La suite sigue una arquitectura de tres capas:
Capa de Recolección — Recolectores PowerShell que se ejecutan continuamente en segundo plano, cada uno monitoreando una fuente de datos específica y escribiendo entradas de registro estructuradas y etiquetadas con severidad. Todos requieren elevación de Administrador.
Capa de Análisis — Scripts analistas PowerShell que analizan los registros recolectados y generan informes de resumen semanales. Se ejecutan como usuario estándar.
Motor de Correlación (Fase 7 — completa) — Motor Python que ingiere todos los registros de los recolectores, normaliza eventos a un esquema común, y ejecuta correlación basada en reglas y puntuación de riesgo en todos los flujos de datos. Tres programas:
| Programa | Fase | Rol |
|---|---|---|
| Correlation Engine | 7 — complete | Ingerir, normalizar, correlacionar, alertar (almacén operativo SQLite) |
| SOC Dashboard | 8 — complete | Visibilidad en vivo — salud del recolector, alertas, cadenas de evidencia (Flask) |
| Forensic Engine | 9 — planned | Investigación post-evento — super líneas de tiempo, linaje de procesos, análisis de balizas, auditorías de persistencia, banco de datos de evidencia de solo añadidura |
| Forensic Dashboard | 9 — planned | Conclusiones forenses resumidas — estado codificado por color, generación de informes, navegación de evidencia |
| Fase | Script | Apodo | Función |
|---|---|---|---|
| 1 | Sentinel.ps1 | Network Watchdog | Conexiones TCP salientes con geolocalización, verificación de ruta de proceso y seguimiento de transferencia acumulativa |
| 1 | Bulwark.ps1 | Night's Watch | Puertos de escucha entrantes — comparación de línea base, detección de puertos nuevos/cerrados, anomalías de geolocalización |
| 1 | Steward.ps1 | Quartermaster | CPU, RAM y E/S de disco por proceso usando contadores de rendimiento de Windows con detección automática de 8 idiomas |
| 1 | CityGuard.ps1 | City Guard | Adiciones, eliminaciones y modificaciones de tareas programadas — detección de cambios en acción y desencadenante |
| 1 | Watchman.ps1 | Watchman | Eventos de energía — arranque, suspensión, despertar, apagado inesperado y actividad fuera del horario laboral |
| 2A | Registry_Warden.ps1 | — | Claves de ejecución del Registro, RunOnce, línea base y comparación de Servicios, verificación de integridad RID de SAM |
| 2B | Harbinger.ps1 | — | Monitor de creación de procesos basado en eventos WMI/CIM — detección de rutas de alto riesgo, seguimiento de proceso padre |
| 3 | Bloodhound.ps1 | — | Monitor de consultas DNS — detección de DGA mediante entropía Shannon, marcado de registros TXT, detección de picos de volumen ICMP |
| 4 | Warden.ps1 | — | Vigilante de la suite — FIM de scripts SHA256, regresión de tamaño de registros, salud del recolector, bandera de mantenimiento, tarea programada de autovigilancia |
| 5 | SecEventLog.ps1 | — | Registro de eventos de seguridad de Windows — anomalías de inicio de sesión, manipulación de cuentas, escalada de privilegios, instalación de servicios, detección de fuerza bruta |
| 6 | DoH_Detector.ps1 | — | Detector de evasión de DNS sobre HTTPS — conexiones TCP a 28 IPs de resolvedores DoH conocidos desde procesos no permitidos |
| 7 | SysmonWatcher.ps1 | — | Monitor de eventos a nivel de kernel de Sysmon — inyección de procesos, acceso a LSASS, lecturas de disco en bruto, cargas de controladores no firmados, persistencia WMI y adjunto de depurador de navegador (22 IDs de evento) |
| Script | Apodo | Función |
|---|---|---|
| Investigator.ps1 | Audit Reporter | Análisis semanal de registros de conexiones salientes de Sentinel |
| Crow.ps1 | Lord Commander | Análisis semanal de registros de puertos entrantes de Bulwark |
| Ledger.ps1 | Maester | Análisis semanal de registros de recursos de Steward con detección de tendencias de RAM |
| Castellan.ps1 | Castellan | Análisis semanal de registros de tareas programadas de CityGuard |
| Auditor.ps1 | — | Auditoría de integridad de límites matutino/vespertino — verificación de registros SHA256, validación de cadena hash de archivo |
Definidas mediante análisis de equipo rojo de múltiples rondas (ver Documentación). Implementadas en la Fase 7.
| # | Regla | Severidad | Fuentes |
|---|---|---|---|
| 1 | Data Exfiltration Suspected | HIGH | Steward + Sentinel |
| 2 | C2 Beacon Suspected | HIGH | Sentinel + Bulwark |
| 3 | Persistence + C2 Callback | CRITICAL | CityGuard + Sentinel |
| 4 | After Hours Intrusion | CRITICAL | Watchman + Sentinel |
| 5 | Data Staging | HIGH | Bulwark + Steward |
| 6 | LOLBin Network Activity | CRITICAL | Sentinel |
| 7 | Process Hollowing Suspected | CRITICAL | Harbinger + Sentinel |
| 8 | DoH Evasion Suspected | CRITICAL | DoH_Detector |
| 9 | WMI Persistence Suspected | HIGH | Harbinger + CityGuard |
| 10 | Account Manipulation | CRITICAL | SecEventLog |
| 11 | Burst Exfiltration Pattern | HIGH | Sentinel |
| 12 | Sub-Threshold Persistent Process | SUSPICIOUS | Sentinel + Steward |
| 13 | Initial Access Suspected | CRITICAL | Harbinger + Sentinel |
| 14 | Trusted Binary Anomaly | SUSP→CRIT | Sentinel |
| 15 | Statistical Jitter Detector | HIGH | Sentinel |
| 16 | Contextual Integrity Violation | CRITICAL | Harbinger + Sentinel |
| 17 | Identity / RID Hijack | CRITICAL | Registry_Warden + SecEventLog |
| 18 | Correlation Engine Health | MEDIUM | Python Core |
| 19 | Self-Protection / Script FIM | CRITICAL | Warden |
| 20 | Statistical Temporal Drift | MEDIUM | Steward + Sentinel |
| 21 | Interpreter Lockdown / BYOI | HIGH | Harbinger |
| 22 | Cloud API Anomaly | HIGH | Sentinel |
| 23 |
Todos los recolectores utilizan un sistema de severidad consistente de cuatro niveles:
| Nivel | Color | Significado |
|---|---|---|
| OK | Green | Coincide con la línea base conocida, no se necesita acción |
| UNKNOWN | Yellow | Aún no establecido como línea base, monitorear patrones |
| SUSPICIOUS | DarkYellow | Anomalía detectada, investigar |
| CRITICAL | Red | Umbral superado, revisión inmediata |
Todos los registros siguen un formato consistente para la compatibilidad con el analizador Python:``` [yyyy-MM-dd HH:mm:ss] [SEVERITY] Event details
**Estructura del repositorio:**```
home_SOC_suite/
├── Analysts/ — PowerShell analyst scripts
├── Collectors/ — PowerShell collector scripts
├── Dashboard/ — Flask single-page SOC dashboard (Phase 8)
│ ├── app.py — Flask server, all routes, process detection, DB reads
│ ├── Launch_Dashboard.ps1 — Launcher: checks if Flask running, starts it, opens browser
│ ├── templates/
│ │ └── index.html — Single-page dashboard layout
│ └── static/
│ ├── style.css — Dark terminal aesthetic, severity colours, bar graph tiers
│ └── dashboard.js — All polling, Start Day / End Day sequence, session alert counter
├── Engine/ — Python correlation engine
│ ├── engine.py — Main loop and orchestration
│ ├── log_parser.py — Collector log ingestion
│ ├── normalizer.py — Event normalisation to canonical schema
│ ├── correlator.py — Correlation rules engine
│ ├── alert_manager.py — Alert deduplication, flood detection, log writing
│ ├── db.py — SQLite operations (batch ingest, query, retention)
│ ├── health_db.py — Heartbeat SQLite store (collector_status, heartbeats tables)
│ ├── config.py — All thresholds and time windows in one place
│ ├── test_parser.py — Log parser test suite (7 tests)
│ ├── test_normalizer.py — Normaliser test suite (32 tests)
│ └── test_correlator.py — Correlator test suite (135 tests)
└── Documentation/ — Research documents, red team analysis, and dashboard screenshots
Generado en tiempo de ejecución (no rastreado en el repositorio):``` Logs/ — Active collector log files │ └── Archives/ — 7-day rotated log archives Reports/ — Weekly analyst report output Config/ — Baseline JSON files and Sysmon config Engine/hocsoc.db — SQLite operational database Engine/hocsoc_health.db — Heartbeat and collector status store (engine correlation use only)
---
## Idiomas del sistema operativo compatibles
Steward detecta automáticamente la ruta correcta del contador de rendimiento de la CPU para los siguientes idiomas del sistema operativo:
| Idioma | Ruta del contador |
|---|---|
| Inglés | \Process(*)\% Processor Time |
| Alemán | \Prozess(*)\Prozessorzeit (%) |
| Francés | \Processus(*)\% temps processeur |
| Español | \Proceso(*)\% de tiempo de procesador |
| Italiano | \Processo(*)\% Tempo processore |
| Portugués | \Processo(*)\% de Tempo do Processador |
| Ruso | \Процесс(*)\% загруженности процессора |
| Chino (Simpl.) | \Process(*)\% Processor Time (normalmente inglés) |
Para agregar soporte para otro idioma, añade la ruta del contador localizada a la matriz `$PathsToTry` en la función `Get-WorkingCounterPath` de `Steward.ps1`.
---
## Documentación e investigación
La carpeta `Documentation/` contiene el registro completo de investigación y planificación que impulsó el diseño de este conjunto. El conjunto se construyó de forma adversarial — cada capa fue planificada contra un modelo de amenazas antes de ser construida, y sometida a pruebas de estrés mediante un análisis de equipo rojo antes de iniciar la siguiente capa.
| Documento | Propósito |
|---|---|
| `home_soc_pre_coding_architecture_guide.pdf` | Marco de decisión previo a la implementación. Modelo de datos canónico, modelo de confianza, ciclo de vida base, estrategia de pruebas y oportunidades de validación entre recolectores. Escrito antes de escribir una sola línea de código. |
| `Home_Soc_Architecture_And_Engine_Design.pdf` | Especificación de la arquitectura objetivo. Diseño del motor Python de tres programas, esquema SQLite, modelo de detección híbrido (reglas deterministas + puntuación de riesgo), lógica de promoción de alertas. |
| `HomSOC_Implementation_Guide.pdf` | Plan de construcción por fases. Código esqueleto para todos los recolectores, cronograma de trabajo semanal, patrones de referencia rápidos de PowerShell. El manual de construcción para la capa de PowerShell. |
| `RedTeam_Analysis_HomSOC_Final.pdf` | Referencia principal del equipo rojo. 11 rondas adversariales (Claude + Gemini + simulaciones de engagement en vivo), las 26 reglas de correlación con lógica de detección completa, hallazgos de bypass y mitigaciones aplicadas a la construcción. |
| `Home_SOC_Red_Team_Analysis_Pro.pdf` | Equipo rojo arquitectónico. 11 escenarios de ataque dirigidos a debilidades estructurales: envenenamiento de línea base, evasión de correlación, inundación de ruido, supresión de recolectores, manipulación de archivos, inyección de registros, ataques de repetición y abuso de identidad. |
| `Home_SOC_Red_Team_Whitepaper.pdf` | Resumen ejecutivo. Tabla completa de escenarios de ataque, comparación de sistemas (línea base vs. endurecido), mejoras arquitectónicas clave y visión general del diseño del modelo de detección. |
---
## Características clave
- **Diseño adversarial** — 48 reglas de correlación definidas mediante análisis de equipo rojo en múltiples rondas antes de construir el motor Python. La lógica de detección se fundamenta en cadenas de ataque reales, no en escenarios hipotéticos
- **Recopilación de línea base conductual** — todos los recolectores construyen líneas base a lo largo del tiempo, lo que permite la detección de anomalías en relación con lo normal observado en lugar de reglas estáticas
- **Monitoreo de geolocalización** — conexiones salientes, conexiones entrantes, IPs de origen de autenticación y conexiones DoH rastreadas por país con alerta TELEMETRY_GAP en fallos de geo
- **Huella digital de procesos** — cada evento de red, puerto, proceso y autenticación se registra con la ruta completa del proceso, detectando suplantación y ataques LOLBin
- **Autoprotección del conjunto** — Warden monitorea todos los scripts y configuraciones mediante SHA256 FIM con una cadena de protección de tres capas: integridad del manifiesto, tarea programada externa y monitoreo de tareas de CityGuard
- **Lista blanca de confianza cero** — todas las listas blancas comienzan vacías. Se requiere una recopilación de línea base de 30 días antes de conceder cualquier excepción
- **Registro etiquetado por severidad** — entradas de registro estructuradas diseñadas para compatibilidad con el analizador Python y futura integración con SIEM
- **Rotación de registros a 7 días** — archivado automático con verificación SHA256 y comprobaciones de integridad de la cadena de hash del archivo en los momentos de inicio/fin del día mediante Auditor.ps1
- **Compatibilidad con múltiples idiomas de Windows** — rutas de contadores de rendimiento detectadas automáticamente en 8 idiomas del sistema operativo al inicio
- **Panel SOC de una sola página** — visibilidad en vivo basada en Flask que reemplaza todas las ventanas individuales de PowerShell. Incluye lanzador del conjunto (Iniciar día / Finalizar día), monitor de recursos en vivo de Steward, feed de conexiones de Sentinel, puntos de estado de tres colores (verde activo / ámbar no iniciado / rojo caído — leídos directamente de los archivos JSON de estado de los recolectores, independientes del estado del motor), tarjetas de eventos SOSPECHOSO/CRÍTICO, feed de alertas del motor desplazable, contador de alertas de sesión y generación de informes semanales con un clic. Finalizar día detiene todos los recolectores y ejecuta el cierre del día del Auditor vespertino — luego aparece un botón de Apagar panel que finaliza limpiamente el proceso Flask. La pestaña del navegador debe cerrarse manualmente (los navegadores no exponen una API de cierre a procesos externos)
---
## Estado actual — Fase 8 completa
El motor de correlación Python está construido y ejecutándose en vivo contra los 12 recolectores, incluido SysmonWatcher (eventos a nivel de kernel de Sysmon).
**Pipeline del motor:**
`log_parser.py` → `normalizer.py` → `correlator.py` → `alert_manager.py`
Todos los pasos de ingesta, normalización y correlación utilizan transacciones SQLite por lotes.
174 pruebas en tres suites de pruebas — todas pasan.
**Reglas implementadas:** 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 16, 17, 18, 21, 22, 41, 42,
43, 44, 45, 46, 47, 48 (correlación de evento único Nivel 1 y ventana Nivel 2) y Reglas 28–39
(eventos de kernel de Sysmon mediante SysmonWatcher). Reglas 12, 14, 15, 20 diferidas al Nivel 4
(requieren datos de línea base de 30 días). Reglas 23, 24, 25 bloqueadas hasta contar con recolectores especializados.
**Modelo de detección:** Híbrido — reglas deterministas para cadenas de ataque claras,
puntuación de riesgo para señales débiles acumulativas, alertas de visibilidad para silencio
de recolector y degradación de la calidad de ingesta.
**Próximas fases:**
| Fase | Programa | Estado |
|---|---|---|
| 8 | Panel SOC — visibilidad en vivo de una sola página con Flask | Completa |
| 9 | Motor Forense — investigación posterior al evento, banco de datos de pruebas de solo añadido | Planeada |
| 9 | Panel Forense — hallazgos resumidos, generación de informes, navegación de pruebas | Planeada |
Ver [`roadmap.md`](https://github.com/nate-ryan-7690/home_soc_suite/blob/main/roadmap.md) para la cronología de desarrollo completa.
---
## Alertas ruidosas conocidas — Antes del endurecimiento
En una instalación nueva, varios tipos de alerta se dispararán regularmente hasta que se aplique el endurecimiento específico de la máquina. Esto es esperado y no representa detecciones reales.
| Recolector | Alerta | Causa |
|---|---|---|
| Sentinel | violación ambiental CRÍTICA | Cualquier software de terceros instalado fuera de las rutas de zona de confianza predeterminadas (Windows, Program Files) — clientes de sincronización en la nube, aplicaciones de comunicación y utilidades de proveedores que se instalan en AppData son fuentes comunes |
| Sentinel | TELEMETRY_GAP SOSPECHOSO | Las direcciones de loopback IPv6 y link-local fallan en la búsqueda de geolocalización — corregido en la compilación actual |
| SysmonWatcher | SOSPECHOSO/CRÍTICO en Reglas 31, 33, 34 | El software antivirus y de seguridad de endpoints realiza regularmente lecturas de LSASS, lecturas de disco sin formato y carga DLLs desde rutas escribibles por el usuario como parte de su operación normal |
| SysmonWatcher | SOSPECHOSO en Regla 28 | Las herramientas de desarrollo que se adjuntan a procesos del navegador para depuración activarán la regla de adjuntar depurador al navegador |
| Bulwark | Fallos de GeoIP SOSPECHOSOS | Las conexiones en rangos de IP privadas y reservadas no pueden ser geolocalizadas — producen TELEMETRY_GAP hasta que se incluyan en la lista blanca |
| Bloodhound | Detección de DGA SOSPECHOSA | Las consultas DNS de corta duración o con bajo número de muestras activan comprobaciones de entropía antes de que la línea base continua se estabilice |
| Warden | MANIFEST_MISSING SOSPECHOSO | No existe un manifiesto FIM en la primera ejecución — construir con `.\Warden.ps1 -BuildManifest` después de la configuración inicial |
| Warden | COLLECTOR_DOWN SOSPECHOSO | Los recolectores aún no implementados no tienen archivo de latido — se espera hasta que el conjunto completo esté en ejecución |
| DoH_Detector | CRÍTICO para DoH del navegador | Los navegadores configurados para usar DNS-over-HTTPS se dispararán hasta que se agreguen a la lista de procesos permitidos |
El endurecimiento específico de la máquina (listas de procesos confiables, listas blancas de rutas, entradas conocidas seguras) se aplica localmente y no se incluye en este repositorio.
---
## Notas
- Establecer `$RootPath` en cada script en la carpeta donde instalaste el SOC Suite.
Por defecto es `Desktop\SOC`
- Los scripts requieren que la política de ejecución de PowerShell esté configurada en Bypass
- Los scripts de recolectores requieren elevación de Administrador para visibilidad completa del sistema
- Los scripts de analista se ejecutan como usuario estándar
- La geolocalización es proporcionada por el nivel gratuito de ip-api.com
- El registro de eventos del cliente DNS debe estar habilitado antes de ejecutar Bloodhound.ps1:
`wevtutil sl "Microsoft-Windows-DNS-Client/Operational" /e:true`
---
## Contexto de aprendizaje
Construido durante el reciclaje de Fachinformatiker Anwendungsentwicklung, Alemania 2026.
Apuntando a una carrera en ciberdefensa e inteligencia de amenazas.
Construido con asistencia de IA como herramienta de aprendizaje. Cada decisión de diseño,
sesión de depuración y elección arquitectónica fue impulsada por el desarrollador con plena
comprensión de los conceptos subyacentes.
| HID Injection Detector |
| CRITICAL |
| WMI Device Events |
| 24 | Evil Twin / WiFi Ghost | CRITICAL | Network Monitor |
| 25 | Focus Thief / Window Hijack | HIGH | Win32 API |
| 26 | Visit Integrity Check | HIGH | All collectors |
| 27 | Delayed Initial Access | CRITICAL | Harbinger + Sentinel (SQLite watchlist) |
| 28 | Browser Debugger Attachment | CRITICAL | SysmonWatcher (Event ID 10) |
| 29 | Kernel Process Injection | CRITICAL | SysmonWatcher (Event ID 8) |
| 30 | Unsigned Driver Load | CRITICAL | SysmonWatcher (Event ID 6) |
| 31 | Suspicious Image Load | SUSPICIOUS | SysmonWatcher (Event ID 7) |
| 32 | WMI Subscription Binding | CRITICAL | SysmonWatcher (Event IDs 19/20/21) |
| 33 | LSASS Access Suspected | CRITICAL | SysmonWatcher (Event ID 10) |
| 34 | Raw Disk Read | CRITICAL | SysmonWatcher (Event ID 9) |
| 35 | Executable File Created | SUSPICIOUS | SysmonWatcher (Event ID 11) |
| 36 | AMSI Provider Tampered | CRITICAL | SysmonWatcher (Event ID 12) |
| 37 | Named Pipe Suspicious | SUSPICIOUS | SysmonWatcher (Event IDs 17/18) |
| 38 | Downloaded Executable | HIGH | SysmonWatcher (Event ID 15) |
| 39 | Process Hollowing Confirmed | CRITICAL | SysmonWatcher (Event ID 25) |
| 40 | Persistent Sub-Threshold CPU Load | SUSPICIOUS | Steward + Sentinel |
| 41 | Blind Window Exploitation | HIGH/CRITICAL | Python Engine (collector DOWN + concurrent events) |
| 42 | Coordinated Collector Suppression | CRITICAL | Python Engine (≥2 collectors simultaneously DOWN) |
| 43 | Unexpected Scripting Engine Spawn | SUSPICIOUS | Harbinger (known-bad parent → scripting engine) |
| 44 | Script from High-Risk Path | HIGH | Harbinger (43 + engine binary in user-writable path) |
| 45 | Scripting Engine Network Callback | CRITICAL | Harbinger + Sentinel (43 + outbound connection) |
| 46 | Full Supply-Chain Execution Chain | CRITICAL | Harbinger + Sentinel (bad parent + drop + callback) |
| 47 | Obfuscated / Encoded Execution | HIGH | Harbinger (-EncodedCommand / Hidden+Bypass combination) |
| 48 | Known-Bad Parent-Child Pair | CRITICAL | Harbinger (specific high-confidence pairs, zero legitimate use) |