DNS-Malwarefilter und Office 365

Cloudflare hat im April 2020 einen neuen Dienst in Betrieb genommen und auch andere Hersteller haben Produkte wie FortiGuard u.a. am Start, über die Privatpersonen und Firmen ihre Sicherheit erhöhen können. Der Vorteil bei Malware ist aber zugleich ein Nachteil für anderen Cloud-Dienste.

DNS Funktionsweise

Die Zeiten, zu denen ein Dienst per IP-Adresse angesprochen wurde, sind schon lange vorbei. Heute nutzt jeder Dienst einen DNS-Namen, um flexibel und sicher zu sein.

  • Flexibel,
    weil der Name abhängig von der Region etc. auf verfügbare Server in der Nähe verwiesen werden kann.
  • Sicher,
    Weil auf einen Namen ein Zertifikat ausgestellt werden kann und der Client damit verschlüsseln und die Gegenstelle identifizieren kann.

Die Schlüsselkomponente ist dabei der DNS-Service, der aus dem sprechenden Namen eine IP-Adresse machen muss. Die Kette eines privaten PCs in der Familie ist in der Regel wie folgt:

Der PC fragt den DSL-Router, der seinerseits den DNS-Service ihres Zugangsproviders fragt. Der versucht nun zu dem angefragten Namen eine IP-Adresse zu finden. Er schaut in seine Cache nach oder fragt einen Upstream- der Root-Server um die Antwort direkt oder als Verweis (Refer) zum DNS-Server mit den Daten.

Der Weg eines PCs in einer Firma weicht davon in der Regel etwas ab:

  • Interne DNS-Server
    Die meisten Firmen haben intern eigene DNS-Server zur Auflösung des Active Directory und lokaler Server.
  • DNS-Forwarder
    Um externe Namen aufzulösen, fragen diese internen DNS-Server in der Regel nicht direkt "das Internet" sondern einen DNS-Service der Firewall oder in einer DMZ-Zone. So kann die Firma weitere Einstellungen, z.B. für VPN-Client etc. umsetzen
  • Proxy statt NAT
    Größere Firmen leiten ausgehende Zugriff auch lieber über einen entsprechenden Proxy-Server, der dann seinerseits als Client die externe Auflösung nutzt.

Mittlerweile gibt es aber wohl immer weniger Firmen, bei denen interne Systeme keine externe Auflösung nutzen können, auch wenn dies Hintertüren öffnen kann. Diverse Protokolle, z.B. RTP (Audio/Video) funktionieren leider nicht sehr gut über Proxy-Dienste oder VPNs, so dass es durchaus Varianten zu beachten gibt.

Dennoch können sowohl private Anwender als auch Firmen die DNS-Auflösung beeinflussen und mit einem passenden Dienst einen Mehrwert erreichen.

Bedingter Schutz durch DNS

Der Trick besteht nun darin, dass jeder Client nicht die "normalen DNS-Server" fragt, sondern z.B. einen Anbieter wie Cloudflare, der extra weltweit DNS-Server bereit hält, die nicht nur Namen auflösen, sondern z.B. auch Abfragen auf "böse Hostnamen" anders behandelt. Die Antwort könnte dann auf "nicht auflösbar" leiten, was den Anwender aber eher irritiert. Cloudflare macht es wie folgt:

# Normale Auflösung über Fritz!Box
(Resolve-DnsName -Name www.youporn.com -Type A ).ipaddress  = 66.254.114.79

# Normale Auflösung über Cloudflare
(Resolve-DnsName -Name www.youporn.com -Type A -Server 1.1.1.1).ipaddress  = 66.254.114.79

# Normale Auflösung über Cloudflare Malware  (Porno ist keine Malware)
(Resolve-DnsName -Name www.youporn.com -Type A -Server 1.1.1.2).ipaddress  = 66.254.114.79

# Normale Auflösung über Cloudflare Malware+ Adult-Filter
(Resolve-DnsName -Name www.youporn.com -Type A -Server 1.1.1.3).ipaddress  = 0.0.0.0

In letztem Fall löst Cloudflare die Adresse auf 0.0.0.0 auf und der Browser liefert einen Fehler:

