DNSSEC – Einblick in die Blackbox

DNSSEC – Einblick in die Blackbox

Das Internet ist ein weltumspannendes Netz für Informationen, Beziehungen und Angebote. Dass wir bei einer Anfrage auch am richtigen Ort landen, dafür sorgt das Domain Name System (DNS). Dieses stammt noch aus der Anfangszeit des Web. Da sich das Web seit seinen Anfängen punkto Grösse, Möglichkeiten, aber auch Missbrauch rasant entwickelt hat, hat internezzo die Erweiterung DNSSEC in Betrieb genommen. Welche Vorteile dies für die Sicherheit Ihrer Websites bringt und was hinter den Begriffen steckt, erklärt dieser Blogbeitrag.

Am Anfang war DNS

DNS dürfte eines der Urprotokolle des Internets sein – entwickelt wurde es in den frühen 1980er-Jahren. Damals war das Internet noch ein überschaubares Netzwerk, bestehend aus wenigen Knoten. Vermutlich kannten sich die Betreiber an den beteiligten Universitäten noch persönlich. Kurzum, man vertraute sich gegenseitig. Das dürfte auch der Grund sein, dass diese frühen Protokolle, wie DNS oder SMTP, für den Mail-Transport ursprünglich keinerlei Schutzmechanismen enthielten.

Durch das sprunghafte und weltweite Wachstum des globalen Internets, wie wir es heute kennen, wuchs der Nutzerkreis ins Unüberschaubare. Neben dem Grossteil der seriösen Nutzer, tummeln sich heute im Internet auch einige dubiose Personen. Darunter sind die Spam-Versender, eine der wohl offensichtlichsten und sichtbarsten Übeltäter.

Ganz ursprünglich führte jeder Computer eine Liste aller anderen Computer mit deren Netzwerkadressen. Wollte also der Nutzer eine Netzwerkverbindung von seinem Computer zu einem anderen Computer aufbauen, wurde die dafür nötige Netzwerkadresse lokal aus der vorliegenden Liste ausgelesen. Dass dieses Prozedere bei wachsender Anzahl Netzwerkknoten nicht skaliert, wurde bereits anfangs der 1980er-Jahre erkannt. Daraufhin wurde nach einer Lösung gesucht. So wurde das heute noch in Betrieb befindliche Protokoll DNS entwickelt und initial in RFC 822 dokumentiert.

Was macht dieses DNS eigentlich genau?

DNS ist eine der vielen Abkürzungen im Internet und steht für «Domain Name System». In seiner ursprünglichen Form fungierte DNS sinngemäss als Telefonbuch und Auskunftsbüro: Einen DNS-Server konnte man nach der Netzwerkadresse eines Hostnamens befragen, und erhielt die Netzwerkadresse zurück. Umgekehrt konnte man auch nach dem passenden Hostnamen für eine bekannte Netzwerkadresse fragen. Ohne diese «Übersetzungsfunktionalität», müssten die Benutzer statt «www.internezzo.ch» z. B. die IPv4-Adresse «195.234.43.123» im Browser eintragen. Das wäre natürlich nicht praktikabel und auch nicht skalierbar, da häufig mehrere Websites unter der gleichen IP-Adresse abrufbar sind.

dns-hierarchie

Beispiel einer DNS-Hierarchie.

Diese Namensauflösung erfolgt grundsätzlich auch heute noch genauso – und zwar im Hintergrund, meist durch das Betriebssystem. Dabei gibt es zwei Seiten: Die authoritative, publizierende Seite und die abfragende, resp. auflösende Seite. Die publizierende Seite ist bei Hosting-Providern und Firmen, welche ihre DNS-Infrastruktur selbst betreiben, anzusiedeln. Die abfragende resp. auflösende Seite, besteht aus den End-Usern und ihren Geräten sowie den DNS-Resolvern. Das sind Nameserver, welche die Anfragen der Nutzer aus dem eigenen Netzwerk beantworten. Letztere sind in jedem Firmennetzwerk, oder spätestens beim genutzten Internet-Provider (Swisscom, Sunrise etc.) in Betrieb.     

Authoritative, publizierende Seite

Bei Hosting-Providern
Bei Firmen, die eine eigene DNS-Infrastruktur betreiben

Abfragende, auflösende Seite

Internet-Betreiber oder Access-Betreiber (Swisscom, Sunrise etc.) betreiben DNS-Resolver = Nameserver

Neben der Telefonbuchauflösung von www-Adressen aus einem Browser, bietet DNS, als Basisprotokoll für das gesamte Internet, weitere, wichtige Funktionalitäten: So kann über die Nameserver des DNS z. B. abgerufen werden, welche Mailserver (Mail-Exchanger) für die Adressen einer Domain zuständig sind. Diese Information wird in den sogenannten MX-Records publiziert.

