
Sandbox de análise de malware baseado em Python que se integra com o Sysinternals Procmon para coletar, analisar e relatar automaticamente indicadores de tempo de execução com varredura YARA e geração de IOC.
Noriben – Sandbox de Análise de Malware
Contact Information: @bbaskin no Twitter brian _at_ thebaskins _dot_ com
Noriben é um script baseado em Python que funciona em conjunto com o Sysinternals Procmon para coletar, analisar e gerar relatórios automaticamente sobre indicadores de tempo de execução de malware. Em resumo, permite executar uma aplicação, pressionar uma tecla e obter um relatório de texto simples das atividades da amostra.
Noriben permite não apenas executar malware de forma semelhante a uma sandbox, mas também registrar eventos de todo o sistema enquanto você executa malware manualmente de maneiras específicas para fazê-lo funcionar. Por exemplo, pode escutar enquanto você executa um aplicativo que requer opções de linha de comando variadas ou interação do usuário. Ou, para observar o sistema enquanto você percorre o aplicativo em um depurador.
Embora Noriben tenha sido projetado para análise de malware, também tem sido amplamente utilizado para auditar aplicativos de software normais. Em 2013, foi usado pelo Projeto Tor para fornecer uma auditoria pública do Tor Browser Bundle.
Abaixo está um vídeo de depuração de um malware que verifica VM de uma forma que ainda permite obter resultados da sandbox (cliques errados devido a um ponteiro do mouse que estava 5 pixels deslocado :))
Noriben requer apenas o Sysinternals procmon.exe (ou procmon64.exe) para operar. Não requer pré-filtragem (embora isso ajudasse muito), pois contém vários itens de lista branca para reduzir ruídos indesejados da atividade do sistema.
Para uma explicação mais detalhada, veja meus slides do Black Hat 2015 Arsenal. E um post de blog mais detalhado: http://ghettoforensics.blogspot.com/2013/04/noriben-your-personal-portable-malware.html
Também incluí um frontend muito solicitado, o script NoribenSandbox.py. Este script permite automatizar a execução do Noriben dentro de uma VM convidada e recuperar os relatórios. Atualmente, funciona no OSX (mas será portado) e é responsável por: iniciar uma VM e snapshot predefinidos, copiar o malware para a VM, iniciar o Noriben e o malware, aguardar um período de tempo predefinido, copiar os resultados para o host como um ZIP e tirar uma captura de tela da VM. Você pode até usar --update para copiar automaticamente o Noriben mais recente do seu host, para não precisar criar novos snapshots continuamente quando fizer alterações no script.
Quer ver isso em ação?
Se você tiver uma pasta com arquivos de assinatura YARA, pode especificá-la com a opção --yara. Cada novo arquivo criado será verificado em relação a essas assinaturas, com os resultados exibidos nos resultados de saída.
Se você tiver uma API do VirusTotal, coloque-a em um arquivo chamado "virustotal.api" (ou incorpore diretamente no script) para enviar automaticamente hashes de arquivos MD5 ao VT e obter o número de resultados virais.
Você pode adicionar listas de MD5s para ignorar automaticamente (como todos os seus arquivos de sistema). Use md5deep e coloque-os em um arquivo de texto, use --hash para lê-los. Isso acabará indo para as mudanças, no entanto.
Você pode automatizar o script para uso em sandbox. Usando -t para automatizar o tempo de execução e --cmd "caminho\exe" para especificar um arquivo de malware, você pode executar malware automaticamente, copiar os resultados e reverter para executar uma nova amostra.
O recurso --generalize substituirá automaticamente caminhos absolutos por caminhos de ambiente do Windows para melhor desenvolvimento de IOC. Por exemplo, C:\Users\malware_user\AppData\Roaming\malware.exe será resolvido automaticamente para %AppData%\malware.exe.
Uso:
--===[ Noriben v1.7.2
--===[ @bbaskin
usage: Noriben.py [-h] [-c CSV] [-p PML] [-f FILTER] [--hash HASH]
[--hashtype {MD5,SHA1,SHA256}] [--headless] [-t TIMEOUT]
[--output OUTPUT] [--yara YARA] [--generalize] [--cmd CMD]
[-d]
optional arguments:
-h, --help show this help message and exit
-c CSV, --csv CSV Re-analyze an existing Noriben CSV file
-p PML, --pml PML Re-analyze an existing Noriben PML file
-f FILTER, --filter FILTER
Specify alternate Procmon Filter PMC
--hash HASH Specify hash whitelist file
--hashtype {MD5,SHA1,SHA256}
Specify hash type
--headless Do not open results on VM after processing
-t TIMEOUT, --timeout TIMEOUT
Number of seconds to collect activity
--output OUTPUT Folder to store output files
--yara YARA Folder containing YARA rules
--generalize Generalize file paths to their environment variables.
Default: True
--cmd CMD Command line to execute (in quotes)
-d, --debug Enable debugging
Brian Baskin <Redatores de documentação são bem-vindos!>
Copyright 2015 Brian Baskin
Licenciado sob a Licença Apache, Versão 2.0 (a "Licença"); você não pode usar este trabalho exceto em conformidade com a Licença. Você pode obter uma cópia da Licença no arquivo LICENSE, ou em:
http://www.apache.org/licenses/LICENSE-2.0
Salvo disposição em contrário por lei aplicável ou por acordo, o software distribuído sob a Licença é distribuído "COMO ESTÁ", SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Consulte a Licença para obter as permissões específicas e as limitações de direitos autorais sob a Licença.