Wenn Sie also den "richtigen DNS-Server" fragen und dieser die dunklen Seiten des Internet ausblendet, könnten Sie davon ausgehen, dass Sie einen besseren Schutz haben. Dem ist leider nicht so, denn

  • Malware umgeht DNS
    Jede ordentliche Software vertraut auf die Namensauflösung des Betriebssystems. Aber wenn eine Malware "nach Hause" kommunizieren will und über den normalen Weg ein 0.0.0.0 bekommt, dann weiß sie ja, dass etwas nicht funktioniert. In einer Firma kann eine Firewall eine direkte Abfrage per DNS unterbinden (Port 53/UDP/TCP). Aber im Homeoffice oder bei Privatpersonen kann die Malware einfach einen anderen DNS-Server (8.8.8.8/8.8.4.4/1.1.1.1/9.9.9.9 etc.) fragen um ihren filternden DNS-Server zu umgehen.
  • Malware verzichtet auf DNS
    Zumindest in den Anfangszeiten eines Thread kann die Malware auf fest hinterlegte IP-Adressen zugreifen und über den Weg sogar neue Updates beziehen, wenn einzelne Adressen geblockt werden. DNS merkt davon aber gar nichts. Es gibt sogar Malware, die z.B. einem Twitter-Account folgen oder Instagram-Bilder lesen, um eine aktive Konfiguration zu finden.
    Auch der bekannte "Tor-Browser" kennt ja Mittel und Wege den Zugriff auf Daten im Internet vor zu intensiver Überwachung zu verbergen.
  • False Positive
    Ein DNS-Server sieht nur die Anfrage nach dem Namen aber nicht das Protokoll, welches die Adresse fragen will. Es gibt nicht nur in Universitäten noch sehr viele Webseiten, die für unterschiedliche Personen einfach ein Unterverzeichnis bereitstellen. Wenn eine dieser Seiten nun vergiftet ist, kann der DNS-Server nur den kompletten Webserver blocken.

Auf den ersten Blick erscheint ein DNS-Filter eine gute Idee zu sein. Aber es gibt noch mindestens zwei weitere Aspekte, die sich beachten sollten und daher einen eigenen Abschnitt bekommen haben:

  • Service Usage Rights
  • DNS-Server und Cloud-Dienste

Service Usage Rights (Cloudflare)

Es gibt mehrere Anbieter für offene DNS-Server und exemplarisch habe ich einmal Cloudflare aufgeführt, da Sie mit 1.1.1.1 nicht nur einen bekannten DNS-Service betreiben sondern im April 2020 unter dem Namen "1.1.1.1 for Families" einen Service für Privatanwender bereitgestellt haben, der Familien auch vor Malware aber auch 18+ Content schützen soll.

Auch wenn der Betrieb eines DNS-Servers einfach erscheint, so bedeuten doch sehr viele Anfrage ein nicht zu unterschätzendes Datenvolumen. Die Plattform muss ja betrieben werden und da es kein "Bezahlmodell" gibt, muss Cloudflare ja einen anderen Vorteil darin sehen. Die Beschreibung zur Konfiguration ist einfach: Sie müssen ihren DSL-Router einfach so einstellen, dass er Cloudflare anstelle des automatisch vom Provider zugewiesenen DNS-Servers verwendet. Die Server werden auch gleich mitgeliefert:

Malware-Blockierung:
Primäre DNS: 1.1.1.2 (2606:4700:4700::1112)
Sekundäre DNS: 1.0.0.2 (2606:4700:4700::1002) 

Malware- und 18+ Inhalte-Blockierung:
Primäre DNS: 1.1.1.3 (2606:4700:4700::1113)
Sekundäre DNS: 1.0.0.3 (2606:4700:4700::1003)

Auf der Webseite von Cloudflare gibt es auch gleich Anleitungen für in anderen Ländern verbreitete Router (Asus, Ubiquiti etc.) Die in Deutschland häufig vertretene Fritz!Box fehlt aber kann natürlich auch entsprechend angepasst werden. Leider ist dies nur global und nicht z.B. getrennt für das Gast-Netzwerk möglich.

Soweit sieh das alles nach einer "runden Sache" aus, wenn Sie die von mir oben schon beschrieben Einschränkungen im Funktionsprinzip berücksichtigen.

Cloudflare ist aber keine gGmbH und auch keine Stiftung sondern ein amerikanisches börsennotiertes Unternehmen.

Da sollten sie schon mal einen Blick auf das Geschäftsmodell werfen, ehe Sie ihre DNS-Anfragen über einen Anbieter abwickeln, mit dem Sie keinen Vertrag haben und auch keinen Vertrag für "1.1.1.1 for families" abschließen können. Ich habe zumindest kein passendes Produkt mit Preis gefunden. Dafür gibt es auf https://www.cloudflare.com/website-terms/ eine lange Liste an Vorgaben, denen Sie bei der Nutzung zustimmen. Inwieweit das rechtlich bindend ist, steht eh auf einem anderen Blatt

