
DGA-Domain-Erkennung mithilfe von Bigramm-Häufigkeitsanalyse
Immer mehr Schadsoftware wird mit ausgefeilten Umgehungstechniken für Sperren entwickelt. Eine der am weitesten verbreiteten Techniken ist der Einsatz von Domain-Generierungsalgorithmen (DGA), die regelmäßig eine Reihe von Domänen generieren, um einen C&C-Server zu kontaktieren. Die Mehrheit dieser DGA-Domänen erzeugt zufällige alphanumerische Zeichenfolgen, die sich in ihrer Struktur erheblich von einer Standarddomäne unterscheiden. Durch die Analyse der Häufigkeit, mit der eine Menge von Bigrammen in einer Domäne innerhalb der Alexa Top 1M vorkommen, konnten wir erkennen, ob eine Domäne mit einer zufälligen Zeichenfolge strukturiert oder eine legitime, für Menschen lesbare Domäne war. Wenn eine Domäne fast ausschließlich aus selten vorkommenden Bigrammen besteht, die in den Alexa Top 1M nur selten auftauchen, dann handelt es sich eher um eine zufällige Zeichenfolge. Bigramme aus Vokalen und Konsonanten kamen am häufigsten vor, während Zeichen und ganze Zahlen am seltensten vorkamen. Das Skript wurde gegen 100.000 GameoverZeus-Domänen getestet und erzielte eine Erkennungsrate von 100% sowie eine Falsch-Positiv-Rate von 8% gegenüber den Alexa Top 1M, ohne dass eine Domänen-Whitelist angewendet wurde.
Dieses System wurde auf Ubuntu und RaspberryPi getestet. Derzeit habe ich meinen RaspberryPi als DNS-Server mit Bind9 eingerichtet. Das DGA-Erkennungsskript wird ebenfalls auf dem RaspberryPi ausgeführt und liest die Anfragen. Die Anfragen werden dann verarbeitet, um zu bestimmen, ob es sich um eine potenzielle DGA handelt oder nicht.
git clone https://github.com/philarkwright/DGA-Detection.git
cd DGA-Detection
chmod +x install.sh
./install.sh
sudo python dga_detection.py
nohup sudo python dga-detection.py -o 2 -i <interface>
Beim Ausführen der Datei install.sh beachten Sie bitte, dass das git://-Protokoll Port 9418 verwendet. Stellen Sie daher sicher, dass Ihre Firewall ausgehende Verbindungen zu diesem Port zulässt.
Dieses Projekt befindet sich noch in der Entwicklung.
Beim Ausführen des Skripts auf Netzwerkebene in meinem Heimnetzwerk fiel mir auf, dass ich bei bestimmten Google-Suchen in Google Chrome eine Reihe von Warnungen bekam, die wie DGA-Domänen aussahen. Selbst wenn Sie diese Seiten nicht besuchen (es sind normalerweise chinesische Seiten, da sie Kauderwelsch-Zeichenfolgen für ihre Domänen verwenden), lädt Google Chrome sie vor und ruft sie ab, was die Warnungen auslöst.
HINWEIS: Whitelist-Funktionen verwenden die Alexa Top 1M.
Kontaktieren Sie mich über Twitter @philarkwright