Automatisierte Signaturgenerierung für Malware-Stämme - Zynamics
Automatisierte Signaturgenerierung für Malware-Stämme - Zynamics
Automatisierte Signaturgenerierung für Malware-Stämme - Zynamics
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
26 2 Begriffe, Konzepte und Verfahren<br />
Im Vergleich zu Perl-kompatiblen regulären Ausdrücken werden die Schrittinstanzselektionsmodi<br />
letzte und alle, sowie der Konsummodus nicht-konsumierend nicht unterstützt.<br />
Tabelle 2.4 fasst die Ergebnisse der semantischen Betrachtungen zusammen.<br />
2.5 Analyse von <strong>Malware</strong><br />
Vor der Erstellung einer Signatur zur Erkennung einer spezifischen <strong>Malware</strong> durch ein Antivirenprogramm<br />
ist zunächst eine umfassende Analyse des jeweiligen Schadprogramms<br />
erforderlich. Dabei wird nach charakteristischen Merkmalen der <strong>Malware</strong> gesucht, um<br />
daraus später eine Signatur zu erstellen. Dies geschieht üblicherweise manuell oder<br />
halb-automatisch.<br />
Die folgenden Abschnitte richten den Blick auf einige Softwarewerkzeuge und Analysemethoden,<br />
bevor in Kapitel 3 ein automatisiertes Verfahren dieses Prozesses vorgestellt<br />
wird, welches auf den vorgestellten Methoden aufbaut.<br />
2.5.1 IDA Pro<br />
Schadprogramme liegen bei ihrer Erscheinung – also ihrer ersten Verbreitung – nicht<br />
im Quelltext, sondern in Form von Objektcode vor, der je nach Art der <strong>Malware</strong> unterschiedlich<br />
gut getarnt sein kann. Die Analyse der Binaries solcher Programme erfolgt mit<br />
einer symbolischen Repräsentation der vom Prozessor 27 des Rechensystems ausgeführten<br />
Instruktionen, auch Assemblersprache (engl. assembly language) oder Assembler genannt.<br />
Ein Disassembler ist ein Programm, das Objektcode in diese symbolische Darstellung<br />
übersetzt, wobei der Objektcode meist zunächst aus einer ausführbaren Datei extrahiert<br />
wird (der Disassembler simuliert hier gewissermaßen das Ladeprogramm des Betriebssystems).<br />
Da Assemblersprache schwierig zu lesen und zu verstehen ist 28 , implementieren Disassembler<br />
eine Reihe von Techniken, die die Assemblerdarstellung eines Programms<br />
lesbarer gestalten.<br />
27 Da ein bestimmter Ausführungspfad eines Programms logisch immer nur auf einer Recheneinheit ausgeführt<br />
wird, genügt es, hier von einem Prozessor zu sprechen, selbst wenn das Programm Nebenläufigkeit<br />
und mehrere Prozessoren benutzt.<br />
28 Dies hängt natürlich stark von der Expertise des Benutzers ab, ist aber in etwa vergleichbar mit einer<br />
Wort-<strong>für</strong>-Wort-Übersetzung eines Textes.