By agreeing to these Terms, you represent and warrant to us: (i) that you are at least eighteen (18) years of age ...
Quelle: https://www.cloudflare.com/website-terms/

Der überwiegende Teil der Familien hat Kinder unter 18, denn sonst würde man sich doch nicht die Mühe machen Adult-Content zu filtern

By submitting, posting, or publishing your content, ..., information, data, ... to any Website or Online Service, you are granting Cloudflare a perpetual, irrevocable, worldwide, non-exclusive, royalty-free right and license (with the right to sublicense) to use, incorporate, exploit, display, perform, reproduce, distribute, and prepare derivative works of your Content. You will retain ownership of your Content, however, any use of your Content by Cloudflare may be without any compensation paid to you.
Quelle: https://www.cloudflare.com/website-terms/

Solche Passagen kennen Sie vermutlich schon von anderen Social Media-Diensten, die mal schnell sich alle Nutzungsrechte auf ewig und ohne Risiko gewähren lassen. Auch wenn es "nur" DNS-Abfragen sind, sieht Cloudflare ihre IP-Adresse, die meist 24h gültig ist und kann damit sehr gut ihr Surf-Verhalten analysieren. Cloudflare stellt ja auch Webdienste bereit und kann ihre IP-Adresse damit sehr wahrscheinlich auch weiter qualifizieren.

We may at our sole discretion suspend or terminate your access to the Websites and/or Online Services at any time, with or without notice for any reason or no reason at all. We also reserve the right to modify or discontinue the Websites and/or Online Services at any time (including, without limitation, by limiting or discontinuing certain features of the Websites and/or Online Services) without notice to you. We will have no liability whatsoever on account of any change to the Websites and/or Online Services or any suspension or termination of your access to or use of the Websites and/or Online Services.
Quelle: https://www.cloudflare.com/website-terms/

Ok und natürlich gibt es keine Funktionsgarantie oder Verfügbarkeit und selbst das abrupte Ende ist erlaubt. Wenn ihr DSL-Router niemand mehr erreicht, dann können Sie nicht mal nach der Ursache und Lösung suchen und ihr Provider kann ihnen auch nicht helfen. Selbst das VPN zur Firma dürfte mangels Namensauflösung scheitern. Aus meiner Sicht ein weiteres "No Go" für diesen Dienst

All Materials maintained in the Websites and Online Services are the property of Cloudflare or our third-party licensors. Except as expressly authorized by Cloudflare you may not make use of the Materials. Cloudflare reserves all rights to the Materials not granted expressly in these Terms.
Quelle: https://www.cloudflare.com/website-terms/

Ich bin verwirrt. Ich darf die Dienste nicht nutzen, es sei denn Cloudflare erlaubt dies "expressly"?. Ist die Erreichbarkeit schon eine Erlaubnis

Manchmal denke ich schon, das die Rechtsabteilung einer Firma vielleicht gar nicht weiß, was sie da zusammenschreibt.

Geschäftsmodell?

Hat Cloudflare die "1.1.1.1 for family" vielleicht nur mal schnell aufgebaut, damit Sie eine gute Presse und kostenfreie Werbung bekommen, was sicher den Aktienkurs beflügelt? Ich vermute vielmehr, dass Cloudflare die DNS-Abfragen in ihre Wissensdatenbank überführt. Sie enthalten ja einige Informationen:

  • Zeitpunkt
    Wann Sie einen Namenauflösen wollten. Darüber kann gut ermittelt werden, wann Sie wie aktiv sind
  • IP-Adresse
    Die IP-Adresse ihres DSL-Routers identifiziert sie meist für mindestens 24 Stunden. Auf der Menge der DNS-Abfragen kann schön ihr Weg durch die Instanzen ermittelt werden.
  • DNS-Name
    Auch wenn der DNS-Server nur den Namen aber nicht die URL sieht, kann der Name schon sehr aussagekräftig sein.

