# CNAME-Cloaking

CNAME-Cloaking (auch CNAME Cloaking, DNS Delegation oder DNS Aliasing) ist eine Tracking-Technik, um Werbeblocker zu umgehen, indem Tracker von Drittanbietern als Inhalte der aufgerufenen Seite verschleiert werden.

## Hintergrund

Das Einbinden von Inhalten von Drittanbietern in Webseiten ist weit verbreitet. Eine Untersuchung der 1 Mio. meist aufgerufener Seiten nach dem Alexa-Ranking aus dem Jahr 2015 ergab, dass etwa 9 von 10 Seiten Inhalte von Drittanbietern einbinden. Etwa 63 % dieser Seiten binden Cookies und etwa 83 % JavaScript-Code von Drittanbietern ein. Gründe hierfür sind, dass externe Bibliotheken wie jQuery, die für Funktionalität der Webseite notwendig sind, eingebunden werden. Zudem kann Werbung eingebunden werden. Das Einbinden externer Ressourcen bringt allerdings Nachteile für den Internetnutzer, weil Drittanbieter die Aktivität der Nutzer über mehrere Seiten hinweg nachvollziehen können. Werbeblocker können diese Situation für den Nutzer verbessern.
In einer Studie aus dem Jahr 2015 wurde geschätzt, dass etwa 22 % der aktivsten Nutzer, die Browser-Erweiterung Adblock Plus nutzen. Hinzu kommt, das zunehmend Webbrowser wie Firefox oder Safari Werbeblocker direkt integriert und standardmäßig aktiviert haben. Die Einführung von Tracking-Schutz im Firefox-Browser hat zu Umsatzeinbusen in der Werbeindustrie geführt und diese dadurch in Schwierigkeiten gebracht.
Durch den zunehmenden Einsatz von Werbeblockern und Schutzmaßnahmen gegen Drittanbietertracking, hat die Tracking-Industrie die neue Technik CNAME-Cloaking eingeführt. Größere Aufmerksamkeit bekam das Thema in der zweiten Hälfte des Jahres 2019, als Tracking-Unternehmen wie Eulerian und Criteo offensiv mit dieser Technik warben.

## Funktionsweise
### Domain Name System

Im Internet werden Rechner durch IP-Adressen angesprochen. Diese sind jedoch nicht sprechend genug für einen intuitiven Umgang. Praktischer ist es daher Rechner über ihren Namen anzusprechen. Dazu muss allerdings einem Rechnernamen eine IP-Adresse zugeordnet werden können. Diese Aufgabe übernimmt das Domain Name System (DNS). Beispielsweise wird der Domain example.com die IP-Adresse 93.184.216.34 zugeordnet (bei IPv4).
Der DNS-Namensraum hat eine Baumförmige Struktur. Er besitzt eine einzige Wurzel, genannt Root. Der DNS-Baum hat mehrere Abzweigungen, wobei jeder Knoten des Baumes eine Domain repräsentiert. Eine Domain kann in weitere Teile untergliedert werden, die Subdomain genannt werden. Der Vollständige Domainname setzt sich aus den Namen der einzelnen Knoten zusammen, die mit einem Punkt getrennt werden. Durch diese Struktur ist eine Dezentralisierung bei der Administration möglich. Eine Organisation, die eine Domain verwaltet, kann diese in Subdomains aufteilen in die Organisation von diesen an andere Organisationen delegieren. Diese können die Domain wiederum in weitere Subdomains aufteilen und die Organisation von diesen weiter delegieren. Diese Hierarchie ist im Bild am Beispiel der Domain de.wikipedia.org dargestellt. Der Root verweist auf die Top-Level-Domain .org, die von der Public Interest Registry verwaltet wird. Dieser Knoten zeigt auf den Namen wikipedia. Diese wird von der Wikimedia Foundation verwaltet. Für die einzelnen Sprachversionen der Wikipedia wird diese Domain von der Wikimedia Foundation wiederum in verschiedene Subdomains unterteilt. Die deutschsprachige Wikipedia hat somit die vollständige Domain de.wikipedia.org.

### CNAME Resource Record

Der CNAME Resource Record weist im DNS einem Aliasnamen dessen kanonischen Hostnamen zu. Der kanonische Hostname verweist wiederum auf die IP-Adresse. Entsprechend steht die Abkürzung CNAME für canonical name. Beispielsweise verweist der Aliasname de.wikipedia.org auf den kanonischen Namen dyna.wikimedia.org.
Der eigentliche Zweck des CNAME Resource Records besteht nicht im Tracking. Ändert sich die IP-Adresse einer Domäne, auf die mehrere Aliasnamen verweisen, muss die Änderung nur einmal vorgenommen werden. Außerdem können mehrere unterschiedliche Dienste mit einer IP-Adresse betrieben werden.

