Eine Falle für Malware

2 Sep 2019

Ich habe den sechsten Film von Mission Impossible nicht gesehen und denke auch nicht, dass ich dies in naher Zukunft tun werde. Ich musste mich bereits – nach einer harten Arbeitswoche und vollkommen übermüdet – auf einem Langstreckenflug nach Hause tapfer durch den fünften Teil kämpfen; und das nur, weil eine Szene darin in unserem nagelneuen modernen Büro in London gedreht wurde. Und für mich war dieser Film bereits eine Nummer Mission Impossible zu viel. Nein, das ist nichts für mich. Hau, schlag, klatsch, matsch, piff, puff. Uff. Nein, ich bevorzuge tatsächlich etwas anspruchsvollere Filme, die einen zum Nachdenken anregen und einfach interessant sind. Zeit ist schließlich ein sehr kostbares Gut.

Ich lasse hier gerade kein gutes Haar an Tom Cruise & Co., nicht wahr? Aber nicht so schnell! Ich muss ihnen wenigstens zu einer Szene gratulieren, die ich wirklich nicht schlecht fand (d. h., die den Zuschauer zum Nachdenken anregt und gleichzeitig auch wirklich sehr interessant ist!). Und zwar die Szene, in der die Guten den Bösewicht schnappen müssen, damit er seine fiesen Kollegen verpfeift (oder so ähnlich). Dazu erschaffen sie eine künstliche Umgebung in einem „Krankenhaus“; im Fernsehen laufen hier gerade Nachrichten von „CNN“, die von einem atomaren Armageddon berichten. Nachdem der Bösewicht zufrieden ist, dass sein apokalyptisches Vorhaben sein Weg in die große weite Welt geschafft hat, verrät er im Deal mit den Vernehmern seine Kollegen (oder war es sein Login-Code?). Ups. Hier ist der Clip.

Warum gefällt mir diese Szene so? Da sie tatsächlich sehr gut eine der Methoden zum Erfassen von … zuvor unerkannten Cyberbedrohungen zeigt! Natürlich gibt es zahlreiche solcher Methoden, die sich abhängig vom Bereich der Anwendung, Effektivität, Ressourcenverwendung und anderen Parametern unterscheiden (ich schreibe hier regelmäßig über sie). Aber eins sticht immer heraus: Emulation (worüber ich auch hier bereits ausreichend berichtet habe).

Wie im Film MI startet ein Emulator das untersuchte Objekt in einer isolierten, künstlichen Umgebung, in der es seine Bösartigkeit zeigen kann.

Aber dieser Ansatz hat einen bedeutenden Nachteil: die Umgebung ist künstlich. Der Emulator tut sein Bestes, damit die künstliche Umgebung einer realen Betriebssystemumgebung so ähnlich wie möglich sieht, aber immer intelligentere Malware schafft es dennoch, sie von einer realen Umgebung zu unterscheiden. Dann bemerkt der Emulator, dass die Malware ihn erkennt und gruppiert seine Emulation neu und verbessert diese usw. in einem nicht endenden Kreislauf, der regelmäßig Schwachstellen eines geschützten Computers zeigt. Das grundlegende Problem ist, dass kein Emulator es bisher geschafft hat, das Ebenbild eines realen Betriebssystems zu sein.

Auf der anderen Seite gibt es noch eine andere Option, um die Verhaltensanalyse von verdächtigen Objekten anzugehen: auf einem realen Betriebssystem – auf einer virtuellen Maschine. Nun, warum nicht? Wenn es dem Emulator nicht gelingt, dann soll es doch eine reale, allerdings virtuelle Maschine probieren! Es wäre ein ideales „Verhör“: ausgeführt in einer realen Umgebung und keiner künstlichen, aber ohne reale negative Konsequenzen.

Wenn sie von diesem Konzept hören, könnten einige vorschnell die Frage stellen, warum darauf bisher keiner gekommen ist. Denn schließlich ist Virtualisierung schon seit 1992 ein technischer Standard. Nun, es stellt sich heraus, dass das nicht so einfach ist.

Zunächst einmal ist die Analyse von verdächtigen Objekten in einer virtuellen Maschine ein ressourcenintensiver Prozess, der nur für schwere Sicherheitslösungen auf Unternehmensklasse geeignet ist, bei denen das Scannen sehr intensiv sein muss, sodass es absolut keine Bösartigkeit durch den Schutz schafft. Bedauerlicherweise ist diese Technologie für Heimcomputer (ganz zu schweigen von Smartphones) (noch) nicht geeignet.

Zweitens gibt es so etwas eigentlich schon. Tatsächlich verwenden wir bereits diese Technologie intern hier in der Kompany für interne Untersuchungen. Aber was marktfähige Produkte angeht, sind bisher noch nicht so viele erhältlich. Die Konkurrenz hat bereits ähnlich Produkte veröffentlicht, aber deren Effektivität lässt so einiges zu wünschen übrig. Grundsätzlich sind solche Produkte nur auf das Sammeln von Logs und grundlegende Analysen beschränkt.

