
violin v3.2.1
Perfil de pentest agêntico para Hermes: 31 playbooks para reconhecimento autorizado, ataques web/de controle de acesso, validação segura de exploits e relatórios baseados em evidências com portões de proteção.
Violin ☤ — Perfil de Pentest Agêntico Hermes Supervisionado
35 playbooks · 17 referências · 13 modelos · guarda de execução obrigatória · nativo para Hermes
Violin é um perfil de pentest agêntico nativo para Hermes para testes de penetração supervisionados e autorizados — desde a reconhecimento até a validação segura de exploits e relatórios. Ele usa os conjuntos de ferramentas integrados do Hermes, sete habilidades roteadas e o plugin obrigatório violin-guard na fronteira de execução de alvos. A CLI autônoma oferece suporte a verificações de release, diagnósticos e recuperação administrativa; comandos de alvo são executados por meio do plugin. Violin não adiciona credenciais específicas de perfil e herda os backends de provedor e ferramentas já configurados no Hermes.
Início rápido · Fluxo de trabalho · Ferramentas de guarda · Benchmarks · Desenvolvimento
| Execução de alvo protegida | Verificações de escopo, fase, PTT, habilidade, hipótese, histórico e sincronização são executadas antes de um comando de alvo começar. |
| Estado de engajamento persistente | Tarefas PTT, hipóteses, histórico de comandos, checkpoints, evidências e relatórios sobrevivem à compressão de contexto. |
| Descobertas baseadas em evidências | Descobertas validadas exigem prova reproduzível e artefatos canônicos FIND-NNN.md. |
| Metodologia roteada | Um orquestrador de pentest seleciona playbooks focados em web, identidade, API, lógica de negócios, segurança de LLM e má configuração. |
| Execução limitada | Comandos únicos, rajadas de comandos, processos em segundo plano, revisão em lote, verificações de heartbeat e cancelamento compartilham um único modelo de estado. |
| Releases verificáveis | Registro de plugins, schemas, snapshots de habilidades, contratos de documentação, lint, formatação e a suíte de testes completa são controlados por release. |
Início rápido
Instalar o perfil
hermes profile install https://github.com/Strategic-Automation/violin
hermes -p violin
Em seguida, comece com um alvo autorizado e deixe o Violin coletar o escopo antes de qualquer interação com o alvo:
Execute um teste de penetração autorizado contra example.com.
Requisitos
- Hermes Agent 0.18.0 ou mais recente
- Python 3.11 e
uvpara desenvolvimento local - Kali Linux ou Parrot OS para o ambiente esperado de ferramentas de segurança
- Autorização por escrito e um escopo aprovado
Violin não seleciona um modelo ou provedor. Configure-os no Hermes. Para um padrão capaz, use Qwen3.8 27B localmente ou DeepSeek V4 Flash por meio de um provedor hospedado.
Ciclo de vida do engajamento
flowchart LR
S[Escopo] --> R[Reconhecimento]
R --> V[Pesquisa de vulnerabilidades]
V --> E[Validação de exploit]
E --> P[Relatórios]
P --> X[Retrospectiva]
G[Violin Guard] -. valida .-> R
G -. valida .-> V
G -. valida .-> E
- Inicialize o engajamento e aprove
scope/scope.yaml. - Selecione uma tarefa PTT ativa e sua habilidade roteada com
violin_record_ptt. - Execute comandos de alvo com
violin_execouviolin_exec_burst. - Atualize hipóteses conforme as evidências mudam seu status.
- Revise cada lote de comandos limitado com
violin_review_batch. - Gere descobertas canônicas e o relatório final.
- Complete a retrospectiva.
O modelo de fases completo é:
SCOPING → RECON → VULN_RESEARCH → EXPLOITATION
→ POST_EXPLOITATION / PRIVESC / FLAGS
→ REPORTING → RETROSPECTIVE
Iniciar trabalho em uma nova fase exige uma tarefa PTT sob essa fase. Tarefas existentes não são movidas entre seções de fases.
Ferramentas de guarda
O plugin registra onze ferramentas Hermes a partir de um único registro tipado:
| Ferramenta | Finalidade |
|---|---|
violin_record_ptt | Criar, iniciar, atualizar, fechar ou cancelar uma tarefa PTT |
violin_record_hypothesis | Criar ou atualizar uma hipótese com escopo |
violin_exec | Executar um comando protegido |
violin_exec_burst | Executar um arquivo de comandos limitado |
violin_exec_status | Ler o status de execução em segundo plano |
violin_exec_cancel | Cancelar execução em segundo plano rastreada |
violin_review_batch | Revisar um lote concluído e estabilizar o estado |
violin_rebind_pending_batch | Reassociar um lote pendente após confirmação |
violin_heartbeat_done | Limpar uma revisão de heartbeat concluída |
violin_target | Resolver o alvo de avaliação aprovado |
violin_status | Explicar tarefas, habilidades e bloqueios atuais |
violin_exec é a fronteira genérica de comandos de alvo. Não há
adaptadores de execução específicos de ferramenta ou allowlists de binários.
Ferramentas não interativas instaladas podem ser executadas somente após os portões de engajamento passarem.
O hook de terminal bruto é uma rede de segurança de melhor esforço, não um
isolamento de rede. Use terminal apenas para preparação e administração
locais ao host.
Modelo de segurança
flowchart LR
A[Autorização por escrito] --> B[Escopo aprovado]
B --> C[Tarefa de fase ativa]
C --> D[Portões de habilidade e hipótese]
D --> E[Execução protegida]
E --> F[Recibo de evidência]
F --> G[Revisão em lote]
- Nenhuma interação com o alvo antes da aprovação do escopo e validação de bootstrap.
- Nenhuma execução de shell bruta para comandos de alvo.
- Nenhuma ação destrutiva, disruptiva, de credenciais, persistência, furtividade ou de terceiros sem autorização explícita por escrito.
- Evidências brutas permanecem em
$ENG_DIR/evidence/<phase>/. - Segredos, dumps e saída de prova permanecem fora de
$ENG_DIR/state/. - A compressão de contexto retoma a partir de arquivos de engajamento na conversa atual do Hermes.
A política detalhada está em
skills/pentest/references/standards.md.
Estado do engajamento
init-engagement cria a estrutura de trabalho canônica:
$ENG_DIR/
├── scope/
│ └── scope.yaml
├── state/
│ ├── ptt.md
│ ├── history.md
│ └── checkpoint.json
├── hypotheses.md
├── evidence/
├── reporting/
└── retrospective/
Entrega de habilidades
As habilidades são carregadas sob demanda. A primeira chamada violin_record_ptt para uma
habilidade roteada pode retornar skill_prepared sem alterar o PTT. Depois que o Hermes
entrega o conteúdo da habilidade, repita a transição para vincular o recibo e aplicar a
mudança de tarefa. violin_status relata a ação de recuperação exata.
Arquivos de marcador como .skill-loaded-* não comprovam a entrega da habilidade.
Habilidades roteadas
| Habilidade | Cobertura |
|---|---|
pentest | Escopo, ciclo de vida, reconhecimento, exploração, relatórios, encerramento |
web-app | Injeção, SSRF, travessia, desserialização, falhas no lado do cliente |
identity-auth | Autenticação, autorização, IDOR, JWT, CSRF, criptografia |
api-testing | REST, SOAP, GraphQL, WebSocket |
business-logic | Fluxo de trabalho, preços, cupons, cotas, indicações, condições de corrida |
llm-security | Injeção de prompt, MCP, JSON-RPC |
misconfig | Implantação, tratamento de erros, observabilidade, obscuridade |
O orquestrador carrega apenas o material de fase e o playbook especializado necessários para a tarefa atual.
CLI administrativa
A CLI não substitui a execução protegida de alvos.
python scripts/violin_guard.py --help
python scripts/violin_guard.py init-engagement engagements/example --host example.com
python scripts/violin_guard.py check-bootstrap --eng-dir engagements/example
python scripts/violin_guard.py status --eng-dir engagements/example
python scripts/violin_guard.py generate-closeout --eng-dir engagements/example
python scripts/violin_guard.py check-release
check-command expõe verificações de admissão para diagnósticos e não executa
o comando fornecido.
Arquitetura
plugins/violin_guard/
├── core/ estado, schemas, parsing, fases, alvos
├── gates/ políticas de comando, escopo, hipótese, terminal
├── engine/ verificação de execução e release
├── handlers/ handlers públicos de ferramentas Hermes
├── hooks.py hooks de ciclo de vida do Hermes
└── registry.py definições de ferramentas registradas
skills/ orquestrador, habilidades roteadas, playbooks, referências
benchmark/ runner, scorer, verificações de prova, fixtures de calibração
scripts/ CLI administrativa e testes de fumaça de plataforma
tests/ testes de runtime, integração, documentação e release
Benchmarks
O repositório inclui a definição Escape Duck Store, além de fixtures de scorer conhecidamente boas e ruins. A calibração prova que o scorer lida com essas fixtures; ela não estabelece recall de agente ao vivo, conclusão de fluxo de trabalho ou qualidade de relatório.
uv run python benchmark/score.py --calibrate known-good
uv run python benchmark/score.py --calibrate known-bad
uv run python -m benchmark.run --target https://duck-store.escape.tech
Leia a metodologia de benchmark antes de publicar uma pontuação. Ela define os requisitos de prova, reprodutibilidade, formalização e divulgação para um resultado confiável.
Desenvolvimento
uv sync --dev
uv run pytest
uv run ruff check .
uv run ruff format --check .
uv run python scripts/violin_guard.py check-release
O portão de release verifica superfícies de versão, importação isolada de plugin, ferramentas registradas, schemas gerados, snapshots de habilidades, contratos de documentação, Ruff e a suíte de testes completa.
Testes de fumaça de plataforma:
scripts/smoke-test.sh— fumaça de release Linux e Kali/Parrotscripts/smoke-test.ps1— fumaça de bootstrap, escopo e resolução de alvo no Windows; entrega de habilidades e execução de alvos exigem Hermes
Consulte CONTRIBUTING.md para regras de contribuição e SECURITY.md para relato privado de vulnerabilidades.
Uso responsável
Violin é para avaliação de segurança autorizada. Os operadores são responsáveis por escopo, aprovações, propriedade do alvo, tratamento de dados e leis locais.
Licença
MIT — consulte LICENSE.