Zurück zur Startseite

Zeitreihen-Anomalieerkennung ML

Der Artikel analysiert drei ML-Ansätze zur Anomalieerkennung in Dateispeicher-Protokollen: Isolation Forest zur Ausreißerisolation, CatBoost zur Prognose und autoencoder zur Rekonstruktion. Enthält Code, Merkmale, Metriken. Geeignet für Integration in SIEM.

ML gegen Anomalien: drei Algorithmen für Protokolle
Advertisement 728x90

Anomalieerkennung in Dateispeicher-Protokollen: Isolation Forest, CatBoost und Autoencoder

Maschinelles Lernen identifiziert effektiv Bedrohungen in Dateispeicher-Protokollen, in denen täglich Millionen von Lese-, Schreib- und Löschvorgängen aufgezeichnet werden. Drei Algorithmen – Isolation Forest, CatBoost und Autoencoder – analysieren mehrdimensionale Zeitreihen der Nutzeraktivität und unterscheiden normales Verhalten von verdächtigen Mustern ohne gelabelte Daten.

Daten werden in Zeitintervallen aggregiert: Für jedes Intervall wird die Intensität der Vorgänge nach Typ gezählt. Dies ergibt einen Merkmalsvektor, bei dem Abweichungen auf Insider-Kopien oder Massenverschlüsselung hindeuten.

Isolation Forest: Anomalien mit Zufälligkeit isolieren

Isolation Forest baut ein Ensemble von Bäumen mit zufälligen Aufteilungen von Merkmalen. Anomalien werden schneller isoliert, da ihre Merkmale sich deutlich von der Mehrheit unterscheiden. Der Algorithmus ist unüberwacht: Er benötigt keine Labelierung und konzentriert sich auf den Pfad von der Wurzel zum Blatt.

Google AdInline article slot
from sklearn.ensemble import IsolationForest

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

Für Zeitreihen werden Lag-Merkmale hinzugefügt:

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)

Wichtige Hyperparameter:

  • n_estimators: Balance zwischen Genauigkeit und Geschwindigkeit
  • contamination: Erwarteter Anteil von Anomalien (0.05)
  • max_samples: Größe der Teilstichprobe (standardmäßig 256)
  • bootstrap: False für Vielfalt

Der anomaly_score über decision_function ist normalisiert [-0.5, 0.5]. Werte < -0.25 sind sichere Anomalien:

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

SHAP-Analyse zeigt Dominanz von 10-Minuten-Lags. Vorteile:

  • O(n log n) Komplexität für Echtzeitverarbeitung
  • Läuft auf CPU ohne Datenspeicherung
  • Einfache Bereitstellung

CatBoost zur Vorhersage normaler Aktivität

CatBoostRegressor wird auf historischen Daten trainiert, um die erwartete Intensität vorherzusagen. Anomalien treten auf, wo |tatsächlich - vorhergesagt| einen Schwellenwert überschreitet.

from catboost import CatBoostRegressor

model = CatBoostRegressor()
erwarteter_wert = model.predict()
anomalie_score = abs(aktueller_wert - erwarteter_wert)

Datenaufteilungsschema:

Google AdInline article slot
  • Training (3 Wochen): normale Aktivität
  • Validierung (1 Woche): Feinabstimmung
  • Test (2 Tage): Anomalien

Merkmale erweitern den Kontext:

  • Zeitlich: Wochentag, Stunde
  • Lag: Ereignisse über 1h, 30m, 10m, 5m, 3m
  • Gleitend: Mittelwert/Standardabweichung/Quantil(0.8) über 3/7 Tage

Gleitende Statistiken werden ohne Leckage berechnet:

# Gleitende Statistiken
data['wochen_mittelwert'] = round(data.rolling(window=7, min_periods=1)['events'].mean(), 2)

Rolling Learning aktualisiert das Modell täglich auf dem gesamten historischen Pool.

Autoencoder: Komprimierung und Rekonstruktion

Ein neuronaler Autoencoder komprimiert normale Sequenzen in einen latenten Raum, während Anomalien schlecht rekonstruiert werden (hoher Rekonstruktionsfehler).

Architektur: LSTM/GRU Encoder + Decoder. Training auf normalen Daten minimiert MSE. Ein Fehlerschwellenwert bestimmt Anomalien.

Vorteile für Reihen: Erfasst langfristige Abhängigkeiten. Nachteile: Benötigt GPU, empfindlich gegenüber Hyperparametern.

Vergleich der Ansätze:

| Modell | Geschwindigkeit | Interpretierbarkeit | Ressourcen | Anpassung an Trends |

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

| Isolation Forest | Hoch | SHAP | CPU | Lags |

| CatBoost | Mittel | Merkmalswichtigkeit | CPU/GPU | Rolling Learning |

| Autoencoder | Niedrig | Aufmerksamkeit | GPU | Sequenzen |

Wichtige Erkenntnisse

  • Isolation Forest führt in Geschwindigkeit und Kosteneffizienz für Echtzeitanwendungen
  • CatBoost ist genau in der Trendvorhersage mit erweiterten Merkmalen
  • Autoencoder überzeugt bei komplexen Sequenzen, ist aber ressourcenintensiv
  • Alle Modelle sind unüberwacht: Sie arbeiten ohne Labelierung
  • Kombination von Lags und gleitenden Statistiken verbessert die Genauigkeit um 15-20%

SIEM-Integration: Modelle aktualisieren online, Alarme lösen bei anomaly_score > Schwellenwert aus. Tests mit synthetischen Anomalien bestätigen F1-Score > 0,85 für alle.

— Editorial Team

Advertisement 728x90

Weiterlesen