Data Exfiltration, Data Infiltration und Tunneling

Kleingehackt und verschlüsselt: So wandern Daten heimlich über das DNS

19.09.2017
Von 


Der Diplom Ingenieur Rainer Singer ist Sales Engineering Manager Central Europe bei Netskope. Er verfügt über langjährige Erfahrung im Systems- und Security-Engineering-Bereich und war unter anderem bei SE Manager CEUR bei Infoblox, bei F5 Networks als Systems Engineer und bei Integralis als Technical Consultant tätig.
Das Domain Name System (DNS) erfüllt immer noch die Anforderungen, die 1983 im Requests for Comments (RFC 882) spezifiziert wurden. Nur was so lange besteht, ist gegen moderne Bedrohungen nicht grundsätzlich gesichert. Es ist die perfekte Hintertür für Hacker, um wichtige Daten zu stehlen - und seit WannaCry ist diese Bedrohung präsenter denn je.

Der Datenklau über das Domain Name System (DNS) geht weitgehend unbemerkt vor sich, ist aber weitverbreitet - nach einer DNS Security Umfrage von Infoblox wurde bei 46 Prozent der befragten Unternehmen Data Exfiltration und bei 45 Prozent DNS Tunneling beobachtet. Bei DNS Tunneling läuft der Datenverkehr mit IP-Protokoll oft über den DNS Port 53, der meist nicht einmal von Firewalls - auch nicht von Next-Generation Firewalls - im Detail geprüft wird, ideal für das unbefugte Abgreifen von Daten. Ein übelwollender Insider kann entweder von innerhalb des Netzwerks einen DNS-Tunnel aufsetzen oder Dateien kodieren und in die DNS-Anfragen einbetten. Die Daten werden dann am anderen Ende wieder dekodiert und zusammengesetzt.

So wandern Daten heimlich über das DNS.
So wandern Daten heimlich über das DNS.
Foto: Andrey Popov - shutterstock.com

Trotz aller Abwehr

In den meisten Unternehmen gibt es die verschiedensten Abwehrmechanismen und Sicherheits-Technologien, wie Next-Generation Firewalls, IDSs und IPSs. Wie also kann es gelingen, Daten trotz dieser achtsam aufgesetzten Verteidigungsmechanismen zu transportieren? Es gibt zwei Arten von DNS-Botschaften: die Anfrage und die Antwort. Beide haben immer dasselbe Format: sie bestehen aus einem Header und vier Bereichen - Frage, Antwort, Autorisierung und weitere Informationen. Viele Objekte und Parameter im DNS haben grundsätzliche Größenbeschränkungen. Das bedeutet, dass einem Hacker als Basis 512 Octets (= eine geordnete Zusammenstellung von 8 Bit) zur Verfügung stehen, um Daten innerhalb von UDP (User Datagram Protocol)-Botschaften zu verstecken. Diese verschlüsselten Datenstücke können verschiedenen Zwecken dienen.

Exfiltrierung

Data Exfiltration - heißt ein Hacker will Daten stehlen. Tut er das über DNS, wird er die gewünschten Informationen in unterschiedlich große Teile trennen und den Value String in den Bereichen Namen (bis zu 255 Octets) oder UDP-Message (bis zu 512 Octets) platzieren. Der Value String wird wie eine Anfrage formatiert und an einen böswilligen DNS-Server geschickt, der die Anfrage aufzeichnet.

Ein Name-Server der Hacker ermöglicht das Logging der Anfragen - er sammelt die gestohlenen Daten. Auf diesem läuft eine einfache Installation von BIND, dem Berkeley Internet Name Domain Server, und er ist über das Internet zugänglich. Er kann sich sogar hinter einem Kabelmodem verstecken, solange Port 53 genutzt wird. Möchte ein infizierter Client oder ein Client eines Mitarbeiters Daten stehlen, kann dieser den gefährlichen Server mit einem String ansprechen.

Die Daten können nun einfach nach außen übertragen werden. Natürlich versuchen Hacker die eigentliche Datenübertragung besser zu verstecken: Sie nutzen Datenverschlüsselungs-Algorithmen, verstecken und komprimieren den Inhalt und schneiden ihn in Teile beliebiger Größe. Eine Anfrage könnte zum Beispiel binär und für die Übertragung in HEX-Format konvertiert worden sein. Beim Empfänger wird der Inhalt wieder zusammengesetzt. Cyberkriminelle nutzen aber auch andere schlaue Methoden wie ID-Tracking, Sequence Numbering und andere - vor allem, wenn Transaktionen wie beispielsweise Kreditkartenkäufe getaggt werden, in denen die Reihenfolge der Events aussagt, welche Bits Namen, Kartennummern oder Kartenverifikationszahlen enthalten.

