Viele Arten moderner Schadsoftware müssen einen Kontrollserver (Command&Control, C2) kontaktieren, um sich entweder Anweisungen abzuholen um gestohlene Daten abzuladen. Das gilt für Botnetze ebenso wie für einige Bankingtrojaner wie etwa ZeuS oder ZeuS Panda. Früher waren die Adressen dieser Kontrollserver oft fest in der Schadsoftware eingetragen. Somit hat jeder Rechner, der mit der gleichen Schadsoftware infiziert war, denselben C2-Server kontaktiert. Diese einfache Methode hat eine Achillesferse, zumindest aus der Sicht der Kriminellen hinter der Schadsoftware: sobald ein Kontrollserver oder dessen Domäne durch eine Strafverfolgungsbehörde übernommen oder beschlagnahmt wird, ist die Kontrolle über die infizierten Maschinen verloren.
"Was tun?", sprach ZeuS
Wäre es für Kriminelle nicht von großem Vorteil, wenn sie sich keine Sorgen darum machen müssten, dass ihre Kontrollserver übernommen werden? Natürlich gibt es einen Weg. Wenn die Verfolger nicht wissen, wohin sich eine Schadsoftware nach ihrer Installation wendet, können sie die Server nicht abschalten. Hier kommen die DGAs ins Spiel. Vereinfacht ausgedrückt, errechnet ein DGA selbstständig Domains nach einem mehr oder weniger zufälligen Muster. Das geschieht in unterschiedlichen Intervallen, von täglich bis hin zu mehrmals in der Stunde. Die Schadsoftware kontaktiert dann die so errechneten Domains zu einer festgelegten Zeit.
Alles, was ein Verbrecher nun tun muss, ist die zufällig generierten Domains zu registrieren und sie zu seiner Kontroll-Infrastruktur zu verbinden. Da er weiß, wie sein Algorithmus funktioniert, kann er hunderte Domains vorausberechnen und registrieren und muss sich keine Sorgen mehr darüber machen, dass eine davon beschlagnahmt wird. Somit wird die Jagd nach den Kontrollservern zu einem virtuellen Hase-und-Igel-Rennen: man kann vielleicht einen Server ausschalten, muss dann aber feststellen, dass infizierte Maschinen bereits zum nächsten Server übergegangen sind, der unter der Kontrolle der Verbrecher steht.
Linguistik und URLs
Internet-Adressen (auch URLs, Uniform Resource Locators genannt), wie sie jeder von uns täglich benutzt, sind in der Regel einfach zu merken. Schließlich haben Webseitenbetreiber auch ein Interesse daran, Besucher anzuziehen. Aus diesem Grund haben wir URLs wie www.gdata.de statt Adressen wie www.kfualh85gdgiwe.de. Da C2-Server aber in der Regel nicht bewusst von einem normalen Internetnutzer angesurft werden, hat ein DGA hier wesentlich mehr Freiheiten bei der Errechnung neuer Adressen.
Interessanterweise spielt Linguistik hier eine wichtige Rolle: ein sinnhaltiges Wort beinhaltet bestimmte Buchstabenfolgen mit höherer Wahrscheinlichkeit als andere. Jede Sprache der Welt folgt diesem Grundsatz. Nach diesen Regeln entspricht das obige Beispiel keinem sinnhaltigen Wort in irgendeiner Sprache (außer vielleicht Klingonisch). Daher ist es sehr unwahrscheinlich, dass eine Anwendung, die eine Verbindung zu dieser Adresse öffnet, einen legitimen Ursprung hat. Somit wäre eine genauere Prüfung dieser Anwendung angebracht. Dies ist allerdings nur ein Bewertungskriterium; andere Methoden beziehen auch die zufällige Aneinanderreihung von Worten mit in ihre Überlegungen ein.
Es ist jedoch mitnichten nicht alles verloren: die Art, in der die Domains erstellt werden, folgt immer einem bestimmten Muster - und Muster kann man erkennen. Diese einfache Tatsache birgt eine Menge Potenzial: Wenn Forscher den Netzwerkverkehr einer verdächtigen Anwendung überwachen können, dann kann man mit einer gewissen Sicherheit darauf schließen, ob eine kontaktierte Domain von einem solche Domain-Generierungsalgorithmus erstellt wurde oder nicht. Derzeit gibt es hier noch das Risiko falschpositiver Erkennungen, obwohl es nur sehr wenige legitime Anwendungsfälle für DGAs gibt. Einige Algorithmen versuchen gezielt, es so aussehen zu lassen, als sei eine legitime Domain kontaktiert worden, allerdings mit Tippfehlern (wie etwa "goolge.de"). Aus den gewonnenen Daten können auch noch weitere Erkenntnisse gezogen werden: so können Forscher auch anhand auf der Art, auf die C2-Domänen errechnet werden, Querverbindungen zwischen einzelnen Malware-Familien herstellen.
Was man mit diesen Daten machen kann
Sobald klar ist, wie eine Malware ihre Kontrollserver-Adressen errechnet, kann man Gegenmaßnahmen einleiten. Eine effektive (und umstrittene) Maßnahme wäre, dass Strafverfolgungsbehörden die Domains registrieren, sodass sie für den Angreifer nicht mehr verfügbar wären. Experten nennen diese Strategie auch "Sinkholing" (sinkhole, eng. Senkgrube). Dies wiederum würde jedoch den Kriminellen sehr schnell auffallen. Diese würden dann den DGA modifizieren und das Spiele würden von vorn beginnen.
Übrigens: die Tatsache, dass eine Domain nicht im Vorfeld kontaktiert wurde,hat wesentlich dazu beigetragen, dass die WannaCry-Ransomware wesentlich gebremst wurde. Der Malware-Forscher Marcus Hutchins stellte fest, dass eine kontaktierte Domain nicht registriert war und registrierte diese daraufhin selbst. Dadurch löste er unbeabsichtigt den berühmten Killswitch von WannaCry aus und wurde so zum Helden wider Willen für tausende Unternehmen auf der ganzen Welt.
Weitere Informationen
Wenn Sie Interesse an Details zur Funktionsweise von DGAs haben und gerne wissen möchten, wie die Extraktion von DGAs zur Verbesserung von Erkennungsleistungen genutzt werden kann, lesen Sie den Blog-Artikel von Emanuel Durmaz auf dem Blog von G DATA Advanced Analytics. (Artikel in Englischer Sprache)