Entwicklung eines Verfahrens zur Code-Bewertung

#Institut für IT Sicherheitsforschung #IT Security (BA) #Information Security (MA) #Innoscheck #Nationale Drittmittel

Die Ergebnisse dynamischer Analysen von Code Samples wurden in einer Datenbank gespeichert. Für diese Daten wurden dann Algorithmen – einerseits ein speziell entwickelter Bewertungsalgorithmus und andererseits Algorithmen aus dem Data Mining Bereich – angewendet, um eine Bewertung der Bösartigkeit des Samples zu erhalten.

Ausgangslage diese Projekts war es, aus der Flut täglich anfallender Samples an verdächtigem Code möglichst rasch jene herauszufiltern, die potentiell gefährlich und daher näher zu untersuchen sind. Ziel war eine automatisierte Lösung zur Erkennung des Gefahrenpotentials einer unbekannten ausführbaren Datei. Dabei wird das Verhalten des Samples auf System-Call- bzw. API-Ebene betrachtet.

Es wurden dynamische Verhaltensanalysen einer großen Zahl von Samples mit Hilfe eines Emulationstools durchgeführt. Das Ergebnis der Verhaltensanalyse wurde in eine Datenbank importiert.

Einerseits wurde ein Bewertungsschema erarbeitet, das auf Grund des Verhaltens eines Samples eine quantifizierte Einschätzung der Gefährlichkeit des Samples liefert. Der wesentliche innovative Punkt in diesem Verfahren ist, dass er sowohl schädliches als auch unbedenkliches Verhalten auf spezielle Art berücksichtigt und bewertet. Die erste Komponente des Algorithmus vergleicht vom Sample genutzte Dateisystemobjekte mit einer zuvor zusammengestellten Liste relevanter Dateien, Registry Keys, Systemdiensten und anderer Betriebssystemkomponenten. Je nach Bedenklichkeit und potentiellem Ziel der Interaktion werden Punkte vergeben. Der zweite Teil des Bewertungsverfahrens verfolgt eindeutige Objektnamen durch den gesamten Verlauf der Ausführung und überprüft auf verdächtige Wiederverwendung dieser zu einem späteren Zeitpunkt. Der entwickelte Algorithmus wurde implementiert und an 500 Proben – sowohl schädlicher als auch harmloser Natur – getestet. Trotz statistischer Ausreißer und einiger untätiger Samples erreichte der Algorithmus eine Genauigkeit von über 80% bei der Klassifizierung der Samples (Malware bzw. harmlos).

Andererseits wurden Experimente mit Data Mining Algorithmen auf dieser Verhaltensdatenbank durchgeführt, um die prinzipielle Machbarkeit solcher Verfahren zu testen und erste Erfahrungen mit verschiedenen Algorithmen zu machen. Die Ergebnisse dieses Teils des Projekts bilden den Ausgangspunkt für weitere Projekte.