Menü
DE

DNS-Werbeblocker: Vergangenheit, Gegenwart, Zukunft

Dieser Artikel ist eine Textversion eines Vortrags, den der CTO und Mitbegründer von Adguard, Andrey Meshkov, auf dem Ad Blocker Dev Summit 2021 gehalten hat. Sie können also entweder das Video ansehen (auf Englisch) oder diesen Text lesen, um mehr über Inhaltsblockierung im Massenformat zu erfahren.

Absolut alles ist heute mit dem Internet verbunden, vom Fernseher bis zu intelligenten Glühbirnen, von mobilen Geräten bis zu intelligenten Autos. Da es überall im Internet Werbung und Tracker gibt, scheint ein browserbasierter Werbeblocker nicht genug zu sein. Er bietet nur ein winziges Fenster in das „bessere Internet“ ohne aggressive und aufdringliche Werbebanner, die um Ihre Aufmerksamkeit buhlen. Was aber, wenn Sie dieses „Fenster“ erweitern wollen?

Dann schnallen Sie sich an und machen Sie sich bereit für eine faszinierende Reise durch die Vergangenheit, Gegenwart und Zukunft der DNS-Filterung. Und warum? Weil DNS die Antwort ist!

Was Blockierung auf DNS-Ebene bedeutet

Um Ihr Wissen aufzufrischen: DNS steht für „Domain Name System“ und dient dazu, die Namen von Websites so zu übersetzen, dass sie von Browsern verstanden werden können, nämlich in IP-Adressen. Sie können sich DNS als das „Adressbuch“ des Internets vorstellen. Jedes Mal, wenn Sie eine Website aufrufen, sendet Ihr Browser eine DNS-Anfrage an einen DNS-Server (der in der Regel von Ihrem Internetdienstanbieter bereitgestellt wird), um die IP-Adresse der Website zu ermitteln. Ein normaler DNS-Resolver gibt einfach die IP-Adresse der angefragten Domain zurück.

Ihr Gerät verwendet immer einen bestimmten DNS-Server, um die IP-Adressen der gewünschten Domainnamen zu erhalten.

Es gibt auch DNS-Server, die Sperrungen auf DNS-Ebene anbieten. In der Regel wird dazu die DNS-Sinkholing-Technik verwendet, bei der nicht weiterleitbare Adressen für blockierte Domains vergeben werden. Wenn Ihr Gerät eine „schlechte“ Anfrage sendet, sei es eine Anzeige oder ein Tracker, antwortet ein DNS-Server mit der IP-Adresse 0.0.0.0 für die gesperrte Domain. Die App kann also einfach keine Verbindung zu dieser Adresse herstellen, und wir haben das gewünschte Ergebnis — die Verbindung wird verhindert.

So wird der Zugriff auf eine Domain mit Hilfe eines DNS-Servers gesperrt

Andere Optionen sind die Antwort NXDOMAIN (was bedeutet, dass die Domain nicht existiert) oder REFUSED (was bedeutet, dass der Server die Bearbeitung der Anfrage abgelehnt hat). Möglicherweise bemerken Sie den Unterschied zwischen diesen beiden Optionen nicht, aber einige ältere Geräte interpretieren REFUSED möglicherweise falsch und versuchen, einen Ersatz-DNS-Server zu verwenden.

DNS-Vorgänger — HOSTS-Datei

Erstaunlicherweise ist die Blockierung auf DNS-Ebene die älteste bekannte Methode der Werbeblockierung. Wie ist das möglich?

Damals, als das Internet noch jung war und ARPANET hieß, wurde ein Namenssystem entwickelt, das die IP-Adresse eines Computers einer eindeutigen ASCII-basierten Kennung zuordnete. Da nur wenige Computer an das ARPANET angeschlossen waren, unterhielt das Network Information Center des US-Verteidigungsministeriums eine Datei namens HOSTS.TXT — eine Hauptliste mit der Adresse und dem Hostnamen jedes Computers. Die Systemadministratoren luden die Datei hosts.txt von Zeit zu Zeit herunter. Wenn man den Namen eines ARPANET-Computers kannte, konnte man seine IP-Adresse einfach in der HOSTS-Datei nachschlagen.

So sah die Datei ARPANET HOSTS.TXT aus

