Skip to content

markkyn/MalPighi-malware-classifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MalPighi: um modelo de classificação de malwares baseado em Processamento de Linguagem Natural

alt text

License Python Contributions

O Malpighi é um software desenvolvido para o trabalho de conclusão do curso de Ciência da Computação da Universidade Federal de Sergipe. Com o objetivo de desenvolver um projeto modularizado capaz de classificar malwares em suas correspondentes famílias, o Malpighi

Requisitos Recomendados:

Para a aplicação prática desse projeto é recomendado o uso de uma máquina virtual para isolamento dos arquivos de descompilação do malwares

  • Sistema Operacional: Windows 10 ou superior
  • Distribuição de Análise: FlareVM
  • RAM: 16GB

A partir do FlareVM serão instalados e configurados os softwares destinados a análise de malware, incluindo o DensityScout, responsável pela geração das densidades dos bytes dos arquivos de descompilação.

Caso deseje utilizar algorítimos de classificação como XGBoost, que usam a placa de vídeo para o processamento, configure a máquina virtual com "GPU Passtrough", "GPU Bridge" ou equivalente

Contribuição

Este projeto é livre para uso e distribuição, sendo solicitado apenas a referência ao documento referente ao TCC realizado.

  • Link para o Trabalho: ☢️ TODO: no aguardo da publicação no Repositório Institucional (UFS) ☢️

Referencia BibTex:

@article {
    title = {"Malpighi: um modelo de classificação de malwares baseado em processamento de linguagem natural"},
    authors = "Marcos Santos",
    year = {2025},
    url=☢️ Aguardando publicação no Repositório Institucional (UFS) ☢️

}

😊 Sua contribuição é sempre bem-vinda, com comentários, reports de issues e desenvolvimento de novos trabalhos.

Instalação

Para instalar a versão as bibliotecas correspondentes ao arquivo requirements.txt, recomenda-se utilizar o python 3.10 e o código a seguir para devida instalação das bibliotecas:

$ python3 -m pip install -r requirements.txt

Ainda, deve-se instalar a base de amostras que será utilizada para aplicação dos métodos de classificação.
Recomenda-se o uso da base Microsoft Malware Challange Dataset, disponível na plataforma Kaggle.

O atual cenário do projeto requer que os malware estejam descompilados em 2 tipos de arquivos .asm e .bytes, este contendo os endereçoes e bytes do executável e aquele contendo contendo seção, endereço, bytes e instruções.

Esse processo pode ser feito manualmente pelo IDAPRO ou por algum parser especializado em tal ação.

Após o download da base, os arquivos devem ser descompactados na pasta malwares.

Descrição de argumentos

Para execução dos argumentos utilize '--' (hífen duplo) ou '-' (hífen único), sendo esse útimo utilizado para o modo simplificado, conforme exemplo a seguir:

    # Chamada por argumentos em modo verboso
    $ python3 malphigi --batch_init 5000 --corpus_input ./corpus

    # Chamadas por argumentos em modo simplificado
    $ python3 malphigi -bs 1000 -cpi ./corpus
Nome do argumento Nome simplificado Descrição
batch_init bi Número inicial do processamento das amostras.
batch_size bs Quantidade de amostras a serem processadas.
byte_count_input bci Caminho para o arquivo CSV contendo a contagem de bytes das amostras.
byte_count_output bco Caminho para o arquivo CSV a ser salvo a contagem de bytes das amostras.
corpus_input cpi Caminho da pasta contendo os arquivos de corpus de instruções já processadas.
corpus_output cpo Caminho da pasta contendo os arquivos de corpus de instruções a serem salvos.
database_distribution dst Caminho para o arquivo CSV contendo dados das amostras para exibição da distribuição da base.
database_size dsz Atributo opcional para exibição da distribuição dos tamanhos de arquivo.
features_output fo Caminho do arquivo CSV onde as features processadas serão armazenadas.
features_input fi Caminho do arquivo CSV contendo as features já processadas.
predictions_output po Caminho para o arquivo onde serão salvas as predições realizadas.
train_input tri Caminho para o diretório contendo os arquivos de descompilação para divisão de treino.
test_input tei Caminho para o diretório contendo os arquivos de descompilação da divisão de treino da base (aquelas que serão preditas).
threads t Número de threads utilizadas no processamento do projeto.

About

[TCC - CC/UFS] MalPighi: um modelo de classificação de famílias de malwares baseado em processamento de linguagem natural;

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages