Was sind DGAs und wie erkennt man sie?

Domain Generation Algorithms (DGAs) sind eine Klasse von Algorithmen, die periodisch und dynamisch eine große Anzahl von Domainnamen generieren. In der Regel werden die Domänen von Malware und Botnetzen als Treffpunkte verwendet, um den Rückruf an die Command & Control-Server des böswilligen Akteurs zu erleichtern. Mit DGAs kann Malware täglich Zehntausende von Domains generieren, von denen die überwiegende Mehrheit nicht registriert ist. Die enorme Anzahl nicht registrierter Domänen wird verwendet, um die registrierten zu maskieren, sodass die infizierten Botnets der Erkennung und Abschreckung durch signatur- oder IP-Reputations-basierte Sicherheitserkennungssysteme entgehen können.

Die erste bekannte Malware-Familie, die eine DGA verwendete, war Kraken im Jahr 2008. Später in diesem Jahr machte der Conflicker-Wurm die DGA-Taktik bekannt. Auch nach 10 Jahren ist es noch möglich, Conflicker oder eine seiner Varianten in einigen der heutigen Netzwerke zu finden.

Gleichzeitig mit der zunehmenden Verbreitung von Malware ist die Verwendung von DGAs weit verbreitet.

Die Ziele der DGA-Erkennung

Da die DGA-Aktivität ein erheblicher Indikator für Kompromisse ist, ist es wichtig, solche Aktivitäten in Ihrem Netzwerk zu erkennen. Es gibt drei Stufen der DGA-Erkennung, wobei jede nachfolgende Stufe mit einem Anstieg des Schweregrads korreliert. Die Erkennung auf späteren Ebenen ist schwieriger, aber kritischer.

Wenn ein DGA erkannt wird, bedeutet dies, dass eines oder mehrere Ihrer Systeme mit DGA-basierter Malware infiziert wurden und zu Botnetzen geworden sind. Einige Maßnahmen müssen ergriffen werden. Das erste Ziel besteht darin, die betroffenen Systeme zu identifizieren, sie ordnungsgemäß zu reinigen oder unter Quarantäne zu stellen, um eine Eskalation zu verhindern.

Das nächste Ziel besteht darin, festzustellen, ob ein bestimmter DGA-Domänenname registriert ist. Wenn die Domain registriert ist, ist sie zu einem aktiven Command & Control-Server geworden, der ein großes Risiko für Ihr Netzwerk darstellt. Infizierte Systeme, jetzt Botnets, können diese Server verwenden, um zu Hause anzurufen und Befehle vom böswilligen Angreifer zu empfangen. Daher ist die zweite Komponente eines effektiven DGA-Erkennungssystems die Fähigkeit, registrierte Domänen von nicht registrierten zu unterscheiden.

Beispielsweise kann ein DGA 1000 Domänen aus xyzwer1, xyzwer2… generieren. zu xyzwer1000. Der Hacker muss nur eine Domain registrieren, dh xyzwer500, nicht die anderen 999 Domains. Wenn die registrierte Domäne und die zugehörige IP identifiziert werden können, können die Informationen verwendet werden, um den Kommunikationskanal zwischen dem Zielsystem und dem Command & Control-Server zu blockieren. Darüber hinaus sollten die Informationen an alle anderen vorhandenen Präventions- oder Erkennungssysteme weitergegeben werden, um den Rückruf von jedem System im Netzwerk auf diesen Server zu verhindern.

Das letzte, aber wichtigste Ziel eines DGA-Erkennungssystems besteht darin, festzustellen, ob der Rückruf mit den registrierten Domänen erfolgreich war und Kontakt zwischen den infizierten Systemen und dem Command & Control-Server hergestellt wurde. Wenn eine solche Aktivität festgestellt wird, wurde möglicherweise bereits ein gewisser Schaden angerichtet. Möglicherweise wurde die Malware in Ihrem Netzwerk aktualisiert oder neue Malware installiert. Sensible Daten wurden möglicherweise exfiltriert.

Wie funktioniert die DGA-Erkennung?

Die DGA-Aktivität wird durch Erfassen und Analysieren von Netzwerkpaketen in der Regel in fünf allgemeinen Schritten erkannt.

Schritt 1 - DNS-Anwendung erkennen
Die Erkennung beginnt über DNS-Anforderungs- und / oder Antwortnachrichten. DNS ist ein grundlegendes Internetprotokoll, und die meisten Firewalls haben eine Richtlinie, die ausgehenden DNS-Verkehr auf ihrem reservierten Port 53 zulässt. Ein Hacker kann jedoch Port 53 nutzen, um seinen Verkehr zu senden, ohne das Standard-DNS-Nachrichtenformat einzuhalten. Dieser Angriff wird als DNS-Tunneling bezeichnet. Eine DPI-Engine (Deep Packet Inspection) wird empfohlen, um die DNS-Anwendungen genauer zu identifizieren.

