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