DNSSEC-Implementierung: Die Vertrauenskette im DNS

Das Domain Name System (DNS) ist eine der kritischsten Infrastrukturschichten des Internets. Es übersetzt menschenlesbare Domainnamen in maschinenlesbare IP-Adressen. Ohne DNS wäre das Surfen im Web, das Senden von E-Mails oder die Nutzung von Cloud-Diensten praktisch unmöglich. Historisch gesehen wurde DNS jedoch ohne integrierte Sicherheitsmechanismen entwickelt, was es anfällig für Angriffe wie Cache-Poisoning, Spoofing und Man-in-the-Middle-Angriffe macht. Hier setzt DNS Security Extensions (DNSSEC) an.

DNSSEC erweitert das DNS um kryptografische Signaturen, die die Authentizität und Integrität von DNS-Antworten sicherstellen. Es schafft eine Vertrauenskette, die von der Root-Zone des DNS bis zu einzelnen Domainnamen reicht. Jede Zone signiert ihre eigenen Daten und fügt einen Hash ihrer öffentlichen Schlüssel in die übergeordnete Zone ein. Dies ermöglicht es Validierungs-Resolvern, die Gültigkeit einer DNS-Antwort kryptografisch zu überprüfen und sicherzustellen, dass die erhaltenen Daten nicht manipuliert wurden.

Grundlagen der DNSSEC-Funktionsweise

  • Digitale Signaturen (RRSIG): Jeder Ressourcendatensatz (RR) in einer signierten Zone erhält eine digitale Signatur (RRSIG). Diese Signatur wird mit dem privaten Schlüssel der Zone erstellt.
  • DNSKEY-Datensätze: Enthält die öffentlichen Schlüssel, die zur Überprüfung der RRSIG-Datensätze verwendet werden. Es gibt in der Regel einen Key-Signing Key (KSK) und einen Zone-Signing Key (ZSK).
  • NSEC/NSEC3-Datensätze: Diese Datensätze beweisen, dass ein bestimmter Name nicht existiert (Authenticated Denial of Existence) und verhindern so, dass Angreifer nicht-existierende Domains vortäuschen. NSEC3 bietet dabei den Vorteil, dass es die Zone nicht vollständig enumerierbar macht, indem es gehashte Domainnamen verwendet.
  • Delegation Signer (DS)-Datensätze: Ein Hash des öffentlichen KSK der untergeordneten Zone, der in der übergeordneten Zone veröffentlicht wird. Dies ist der Ankerpunkt für die Vertrauenskette.

Implementierung von DNSSEC

Die Implementierung von DNSSEC erfordert Massnahmen sowohl auf der autoritativen Serverseite (für die Zone selbst) als auch auf der Resolver-Seite (für die Validierung der Antworten). Für einen Domaininhaber bedeutet dies in erster Linie, die eigene Zone zu signieren und den DS-Eintrag beim Registrar oder der Registry zu hinterlegen.

Beispiel: DNSSEC-Signierung mit BIND

Das Signieren einer Zone mit BIND erfordert mehrere Schritte. Zuerst werden die Schlüssel generiert:


# KSK für example.com (Schlüssel zur Signierung anderer Schlüssel)
dnssec-keygen -a ECDSAP256SHA256 -b 256 -f KSK example.com

# ZSK für example.com (Schlüssel zur Signierung von RRs)
dnssec-keygen -a ECDSAP256SHA256 -b 256 example.com

Anschliessend wird die Zone signiert. Dies erzeugt die RRSIG-, NSEC3- und DNSKEY-Datensätze:


dnssec-signzone -A -3 -N INCREMENT -o example.com -t /etc/bind/db.example.com

Der Output dieser Befehle enthält auch den DS-Record, der an den Domain-Registrar übermittelt werden muss. Ein typischer DS-Eintrag könnte so aussehen:


example.com. IN DS 12345 13 2 1234567890abcdef1234567890abcdef12345678

