Malware-Modellierer

Eine Machine-Learning-Anwendung und -Bibliothek zum Trainieren logistischer Regressionsmodelle für die Vorhersage von gutartig vs. bösartig sowie zugehörige Werkzeuge.
Dieser Code hat Beta-Qualität und wird wahrscheinlich Fehler enthalten.
Es gibt vier grundlegende Schritte:
- Merkmalsextraktion: Finde die Top-k-n-Gramme, k liegt bei etwa 100.000 bis 1 Mio., n sollte 8 sein.
- Erstellung der Datensatzdatei: Erstelle aus deiner Malware- und Goodware-Sammlung eine Datensatzdatei, die die featureisierten Proben als Datensatzdatei enthält.
- Modelltraining: Trainiert ein Modell auf Basis der Trainingsdaten, optional mit stratifizierter n-facher Kreuzvalidierung (
train --folds N), die nur das Modell des besten Folds behält.
- Evaluierung: Bewertet das Modell anhand von Test- oder Validierungsdaten (Hold-out-Daten).
Zusätzlich:
- Das Ähnlichkeitsmerkmal kann verwendet werden, um sicherzustellen, dass die für das Training verwendeten Proben eine ausreichende Variation aufweisen.
- N-Gramm-Merkmale, Datensatzdateien und Modelle sind an einen Dateityp gebunden.
- Das Modell kann die k Merkmale auf eine geringere Anzahl reduzieren, wodurch das Modell eine weitere Merkmalsauswahl durchführen kann, um hoffentlich ein besseres Modell zu erstellen.
- Modelle sollten nur für einen Dateityp erstellt werden. Also ein Modell für EXEs, eines für PDFs, eines für ELFs usw.
- Die Trainingsdaten sollten auf einer ausgewogenen Sammlung mit vielen Proben basieren. Gleiche Anzahl gutartiger und bösartiger Proben, mindestens Hunderttausende.
- Dies sind einfache Modelle, die nur so gut sind wie die Trainingsdaten. Schlechte, falsch gekennzeichnete oder zu ähnliche Daten ergeben ein wertloses Modell.
Basierend auf der folgenden Forschung:
- Edward Raff, William Fleming, Richard Zak, Hyrum Anderson, Bill Finlayson, Charles K Nicholas, Mark McLean, William Fleming, Charles K Nicholas, Richard Zak und Mark Mclean. KiloGrams: Very Large N-Grams for Malware Classification. In Proceedings of KDD 2019 Workshop on Learning and Mining for Cybersecurity (LEMINCS'19). 2019. Artikel.
- William Fleshman, Edward Raff, Richard Zak, Mark McLean und Charles Nicholas. Static Malware Detection & Subterfuge: Quantifying the Robustness of Machine Learning and Current Anti-Virus. In 2018 13th International Conference on Malicious and Unwanted Software (MALWARE). Oktober 2018, 1–10. Best Paper Award. Artikel, Arvix, DOI.
- Edward Raff und Charles Nicholas. Hash-Grams: Faster N-Gram Features for Classification and Malware Detection. In Proceedings of the ACM Symposium on Document Engineering 2018. 2018. Artikel, DOI.
- Richard Zak, Edward Raff und Charles Nicholas. What can N-grams learn for malware detection? In 2017 12th International Conference on Malicious and Unwanted Software (MALWARE). Oktober 2017, 109–118. Artikel, DOI.
- Edward Raff, Richard Zak, Russell Cox, Jared Sylvester, Paul Yacci, Rebecca Ward, Anna Tracy, Mark McLean und Charles Nicholas. An investigation of byte n-gram features for malware classification. Journal of Computer Virology and Hacking Techniques, September 2016. Artikel, DOI.
Zusätzliche Tools:
- Dateien anhand des Dateityps aus einem Zip-Archiv extrahieren, nützlich für die Arbeit mit Dateien von VirusShare.
- Eine Zusammenfassung der Dateien in einem Zip-Archiv nach Dateityp erhalten.
- Dateien in einem Verzeichnis auf Byte-Ebene auf Ähnlichkeit zueinander prüfen, um einen Datensatz mit guter Variation aufzubauen.
- Malware- und Goodware-Verzeichnisse in ausgewogene Goodware-Train-, Malware-Train-, Goodware-Test- und Malware-Test-Sets aufteilen.
Zusätzliche Hinweise:
- Erwägen Sie, benign Daten von Assemblage zu beziehen [Paper, Paper, Code, Docs]
- KI-Tools wurden unter menschlicher Aufsicht und mit Tests eingesetzt.