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.
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:
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:
- 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
Aún no hay comentarios.