Die Validierung auf der Resolver-Seite wird durch das Aktivieren von DNSSEC in den Resolver-Konfigurationen erreicht, z.B. durch die Option dnssec-enable yes; dnssec-validation auto; in BIND oder die Nutzung eines Providers, der DNSSEC-Validierung standardmässig anbietet (z.B. Google Public DNS, Cloudflare DNS).

Trotz der Komplexität ist die Implementierung von DNSSEC ein entscheidender Schritt zur Stärkung der DNS-Sicherheit, da sie die Integrität der Namensauflösung gewährleistet und viele Angriffsvektoren blockiert.

DNS-Filterung und Sinkholing: Aktiver Schutz vor Bedrohungen

Während DNSSEC die Authentizität von DNS-Antworten sicherstellt, schützt es nicht vor dem Zugriff auf bekannte bösartige Domains, die legitim signiert sein könnten. Hier kommen DNS-Filterung und Sinkholing ins Spiel, um den Zugriff auf schädliche Inhalte proaktiv zu unterbinden.

DNS-Filterung

DNS-Filterung ist eine Technik, die den Zugriff auf Domains blockiert, die mit Malware, Phishing, Spam oder anderen unerwünschten Inhalten in Verbindung gebracht werden. Sie funktioniert, indem DNS-Anfragen gegen eine oder mehrere Blocklisten (Denylists) geprüft werden. Wenn eine Anfrage an eine Domain auf einer Blockliste gerichtet ist, wird die Auflösung entweder verweigert (NXDOMAIN) oder auf eine sichere Seite umgeleitet, die den Benutzer über die Blockade informiert.

Implementierung der DNS-Filterung:

  1. Lokale Resolver: Organisationen können ihren internen DNS-Server (z.B. BIND, Unbound) so konfigurieren, dass er Blocklisten abruft und zur Filterung verwendet.
  2. Netzwerkgeräte: Viele Firewalls, Router und Gateways bieten integrierte DNS-Filterfunktionen.
  3. Spezialisierte Appliances/Software: Produkte wie Pi-hole für Heimnetzwerke oder kommerzielle Lösungen bieten dedizierte DNS-Filterfunktionen.
  4. Cloud-basierte Dienste: Protective DNS Services (siehe nächster Abschnitt) sind eine Form der DNS-Filterung in der Cloud.

Beispiel: DNS-Filterung mit BIND und einer Blockliste

Man kann BIND so konfigurieren, dass es Anfragen für bestimmte Domains auf eine lokale IP-Adresse umleitet oder blockiert. Eine gängige Methode ist die Verwendung einer Response Policy Zone (RPZ).


// In named.conf.options oder named.conf.local
response-policy {
    zone "rpz.blocklist.local" primary 127.0.0.1; // Oder Pfad zur Datei
};

// Beispiel einer RPZ-Zone-Datei (z.B. db.rpz.blocklist.local)
$TTL 1H
@ IN SOA localhost. root.localhost. (
    2023010101 ; Serial
    1H         ; Refresh
    15M        ; Retry
    1W         ; Expire
    1H )       ; Negative Cache TTL

@ IN NS localhost.

malicious-domain.com CNAME .
phishing-site.net CNAME .
; Oder NXDOMAIN für vollständige Blockade
malware-c2.xyz A 127.0.0.1

Der CNAME . Eintrag bewirkt, dass die Domain zu sich selbst kanonisiert wird, was effektiv eine Endlosschleife und damit eine Nichtauflösung zur Folge hat. Alternativ kann man eine spezifische IP-Adresse (z.B. 127.0.0.1 oder eine „Sinkhole“-IP) angeben oder NXDOMAIN zurückgeben, um die Domain als nicht existent zu markieren.

DNS-Sinkholing

