이 레포가 무엇을 하는 물건인가.
버그 바운티 헌터는 보통 30개쯤 되는 공개 신고서를 북마크해 두고, 매번 다시 열어 읽는다. ?url= 파라미터를 보면 "SSRF를 어떻게 확인하더라?"를 떠올리고, 신고 전에는 "이게 진짜 유효한가, 스코프 안인가?"를 자문한다. Claude-BugHunter는 이 모든 절차를 마크다운 파일(스킬)로 적어 두고, 당신이 평문으로 무엇을 테스트하는지 말하면 관련 스킬만 골라 자동 로드한다.
핵심은 "더 많은 프롬프트"가 아니다. 실제 트리아저(triager)들이 돈을 지불한 공격 체인 템플릿, 신고 전 통과해야 하는 7문항 게이트, 스코프를 코드로 강제하는 엔진, 증거에서 쿠키·PII를 지우는 위생 규칙까지 — 한 번 설치로 따라온다.
Claude-BugHunter는 Agent Skills 표준(SKILL.md 형식)으로 짜인 보안 번들이다. 71개 스킬은 크게 네 층으로 쌓인다 — ① 생각(Think): 방법론·레드팀 마인드셋, ② 웹앱 헌트: 48개 hunt-* 취약점 클래스 스킬, ③ 외부 경계 공격: 기업 플랫폼(M365/Entra·Okta·SharePoint·vCenter·SSL-VPN 등) CVE 체인, ④ 마무리(Ship): 검증 게이트·보고서·증거 위생. Claude Code 외에 OpenCode·Codex CLI·Hermes Agent에서도 같은 스킬 파일이 로드된다.
SKILL.md 한 장이 들어가며, 맨 위 프런트매터에 name·description이 있다. 모델이 사용자의 질문 토픽과 description을 매칭해 관련 스킬만 그때그때 컨텍스트에 끌어온다(이름으로 직접 호출하지 않아도 됨). 변하는 절차 지식을 코드가 아니라 문서로 외부화하는 패턴이다.트렌딩 이유 · "한 줄 프롬프트" 보안 셋업 대비 장점.
대부분의 "보안용 Claude 셋업"은 두 가지 극단 중 하나다 — 너무 일반적이거나("당신은 보안 전문가다…"라는 거대 프롬프트 한 장), 너무 파편적이거나(공개 신고서 30개를 북마크해 매번 다시 읽음). 둘 다 두 번째 타깃부터 무너진다. Claude-BugHunter가 스타를 모으는 이유는 이 사이의 "구조화된 운영 지식 라이브러리"라는 자리를 차지했기 때문이다.
| 비교 항목 | 일반 "보안 프롬프트" | 흩어진 신고서 북마크 | Claude-BugHunter |
|---|---|---|---|
| 탐지 패턴 | 모델 일반 지식 | 읽어야 활용 | 681건 신고서에서 클래스별로 추출 |
| 로드 방식 | 항상 전부 | 수동 | 토픽 매칭 자동 로드(이름 호출 불필요) |
| 검증 규율 | 없음 | 없음 | 7문항 게이트 + 4개 사전 제출 게이트 |
| 스코프 강제 | 모델 판단 | 없음 | 엔진이 결정적(deterministic) 허용목록으로 강제 |
| 증거 위생 | 없음 | 없음 | 쿠키 마스킹·PII 블랙바·HAR 정제 스킬 |
| 기업 표면 | 거의 없음 | 제각각 | M365/Entra·Okta·vCenter·SSL-VPN 등 2024–2026 CVE 체인 |
| 이식성 | 도구 종속 | 없음 | Claude Code·OpenCode·Codex CLI·Hermes 4종 하네스 |
README는 이 번들이 막연한 아이디어가 아니라 실제 인가 작업에서 드러난 구체적 갭에서 나왔다고 못 박는다. 버그 바운티에서는 ① 가설 규율 부재(검증 전에 보고서를 써서 시간 낭비·유효성 비율 하락), ② 프로그램별 보고 전술 부재(VRT 기본값이 P3급 발견을 P4로 자동 강등), ③ 발견·증거·제출 ID가 폴더에 흩어짐, ④ 스크린샷이 쿠키·피해자 PII를 유출. 레드팀에서는 보수적 기본값이 진짜 발견을 도로 거둬들이고, SOC가 30분 만에 SQLi를 패치하는 등 "교전 중 상황 인식"이 통째로 안 보였다.
① 취약점 클래스별 스킬이 "웹앱에서 뭘 봐야 하나"라는 갭-제로를 메우고(실제 트리아저가 돈 낸 체인 템플릿), ② 7문항 게이트가 "기술적으로 가능"과 "실제로 신고 가능"을 가르며, ③ 엔진이 스코프를 코드로 강제하고 발견마다 알맞은 hunt-* 스킬로 라우팅한다. 흥미롭게도 저자는 "스킬을 더 늘리는 것"이 아니라 "그 능력을 안전하고 결정적으로 라우팅하는 엔진"이 진짜 레버리지라고 평가한다(아래 §4 참조).
번들 README 자체가 강조한다 — 이 스킬들은 본인 소유 자산, 또는 서면 인가가 있는 자산(버그바운티 인스코프, 펜테스트 계약서, CTF, 자기 인프라)에만 쓰도록 설계됐다. triage-validation의 7문항 게이트는 "이 자산이 스코프 안인가(Q3)"를 명시적으로 묻고, 번들은 0-day 무기화·후속 침투 도구·악성코드 개발·대량 표적화 인프라를 의도적으로 배제한다. 본 문서도 동일한 선을 따라 설계·방어·진단 관점으로만 해부한다.
지식 층(스킬)·실행 층(명령/엔진)·통합 층 각각.
번들의 본체는 코드가 아니라 71개의 SKILL.md 문서다. 각 스킬은 폴더 하나에 마크다운 한 장이며, 프런트매터(name·description·선택적 report_count·sources)와 본문(탐지 신호·페이로드·우회표·체인 템플릿)으로 구성된다. 토픽별로 분류된다.
| 카테고리 | 개수 | 예시 스킬 |
|---|---|---|
| 웹앱 헌팅 | 13 | hunt-xss · hunt-sqli · hunt-ssrf · hunt-idor · hunt-lfi · hunt-ssti · hunt-xxe · hunt-csrf · hunt-cors · hunt-open-redirect |
| 인증 · 아이덴티티 | 7 | hunt-auth-bypass · hunt-session · hunt-oauth · hunt-saml · hunt-mfa-bypass · hunt-ato |
| API · 인프라 | 15 | hunt-graphql · hunt-grpc · hunt-websocket · hunt-api-misconfig · hunt-host-header · hunt-rce · hunt-k8s |
| 고급 · 동시성 | 6 | hunt-race-condition · hunt-http-smuggling · hunt-deserialization · hunt-cache-poison |
| 프레임워크별 | 4 | hunt-nextjs · hunt-nodejs · hunt-laravel · hunt-springboot |
| 기업 ID · 클라우드 ★ | 3 | m365-entra-attack · okta-attack · cloud-iam-deep |
| 인프라 · 어플라이언스 ★ | 5 | vmware-vcenter-attack · enterprise-vpn-attack · hunt-sharepoint · hunt-aspnet · hunt-ntlm-info |
| 레드팀 기술 ★ | 4 | redteam-mindset · apk-redteam-pipeline · supply-chain-attack-recon · mid-engagement-ir-detection |
| 정찰 · OSINT | 4 | web2-recon · offensive-osint · hunt-subdomain · osint-methodology |
| 워크플로 · 보고 · 기타 | 11 | bb-methodology · triage-validation · evidence-hygiene · report-writing · bugcrowd-reporting |
hunt-* 스킬의 description에는 그 스킬이 몇 건의 공개 신고서에서 추출됐는지(report_count)와 출처(sources: github, hackerone_public, …)가 적혀 있다. 예: hunt-xss는 174건, hunt-rce는 67건, hunt-idor는 26건 기반. "근거가 몇 개 신고서냐"가 메타데이터로 노출되는 것이 이 번들의 신뢰성 장치다.스킬이 "지식"이라면, commands/의 15개 슬래시 명령은 "워크플로 진입점"이다. Claude Code 전용이며, 핵심 흐름을 단계적으로 안내한다.
| 명령 | 역할 |
|---|---|
/hunt | 능동 헌팅 디스패처. 레드팀 vs WAPT 모드를 묻고 hunt-dispatch 스킬로 핸드오프. |
/recon · /surface | 정찰 + 표면 랭킹(P1/P2/Kill 목록). |
/chain | 확인된 발견을 A→B 신호표로 체이닝(예: SSRF→클라우드 크리덴셜). |
/validate · /triage | 보고 전 7문항 게이트 강제 실행. |
/report | H1/Bugcrowd/Intigriti/레드팀 양식으로 초안 생성. |
/token-scan | 노출 토큰/시크릿 스캔(읽기 전용 — 행사 금지). |
/autopilot · /intel · /pickup | 오케스트레이션 · 인텔 수집 · 세션 이어가기. |
/remember · /memory-gc | 세션 메모리 저장 · 정리(타깃별 SESSION.md). |
/web3-audit | 스마트컨트랙트 감사(Foundry PoC). |
그 아래에 engine/(파이썬)이 있다 — 결정적 의사결정 지원 엔진이다. 정찰·파라미터 발견·시크릿 스캔·서비스 핑거프린트·카테고리화까지를 LLM 없이 순수 파이썬 + 수동(passive) 도구로 수행해 "공짜, 에이전트 없이, 레이트리밋 소모 없이" 표면을 그린다. LLM(에이전트)은 옵트인 헌트의 소수 판단 지점에만 쓴다.
| 엔진 파일 | 역할 |
|---|---|
scope.py | 결정적 허용목록(apex/와일드카드/CIDR/regex; deny-wins; 기본 거부). 정찰·헌트 양쪽에서 강제. |
recon.py | 서비스/기술 핑거프린트 · JS 번들 엔드포인트 채굴 · JS 시크릿 스캔(키 마스킹) · 입력 파라미터 수집(gau+katana). 찾는 단계에 LLM 없음. |
skill_map.py | 발견한 (엔드포인트|파라미터, 클래스)를 실제 설치된 hunt-* 스킬로 매핑 + 첫 curl 프로브 제시. |
engine.py | 오케스트레이터 — 단계·스코프 강제·랭킹·맵·병렬 헌트/검증·후보→확정·리포트. |
agent.py | 헤드리스 claude -p 디스패치(옵트인 헌트/검증 전용, 기본 스킬 OFF로 토큰 절약). |
state.py | 재개 가능한 교전 저장소(state.json+증거+로그+arsenal.md+report.md). |
| 요소 | 역할 |
|---|---|
| 플러그인 패키징 | .claude-plugin/marketplace.json+plugin.json — /plugin install로 네임스페이스(claude-bughunter:) 설치. |
| 설치 스크립트 | scripts/install.sh --all — 3개 하네스 경로(~/.claude/skills·~/.agents/skills·~/.hermes/skills)에 복사. (OpenCode는 ~/.claude/skills 공유, 별도 경로 없음) |
| Burp MCP | --burp-mcp — PortSwigger Burp Suite MCP 서버 연동(OOB/블라인드/퍼징용, 선택). |
cbh CLI | scripts/cbh.py — 터미널 네이티브 결정적 러너(recon·classify·triage·report 서브커맨드). |
| 품질 게이트 | scripts/lint_skills.py — name 정규식·description≤1024자·본문≤500줄·식별자 denylist(SHA256) 검사. |
| 외부 도구 | ProjectDiscovery(subfinder·dnsx·httpx·katana·nuclei) · SecLists · Assetnote 워드리스트. |
6단계 워크플로 + 토픽 기반 스킬 자동 라우팅 + 검증 게이트.
번들은 SCOPE → RECON → HUNT → VALIDATE → CAPTURE → REPORT의 6단계로 매핑된다. 비선형이라 어느 단계에서든 끼어들 수 있다. 핵심 통찰은 "넓이(breadth)는 결정적 코드로 공짜·가시적으로, 깊이(판단)는 사람과 소수 에이전트로" — 표면을 그리는 일은 LLM 없이, 실제 공격 판단은 옵트인으로 한다.
arsenal.md)에서 멈추고 사람에게 넘긴다.이 번들의 가장 영리한 부분이다. 사용자가 "이 엔드포인트에 ?url= 파라미터가 보여"라고 평문으로 말하면, Claude는 71개 스킬의 description을 토픽 매칭해 hunt-ssrf 하나만 컨텍스트로 끌어온다. 이름으로 호출하지 않는다. 엔진의 skill_map.py는 이 매칭을 코드로도 구현해, 발견한 표면을 결정적으로 스킬에 배정한다.
# 공격 클래스 → 번들 안의 hunt 스킬
CLASS_SKILL = {
"ssrf": ["hunt-ssrf"], "idor": ["hunt-idor"],
"xss": ["hunt-xss", "hunt-dom"], "lfi": ["hunt-lfi"],
"graphql": ["hunt-graphql"], "secret": ["hunt-source-leak"], ...
}
# 탐지된 기술 → 기술별 스킬
TECH_SKILL = {
"next.js": ["hunt-nextjs"], "laravel": ["hunt-laravel"],
"sharepoint": ["hunt-sharepoint"], ...
}
# 클래스별 "첫 curl" — OOB가 필요한 건 그렇게 주석
CLASS_PROBE = {
"ssrf": 'curl -s "{ur}http://169.254.169.254/latest/meta-data/"'
' # 블라인드는 Burp Collaborator(OOB)',
"idor": 'curl -s "{u}" # 두 신원으로 id 바꿔 호출 → 본문 diff',
...
}
중요한 안전장치: skill_map.py는 실제로 ~/.claude/skills에 설치된 스킬만 매핑한다. 없는 스킬을 가리키지 않도록 필터링한다. 그리고 모든 프로브는 curl 우선이며, 침습적 동작은 명시적 인가가 있을 때만 권한다.
이 번들이 단순 페이로드 모음과 다른 결정적 지점. 각 hunt-* 스킬은 "무엇이 확증이 아닌가"를 먼저 가르친다. 예컨대 hunt-ssrf는 "에러 메시지가 URL을 그대로 되비추는 것은 SSRF 확증이 아니다"라고 못 박는다 — 그건 서버가 입력을 에러 문자열에 끼워 넣은 것일 뿐, 실제로 외부 연결을 한 게 아니기 때문이다.
| SSRF 확증이 아닌 것 | SSRF 확증인 것 |
|---|---|
| 에러 메시지가 내 URL을 그대로 출력 | OOB 리스너에 고유 서브도메인 DNS 조회가 찍힘 |
| 외부 URL과 localhost의 상태코드가 다름 | OOB 엔드포인트로 서버 소스 IP의 HTTP 요청이 옴 |
| URL 전송 시 응답이 지연됨 | 헤드리스 브라우저/PDF 렌더러가 콜백 URL을 실제로 페치 |
triage-validation의 7문항 게이트를 "신고서 제출 전 통과해야 하는 검문소"로 생각하자. ① 지금 당장 실제 HTTP 요청으로 악용 가능한가? ② 임팩트가 프로그램의 인정 목록에 있나? ③ 자산이 스코프 안인가? ④ 공격자가 못 얻는 권한 없이도 되나? ⑤ 이미 알려진 동작이 아닌가? ⑥ "기술적으로 가능" 이상으로 임팩트를 증명할 수 있나? ⑦ 절대-신고-금지 목록에 없나? 하나라도 NO면 그 발견은 KILL — 미련 없이 다음 테스트 클래스로. 이 한 가지 규율이 생산적인 연구자와 노이즈를 가른다.
저자의 eval/ 측정 결과가 흥미롭다 — 벤치마크 가능한 표준 취약점 과제에서 스킬은 능력을 거의 ~0만큼만 더해 줬고(베이스 모델이 이미 표준 클래스를 다룬다), 오히려 에이전트당 ~12–15k 토큰을 더 먹었다. 그래서 옵트인 헌트 에이전트는 기본적으로 스킬을 OFF로 둔다. 진짜 레버리지는 "더 많은 지식"이 아니라 그 능력을 안전하게·결정적으로·스킬 라우팅하며·사람을 루프에 둔 채 굴리는 엔진이라는 결론이다. 보안 자동화 설계에서 곱씹을 만한 교훈이다.
스킬(지식) · 명령(워크플로) · 엔진(오케스트레이션)의 3분할.
① README.md로 4층 구조와 스코프(인/아웃) 파악 → ② docs/architecture.md로 6단계·스킬↔단계 매핑 → ③ skills/hunt-ssrf/SKILL.md 한 장으로 스킬의 실제 형식(확증 게이트·신호·페이로드) 체감 → ④ skills/triage-validation/SKILL.md로 7문항 게이트 → ⑤ engine/README.md+skill_map.py로 "결정적 라우팅" 설계. 통찰의 80%가 이 다섯 곳에 있다.
보안 지식의 코드화·자동화 설계에서 무엇을 배우나.
이 레포는 "전문가의 절차 지식을 어떻게 재사용 가능한 단위로 패키징하나"의 살아 있는 교본이다. 핵심은 ① 폴더+SKILL.md 한 장이라는 최소 단위, ② 프런트매터 description이 "언제 이 스킬을 로드할지"의 트리거가 되는 설계, ③ 토픽 매칭으로 필요한 것만 컨텍스트에 끌어오는 지연 로딩. 거대 단일 프롬프트(전부 항상 로드)와 정반대 철학이다 — 토큰을 아끼고 정확도를 높인다.
name·description)+본문으로 된 SKILL.md 한 장을 직접 써 보라. description에 "언제 쓰는가"를 1~2문장으로 명확히.가장 값진 통찰. "넓이는 결정적 코드로 공짜·재현 가능하게, 좁은 판단만 LLM으로"라는 분할이다. 정찰·랭킹·스킬 매핑은 순수 파이썬이라 $0·재현 가능·레이트리밋 무소모이고, LLM은 옵트인 헌트의 몇 안 되는 판단 지점에만 투입된다. 이는 보안뿐 아니라 모든 LLM 에이전트 파이프라인(어디까지 코드로, 어디부터 모델로)에 그대로 옮길 수 있는 원칙이다.
triage-validation의 7문항 게이트와 각 스킬의 "확증이 아닌 것" 표는 "기술적으로 가능"을 "실제로 보고 가능"과 절대 같게 취급하지 않는 규율을 코드화한다. SSRF에서 "에러가 URL을 되비춤"을 확증으로 오인하지 않는 것처럼 — 이는 OSINT·모니터링·QA·데이터 검증 등 "외부 신호로 사실을 판정하는 모든 일"에 적용되는 원칙이다. 거짓 양성(false positive)을 거르는 자세 자체가 자산이다.
evidence-hygiene 스킬은 "스크린샷·HAR·로그에서 쿠키·PII를 어떻게 지우나"를 절차로 만든다 — 쿠키 마스킹 시점, 타인 데이터/얼굴/주소의 블랙바, jq로 HAR 정제, 제출 후 시크릿 회전. 이는 보안 보고뿐 아니라 버그 리포트·로그 공유·데이터셋 공개 등 "산출물에 민감정보가 섞이는 모든 상황"의 체크리스트로 재사용된다.
같은 SKILL.md 파일이 Claude Code·OpenCode·Codex CLI·Hermes 4종에서 로드되는 점, 그리고 marketplace.json으로 /plugin install 한 줄 설치되는 점은 "표준 포맷에 맞추면 배포·이식이 공짜"라는 교훈이다. lint_skills.py가 description 길이·본문 줄 수·식별자 denylist를 자동 검사하는 것도 "기여를 받되 품질을 코드로 강제"하는 좋은 예다.
설치는 가볍다. 그러나 "인가(authorization)"가 가장 중요한 요구사항이다.
| 항목 | 요구사항 |
|---|---|
| 호스트 OS | macOS / Linux(Windows는 WSL2 Ubuntu). 터미널 필요. |
| 에이전트 | Claude Code(권장) — 유료 플랜 또는 API 크레딧. OpenCode·Codex CLI·Hermes도 지원. |
| 설치 | /plugin install claude-bughunter@elementalsouls 또는 bash scripts/install.sh. |
| Python | 엔진/CLI용 Python 3(python3 --version 정도면 충분). |
| 외부 도구(선택) | ProjectDiscovery(subfinder·httpx·katana·nuclei) · gau · Burp Suite + MCP(OOB용). |
| 안전 안내 | Anthropic 런타임은 공격형 보안 작업을 기본 차단할 수 있음 → 인가된 작업은 Cyber Verification Program(CVP) 신청으로 조정. |
| 인가(필수) | 본인 소유 자산·버그바운티 인스코프·서면 펜테스트 계약·CTF·연습용 취약 사이트에 한해서만. 이것이 가장 중요한 "요구사항"이다. |
번들의 SECURITY.md와 README는 못 박는다 — 이 스킬들은 본인이 소유했거나 서면 인가가 있는 자산에만 쓰도록 설계됐고, triage-validation의 게이트(Q3 "스코프 안인가")가 미인증 제3자 타깃을 가리키면 자동 발동한다. 번들은 0-day 무기화·후속 침투/지속성/측면이동 도구·악성코드·대량 표적화 인프라를 의도적으로 배제하며, 내부 AD 공격·C2·EDR 우회도 스코프 밖이다.
허용되는 사용: ① 본인 인프라/앱의 보안 점검, ② 명시적 인스코프 버그바운티, ③ 서면 계약 범위의 인가된 펜테스트/레드팀, ④ CTF·연습용 취약 사이트. 금지되는 사용: 동의·계약 없는 시스템 공격, 데이터 탈취, 서비스 방해. 한국 정보통신망법(무단 침입·방해), 개인정보보호법, EU GDPR 등 관할 법률을 반드시 준수해야 하며, 위반 책임은 전적으로 사용자에게 있다. 본 문서는 설계·방어·진단 학습용이며 특정 시스템 대상 무단 공격 절차를 제공하지 않는다.
난이도별 5단계 — 모두 본인 자산 / 연습용 취약 사이트(Juice Shop·DVWA 등)로만 안전하게.
skills/hunt-ssrf/SKILL.md를 처음부터 끝까지 읽고, ① 프런트매터의 description·report_count가 무엇을 알려 주는지, ② "확증이 아닌 것" 표가 왜 중요한지 한 문단으로 정리한다. 이름으로 호출하지 않고 토픽으로 로드되는 설계의 의미를 적어 본다.
당신이 반복하는 작업 절차(코드 리뷰 체크리스트, 장애 런북 등)를 골라 프런트매터+본문으로 된 SKILL.md를 작성하고, scripts/lint_skills.py의 규칙(name 정규식·description≤1024자·본문≤500줄)을 직접 만족하도록 다듬는다.
OWASP Juice Shop 같은 연습용 취약 사이트에서 발견 하나를 잡아, triage-validation의 7문항 게이트를 한 줄씩 자문하며 PASS/KILL을 판정한다. 한 항목이라도 NO면 왜 KILL인지 적는다. 실제 서비스는 대상으로 삼지 말 것.
engine/recon.py와 skill_map.py를 읽고, 당신이 소유한 도메인을 스코프 파일에 넣어 python3 engine/engine.py --scope my.json(기본 = 맵만, 에이전트 없음)을 돌린다. 생성된 arsenal.md가 표면을 어떤 hunt-* 스킬로 라우팅했는지 분석한다.
임의의 작은 워크플로(예: URL 목록의 기술 스택 핑거프린트 + "어떤 점검이 필요한가" 라벨링)를 골라, 찾기·분류는 순수 파이썬(결정적)으로, 최종 판단 1개만 LLM 호출로 짜 본다. 전부 LLM에 맡긴 버전과 토큰·재현성을 비교하며 이 번들의 설계 철학을 체감한다.
6주 코스 — 웹 보안 기초부터 보안 자동화 설계까지(전부 방어·진단 관점).
| 주차 | 주제 | 실습 · 참고 |
|---|---|---|
| 1주차 | 웹 보안 기초 — OWASP Top 10, HTTP/세션, 취약점 클래스 개요 | OWASP Juice Shop · PortSwigger Web Security Academy(무료) |
| 2주차 | Agent Skill 패턴 — SKILL.md 형식·자동 로드·지연 로딩 | Claude Code skills 공식 문서 · 본인 런북을 SKILL.md로 |
| 3주차 | 대표 취약점 클래스 정독 — SSRF·IDOR·XSS의 "확증/비확증" | hunt-ssrf·hunt-idor·hunt-xss SKILL.md · 연습 사이트 재현 |
| 4주차 | 검증 규율 — 7문항 게이트·VRT 심각도·false positive 억제 | triage-validation · Bugcrowd VRT · 자기 발견에 게이트 적용 |
| 5주차 | 결정적 자동화 — 스코프 강제·정찰·스킬 라우팅 | engine/ 정독 · 본인 도메인에 map-only 실행 · arsenal.md 해석 |
| 6주차 | 증거 위생 · 책임 있는 공개 — PII 제거·법규·인가 절차 | evidence-hygiene · SECURITY.md · 정보통신망법·GDPR 학습 |
본문·소스에 나온 용어 빠른 참조.
| 용어 | 의미 |
|---|---|
| Agent Skill | 폴더+SKILL.md 한 장으로 된 표준 지식 단위. 토픽 매칭으로 자동 로드. |
| SKILL.md 프런트매터 | 스킬 맨 위 메타블록(name·description·report_count·sources). description이 로드 트리거. |
| hunt-* 스킬 | 취약점 클래스/프레임워크별 탐지 스킬(48개). 공개 신고서에서 패턴 추출. |
| report_count | 해당 스킬이 몇 건의 공개 HackerOne 신고서에서 추출됐는지(예: hunt-xss=174). |
| 6단계 워크플로 | SCOPE→RECON→HUNT→VALIDATE→CAPTURE→REPORT(비선형). |
| 7문항 게이트 | 보고 전 통과해야 하는 7개 질문. 하나라도 NO면 그 발견 KILL. |
| 결정적(deterministic) | LLM 없이 순수 코드·수동 도구로 수행 — $0·재현 가능·레이트리밋 무소모. |
| 스코프(scope) | 인가된 테스트 범위. scope.py가 허용목록(deny-wins, 기본 거부)으로 코드 강제. |
| arsenal.md | 엔진 기본 산출물 — 표면을 어떤 hunt-* 스킬로 점검할지 + 첫 curl을 적은 맵. |
| OOB (out-of-band) | 대역 외 확증 — Burp Collaborator 등 내가 통제하는 리스너로 외부 콜백을 받아 사실 확인. |
| VRT | Bugcrowd Vulnerability Rating Taxonomy — 취약점 심각도 분류 기준. |
| MCP | Model Context Protocol — 모델↔외부 도구 표준. 여기선 Burp Suite 연동. |
| 증거 위생(evidence hygiene) | 산출물에서 쿠키·PII를 제거하는 절차(마스킹·블랙바·HAR 정제). |
| 다중 하네스 | 같은 SKILL.md가 Claude Code·OpenCode·Codex CLI·Hermes에서 로드됨. |
| CVP | Anthropic Cyber Verification Program — 인가된 이중용도 보안 작업의 안전장치 조정 신청. |