security-audit-skill
무엇인가
보안 감사 작업을 단일 응답이 아니라 단계별 산출물로 규율하는 스킬이다. 정찰, 커버리지 기반 헌팅, 후보 검증, 구조화 출력, 독립 레코드 검증, 대상 중립 보고의 여섯 단계를 순서대로 밟게 하며, 각 단계는 다음 단계가 참조할 파일을 남겨야 끝난 것으로 취급된다.
어떻게 동작하나
동작은 파일 산출물 중심이다. 1단계에서 `architecture.md`와 `coverage-ledger.json`으로 아키텍처·신뢰 경계·입력 표면·기존 증거·결정적 커버리지를 기록하고, 2단계에서 원장 단위별로 격리된 헌터를 배정해 점검 내역을 남기며 커버리지 비평가로 빈틈을 찾는다. 3단계는 각 후보를 새 검증자에게 넘겨 반증을 시도하게 하고, 4단계는 `confirmed`·`needs_validation`·`rejected` 레코드를 `findings.json`에 쓰고 `report-schema.json`으로 검증한다. 5단계에서 새 에이전트가 최종 소스 주장을 다시 확인하고, 6단계에서 검증된 레코드와 커버리지 원장으로부터 `REPORT.md`·`FINDINGS-DETAIL.md`·`NEEDS-VALIDATION.md`를 파생한다. 부모 에이전트는 원장 생성 직후와 이후 갱신마다 `validate-coverage-ledger.cjs`를, 4단계와 5단계 교체 때마다 `validate-findings.cjs`를 실행한다. 발동은 자동이며, 보안 감사·취약점 탐색·코드 펜테스트 요청이 트리거와 일치할 때 활성화된다. 직접적인 감사·펜테스트 요청은 전체 감사 모드로, 보안 질문과 국소 취약점 작업은 보고 산출물을 명시하지 않는 한 가이던스 모드로 처리된다.
무엇과 다른가
프롬프트를 직접 쓰거나 단일 규칙 파일에 점검 목록을 넣는 방식과 구조가 다르다. 발견한 에이전트와 검증하는 에이전트를 분리하는 적대적 검증을 전제로 하고, 커버리지 원장을 단위로 헌터를 배정해 점검 누락을 추적한다. 판정도 구분된다. `confirmed`는 완전한 소스 추적과 관측된 유계 결과를 가질 때만, `needs_validation`은 정확한 미해결 사실이 있고 심각도는 없을 때, `rejected`는 반증된 후보일 때 붙는다. 같은 저장소에 대한 반복 실행은 누적되며, 이전 원장과 발견을 이용해 빈틈을 겨냥하고 변경된 소스를 재검증하되 오래된 미해결 작업을 커버된 것으로 취급하지 않는다.
어떻게 쓰나
설치는 Skills CLI로 한다. `npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit`를 실행하고, 사용자 수준 설치는 `--global`을 덧붙인다. 에이전트 선택과 비대화형 옵션은 `npx skills --help`로 확인한다. 감사할 코드베이스에서 코딩 에이전트를 시작한 뒤 "security audit this codebase", "find security vulnerabilities in ./src", "do a security review, output to ~/audits/my-project" 같은 요청을 넣으면 된다. 출력 디렉터리를 지정하지 않으면 `~/security-audit-skill/` 아래 실행 디렉터리가 기본값이 되고, 대상 저장소 안에 쓰는 것은 버전 관리가 무시하는 디렉터리를 명시적으로 골랐을 때만 일어난다.
전제와 한계
전제가 명확하다. 툴 사용과 병렬 서브 에이전트를 지원하는 모델을 쓰는 코딩 에이전트가 필요하고, 무의존성 검증기 두 개를 돌리기 위해 Node.js가 필요하다. 대상이 제어하는 빌드·테스트·프로세스·브라우저·에뮬레이터·퍼저·픽스처를 실행하려면 외부 네트워크 차단, 허용 목록 기반 정제 환경, 자원 제한, 지정된 스크래치 경로에만 쓰기를 허용하는 OS 강제 샌드박스가 있어야 한다. 이 통제가 없으면 대상 코드를 실행하지 않고 해당 리드를 `needs_validation`으로 유지한다. 심층 방어의 빈틈은 취약점으로 세지 않고, A 계층이 공격을 막으면 B 계층의 부재는 강화 권고로 남긴다.
관련 논문 1
유사 스킬
- pm-claude-skillsPRD 작성·계약서 해독·사후 분석 등 업무별 절차를 SKILL.md로 주입해 프레임워크·출력 템플릿·품질 검사·안티패턴에 따라 산출물을 내도록 강제하는 Claude Code 플러그인이다.
- dryforge사용자 의도·명세·기존 코드·검증 증거의 권위를 분리해, 에이전트가 임의 해석으로 구현을 확정하지 못하게 규율하는 Claude Code 플러그인이다.
- guard-skills코딩 에이전트가 만든 코드·테스트·문서를 커밋 전에 검토하는 가드 스킬 묶음이다. Skills CLI로 설치해 diff 단위로 적용한다.
- andrej-karpathy-skillsClaude Code에 적용하는 단일 CLAUDE.md 지침 파일이다. Karpathy가 지적한 LLM 코딩 실수를 네 가지 원칙으로 막는다.
- Claude-Code-Game-StudiosClaude Code 세션에 스튜디오식 역할 분리와 슬래시 명령 워크플로를 주입해 기획·아키텍처·QA·릴리스 게이트 절차를 강제하는 스킬 팩이다.