Entwicklung eines flexiblen Systems aus neuronalen Netzen zur Klassifizierung von Malware

Master-Studiengang Information Security

Dipl.-Ing. Stefan Boubela, BSc

Betreuer: FH-Prof. Dipl.-Ing. Dr. Sebastian Schrittwieser, Bakk.

Ausgangslage

Neuronale Netze sind eine vielversprechende Technologie im Bereich künstliche Intelligenz, um damit automatisch Klassifizierungen und Regressionen durchzuführen. In verschiedensten Versuchen konnten diese Netze bereits beeindruckende Ergebnisse erzielen und dabei die Fähigkeiten des Menschen übertreffen. Auch in der Malware-Erkennung gelten neuronale Netze als zukunftsträchtige Technologie und sollen die klassischen signatur-basierten Verfahren, welche gegen die heutigen Mengen und Methoden von Malware kaum eine Chance haben, ablösen. Zwar existieren bereits Systeme, die unter Laborbedingungen nahezu perfekte Ergebnisse erzielen, diesen mangelt es jedoch meist an Alltagstauglichkeit und der Möglichkeit, sich flexibel an die tatsächliche Anwendungsumgebung anzupassen. Weiter fehlt für neuronale Netze ein umfassender Überblick, um weitere Forschung und Entwicklung zu ermöglichen und zu fördern.

Ziel

Das Ziel dieser Arbeit ist einerseits, Grundlagen für neuronale Netze wie Architekturen und Verfahren zu beschreiben, andererseits, ein flexibles System zur Klassifizierung von Malware theoretisch zu modellieren und praktisch zu implementieren.

Ergebnis

Diese Arbeit beschreibt daher zu Beginn eine umfangreiche Zusammenfassung zu neuronalen Netzen und häufigen Verfahren und Algorithmen, um eine einheitliche Ausgangslage zu schaffen und Entwicklungen in diesem Bereich zu fördern. Die Grundlagen reichen dabei von einfachen Fragen wie „Was sind neuronale Netze?“ bis zu modernen Verfahren, wie Adaptive Moment Estimation, und Problemen, wie Overfitting und Covariate Shift, um das Thema möglichst vollständig abzudecken. Danach werden aufgrund der Vielzahl an verfügbaren Netzen und Frameworks einerseits passende Netze zur Erreichung der gesetzten Zielsetzung dieser Arbeit, aber auch verschiedenste Frameworks zur praktischen Implementierung evaluiert. In späteren Kapiteln werden darauf basierend zwei Systeme theoretisch modelliert, verbessert und zuletzt praktisch implementiert. Entscheidungen und neue Verfahren werden dabei in simplen Versuchen praktisch untermauert. Das resultierende System bietet die Funktionalität eines herkömmlichen Classifiers, während es mehr Flexibilität bei Training und Implementierung bietet und einen Mechanismus zur Steuerung von False-Positive-Rate und Erkennungsrate besitzt. Des Weiteren ist das System durch ein implementiertes Kodierungsverfahren in der Lage, nahezu jeden Input ohne größere Anpassungen zu verarbeiten.