업데이트로 돌아가기
New releaseAug 31, 2026

violin v3.2.1

Hermes용 Agentic 침투 테스트 프로필: 승인된 정찰, 웹/접근 제어 공격, 안전한 익스플로잇 검증, 가드 게이트 기반 증거 중심 보고를 위한 31개의 플레이북.

공유

Violin

Violin ☤ — 감독형 에이전트 Hermes 침투 테스트 프로필

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

플레이북 35개 · 참조 17개 · 템플릿 13개 · 필수 실행 가드 · Hermes 네이티브

Violin은 Hermes 네이티브 에이전트 침투 테스트 프로필로, 감독되고 승인된 침투 테스트를 위한 것입니다 — 정찰부터 안전한 익스플로잇 검증, 보고까지. Hermes의 내장 도구 세트, 7개의 라우팅된 스킬, 그리고 대상 실행 경계에서 필수인 violin-guard 플러그인을 사용합니다. 독립형 CLI는 릴리스 검사, 진단, 관리 복구를 지원하며, 대상 명령은 플러그인을 통해 실행됩니다. Violin은 프로필별 자격 증명을 추가하지 않으며 Hermes에 이미 구성된 공급자 및 도구 백엔드를 상속합니다.

빠른 시작 · 워크플로우 · 가드 도구 · 벤치마크 · 개발


가드된 대상 실행대상 명령이 시작되기 전에 범위, 단계, PTT, 스킬, 가설, 기록, 동기화 검사가 실행됩니다.
지속적인 엔게이지먼트 상태PTT 작업, 가설, 명령 기록, 체크포인트, 증거, 보고서가 컨텍스트 압축 후에도 유지됩니다.
증거 기반 발견 사항검증된 발견 사항은 재현 가능한 증거와 표준 FIND-NNN.md 아티팩트가 필요합니다.
라우팅된 방법론침투 테스트 오케스트레이터가 웹, ID, API, 비즈니스 로직, LLM 보안, 잘못된 구성 플레이북을 선택합니다.
제한된 실행단일 명령, 명령 버스트, 백그라운드 프로세스, 배치 검토, 하트비트 검사, 취소가 하나의 상태 모델을 공유합니다.
검증 가능한 릴리스플러그인 등록, 스키마, 스킬 스냅샷, 문서 계약, 린트, 포맷팅, 전체 테스트 스위트가 릴리스 게이트로 검증됩니다.

빠른 시작

프로필 설치

hermes profile install https://github.com/Strategic-Automation/violin
hermes -p violin

그런 다음 승인된 대상으로 시작하고 Violin이 대상 상호작용 전에 범위를 수집하도록 하세요:

example.com에 대해 승인된 침투 테스트를 실행하세요.

요구 사항

  • Hermes Agent 0.18.0 이상
  • 로컬 개발용 Python 3.11 및 uv
  • 예상 보안 도구 환경을 위한 Kali Linux 또는 Parrot OS
  • 서면 승인 및 승인된 범위

Violin은 모델이나 공급자를 선택하지 않습니다. Hermes에서 구성하세요. 기본값으로 적합한 것은 로컬에서 Qwen3.8 27B 또는 호스팅 공급자를 통한 DeepSeek V4 Flash를 사용하세요.

엔게이지먼트 수명주기

flowchart LR
    S[범위] --> R[정찰]
    R --> V[취약점 연구]
    V --> E[익스플로잇 검증]
    E --> P[보고]
    P --> X[회고]

    G[Violin 가드] -. 검증 .-> R
    G -. 검증 .-> V
    G -. 검증 .-> E
  1. 엔게이지먼트를 초기화하고 scope/scope.yaml을 승인합니다.
  2. violin_record_ptt로 활성 PTT 작업 하나와 라우팅된 스킬을 선택합니다.
  3. violin_exec 또는 violin_exec_burst로 대상 명령을 실행합니다.
  4. 증거가 상태를 변경함에 따라 가설을 업데이트합니다.
  5. violin_review_batch로 각 제한된 명령 배치를 검토합니다.
  6. 표준 발견 사항과 최종 보고서를 생성합니다.
  7. 회고를 완료합니다.

전체 단계 모델은 다음과 같습니다:

SCOPING → RECON → VULN_RESEARCH → EXPLOITATION
         → POST_EXPLOITATION / PRIVESC / FLAGS
         → REPORTING → RETROSPECTIVE

새 단계에서 작업을 시작하려면 해당 단계의 PTT 작업이 필요합니다. 기존 작업은 단계 섹션 간에 이동되지 않습니다.

가드 도구

플러그인은 하나의 타입화된 레지스트리에서 11개의 Hermes 도구를 등록합니다:

도구용도
violin_record_pttPTT 작업 생성, 시작, 갱신, 종료 또는 취소
violin_record_hypothesis범위 내 가설 생성 또는 업데이트
violin_exec가드된 명령 하나 실행
violin_exec_burst제한된 명령 파일 실행
violin_exec_status백그라운드 실행 상태 읽기
violin_exec_cancel추적 중인 백그라운드 실행 취소
violin_review_batch완료된 배치 검토 및 상태 확정
violin_rebind_pending_batch확인 후 대기 중인 배치 재바인딩
violin_heartbeat_done완료된 하트비트 검토 해제
violin_target승인된 평가 대상 확인
violin_status현재 작업, 스킬, 차단 요인 설명

violin_exec는 일반적인 대상 명령 경계입니다. 도구별 실행 어댑터나 바이너리 허용 목록은 없습니다. 설치된 비대화형 도구는 엔게이지먼트 게이트를 통과한 후에만 실행될 수 있습니다.

원시 터미널 훅은 네트워크 격리가 아닌 최선의 안전망입니다. terminal은 호스트 로컬 준비 및 관리에만 사용하세요.

안전 모델

flowchart LR
    A[서면 승인] --> B[승인된 범위]
    B --> C[활성 단계 작업]
    C --> D[스킬 및 가설 게이트]
    D --> E[가드된 실행]
    E --> F[증거 수령]
    F --> G[배치 검토]
  • 범위 승인 및 부트스트랩 검증 전에는 대상 상호작용이 없습니다.
  • 대상 명령에 대한 원시 셸 실행이 없습니다.
  • 파괴적, 방해적, 자격 증명, 지속성, 은밀성 또는 제3자 행위는 명시적 서면 승인 없이 금지됩니다.
  • 원시 증거는 $ENG_DIR/evidence/<phase>/ 아래에 유지됩니다.
  • 비밀, 덤프, 증명 출력은 $ENG_DIR/state/에 저장되지 않습니다.
  • 컨텍스트 압축은 현재 Hermes 대화의 엔게이지먼트 파일에서 재개됩니다.

자세한 정책은 skills/pentest/references/standards.md에 있습니다.

엔게이지먼트 상태

init-engagement는 표준 작업 구조를 생성합니다:

$ENG_DIR/
├── scope/
│   └── scope.yaml
├── state/
│   ├── ptt.md
│   ├── history.md
│   └── checkpoint.json
├── hypotheses.md
├── evidence/
├── reporting/
└── retrospective/

스킬 전달

스킬은 요청 시 로드됩니다. 라우팅된 스킬에 대한 첫 번째 violin_record_ptt 호출은 PTT를 변경하지 않고 skill_prepared를 반환할 수 있습니다. Hermes가 스킬 콘텐츠를 전달한 후, 전환을 반복하여 수령을 바인딩하고 작업 변경을 적용하세요. violin_status는 정확한 복구 작업을 보고합니다.

.skill-loaded-*와 같은 마커 파일은 스킬 전달을 증명하지 않습니다.

라우팅된 스킬

스킬범위
pentest범위, 수명주기, 정찰, 익스플로잇, 보고, 마무리
web-app인젝션, SSRF, 트래버설, 역직렬화, 클라이언트 측 결함
identity-auth인증, 권한 부여, IDOR, JWT, CSRF, 암호화
api-testingREST, SOAP, GraphQL, WebSocket
business-logic워크플로우, 가격, 쿠폰, 할당량, 추천, 경쟁 조건
llm-security프롬프트 인젝션, MCP, JSON-RPC
misconfig배포, 오류 처리, 관찰 가능성, 난독화

오케스트레이터는 현재 작업에 필요한 단계 자료와 전문 플레이북만 로드합니다.

관리 CLI

CLI는 가드된 대상 실행을 대체하지 않습니다.

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는 진단용 승인 검사를 노출하며 제공된 명령을 실행하지 않습니다.

아키텍처

plugins/violin_guard/
├── core/           상태, 스키마, 파싱, 단계, 대상
├── gates/          명령, 범위, 가설, 터미널 정책
├── engine/         실행 및 릴리스 검증
├── handlers/       공개 Hermes 도구 핸들러
├── hooks.py        Hermes 수명주기 훅
└── registry.py     등록된 도구 정의

skills/             오케스트레이터, 라우팅된 스킬, 플레이북, 참조
benchmark/          러너, 스코어러, 증명 검사, 보정 픽스처
scripts/            관리 CLI 및 플랫폼 스모크 테스트
tests/              런타임, 통합, 문서, 릴리스 테스트

벤치마크

저장소에는 Escape Duck Store 정의와 알려진 양호/불량 스코어러 픽스처가 포함되어 있습니다. 보정은 스코어러가 해당 픽스처를 처리한다는 것을 증명합니다. 라이브 에이전트 회수율, 워크플로우 완료 또는 보고 품질을 확립하지는 않습니다.

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

점수를 게시하기 전에 벤치마크 방법론을 읽으세요. 신뢰할 수 있는 결과를 위한 증명, 재현성, 공식화, 공개 요구 사항을 정의합니다.

개발

uv sync --dev
uv run pytest
uv run ruff check .
uv run ruff format --check .
uv run python scripts/violin_guard.py check-release

릴리스 게이트는 버전 표면, 격리된 플러그인 가져오기, 등록된 도구, 생성된 스키마, 스킬 스냅샷, 문서 계약, Ruff, 전체 테스트 스위트를 확인합니다.

플랫폼 스모크 테스트:

  • scripts/smoke-test.sh — Linux 및 Kali/Parrot 릴리스 스모크
  • scripts/smoke-test.ps1 — Windows 부트스트랩, 범위, 대상 확인 스모크; 스킬 전달 및 대상 실행은 Hermes 필요

기여 규칙은 CONTRIBUTING.md, 비공개 취약점 보고는 SECURITY.md를 참조하세요.

책임 있는 사용

Violin은 승인된 보안 평가를 위한 것입니다. 운영자는 범위, 승인, 대상 소유권, 데이터 처리 및 현지 법률에 대한 책임이 있습니다.

라이선스

MIT — LICENSE 참조.

카테고리