Schritt 2 - Domainnamen extrahieren
Sobald eine Netzwerkanwendung als DNS identifiziert wurde, müssen die Domänennamen in den DNS-Abfrage- und Antwortnachrichten extrahiert werden. Um den richtigen Domainnamen zu extrahieren, muss der Inhalt der DNS-Nachricht sorgfältig analysiert werden, und eine DPI-Engine ist erforderlich, um diese Aufgabe auszuführen.

Schritt 3 - Erkennen Sie alle DGA
Die aus DNS-Nachrichten extrahierten Domänen müssen analysiert werden, um festzustellen, ob es sich um DGAs handelt. Dies ist vielleicht der komplizierteste Schritt. Die Herausforderung besteht darin, sowohl falsch positive als auch falsch negative Ergebnisse zu reduzieren. Die Erkennungsmechanismen haben sich in den letzten 10 Jahren dramatisch weiterentwickelt.
Einige Mechanismen basieren auf der relativ einfachen Shannon-Entropie.
https://www.splunk.com/blog/2015/10/01/random-words-on-entropy-and-dns.html
Einige Mechanismen basieren auf komplexeren Ngrammen, wie sie von Fjodor auf der Hitb-Konferenz vorgestellt wurden
In letzter Zeit, als das maschinelle Lernen immer beliebter wurde, wurden seine Methoden auch auf die DGA-Erkennung angewendet. Maschinelles Lernen kann die Funktionen von Ngrams, Shannon Entropy sowie die Länge der Domainnamen kombinieren, um Entscheidungen zu beeinflussen. Es wurden mehrere Modelle für maschinelles Lernen ausprobiert. Es gibt einen sehr guten Blogpost von Jay Jacobs aus dem Jahr 2014, der den Prozess beschreibt.
Hier ist ein weiterer Open-Source-DGA-Detektor, der auf maschinellem Lernen mit Markov-Kette basiert:
https://github.com/exp0se/dga_detector

Schritt 4 - Registrierte DGA-Domänen erkennen
Um festzustellen, ob ein DGA-Domänenname registriert ist, müssen DNS-Antworten überprüft werden. Es reicht nicht aus, nur DNS-Anforderungen zu verfolgen. Das Erkennungssystem sollte die gesamte Transaktion verfolgen, um die Korrelation zwischen Informationen zu erleichtern.

Schritt 5 - Erkennen des Datenverkehrs zu registrierten DGA-Domänen
Wenn sich die meisten vorhandenen DGA-Erkennungssysteme darauf konzentrieren, zu erkennen, ob ein Domainname eine DGA-Domain ist, vergessen sie häufig die letzte Frage, die wichtigste: Gibt es Datenverkehr, der an die registrierten DGA-Domains gesendet wurde? Um dies rechtzeitig zu erkennen, muss die DGA-Domänenerkennung eng mit der Überprüfung des Netzwerkverkehrs verbunden sein. Die Ergebnisse müssen unmittelbar vor einer Beschädigung an die Verkehrsinspektionsmaschine zurückgesendet werden.

Schritt 6 - Blockieren des Datenverkehrs zu registrierten DGA-Domänen
Obwohl dies technisch gesehen kein Teil der Erkennung ist, sollte bei einer Integration in ein Präventionssystem wie eine Firewall oder ein IPS sofort eine Regel eingefügt werden, um den gesamten Datenverkehr zu den registrierten Domänen zu blockieren.

Ein großartiges DGA-Erkennungssystem sollte alle 5 Schritte ausführen. Ein ausgezeichnetes DGA-Erkennungssystem sollte auch Schritt 6 umfassen. Leider hören die meisten DGA-Erkennungssysteme heutzutage entweder bei Schritt 3 oder Schritt 4 auf.

Fazit
Da DGAs mit einem auf Signaturen oder Reputationen basierenden Erkennungs- oder Präventionssystem schwer zu erkennen sind, sind sie bei Malware-Entwicklern sehr beliebt geworden.
Zur Durchführung der Erkennung ist ein intelligentes Erkennungssystem erforderlich. Ein ausgezeichnetes DGA-Erkennungssystem muss Domainnameninformationen aus DNS-Transaktionen extrahieren, gründliche Analysen durchführen, um den DGA-Status zu erkennen, den Registrierungsstatus verdächtiger Domains zu überprüfen, mit der Überprüfung des Netzwerkverkehrs zu korrelieren, um den Grad der Kompromittierung zu bewerten, und sich idealerweise in Präventionssysteme integrieren, um weitere zu vermeiden Kompromiss. Um sowohl falsch positive als auch falsch negative Ergebnisse zu reduzieren, sollte ein maschinelles Lernen ernsthaft in Betracht gezogen werden. Nur mit umfassender und umfassender Intelligenz in jeder Phase kann die Bedrohung wirklich gelindert werden.

Ressourcen

Das Repository in Github von Andrey Abakumove enthält Algorithmen zum Generieren von Domainnamen sowie Wörterbücher bösartiger Domainnamen.

Nach oben scrollen