Es wurde jedoch bald klar, dass die rasant wachsende Zahl von Hosts den NIC-Computer überforderte. Alle wollten ihre Computer im ARPANET haben, aber sie mussten warten, bis NIC die HOSTS.TXT aktualisierte. Es musste also etwas anderes her. So präsentierte Paul Mockapetris Ende 1987 das Domain Name System.

Aber die HOSTS-Datei wurde nicht vergessen. Schon bald nach dem Erscheinen der ersten Internet-Werbung entdeckte man, dass die HOSTS.TXT als Sperrliste verwendet werden kann, um das Herunterladen von Werbung zu verhindern, und zwar nach dem gleichen Prinzip wie beim DNS-Sinkholing.

Sobald dies entdeckt wurde, engagierten sich einige Leute dafür, die ersten Sperrlisten zu erstellen und sie mit allen zu teilen. Es gibt einige bemerkenswerte Beispiele für Sperrlisten mit einer mehr als 20-jährigen Geschichte, die auch heute noch aktiv weiterentwickelt werden, wie Peter Lowes Sperrlisten, Steven Blacks Sperrlisten oder Dan Pollocks Hosts.

Auszug aus Peter Lowes Sperrliste

Als die erste Version des Werbeblockers für Firefox erschien, konnten einige Leute dessen Zweck einfach nicht verstehen. Sie waren bereits damit zufrieden, was die HOSTS-Datei für sie tat.

Ausschnitt aus einem Forum

Es gibt jedoch einige Probleme mit der HOSTS-Datei, die nicht einfach zu lösen sind.

Die Weiterleitung von Updates Es gibt keine gute Möglichkeit, ein Update der HOSTS-Datei an die Nutzer weiterzuleiten. Sie müssen entweder eine Software haben, die das für Sie erledigt, oder Sie müssen sehr geduldig sein und es regelmäßig manuell machen.

HOSTS-Dateien sind in der Regel riesig, da man keine Platzhalter verwenden kann und jede Domain darin auflisten muss. Die Syntax der HOSTS-Datei ist einfach nicht dafür gedacht, auf diese Weise verwendet zu werden. Schauen Sie sich einfach das Bild unten an, auf dem eine der größten Sperrlisten — Energized Unified — zu sehen ist. Wie Sie sehen können, enthält sie über 700.000 Domains und wiegt etwa 21 Megabyte. Die Verteilung einer 21-MB-Datei an Millionen von Nutzern täglich ist bereits ein ernsthaftes Problem.

Sperrliste Energized Unified

Öffentliche DNS-Server, die Werbung sperren, erschienen als brauchbare Alternative zur Verwendung einer HOSTS-Datei. Es genügte, das Gerät für die Verwendung eines solchen Servers zu konfigurieren, und die Nutzer mussten sich nicht mehr um die Aktualisierung der HOSTS-Dateien kümmern. Einer der ersten öffentlichen DNS-Server wurde Alternate DNS genannt und erschien 2015. Er wurde von einer einzigen Person verwaltet. Später, im Jahr 2016, brachten wir AdGuard DNS auf den Markt.

Neues Leben für DNS-Blocker

Vor den letzten paar Jahren war DNS als Standard fast eingefroren, mit nur geringen Änderungen. Aber dann kam es zu neuen Standards, die alles überrollten. Und das große Thema ist die DNS-Verschlüsselung: DNS-over-TLS, DNS-over-HTTPS, DNS-over-QUIC, die alle zum Mainstream geworden sind und einen großen Einfluss auf Inhaltsblockierung haben!

Vor der zunehmenden Popularität der DNS-Verschlüsselung waren die Optionen für einen einfachen Nutzer zu komplex:

  • Die HOSTS-Datei zu verwenden und irgendwie Aktualisierungen zu erhalten.
  • Einen einfachen DNS-Server zu verwenden und die Einschränkungen zu akzeptieren, z. B. die Unmöglichkeit, ihn für ein mobiles Netzwerk auf dem Handy einzurichten. Oder die Notwendigkeit, jeden Netzwerkadapter auf den Desktops zu konfigurieren und dafür in ziemlich tief liegende Einstellungen einzutauchen.
  • Ein VPN (oder eine lokale VPN-Software) zu verwenden.