DNS-Sinkholing ist eine spezifische Form der DNS-Filterung, bei der DNS-Anfragen für bekannte bösartige Domains auf eine kontrollierte, nicht-routingfähige IP-Adresse (ein „Sinkhole“) umgeleitet werden. Ziel ist es, die Kommunikation zwischen infizierten Systemen und ihren Command-and-Control (C2)-Servern zu unterbrechen und gleichzeitig die Möglichkeit zur Analyse der infizierten Systeme zu schaffen.

Vorteile des Sinkholing:

  • Unterbrechung der C2-Kommunikation: Infizierte Systeme können keine Befehle von Angreifern empfangen oder Daten exfiltrieren.
  • Identifizierung infizierter Hosts: Durch das Monitoring des Sinkhole-Servers können Administratoren feststellen, welche internen Systeme versuchen, mit den bösartigen Domains zu kommunizieren.
  • Bedrohungsanalyse: Der Sinkhole-Server kann so konfiguriert werden, dass er die Kommunikationsversuche protokolliert und so Einblicke in die Funktionsweise der Malware gibt.

Beispiel: Implementierung eines einfachen DNS-Sinkholes

Ein DNS-Server (z.B. BIND) wird so konfiguriert, dass er Anfragen für bösartige Domains auf eine interne, nicht-existente oder einen dedizierten Honeypot-IP-Adresse umleitet. Dies kann durch statische Zonen oder RPZ-Einträge geschehen.


// In named.conf.local oder einer separaten Zone-Datei
zone "malicious-c2.com" {
    type master;
    file "/etc/bind/db.sinkhole-c2";
};

// Inhalt von /etc/bind/db.sinkhole-c2
$TTL 1H
@ IN SOA localhost. root.localhost. (
    2023010102 ; Serial
    1H         ; Refresh
    15M        ; Retry
    1W         ; Expire
    1H )       ; Negative Cache TTL

@ IN NS localhost.
@ IN A 10.0.0.1 ; Die Sinkhole-IP-Adresse
* IN A 10.0.0.1  ; Wildcard für alle Subdomains

Alle Anfragen an malicious-c2.com und seine Subdomains würden nun auf 10.0.0.1 umgeleitet. Ein System, das versucht, diese Domain aufzulösen, würde die Sinkhole-IP erhalten und seine Kommunikation an diese Adresse senden, wo sie blockiert oder analysiert werden kann.

Protective DNS Services: Externe Absicherung

Protective DNS Services (PDS) sind cloud-basierte DNS-Resolver, die über grundlegende Namensauflösung hinaus erweiterte Sicherheitsfunktionen bieten. Anstatt die DNS-Anfragen direkt an die Root-Server oder autoritativen Server zu senden, leiten Clients ihre Anfragen an den PDS weiter, der diese dann mit integrierter Bedrohungsintelligenz prüft und filtert, bevor er die Antwort liefert.

Vorteile von Protective DNS Services

  • Umfassende Bedrohungsintelligenz: PDS-Anbieter verfügen über riesige Mengen an Echtzeit-Bedrohungsdaten, die ständig aktualisiert werden und weit über das hinausgehen, was eine einzelne Organisation pflegen könnte.
  • Einfache Implementierung: Die Konfiguration ist oft so einfach wie das Ändern der DNS-Einstellungen auf Clients, Routern oder DHCP-Servern, um die IP-Adressen des PDS zu verwenden.
  • Skalierbarkeit und Leistung: Cloud-basierte Dienste sind hochverfügbar, skalierbar und bieten oft eine geringere Latenz als interne Resolver.
  • Breiter Schutz: Schützt vor Malware, Phishing, Ransomware, C2-Kommunikation und oft auch vor unerwünschten Inhalten.
  • Reporting und Analyse: Viele PDS bieten detaillierte Dashboards und Berichte über blockierte Anfragen, Top-Bedrohungen und interne Hosts, die versuchen, auf bösartige Domains zuzugreifen.

