iX 2/2018
S. 114
Praxis
Malware-Analyse
Aufmacherbild

Verhaltensanalyse mit PeekabooAV und Cuckoo

Herausgepickt

E-Mail-Anhänge sind heute eines der Haupteinfallstore für Schadsoftware auf Computern. Da jedoch bei polymorphen Schädlingen traditionelle Virenscanner an ihre Grenzen stoßen, müssen neue, ergänzende Methoden her.

Dass die im Allgemeinen vor der Auslieferung von E-Mails an die Anwender zum Einsatz kommenden Virenscanner in vielen Fällen nicht mehr ausreichen, dürfte jeder bestätigen, der sich trotz Virenscanner eine Ransomware eingefangen hat und dann entweder Daten aus dem Backup wiederherstellen oder vielleicht sogar Lösegeld für seine Daten zahlen musste. Einige Fälle von Ransomware waren im letzten Jahr so erfolgreich, dass sie es bis in die Abendnachrichten geschafft haben, wobei auch sehr große Unternehmen oder Organisationen betroffen waren.

Eine Option zum Gegensteuern ist die Verwendung von Sandboxes. Die Autoren des Artikels „Kalkuliertes Risiko“ stellten in einem Vergleich diverse Sandboxing-Ansätze vor – mit Cuckoo als einzigem reinen Open-Source-Vertreter [1]. Allerdings existierte bis vor Kurzem keine Möglichkeit, die freie Sandbox in ein Mailsystem einzubinden und damit die Anhänge von E-Mails automatisch einer Verhaltensanalyse zu unterziehen.

Wenn der Kuckuck mit dem Sandkasten 

In einer PeekabooAV-Umgebung erfolgt das Bearbeiten einer eingehenden E-Mail typischerweise in neun Schritten.

Diese bislang fehlende Verbindung zwischen dem serverseitigen Virenscanner AMaViS und Cuckoo stellt seit Mai 2017 das Projekt PeekabooAV her. Damit ist es möglich, mit einem Open-Source-Mailsystem die Anhänge von E-Mails in einer Sandbox einer Verhaltensanalyse zu unterziehen und so Schadsoftware deutlich besser zu erkennen. Das in der Abbildung dargestellte Konzept konnte auch die Juroren des Open Source Business Award (OSBAR) überzeugen, sie verliehen dem Projekt im Rahmen der Konferenz OPEN! 2017 (Anfang Dezember in Stuttgart) den Sonder-OSBAR Public Sector.

Da die Analyse in einer Sandbox sehr ressourcenaufwendig ist, ist es nicht sinnvoll, wie bei traditionellen Virenscannern einfach jede Datei in der Sandbox zu untersuchen. Auch liefert Cuckoo keine eindeutige Ja-Nein-Entscheidung, wie sie ein Virenscanner erwartet, sondern eine detaillierte Analyse des Verhaltens, wenn man die untersuchte Datei mit ihrer Standardanwendung öffnet (entsprechend dem Doppelklick durch einen Anwender). Daraus ergeben sich einige Anforderungen an das unter der GPLv3 stehende PeekabooAV.

Als Erstes muss sich die Software AMaViS gegenüber wie ein Virenscanner verhalten. Weiter benötigt sie Vorschriften, welche Dateien in der Cuckoo-Sandbox zu untersuchen sind und welche nicht. In einer Datenbank muss das Tool über schon gescannte und in Bearbeitung befindliche Dateien Buch führen, um identische Anhänge nicht mehrfach zu scannen. Und letztlich muss ein Regelwerk anhand des Cuckoo-Reports festlegen, ob der E-Mail-Anhang zu blocken oder weiterzuleiten ist. Erwartungsgemäß erfüllt die aktuelle PeekabooAV-Version diese Anforderungen.

Der weitere Artikel beschreibt die Installation und Grundkonfiguration einer solchen Sandbox-Scanner-Kombination für einen Mailserver. Der Kasten „PeekabooAV-Voraussetzungen“ fasst die wesentlichen Vorbedingungen für einen Einsatz zusammen.

Eine Vorlage für die Scan-VMs

Als Hostsystem kann jedes beliebige aktuelle Linux oder macOS dienen. Wer ein wenig bastelt, schafft es vermutlich sogar mit Windows. Die Konfiguration eines MTA auf diesem System bleibt in diesem Artikel ebenso außen vor wie die Übergabe der E-Mails aus einem Mailsystem an AMaViS. Beides wurde schon hinlänglich beschrieben.

Da PeekabooAV und Cuckoo auf der PeekabooAV-VM beim Start fertige Scan-VMs erwarten, folgt hier zunächst die Einrichtung der Scan-VMs. Wie schon erwähnt, sollte dieser virtuelle Rechner in den Scan-VMs den Arbeitsplatzrechnern in der zu schützenden Umgebung möglichst nahe kommen. Das heißt, identische Windows-Version, derselbe Patchlevel und vor allem die gleiche installierte Software. Werden in einer Umgebung nicht alle Rechner zum gleichen Zeitpunkt aktualisiert, sollte man der Scan-VM immer zuletzt die Updates spendieren.

Cuckoo kommuniziert mit den VMs über einen in Python geschriebenen Agenten. Damit diese Kommunikation funktioniert, müssen die Scan-VMs einige Voraussetzungen erfüllen. Als Erstes ist die Firewall zu deaktivieren. Weiter muss das System mit einer eindeutigen IP-Adresse mit dem Netz vboxnet0 verbunden sein und darüber mit der PeekabooAV-VM kommunizieren können.

Außerdem benötigt die VM ein aktuelles Python 2.7 und für Screenshots das Paket python-pillow. Zum Aufspielen des in Python geschriebenen Cuckoo Agent kopiert man die Datei agent.py aus dem Verzeichnis /var/lib/peekaboo/.cuckoo/agent/agent.py der PeekabooAV-VM in ein beliebiges Verzeichnis auf der Scan-VM.

Ein Doppelklick auf die Datei agent.py startet den Agenten. Dabei öffnet sich ein Python-Fenster. Wer das nicht möchte, muss das Skript vorher in agent.pyw umbenennen. Über eine Gruppenrichtlinie ist sicherzustellen, dass der Agent die Programme im Debug-Modus starten kann. Für ein einfacheres Klonen sollte man einen Admin-User anlegen, den das System beim Hochfahren automatisch anmeldet und der agent.py über den Autostartordner startet. Weiter empfiehlt es sich, Virenscanner und Programme wie das Enhanced Mitigation Experience Toolkit (EMET) zu deinstallieren. Allerdings lassen sich so Angriffe auf den Virenscanner nicht mehr erkennen.