Voltar às atualizações
New releaseAug 31, 2026

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.

Compartilhar

Violin

Violin ☤ — Perfil de Pentest Agêntico Hermes Supervisionado

Release Ready License: MIT Hermes >= 0.18.0 Kali Linux Parrot OS

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 protegidaVerificaçõ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 persistenteTarefas PTT, hipóteses, histórico de comandos, checkpoints, evidências e relatórios sobrevivem à compressão de contexto.
Descobertas baseadas em evidênciasDescobertas validadas exigem prova reproduzível e artefatos canônicos FIND-NNN.md.
Metodologia roteadaUm 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 limitadaComandos ú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áveisRegistro 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 uv para 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
  1. Inicialize o engajamento e aprove scope/scope.yaml.
  2. Selecione uma tarefa PTT ativa e sua habilidade roteada com violin_record_ptt.
  3. Execute comandos de alvo com violin_exec ou violin_exec_burst.
  4. Atualize hipóteses conforme as evidências mudam seu status.
  5. Revise cada lote de comandos limitado com violin_review_batch.
  6. Gere descobertas canônicas e o relatório final.
  7. 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:

FerramentaFinalidade
violin_record_pttCriar, iniciar, atualizar, fechar ou cancelar uma tarefa PTT
violin_record_hypothesisCriar ou atualizar uma hipótese com escopo
violin_execExecutar um comando protegido
violin_exec_burstExecutar um arquivo de comandos limitado
violin_exec_statusLer o status de execução em segundo plano
violin_exec_cancelCancelar execução em segundo plano rastreada
violin_review_batchRevisar um lote concluído e estabilizar o estado
violin_rebind_pending_batchReassociar um lote pendente após confirmação
violin_heartbeat_doneLimpar uma revisão de heartbeat concluída
violin_targetResolver o alvo de avaliação aprovado
violin_statusExplicar 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

HabilidadeCobertura
pentestEscopo, ciclo de vida, reconhecimento, exploração, relatórios, encerramento
web-appInjeção, SSRF, travessia, desserialização, falhas no lado do cliente
identity-authAutenticação, autorização, IDOR, JWT, CSRF, criptografia
api-testingREST, SOAP, GraphQL, WebSocket
business-logicFluxo de trabalho, preços, cupons, cotas, indicações, condições de corrida
llm-securityInjeção de prompt, MCP, JSON-RPC
misconfigImplantaçã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/Parrot
  • scripts/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.

Categorias