
Um script que envia automaticamente arquivos para o Hybrid Analysis (API)
Este script Python percorre recursivamente uma pasta e submete arquivos executáveis, scripts, documentos e outros tipos relevantes ao Hybrid Analysis (Falcon Sandbox) para análise automatizada de malware.
requests para comunicação eficiente com a API~/.hybrid_analysis_submitter/) para não poluir as pastas verificadas.env por segurançaClone ou baixe este script para sua máquina local.
Instale os pacotes necessários:
pip install requests python-dotenv
.env no mesmo diretório do script com sua chave de API:HYBRID_API_KEY=sua_chave_api_aqui
Você pode obter uma chave de API registrando-se em Hybrid Analysis.
Execute o script a partir da linha de comando, especificando a pasta a ser verificada:
python submit_to_hybrid.py /caminho/para/pasta
Verificar uma pasta com configurações padrão:
python submit_to_hybrid.py C:\arquivos_suspeitos
Verificar uma pasta mas aumentar o limite de tamanho para 200 MB e usar um ambiente diferente (ex.: Android):
python submit_to_hybrid.py /home/usuario/amostras --max-file-size 200 --environment-id 300
Usar um nome personalizado para o arquivo de cache:
python submit_to_hybrid.py ./malware --cache-file meu_cache.json
Scanning folder: C:\arquivos_suspeitos
Submitting: C:\arquivos_suspeitos\malware.exe (2.34 MB)
-> Success! Job ID: 5f8a9c2d3e4f5a6b7c8d9e0f
Submitting: C:\arquivos_suspeitos\document.pdf (0.12 MB)
-> Success! Job ID: 6g9b0c1d2e3f4a5b6c7d8e9f
Skipping already submitted: C:\arquivos_suspeitos\malware.exe
Skipping symlink: C:\arquivos_suspeitos\link_to_malware.exe
Finished.
Files found: 42
Files submitted: 35
Files skipped: 6
Files failed: 1
.exe, .scr, .pif, .dll, .com, .cpl.msi.bat, .cmd, .ps1, .psd1, .psm1, .js, .vbs, .vbe, .wsf, , Para a lista oficial de todos os tipos de arquivo suportados, consulte o FAQ do Hybrid Analysis.
os.walk() para percorrer todas as subpastas.--max-file-size são ignorados) e se o arquivo já foi submetido (cache SHA‑256).https://hybrid-analysis.com/api/v2/submit/file usando uma Session persistente do requests com sua chave de API.~/.hybrid_analysis_submitter/ para não serem reenviados em execuções futuras. O cache é salvo ordenado para facilitar a leitura.429 e para após 3 desses erros para evitar repetições infinitas..env – não a codifique diretamente.--max-file-size são ignorados.ALLOWED_EXTENSIONS são submetidos.~/.hybrid_analysis_submitter/).Este script é fornecido "como está" para fins educacionais e de análise de segurança. Use com responsabilidade e de acordo com os Termos de Serviço do Hybrid Analysis.
Enviar arquivos para um sandbox de terceiros pode expor conteúdo potencialmente sensível. Certifique-se de que você tem o direito de compartilhar os arquivos antes de fazer o upload.
| Argumento | Descrição |
|---|
folder_path | Obrigatório – Caminho para a pasta a ser verificada (recursiva) |
--max-file-size | Tamanho máximo do arquivo em MB (padrão: 250) |
--environment-id | ID do ambiente de análise (padrão: 120 = Windows 7 64 bits) |
--cache-file | Nome do arquivo de cache (padrão: submitted_cache.json). O arquivo é armazenado em ~/.hybrid_analysis_submitter/ |
.hta.sct.lnk, .chm.doc, .docx, .ppt, .pps, .pptx, .ppsx, .xls, .xlsx, .rtf, .pub.pdf, .eml, .msg.jar, .py, .pl.apk (Android), .elf (Linux).svg| Problema | Solução Provável |
|---|
ERROR: HYBRID_API_KEY not found | Crie um arquivo .env no mesmo diretório com HYBRID_API_KEY=sua_chave_aqui. |
'folder_path' is not a valid directory | Forneça um caminho correto para uma pasta existente. |
| Permissão negada ao ler arquivos | Execute o script com as permissões de leitura adequadas. |
| Erros 429 frequentes | Reduza a taxa de submissão (aumente time.sleep(2) no script) ou atualize seu plano de API. |
| Arquivos ignorados inesperadamente | Verifique se a extensão está em ALLOWED_EXTENSIONS. Você pode adicionar mais extensões editando o script. |
| Submissões duplicadas não ignoradas | O arquivo de cache pode estar ausente ou corrompido. Exclua ~/.hybrid_analysis_submitter/submitted_cache.json para recomeçar, ou use o argumento --cache-file para usar outro nome de arquivo de cache. |
| Arquivos fora da raiz de verificação estão sendo ignorados | Isso é intencional por segurança. Certifique-se de que todos os arquivos alvo estejam dentro da pasta especificada. |