modelador de malware

Uma aplicação e biblioteca de aprendizado de máquina para treinar modelos de regressão logística para predição de benigno vs. malicioso, além de ferramentas relacionadas.
Este código é de qualidade beta e provavelmente terá bugs.
Existem quatro etapas básicas:
- Extração de características: encontre os principais k n-gramas, k é cerca de 100 mil a 1 milhão, n deve ser 8.
- Criação do arquivo de conjunto de dados: a partir da sua coleção de malware e goodware, crie um arquivo de conjunto de dados que contém as amostras vetorizadas como um arquivo de conjunto de dados.
- Treinamento do modelo: treina um modelo com base nos dados de treinamento, opcionalmente com validação cruzada estratificada de n dobras (
train --folds N), que mantém apenas o modelo da melhor dobra.
- Avaliação: avalia o modelo em relação a alguns dados de teste ou validação (dados de retenção).
Além disso:
- A característica de similaridade pode ser usada para garantir que as amostras usadas no treinamento tenham variação adequada.
- Características de n-gramas, arquivos de conjunto de dados e modelos estão vinculados a um tipo de arquivo.
- O modelo pode reduzir as k características para uma quantidade menor, permitindo que o modelo faça uma seleção adicional de características para, esperançosamente, criar um modelo melhor.
- Os modelos devem ser criados apenas para um tipo de arquivo. Portanto, um modelo para EXEs, um para PDFs, um para ELFs, etc.
- Os dados de treinamento devem ser baseados em uma coleção balanceada com muitas amostras. A mesma quantidade de amostras benignas e maliciosas, devendo ter pelo menos centenas de milhares.
- Estes são modelos simples, que são tão bons quanto os dados de treinamento. Dados ruins, rotulados incorretamente ou muito semelhantes produzem um modelo inútil.
Baseado nas seguintes pesquisas:
- Edward Raff, William Fleming, Richard Zak, Hyrum Anderson, Bill Finlayson, Charles K Nicholas, Mark McLean, William Fleming, Charles K Nicholas, Richard Zak e Mark Mclean. KiloGrams: Very Large N-Grams for Malware Classification. Em Proceedings of KDD 2019 Workshop on Learning and Mining for Cybersecurity (LEMINCS'19). 2019. Artigo.
- William Fleshman, Edward Raff, Richard Zak, Mark McLean e Charles Nicholas. Static Malware Detection & Subterfuge: Quantifying the Robustness of Machine Learning and Current Anti-Virus. Em 2018 13th International Conference on Malicious and Unwanted Software (MALWARE). Outubro de 2018, 1–10. Prêmio de Melhor Artigo. Artigo, Arvix, DOI.
- Edward Raff e Charles Nicholas. Hash-Grams: Faster N-Gram Features for Classification and Malware Detection. Em Proceedings of the ACM Symposium on Document Engineering 2018. 2018. Artigo, DOI.
- Richard Zak, Edward Raff e Charles Nicholas. What can N-grams learn for malware detection? Em 2017 12th International Conference on Malicious and Unwanted Software (MALWARE). Outubro de 2017, 109–118. Artigo, DOI.
- Edward Raff, Richard Zak, Russell Cox, Jared Sylvester, Paul Yacci, Rebecca Ward, Anna Tracy, Mark McLean e Charles Nicholas. An investigation of byte n-gram features for malware classification. Journal of Computer Virology and Hacking Techniques, Setembro de 2016. Artigo, DOI.
Ferramentas adicionais:
- Extraia arquivos de um arquivo Zip com base no tipo de arquivo, útil para trabalhar com arquivos do VirusShare.
- Obtenha um resumo dos arquivos em um arquivo Zip por tipo de arquivo.
- Verifique arquivos em um diretório quanto à similaridade em nível de byte entre si para ajudar a construir um conjunto de dados com boa variação.
- Divida diretórios de malware e goodware em conjuntos balanceados de treino de goodware, treino de malware, teste de goodware e teste de malware.
Notas adicionais: