malware modeler

Un'applicazione e libreria di machine learning per l'addestramento di modelli di regressione logistica per la previsione di file benigni e malevoli, oltre a strumenti correlati.
Questo codice è di qualità beta e probabilmente presenterà dei bug.
Ci sono quattro passaggi fondamentali:
- Estrazione delle feature: trova i primi k n-grammi, k è circa da 100k a 1m, n dovrebbe essere 8.
- Creazione del file dataset: dalla tua raccolta di malware e goodware, crea un file dataset che contiene i campioni trasformati in feature come file dataset.
- Addestramento del modello: addestra un modello basato sui dati di addestramento, opzionalmente con validazione incrociata stratificata a n-fold (
train --folds N) che conserva solo il modello del fold migliore.
- Valutazione: valuta il modello rispetto ad alcuni dati di test o di validazione (dati di hold-out).
Inoltre:
- La feature di similarità può essere utilizzata per garantire che i campioni usati per l'addestramento abbiano una variazione adeguata.
- Le feature n-gram, i file dataset e i modelli sono legati a un tipo di file.
- Il modello può ridurre le k feature a una quantità inferiore, consentendo al modello di effettuare un'ulteriore selezione delle feature per ottenere, si spera, un modello migliore.
- I modelli dovrebbero essere creati solo per un tipo di file. Quindi un modello per gli EXE, uno per i PDF, uno per gli ELF, ecc.
- I dati di addestramento dovrebbero basarsi su una raccolta bilanciata con molti campioni. Stessa quantità di campioni benigni e malevoli, dovrebbero essercene almeno centinaia di migliaia.
- Questi sono modelli semplici, che sono validi solo quanto i dati di addestramento. Dati errati, etichettati male o troppo simili producono un modello inutile.
Basato sulle seguenti ricerche:
- Edward Raff, William Fleming, Richard Zak, Hyrum Anderson, Bill Finlayson, Charles K Nicholas, Mark McLean, William Fleming, Charles K Nicholas, Richard Zak and 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. Articolo.
- William Fleshman, Edward Raff, Richard Zak, Mark McLean and 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). Ottobre 2018, 1–10. Premio Best Paper. Articolo, Arvix, DOI.
- Edward Raff and Charles Nicholas. Hash-Grams: Faster N-Gram Features for Classification and Malware Detection. In Proceedings of the ACM Symposium on Document Engineering 2018. 2018. Articolo, DOI.
- Richard Zak, Edward Raff and Charles Nicholas. What can N-grams learn for malware detection? In 2017 12th International Conference on Malicious and Unwanted Software (MALWARE). Ottobre 2017, 109–118. Articolo, DOI.
- Edward Raff, Richard Zak, Russell Cox, Jared Sylvester, Paul Yacci, Rebecca Ward, Anna Tracy, Mark McLean and Charles Nicholas. An investigation of byte n-gram features for malware classification. Journal of Computer Virology and Hacking Techniques, Settembre 2016. Articolo, DOI.
Strumenti aggiuntivi:
- Estrai file da un archivio Zip in base al tipo di file, utile per lavorare con file provenienti da VirusShare.
- Ottieni un riepilogo dei file in un archivio Zip per tipo di file.
- Verifica i file in una directory per similarità a livello di byte tra loro per aiutarti a costruire un dataset con una buona variazione.
- Suddividi le directory di malware e goodware in set bilanciati di goodware train, malware train, goodware test, malware test.
Note aggiuntive:
- Considera di ottenere dati benigni da Assemblage [Paper, Paper, Code, Docs]
- Strumenti di intelligenza artificiale sono stati utilizzati sotto supervisione e test umani.