1. Contexto
Después de generar y normalizar los logs, el siguiente paso en un sistema SIEM es el análisis. En esta etapa se realizan consultas sobre los datos para identificar comportamientos relevantes, tendencias y posibles anomalías.
En herramientas reales, esta etapa corresponde a búsquedas en motores como Log Analytics, Ariel o motores de correlación. En esta práctica, MATLAB será utilizado como motor de análisis de eventos.
2. Objetivo
Realizar consultas sobre los eventos normalizados para obtener métricas relevantes como usuarios más activos, IPs más frecuentes, distribución de eventos y detección de patrones básicos.
---3. Precondiciones
- Haber completado la Práctica 2.
- Contar con el archivo:
- logs_normalizados.mat
- Tener la variable tabla con los datos estructurados.
4. Conceptos clave
- Agregación: resumir datos mediante conteos o estadísticas.
- Frecuencia: número de veces que ocurre un evento.
- Top N: elementos más frecuentes en un conjunto.
- Indicador: métrica utilizada para análisis.
5. Desarrollo paso a paso
Paso 1: Cargar datos normalizados
load('../data/logs_normalizados.mat');
disp(tabla(1:10,:));
---
Paso 2: Conteo total de eventos
total_eventos = height(tabla);
fprintf('Total de eventos: %d\n', total_eventos);
---
Paso 3: Eventos por resultado
resumen_resultado = groupcounts(tabla, 'Resultado'); disp(resumen_resultado);---
Paso 4: Top usuarios
usuarios_top = groupcounts(tabla, 'Usuario'); usuarios_top = sortrows(usuarios_top, 'GroupCount', 'descend'); disp(usuarios_top(1:10,:));---
Paso 5: Top direcciones IP
ips_top = groupcounts(tabla, 'IP'); ips_top = sortrows(ips_top, 'GroupCount', 'descend'); disp(ips_top(1:10,:));---
Paso 6: Eventos por aplicación
apps = groupcounts(tabla, 'Aplicacion'); disp(apps);---
Paso 7: Filtrar eventos fallidos
fallidos = tabla(strcmp(tabla.Resultado, 'failure'), :);
fprintf('Eventos fallidos: %d\n', height(fallidos));
---
Paso 8: Identificar usuarios con más fallos
fallos_usuario = groupcounts(fallidos, 'Usuario'); fallos_usuario = sortrows(fallos_usuario, 'GroupCount', 'descend'); disp(fallos_usuario(1:10,:));---
6. Resultado esperado
El alumno debe ser capaz de generar indicadores clave del comportamiento de autenticación dentro del sistema.
- Total de eventos
- Distribución success vs failure
- Top usuarios
- Top IPs
- Usuarios con más fallos
7. Validación
- El script debe ejecutarse sin errores.
- Se deben obtener resultados coherentes.
- Las consultas deben reflejar correctamente los datos generados.
8. Preguntas de reflexión
- ¿Qué indicador consideras más relevante para detectar actividad sospechosa?
- ¿Un usuario con muchos eventos es necesariamente sospechoso? Justifica.
- ¿Qué significa que una IP tenga muchos eventos?
- ¿Qué diferencia existe entre analizar por usuario y por IP?
- ¿Qué limitaciones tiene este tipo de análisis básico?
9. Tarea (Teams)
Subir un PDF con:
- Captura de ejecución del análisis.
- Resultados de:
- Total de eventos
- Top usuarios
- Top IPs
- Identificación de:
- Usuario más activo
- IP más activa
- Usuario con más fallos
- Respuestas a preguntas de reflexión.
- Conclusión: ¿cómo se usaría este análisis en un entorno real?
10. Cierre
En esta práctica se han generado indicadores clave a partir de eventos normalizados. Este análisis representa la base para la detección de anomalías.
En la siguiente práctica se implementarán mecanismos de correlación para detectar comportamientos sospechosos como ataques de fuerza bruta o credential stuffing.