Nachdem sich die DNS-Verschlüsselung durchgesetzt hat, sind einige technische Hindernisse entfallen. Jetzt ist es viel einfacher, einen DNS-Server zu konfigurieren, und er kann in jedem Netzwerk verwendet werden. Zwar müssen Sie immer noch in die Geräteeinstellungen eintauchen, aber nicht mehr so tief wie früher. Die DNS-Verschlüsselung wird nativ von Android 9+ (DoT, DoH in Vorbereitung), iOS 14+ und macOS 15+ (DoT, DoH) sowie Windows 11 (die Unterstützung ist allerdings eher begrenzt) unterstützt. Dies allein gab der Popularität von DNS-Blockierungslösungen einen enormen Schub.

Darüber hinaus hat die Entwicklung der DNS-Verschlüsselung es den öffentlichen DNS-Servern ermöglicht, den Nutzern individuelle Anpassungsmöglichkeiten zu bieten — mit anderen Worten, jeder hat die Möglichkeit zu wählen, was gesperrt werden soll und was nicht. Früher konnte man benutzerdefinierte Regeln auf Grundlage des Domain-Namens des DNS-Servers nur anwenden, wenn man die IP-Adresse des Nutzers „verknüpfte“, was keine gute Lösung war.

DNS für Inhaltsblockierung verwenden: Vor- und Nachteile

DNS für das Blockieren von Inhalten zu verwenden, hat einige Vorteile, aber auch offensichtliche Schwächen. Lassen Sie uns diese hier auflisten:

Vorteile

  • Keine zusätzliche Software-Installation erforderlich.
  • Unabhängig von Browserhersteller oder Betriebssystem.
  • Beeinträchtigt die Leistung nicht.
  • Der Betrieb eines öffentlichen DNS-Servers ermöglicht es Ihnen, das gesamte Internet zu erfassen. Dies ist sehr nützlich, wenn Sie eine Sperrliste führen. Sie können ungenutzte Regeln loswerden und sofort von neuen Bedrohungen erfahren. DNS hat keine blinden Flecken, da es alle Geräte und nicht nur die Browser überwacht.
  • Eine zentralisierte Lösung kann einige Probleme besser beheben.

Werfen wir zum Beispiel einen Blick auf das CNAME-Täuschen, eine Taktik, die einige Tracker nutzten, um sich vor Blockern zu verstecken. Mithilfe eines CNAME-DNS-Eintrags versteckten sie den echten Domain-Namen eines Drittanbieters und täuschten ihn als Domain eines Erstanbieters vor. Mit AdGuard DNS waren wir in der Lage, all diese vorgetäuschten Domains herauszufinden und eine Liste von ihnen zu veröffentlichen, so dass selbst Inhaltsblocker, die keinen Zugriff auf DNS haben, dies verhindern können.

Ein weiteres Beispiel ist die Verwendung von Proxys zur Maskierung von Trackern. Generell können Sie CloudFlare oder CloudFront verwenden, um einen serverlosen Proxy zu konfigurieren, der die ursprüngliche Domain eines Drittanbieters verbirgt. DNS kann Ihnen dabei im Allgemeinen nicht helfen, aber es kann ein guter Ausgangspunkt sein, um solche Proxys zu erkennen.

Nachteile

  • Kann nicht mit Werbung von Erstanbietern umgehen. Zum Beispiel können Sie keine YouTube-Werbung blockieren, weil sie auf der gleichen Domain gehostet wird wie legitime Videos.
  • Keine kosmetische Filterung. Bei einer reinen DNS-Blockierung werden Sie die meisten Anzeigen nicht sehen, aber Sie werden einige ziemlich hässliche Websites mit kaputten Frames und leeren Anzeigenfeldern haben.
  • Höhere Bruchwahrscheinlichkeit. So könnten beispielsweise einige Anwendungen oder Websites nicht funktionieren, weil Google Analytics blockiert ist, und Sie können nichts dagegen tun.
  • Leichter zu umgehen. Die Anwendung kann einfach einen anderen DNS-Server verwenden.

Was man verbessern kann

Die DNS-Filterung weist einige Schwachstellen auf, die behoben oder zumindest gemildert werden könnten.

Fehlerseite „Zugriff verweigert“

Wenn die Domain auf DNS-Ebene blockiert ist, sehen Sie derzeit nur eine hässliche Fehlerseite. Das beeinträchtigt die Benutzererfahrung. Sie würden zum Beispiel gerne die Sperrung vorübergehend aufheben, aber es gibt einfach keine Möglichkeit, dies zu tun.

