SEV-1 Incident: Sofortige Reaktion bei CA-Kompromittierung!
RTO: 1 Stunde | Entscheidungsträger: CISO + PKI-Lead
Verfahren zur massenhaften Sperrung von Zertifikaten bei Kompromittierung einer CA.
| Trigger | Beispiel | Aktion |
| ——— | ———- | ——– |
| Root-CA kompromittiert | Private Key gestohlen | Komplette PKI neu aufbauen |
| Intermediate kompromittiert | Signatur-Key geleakt | Sub-CA + alle Zertifikate |
| Mass-Compromise | Ransomware auf CA-Server | Alle betroffenen Zertifikate |
| Kritische Schwachstelle | Algorithmus gebrochen | Alle betroffenen Zertifikate |
#!/bin/bash # emergency-triage.sh echo "=== NOTFALL-TRIAGE ===" echo "Zeit: $(date -Iseconds)" # 1. Welche CA ist betroffen? echo "" echo "Betroffene CA:" read -p "Root/Intermediate/End-Entity: " CA_LEVEL # 2. Art der Kompromittierung echo "" echo "Art der Kompromittierung:" echo " 1. Private Key gestohlen" echo " 2. Unbefugte Zertifikatsausstellung" echo " 3. System-Kompromittierung" echo " 4. Algorithmus-Schwachstelle" read -p "Auswahl: " COMPROMISE_TYPE # 3. Scope ermitteln echo "" echo "Scope ermitteln..." case "$CA_LEVEL" in root|Root|ROOT) echo "KRITISCH: Alle Zertifikate der gesamten PKI betroffen!" SCOPE=$(grep -c "^V" /etc/pki/CA/index.txt) ;; intermediate|Intermediate|INTERMEDIATE) read -p "Welche Intermediate-CA? " INT_CA SCOPE=$(grep -c "$INT_CA" /etc/pki/CA/index.txt) ;; *) read -p "Anzahl betroffener Zertifikate: " SCOPE ;; esac echo "" echo "=== ZUSAMMENFASSUNG ===" echo "CA-Ebene: $CA_LEVEL" echo "Kompromittierungstyp: $COMPROMISE_TYPE" echo "Betroffene Zertifikate: $SCOPE" echo "" # Eskalation if [ "$CA_LEVEL" = "Root" ] || [ "$CA_LEVEL" = "root" ]; then echo "ESKALATION: CISO und Management benachrichtigen!" echo "Kommunikationsplan aktivieren!" fi
#!/bin/bash # emergency-ca-offline.sh echo "=== CA OFFLINE ===" # 1. CA-Services stoppen systemctl stop pki-ca systemctl stop ocsp-responder # 2. Netzwerkzugang sperren iptables -A INPUT -p tcp --dport 443 -j DROP iptables -A INPUT -p tcp --dport 80 -j DROP # 3. Signing-Keys sperren (HSM) # pkcs11-tool --module <hsm> --login --deactivate-key --id <key-id> # 4. Forensik-Sicherung echo "Erstelle Forensik-Image..." dd if=/dev/sda of=/backup/forensic/ca-server-$(date +%Y%m%d%H%M%S).img bs=4M echo "CA offline. Keine neuen Zertifikate möglich."
#!/bin/bash # emergency-crl.sh echo "=== NOTFALL-CRL ===" # Alle Zertifikate der betroffenen CA widerrufen # ACHTUNG: Dies ist destruktiv! read -p "WARNUNG: Alle Zertifikate widerrufen? (REVOKE/abort): " confirm [ "$confirm" != "REVOKE" ] && exit 1 # Backup der aktuellen Datenbank cp /etc/pki/CA/index.txt /etc/pki/CA/index.txt.pre-emergency-$(date +%Y%m%d%H%M%S) # Alle gültigen Zertifikate widerrufen grep "^V" /etc/pki/CA/index.txt | while IFS=$'\t' read status expiry revoke serial unknown subject; do echo "Widerrufe: $serial - $subject" openssl ca -config /etc/pki/CA/openssl.cnf \ -revoke "/etc/pki/CA/newcerts/${serial}.pem" \ -crl_reason keyCompromise \ -batch done # Neue CRL generieren (kurze Gültigkeit!) openssl ca -config /etc/pki/CA/openssl.cnf \ -gencrl \ -crlhours 1 \ -out /var/www/pki/emergency.crl # CRL sofort verteilen echo "Verteile Notfall-CRL..." scp /var/www/pki/emergency.crl crl-server:/var/www/html/crl/ scp /var/www/pki/emergency.crl cdn-origin:/var/www/crl/ echo "Notfall-CRL verteilt." echo "CRL-URL: http://crl.example.com/crl/emergency.crl"
NOTFALL-MELDUNG: PKI-Kompromittierung An: IT-Security, IT-Operations, Management Von: PKI-Team Zeit: [TIMESTAMP] STATUS: SEV-1 INCIDENT ZUSAMMENFASSUNG: Die [Root/Intermediate] CA wurde kompromittiert. Alle ausgestellten Zertifikate werden widerrufen. AUSWIRKUNGEN: - Betroffene Zertifikate: [ANZAHL] - Betroffene Systeme: [LISTE] - Geschätzte Downtime: [STUNDEN] SOFORTMASSNAHMEN: 1. CA offline genommen 2. Notfall-CRL generiert 3. Kommunikation an betroffene Systeme NÄCHSTE SCHRITTE: 1. Forensik-Analyse 2. Neue CA aufbauen 3. Re-Issue aller Zertifikate KONTAKT: PKI-Team: pki-emergency@example.com Security: security@example.com Hotline: +49 xxx xxxxx
SICHERHEITSMITTEILUNG [ORGANISATION] hat festgestellt, dass [BESCHREIBUNG]. Betroffene Dienste wurden vorsorglich offline genommen. Wir arbeiten an einer Lösung und informieren Sie über Updates. Bei Fragen: security@example.com
#!/bin/bash # emergency-recovery.sh echo "=== WIEDERHERSTELLUNG ===" # 1. Neue Root-CA (falls kompromittiert) echo "Option 1: Neue Root-CA" echo " → Key Ceremony durchführen" echo " → Siehe: key-ceremony.sh" # 2. Neue Intermediate-CA echo "" echo "Option 2: Neue Intermediate-CA" echo " → Von Root signieren lassen" # 3. Re-Issue aller Zertifikate echo "" echo "Option 3: Re-Issue Zertifikate" # Server-Liste aus CMDB/Inventory SERVERS_FILE="/etc/pki/inventory/all-servers.txt" if [ -f "$SERVERS_FILE" ]; then total=$(wc -l < "$SERVERS_FILE") echo "Re-Issue für $total Server..." cat "$SERVERS_FILE" | while read server; do echo "Re-Issue: $server" # CSR vom Server anfordern ssh "$server" "openssl req -new -key /etc/ssl/private/server.key -out /tmp/emergency.csr -subj \"/CN=$server\"" # CSR abholen scp "$server:/tmp/emergency.csr" "/tmp/reissue/${server}.csr" # Neues Zertifikat ausstellen openssl ca -config /etc/pki/CA/openssl.cnf \ -in "/tmp/reissue/${server}.csr" \ -out "/tmp/reissue/${server}.pem" \ -days 365 -batch # Zertifikat deployen scp "/tmp/reissue/${server}.pem" "$server:/etc/ssl/certs/server.pem" ssh "$server" "systemctl reload nginx || systemctl reload apache2" done fi echo "Wiederherstellung abgeschlossen."
| Phase | Aufgabe | Zeitrahmen |
| ——- | ——— | ———— |
| Post-Incident | Forensik-Bericht | +24h |
| Post-Incident | Root-Cause-Analysis | +48h |
| Post-Incident | Lessons Learned | +1 Woche |
| Prävention | Kontrollen verbessern | +2 Wochen |
| Compliance | Behörden informieren (falls KRITIS) | Gemäß Gesetz |
| # | Prüfpunkt | Zeit | ✓ |
| — | ———– | —— | — |
| 1 | Triage abgeschlossen | +15m | ☐ |
| 2 | CA offline | +20m | ☐ |
| 3 | Management informiert | +25m | ☐ |
| 4 | Notfall-CRL generiert | +30m | ☐ |
| 5 | CRL verteilt | +35m | ☐ |
| 6 | Interne Kommunikation | +40m | ☐ |
| 7 | Externe Kommunikation (falls nötig) | +45m | ☐ |
| 8 | Wiederherstellungsplan aktiviert | +60m | ☐ |
« ← Key Ceremony | → Operator-Szenarien »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional