Übersicht › Sicherheit › Härtungs-Leitfaden

Leitfaden · zum Selbermachen

Die eigene Seite härten, in 16 Schritten

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?
Asset InventorySoftware InventoryConfiguration Inventory
02

Die eigene Angriffsfläche kennen

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?
Network Access MediationWeb Session Access Mediation
04

TLS überall, automatisch erneuert

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:

Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self';
  img-src 'self' data:; font-src 'self'; frame-ancestors 'none';
  base-uri 'self'; form-action 'self'
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()
  • Erst im Modus „Content-Security-Policy-Report-Only“ testen, dann scharf schalten.
  • Schriften und Bibliotheken selbst hosten statt aus einem CDN zu laden. Das hilft auch beim Datenschutz.
Prüffrage: Setzt deine Seite Security-Header wie CSP und HSTS?
Application Configuration Hardening
06

Zweiter Faktor für jede Anmeldung von außen

Gestohlene Passwörter sind der häufigste Weg hinein. Ein zweiter Faktor macht ein erbeutetes Passwort allein wertlos.

  • Am besten Passkeys oder Hardware-Schlüssel, sonst eine TOTP-App. SMS nur, wenn nichts anderes geht.
  • Ein zentraler Identity Provider bedeutet: einmal richtig einrichten statt in jeder App neu.
  • Wiederherstellungscodes offline aufbewahren.
Prüffrage: Verlangt jede Anmeldung von außen einen zweiten Faktor?
Multi-factor AuthenticationOne-time Password
07

Updates mit Plan statt mit Glück

Bekannte Lücken werden innerhalb von Stunden automatisiert ausgenutzt. Updates müssen also schnell kommen, aber nachvollziehbar.

  • Image-Versionen festschreiben statt :latest. So weißt du, was läuft.
  • Ein Bot (z. B. Renovate) schlägt neue Versionen als Pull Request vor, du entscheidest.
  • Sicherheitsmeldungen der wichtigsten Komponenten abonnieren.
Prüffrage: Werden Updates zeitnah und nachvollziehbar eingespielt?
Software Update
08

Geheimnisse raus aus Git

Ein Passwort in einem Repository ist für immer im Verlauf, auch wenn es später gelöscht wird.

  • Zugangsdaten aus einem Passwort-Tresor in Dateien oder Secrets verteilen, im Repository steht nur der Verweis.
  • Einen Secret-Scanner als Pre-Commit-Hook oder in der Pipeline einsetzen.
  • Was einmal geleakt ist, wird rotiert. Löschen allein reicht nicht.
Prüffrage: Liegen Zugangsdaten nie im Code oder in Git, und rotierst du sie nach einem Leak?
Credential ScrubbingCredential Rotation
09

Minimale Rechte für jeden Dienst

Wird ein Dienst übernommen, entscheidet seine Rechte-Ausstattung über den Schaden.

  • Container nicht als root, mit no-new-privileges und wenn möglich read-only.
  • Den Docker-Socket nur dort einbinden, wo es unvermeidlich ist. Er entspricht Root-Rechten auf dem Host.
  • Standardpasswörter ändern, ungenutzte Admin-Zugänge und Fernzugriffe abschalten.
Prüffrage: Laufen Dienste mit minimalen Rechten, ohne unnötige Admin- oder Fernzugänge?
User Account PermissionsDisable Remote Access

Detect

D3FEND-Taktik
10

Anmeldungen zentral sammeln und auswerten

Ein Angriff beginnt fast immer mit Anmeldeversuchen. Wer die Logs nur hat, aber nie hineinsieht, bemerkt ihn nicht.

  • Logs aller Dienste an eine zentrale Stelle schicken.
  • Alarm bei gehäuften Fehlversuchen, neuen Geräten oder Anmeldungen zu ungewöhnlichen Zeiten.
  • Alarme aufs Handy, aber nur die wichtigen. Zu viele Alarme werden ignoriert.
Prüffrage: Werden Anmeldungen zentral gesammelt und Auffälligkeiten gemeldet?
Authentication Event ThresholdingUser Behavior Analysis
11

Stille Ausfälle hörbar machen

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?
Platform MonitoringApplication Performance Monitoring
12

Unerwartete Änderungen bemerken

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?
Account LockingSession TerminationCredential Revocation

Restore

D3FEND-Taktik
16

3-2-1-Backups, und die Wiederherstellung üben

Drei Kopien auf zwei Medien, eine außer Haus, verschlüsselt. Ein Backup ist aber erst dann eines, wenn die Wiederherstellung einmal geklappt hat.

  • Mindestens einmal im Jahr einen Dienst vollständig auf leerer Hardware wiederherstellen.
  • Das Passwort des Backups nicht nur in dem Tresor ablegen, der selbst im Backup steckt.
  • Die Kopie außer Haus so anlegen, dass ein Angreifer sie nicht löschen kann.
Prüffrage: Gibt es verschlüsselte Backups mit einer Kopie außer Haus?
Prüffrage: Hast du eine vollständige Wiederherstellung schon einmal geübt, inklusive neuer Zugangsdaten?
Restore ObjectRestore DatabaseRestore Configuration

Von außen nachprüfen

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.

D3FEND-Würfel →