Bei einem Exfiltrations-Versuch werden häufig Tausende von DNS-Anfragen über ein Netzwerk geschickt. Es erscheint also recht einfach diese Transportmethode zu unterbinden - nur wissen die Diebe sehr gut, wie sie eine Entdeckung verhindern. Sie nutzen Methoden wie Slow Drip, bei der die Anfragen in einer kontrolliert langsamen Geschwindigkeit gesendet werden, um die Übertragungsrate nicht nach oben schnellen zu lassen und einen Alarm auszulösen (z.B. von IDS/IPS). Oder sie nutzen Source IP Spoofing, wobei die Quell-IP in den Anfragen wiederholt werden, so dass es aussieht, als kämen die Anfragen aus vielen verschiedenen Quellen. Bei dieser Methode ist es schwierig die Anfragen abzufangen.

Infiltrierung

DNS-basierte Exfiltration funktioniert auch anders herum. Hacker können das DNS nutzen, um Daten durch Infiltration in das Netzwerk einzuschleusen - etwa Schadcodes. Ähnlich wie bei der Exfiltrierung nutzen Hacker ein Programm, codieren es beispielsweise als HEX zur Vorbereitung für den Transport und laden es in einen TXT-Datensatz auf ihren Server. Wie aber bekommt man das durch die Firewall, durch IDS und Content-Filter? Es gibt verschiedene Möglichkeiten:

  • DNS Plain Text: Dieses Echtzeit-Tool nutzt die Infiltration einer Textnachricht über kodiertes DNS. Es werden Einzel- und sehr kurze DNS-Anfragen verwendet, um Daten von einem externen Server abzurufen.

  • DNS Encoded Text: Dieses Echtzeit-Tool nutzt die Infiltration einer kodierten Textnachricht über DNS. Es werden Einzel- und sehr kurze DNS-Anfragen verwendet, um Daten von einem externen Server abzurufen.

  • DNS Static Files: Dieses Tool nutzt die Infiltration von drei verschiedenen Datentypen (Grafiken, Windows-Dateien und Shell-Skripts). Alle drei Datentypen werden an die Workstation des Nutzers übermittelt - das funktioniert mithilfe von DNS-Abfragen zum Abrufen und wieder Zusammensetzen der Daten auf einem Remote-DNS-Server. Dies emuliert einen möglichen Vektor, der einen Schadcode in ein Netzwerk mit Protokoll- und Nachricht-Typen, die nicht durch herkömmliche Sicherheitsmaßnahmen erkannt werden, einschleusen kann.

  • DNSMessenger: Der DNSMessenger kann DNS-Abfragen verwenden, um böswillige PowerShell-Befehle auf infizierten Computern auszuführen. Laut Experten wird es dadurch erschwert den Remote-Zugriff eines Trojaners auf ein bestimmtes System zu erkennen. Das Tool emuliert das Vorgehen des DNSMessenger.

Tunneling mit DNS

Mit DNS Tunneling kann ein Anwender auf eine Website zugreifen, auch wenn der Proxy diese Seite blockiert. Um über DNS zu tunneln, muss man einen externen DNS Server kontrollieren und dort Name-Server (NS)-Einträge und A-Einträge ergänzen. Ein NS-Eintrag ermöglicht es eine Subdomain der eigenen Domäne auf einen anderen Name-Server umzuleiten. A-Record enthält die IP-Adresse, die den Domain-Namen abbildet. Für das Aufsetzen eines Tunnelservers wird ein Hacker-Tool installiert. Auch auf der Zielmaschine muss ein DNS Tunneling Client sein. Sobald die Verbindung hergestellt ist, kann man den SOCKS Proxy für die Verbindung nutzen. DNS Tunneling ist zwar langsam und hat nur eine limitierte Bandbreite, aber für ein Botnet ist der DNS-Tunnel ein versteckter, schwer zu entdeckender Kanal für fragmentierte Daten.

DNS Tunneling gibt es schon seit langem, entsprechend gibt es auch beliebte und bewährte Hacker-Toolkits wie Iodine, OzymanDNS, SplitBrain, DNS2TCP oder TCP-over-DNS. Es existieren aber auch neuere Möglichkeiten, die ein schnelleres Tunneling mit mehr Features ermöglichen. Dafür haben sich kommerzielle Dienste etabliert, die VPN-Service über DNS anbieten und die Umgehung vieler WiFi-Sicherheitskontrollen ermöglichen. Die meisten Tools haben aber spezifische Signaturen, die eine Erkennung und Schadensbegrenzung vereinfachen.