Glücklicherweise gibt es einen RFC-Entwurf (ein Request for Comments-Dokument) genau zu diesem Thema: DNS Access Denied Error Page, der es ermöglicht, dem Nutzer eine schöne Fehlerseite zu zeigen, ohne auf hässliche Lösungen zurückgreifen zu müssen (wie z.B. die Forderung, ein HTTPS-Zertifikat zu installieren).

Mechanismen zur Erkennung von verschlüsseltem DNS

Jetzt müssen Sie DNS auf jedem Gerät konfigurieren. Wäre es nicht besser, wenn Sie es einfach in Ihrem Router einrichten könnten? Einige neue Router unterstützen bereits standardmäßig die DNS-Verschlüsselung. Viele alte Router akzeptieren jedoch immer noch nur einfache DNS-Server. Die Arbeitsgruppe Adaptive DNS Discovery hat sich zum Ziel gesetzt, diese Situation zu verbessern.

Nennenswerte RFC-Entwürfe sind:

  1. „Discovery of Designated Resolvers“, der die Erkennung von verschlüsselten DNS-Servern über einen speziellen DNS-Eintrag ermöglicht. Das soll folgendermaßen funktionieren. Sie konfigurieren einen einfachen DNS-Server, und dann sendet Ihr Betriebssystem eine spezielle DNS-Abfrage an ihn, ob es einen verschlüsselten DNS-Server gibt, den es verwenden kann.
  2. Der zweite bemerkenswerte RFC betrifft eine neue DHCP-Option für verschlüsselte DNS-Server. Diese Option würde es einem Router ermöglichen, verschlüsselte DNS-Einstellungen an die mit diesem Router verbundenen Computer weiterzugeben.

App-Erkennung

Schließlich kann noch eine Sache verbessert werden. Wir müssen in der Lage sein zu erkennen, welche App diese oder jene DNS-Anfrage stellt. Es gibt allerdings keinen RFC, der uns dabei helfen könnte. Aber wir können versuchen, es selbst zu tun und eine Art „DNS-Fingerabdruck“ zumindest für die populären Anwendungen zu erstellen.

Wenn wir wüssten, welche Anwendung eine DNS-Anfrage stellt, könnten wir flexibler bestimmen, was blockiert wird und was nicht.

  1. Wir wollen zum Beispiel das Facebook-Tracking blockieren, aber wenn wir es global blockieren, gehen alle Facebook-Apps kaputt. Daher würden wir das gerne nur in Nicht-Facebook-Apps tun.
  2. Ein anderes reales Problem ist, dass das Blockieren von AppsFlyer (einem System zur Mobile-Marketing-Analyse) blockieren, gehen einige sehr populäre Apps kaputt. Wir würden es lieber selektiv zulassen (d.h. nur für die betroffenen Apps) und es ansonsten blockiert lassen.

Um diese DNS-Fingerabdrücke zu erstellen, muss das Netzwerkverhalten jeder beliebten Anwendung analysiert werden, und wir arbeiten an einer Lösung, die dies ermöglicht.

Was ist AdGuard DNS?

Wenn Sie Zugang zum "besseren Internet" haben wollen, sollten Sie unbedingt DNS in Kombination mit VPN und Werbeblocker verwenden. Und wir empfehlen Ihnen, sich AdGuard DNS genauer anzusehen.

Was ist also AdGuard DNS? Es ist einer der datenschutzfreundlichsten DNS-Dienste, die Sie wählen können. Er unterstützt so zuverlässige Verschlüsselungsprotokolle wie DNS-over-HTTPS, DNS-over-TLS und DNS-over-QUIC. Er kann Anfragen an Werbe-, Tracking- bzw. Adult-Domains (optional) erkennen und mit einer Leerantwort darauf antworten. AdGuard verfügt über eine eigene Datenbank von Domains, die Werbung, Tracker und Betrug bedienen, und diese wird regelmäßig aktualisiert. Zudem können Sie Ihre eigenen Regeln zu Sperrlisten hinzufügen.

Um Ihnen einen umfassenderen Überblick über AdGuard DNS zu geben, möchte ich einige weitere Punkte erwähnen:

  • Es besteht aus mehreren Servern, die sich an 14 Standorten befinden.
  • Alle diese Server geben die gleichen IP-Adressen über BGP (Border Gateway Protocol) an.
  • Es hat derzeit eine Kapazität von etwa dreihunderttausend DNS-Anfragen pro Sekunde.
  • AdGuard DNS ist in Golang geschrieben.
  • Etwa 75 % des DNS-Verkehrs ist verschlüsselt. Dies ist der eigentliche Unterschied zwischen DNS-Servern, die Inhalte blockieren, und anderen. Bei CloudFlare oder Quad9 sehen Sie, dass verschlüsseltes DNS nur einen kleinen Teil aller Abfragen ausmacht. Ganz anders bei AdGuard DNS: Der größte Teil des Datenverkehrs ist verschlüsselt.

