
Guardian é uma ferramenta CLI de automação de testes de penetração pronta para produção, com tecnologia de IA, que aproveita o Google Gemini e o LangChain para orquestrar fluxos de trabalho de testes de penetração inteligentes e passo a passo, mantendo os padrões de hacking ético.
Guardian é um framework de automação de testes de penetração com IA de nível empresarial que combina múltiplos provedores de IA (OpenAI GPT-4, Claude, Google Gemini, OpenRouter, Requesty) com ferramentas de segurança testadas em batalha para fornecer avaliações de segurança inteligentes e adaptáveis com captura abrangente de evidências.
Funcionalidades • Instalação • Início Rápido • Documentação • Contribuir
Guardian foi projetado exclusivamente para testes de segurança autorizados e fins educacionais.
Você é totalmente responsável por garantir que possui permissão explícita por escrito antes de testar qualquer sistema. O acesso não autorizado a sistemas de computador é ilegal sob leis como a Lei de Fraude e Abuso de Computador (CFAA), o GDPR e legislação internacional equivalente.
Ao usar o Guardian, você concorda em usá-lo apenas em sistemas que possui ou para os quais tem autorização explícita para testar.
[project.entry-points."guardian.providers"] — sem necessidade de forkthink_deeply troca-e-restaura — modelo grande pensa, modelo pequeno julga, redução de custo de ~10x50 Ferramentas de Segurança Integradas em 10 categorias:
execution_idsession_<id>.json com checkpoint atômico permite --resumedepends_on executam em paralelo até max_parallel_toolsparameters: {key: "{{ <id>.parsed.alive_hosts }}"} resolve com base nos resultados de etapas anterioreswhen: controlam a execução com base na saída anterior--resume retoma após a última etapa concluídaagent: debate | visual | analyst em etapas de análisesecurity-severity, fingerprints de dedup a partir de execution_idguardian report --export sarif --export defectdojo --export slack<UNTRUSTED_TOOL_OUTPUT> + remoção de ANSIasyncio; agentes assíncronos--help permanece abaixo de 500msGuardian pode usar estas ferramentas de forma inteligente, se instaladas:
Nota: O Guardian funciona sem ferramentas externas, mas com capacidades de varredura limitadas. A IA se adaptará com base nas ferramentas disponíveis.
git clone https://github.com/zakirkun/guardian-cli.git cd guardian-cli
### Passo 2: Configurar o Ambiente Python
**Linux/macOS:**```bash
python3 -m venv venv
source venv/bin/activate
pip install -e .
Windows:```powershell python -m venv venv .\venv\Scripts\activate pip install -e .
### Passo 3: Configurar o provedor de IA
O Guardian suporta vários provedores de IA. Configure seu provedor preferido em `config/guardian.yaml`:```yaml
# config/guardian.yaml
ai:
# Choose your provider: openai, claude, gemini, openrouter, or requesty
provider: openai
# OpenAI Configuration (recommended)
openai:
model: gpt-4o
api_key: sk-your-api-key-here # Or set OPENAI_API_KEY env var
# Claude Configuration
claude:
model: claude-3-5-sonnet-20241022
api_key: null # Or set ANTHROPIC_API_KEY env var
# Gemini Configuration
gemini:
model: gemini-2.5-pro
api_key: null # Or set GOOGLE_API_KEY env var
# OpenRouter Configuration
openrouter:
model: anthropic/claude-3.5-sonnet
api_key: null # Or set OPENROUTER_API_KEY env var
# Requesty Configuration (OpenAI-compatible gateway)
requesty:
model: openai/gpt-4o-mini
api_key: null # Or set REQUESTY_API_KEY env var
Ou use variáveis de ambiente:```bash
export OPENAI_API_KEY="sk-your-key-here" export ANTHROPIC_API_KEY="sk-ant-your-key-here" export GOOGLE_API_KEY="your-gemini-key" export OPENROUTER_API_KEY="your-router-key" export REQUESTY_API_KEY="your-requesty-key"
$env:OPENAI_API_KEY="sk-your-key-here" $env:ANTHROPIC_API_KEY="sk-ant-your-key-here"
### Passo 4: Inicializar Configuração```bash
# Verify installation
python -m cli.main --help
# Check AI provider status
python -m cli.main models
python -m cli.main workflow list
python -m cli.main models
python -m cli.main workflow run --name web_pentest --target example.com --provider openai
### Cenários de Exemplo de Uso
#### 1. Teste de Penetração Rápido em Aplicações Web```bash
# Fast security check with evidence capture
python -m cli.main workflow run --name web_pentest --target https://dvwa.csalab.app
Saída Esperada:
python -m cli.main workflow run --name network --target 192.168.1.0/24
#### 3. Fluxo de Trabalho Personalizado com Parâmetros```bash
# Run with workflow-specific parameters
# Parameters in workflow YAML override config defaults
python -m cli.main workflow run --name web_pentest --target example.com
Prioridade dos Parâmetros do Workflow:
python -m cli.main report --session 20260203_175905 --format html
#### 5. Alternar Provedores de IA```bash
# Use OpenAI GPT-4
python -m cli.main workflow run --name web_pentest --target example.com --provider openai
# Use Claude
python -m cli.main workflow run --name web_pentest --target example.com --provider claude
# Use Gemini
python -m cli.main workflow run --name web_pentest --target example.com --provider gemini
# Local Ollama (no cloud)
OLLAMA_HOST=http://localhost:11434 python -m cli.main workflow run --name recon --target scanme.nmap.org --provider ollama
# Any OpenAI-compatible endpoint (vLLM, LM Studio, Together, Groq)
python -m cli.main workflow run --name web_pentest --target example.com --provider openai_compatible
python -m cli.main kb seed
python -m cli.main kb status
python -m cli.main kb query "log4j JNDI" --top 5
python -m cli.main kb update --kind cve --file ./nvd-2025.json
Habilitar fundamentação do analista em `config/guardian.yaml`:```yaml
rag:
enabled: true
top_k: 5
python -m cli.main workflow run --name web_pentest_with_debate --target https://example.com
Três papéis (defensor vermelho, defensor azul, juiz) debatem apenas descobertas ambíguas — veredictos confiantes pulam o debate para limitar o custo de tokens.
#### 8. Triagem Visual (vision-LLM)```bash
# Captures full-page screenshots and feeds them to a vision-capable provider
python -m cli.main workflow run --name web_visual_pentest --target https://example.com --provider openai
Requer playwright: pip install playwright && python -m playwright install chromium. Ignorado silenciosamente quando o provedor ativo não tem suporte a visão.
python -m cli.main report --session 20260203_175905 --export sarif
python -m cli.main report --session 20260203_175905 --export sarif --export defectdojo --export slack
--slack-webhook https://hooks.slack.com/services/...
#### 10. Telemetria + Learned Ranker (offline)```bash
# Anonymise sessions into JSONL (no raw targets, no commands, no secrets)
python -m cli.main telemetry export ./reports --out telemetry.jsonl
# Train the offline tool ranker
python -m cli.main telemetry train telemetry.jsonl
# Inspect what the ranker learned
python -m cli.main telemetry status
Ativar na configuração:```yaml ai: use_learned_ranker: true # ToolAgent calls ranker before LLM selector
> **Usuários do Windows**: Use `python -m cli.main` em vez de `guardian`
---
## 🔧 Configuração
### Referência Completa de Configuração
Edite `config/guardian.yaml` para personalizar o comportamento do Guardian:```yaml
# AI Configuration
ai:
provider: openai # openai, claude, gemini, openrouter, requesty
openai:
model: gpt-4o
api_key: sk-your-key # Or use OPENAI_API_KEY env var
claude:
model: claude-3-5-sonnet-20241022
api_key: null
gemini:
model: gemini-2.5-pro
api_key: null
temperature: 0.2
max_tokens: 8000
# Penetration Testing Settings
pentest:
safe_mode: true # Prevent destructive actions
require_confirmation: true # Confirm before each step
max_parallel_tools: 3 # Concurrent tool execution
max_depth: 3 # Maximum scan depth
tool_timeout: 300 # Tool timeout in seconds
# Output Configuration
output:
format: markdown # markdown, html, json
save_path: ./reports
include_reasoning: true
verbosity: normal # quiet, normal, verbose, debug
# Scope Validation
scope:
blacklist: # Never scan these
- 127.0.0.0/8
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
require_scope_file: false
max_targets: 100
# Tool Configuration (defaults)
tools:
httpx:
threads: 50
timeout: 10
tech_detect: true
nuclei:
severity: ["critical", "high", "medium"]
templates_path: ~/nuclei-templates
nmap:
default_args: "-sV -sC"
timing: T4
Crie fluxos de trabalho personalizados no diretório workflows/:```yaml
name: custom_web_assessment description: Custom web security testing
steps:
name: http_discovery type: tool tool: httpx parameters: threads: 100 # Override config default (50) timeout: 15 # Override config default (10) tech_detect: true
name: vulnerability_scan type: tool tool: nuclei parameters: severity: ["critical", "high"] # Override config templates_path: ".shared/nuclei/templates/"
name: generate_report type: report
**Prioridade de Parâmetros:**
- Parâmetros de workflow **sobrepõem** parâmetros de configuração
- Parâmetros de configuração **sobrepõem** padrões de ferramenta
- Workflows autocontidos e reutilizáveis
---
## 📖 Documentação
### Guias do Usuário
- **[Guia de Início Rápido](https://github.com/zakirkun/guardian-cli/blob/HEAD/QUICKSTART.md)** - Comece a usar em 5 minutos
- **[Referência de Comandos](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/)** - Documentação detalhada para todos os comandos
- **[Guia de Configuração](https://github.com/zakirkun/guardian-cli/blob/HEAD/config/guardian.yaml)** - Referência completa de configuração
- **[Guia de Workflows](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/WORKFLOW_GUIDE.md)** - Criando workflows personalizados
- **[Guia de Avaliação](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/EVAL_GUIDE.md)** - Executando e estendendo o harness de avaliação
- **[Guia de Plugins](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/PLUGIN_GUIDE.md)** - Distribuindo provedores e ferramentas de terceiros
- **[Changelog](https://github.com/zakirkun/guardian-cli/blob/HEAD/CHANGELOG.md)** - Histórico de versões e notas de migração
### Guias do Desenvolvedor
- **[Criando Ferramentas Personalizadas](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/TOOLS_DEVELOPMENT_GUIDE.md)** - Construa suas próprias integrações de ferramentas
- **[Desenvolvimento de Workflows](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/WORKFLOW_GUIDE.md)** - Crie workflows de teste personalizados
- **[Ferramentas Disponíveis](https://github.com/zakirkun/guardian-cli/blob/HEAD/tools/README.md)** - Visão geral das ferramentas integradas
### Visão Geral da Arquitetura```
Guardian Architecture:
┌─────────────────────────────────────────┐
│ AI Provider Layer │
│ (OpenAI, Claude, Gemini, OpenRouter, │
│ Requesty) │
└─────────────────────────────────────────┘
│
┌─────────────────────────────────────────┐
│ Multi-Agent System │
│ Planner → Tool Agent → Analyst → │
│ Reporter │
└─────────────────────────────────────────┘
│
┌─────────────────────────────────────────┐
│ Workflow Engine │
│ - Parameter Priority │
│ - Evidence Capture │
│ - Session Management │
└─────────────────────────────────────────┘
│
┌─────────────────────────────────────────┐
│ Tool Integration Layer │
│ (19 Security Tools) │
└─────────────────────────────────────────┘
guardian-cli/ ├── ai/ # AI integration │ └── providers/ # Multi-provider support │ ├── base_provider.py │ ├── openai_provider.py │ ├── claude_provider.py │ ├── gemini_provider.py │ ├── openrouter_provider.py │ └── requesty_provider.py ├── cli/ # Command-line interface │ └── commands/ # CLI commands (init, scan, recon, etc.) ├── core/ # Core agent system │ ├── agent.py # Base agent │ ├── planner.py # Planner agent │ ├── tool_agent.py # Tool selection agent │ ├── analyst_agent.py # Analysis agent │ ├── reporter_agent.py # Reporting agent │ ├── memory.py # State management │ └── workflow.py # Workflow orchestration ├── tools/ # Pentesting tool wrappers │ ├── nmap.py # Nmap integration │ ├── masscan.py # Masscan integration │ ├── httpx.py # httpx integration │ ├── subfinder.py # Subfinder integration │ ├── amass.py # Amass integration │ ├── nuclei.py # Nuclei integration │ ├── sqlmap.py # SQLMap integration │ ├── wpscan.py # WPScan integration │ ├── whatweb.py # WhatWeb integration │ ├── wafw00f.py # Wafw00f integration │ ├── nikto.py # Nikto integration │ ├── testssl.py # TestSSL integration │ ├── sslyze.py # SSLyze integration │ ├── gobuster.py # Gobuster integration │ ├── ffuf.py # FFuf integration │ └── ... # 15 tools total ├── workflows/ # Workflow definitions (YAML) ├── utils/ # Utilities (logging, validation) ├── config/ # Configuration files ├── docs/ # Documentation └── reports/ # Generated reports
---
## 🆕 Últimas Atualizações
### Versão 4.0.0 — P&D Inovador + Expansão de Cobertura
**Track A — P&D de IA/Agentes (7 itens)**
| ID | Item | Destaques |
|---|---|---|
| A1 | Base de conhecimento RAG | `core/knowledge_base.py` SQLite + FTS5 + embeddings opcionais; fundamentação do analista via slot `kb_references`; `guardian kb {seed,update,query,status}` |
| A2 | Triagem de debate multi-agente | Vermelho/Azul/Juiz somente sobre achados de nível MÉDIO; novo tipo de etapa de análise `agent: debate` |
| A3 | Análise de screenshot via Vision-LLM | `tools/playwright_screenshot.py` + `core/agents/visual_triage.py`; OpenAI + Claude `generate_with_images` |
| A4 | Contrato de plugin + provedores locais | Descoberta via entry-point para provedores E ferramentas; provedores **Ollama** + **Compatível com OpenAI** fornecidos |
| A5 | Seleção aprendida de ferramentas (offline) | `core/learners/tool_ranker.py` + `core/telemetry.py`; opt-in via `ai.use_learned_ranker: true` |
| A6 | Harness de avaliação | `evals/{__init__,scoring,fixtures_loader,test_*}.py` + fixtures douradas; 3 níveis (parser, workflow, fundamentação de agente) |
| A7 | Atualização do modelo de juiz | `BaseAgent.think_deeply(judge_model=...)` troca-e-restaura; julgamento de transcrições para ~10x redução de custo |
**Track B — Expansão de Cobertura de Ferramentas (7 itens)**
| ID | Categoria | Ferramentas Adicionadas |
|---|---|---|
| B8 | Active Directory | crackmapexec, bloodhound, kerbrute, impacket-secretsdump |
| B9 | Mobile Android | mobsf, apkleaks, objection |
| B10 | Fuzzers de API | schemathesis, restler, cariddi |
| B11 | SAST + segredos | semgrep, trufflehog, dependency-check |
| B12 | Equipe vermelha de LLM | garak, pyrit, prompt_fuzz |
| B13 | Ponte Burp/ZAP | zap, burp |
| B14 | Exportadores de saída | SARIF v2.1.0, DefectDojo, Slack |
**Padrão de qualidade:**
- 296 testes aprovados (+93% da baseline v3 de 153)
- Todo o endurecimento v3 preservado: delimitadores de injeção de prompt, limpeza de chaves, escopo de resolução DNS, checkpoints atômicos, rotação de logs, carregamento preguiçoso de ferramentas
- Tempo de inicialização de `guardian --help` permanece abaixo de 500ms apesar de 50 ferramentas
- Novas superfícies CLI: `guardian kb`, `guardian telemetry`
- 8 novos workflows fornecidos: `web_pentest_with_debate`, `web_visual_pentest`, `ad_assessment`, `mobile_android`, `llm_redteam`, `sast_review`, `api_pentest_v2`, mais workflows v3 existentes
### Versão 3.0.0 — Fortalecimento + Engine v2
- Delimitadores de injeção de prompt (`<UNTRUSTED_TOOL_OUTPUT>`) em toda saída de ferramenta
- Agendador DAG, esquemas Pydantic, checkpoints atômicos, `--resume`
- 11 novos wrappers (nuvem/container/SBOM/GraphQL/JWT/OSINT)
- Recomputação CVSS v3.1 + detecção de desvio
- Rotação de logs, limpeza de chaves no momento da escrita
- Portão de confirmação ligado para ferramentas ativas+
### Versão 2.0.0
- IA multi-provedor (OpenAI, Claude, Gemini, OpenRouter, Requesty)
- Vinculação de evidências via `execution_id`
- Sistema de prioridade de parâmetros de workflow
---
## 🤝 Contribuição
Aceitamos contribuições! Veja como:
### Configurando o Ambiente de Desenvolvimento```bash
# Fork and clone
git clone https://github.com/zakirkun/guardian-cli.git
cd guardian-cli
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/
# Format code
black .
Veja CONTRIBUTING.md para diretrizes detalhadas.
Lançado na v4.0.0:
--resumeFuturo:
Erros de Importação```bash
pip install -e . --force-reinstall
**Erros do Provedor de IA**```bash
# Verify API key is set
python -m cli.main models
# Check provider configuration
cat config/guardian.yaml | grep -A 5 "ai:"
Ferramenta Não Encontrada```bash
which nmap which httpx
**Fluxo de Trabalho Não Carregando**```bash
# Check workflow file exists
ls workflows/web_pentest.yaml
# Verify YAML syntax
python -c "import yaml; yaml.safe_load(open('workflows/web_pentest.yaml'))"
Comando do Windows Não Encontrado```powershell
python -m cli.main --help
Para mais ajuda, [abra uma issue](https://github.com/zakirkun/guardian-cli/issues).
---
## 📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](https://github.com/zakirkun/guardian-cli/blob/HEAD/LICENSE) para detalhes.
---
## 🙏 Agradecimentos
- **OpenAI** - Capacidades do GPT-4
- **Anthropic** - Claude AI
- **Google** - Gemini AI
- **LangChain** - Estrutura de orquestração de IA
- **ProjectDiscovery** - Ferramentas de segurança de código aberto (httpx, subfinder, nuclei)
- **Nmap** - Exploração de rede e auditoria de segurança
- **A Comunidade de Segurança** - Desenvolvedores e pesquisadores de ferramentas
---
## 📞 Suporte e Contato
- **GitHub Issues**: [Reportar bugs ou solicitar funcionalidades](https://github.com/zakirkun/guardian-cli/issues)
- **Discussions**: [Participar das discussões da comunidade](https://github.com/zakirkun/guardian-cli/discussions)
- **Documentação**: [Ler a documentação](https://github.com/zakirkun/guardian-cli/blob/HEAD/docs/)
- **Segurança**: Reportar vulnerabilidades em particular para [email protected]
---
## 🌟 Histórico de Estrelas
<a href="https://github.com/zakirkun/guardian-cli/stargazers">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=zakirkun/guardian-cli&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=zakirkun/guardian-cli&type=Date" />
Gráfico do Histórico de Estrelas
</picture>
</a>
---
---
<div align="center">
**Guardian** - Teste de Penetração Inteligente, Ético e Automatizado
Feito com ❤️ pela Comunidade de Segurança
[⬆ Voltar ao Topo](#-guardian)
</div>
| Categoria | Ferramentas |
|---|
| Rede | nmap, masscan |
| Reconhecimento Web | httpx, whatweb, wafw00f, cmseek |
| Subdomínio / DNS | subfinder, amass, dnsrecon |
| Varredura de Vulnerabilidades | nuclei, nikto, sqlmap, wpscan |
| Testes SSL/TLS | testssl, sslyze |
| Descoberta de Conteúdo | gobuster, ffuf, arjun |
| Análise de Segurança | xsstrike, gitleaks |
| Nuvem / Contêiner / SBOM | trivy, grype, syft, scoutsuite, prowler, kube-bench |
| Web Moderna + OSINT | graphw00f, clairvoyance, jwt_tool, shodan, theharvester |
| SAST + Segredos (B11) | semgrep, trufflehog, dependency-check |
| Fuzzers de API (B10) | schemathesis, cariddi, restler |
| Ponte Burp/ZAP (B13) | zap, burp |
| Red-Team de LLM (B12) | garak, pyrit, prompt_fuzz |
| Android Móvel (B9) | mobsf, apkleaks, objection |
| Active Directory (B8) | crackmapexec, bloodhound, kerbrute, impacket-secretsdump |
| Evidência Visual (A3) | playwright_screenshot |
| Ferramenta | Propósito | Instalação |
|---|
| nmap | Varredura de portas | apt install nmap / choco install nmap |
| masscan | Varredura ultrarrápida | apt install masscan / Compilar a partir do código fonte |
| httpx | Sondagem HTTP | go install github.com/projectdiscovery/httpx/cmd/httpx@latest |
| subfinder | Enumeração de subdomínios | go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest |
| amass | Mapeamento de rede | go install github.com/owasp-amass/amass/v4/...@master |
| nuclei | Varredura de vulnerabilidades | go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest |
| whatweb | Identificação de tecnologia | gem install whatweb / apt install whatweb |
| wafw00f | Detecção de WAF | pip install wafw00f |
| nikto | Varredura de vulnerabilidades web | apt install nikto |
| sqlmap | Injeção SQL | pip install sqlmap / apt install sqlmap |
| wpscan | Varredura WordPress | gem install wpscan |
| testssl | Testes SSL/TLS | Baixar de testssl.sh |
| sslyze | Análise SSL/TLS | pip install sslyze |
| gobuster | Força bruta de diretórios | go install github.com/OJ/gobuster/v3@latest |
| ffuf | Fuzzing web | go install github.com/ffuf/ffuf/v2@latest |
| arjun | Descoberta de parâmetros | pip install arjun |
| xsstrike | XSS avançado | git clone https://github.com/s0md3v/XSStrike |
| gitleaks | Varredura de segredos | go install github.com/zricethezav/gitleaks/v8@latest |
| cmseek | Detecção de CMS | pip install cmseek |
| dnsrecon | Enumeração de DNS | pip install dnsrecon |