Wenn der Anbieter des DNS-Services zugleich noch eine Webseite oder ein Content Delivery Netzwerk betreibt und sie als Anwender sogar Daten von diesem Netzwerk beziehen, dann kann der DNS-Anbieter die Informationen verknüpfen und Sie als Familie eindeutig identifizieren. Er sieht dann nicht nur, was Sie von dem CDN bezogen haben sondern bekommt auch erweiterte Informationen über andere von ihnen besuchte Dienste und Seiten. Wenn dann noch über verschiedene Seiten ein Werbenetzwerk eingebunden ist, dann sind sie schon sehr gläsern. Über die Anzahl der DNS-Anfragen kann ein CDN-Anbieter sogar aktiv seinen Vertrieb auf Firmen ansetzen, die noch kein CDN nutzen und sogar mit Zahlen über Abrufe aufwarten.

Die gleichen Beweggründe dürften dann hinter den anderen "kostenfreien" DNS-Servern wie 8.8.8.8/8.8.4.4 (Google), 9.9.9.9 (QuadNine) etc. stehen. Wer die Namensauflösung beeinflussen kann, kann sehr viel über die Nutzer in Erfahrung bringen. Da hilft ihnen auch ihr "In Private Browsen" nicht. Der DNS-Server sieht alles. Auch Staaten könnten ein Interesse daran haben, welche IP-Adressen welche Namen auflösen. Wer dann noch Content über ein CDN (Content delivery network) beisteuert oder über den Provider der IP-Adresse eine Familie zuordnen kann, kann auch ohne Entschlüsselung ein Bewegungsprofil erstellen oder den Zugriff auf gewisse Seiten schon per DNS blockieren.

Schädlich für Office 365, Amazon AWS, etc.

Ein wesentlicher Grund gegen diese alternativen DNS-Server sind aber andere Cloud-Dienste. Fast alle großen Anbieter betreiben ihre Dienste weltweit in verschiedenen Rechenzentren, die unterschiedlich gut mit den verschiedenen Internet-Carriern vernetzt sind. Um die Wege kurz und effektiv zu halten, muss der Anbieter die Netzwerk-Region des Client ermitteln und ihm dann den günstigsten, erreichbaren und verfügbaren Zugangspunkt mitteilen. Das sind die Stärken von Geo-DNS und GeoLoadbalancing.

Wenn Sie sich noch einmal das Bild der Namensauflösung anschauen, dann fragen Sie als Client ihren Zugangs-Provider, der dann ggfls. die Root-Server fragt und bis zum Ziel weiter verwiesen wird. Microsoft betreibt z.B. seine eigenen DNS-Server, die dann vom DNS-Resolver des Zugangsproviders gefragt werden. Microsoft sieht also, dass in meinem Fal (Stand April 2020) z.B. "Telekom" nach "outlook.office365.com" fragt. Microsoft kann also anhand der IP-Adresse des DNS-Service erkennen, dass ich ein Kunde der Telekom bin und mir daher eine IP-Adresse liefern, die z.B. ein optimiertes Peering mit dem Netzwerk der Telekom-DSL-Benutzer hat.

Wenn ich nun aber Cloudflare oder irgend einen anderen DNS-Server frage, dann sieht Microsoft nur eine Anfrage von eben diesem DNS-Server. Wenn der nun nicht bei der Telekom steht, sondern z.B. beim Vodafone oder einem anderen Anbieter, dann liefert Microsoft eine IP-Adresse aus, die für Vodafone-Netzwerke optimal ist. Diese Antwort bekomme ich dann als Antwort und das Ergebnis ist nicht optimal:

Mein Client kommt aus dem Telekom-Netzwerk und muss zum Peering zwischen den Microsoft Global Network und Vodafone. Microsoft versucht diese Probleme durch Anycast-DNS und erweiterte BGP-Routen zu lösen aber das Grundproblem bleibt.

Die Namensauflösung sollte immer entlang des IP-Routings laufen.

Oder sie nutzen Anycast-DNS-Root-Server, die dann mit einem "Refer" zum Zonen-DNS-Server antworten. Denkbar wäre auch, dass Sie "besondere" DNS-Zonen/Domains wie "office.com, *.sharepoint.com, teams.microsoft.com" anders behandeln und direkt auflösen lassen.

Ich nutze natürlich auch die alternativen Server. Auf https://www.ungefiltert-surfen.de/ finden Sie noch viel mehr öffentlich erreichbare DNS-Server. Fragen sie doch mal so einen Server nach einem Zugang wie outlook.office365.com und schauen Sie sich die Rückantwort an.

DNS per HTTP

Bei der Recherche auf den Seiten von CloudFlare bin ich auf einen anderen interessanten Dienst gestoßen, der eine Namensauflösung per HTTP erlaubt.

