Software Sicherheit durch Programmanalyse
Software Security through Binary Analysis
Wissenschaftsdisziplinen
Informatik (100%)
Keywords
-
Security,
Malware Detection,
Reverse Enginering,
Buffer Overflow Detection,
Binary Analysis
Das Projekt "Software Sicherheit durch Programmanalyse" beschaeftigt sich mit der Entwicklung von neuartigen Techniken und Methoden im Gebiet der Analyse von ausfuehrbaren Programmen ("Binary Analysis"). Das Ziel dabei ist es, die Sicherheit von Software zu verbessern. Unter Binary Analysis versteht man die Analyse des ausfuehrbaren Maschinencodes eines Programms um dessen Design und Funktionalitaet besser verstehen zu koennen. Dabei ueberprueft man, ob der Code bestimmte Eigenschaften aufweist oder eine bestimmte Struktur hat. Auf Grund dieser Eigenschaften und Strukturen ist es dann moeglich, Aussagen ueber das Laufzeitverhalten des Programms zu machen. Mittels Binary Analysis und der Analyse des Laufzeitverhaltens eines Programms lassen sich viele sicherheitsrelevante Aufgaben loesen. Zum Beispiel kann man nach Codeteilen suchen, die die Struktur und das Verhalten von Viren oder trojanischen Pferden haben. Daneben lassen sich aber auch allgemeinere Aufgaben wie das Auffinden von Buffer Overflows bewaeltigen. Binary Analysis hat den Vorteil, dass die Analyse direkt am ausfuehrbaren Programm durchgefuehrt werden kann. Dadurch ist es nicht notwendig, den Quellcode zu untersuchen. Dies ist vor allem dann von Vorteil, wenn der Quellcode nicht verfuegbar ist, oder Probleme im Quellcode nicht sichtbar sind (z.B., Viren). Diesem Vorteil steht eine komplexere Analyse gegenueber. Ein Teil dieser Komplexitaet wird von der unregelmaessigen Struktur des Maschinencodes verursacht. Dabei spielen vor allem die unterschiedliche Laenge der Instruktionen, die Vermischung von Anweisungen und Daten, sowie Obfuscation (Verschleierung) und Verschluesselung eine Rolle. Ausserdem fehlt die Typinformation auf der Maschinencodeebene, und es existieren keine komplexen Kontrollanweisungen wie zum Beispiel Schleifen. Das Ziel dieses Projekts ist die Entwicklung einer soliden theoretischen Basis zur Beschreibung der Semantik von Maschinensprachen Anweisungen. Darauf aufbauend werden wir einen robusten Disassembler entwickeln, sowie eine Komponente die die Semantik von Instruktionssequenzen analysiert. Diese beiden Komponenten werden dann dazu verwendet, sicherheitsrelevante Eigenschaften und Strukturen in ausfuehrbaren Programmen zu bestimmen.
Cyberkriminelle versuchen immer öfter, Computer von arglosen Heimanwendern unter ihre Kontrolle zu bringen, um sie dann zu sogenannten Botnetzwerken zusammenzuschließen. Um dies zu erreichen, werden bösartige Programme auf diesen Computern installiert, die den Angreifern erlauben, den Computer fernzusteuern und verschiedenste Schadfunktionen zu nutzen. Um dieser Bedrohung entgegenwirken zu können, ist es notwendig, zwischen nützlichen und schädlichen Programmen zu unterscheiden. Dies erfordert jedoch eine umfangreiche semantische Analyse von unbekannten Programmen. Da täglich tausende von neuen Programmen gefunden werden, ist eine manuelle Auswertung jedoch unmöglich. Ziel dieses Projekts war es nun, neuartige Methoden zu finden, die verlässlich unbekannte Programme analysieren können und gleichzeitig diesen Schritt der semantischen Analyse zu automatisieren. Die Haupterrungenschaft dieses Projekts ist das Malware Analyse Tool ANUBIS (http://analysis.seclab.tuwien.ac.at/). Dieses von uns zur Verfügung gestellte Service, welches auf vielen der theoretischen Resultate dieses Projekts basiert, ermöglicht Benutzern, verdächtige, ausführbare Programme direkt online analysieren zu lassen und erstellt einfach zu lesende Berichte über die sicherheitsrelevanten Aktionen, die ein Programm ausführt. Seit der Einführung von ANUBIS wurden bereits mehr als eine Million verdächtige Programme analysiert, was zeigt, wie beliebt dieses Systems unter Sicherheitsforschern ist.
- Technische Universität Wien - 100%
- Giovanni Vigna, University of California at Santa Barbara - Vereinigte Staaten von Amerika
- Somesh Jha, University of Wisconsin-Madison - Vereinigte Staaten von Amerika
Research Output
- 890 Zitationen
- 5 Publikationen
-
2009
Titel Prospex: Protocol Specification Extraction DOI 10.1109/sp.2009.14 Typ Conference Proceeding Abstract Autor Comparetti P Seiten 110-125 -
2008
Titel Saner: Composing Static and Dynamic Analysis to Validate Sanitization in Web Applications DOI 10.1109/sp.2008.22 Typ Conference Proceeding Abstract Autor Balzarotti D Seiten 387-401 -
2007
Titel Exploring Multiple Execution Paths for Malware Analysis DOI 10.1109/sp.2007.17 Typ Conference Proceeding Abstract Autor Moser A Seiten 231-245 -
2007
Titel Building Anti-Phishing Browser Plug-Ins: An Experience Report DOI 10.1109/sess.2007.6 Typ Conference Proceeding Abstract Autor Raffetseder T Seiten 1-7 -
2010
Titel Inspector Gadget: Automated Extraction of Proprietary Gadgets from Malware Binaries DOI 10.1109/sp.2010.10 Typ Conference Proceeding Abstract Autor Kolbitsch C Seiten 29-44