WAF-OPS-090 – Configuration Drift Detection & Remediation
Beschreibung
Alle Produktions-Infrastruktur MUSS kontinuierlich gegen ihre IaC-Definition verglichen werden. Configuration Drift – jede Abweichung zwischen tatsächlichem und deklariertem Zustand – MUSS automatisch erkannt, dem zuständigen Team gemeldet und innerhalb definierter SLAs behoben werden. Notfall-manuelle Änderungen MÜSSEN innerhalb von 24 Stunden in IaC überführt werden.
Rationale
In Umgebungen mit mehreren Änderungskanälen (Konsole, CLI, API, IaC) ist Drift unvermeidlich wenn nicht aktiv erkannt und behoben. Drift schafft unsichtbares Risiko: eine Sicherheitsgruppe die manuell geöffnet wurde, ein Parameter der Konsole-seitig geändert wurde. Drift ist die Lücke zwischen dem was man denkt zu haben und dem was man tatsächlich hat.
Bedrohungskontext
| Risiko | Beschreibung |
|---|---|
Stille Security-Verschlechterung |
Security-Group-Regeln manuell geöffnet für Debugging – bleibt offen; IaC weiß es nicht. |
Debugging-Änderungen permanent |
"Temporäre" Konsolen-Änderung wird vergessen und zur permanenten, nicht-dokumentierten Konfiguration. |
DR-Versagen |
Disaster-Recovery aus IaC scheitert weil tatsächliche Konfiguration von IaC abweicht. |
Audit-Versagen |
Infrastruktur entspricht nicht dem genehmigten Design; Compliance-Nachweis nicht möglich. |
Anforderung
-
Automatische Drift-Erkennung MUSS mindestens täglich laufen
-
Drift-Alerts MÜSSEN das zuständige Team innerhalb von 1 Stunde nach Erkennung benachrichtigen
-
Notfall-Konsolen-Änderungen MÜSSEN innerhalb von 24 Stunden in IaC überführt werden
-
Drift-SLAs MÜSSEN definiert sein: Kritisch (Security-related) 4h; Major 24h; Minor 1 Sprint
-
Drift-Log MUSS alle Events mit Zeitstempel, Ressource und Resolutionszeit dokumentieren
Implementierungsanleitung
-
Terraform Plan automatisieren: EventBridge Scheduler für täglichen
terraform planRun; Alert bei non-empty Plan -
AWS Config aktivieren: Configuration Recorder für alle Ressourcentypen; Compliance Rules konfigurieren
-
CloudTrail Multi-Region: Audit-Trail aller API-Calls inkl. Konsolen-Änderungen
-
Drift-SLAs definieren: Kritisch (Security-relevante Ressourcen) 4h; Major 24h; Minor 1 Sprint
-
Console-Schutz: Service Control Policies (SCP) für sensible Ressourcen; IAM Permission Boundaries
-
Notfall-Change-Prozess: Manuelle Änderung = Ticket erstellen + IaC-PR innerhalb 24h
Reifegrad-Abstufung
| Level | Bezeichnung | Kriterien |
|---|---|---|
1 |
Keine Drift-Erkennung |
Kein Mechanismus um Drift zu erkennen. Konsolen-Änderungen sind Routine. |
2 |
Ad-hoc Identifikation |
|
3 |
Automatisierte Erkennung |
Täglicher automatischer Drift-Check. Alerts bei Erkennung. Notfall-Change-Prozess definiert. |
4 |
SLA-Enforcement |
Drift-SLAs definiert und getrackt. Log mit allen Events. Console-Schutz für sensible Ressourcen. |
5 |
Automatische Remediation |
Auto-Remediation für sichere Drift-Muster. 0 ungelöster Drift > 48h in Production. |
Terraform Checks
waf-ops-090.tf.aws.config-rule-enabled
Prüft: AWS Config Recorder mit Recording-Group ist konfiguriert.
| Compliant | Non-Compliant |
|---|---|
|
|
waf-ops-090.tf.aws.cloudtrail-enabled
Prüft: CloudTrail ist Multi-Region Trail mit Log-File-Validierung.
# Compliant
resource "aws_cloudtrail" "main" {
name = "production-trail"
s3_bucket_name = aws_s3_bucket.cloudtrail.id
is_multi_region_trail = true # Pflicht
enable_log_file_validation = true # Pflicht
include_global_service_events = true
}
Remediation: AWS Config Recorder mit all_supported = true aktivieren.
CloudTrail mit is_multi_region_trail = true und enable_log_file_validation = true konfigurieren.
Evidenz
| Typ | Pflicht | Beschreibung |
|---|---|---|
Config |
✅ Pflicht |
Automatische Drift-Detection-Konfiguration (EventBridge Schedule, AWS Config Recorder). |
Process |
✅ Pflicht |
Drift-SLA-Policy mit Schweregrad-Klassifikation und Remediation-Fristen. |
Governance |
Optional |
Drift-Log der letzten 90 Tage mit Erkennungszeit, Schweregrad und Resolutionszeit. |
IaC |
Optional |
SCP oder IAM-Permission-Boundary die Console-Änderungen an sensiblen Ressourcen verhindert. |