Das Beispiel lässt sich sehr schnell in PowerShell umsetzen. Hier eine Auflösung nach der IP-Adresse der MSXFAQ. Wichtig ist der passende HTTP-Header, dass der anfragende Client Informationen vom Typ "application/dns-json" versteht.

Invoke-RestMethod `
   -uri "https://cloudflare-dns.com/dns-query?name=www.msxfaq.de&type=A" `
   -Headers @{"accept"="application/dns-json"}

Status : 0
TC : False
RD : True
RA : True
AD : False
CD : False
Question : {@{name=www.msxfaq.de; type=1}}
Answer : {@{name=www.msxfaq.de; type=1; TTL=3143; data=217.160.0.234}}

Genauso kann auch ein MX-Record aufgelöst werden. Hier kommen dann weitere Daten zurück

Invoke-RestMethod `
   -uri "https://cloudflare-dns.com/dns-query?name=msxfaq.de&type=MX" `
   -Headers @{"accept"="application/dns-json"}

Status   : 0
TC       : False
RD       : True
RA       : True
AD       : False
CD       : False
Question : {@{name=msxfaq.de; type=15}}
Answer   : {@{name=msxfaq.de; type=15; TTL=3600; data=10 mx00.emig.kundenserver.de.}, @{name=msxfaq.de; type=15;
           TTL=3600; data=10 mx01.emig.kundenserver.de.}}

Hier kommen dann mehrere Werte zurück.

Invoke-RestMethod `
   -uri "https://cloudflare-dns.com/dns-query?name=_dmarc.msxfaq.de&type=TXT" `
  -Headers @{"accept"="application/dns-json"}

Status    : 3
TC        : False
RD        : True
RA        : True
AD        : False
CD        : False
Question  : {@{name=_dmarc.msxfaq.de; type=16}}
Authority : {@{name=msxfaq.de; type=6; TTL=300; data=ns1121.ui-dns.biz. hostmaster.schlund.de. 2016112501 28800 7200
            604800 300}}

Zum Parsen müssen Sie dann natürlich noch das Feld "Authority" oder "Answer" entsprechend auseinandernehmen.

(Invoke-RestMethod "https://cloudflare-dns.com/dns-query?name=msxfaq.de&type=MX" -Headers @{"accept"="application/dns-json"}).answer

name      type  TTL data
----      ----  --- ----
msxfaq.de   15 3600 10 mx01.emig.kundenserver.de.
msxfaq.de   15 3600 10 mx00.emig.kundenserver.de.

Für die ein oder andere Aufgabenstellung, wenn Sie in einem Skript die Namensauflösung von extern prüfen wollen, ist dies ein ganz passabler Weg. Ich bin aber sicher dass auch Malware solche Tricks kennt, wenn sie eine "filternden DNS-Auflösung" umgehen will.

Meine Meinung

Auf den ersten Blick ist die die Nutzung von anderen DNS-Diensten ist, die zudem noch einen Schutz vor Malware und Adult-Seiten für Firmen versprechen, interessant. Aber der Schutz ist nur lückenhaft. Ob sie sich aber so abhängig machen wollen und dazu ihr Nutzungsprofil derart einer fremden Firma überlassen wollen.

Mein Internet-Router fragt auch weiterhin meinen Zugangsprovider und für den Schutz gegen Malware nutze ich eine passende lokale Schutzlösung, regelmäßige Datensicherungen und für allzu viel Werbung gibt es eine lokale PiHole-Instanz als primären DNS-Server

Ein Ansatz per DNS zumindest die schlimmsten Hostnamen zu blocken, könnten aber die Provider selbst anbieten. Quasi "Jugendschutz by Netzwerk". Der Kunde hat ja ein "Konto" beim Zugangsprovider über welches er ja heute schon bestimmte Einstellungen vornehmen kann. Ich kenne das vom Telekom-Portal, über das ich ja auch per Browser z.B. Anrufbeantworter aktivieren oder Rufweiterleitungen steuern kann. Da wäre es doch genauso einfach, wenn ich über den Weg z.B. auch einen "DNS-Schutz" gegen Malware und einen "DNS+Adult/Schutz" aktivieren könnte. Theoretisch könnte der Provider auch einfach eine PiHole-Instanz oder vergleichbar betreiben und dem Kunden die Wahl lassen, ob er den "Schutz" aktivieren will.

Weitere Links