Typische Funktionen

  • Malware- und Phishing-Blockierung: Blockiert den Zugriff auf Domains, die mit bekannten Malware-Verbreitern oder Phishing-Seiten in Verbindung stehen.
  • Command-and-Control (C2)-Schutz: Verhindert, dass infizierte Geräte mit C2-Servern kommunizieren.
  • Inhaltsfilterung: Ermöglicht die Blockierung von Kategorien von Websites (z.B. Glücksspiel, soziale Medien, nicht jugendfreie Inhalte).
  • DGA-Erkennung: Erkennung von Domain Generation Algorithms, die von Malware verwendet werden.
  • Cloud Access Security Broker (CASB)-Integration: Einige PDS bieten Integrationen zur Steuerung des Zugriffs auf Cloud-Anwendungen.

Beispiele für Protective DNS Services

Bekannte Anbieter in diesem Bereich sind:

  • Cisco Umbrella (OpenDNS): Ein Pionier im Bereich PDS, bietet umfassende Sicherheit auf DNS-Ebene.
  • Cloudflare for Teams (1.1.1.1 for Families/Teams): Bietet schnelle und sichere DNS-Auflösung mit optionaler Filterung.
  • Quad9: Ein gemeinnütziger Dienst, der DNS-Auflösung mit integrierter Bedrohungsintelligenz von mehreren Quellen kombiniert.
  • Microsoft Defender for Endpoint (DNS Protection): Bietet DNS-Schutz als Teil einer umfassenderen Endpoint-Security-Lösung.

Konfiguration der Clients zur Nutzung eines PDS

Die Umstellung auf einen PDS ist in der Regel unkompliziert. Für Endgeräte kann man die DNS-Server-Einstellungen manuell ändern:


# Beispiel für Cloudflare (mit Malware-Filter)
Primary DNS: 1.1.1.2
Secondary DNS: 1.0.0.2

Für Netzwerke wird dies oft über den DHCP-Server konfiguriert, der die PDS-IP-Adressen an alle Clients verteilt:


# Beispiel für dhcpd.conf
option domain-name-servers 1.1.1.2, 1.0.0.2;

Die Nutzung eines PDS ist eine effektive und oft kostengünstige Methode, um eine grundlegende Sicherheitsschicht gegen eine Vielzahl von Internetbedrohungen zu implementieren, insbesondere für Organisationen ohne dedizierte Sicherheitsressourcen.

DNS-Monitoring zur Bedrohungserkennung

DNS-Protokolle sind eine Goldgrube für die Bedrohungserkennung. Die Analyse von DNS-Anfragen und -Antworten kann frühzeitig Indikatoren für Kompromittierungen (IoCs) aufdecken, die auf Malware-Infektionen, Command-and-Control-Kommunikation, Datenexfiltration oder Aufklärungsversuche hinweisen.

Warum DNS-Monitoring kritisch ist

Fast jede Netzwerkaktivität beginnt mit einer DNS-Anfrage. Dies macht DNS zu einem idealen Kontrollpunkt für die Erkennung von Bedrohungen:

  • Frühe Erkennung: Malware muss oft eine Domain auflösen, um mit ihrem C2-Server zu kommunizieren. Dies geschieht vor der eigentlichen Netzwerkverbindung.
  • Umfassende Sichtbarkeit: DNS-Logs erfassen Anfragen von allen Geräten im Netzwerk, einschliesslich BYOD und IoT-Geräten, die möglicherweise nicht von Endpoint-Schutzlösungen abgedeckt werden.
  • Indikatoren für diverse Angriffsphasen: Von Aufklärung (Scans nach Subdomains) über Infektion (Download von Malware) bis hin zu C2 und Datenexfiltration (DNS-Tunneling).

