Skip to content

Anomalie-Erkennung

Die Anomalie-Erkennung in TCM365 nutzt ML-basierte statistische Analyse, um ungewöhnliche Muster in Tenant-Konfigurationsänderungen zu identifizieren. Ergaenzt durch Custom Probes ermöglicht sie proaktives Monitoring jenseits regelbasierter Drift-Erkennung.


Übersicht

Während die regelbasierte Drift-Erkennung bekannte Abweichungen von definierten Baselines erkennt, identifiziert die Anomalie-Erkennung unerwartete Muster, die möglicherweise nicht durch explizite Regeln abgedeckt sind. Dies umfasst ungewöhnliche Aenderungshaeufigkeiten, atypische Konfigurationskombinationen und verdaechtige Aktivitaetsmuster.

Kernfunktionen

  • ML-basiertes Baseline Learning aus historischen Konfigurationsdaten
  • Statistische Anomalie-Erkennung mit konfigurierbaren Schwellenwerten
  • Event Correlation zur Gruppierung zusammenhaengender Anomalien
  • Custom Probes für benutzerdefinierte Monitoring-Checks
  • 7 integrierte M365 Probe-Templates
  • Scheduled Execution mit konfigurierbaren Intervallen
  • Multi-Channel-Alerting bei erkannten Anomalien
  • Anomalie-Metriken und Trend-Visualisierung
  • Teams CQD (Call Quality Dashboard) Integration für Call-Quality-Anomalieerkennung (v2.4.0)

Architektur

flowchart TD
    A[Konfigurationsdaten] --> B[Baseline Learning]
    B --> C[Statistisches Modell]
    D[Neue Snapshot-Daten] --> E[Anomalie-Erkennung]
    C --> E
    E --> F{Anomalie?}
    F -->|Ja| G[AnomalyEvent erstellen]
    F -->|Nein| H[Normal]
    G --> I[Event Correlation]
    I --> J[Benachrichtigung senden]

    K[Custom Probes] --> L[Scheduled Execution]
    L --> M[Probe-Ergebnis]
    M --> N{Fehlgeschlagen?}
    N -->|Ja| O[Alert auslösen]

Baseline Learning

Der AnomalyDetectionService lernt normale Konfigurationsmuster aus historischen Snapshot-Daten und erstellt statistische Baselines.

AnomalyBaseline Entity

Feld Typ Beschreibung
id UUID Primärschlüssel
vendor_tenant_id UUID FK zum Vendor Tenant
resource_type string Ueberwachter Resource Type
metric_name string Name der ueberwachten Metrik
baseline_value decimal Gelernter Baseline-Wert
standard_deviation decimal Standardabweichung
sample_count integer Anzahl der Datenpunkte im Modell
threshold_multiplier decimal Sigma-Multiplikator für Anomalie-Schwelle
last_updated timestamp Letzte Modellaktualisierung
created_at timestamp Erstellungszeitpunkt

Schwellenwert-Konfiguration

Die Anomalie-Schwelle wird als Vielfaches der Standardabweichung definiert:

Anomalie wenn: |aktueller_wert - baseline_wert| > threshold_multiplier * standard_deviation
Multiplikator Empfindlichkeit Anwendungsfall
2.0 Hoch Sicherheitskritische Metriken
3.0 Standard Allgemeines Monitoring
4.0 Niedrig Stabile, selten aendernde Konfigurationen

Event Correlation

Erkannte Anomalien werden durch den Event Correlation-Mechanismus gruppiert, der zusammenhaengende Anomalie-Events zu korrelierten Incident-Gruppen zusammenfasst.

AnomalyEvent Entity

Feld Typ Beschreibung
id UUID Primärschlüssel
vendor_tenant_id UUID FK zum Vendor Tenant
baseline_id UUID FK zur Anomalie-Baseline
resource_type string Betroffener Resource Type
metric_name string Name der anomalen Metrik
expected_value decimal Erwarteter Wert laut Baseline
actual_value decimal Tatsächlicher gemessener Wert
deviation decimal Abweichung in Standardabweichungen
severity enum low, medium, high, critical
status enum detected, investigating, resolved, false_positive
correlation_id string Gruppen-ID für korrelierte Events
detected_at timestamp Erkennungszeitpunkt
resolved_at timestamp Behebungszeitpunkt

Korrelationslogik

Events werden korreliert basierend auf:

  • Zeitliche Nähe -- Events innerhalb eines konfigurierbaren Zeitfensters
  • Tenant-Zugehoerigkeit -- Events desselben Tenants
  • Resource Type-Verwandtschaft -- Events verwandter Resource Types (z.B. Entra-Änderungen)

Anomalie-Metriken

Der AnomalyMetric-Service verfolgt Metriken zur Anomalie-Erkennungsleistung:

