필수 조건
- Claude Code CLI 버전 2.1.144 이상
PATH에 Python 3.8 이상. 플러그인은python3,python,py -3순서로 시도합니다.- 작업 중인 디렉터리에 대한 git 저장소. 턴 끝 및 커밋 검토는 git 상태에 대해 diff하고 저장소 외부에서는 자동으로 건너뜁니다. 편집당 패턴 확인은 어디서나 작동합니다.
~/.claude/security/ 아래에 가상 환경을 만들고 Claude Agent SDK를 설치하며, 이는 pip 및 네트워크 액세스가 필요합니다. 해당 설치가 실패하면 커밋 검토는 에이전트 검토 대신 단일 샷 검토로 폴백됩니다. Windows에서는 가상 환경 단계를 건너뛰므로 에이전트 커밋 검토는 claude-agent-sdk가 이미 가져올 수 있는 경우에만 실행되고 그렇지 않으면 동일한 방식으로 폴백됩니다.
플러그인 설치
Claude Code 세션에서 공식 Anthropic 마켓플레이스에서 설치합니다:/plugin marketplace add anthropics/claude-plugins-official을 실행한 후 설치를 다시 시도합니다.
그런 다음 현재 세션에서 /reload-plugins로 활성화합니다. 이는 재시작 없이 보류 중인 플러그인 변경 사항을 적용합니다:
클라우드 세션 및 공유 저장소에서 활성화
사용자 범위 플러그인은 웹의 Claude Code로 전달되지 않습니다. 왜냐하면 이러한 세션은 머신이 아닌 Anthropic 인프라에서 실행되기 때문입니다. 거기서 플러그인을 활성화하거나 저장소를 복제하는 모든 사람에 대해 켜려면 프로젝트의 체크인된 설정에서 선언합니다:.claude/settings.json
enabledPlugins를 설정하여 조직 전체에서 플러그인을 활성화할 수 있습니다.
플러그인이 확인하는 것
플러그인은 Claude의 작업을 세 지점에서 검토하며, 각각 다른 깊이에서 검토합니다:- 각 파일 편집 시: 모델 호출 없이 위험한 호출에 대한 빠른 패턴 일치
- 각 턴의 끝에서: 해당 턴이 변경한 모든 것에 대한 백그라운드 모델 검토
- Claude가 수행하는 각 커밋 또는 푸시 시: 주변 코드를 읽는 더 깊은 에이전트 검토
각 파일 편집 시
Claude가 파일에 쓸 때 플러그인은 새 콘텐츠를 알려진 위험한 패턴에 대해 스캔합니다. 이는 모델 호출이 없는 패턴 일치이므로 사용 비용이 추가되지 않습니다. 예제 패턴 범주:- 동적 코드 실행:
eval(,new Function,os.system,child_process.exec - 안전하지 않은 역직렬화:
pickle - DOM 주입:
dangerouslySetInnerHTML,.innerHTML =,document.write - 워크플로우 파일:
.github/workflows/아래의 편집으로, 저장소 수준 권한을 부여할 수 있습니다.
security-patterns.yaml 파일로 이 계층에 자신의 패턴을 추가할 수 있습니다.
각 턴의 끝에서
턴은 Claude가 응답하는 한 라운드입니다: 메시지를 보내고, Claude가 작업하고 회신하며, 턴이 끝납니다. 각 턴 후에 플러그인은 Claude의 편집 도구, Bash 명령 및 서브에이전트의 변경 사항을 포함하여 턴 중에 작업 트리에서 변경된 모든 것의 git diff를 계산하고 보안에 중점을 둔 별도의 Claude 검토로 보냅니다. 검토는 백그라운드에서 실행되므로 Claude의 회신이 지연되지 않습니다. 검토에서 문제를 발견하면 Claude는 발견 사항으로 다시 프롬프트되고 후속 조치로 해결합니다. 이는 문자열 일치가 포착할 수 없는 문제를 포착합니다. 예를 들어:- 인증 우회
- 안전하지 않은 직접 객체 참조
- 주입
- 서버 측 요청 위조
- 약한 암호화
Claude가 수행하는 각 커밋 또는 푸시 시
Claude가 Bash 도구를 통해git commit 또는 git push를 실행할 때 플러그인은 백그라운드에서 변경 사항에 대한 더 깊은 에이전트 검토를 실행합니다. 이 검토는 호출자, 새니타이저 및 관련 파일을 포함한 주변 코드를 읽어 발견 사항이 보고되기 전에 실제인지 결정합니다. 추가 컨텍스트는 코드베이스에서 격리되어 보면 위험해 보이지만 안전한 패턴에 대한 거짓 양성을 낮게 유지합니다.
이 계층은 Claude가 Bash 도구를 통해 수행하는 커밋 및 푸시에서만 발생합니다. 자신의 셸에서 실행하는 커밋(세션 내 ! 셸 이스케이프 포함)은 검토되지 않습니다. 커밋 및 푸시 검토는 롤링 시간당 20개로 제한됩니다. 커밋 검토의 발견 사항이 턴 끝 검토에서 이미 보고한 것과 중복되면 Claude는 다시 프롬프트되지 않으므로 깨끗한 커밋은 이 계층에서 보이는 출력을 생성하지 않습니다.
검토 독립성 및 제한
플러그인은 코드를 작성한 동일한 Claude 인스턴스에 자신을 평가하도록 요청하지 않습니다. 편집당 확인은 모델이 관여하지 않는 결정론적 문자열 일치입니다. 턴 끝 및 커밋 검토는 새로운 컨텍스트와 보안 중심 프롬프트를 사용하는 별도의 Claude 호출로 실행됩니다: 검토자는 diff에서 시작하고 원래 접근 방식에 투자하지 않으며 문제를 찾도록만 지시됩니다. 어떤 계층도 쓰기 또는 커밋을 차단하지 않습니다. 발견 사항은 쓰기 Claude에 지시로 도달하고, Claude는 대화에서 해결하며, 검토 모델은 문제를 놓칠 수 있습니다. 플러그인을 완전한 보안 솔루션이 아닌 심층 방어의 한 계층으로 취급합니다. 이것이 다른 보안 도구와 어떻게 맞는지를 참조하십시오.자신의 규칙 추가
플러그인에는 두 가지 확장 지점이 있습니다: 모델 지원 검토를 위한 Markdown 지침 파일과 편집당 문자열 일치를 위한 YAML 또는 JSON 패턴 파일입니다. 둘 다 추가적입니다. 확인을 추가할 수 있지만 이러한 파일에서 기본 제공 확인을 비활성화할 수 없습니다.모델 지원 검토를 위한 지침 추가
프로젝트에서.claude/claude-security-guidance.md를 만들고 일반 언어로 위협 모델 및 검토 체크리스트를 설명합니다. 모델 지원 검토는 기본 제공 취약점 체크리스트와 함께 추가 컨텍스트로 로드합니다.
다음 예제는 역할 게이트 관리자 경로 및 고객 데이터 로깅 정책이 있는 웹 서비스용입니다:
.claude/claude-security-guidance.md
사용자 정의 편집당 패턴 추가
.claude/security-patterns.yaml을 만들어 편집당 패턴 확인에 정규식 또는 부분 문자열 규칙을 추가합니다. 이들은 기본 제공 패턴과 함께 결정론적 문자열 일치로 실행됩니다:
.claude/security-patterns.yaml
| 필드 | 유형 | 설명 |
|---|---|---|
rule_name | 문자열 | 경고에 표시되는 식별자 |
reminder | 문자열 | Claude의 컨텍스트에 추가되는 경고 텍스트, 1 KB로 제한됨 |
regex | 문자열 | 편집된 콘텐츠와 일치하는 Python 정규식 |
substrings | 목록 | 리터럴 부분 문자열; 이것 또는 regex 제공 |
paths | 목록 | 선택 사항 glob 패턴; 규칙은 일치하는 파일에만 적용됩니다. Glob은 전체 파일 경로와 일치하므로 프로젝트 상대 패턴 앞에 **/를 붙입니다. |
exclude_paths | 목록 | 건너뛸 선택 사항 glob 패턴; paths와 동일한 일치 |
.claude/security-patterns.yml 및 .claude/security-patterns.json을 읽습니다. JSON은 모든 Python 설치에서 작동합니다. YAML 형식은 PyYAML을 가져올 수 있어야 하며, 플러그인은 이를 설치하지 않습니다. 플러그인은 최대 50개의 사용자 정의 규칙을 로드하고 재앙적 백트래킹에 취약해 보이는 정규식을 건너뜁니다.
규칙 파일 조회 위치
플러그인은 플러그인이 활성화된 방식과 관계없이 동일한 위치에서claude-security-guidance.md 및 security-patterns.yaml을 찾습니다:
| 범위 | 경로 | 참고 |
|---|---|---|
| 사용자 | ~/.claude/claude-security-guidance.md | 머신의 모든 프로젝트에 적용됩니다. |
| 프로젝트 | .claude/claude-security-guidance.md | 저장소와 함께 체크인됨 |
| 프로젝트 로컬 | .claude/claude-security-guidance.local.md | Gitignored, 개인 재정의용 |
~/.claude/에 사용자 범위 파일을 푸시하여 조직 전체 규칙을 배포할 수 있습니다. 동일한 경로가 security-patterns.yaml에 적용됩니다.
사용 비용
편집당 패턴 확인은 모델 호출을 하지 않으며 비용을 추가하지 않습니다. 턴 끝 및 커밋 검토는 각각 다른 Claude 요청처럼 사용으로 계산되는 추가 모델 사용을 소비합니다. 커밋 검토는 에이전트이며 커밋당 여러 모델 턴을 걸릴 수 있으며, 롤링 시간당 20개 검토로 제한됩니다. 파일을 변경하는 턴당 대략 하나의 검토 호출과 커밋당 하나의 더 깊은 검토를 예상하며, 둘 다 위의 상한을 따릅니다. 두 모델 지원 검토 모두 기본적으로 Claude Opus 4.7을 사용합니다.SECURITY_REVIEW_MODEL을 설정하여 턴 끝 검토를 위해 다른 모델을 선택하고 SG_AGENTIC_MODEL을 커밋 검토를 위해 선택합니다.
플러그인은 모든 플랜에서 사용 가능합니다.
비활성화 또는 제거
나머지를 유지하면서 개별 계층을 끄려면 일치하는 환경 변수를 설정합니다:| 변수 | 효과 |
|---|---|
ENABLE_PATTERN_RULES=0 | 편집당 패턴 확인 비활성화 |
ENABLE_STOP_REVIEW=0 | 턴 끝 diff 검토 비활성화 |
ENABLE_COMMIT_REVIEW=0 | 커밋 및 푸시 검토 비활성화 |
ENABLE_CODE_SECURITY_REVIEW=0 | 모든 모델 지원 검토를 한 번에 비활성화 |
SECURITY_GUIDANCE_DISABLE=1 | 제거하지 않고 플러그인 완전히 비활성화 |
.claude/settings.json을 통해 활성화된 경우 /plugin에서 비활성화하면 체크인된 파일을 편집하지 않고 .claude/settings.local.json에 재정의를 기록하므로 플러그인이 사용자에게는 꺼져 있고 팀원은 영향을 받지 않습니다. 동일한 대화 상자는 공유 .claude/settings.json에서 제거하여 모든 사용자를 위해 플러그인을 제거할 수 있는 옵션도 제공합니다. 이 옵션은 Claude Code v2.1.203 이상이 필요합니다. 관리 설정을 통해 활성화된 경우 관리자만 비활성화할 수 있습니다.
플러그인이 Claude Code와 통합되는 방식
플러그인은 전적으로 훅에 구축되어 있으며, 이는 Claude의 루프의 특정 지점에서 자신의 코드를 실행하는 메커니즘입니다. 등록:| 훅 이벤트 | 목적 |
|---|---|
SessionStart | 플러그인의 Python 환경 부트스트랩 |
UserPromptSubmit | 턴 끝 검토가 diff하는 작업 트리 기준선 캡처 |
PostToolUse on Edit, Write, and NotebookEdit | 편집당 패턴 일치 |
Stop | 턴 끝 diff 검토, 백그라운드에서 실행 |
PostToolUse on Bash, filtered to git commit and git push | 커밋 및 푸시 검토, 백그라운드에서 실행 |
이것이 다른 보안 도구와 어떻게 맞는지
플러그인은 심층 방어 접근 방식의 한 계층입니다. 코드가 여전히 편집기에 있는 동안 가장 빨리 문제를 포착하지만 보장이 아니며 나중의 확인을 대체하지 않습니다. 일반적인 스택:| 단계 | 도구 | 포함 내용 |
|---|---|---|
| 세션 내 | Security guidance 플러그인 | Claude가 작성한 코드의 일반적인 취약점, 동일한 세션에서 수정됨 |
| 온디맨드 | /security-review | 현재 분기에 대한 일회성 보안 통과, 요청할 때 실행 |
| 풀 요청 시 | Code Review, Team 및 Enterprise 플랜 | 전체 코드베이스 컨텍스트를 사용한 다중 에이전트 정확성 및 보안 검토 |
| CI에서 | 기존 정적 분석 및 종속성 스캐너 | 플러그인이 시도하지 않는 언어별 규칙, 공급망 확인 및 정책 적용 |
문제 해결
플러그인은 런타임 진단을~/.claude/security/log.txt에 기록합니다. 검토가 나타나지 않으면 먼저 거기를 확인하십시오.
검토 계층이 대화에서 메시지 없이 건너뛰는 일반적인 이유:
- 디렉터리가 git 저장소가 아닙니다: 턴 끝 및 커밋 검토는 git 상태가 필요하고 저장소 외부에서 건너뜁니다
- 세션에 Anthropic 인증이 없습니다: 모델 지원 검토는 건너뛰고 편집당 패턴 확인만 실행됩니다
security-patterns.yaml파일이 있지만 PyYAML을 가져올 수 없습니다: 파일이 무시됩니다. 대신security-patterns.json을 사용하십시오
관련 리소스
이 페이지가 다루는 부분을 더 깊이 있게 살펴보려면:- Code Review: PR 시간 다중 에이전트 검토 설정
- 훅으로 워크플로우 자동화: 동일한 라이프사이클 지점에서 자신의 확인 구축
- 플러그인 발견 및 설치: 다른 공식 플러그인 찾아보기