DNS-Filterregeln-Syntax

Die Sperrlisten von AdGuard DNS werden in einer speziellen DNS-Filtersyntax erstellt. Wir waren mit den Beschränkungen von Sperrlisten wie HOSTS-Dateien nicht zufrieden, deshalb haben wir für AdGuard DNS die vertraute Syntax im Adblock-Stil verwendet. Diese wurde dann schrittweise mit DNS-spezifischen Modifikatoren erweitert.

Beispiele für DNS-Filterregeln. Die vollständige Spezifikation ist auf Github verfügbar.

Nur zur Illustration des Unterschieds. Auf der linken Seite sehen Sie die Statistiken für den AdGuard DNS-Filter (den wir standardmäßig verwenden). Er ist relativ kurz, blockiert aber tatsächlich etwa 900.000 Domains. Und auf der linken Seite sehen Sie eine andere Sperrliste — Energized Ultimate, eine HOSTS-Datei mit 500.000 Domains. Genau das blockiert sie — 500K Domains.

Statistiken nach AdGuard DNS-Daten

AdGuard DNS-Server-Knoten

Jeder AdGuard DNS-Server-Knoten besteht aus mehreren Teilen. Am Frontend haben wir einen DNS-Forwarder (geschrieben in Golang), der die gesamte Logik implementiert, d.h. DNS-Filterung, Caching, etc.

Am Backend haben wir eine ungebundene Serverinstanz, die DNS-Rekursion bereitstellt. Die Last eines einzelnen Serverknotens liegt zwischen 5.000 und 40.000 Antworten, je nach Standort des Knotens (einige Standorte sind beliebter als andere).

Implementierungen von DNS-Filtermodulen

Implementierungen von DNS-Filtermodulen sind Open Source und auf Github verfügbar. Es gibt zwei davon. Die erste heißt urlfilter und ist eine Golang-Bibliothek, die wir in AdGuard DNS und AdGuard Home verwenden. Sie bietet eine relativ hohe Leistung und einen geringen Speicherbedarf. Die zweite ist AdGuard DnsLibs, eine C++-Bibliothek, die wir in unseren Anwendungen für die Nutzer verwenden. Neben DNS-Filterung bietet sie auch Implementierungen von DNS-Verschlüsselung.

Wenn Sie sich mit AdGuard DNS vor Werbung und Trackern schützen möchten, folgen Sie einfach dieser Installationsanleitung.

Ein Blick in die Zukunft

Browserbasierte Inhaltsblocker sind zwar bei gelegentlichen Nutzern am beliebtesten, nicht aber bei den Betreibern von Filterlisten. Es gibt viel mehr HOSTS-Dateien und Domain-Listen, die von Freiwilligen gepflegt werden, als Filterlisten für browserbasierte Blocker. Dies kann ein Zeichen dafür sein, dass Inhaltsblockierung auf DNS-Ebene große Perspektiven hat.

Statistiken nach filterlists.com

Welche Aussichten hat also die Inhaltsblockierung auf DNS-Ebene? Erstens wird sie sich schneller verbreiten als bisher. Windows 11 bietet Unterstützung für die DNS-Verschlüsselung, neue Router unterstützen ebenfalls die DNS-Verschlüsselung, was es den Nutzern leichter machen wird, sie einzurichten und zu verwenden.

Es wird zwar immer mehr Umgehungen von Inhaltsblockierungen über DNS geben, aber sie werden immer noch geringfügig sein. Es braucht eine Menge Mühe von verschiedenen Seiten, um sie zu umgehen, und damit das passiert, sollte die DNS-Inhaltsblockierung so populär sein wie die Browser-Blocker. Und das wird wahrscheinlich nicht passieren, trotz der Wachstumsrate.

DNS wird browserbasierte Blocker auf keinen Fall ersetzen. Dennoch wird die DNS-Blockierung ihren Platz in der Privatsphäre und Sicherheit der Internetnutzer behalten.

Hat Ihnen dieser Beitrag gefallen?