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.
- 1.1.1.1 for Families
https://developers.cloudflare.com/1.1.1.1/1.1.1.1-for-families/
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.
- Router Setup Instructions
https://developers.cloudflare.com/1.1.1.1/1.1.1.1-for-families/setup-instructions/router/
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.
- Cloudflare Aktien (WKN: A2PQMN)
https://www.finanzen.net/aktien/cloudflare-aktie
https://www.boerse-online.de/aktie/cloudflare-aktie
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.
-
Werbenetzwerke
In den Händen der Werbenetzwerk - Tracking im Internet
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.
- Anycast-Routing
- Geo-DNS / Pinpoint DNS
- Direct Access Namensauflösung - NRPT
-
Two Days in the Life of the DNS Anycast Root
Servers
https://www.caida.org/catalog/papers/2007_dns_anycast/dns_anycast.pdf
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.
- DNS in Google Sheets
https://developers.cloudflare.com/1.1.1.1/fun-stuff/dns-in-google-sheets/
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.
- Pi-holeĀ® Network-wide Ad Blocking
https://pi-hole.net/
Weitere Links
- Anycast-Routing
- Geo-DNS / Pinpoint DNS
-
Werbenetzwerke
In den Händen der Werbenetzwerk - Tracking im Internet - 1.1.1.1 for Families
https://developers.cloudflare.com/1.1.1.1/1.1.1.1-for-families/ - DNS in Google Sheets
https://developers.cloudflare.com/1.1.1.1/fun-stuff/dns-in-google-sheets/ - Sicherer Cloudflare DNS filtert zu viel
https://www.golem.de/news/jugendschutz-sicherer-cloudflare-dns-filtert-zu-viel-2004-147660.html
LGBTQ-Inhalte waren für die Filter von Cloudflare auch nur Pornografie - Cloudflare: DNS schützt Familien jetzt vor Malware und 18+
Inhalten
https://winfuture.de/news,115056.html - Cloudflare: DNS-Server für Familien kann vor Malware und
Erwachseneninhalten schützen
https://stadt-bremerhaven.de/cloudflare-dns-server-fuer-familien-kann-vor-malware-und-erwachseneninhalten-schuetzen/ - https://www.ungefiltert-surfen.de/
- https://nextdns.io/