WAF++ WAF++
Back to WAF++ Homepage

WAF-REL-040 – Backup & Recovery Validation

Beschreibung

Alle Produktionsdatenbanken MÜSSEN automatisierte Backups mit Retention >= 7 Tage und Point-in-Time Recovery (PITR) konfigurieren. Backups MÜSSEN in einem separaten Account oder einer separaten Region gespeichert werden. Recovery-Verfahren MÜSSEN mindestens quartalsweise getestet und dokumentiert sein. Ungetestete Backups gelten als nicht vorhanden.

Rationale

Datenverlust durch Accidental Deletion, Ransomware oder Korruption ist ohne validierte Recovery-Verfahren katastrophal. Der häufigste Fehler ist nicht das Fehlen von Backups, sondern ein nie getestetes Recovery-Verfahren, das im Ernstfall aufgrund veralteter Anleitungen, fehlender Schlüssel oder nicht existierender Zielinfrastruktur scheitert.

Bedrohungskontext

Risiko Beschreibung

Ransomware

Backup im selben Account wie Produktionsdaten wird gleichzeitig verschlüsselt.

Accidental Deletion

Ohne ausreichende Retention sind Daten, die erst nach Tagen fehlen, nicht wiederherstellbar.

Ungetesteter Restore

Recovery-Prozedur scheitert im Ernstfall an manuellen Schritten, die nie dokumentiert wurden.

RPO-Verletzung

Backup-Interval zu groß: Daten, die zwischen zwei Backups erstellt wurden, gehen verloren.

Anforderung

  • Automatisierte Backups: Retention >= 7 Tage für alle Produktionsdatenbanken

  • PITR: Für alle relationalen Produktionsdatenbanken aktiviert

  • Backup-Speicherung: Separates AWS Account / Azure Subscription / GCP Project

  • Deletion Protection: Aktiviert auf allen Produktionsdatenbanken

  • Restore-Test: Quartalsweise mit Ergebnisdokumentation (RTO, Datenintegrität)

  • Backup-Alerts: Benachrichtigung bei Job-Fehler oder überaltertem Backup

Implementierungsanleitung

  1. Retention erhöhen: backup_retention_period = 14 – mindestens 7, besser 14 Tage

  2. PITR aktivieren: point_in_time_recovery_enabled = true (GCP), Standard bei RDS/Azure

  3. Cross-Account Backup: AWS Backup Plan mit copy_action auf Backup-Account-Vault

  4. Deletion Protection: deletion_protection = true – verhindert versehentliches Löschen

  5. Restore-Test automatisieren: Skript für quartalsweisen automatisierten Restore-Test

  6. Monitoring: CloudWatch Event Rule für fehlgeschlagene Backup-Jobs

Reifegrad-Abstufung

Level Bezeichnung Kriterien

1

Keine Backups

Keine automatisierten Backups konfiguriert.

2

Backups da, ungetestet

Automatische Backups aktiv; Restore nie getestet; kein Cross-Account.

3

PITR + Cross-Account + getestet

PITR aktiviert; Backup in separatem Account; Restore quartalsweise getestet.

4

Automatisierter monatlicher Test

Automatisierter Restore-Test in Pipeline; Backup-Integrity-Checks.

5

WORM + CDP

Immutable Backup Storage; Continuous Data Protection; schemagetriggerte Tests.

Terraform Checks

waf-rel-040.tf.aws.rds-backup-retention

Prüft: RDS hat backup_retention_period >= 7 und deletion_protection = true.

Compliant Non-Compliant
resource "aws_db_instance" "main" {
  identifier    = "payment-db-prod"
  engine        = "postgres"
  instance_class = "db.t3.medium"
  backup_retention_period = 14
  backup_window = "02:00-03:00"
  deletion_protection = true
  copy_tags_to_snapshot = true
}
resource "aws_db_instance" "main" {
  identifier    = "payment-db-prod"
  engine        = "postgres"
  instance_class = "db.t3.medium"
  backup_retention_period = 1
  # WAF-REL-040 Violation
  deletion_protection = false
  # WAF-REL-040 Violation
}

Remediation: backup_retention_period >= 7 und deletion_protection = true auf aws_db_instance setzen.

Evidenz

Typ Pflicht Beschreibung

IaC

✅ Pflicht

Terraform mit Backup-Konfiguration: Retention, PITR, Cross-Account-Storage.

Process

✅ Pflicht

Quartalsweiser Restore-Test-Bericht: RTO erreicht, Datenintegrität validiert, Unterschrift.

Governance

Optional

RTO/RPO Dokument pro Workload, jährlich reviewed.

Config

Optional

Backup-Monitoring Alerts für Job-Fehler und überalterte Backups.