Malware-Untersuchung mit Cuckoo

Kuckuck, Kuckuck

Wer schädliche Software, umgangssprachlich als Malware bezeichnet, näher untersuchen möchte, dem stehen mehrere Möglichkeiten zur Verfügung. In diesem Artikel wird der Sandboxing-Ansatz auf Basis der Open-Source-Software Cuckoo näher vorgestellt.
Die dunkle Jahreszeit ist Einbruchszeit - ein Anlass, auch die IT-Sicherheit unter die Lupe zu nehmen. In der Oktober-Ausgabe des IT-Administrator lesen Sie, ... (mehr)

Seit dem Aufkommen von Ransomware und ähnlichen Formen von Malware wird in den Medien wieder öfter über dieses Thema berichtet. Setzt man sich etwas näher hiermit auseinander, so ist schnell klar, dass schon seit vielen Jahren ein ganzer Industriezweig rund um das Thema Schadsoftware entstanden ist. Die Vorgehensweise der Angreifer ist dabei meist identisch. Zunächst müssen sie erst einmal ein Einfallstor in das Zielnetzwerk finden. Neben dem Ausnutzen von Sicherheitslücken in Software ist auch der Versand von Schadsoftware via E-Mail immer noch sehr beliebt. Hier ist zu beobachten, dass Angreifer mittlerweile gerne mehrere Attachments an eine Mail anhängen, wobei lediglich ein Anhang die Schadsoftware enthält. Manche Mail-Scanner lassen sich leider so austricksen. Auch Social-Engineering spielt eine große Rolle, um an die Informationen zu kommen, die als Basis für den Angriff dienen.

Hat ein Angreifer schließlich Zugriff auf ein System bekommen und die Malware platziert, so besteht der nächste Schritt zumeist darin, ein sogenanntes "Remote Access Tool" (RAT) zu installieren, das von einem Control&Command-System gesteuert wird. Ab diesem Stadium kann ein Angreifer sich dann darum kümmern, einen dauerhaften Zugang zum infizierten System herzustellen und auch andere Systeme in dem lokalen Netzwerk zu übernehmen, um so letztendlich an die gewünschten Daten zu kommen.

Methoden der Malware-Analyse

Sicherheitsforscher und auch lokale Computer-Emergency-Response-Teams sind natürlich bemüht zu verstehen, was eine Schadsoftware genau macht und welche Kommunikationswege sie zu externen Systemen aufbaut. Nur so lassen sich letztendlich Rückschlüsse darauf ziehen, woher die Software stammt und welche Absichten sie tatsächlich verfolgt. Um dies herauszufinden, existieren zwei grundlegende Ansätze. Zum einen kann man versuchen, die Software statisch zu untersuchen und zu disassemblieren, um so zu verstehen, was der Code macht. Diese Methode wird als Reversing oder Reverse Engineering bezeichnet und setzt entsprechende Tools voraus, wie beispielsweise das bekannte IDA Pro.

Ein anderer Ansatz besteht darin, die Software innerhalb einer sicheren Umgebung zu installieren und ihre Aktivitäten in Echtzeit zu beobachten. Hierfür kommen oft virtuelle Maschinen, aber auch Hardware-Appliances zum Einsatz. FireEye ist beispielsweise ein bekannter Hersteller solcher Applicances. Diese Technik ist unter dem Namen Sandboxing bekannt. Beide Methoden haben ihre Vor- und Nachteile.

 Beim Reversing ist ein sehr gutes Verständnis der Maschinensprache notwendig, um mit den entsprechenden Tools umgehen zu können und die Ergebnisse zu interpretieren. Dafür erhält man dann aber auch einen tiefen Einblick in den Code der Software und kann sie bis in die letzte Ecke erforschen.

Sandboxing führt wesentlich schneller zu Ergebnissen, allerdings besteht hier immer die Gefahr, dass die Malware erkennnt, dass sie innerhalb einer Sandbox abläuft und somit unter Umständen ganz andere Codepfade ausführt, als wenn sie außerhalb einer solchen Umgebung ausgeführt wird. Hardware-Appliances haben desweiteren den Nachteil, dass sie weniger flexibel sind als Software, die sich die eigene Landschaft anpassen lässt.

Bild 1: Cuckoo startet zur Untersuchung der Malware jeweils eine eigene virtuelle Maschine.

Das hier vorgestellte Tool Cuckoo fällt in die Gruppe der Sandboxes. Das Projekt wurde im August 2010 gestartet, mittlerweile ist der Release Candidate für die Version 2.0 auf dem Markt. Die Linux-Software ist unter der GPL3 lizenziert und steht kostenlos zum Download zur Verfügung. Auch wenn Cuckoo durchaus im professionellen Umfeld verwendet wird, so ist der Umstand, dass die Software kostenfrei verfügbar ist, gerade für Studenten und angehende Forscher interessant, die eine Investition in oftmals doch sehr teure Hardware-Appliances scheuen. Teilweise wird Cuckoo auch parallel zu Hardware-Appliances betrieben, da der modulare Ansatz der Software eine Anpassung an die eigene Umgebung zulässt und sich somit bessere Testergebnisse erzielen lassen.

Cuckoo bietet eine Reihe interessanter Features. Die Software kann eine Vielzahl von Dateitypen analysieren und überwacht jeden Systenaufruf der Schadsoftware, die innerhalb einer virtuellen Maschine ausgeführt wird. Desweiteren werden sämtliche Dateien beobachtet, die von der Malware angelegt, gelöscht oder von externen Quellen geladen werden. Der Netzwerkverkehr wird ebenfalls mitgeschnitten und ein Dump als PCAP-Trace zur Auswertung gespeichert. Um auch den Inhalt von volatilen Speichern zu sichern, erzeugt Cuckoo sowohl einen Speicher-Dump der kompletten virtuellen Maschine als auch der Malware-Prozesse selbst. Wer sich aus dem Cuckoo Git-Repository das wget-Modul [2] holt und es nach "$install-folder/analyzer/

linux/modules/packages/wget.py" kopiert, kann hiermit auch ganze Webseiten auf Malware überprüfen. Alle Ergebnisse werden schließlich in einem Report zusammengefasst und zur Auswertung zur Verfügung gestellt.

Architektur

Das Herzstück von Cuckoo besteht aus einer zentralen Managementkomponente, die für das Scheduling der Analyse-Jobs und die Auswertung der Ergebnisse zuständig ist. Die Jobs selbst laufen in isolierten virtuellen Maschinen, die für jeden Analyse-Job neu erzeugt werden. Als Host-System setzt Cuckoo Linux voraus, wobei die Software wohl auch schon erfolgreich unter macOS eingesetzt wurde. Als Virtualisierungslösungen kommen sowohl VMware, Virtualbox oder auch KVM/Libvirt in Frage. Innerhalb der virtuellen Systeme, in denen die Malware installiert wird, unterstützt Cuckoo Win­dows, macOS, Linux und Android.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023