Volver al inicio

Detección de Anomalías en Series Temporales ML

El artículo analiza tres enfoques ML para detección de anomalías en registros de almacenamiento de archivos: Isolation Forest para aislamiento de valores atípicos, CatBoost para pronóstico y autoencoder para reconstrucción. Incluye código, características, métricas. Adecuado para integración en SIEM.

ML contra anomalías: tres algoritmos para registros
Advertisement 728x90

Detección de anomalías en registros de almacenamiento de archivos: Isolation Forest, CatBoost y Autoencoder

El aprendizaje automático identifica eficazmente amenazas en los registros de almacenamiento de archivos, donde se registran millones de operaciones de lectura, escritura y eliminación diariamente. Tres algoritmos—Isolation Forest, CatBoost y autoencoder—analizan series temporales multidimensionales de actividad de usuario, distinguiendo el comportamiento normal de patrones sospechosos sin datos etiquetados.

Los datos se agregan en intervalos de tiempo: para cada intervalo, se cuenta la intensidad de operaciones por tipo. Esto resulta en un vector de características donde las desviaciones señalan copias internas o cifrado masivo.

Isolation Forest: Aislando anomalías con aleatoriedad

Isolation Forest construye un conjunto de árboles con divisiones aleatorias de características. Las anomalías se aíslan más rápido porque sus características difieren significativamente de la mayoría. El algoritmo no es supervisado: no requiere etiquetado y se centra en la ruta desde la raíz hasta la hoja.

Google AdInline article slot
from sklearn.ensemble import IsolationForest

if_model = IsolationForest(n_estimators=100, contamination=0.05, bootstrap=False, random_state=42)

Para series temporales, se añaden características de retardo:

data['prev_10min'] = (data.rolling(window='10min', min_periods=1)['events'].sum()).astype(int)
data['prev_5min'] = (data.rolling(window='5min', min_periods=1)['events'].sum()).astype(int)
data['prev_3min'] = (data.rolling(window='3min', min_periods=1)['events'].sum()).astype(int)

Hiperparámetros clave:

  • n_estimators: equilibrio entre precisión y velocidad
  • contamination: proporción esperada de anomalías (0.05)
  • max_samples: tamaño de submuestra (256 por defecto)
  • bootstrap: False para diversidad

El anomaly_score mediante decision_function se normaliza [-0.5, 0.5]. Valores < -0.25 son anomalías confiables:

Google AdInline article slot
data['anomaly'] = np.where(if_model.decision_function(data[['events', 'prev_3min', 'prev_5min', 'prev_10min']]) > -0.25, 0, 1)

El análisis SHAP muestra dominio de retardos de 10 minutos. Ventajas:

  • Complejidad O(n log n) para procesamiento en tiempo real
  • Se ejecuta en CPU sin almacenar datos
  • Fácil despliegue

CatBoost para predecir actividad normal

CatBoostRegressor se entrena en datos históricos para predecir la intensidad esperada. Las anomalías ocurren donde |real - predicho| supera un umbral.

from catboost import CatBoostRegressor

model = CatBoostRegressor()
expected_value = model.predict()
anomaly_score = abs(actual_value - expected_value)

Esquema de división de datos:

Google AdInline article slot
  • Entrenamiento (3 semanas): actividad normal
  • Validación (1 semana): ajuste
  • Prueba (2 días): anomalías

Las características amplían el contexto:

  • Temporales: día de la semana, hora
  • Retardo: eventos en 1h, 30m, 10m, 5m, 3m
  • Rodantes: media/desviación estándar/cuantil(0.8) en 3/7 días

Las estadísticas rodantes se calculan sin fuga:

# Estadísticas rodantes
data['week_mean'] = round(data.rolling(window=7, min_periods=1)['events'].mean(), 2)

El aprendizaje rodante actualiza el modelo diariamente en el conjunto histórico completo.

Autoencoder: Compresión y reconstrucción

Un autoencoder neuronal comprime secuencias normales en espacio latente, mientras que las anomalías se reconstruyen mal (alto error de reconstrucción).

Arquitectura: codificador LSTM/GRU + decodificador. Entrenamiento en datos normales minimiza MSE. Un umbral de error determina anomalías.

Ventajas para series: captura dependencias a largo plazo. Desventajas: requiere GPU, sensible a hiperparámetros.

Comparación de enfoques:

| Modelo | Velocidad | Interpretabilidad | Recursos | Adaptación a tendencias |

|--------|----------|--------------------|---------|---------------------|

| Isolation Forest | Alta | SHAP | CPU | Retardos |

| CatBoost | Media | Importancia de características | CPU/GPU | Aprendizaje rodante |

| Autoencoder | Baja | Atención | GPU | Secuencias |

Conclusiones clave

  • Isolation Forest lidera en velocidad y rentabilidad para uso en tiempo real
  • CatBoost es preciso en predecir tendencias con características expandidas
  • Autoencoder destaca en secuencias complejas pero es intensivo en recursos
  • Todos los modelos no son supervisados: funcionan sin etiquetado
  • Combinar retardos y estadísticas rodantes mejora la precisión en un 15-20%

Integración SIEM: los modelos se actualizan en línea, las alertas se activan con anomaly_score > umbral. Pruebas en anomalías sintéticas confirman F1-score > 0.85 para todos.

— Editorial Team

Advertisement 728x90

Leer después