Was sollte überwacht werden?

  • Anfragen an bekannte bösartige Domains: Abgleich von DNS-Anfragen mit aktuellen Bedrohungsfeeds und IoCs.
  • Ungewöhnliche Volumina oder Frequenzen: Plötzliche Spitzen in der Anzahl der Anfragen von einem einzelnen Host können auf Infektionen oder Scanning hinweisen.
  • Hohe NXDOMAIN-Raten: Viele Anfragen an nicht-existierende Domains können auf DGA-Malware, Brute-Force-Angriffe oder schlecht konfigurierte Systeme hindeuten.
  • Lange, zufällig aussehende Domainnamen (DGA): Malware generiert oft Domainnamen algorithmisch, um der Erkennung zu entgehen.
  • Ungewöhnliche DNS-Record-Typen: Exfiltration von Daten über TXT-Records (DNS-Tunneling) oder andere seltene Record-Typen.
  • Geografische Anomalien: Anfragen an Domains in ungewöhnlichen Regionen für interne Hosts.
  • Schnelle Domänenwechsel (Fast Flux): Schneller Wechsel von IP-Adressen für eine Domain, um die Blockierung zu erschweren.

Tools und Techniken für das DNS-Monitoring

  1. DNS-Server-Logs: BIND, Unbound, Windows DNS Server protokollieren detaillierte Informationen über Anfragen und Antworten. Diese Logs müssen zentralisiert und analysiert werden.
  2. SIEM-Systeme (Security Information and Event Management): Integration von DNS-Logs in SIEM-Systeme (z.B. Splunk, ELK Stack, Microsoft Sentinel) ermöglicht die Korrelation mit anderen Sicherheitsereignissen und die Erstellung von Alarmen.
  3. Dedizierte DNS-Analyse-Plattformen: Spezialisierte Tools wie Infoblox, BlueCat oder DDI-Lösungen (DNS, DHCP, IPAM) bieten erweiterte Monitoring- und Analysefunktionen.
  4. NetFlow/IPFIX: Analyse des Netzwerkverkehrs, um DNS-Anfragen zu identifizieren und ungewöhnliche Muster im Kontext des gesamten Verkehrs zu erkennen.

Beispiel: SIEM-Regel zur Erkennung von DGA-ähnlichen Domains

Eine einfache Heuristik für DGA-Erkennung ist die Analyse der Länge und Entropie von Domainnamen. Ein SIEM könnte eine Regel verwenden, die alarmiert, wenn eine Domain eine ungewöhnlich hohe Entropie oder Länge aufweist.


// Pseudo-Code für eine SIEM-Regel
IF event.source = "DNS_SERVER_LOG"
AND event.type = "QUERY"
AND LENGTH(event.domain_name) > 15
AND ENTROPY(event.domain_name) > 0.8  // Hohe Entropie deutet auf Zufälligkeit hin
THEN ALERT("Potenzielle DGA-Domain-Anfrage detektiert: " + event.domain_name)

Die Implementierung eines robusten DNS-Monitorings erfordert eine sorgfältige Planung, die Integration von Bedrohungsintelligenz und die kontinuierliche Anpassung der Erkennungsregeln, ist aber unerlässlich für eine proaktive Sicherheitsstrategie.

Praktische Implementierungsstrategien und Best Practices

Die Implementierung einer umfassenden DNS-Sicherheit ist keine einmalige Aufgabe, sondern ein kontinuierlicher Prozess, der verschiedene Ebenen des Schutzes kombiniert. Hier sind einige Best Practices und Strategien für eine effektive DNS-Sicherheitsarchitektur.

1. Schichtweise Verteidigung (Defense in Depth)

Verlassen Sie sich nicht auf eine einzige Sicherheitsmassnahme. Kombinieren Sie DNSSEC, DNS-Filterung, Sinkholing und Monitoring, um eine robuste, mehrschichtige Verteidigung aufzubauen:

  • DNSSEC: Grundlegende Integrität und Authentizität der Namensauflösung.
  • DNS-Filterung/PDS: Proaktive Blockierung bekannter bösartiger Domains.
  • Sinkholing: Unterbrechung der C2-Kommunikation und Identifizierung infizierter Hosts.
  • DNS-Monitoring: Erkennung neuer oder unbekannter Bedrohungen und Verhaltensanomalien.

2. Regelmässige Updates und Patches

