Im Laufe der letzten Jahre hat sich die Anzahl der im Internet vorhandenen Schadsoftware vervielfacht. Hauptsächlich verantwortlich ist auf der einen Seite schlicht die gestiegene Popularität des Internets und die damit einhergehende erhöhte Anzahl an lohnenden Zielen. Ein weiterer Grund dafür ist jedoch auch, dass es Angreifern immer öfter gelingt, mit Hilfe kompromittierter Computer enorme Gewinne zu erzielen. Die Aussicht auf diese Profite motiviert immer öfter gut organisierte, kriminelle Gruppen sich an der Verbreitung von Schadprogrammen aktiv zu beteiligen. Die bösartige Software, die von diesen, an Profit orientierten, Gruppen verwendet wird, weißt dabei eine weit größere Professionalität auf als bisher bekannte Schadprogramme. Im Rahmen dieser Arbeit sollen nun innovative Möglichkeiten aufgezeigt werden, die es erlauben, auch solche neuartige Schadsoftware effizient mittels automatischer Werkzeuge zu analysieren.<br />Zuerst wird gezeigt, dass für die Analyse von Software, die bewusst Gegenmaßnahmen einsetzt um ebendiese Analyse zu verhindern, so genannte dynamische Analyseverfahren zu verwenden sind. Es werden Verfahren vorgestellt, die mit wenig Aufwand Schadcode so modifizieren, dass herkömmliche statische Analyseverfahren nicht mehr in der Lage sind, aufschlussreiche Informationen über die analysierte Software zu generieren. Da dynamische Analysemethoden gegen die hier vorgestellten Verfahren immun sind, sollte ihnen der Vorzug gegenüber statischen Methoden zur Schadcodeanalyse gegeben werden.<br />Ein Nachteil, den dynamische Analysemethoden im Gegensatz zu statischen Ansätzen jedoch besitzen, ist die geringere Abdeckung des Programmcodes eines analysierten Programms. Dadurch können unter Umständen Schadprogramme, die ihr bösartiges Verhalten nur unter sehr speziellen Bedingungen preisgeben, bei einer dynamischen Analyse fälschlich als gutartig eingestuft werden. Um diesem Problem entgegenzuwirken, wird in dieser Arbeit ein Ansatz vorgestellt, der dynamische Analyseverfahren erweitert. Es werden dabei Programmteile, die nur unter bestimmten Bedingungen, die während einer Analyse normalerweise nicht zutreffen, ausgeführt und analysiert.<br />Um dem Problem der Schadsoftware noch effizienter zu begegnen, als es mit den hier vorgestellten Analysemethoden möglich ist, wird auch der Prototyp eines Netzwerkanalysesystems vorgestellt. Dieses System ist in der Lage, Netzwerke aufzuspühren, die von Angreifern verwendet werden, um Schadsoftware in Umlauf zu bringen sowie andere Internet-basierte Angriffe zu starten. Mit Hilfe dieses Ansatzes ist es möglich, solche Netzwerke frühzeitig zu erkennen und bloßzustellen, was im besten Fall dazu führen kann, dass bösartige Netzwerke vom Internet abgeschnitten werden. Dadurch kann die Infrastruktur etwaiger Angreifer derart gestört werden, dass die Auslieferung von Schadcode an ihre Opfer fehlschlägt, wodurch die Sicherheit für Internetbenutzer immens gesteigert wird.<br />
de
dc.description.abstract
During the past few years, the damage caused by malware has dramatically increased. One reason is the rising popularity of the Internet and the resulting increase in the number of available vulnerable machines because of security-unaware users. Another reason is the elevated sophistication of the malicious code itself. Organized groups are releasing highly professional malicious software that contains sophisticated anti-analysis methods and payload for monetary gains. This fact brings up new, challenging problems for analysts of malicious software. In this work, we will present methods that allow to counter this threat. We will show both how current malicious software can be effectively analyzed by automated tools and how the underlying infrastructure of networks distributing malicious code can be exposed.<br />First, we show that for analyzing malicious code that deliberately tries to prevent analysis, dynamic analysis methods have to be preferred over static methods. We present a system that can easily transform malicious binaries into semantically equivalent programs such that static analysis methods can no longer gather any useful information from the binary. The only way to analyze those resulting programs is to use dynamic analysis, which is immune to the applied transformations.<br />Even though dynamic analysis methods are better suited to analyze malicious software, they usually have the problem of lower code coverage during the analysis than static methods, which usually analyze the complete binary. This can lead to the misclassification of a malicious program as benign if it executes its malicious payload only under very specific circumstances. To mitigate this problem, we present an approach to extend current dynamic analysis tools in a way that covers also code paths that are executed only if very specific conditions are met.<br />Finally, we present a system that is able to identify networks used by miscreants to distribute malicious code and launch other attacks against Internet users. By exposing those malicious networks, it is possible to generate effective blacklists that disallow access to servers hosted there or to even disconnect the whole network from the Internet by other Internet service providers. In both cases, the distribution of malicious programs to the victims of exploits can be prevented.