Incident Response¶
Ein klarer Plan für Sicherheitsvorfälle minimiert Schäden und beschleunigt die Wiederherstellung.
Incident-Kategorien¶
flowchart TD
subgraph Severity
S1[Kritisch - Sofort]
S2[Hoch - <4h]
S3[Mittel - <24h]
S4[Niedrig - <1 Woche]
end
subgraph Beispiele
E1[Server kompromittiert]
E2[Service nicht erreichbar]
E3[Verdächtige Aktivitäten]
E4[Performance-Probleme]
end
S1 --> E1
S2 --> E2
S3 --> E3
S4 --> E4
| Severity | Reaktionszeit | Beispiele |
|---|---|---|
| Kritisch | Sofort | Kompromittierung, Datenverlust |
| Hoch | < 4 Stunden | Service-Ausfall |
| Mittel | < 24 Stunden | Verdächtige Aktivitäten |
| Niedrig | < 1 Woche | Performance-Probleme |
Bei Verdacht auf Kompromittierung¶
Schritt 1: Situation einschätzen¶
Ruhe bewahren
Überstürzte Aktionen können Beweise vernichten oder den Schaden vergrößern.
Erste Fragen:
- Was wurde bemerkt?
- Wann wurde es bemerkt?
- Sind Daten betroffen?
- Sind andere Systeme betroffen?
Schritt 2: Dokumentation starten¶
Dokumentiere ALLES ab sofort:
# Incident-Log starten
echo "=== INCIDENT LOG ===" > /tmp/incident-$(date +%Y%m%d).log
echo "Start: $(date)" >> /tmp/incident-$(date +%Y%m%d).log
echo "Reporter: DEIN_NAME" >> /tmp/incident-$(date +%Y%m%d).log
Schritt 3: Beweise sichern¶
BEVOR du etwas änderst:
# Aktuelle Verbindungen
ss -tulpn > /tmp/evidence/connections.txt
# Laufende Prozesse
ps auxf > /tmp/evidence/processes.txt
# Letzte Logins
last > /tmp/evidence/logins.txt
# Auth-Log sichern
cp /var/log/auth.log /tmp/evidence/
# Docker-Container-Status
docker ps -a > /tmp/evidence/containers.txt
docker logs coolify > /tmp/evidence/coolify-logs.txt 2>&1
Schritt 4: Isolierung entscheiden¶
Option A: Sofortige Isolierung (Bei aktiver Bedrohung)
# Netzwerk trennen (drastisch!)
sudo ufw default deny incoming
sudo ufw default deny outgoing
# Oder: Nur SSH erlauben
sudo ufw reset
sudo ufw allow from DEINE_IP to any port 22
sudo ufw enable
Option B: Überwachte Isolierung (Bei Unklarheit)
# Verdächtige IP-Adressen blockieren
sudo ufw deny from VERDÄCHTIGE_IP
# Traffic loggen
sudo tcpdump -i eth0 -w /tmp/evidence/traffic.pcap &
Schritt 5: Schadensanalyse¶
# Geänderte Dateien der letzten 24h
find /etc /usr/bin /usr/sbin -mtime -1 -type f
# Ungewöhnliche Cron-Jobs
cat /etc/crontab
ls -la /etc/cron.*
# Ungewöhnliche Benutzer
cat /etc/passwd
cat /etc/shadow
# Rootkit-Check
sudo rkhunter --check
Schritt 6: Bereinigung oder Neuinstallation¶
Entscheidung treffen
Bereinigung möglich wenn:
- Einbruchspunkt bekannt
- Umfang des Schadens klar
- Alle Änderungen identifiziert
Neuinstallation nötig wenn:
- Rootkit gefunden
- Einbruchspunkt unklar
- Umfang unklar
Bei Neuinstallation:
- Neuen Server aufsetzen (diese Dokumentation!)
- Daten aus Backup wiederherstellen
- Passwörter ÜBERALL ändern
- SSH-Keys rotieren
Schritt 7: Post-Incident¶
- Incident-Report erstellen
- Ursache identifizieren
- Schutzmaßnahmen verbessern
- Betroffene benachrichtigen (DSGVO!)
- Lessons Learned dokumentieren
Bei Service-Ausfall¶
Schnelle Diagnose¶
# Server erreichbar?
ping DEINE_SERVER_IP
# SSH funktioniert?
ssh DEIN_USERNAME@DEINE_SERVER_IP
# Container laufen?
docker ps
# Coolify-Logs
docker logs coolify --tail 100
# Disk voll?
df -h
# Memory voll?
free -h
# Load zu hoch?
uptime
Häufige Ursachen und Lösungen¶
Container gestoppt
Disk voll
Speicher erschöpft
SSL-Zertifikat abgelaufen
Wiederherstellung aus Backup¶
Schritt-für-Schritt¶
- Neuen Server aufsetzen
- Letzte gute Backups identifizieren
- Coolify wiederherstellen
# Coolify stoppen
cd /data/coolify && docker compose down
# Konfiguration wiederherstellen
tar -xzf /backup/coolify/coolify_YYYYMMDD.tar.gz -C /
# Datenbank wiederherstellen
gunzip -c /backup/databases/coolify_YYYYMMDD.dump.gz | \
docker exec -i coolify-db pg_restore -U coolify -d coolify
# Coolify starten
docker compose up -d
- Funktionalität testen
- Passwörter ändern
- Coolify Admin-Passwort
- API-Keys
- Datenbank-Passwörter
Incident-Report-Vorlage¶
# Incident Report
## Zusammenfassung
- **Datum/Zeit:** YYYY-MM-DD HH:MM
- **Severity:** Kritisch/Hoch/Mittel/Niedrig
- **Betroffene Systeme:** ...
- **Dauer:** ... Stunden
## Chronologie
- HH:MM - Incident entdeckt durch ...
- HH:MM - Erste Maßnahmen ...
- HH:MM - Ursache identifiziert
- HH:MM - System wiederhergestellt
## Ursache
...
## Maßnahmen
1. ...
2. ...
## Auswirkungen
- Datenverlust: Ja/Nein
- Downtime: ... Minuten
- Betroffene Benutzer: ...
## Verbesserungen
- [ ] Maßnahme 1
- [ ] Maßnahme 2
## Lessons Learned
...
Zusammenfassung¶
| Situation | Erste Aktion |
|---|---|
| Kompromittierung vermutet | Beweise sichern, dann isolieren |
| Service nicht erreichbar | Container-Status prüfen |
| Disk voll | Docker aufräumen |
| Nach Neuinstallation | Alle Passwörter ändern |