Halten Sie alle DNS-Server (autoritativ und rekursiv) sowie die zugehörigen Softwarekomponenten (z.B. BIND, Unbound) stets auf dem neuesten Stand. Schwachstellen in DNS-Software können schwerwiegende Auswirkungen haben.

3. DNSSEC-Schlüsselmanagement und -Rotation

Implementieren Sie eine robuste Strategie für das Schlüsselmanagement von DNSSEC. Dazu gehört die regelmässige Rotation der Zone-Signing Keys (ZSK) und in längeren Intervallen auch der Key-Signing Keys (KSK). Ein Kompromittierter Schlüssel kann die gesamte Vertrauenskette untergraben. Automatisierung ist hier der Schlüssel zur Vermeidung von Fehlern.

4. Überprüfung und Validierung

Testen Sie regelmässig die Funktionalität Ihrer DNSSEC-Implementierung mit Tools wie dig +dnssec oder Online-Validatoren. Überprüfen Sie, ob Ihre Filterlisten korrekt angewendet werden und ob das Sinkholing wie erwartet funktioniert. Validierung ist entscheidend, um die Wirksamkeit der Sicherheitsmassnahmen zu gewährleisten.

5. Integration mit Bedrohungsintelligenz

Speisen Sie Ihre DNS-Filter und Monitoring-Systeme kontinuierlich mit aktuellen Bedrohungsfeeds. Dies kann von kommerziellen Anbietern, Open-Source-Projekten oder ISACs (Information Sharing and Analysis Centers) stammen. Aktualität ist entscheidend für eine wirksame Abwehr.

6. Segmentierung und Zugriffskontrolle

Isolieren Sie interne DNS-Resolver von externen Netzwerken, wo immer möglich. Beschränken Sie den Zugriff auf DNS-Server nur auf autorisiertes Personal und verwenden Sie starke Authentifizierungsmechanismen. Implementieren Sie Firewalls, um den DNS-Verkehr zu kontrollieren und nur legitime Anfragen zuzulassen.

7. Protokollierung und Auditierung

Stellen Sie sicher, dass DNS-Logs umfassend sind, sicher gespeichert und regelmässig auditiert werden. Dies ist nicht nur für die Bedrohungserkennung wichtig, sondern auch für Compliance-Anforderungen und die forensische Analyse nach einem Vorfall.

8. Benutzeraufklärung

Obwohl technische Massnahmen entscheidend sind, bleibt der Mensch oft das schwächste Glied. Schulen Sie Benutzer über Phishing, Social Engineering und die Bedeutung sicherer Internetpraktiken. Eine gut informierte Belegschaft ist eine zusätzliche Verteidigungslinie.

9. Hybrid-Umgebungen berücksichtigen

In modernen IT-Landschaften mit einer Mischung aus On-Premise-Infrastruktur und Cloud-Diensten müssen DNS-Sicherheitsstrategien angepasst werden. Überlegen Sie, wie Ihre lokalen DNS-Resolver mit Cloud-basierten Protective DNS Services zusammenarbeiten können, oder wie Sie DNS-Sicherheit für Ihre Cloud-Workloads umsetzen.

„Die Sicherheit des DNS ist nicht nur eine technische Aufgabe, sondern eine strategische Notwendigkeit. Eine vernachlässigte DNS-Infrastruktur ist ein offenes Tor für Angreifer.“

Durch die konsequente Anwendung dieser Strategien und Best Practices können Organisationen ihre DNS-Infrastruktur erheblich härten und einen wesentlichen Beitrag zur allgemeinen Cybersicherheit leisten. DNS-Sicherheit ist ein grundlegender Baustein für eine widerstandsfähige IT-Umgebung in einer zunehmend komplexen Bedrohungslandschaft.

Benötigen Sie Cybersecurity-Beratung?

Unser Team hilft Ihnen, Ihre IT-Infrastruktur zu sichern und Bedrohungen proaktiv zu erkennen.

Kontakt aufnehmen