Merzdovnik, G. (2012). Automated analysis and clustering of Windows shellcodes [Diploma Thesis, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/160581
E188 - Institut für Softwaretechnik und Interaktive Systeme
-
Date (published):
2012
-
Number of Pages:
63
-
Keywords:
Schadsoftware
de
Malware; shellcode
en
Abstract:
Bösartige Software, auch Malware genannt, dient als Plattform für Internet-Kriminalität und ist eines der größten Sicherheitsprobleme in heutigen Systemen und Netzwerken. Die Analyse solcher Mal- ware kann tieferen Einblick in die Ziele eines Angreifers geben. Weiters können Informationen über die technischen Mittel gewonnen werden, mit welchen er versucht diese Ziel zu erreichen oder Anti- Virus-Engines und andere Host- oder Netzwerk-basierte Abwehrmethoden zu überlisten. Die hohe Anzahl an Malware, welche jeden Tag in die freie Wildbahn entlassen wird macht es unmöglich für Sicherheitsforscher jede einzelne gefundene Schadsoftware individuell zu betrachten. Deshalb verlas- sen sie sich auf dynamische Ausführungs- und Analyseumgebungen wie Anubis um Malware in einer Sandbox auszuführen und zu klassifizieren. Diese Umgebungen führen Malware in einer Sandbox automatisiert aus und geben einen Bericht über das beobachtete Verhalten zurück. Solche Systeme haben allerdings den Nachteil, dass sie jede Probe isoliert betrachten und nicht darauf eingehen, wie ein Angreifer die Schadsoftware am System eines Opfers installiert.<br />Autoren solcher Schadsoftware verwenden unterschiedliche Methoden um ihre Software zu verteilen. In vielen Fällen wird Schadsoft- ware installiert indem Sicherheitslücken in Software, welche am System des Opfers läuft, ausgenutzt werden. Solche Schwachstellen erlauben es dem Angreifer beliebigen Code in den Speicher eines Pro- grammes zu laden und anschliessend auszuführen. Dieses kleine Stück Code, welches geladen und ausgeführt wird, wird normalerweise als Shellcode bezeichnet.<br />Typischerweise wird es dazu benutzt um weitere Schadsoftware herunterzuladen und auf dem System des Opfers auszuführen.<br />In dieser Arbeit präsentieren wir eine Erweiterung für Anubis zur Shellcode-Analyse, welche die Analyse und das Clustering unterschiedlicher Shellcodes, welche zur Infektion angreifbarer Systeme verwendet werden, automatisiert. Wir präsentieren Techniken zur automatischen Analyse welche es erlauben ein tieferes Verständnis der Methoden zu bekommen, wie Malware-Autoren Systeme infizie- ren. Das System selbst arbeitet mit Hilfe der Instrumentierung der Anubis Malware Analyse Umge- bung um eine genauere Inspektion von Shellcodes zu ermöglichen. Weiters verwenden wir Techniken um Gemeinsamkeiten und Unterschiede verschiedener Shellcodes, welche aktiv genutzt werden, zu finden. Für dies haben wir eine Reihe von Distanzmetriken und Clustering-Ansätzen evaluiert um zu verstehen, wie solche Clustering Methoden zum Finden von Gemeinsamkeiten in Shellcodes ver- wendet werden können. Im praktischen Einsatz hat sich gezeigt, dass unser System wertvolle Infor- mationen über verschiedene Shellcodes liefern kann. Weiters ist die Analyseumgebung in der Lage Ähnlichkeiten zwischen Shellcodes zu identifizieren.<br />
de
Malicious software, also known as malware, serves as a platform for internet crime and is at the heart of most security problems in today's systems and networks. The analysis of malware samples can provide rich insight into the attacker's goals, as well as the techinical means by which they strive to achieve these goals and to defeat anti-virus engines and other host- or network-based defenses.<br />As tens of thousands of malware samples are released in the wild each day, security researchers do not have the time to inspect each sample in- dividually. Therefore they rely on dynamic execution and analysis environments like Anubis to execute and classify malware samples. These environments automatically execute malware samples in a sandbox and provide a report on the observed behavior.<br />Current dynamic malware analysis sandboxes, however, analyze each malware sample in isolation and do not take into account the way the malware would be deployed by an attacker to a victim's system. Malware authors use a variety of methods to deploy their binaries. In many cases, malware is deployed by taking advantage of vulnerabilities in the software running on a system that allow an attacker to inject arbitrary code into the program's memory space and trigger its execution. This small piece of malicious, injected code is commonly known as shellcode, and its task is typically to download a malware binary and run it on the system.<br />In this thesis we present a shellcode analysis extension to Anubis, which automates the analysis and clustering of different shellcodes which are used to deploy malicious programs to a victim's computer. We present techniques that allow to automatically analyze shellcodes to gain a deeper understanding of the methods used by malware authors to gain a foothold on systems they have exploited. The system itself works by instrumenting the Anubis malware analysis environment to allow for a more fine grained dissection of shellcode. Furthermore we employ techniques to find similarities and diversities in shellcode used in the wild today. For this, we evaluate a number of distance metrics and clustering approaches to understand how such clustering methods can be used to find similarities between shellcodes. In a real world environment this system has shown to give valuable information about different shellcodes and is also able to detect similarities between different samples.<br />