Drittens ist das Starten einer Datei auf einer virtuellen Maschine nur der Beginn eines sehr langen und schwierigen Prozesses. Denn schließlich ist das Ziel dieser Aufgabe, dass die Bösartigkeit eines Objekts sich von alleine zeigt und dafür braucht es einen intelligenten Hypervisor, Verhaltensprotokollierung und Analyse, konstante Feinabstimmung der Vorlagen von gefährlichen Aktionen, Schutz vor Antiemulationstricks, Ausführungsoptimierung und vieles mehr.

Ich kann hier ohne falsche Bescheidenheit behaupten, dass wir da ganz weit voraus sind; und das weltweit!

Kürzlich wurde uns ein US-Patent gewährt (US10339301), das die Erzeugung einer geeigneten Umgebung für eine virtuelle Maschine zum Ausführen von tiefgreifender, schneller Analyse von verdächtigen Objekten abdeckt. Und so funktionierts:

  • Virtuelle Maschinen werden (für verschiedene Objekttypen) mit Einstellungen erstellt, die sowohl ihre optimale Ausführung als auch eine maximal hohe Erfassungsrate sicherstellen.
  • Der Hypervisor einer virtuellen Maschine funktioniert in Verbindung mit der Systemprotokollierung des Verhaltens eines Objekts und dessen Analyse, wobei er durch aktualisierbare Datenbanken von Vorlagen zu verdächtigem Verhalten, Heuristik, der Logik zu Reaktionen auf Aktionen usw. unterstützt wird.
  • Wenn verdächtige Aktionen erkannt werden, ändert das Analysesystem nach Bedarf den Ausführungsprozess des Objekts auf einer virtuellen Maschine, damit das Objekt seine böswilligen Absichten zeigen kann. So kann das System Dateien erstellen, die Registrierung ändern, sich beschleunigen usw.

Der letzte (dritte) Punkt ist das einzigartigste und beste Feature unserer Technologie. Hier ist ein Beispiel, anhand dessen Sie sehen können, wie es funktioniert.

Das System erkennt, dass eine gestartete Datei „schläft“ und keine Aktivität mehr zeigt. Das liegt daran, dass das Objekt so programmiert werden kann, dass es mehrere (dutzende) Minuten (Stunden) überhaupt nichts macht, bis es mit seiner bösartigen Aktivität beginnt. Wenn das Objekt nicht aktiv ist, beschleunigen wir bei Bedarf die Zeit der virtuellen Maschine auf eine, drei, fünf und bis zu zig Millionen Minuten pro Sekunde. Die Funktionsweise der analysierten Datei ändert sich nicht, während die Wartezeit um das Hundertfache (oder Tausendfache) verkürzt wird. Und falls die Malware nach ihrem „Nickerchen“ sich dazu entscheidet, die Systemuhr zu prüfen (hat sie getickt?), wird ihr vorgetäuscht, dass dies der Fall war. Danach beginnt die Malware mit ihrer bösartigen Mission und gibt sich dem Prozess zu erkennen.

Ein weiteres Beispiel:

Das Objekt verwendet eine Schwachstelle in einer spezifischen Bibliothek oder versucht, den Inhalt einer Datei oder einer Registrierung zu ändern. Zunächst versucht es, mit der regulären Funktion fopen() die Bibliothek (oder Datei oder Registrierung) zu öffnen, und falls es dies nicht schafft (es gibt keine Bibliothek oder Zugriffsrechte auf die Datei), dann gibt es auf. In einem solchen Szenario ändern wir (bei Bedarf) den Rückgabewert der Funktion fopen() von „Datei nicht vorhanden“ in „Datei existiert“ (oder wir erstellen gegebenenfalls die Datei selbst und füllen sie mit angemessenem Inhalt). Dann beobachten wir, wie das Objekt sich verhält.

Ein solcher Ansatz funktioniert auch sehr gut unter der Bedingung von Logikbäumen des Verhaltens eines Objekts. Beispiel: Wenn Datei A und Datei B existieren, dann wird Datei C modifiziert und der Job ist getan. Jedoch ist nicht bekannt, was das untersuchte Programm macht, wenn nur Datei A oder Datei B existiert. Daher haben wir parallel eine Iteration gestartet und sagen dem verdächtigen Programm, dass Datei A existiert, aber Datei B nicht. Dann analysieren wir die weitere Aktivität des Logikbaums.

Es ist wichtig zu wissen, dass die Reaktionsregeln zur Ausführung der Datei durch externe, einfach zu aktualisierende Datenbanken konfiguriert wird. Sie müssen nicht das ganze Modul neu entwickeln, um neue Logik hinzuzufügen. Sie müssen nur korrekt die Vielzahl von möglichen Szenarien von bösartigem Verhalten beschreiben und ein Ein-Klick-Update durchführen.

Jetzt wissen Sie grob, wie diese Technologie funktioniert. Sie wird bald KATA hinzugefügt und auch als eigenständige Lösung für Unternehmen (Kaspersky Sandbox) auf den Markt gebracht.