### CNAME-Cloaking

Beim CNAME-Cloaking bindet die Aufgerufene Seite z. B. eine JavaScript-Datei von einer Subdomain der eigenen Seite wie etwa track.example.com ein. Diese Subdomain ist aber ein Aliasname, der auf eine Domain eines Trackingunternehmens verweist, z. B. x.tracker.com. Das Trackingscript kommt also tatsächlich von einem Drittanbieter. Da Browser-Erweiterungen wie Werbeblocker üblicherweise kein Zugriff auf die DNS-Ebene haben, sieht es für diese so aus als käme das Script von der aufgerufenen Seite.
Tracking-Gegenmaßnahmen, die darauf abzielen Cookies von Drittanbietern zu blockieren sind daher wirkungslos gegen CNAME-Cloaking. Um die eingebunden Trackinginhalte zu blockieren, müssten Werbeblocker, die mit schwarzen Listen arbeiten, jede einzelne Subdomain von jeder Webseite, die CNAME-Cloacking einsetzt mit auf die Liste aufnehmen. Die größer werdenden Listen benötigten deutlich mehr Rechenleistung. Die maximale Länge der Schwarzen Listen ist zudem auf mehreren Plattformen limitiert. Die verwendeten Subdomains können mit wenig Aufwand und sogar automatisiert geändert werden. Dadurch kann das Aktuell-Halten der Liste deutlich erschwert werden.
Dagegen bestehen auch verschiedene Einschränkungen im Vergleich mit herkömmlichem Drittanbieter-Tracking. Zum Beispiel können die Seitenaufrufe von Nutzern auf verschiedenen Seiten nicht so leicht mit Drittanbieter-Cookies verfolgt werden. Dafür wird zunehmend auf Fingerprinting gesetzt.

## Risiken für Sicherheit

Cookies sind kleine Textinformationen, die im Webbrowser gespeichert werden. Ein Webserver teilt das Cookie dem Browser in einer HTTP-Antwort mit. Nachfolgenden HTTP-Anfragen hängt der Browser das Cookie an. Cookies werden häufig zur Authentisierung der Nutzer verwendet. Nachdem sich der Nutzer einmal z. B. mit Nutzernamen und Passwort gegenüber dem Webserver authentisiert hat, bekommt der Browser ein geheimes Sitzungscookie. Bei folgenden HTTP-Anfragen wird das Cookie mitgesendet und authentisiert den Nutzer dadurch automatisch.
Cookies enthalten verschiedene Attribute, die unter anderem regeln wann ein Cookie mitversandt wird. Eines davon ist Domain. Wird es leer gelassen, wird das Cookie nur an genau dieselbe Domain versendet. Beispielsweise wird ein Cookie, das von der Domain www.example.com erhalten wurde nur an Anfragen an genau diese Domain angehängt. Wird dagegen example.com eingetragen, wird es an alle Anfragen an example.com und alle Subdomains angehängt, also auch an track.example.com. Wird hinter der Domain track.example.com ein Drittanbieter verschleiert, erhält dieser Dritte das Sitzungscookie und kann sich als den Nutzer ausgeben.

## Verbreitung

In einer Studie aus dem Jahr 2020 wurden die 300.000 höchstgelistete Webseiten nach dem Alexa-Ranking auf den Einsatz von CNAME-Cloaking untersucht. Dabei setzten 0,59 % dieser Webseiten die Technik ein.

## Gegenmaßnahmen

Seit Version 1.25.0 erkennt uBlock Origin für Firefox CNAME-Cloaking, indem es die kanonischen Hostnamen nachschlägt. In einer Studie erzielte der Werbeblocker damit gute Ergebnisse. Dies funktioniert jedoch nur für den Firefox-Browser, da Browser-Erweiterungen auf anderen gängigen Browsern nicht auf die DNS-Ebene zugreifen können. Ab Version 1.25.0 schlägt auch der Webbrowser Brave kanonische Namen nach und erkennt und blockiert somit CNAME-Cloaking.
Eine Alternative sind Werbeblocker auf DNS-Ebene. Der DNS-Server-Anbieter NextDNS erkennt CNAME-Cloaking und filtert diese Domains. Ab Version 5.0 schützt Pi-hole gegen die Technik.