Sicherheit ist trumpf

Rootkits und Malware entdecken und das Gefahrenpotenzial analysieren

Malware wie Rootkits sind Tarnungskünstler und arbeiten auf Computern oft lange unentdeckt vor dem Benutzer und den Antivirenprogrammen. Die Experten von SophosLabs erläutern, wie sie in einem komplexen Prozess Rootkits und Malware auf infizierten Systemen enttarnen.

Wenn es eine neue Malware-Form in die Schlagzeilen schafft, lauten die ersten Fragen meistens "Wie funktioniert sie?" und "Was kann ich dagegen tun?". In den guten alten Zeiten, als wir es mit nicht mehr als sein paar hundert neuen Schädlingen pro Jahr zu tun hatten, konnten wir uns einen ersten, analytischen Zugang verschaffen, indem wir einfach den Code selbst zerlegt oder dekompiliert haben. Nachdem wir wussten, welche Operationssequenzen die Malware ausführt, zum Beispiel das Scannen von Laufwerken und das Andocken an jede .COM-Datei, haben wir die Schadsoftware noch einmal auf einem neu konfigurierten Computer ausgeführt, um unsere Analyse zu bestätigen.

Diese Zeiten sind lange vorbei und wir sehen uns heutzutage mit hunderttausenden neuer Malware-Formen jeden Tag konfrontiert, die in verschiedensten Programmiersprachen geschrieben und auf die unterschiedlichste Art und Weise "ausgeliefert" werden. Dabei ist jedoch entscheidend, dass ein Großteil der neuen Samples nicht wirklich neu im eigentlichen Sinne des Wortes ist. Sie sind lediglich im strikt technischen Sinne einzigartig, da sie Byte-Sequenzen beinhalten, die uns so zuvor noch nicht untergekommen sind. Also etwa so, wie "Guten Morgen" und "GUTEN MORGEN" nicht genau dasselbe ist. Tatsächlich ist es so, dass die meisten neuen Schädlinge, die Tag für Tag auf uns einprasseln, mehr oder weniger abgewandelte Varianten von Malware sind, die wir schon enttarnt haben oder die verschlüsselt, beziehungsweise neu gepackt wurden. Trotz all dieser Übereinstimmungen bleiben dabei noch jede Menge Samples übrig, die wir unter die Lupe nehmen müssen.

Um dieser Masse Herr zu werden, starten wir unsere Analysen normalerweise mit einer dynamisch-deduktiven, also schlussfolgernden Methode, auf Basis bekannter Daten. Dazu nutzen wir automatisierte Systeme, die die Malware in einer kontrollierten Umgebung ausführen und Gemeinsamkeiten suchen. So müssen wir nicht mehr versuchen, jedes einzelne Sample manuell zu dekonstruieren, wie es in den 80er Jahren der Fall war. Und das führt uns zu den zwei Fragen hinter der Fragestellung, die wir zu Beginn des Artikels gestellt haben: "Wie bekommt man heraus, wie die Malware funktioniert" und "Wie kann man die Aktionen der Malware nachverfolgen?"

Der Malware auf der Spur

Zu den gängigen Monitoring-Techniken zur Überwachung verdächtiger Programme gehören das Snapshotting und System Call Tracing. Bei ersterem unterziehen wir das System einem "Vorher"-Snapshot, der den kompletten Status inklusive Dateinahmen und Checksummen sowie Registry-Inhalten sichert. Dann starten wir die Malware, machen erneut einen Snapshot und vergleichen die beiden Abbilder miteinander. Bei System Call Tracing verfolgen wir alle System-Aufrufe wie CreateFile(), CreateProcess() oder URLDownloadToFile() und zeichnen die genutzten Parameter auf.

Die Snapshot-Technik sagt uns also, was die Malware anrichtet und das Tracing zeigt auf, wie die Malware vorgeht. So können wir zum Beispiel feststellen, welche Dateien heruntergeladen wurden und im Idealfall gleichzeitig die Herkunftsquelle identifizieren. Aber natürlich leben wir in keiner perfekten Welt, und es tauchen verschiedenen Probleme auf, die uns die Snapshot-Tracing-Logik mit Vorsicht nutzen lassen. Dazu gehören:

Störrauschen: Eine neue Datei, die als einzelnes Element in einem Snapshot abgebildet wird, kann eventuell durch hunderttausende Byte-by-Byte-Aufrufe an WriteFile() entstanden sein.

Timing: Wie lange sollen wir zwischen den Snapshots warten? Dauert die Pause zu lange, kann die Malware schon wieder verschwunden sein, checken wir zu früh, taucht die Malware vielleicht erst später auf, um ihr Werk zu beginnen.

Gewissheit: Da wir unsere Messungen innerhalb eines Betriebssystems vornehmen, besteht immer die Chance, dass die Malware uns bewusst mit Falschinformationen füttert.

Außerdem stellt sich uns natürlich auch immer die Frage, ob die Malware geheime Aktionen unterhalb unseres Radars vorgenommen hat. So könnte der Schädling beispielsweise ein Rootkit installieren, das ungenutzte Teile der Festplatte via System-Aufrufe nutzt, die wir nicht überwachen. Oder einfach noch nicht dokumentierte Features und Exploits anwenden.