Skip to content

DevGreickLabs/ThreatDeflect

Repository files navigation

ThreatDeflect Logo

ThreatDeflect

🔍 Análise de ameaças com engine híbrido Python + Rust. Consulta IOCs, varre repositórios, gera relatórios e cria resumos com IA local.


📥 Baixar »  |  📖 Documentação »


⭐ Dê uma estrela se te ajudou!

Português | English

Python Version License Project Status GUI Framework Rust Engine Crates.io

Screenshot

O que faz

  • Análise de IOCs via VirusTotal, AbuseIPDB, Shodan, URLHaus
  • Varredura de repositórios GitHub/GitLab (segredos, backdoors, dependências maliciosas)
  • Reputação de arquivos por hash SHA256
  • 46 regras de detecção para segredos, crypto miners, SSRF, reverse shells e mais
  • Rust engine de alta performance via PyO3
  • IA local com Ollama (nenhum dado sai da sua máquina)
  • GUI + CLI bilíngues (PT-BR / EN-US)
  • Relatórios em Excel e PDF

Instalação

Opção 1 — Executável (sem Python)

Baixe o binário da página de Releases e execute:

Windows: clique duplo em ThreatDeflect-GUI-Windows.exe

Linux:

chmod +x ThreatDeflect-GUI-Linux
./ThreatDeflect-GUI-Linux
# opcional: mover para o PATH
sudo mv ThreatDeflect-GUI-Linux /usr/local/bin/threatdeflect

macOS:

xattr -cr ThreatDeflect-GUI-macOS
./ThreatDeflect-GUI-macOS

Opção 2 — Código-fonte (Python 3.11+)

Com uv (recomendado):

git clone https://github.com/DevGreick/ThreatDeflect.git
cd ThreatDeflect
uv sync
uv run threatdeflect --help
uv run threatdeflect-gui

Com pip:

git clone https://github.com/DevGreick/ThreatDeflect.git
cd ThreatDeflect
python3 -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt
pip install -e .

Para tópicos avançados (Rust engine, regras customizadas, Ollama), consulte a documentação completa.

Configuração de APIs

Apenas o VirusTotal é obrigatório. As demais ampliam a cobertura de análise.

Serviço Obrigatório Limite gratuito Onde obter
VirusTotal Sim 500 req/dia virustotal.com → perfil → API Key
GitHub Recomendado 5.000 req/h github.com/settings/tokens (public read)
GitLab Recomendado Settings → Access Tokens → read_api
AbuseIPDB Opcional 1.000 checks/dia abuseipdb.com → API
Shodan Opcional Limitado shodan.io → dashboard
URLHaus Opcional Ilimitado Gratuito, sem autenticação
MalwareBazaar Opcional Ilimitado Gratuito, sem autenticação

Configurando via CLI:

threatdeflect config set virustotal  SUA_CHAVE
threatdeflect config set abuseipdb   SUA_CHAVE
threatdeflect config set shodan      SUA_CHAVE
threatdeflect config set github      SEU_TOKEN
threatdeflect config set gitlab      SEU_TOKEN

Ou via GUI: Configurações → aba "API Keys" → cole as chaves nos campos correspondentes.

As chaves ficam armazenadas no keyring do sistema operacional (Windows Credential Locker, macOS Keychain, Linux Secret Service).

Uso

Analisar IPs e URLs (IOCs)

# alvo único
threatdeflect ioc 8.8.8.8

# múltiplos alvos
threatdeflect ioc 8.8.8.8 1.1.1.1 https://dominio-suspeito.com

# a partir de arquivo (um alvo por linha)
threatdeflect ioc -f targets.txt -o relatorio.xlsx

# com resumo por IA local
threatdeflect ioc -f targets.txt --ai llama3

Verificar arquivos por hash

threatdeflect file suspeito.exe
threatdeflect file malware.dll trojan.pdf --ai llama3 -o auditoria.xlsx

Nenhum arquivo é enviado, a verificação é feita apenas pelo hash SHA256.

Varrer repositórios

threatdeflect repo https://github.com/org/repo
threatdeflect repo https://github.com/org/repo https://gitlab.com/org/repo2 --ai mistral

Ver configurações atuais

threatdeflect config show

IA local (opcional)

Com Ollama instalado, o ThreatDeflect gera resumos executivos dos relatórios sem enviar dados para a nuvem:

ollama pull llama3
threatdeflect ioc -f targets.txt --ai llama3

Crate Rust (uso independente)

O detection engine é publicado como crate independente no crates.io, permitindo integração direta em projetos Rust sem depender do Python:

[dependencies]
threatdeflect-core = "0.1"
use threatdeflect_core::SecretAnalyzer;

let rules = vec![("AWS Key".to_string(), r"AKIA[0-9A-Z]{16}".to_string())];
let analyzer = SecretAnalyzer::new(rules, vec![])?;
let result = analyzer.analyze_content("key = AKIAIOSFODNN7EXAMPLE1", "config.py", "config.py");

Documentação da crate: docs.rs/threatdeflect-core

Licença

GPLv3. Veja LICENSE.

About

Uma ferramenta de análise de ameaças que automatiza a consulta de IPs/URLs em múltiplas fontes (VirusTotal, Shodan, etc.), gera relatórios e cria resumos com IA local.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors