Security Telemetry & Detection Engineering
En esta semana vamos a transformar la infraestructura de red en una fuente de inteligencia de seguridad. Partimos de un alumno que ya domina redes y sistemas. Por tanto, no vamos a explicar qué es TCP, DNS, HTTP, routing o un firewall. Vamos a estudiar cómo capturar, normalizar, enriquecer, correlacionar y analizar esos datos para construir detecciones capaces de alimentar nuestro futuro AI Security Command Center.
Cómo trabajarás esta semana
No se trata de leer teoría y responder un test. Cada concepto seguirá una progresión que permita al alumno resolver los problemas incluso cuando no tenga la respuesta inmediatamente disponible.
Aprende
Practica
Pista
Resuelve
Profundiza
La misión de CYBER 02
Una organización puede generar millones de eventos de red cada día. El problema de seguridad moderno no es únicamente obtener esos eventos. Es convertirlos en señales accionables.
Traffic
Packet ↓ Flow ↓ Event ↓ Feature ↓ Detection ↓ Finding ↓ Risk ↓ Investigation
Objetivos técnicos
01 · Security Telemetry
Diseñar una arquitectura capaz de capturar las señales necesarias para investigar incidentes.
02 · Network Analytics
Extraer comportamiento útil de PCAP, flows, DNS, HTTP y TLS.
03 · Detection Engineering
Construir detecciones reproducibles y medibles.
04 · Feature Engineering
Convertir telemetría en variables utilizables por algoritmos estadísticos y ML.
05 · Behavioral Analytics
Construir baselines y detectar desviaciones.
06 · AI Security
Preparar la información para que posteriormente pueda ser analizada por modelos de IA.
01 · Security Telemetry Architecture
La primera pregunta no debe ser "¿qué modelo de IA utilizo?". Debe ser: ¿qué necesito observar?
Las cuatro capas de telemetría
Packet telemetry
Representa la observación más granular. Puede incluir:
- IP addresses
- ports
- protocols
- TCP flags
- packet size
- timestamps
- payload metadata
Flow telemetry
Agrega paquetes en conversaciones. Esto reduce volumen y proporciona una visión mucho más adecuada para analytics.
Application telemetry
Permite entender protocolos como: DNS, HTTP, TLS, SMTP, SSH, DHCP, etc.
Security telemetry
Incluye eventos generados por: IDS, IPS, firewalls, proxies, VPN, EDR, authentication systems y otros controles.
INTERNET
│
▼
┌────────────┐
│ TAP/SPAN │
└─────┬──────┘
│
┌────────┴────────┐
│ │
Zeek Suricata
│ │
└────────┬────────┘
│
▼
Event Pipeline
│
▼
Data Lake/SIEM
│
▼
Detection Layer
🧠 Ejercicio guiado
Una organización quiere detectar:
- DNS tunneling
- port scanning
- beaconing
- lateral movement
- data exfiltration
¿Qué fuentes de telemetría utilizarías?
✅ Ver solución razonada
Para DNS tunneling necesitaremos DNS query metadata. Para scanning necesitaremos observar: origen → múltiples destinos/puertos → ventana temporal. Para beaconing necesitamos timestamps, destinos y periodicidad. Para lateral movement necesitamos especialmente telemetría East-West. Para exfiltration necesitaremos volumen, dirección, destino, contexto del activo y, si es posible, información de aplicación.
Una arquitectura razonable sería combinar: Zeek + Suricata + firewall + DNS + identity + endpoint telemetry.
02 · PCAP → Security Evidence
Un PCAP no es una alerta. Es materia prima. Nuestro trabajo consiste en convertir esa materia prima en evidencias que puedan ser analizadas.
Del paquete al comportamiento
Un pipeline de análisis puede seguir este proceso:
La clave es que cada transformación debe responder a una pregunta de seguridad.
Host: 10.10.20.44 Connections: 10.10.20.1:53 10.10.20.5:445 10.10.20.6:445 10.10.20.7:445 10.10.20.8:445 10.10.20.9:445 10.10.20.10:445 Possible behavior: Multiple internal SMB destinations within a short time window. Potential signal: Lateral movement / discovery.
🧪 Practica
A partir de un PCAP de laboratorio autorizado, extrae:
- Hosts únicos
- Puertos únicos
- Protocolos
- Destinos principales
- Volumen por host
- Conexiones fallidas
- Conexiones periódicas
🛠️ Herramientas recomendadas
- Wireshark
- tshark
- tcpdump
- Zeek
- Python + pandas
03 · Zeek como Security Sensor
Por qué Zeek es importante
Zeek convierte tráfico de red en logs estructurados que pueden ser procesados posteriormente. Entre otros, podemos trabajar con:
- conn.log
- dns.log
- http.log
- ssl.log
- ssh.log
- files.log
Esto es extremadamente interesante para IA porque los datos ya están mucho más cerca de una representación estructurada del comportamiento.
ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto service duration orig_bytes resp_bytes conn_state
🧠 Ejercicio
Tenemos:
orig_h = 10.0.0.15 resp_h = 10.0.0.25 resp_p = 445 duration = 0.12 orig_bytes = 84 resp_bytes = 0 conn_state = S0
¿Qué hipótesis investigarías?
✅ Respuesta razonada
- mismo origen
- muchos destinos
- mismo puerto
- intervalo temporal corto
- muchas conexiones sin completar
- vulnerability scanners
- monitorización
- errores de configuración
- servicios legítimos
04 · Suricata y Rule-Based Detection
Deterministic Detection
Suricata permite incorporar detecciones basadas en reglas y generar eventos estructurados. La gran ventaja es la determinación:
Traffic │ ▼ Rule matching │ ├── match → alert │ └── no match → continue
Pero esta aproximación tiene una limitación: solo puede detectar aquello que hemos sabido definir.
🧪 Ejercicio
Diseña conceptualmente una detección para: "Un endpoint intenta conectarse a muchos puertos de múltiples servidores internos durante 30 segundos."
✅ Solución
unique_dst_ips unique_dst_ports connection_attempts failed_connections time_window connection_rateY producir una detección:
IF unique_dst_ips > threshold AND unique_dst_ports > threshold AND time_window < threshold THEN generate discovery/scanning signalDespués deberíamos añadir contexto: asset_role, scanner_authorization, historical_behavior, user, criticality.
05 · DNS Analytics
DNS es uno de los mejores ejemplos para aprender Detection Engineering porque podemos combinar señales estadísticas, temporales y contextuales.
Query length
Longitudes anormalmente elevadas pueden ser una señal.
Entropy
Una elevada aleatoriedad puede resultar interesante en determinados patrones.
NXDOMAIN
Un incremento puede indicar comportamientos anómalos dependiendo del contexto.
Subdomain diversity
Miles de subdominios únicos pueden requerir investigación.
dns_query_length dns_entropy dns_queries_per_minute nxdomain_ratio unique_subdomains domain_frequency domain_age first_seen last_seen
🧪 Caso práctico
Host: WS-1042 queries/min: 437 avg_length: 81 entropy: 4.93 NXDOMAIN ratio: 0.41 unique_subdomains: 1821 known_domain: NO
¿Generarías una alerta?
💡 Pista 2: Busca la combinación de señales.
💡 Pista 3: Compara contra el comportamiento histórico del endpoint.
✅ Respuesta razonada
Existe suficiente evidencia para elevar la prioridad de investigación. La combinación:
- alto volumen
- queries largas
- entropy elevada
- alto NXDOMAIN ratio
- gran cantidad de subdominios
- dominio desconocido
es compatible con comportamientos que merecen investigación. Pero todavía no podemos afirmar DNS tunneling. La siguiente fase debería correlacionar:
- proceso responsable
- usuario
- destino
- reputación
- historial
- otras conexiones del endpoint
🚀 Reto avanzado
score = 0.20 * entropy_score + 0.20 * length_score + 0.20 * frequency_score + 0.15 * nxdomain_score + 0.15 * rarity_score + 0.10 * baseline_deviationDespués analiza cómo cambia el resultado si eliminamos cada feature. Objetivo: determinar qué señales realmente aportan capacidad de detección.
06 · Beaconing Detection
Detectar periodicidad
Supongamos que un endpoint genera:
10:00:01 10:05:02 10:10:01 10:15:03 10:20:02 10:25:01
Los intervalos son aproximadamente:
301 299 302 299 299
La baja variabilidad es una señal interesante. Pero nuevamente: señal ≠ veredicto.
🧠 Ejercicio
Calcula conceptualmente:
- media
- mediana
- desviación estándar
- jitter
- coefficient of variation
✅ Solución conceptual
coefficient_of_variation = standard_deviation / meanCuanto menor sea el valor, mayor regularidad existe. Pero el sistema debe combinarlo con:
- destino
- reputación
- proceso
- usuario
- volumen
- baseline
07 · Network Scanning Detection
Un scanner legítimo y un atacante pueden producir patrones similares. Por eso este módulo es especialmente importante.
IF connections > 100 THEN ALERT
features: unique_dst_ips unique_dst_ports failed_connections connection_rate time_window protocol_distribution historical_frequency asset_role scanner_authorized
🧠 Pregunta
Un servidor de seguridad autorizado realiza 500 conexiones a diferentes puertos cada noche. Nuestro modelo genera una alerta HIGH. ¿Qué está fallando?
✅ Respuesta
08 · Behavioral Baselines
Para detectar anomalías debemos tener una representación del comportamiento esperado.
HOST: WS-1042 Typical hours: 08:00 - 19:00 Typical DNS: 300 queries/hour Typical external destinations: Microsoft Google GitHub Typical protocols: HTTPS DNS Typical upload: 50-400 MB/day Typical countries: ES DE NL
03:17 SSH connection to unknown external IP 2.4 GB upload Country: UNKNOWN Destination: never seen before Baseline deviation: HIGH
🧪 Ejercicio
¿Es necesariamente un ataque?
✅ Solución
- normal para un bastion host
- anómalo para un workstation
- esperado para un backup server
- crítico para un servidor sensible
09 · Feature Engineering
Convertir eventos en variables
Los modelos de ML no reciben directamente "un ataque". Reciben representaciones numéricas o categóricas del comportamiento.
| Categoría | Features | Uso |
|---|---|---|
| Temporal | hour, interval, frequency | Beaconing |
| Network | bytes, packets, ports | Volume / scanning |
| Behavior | first_seen, rarity | Anomaly |
| DNS | entropy, length, NXDOMAIN | Tunneling |
| Context | criticality, role | Risk |
| Threat Intel | reputation, IOC match | Enrichment |
🚀 Reto avanzado
Construye un feature vector para evaluar un endpoint.
{
"connection_rate": 142,
"unique_destinations": 38,
"unique_ports": 19,
"dns_entropy": 4.91,
"nxdomain_ratio": 0.34,
"beacon_periodicity": 0.91,
"rare_destination": 1,
"baseline_deviation": 0.84,
"asset_criticality": 0.80
}
Después define qué features deberían entrar en:
- Detection Score
- Risk Score
- LLM Investigation Context
10 · Detection ≠ Risk ≠ Verdict
Este concepto será fundamental durante todo el curso.
Detection Score
¿Qué grado de evidencia existe de que el comportamiento es anómalo o coincide con una técnica?
Risk Score
¿Qué impacto tendría si el comportamiento fuese malicioso?
Verdict
¿Tenemos suficiente evidencia para clasificar el incidente?
LLM Analysis
¿Cómo podemos ayudar al analista a investigar y explicar las evidencias?
Detection = 0.92
Risk = 0.35
porque el comportamiento es muy anómalo, pero pertenece a un scanner autorizado.
LAB 01 · Monta el laboratorio
Docker + Network Sensors
Construiremos un entorno controlado.
- Instala Docker.
- Crea una red aislada.
- Levanta un servidor web.
- Levanta un cliente.
- Genera tráfico HTTP.
- Genera consultas DNS.
- Genera conexiones repetitivas.
- Captura el tráfico.
- Procesa el tráfico con Zeek.
- Analiza los resultados.
docker network create cyberlab docker run -d \ --name web \ --network cyberlab \ nginx docker run -it \ --name client \ --network cyberlab \ ubuntu
✅ Resultado esperado
LAB 02 · DNS Anomaly Detector
Construye un detector estadístico
Crea un programa que reciba registros DNS y calcule las principales features.
import pandas as pd
df = pd.read_csv("dns.csv")
df["query_length"] = (
df["query"]
.str.len()
)
print(
df[
[
"query",
"query_length"
]
]
)
🧪 Primera iteración
Añade:
- query length
- queries per minute
- NXDOMAIN ratio
- unique subdomains
🚀 Reto avanzado
from collections import Counter
from math import log2
def entropy(value):
counts = Counter(value)
total = len(value)
return -sum(
(count/total) *
log2(count/total)
for count in counts.values()
)
Después compara la distribución de entropy
entre dominios normales y dominios anómalos.
LAB 03 · Beaconing Detector
Detecta conexiones periódicas
Construye una función que reciba timestamps y devuelva:
- mean interval
- standard deviation
- jitter
- coefficient of variation
- periodicity score
timestamps: 00:00 00:05 00:10 00:15 00:20 00:25
✅ Solución conceptual
timestamps
↓
seconds
↓
diff()
↓
intervals
↓
statistics
↓
periodicity score
Una periodicidad elevada puede ser una señal
de beaconing, pero no constituye por sí misma
un veredicto.
LAB 04 · Detection Fusion
Combina múltiples detecciones
Tenemos:
DNS anomaly 0.72 Beaconing 0.81 Rare destination 0.92 Threat Intel 1.00 Asset criticality 0.80 User anomaly 0.30
Construye un Risk Engine.
✅ Solución de referencia
risk = 0.20 * dns_anomaly + 0.20 * beaconing + 0.20 * rare_destination + 0.20 * threat_intel + 0.20 * asset_criticalityPero esta es solo una primera aproximación. Una arquitectura real debería estudiar:
- correlación entre features
- calibración
- historical outcomes
- false positives
- analyst feedback
11 · Mapping a MITRE ATT&CK
Las detecciones deben poder relacionarse con comportamientos y técnicas conocidas.
| Comportamiento | Posible técnica | Telemetría |
|---|---|---|
| Port scanning | Network Service Scanning | Flow / firewall / Zeek |
| Internal discovery | Remote System Discovery | East-West traffic |
| Service discovery | Network Service Discovery | Network telemetry |
🧠 Ejercicio
Para cada detección que hayas construido, documenta:
- Qué comportamiento detecta.
- Qué evidencia necesita.
- Qué features utiliza.
- Qué técnica ATT&CK puede relacionarse.
- Qué falsos positivos esperas.
- Qué contexto reduce el riesgo.
12 · Troubleshooting de Detection Engineering
Problema 01 · Demasiadas alertas
Tu detector genera: 85.000 alertas/día. El SOC no puede investigarlas. ¿Qué haces?
✅ Respuesta razonada
- distribution of scores
- false positive rate
- asset types
- authorized scanners
- scheduled jobs
- repeated alerts
- duplicate events
- agrupar eventos
- suprimir duplicados
- añadir contexto
- calibrar thresholds
- priorizar por risk
Problema 02 · El modelo deja de detectar
Hace tres meses el detector funcionaba muy bien. Ahora su rendimiento ha disminuido. ¿Qué investigarías?
✅ Respuesta
- concept drift
- data drift
- cambios de infraestructura
- nuevas aplicaciones
- nuevos patrones de usuarios
- cambios en DNS
- cambios en cloud
- cambios en políticas
13 · Knowledge Test
Intenta responder antes de abrir cada solución.
¿Por qué es importante normalizar la telemetría?
💡 Pista
✅ Respuesta
¿Es beaconing suficiente para afirmar C2?
💡 Pista
✅ Respuesta
¿Qué representa un baseline?
💡 Pista
✅ Respuesta
¿Qué diferencia Detection Score y Risk Score?
💡 Pista
✅ Respuesta
¿Qué es feature engineering?
💡 Pista
✅ Respuesta
¿Qué problema tiene un threshold fijo?
💡 Pista
✅ Respuesta
¿Por qué combinar reglas y ML?
💡 Pista
✅ Respuesta
¿Qué problema puede aparecer si el comportamiento normal cambia?
💡 Pista
✅ Respuesta
14 · Expert Assessment
Caso 01 · 10.000 alertas de scanning
Tienes una red corporativa. Un detector genera:
10.000 alerts/day False positives: ~82% Top source: Vulnerability Scanner Top destination: Internal servers
Diseña una estrategia para reducir el ruido sin perder cobertura.
💡 Pista
✅ Solución de referencia
- Identificar scanners autorizados.
- Crear asset identity.
- Añadir scanner_authorized como contexto.
- Mantener la detección.
- Reducir risk score cuando el origen está autorizado.
- Mantener detección alta si aparecen otros indicadores.
Caso 02 · ¿Regla, ML o LLM?
Asigna cada problema a la tecnología más adecuada:
| Problema | Solución |
|---|---|
| IOC conocido | ? |
| Periodicidad anómala | ? |
| Correlación de 15 eventos | ? |
| Explicar un incidente al analista | ? |
💡 Pista
✅ Solución
- IOC conocido: rule / threat intelligence
- Periodicidad: statistical / ML
- Correlación: detection/risk engine
- Explicación: LLM
15 · Preparando la IA
Ahora que tenemos detecciones estructuradas, podemos empezar a pensar en IA. La IA no debería recibir millones de eventos sin procesar. Debe recibir contexto.
Asset: WS-1042 User: employee-42 Asset criticality: HIGH Detection: DNS anomaly Detection score: 0.91 Signals: - high entropy - high query volume - rare domain - periodic behavior Threat intelligence: unknown Historical baseline: strong deviation Related network events: 3 Related endpoint events: 2
- resumir evidencias
- correlacionar señales
- generar hipótesis
- proponer preguntas de investigación
- explicar por qué una alerta es relevante
Tu primer Detection Pipeline
Al finalizar CYBER 02 debes tener una primera versión funcional del pipeline que posteriormente se integrará en el AI Security Command Center.
NETWORK
│
┌─────────┴─────────┐
│ │
ZEEK SURICATA
│ │
└─────────┬─────────┘
│
NORMALIZATION
│
ENRICHMENT
│
FEATURE ENGINE
│
┌───────────┴───────────┐
│ │
RULE DETECTION ANOMALY MODEL
│ │
└───────────┬───────────┘
│
CORRELATION
│
RISK ENGINE
│
SECURITY EVENT
│
AI COMMAND
CENTER
Entregables
{
"asset": "WS-1042",
"detection": {
"type": "dns_anomaly",
"score": 0.91
},
"signals": [
"high_entropy",
"rare_domain",
"high_query_rate",
"periodic_behavior"
],
"context": {
"asset_criticality": 0.80,
"baseline_deviation": 0.87
},
"risk_score": 0.89,
"priority": "HIGH",
"mitre": [
"Command and Control"
],
"recommended_investigation": [
"identify originating process",
"check endpoint telemetry",
"investigate destination",
"review historical DNS activity"
]
}
Network + Endpoint + Identity + Cloud + Threat Intelligence + AI