Metrik Beschreibung
Erkannte Anomalien pro Zeitraum Gesamtzahl erkannter Anomalien
False-Positive-Rate Anteil als False Positive markierter Events
Mittlere Erkennungszeit Durchschnittliche Zeit bis zur Erkennung
Top betroffene Resource Types Haeufigste Anomalie-Quellen
Trend-Verlauf Anomalie-Haeufigkeit über die Zeit

Custom Probes

Custom Probes ermöglichen benutzerdefinierte Monitoring-Checks, die über die automatische Anomalie-Erkennung hinausgehen.

CustomProbe Entity

Feld Typ Beschreibung
id UUID Primärschlüssel
name string Probe-Name
description text Beschreibung des Pruefziels
vendor_tenant_id UUID FK zum Vendor Tenant
probe_type string Probe-Typ (template oder custom)
template_id string Referenz zum Probe-Template (optional)
configuration JSONB Probe-spezifische Konfiguration
schedule JSONB Ausfuehrungsplan (Cron-Ausdruck)
enabled boolean Ob die Probe aktiv ist
notification_channels JSONB Benachrichtigungskanäle bei Fehlschlag
created_at timestamp Erstellungszeitpunkt

7 integrierte Probe-Templates

TCM365 liefert 7 vorgefertigte Probe-Templates für gängige M365-Monitoring-Szenarien:

Template Pruefziel
CA Policy Count Sicherstellung einer Mindestanzahl aktiver CA Policies
MFA Coverage Prüfung der MFA-Abdeckung über Benutzergruppen
Admin Role Count Überwachung der Anzahl privilegierter Rollenzuweisungen
Legacy Auth Usage Erkennung aktiver Legacy-Authentifizierungsprotokolle
Guest User Count Überwachung der Anzahl externer Gastbenutzer
App Permission Scope Prüfung auf ueberprivilegierte App Registrations
Stale Account Detection Erkennung inaktiver Benutzerkonten

Probe-Ausführung

sequenceDiagram
    participant S as Scheduler
    participant P as Probe Engine
    participant D as Snapshot-Daten

    S->>P: Probe ausführen (nach Plan)
    P->>D: Relevante Daten abrufen
    D-->>P: Konfigurationsdaten
    P->>P: Prueflogik ausführen
    alt Prüfung bestanden
        P->>P: Ergebnis protokollieren
    else Prüfung fehlgeschlagen
        P->>P: Alert auslösen
        P->>P: Benachrichtigung senden
    end

CustomProbeExecution Entity

Feld Typ Beschreibung
id UUID Primärschlüssel
probe_id UUID FK zur Custom Probe
status enum success, failed, error, skipped
result JSONB Ausfuehrungsergebnis mit Details
duration_ms integer Ausfuehrungsdauer in Millisekunden
error_message text Fehlermeldung bei Fehler
executed_at timestamp Ausfuehrungszeitpunkt

API-Endpoints

Methode Endpoint Beschreibung
GET /api/v1/anomaly-detection/events Anomalie-Events auflisten
GET /api/v1/anomaly-detection/events/{id} Event-Details abrufen
PUT /api/v1/anomaly-detection/events/{id}/resolve Event beheben
GET /api/v1/anomaly-detection/baselines Baselines auflisten
PUT /api/v1/anomaly-detection/baselines/{id} Baseline-Parameter anpassen
GET /api/v1/anomaly-detection/metrics Metriken abrufen
GET /api/v1/anomaly-detection/probes Custom Probes auflisten
POST /api/v1/anomaly-detection/probes Neue Probe erstellen
GET /api/v1/anomaly-detection/probes/{id} Probe-Details abrufen
PUT /api/v1/anomaly-detection/probes/{id} Probe aktualisieren
DELETE /api/v1/anomaly-detection/probes/{id} Probe löschen
POST /api/v1/anomaly-detection/probes/{id}/execute Probe manuell ausführen
GET /api/v1/anomaly-detection/probes/{id}/executions Ausfuehrungshistorie abrufen
GET /api/v1/anomaly-detection/probes/templates Probe-Templates auflisten

Abhängigkeiten

Komponente Erforderlich Hinweis
PostgreSQL Ja Speicherung von Baselines, Events und Metriken
Redis Optional Für verteilte Koordination bei Probe-Ausführung
Snapshots Ja Historische Daten für Baseline Learning

Best Practices

  1. Baseline Learning-Zeit einraeumen -- Mindestens 2 Wochen Snapshot-Historie für aussagekraeftige Baselines
  2. Schwellenwerte anpassen -- Standard-Multiplikator (3.0) für sicherheitskritische Metriken auf 2.0 senken
  3. False Positives markieren -- False-Positive-Markierungen verbessern die Erkennungsgenauigkeit über die Zeit
  4. Custom Probes für spezifische Anforderungen -- Probe-Templates als Ausgangspunkt für organisationsspezifische Checks nutzen
  5. Event Correlation nutzen -- Korrelierte Events gemeinsam untersuchen für effizientere Ursachenanalyse
  6. Benachrichtigungen konfigurieren -- Mindestens einen Kanal für Anomalie-Alerts aktivieren