DNS - ein Protokoll im Wandel

Das Protokoll wurde in den letzten Jahrzehnten weiter ausgebaut. Es kamen AAAA-Records für IPv6-Adressen dazu, TXT-Records für Domain-Verification-Einträge oder SPF-Policies, CAA-Einträge mit Informationen für die Zertifikats-Herausgeber (CAs), Hinweise für die automatisierte Konfiguration von Mail-Clients und mehr.

Damit wird DNS zu einer immer wichtigeren Quelle an Informationen zu einer Domain. Immer häufiger werden dabei auch sicherheitsrelevante Informationen via DNS publiziert. Mit dieser Entwicklung einhergehend, steigt aber auch das Risiko für einen Missbrauch – bei möglicherweise auch steigendem Schadensausmass.

«Kein Unternehmen kann es sich heute erlauben, DNS bei der Sicherheitsstrategie zu ignorieren, wenn es in der digitalen Wirtschaft Erfolg haben will», so Lori MacVittie von F5 Networks. (Quelle https://www.ip-insider.de/dns-als-achillesferse-der-digitalen-wirtschaft-a-848002)

Der gleiche Artikel nennt DNS die Achillesferse der digitalen Wirtschaft. Obschon ohne DNS gar nichts geht im Internet, ist die Sicherheit von DNS bei vielen Firmen nicht auf der Agenda.

Wir erinnern uns: DNS ist ein sehr altes Protokoll. Lange Zeit funktionierte es ohne Schutzmechanismen, ohne Authentifizierung, unverschlüsselte Übertragung etc. Weshalb sind nun Sicherheitsvorkehrungen nötig?

Mögliche Angriffszenarien

Stellen wir uns vor, dass wir im Browser die Adresse http://e-banking.meinebank.ch/ öffnen. Dabei gelingt es jemandem, diesen Namen auf eine andere IP-Adresse «umzuleiten» und den Browser damit zum falschen Webserver zu schicken. Es muss natürlich nicht gerade die E-Banking-Site der Hausbank sein, es könnte auch ein Webmail-Zugriff oder eine beliebige Login-Seite sein. Wie bei einer Phishing-Site, wäre es fatal, wenn Sie dort Ihre Zugangsdaten wie Benutzername und Kennwort eingeben. Wer weiss, was die Angreifer mit Ihren Daten treiben würden? Diese Art des Angriffs wird DNS-Spoofing genannt.

Im Gegensatz zu einer Phishing-Site ist in diesem Fall für den Benutzer gar nicht erkenntlich, dass er auf einer «falschen», oder auffälligen URL gelandet ist. HTTPS und der Einsatz von TLS-Zertifikaten erschweren diese Art des Angriffs zwar bereits, verhindern ihn aber nicht gänzlich.

Ein anderes Beispiel: Was wäre, wenn jemand einem oder mehreren Mailservern vorgaukeln könnte, der zuständige Mailserver für eine Domain sei nicht X sondern neu Y? Sämtliche Mails für diese Domain gingen fortan an den falschen Mailserver. Wie viele Betriebsgeheimnisse, oder zumindest interne und nicht für die Öffentlichkeit bestimmte Informationen gelangen da wohl in falsche Hände? Wenn der Angreifer die Mails nur durchschleust, kopiert und dann dem effektiven Mail-Server weiterreicht, würde dieser Angriff vermutlich über längere Zeit gar unentdeckt bleiben.

Hier kommt DNSSEC

Hier setzt DNSSEC als Erweiterung des DNS-Protokolls an, indem es die erhaltene DNS-Antwort überprüft. Damit wird es möglich, manipulierte Antworten zu erkennen.

Die DNSSEC Funktionalität basiert auf kryptografischen Verfahren zur Signatur der einzelnen DNS-Einträge. Das klingt kompliziert und ist es im Detail vermutlich auch. Deshalb gebe ich in diesem Blogbeitrag primär einen Überblick. Für die technischen Details verweise ich gerne auf Wikipedia.

Vereinfacht dargestellt ist es ähnlich wie mit dem https-Protokoll und TLS-Zertifikaten: Unsere Browser vertrauen einem Zertifikat, sofern es von einer vertrauenswürdigen Stelle herausgegeben und signiert wurde. Diese Signatur kann technisch überprüft werden und wenn das Zertifikat nicht manipuliert wurde, ist die Signatur «valide».

Ob ein TLS-Zertifikat oder eine DNSSEC-Signatur unverändert und damit «valide» ist, wird durch kryptografische Methoden überprüft. Der Herausgabestelle von Zertifikaten vertrauen wir, weil diese fix im Browser respektive dem Betriebssystem hinterlegt ist. Genauso verhält es sich mit den Root-Keys bei DNSSEC.

Signierte Auslieferung im DNS

dns-hierarchie-mit-dnssec

Beispiel einer DNS-Hierarchie mit DNSSEC.

Die hierarchisch strukturierten Nameserver, ausgehend von der sogenannten Root-Zone, kennen jeweils den Schlüssel der hierarchisch nächsttiefer liegenden Ebene. Dann erzeugen die authoritativen Nameserver entsprechende Signaturen und liefern diese mit den DNS-Antworten aus. Der «Trust», also das Vertrauen in diese Signatur entsteht, wenn wir einerseits dem ursprünglichen Schlüssel (Trust Anchor) vertrauen und die sogenannte «Chain of Trust» lückenlos ist.

Damit ein Domain-Name für DNSSEC aktiviert werden kann, müssen die nötigen DNSSEC-Keys via dem Domain-Registrar eingetragen werden. Diese speichern die Information wiederum in der zuständigen Registry ab. Für die Schweizer .ch-Domains ist dies die SWITCH.

Prüfung der DNSSEC Signaturen

DNS-Resolver, also die Nameserver in Firmen-Netzwerken resp. bei den Access-Providern (Swisscom, Sunrise etc.) kennen diese ursprünglichen Schlüssel, sogenannte Trust Anchors, vorgängig und sind somit in der Lage, die Kette der Namensauflösung Stück für Stück zu überprüfen. So entscheiden sie, ob ihnen dabei saubere, unveränderte Antworten gegeben wurden – oder, ob ihnen jemand gefälschte, manipulierte Daten unterjubeln will. Im letzten Fall wird der Nameserver, bei aktiver DNSSEC-Validierung, dem anfragenden Endgerät schlicht gar keine Antwort ausliefern. Damit werden die oben erwähnten Angriffs-Szenarien umgangen und der Benutzer nicht auf z. B. gefälschte Login-Seiten geführt.

Damit DNSSEC als Ganzes funktioniert, benötigt es nun beide Seiten:

  1. Die publizierende Seite der Hosting-Provider und Firmen, welche die authoritativen Nameserver für die DNS-Zonen betreiben. Sie müssen die DNSSEC-Signaturen generieren und sicherstellen, dass diese korrekt mit den DNS-Antworten ausgeliefert werden.
  2. Die abfragende Seite, also die Access-Provider resp. die IT-Abteilungen der Firmen. Diese sind gefordert, auf Ihren DNS-Resolvern die Validierung der DNSSEC-Signaturen zu aktivieren.

Akzeptanz und Nutzung

Die SWITCH als Registry für alle .ch Domain-Namen publiziert Statistiken zum Roll-Out und der Nutzung von DNSSEC im Bezug auf die Schweiz. Der Chart zeigt klar in die richtige Richtung, denn es werden immer mehr Domains DNSSEC-signiert und damit geschützt ausgeliefert. Allerdings ist es momentan aber noch klar der kleinere Teil. Denn von den rund 2,23 Millionen .ch-Domains sind bis jetzt erst knapp 5 % mit DNSSEC ausgestattet.

Verbreitung von DNSSEC in der Schweiz

Die Nutzung in anderen Ländern und Regionen variiert ziemlich deutlich zwischen wenigen Prozenten und fast kompletter Abdeckung mittels DNSSEC für alle Domain-Namen einer Top-Level-Domain.

Grundsätzlich gibt es hier ein Henne-Ei-Problem

Die Access-Provider, welche die auflösenden Nameserver für Ihre Kunden betreiben (z. B. Swisscom, Sunrise, WWZ, Cablecom/UPC etc.), sehen keinen dringenden Handlungsbedarf die DNSSEC-Validierung auf ihrer Infrastruktur zu aktivieren, da noch so wenige Domains signiert ausgeliefert werden.

Demgegenüber stehen die Hosting-Provider resp. Firmen, welche die authoritativen Nameserver betreiben. Sie sehen die Situation aus einem anderen Blickwinkel: Warum sollen sie DNSSEC implementieren, wenn anschliessend niemand oder nur ganz wenige, effektiv die generierten Signaturen prüfen und überhaupt einen Nutzen daraus ziehen?

Für beide Seiten dürfte die Investition in DNSSEC zwar das Internet ein Stück weit besser und sicherer machen. Jedoch bezahlt niemand die damit verbundenen Aufwände für die Weiterentwicklung der Infrastruktur, die Schulung der Mitarbeitenden und die steigende Komplexität der eigenen Infrastruktur. Das bringt selbstredend – wie jede Veränderung – auch ein gewisses Risiko mit sich.

Wir stehen im Austausch mit den Verantwortlichen von sowohl Hosting-Providern wie auch Access-Providern und wissen von beiden Seiten, dass die grösseren Anbieter in der Schweiz an den Vorbereitungen sind. Daher gehen wir davon aus, dass es nur eine Frage der Zeit ist, bis an mehreren Orten DNSSEC-Funktionalitäten aktiviert und ausgerollt werden. Gerade wenn ein einzelner grösserer Hosting-Provider auf einen Schlag mehrere hunderttausende Domains aktiviert, könnte die Kurve bereits sprunghaft ansteigen.

internezzo und DNSSEC

Wir betrachten DNSSEC als eine Weiterentwicklung des DNS, die eine Verbesserung der Sicherheit mit sich bringt. Da wir kontinuierlich neue Technologien prüfen und wo sinnvoll implementieren, haben wir bereits früh damit begonnen, uns in das Thema einzuarbeiten. Zum Glück nutzen wir mit Knot eine moderne Nameserver-Software, die alle nötigen Features mit sich bringt.

Damit war bei uns klar, dass wir möglichst bald DNSSEC für unsere Kunden anbieten möchten. Sofern möglich, am besten «automatisch» und für jede Domain.

DNS-Plattform

Wir betreiben für unsere Kunden die DNS-Infrastruktur für ihre Domains. Und damit konkret mehrere authoritative Nameserver. Diese sind geo-redundant ausgelegt und werden in unterschiedlichen Rechenzentren, über unterschiedliche Provider angeschlossen. Damit ist eine optimale Redundanz gegeben.

Karte aus unserem Monitoring

Um die Menge an Domains und die DNS-Zonen zu bewirtschaften, steht im Hintergrund Einiges an Automatisierung. Damit stellen wir sicher, dass die richtigen DNS-Zonen mit den richtigen DNS-Einträgen und der richtigen Konfiguration (mit/ohne DNSSEC etc.) ausgeliefert werden. Parallel überwachen wir nicht nur die Erreichbarkeit unserer Nameserver, sondern auch die korrekte Auslieferung jeder einzelnen DNS-Zone. Sofern DNSSEC aktiviert ist, wird auch geprüft, ob die von uns ausgelieferten DNSSEC Signaturen valide sind. Sämtliche Mutationen an den DNS-Einträgen sind zudem versioniert und damit auch auditierbar.

Über Monate haben wir immer wieder Tests durchgeführt, das System ergänzt, erweitert, optimiert und nach und nach sämtliche eigenen Domains DNSSEC aktiviert.

Schlussendlich fehlte aber noch ein Baustein, die Komplett-Automatisierung

Bis hierhin war DNSSEC mit einigem manuellem Aufwand verbunden. Um eine Domain für DNSSEC zu konfigurieren, mussten sowohl wir wie auch der Registrar der Domain, einige Schritte erledigen. Dazu gehörte unter anderem auch, das Copy-pasten der kryptischen Schlüssel. Alles in allem nicht effizient – und vor allem zu fehleranfällig für einen flächendeckenden Roll-Out.

Und dann kam CDS, Zack-Bumm-Glücklich

Mit dem Launch des CDS-Mechanismus durch das Team bei SWITCH, kam Anfang 2019 die Lösung. CDS ist ein einfacher Weg, sozusagen «von unten nach oben» zu signalisieren, dass die Domain DNSSEC enabled sein möchte. Wir konnten, nachdem wir erneut diverse kleinere Tests durchgeführt haben, auf einen Schlag sämtliche .ch Domains DNSSEC enablen. Das CDS-Prozedere dauerte anschliessend vier Tage, der Rest erfolgte dann aber vollständig automatisiert und ohne jegliche weitere manuelle Intervention. Das oben erwähnte Prozedere mit der manuellen Eintragung von DNSSEC Keys beim Registrar ist damit hinfällig.

Damit ist internezzo einer der ersten Schweizer Hosting-Anbieter, der sämtliche betriebenen .ch DNS-Zonen mittels CDS flächendeckend DNSSEC-aktiviert hat.

Das tolle an dieser Lösung ist, dass damit sämtliche manuellen Prozesse – sei es beim Roll-Out für eine Domain oder bei einem späteren Schlüssel-Tausch (Key-Rollover) etc. – vollautomatisiert ablaufen. Begleitet von der kontinuierlichen Überwachung durch unser Monitoring-System, kann dabei eigentlich nichts mehr schief gehen.

Ein Wehrmutstropfen bleibt: Dieser Mechanismus ist – zumindest bis anhin – erst für wenige Top-Level Domains Domains möglich. Wir hoffen darauf, dass weitere Registries bald nachziehen und wir DNSSEC auch für weitere Top-Level-Domains wie .com, .net oder .swiss vollautomatisiert nutzen können. Bei Interesse können wir selbstverständlich auch jetzt schon Domains manuell aktivieren.

Kopf-Bild: NeONBRAND on Unsplash