
Framework modular de coleta e correlação de artefatos de análise de malware
Subparse é um framework modular desenvolvido por Josh Strochein, Aaron Baker e Odin Bernstein. O framework é projetado para analisar e indexar arquivos de malware e apresentar as informações encontradas durante a análise em um visualizador web pesquisável. O framework é modular, utilizando um mecanismo central de análise, módulos de análise e uma variedade de enriquecedores que adicionam informações adicionais aos índices de malware. Os principais valores de entrada para o framework são diretórios de arquivos de malware, que o mecanismo central de análise ou um mecanismo de análise especificado pelo usuário analisa antes de adicionar informações adicionais de qualquer mecanismo de enriquecimento especificado pelo usuário, tudo antes de indexar as informações analisadas em um índice Elasticsearch. As informações coletadas podem então ser pesquisadas e visualizadas através de um visualizador web, que também permite filtrar qualquer valor obtido de qualquer arquivo. Atualmente existem 3 mecanismos de análise, os mecanismos de análise padrão (PEParser, OLEParser e ELFParser), e 2 mecanismos de enriquecimento (ABUSEEnricher e CAPEEnricher).
Para começar a usar o Subparse, existem alguns programas necessários/recomendados que precisam ser instalados e configurados antes de tentar trabalhar com nosso software.
| Software | Status |
|---|
Após instalar o software necessário/recomendado em seu sistema, existem algumas outras etapas que precisam ser tomadas para instalar o Subparse.
sudo get apt install build-essential pip3 install -r ./requirements.txt
docker-compose up
Nota: Isso pode levar algum tempo devido ao download das imagens e à configuração dos contêineres que serão necessários para o Subparse.
Opções de linha de comando disponíveis para subparse/parser/subparse.py:
Para visualizar os resultados dos analisadores do Subparse, navegue até localhost:8080. Se você estiver tendo problemas para visualizar o site, certifique-se de que o contêiner foi iniciado no Docker e que não há outro processo rodando na porta 8080 que possa impedir o site de ficar disponível.
Antes de qualquer analisador ser executado, informações gerais são coletadas sobre a amostra, independentemente do tipo de arquivo subjacente. Essas informações incluem:
Os analisadores são executados APENAS em amostras que correspondem ao tipo de arquivo. Por exemplo, arquivos PE terão, por padrão, o PEParser executado sobre eles, pois o tipo de arquivo corresponde àqueles que o PEParser é capaz de examinar.
Estes módulos são opcionais e serão executados APENAS se especificados via a flag -e | --enrichers na linha de comando.
A visualização web do Subparse foi construída usando Bootstrap para seu CSS, o que permite que qualquer CSS embutido do Bootstrap seja usado ao desenvolver seus próprios arquivos Vue.js de Analisador/Enriquecedor personalizados. Também fornecemos um exemplo para cada um para ajudar a começar e implementamos alguns widgets personalizados para facilitar o processo de desenvolvimento e promover a padronização na forma como as informações são exibidas. Todos os arquivos Vue.js são usados para exibir dinamicamente informações do Analisador/Enriquecedor personalizado e são usados como templates para os dados.
Nota: As convenções de nomenclatura, tanto para nomes de classe quanto de arquivos, devem ser seguidas rigorosamente; esta é a primeira coisa que deve ser verificada se você encontrar problemas ao executar seu Analisador/Enriquecedor personalizado. A convenção de nomenclatura do seu Analisador/Enriquecedor deve usar o mesmo nome em todos os arquivos e nomes de classe.
O objeto logger é uma implementação singleton do logger padrão do Python. Para uso aprofundado, consulte a Documentação Oficial. Para o Subparse, os únicos métodos de logging que recomendamos usar são os níveis de logging para saída. São eles:
| Link |
|---|
| Docker | Obrigatório | Guia de Instalação |
| Python3.8.1 | Obrigatório | Guia de Instalação |
| Pyenv | Recomendado | Guia de Instalação |
| Argumento | Alternativa | Obrigatório | Descrição |
|---|
| -h | --help | Não | Mostra o menu de ajuda |
| -d SAMPLES_DIR | --directory SAMPLES_DIR | Sim | Diretório de amostras para analisar |
| -e ENRICHER_MODULES | --enrichers ENRICHER_MODULES | Não | Módulos enriquecedores a serem usados para análise adicional |
| -r | --reset | Não | Redefinir/excluir todos os dados no cluster Elasticsearch configurado |
| -v | --verbose | Não | Exibir saída detalhada da linha de comando |
| -s | --service-mode | Não | Entra no modo de serviço permitindo que mais amostras sejam adicionadas ao SAMPLES_DIR durante o processamento |