Ein Leitfaden für alle, die eine eigene Website oder ein Homelab ans Internet hängen. Er ist nach den Taktiken von MITRE D3FEND® geordnet: erst wissen, was da ist, dann härten, erkennen, trennen, entfernen und wiederherstellen. Die siebte Taktik, Täuschen (Deceive), lässt er bewusst aus: Köder und Honeypots lohnen sich erst, wenn die Grundlagen sitzen. Jeder Schritt endet mit einer Prüffrage. Dieselben Fragen kannst du im D3FEND-Würfel beantworten und siehst dann, wo du stehst.
Reihenfolge zählt. Wer nur wenig Zeit hat, beginnt mit den Schritten 3, 6, 7 und 16: ein Eingang, zweiter Faktor, Updates und geübte Wiederherstellung. Diese vier Schritte decken die häufigsten Ursachen für echten Schaden ab.
Model
D3FEND-Taktik
01
Ein Inventar führen
Du kannst nur schützen, was du kennst. Eine Liste aller Dienste, Geräte, Images und Versionen ist die Grundlage für alles Weitere, vom Update bis zur Wiederherstellung.
Am einfachsten ist eine Datei im Git-Repository, ein Abschnitt pro Dienst.
Pro Dienst festhalten: Zweck, Version, öffentlich ja/nein, wo die Daten liegen.
Beim Hinzufügen oder Entfernen eines Dienstes gleich mit pflegen, nicht „später“.
Prüffrage: Gibt es eine aktuelle Liste aller Dienste, Geräte und Versionen?
Welche Subdomains, Ports und Dienste sieht das Internet? Oft mehr, als man denkt: ein vergessener Testdienst, ein Router-Panel, ein offener Datenbank-Port.
Von außen prüfen, zum Beispiel über das Mobilnetz, nicht aus dem eigenen LAN.
Zertifikats-Transparenzlogs zeigen, welche Subdomains öffentlich bekannt sind.
Abhängigkeiten aufschreiben: Was fällt aus, wenn die Datenbank oder das DNS ausfällt?
Prüffrage: Weißt du, welche Dienste von außen sichtbar sind und wer von wem abhängt?
Network MappingService Dependency Mapping
Harden
D3FEND-Taktik
03
Genau ein Eingang, alles andere zu
Ein Reverse Proxy nimmt alle Anfragen auf Port 443 entgegen und verteilt sie. Kein Dienst bekommt einen eigenen Port im Router. Datenbanken und Admin-Oberflächen sind von außen gar nicht erreichbar.
Router: nur 80/443 weiterleiten, und 80 nur für die Umleitung auf HTTPS.
Vor Apps ohne eigene starke Anmeldung gehört ein zentrales Login, zum Beispiel per ForwardAuth.
Dienste, die nur du brauchst, über VPN statt öffentlich erreichbar machen.
Prüffrage: Gibt es genau einen öffentlichen Eingang und ein Login vor jeder App?
Jede Verbindung ist verschlüsselt. Zertifikate erneuern sich selbst, denn ein abgelaufenes Zertifikat ist der häufigste selbstverschuldete Ausfall.
Let's Encrypt mit automatischer Erneuerung, idealerweise ein Wildcard-Zertifikat per DNS-Challenge.
HSTS aktivieren, damit Browser nie mehr unverschlüsselt anfragen.
Veraltete Protokolle (TLS 1.0/1.1) abschalten.
Prüffrage: Ist jeder Zugriff per TLS verschlüsselt und erneuern sich Zertifikate automatisch?
Message EncryptionCertificate Rotation
05
Security-Header setzen
Mit wenigen Antwort-Headern sagst du dem Browser, was er darf. Die wichtigste Regel ist die Content Security Policy: Sie legt fest, woher Skripte, Styles und Schriften geladen werden dürfen. Ein allgemeines Beispiel für eine rein statische Seite:
Das gefährlichste Backup ist das, das seit Wochen still fehlschlägt. Jeder wichtige Job meldet aktiv seinen Erfolg. Bleibt die Meldung aus, gibt es Alarm.
Ein „Dead Man's Switch“: Push-Monitor mit erwartetem Intervall.
Monitoring für Erreichbarkeit, Zertifikatslaufzeit, Plattenplatz.
Den Alarmweg selbst testen: Kommt die Nachricht wirklich an?
Prüffrage: Meldet dein Monitoring Ausfälle und stille Fehlschläge von selbst?
Wer einen Server übernimmt, ändert Dateien: Startskripte, geplante Aufgaben, Schlüssel. Eine Prüfsumme über die kritischen Dateien macht das sichtbar.
Kritische Dateien regelmäßig hashen und mit einer Referenz vergleichen.
Die Referenz außerhalb des überwachten Systems ablegen.
Jede Abweichung erklären, statt sie wegzuklicken.
Prüffrage: Würdest du bemerken, wenn sich eine Systemdatei, ein Startskript oder eine geplante Aufgabe unerwartet ändert?
File Integrity MonitoringFile Hashing
Isolate
D3FEND-Taktik
13
Netze trennen, ausgehend begrenzen
Ein übernommener Dienst soll nicht mit allem reden können. Und er soll keinen beliebigen Rückkanal ins Internet aufbauen können.
Container nur an die Netze hängen, die sie brauchen. Datenbanken in ein internes Netz.
IoT-Geräte in ein eigenes VLAN.
Ausgehenden Verkehr pro Dienst auf das Nötige beschränken. Das ist mühsam, aber wirksam.
Prüffrage: Sind Netze getrennt (intern, IoT, öffentlich) und ist ausgehender Verkehr beschränkt?
Network IsolationOutbound Traffic Filtering
14
Am Rand filtern, aber mit Bedacht
Ratenbegrenzung und Reputationslisten halten Scanner und Brute-Force-Versuche fern, bevor eine App sie sieht. Ein falsch gesetzter Filter kann dich aber selbst aussperren.
Zuerst dort einführen, wo ein Fehlalarm nichts kostet.
Nie vor dem Weg, über den du einen Fehler beheben würdest.
Ein DNS-Filter im Heimnetz blockt bekannte Schad-Domains für alle Geräte.
Prüffrage: Werden Scanner, bekannte Angreifer-IPs und Schad-Domains am Rand gefiltert?
IP Reputation AnalysisDNS Denylisting
Evict
D3FEND-Taktik
15
Den Notfall vorher aufschreiben
Im Ernstfall fehlt die Ruhe zum Nachdenken. Ein kurzes Runbook sagt, was in welcher Reihenfolge zu tun ist.
Konto sperren und alle Sitzungen beenden. Wie geht das bei dir, in welchem Menü?
Welche Zugangsdaten müssen neu, wenn Dienst X übernommen wurde?
Einen Notzugang haben, der nicht von dem System abhängt, das gerade ausgefallen ist.
Prüffrage: Kannst du ein Konto sofort sperren, Sitzungen beenden und Zugangsdaten widerrufen?
Kostenlose öffentliche Werkzeuge zeigen, was ein Fremder von deiner Seite sieht: Mozilla Observatory und securityheaders.com prüfen die Header, SSL Labs die TLS-Konfiguration. Prüfe nur Systeme, die dir gehören.