보안 가이던스 플러그인
기준일: 2026-07-26
난이도: 중급
공식 기준: Catch security issues as Claude writes code
security-guidance 플러그인은 Claude가 작성 중인 코드 변경을 취약점 관점에서 검토하고, 같은 세션에서 수정하게 합니다. 주입·불안전 역직렬화·불안전 DOM API 등을 PR 전에 줄여 인간 리뷰 부담을 낮춥니다.
설치 후 자동 실행됩니다. 별도 호출 명령이 없습니다. PR 시점의 Code Review와 보완 관계입니다.
개요
| 구분 | 역할 |
|---|---|
| security-guidance (세션 중) | 작성 직후·턴 종료·커밋/푸시 시 검토 |
| Code Review (PR) | PR에서 놓친 것 포착 |
/security-review |
요청 시 브랜치 1회 패스 |
| Claude Security 플러그인 | 다중 에이전트 심층 스캔 |
핵심 개념
사전 요구
- Claude Code CLI 2.1.144+
- PATH에 Python 3.7+ (에이전틱 커밋 리뷰·서드파티 프로바이더 모델 리뷰는 3.10+)
- 버전 선호:
python3.13…python3.10→python3/python/py -3 - git 저장소 (턴 종료·커밋 리뷰는 git 상태 필요; 패턴 체크는 어디서나)
- 최초 실행 시
~/.claude/security/venv + Claude Agent SDK 설치 (pip·네트워크)
3단 검사
| 시점 | 방식 | 비용 |
|---|---|---|
| 파일 편집 직후 | 패턴 매칭(모델 호출 없음) | 없음 |
| 턴 종료 | 백그라운드 모델 리뷰(최대 30 파일/턴, 연속 3회) | 사용량 소모 |
git commit/git push(Claude Bash) |
에이전틱 심층 리뷰(주변 코드 읽음, 시간당 20회) | 사용량 소모 |
독립성: 작성 Claude가 자기 코드를 채점하지 않습니다. 패턴은 결정론, 모델 리뷰는 별도 호출·보안 전용 프롬프트입니다. 쓰기를 차단하지 않음 — 방어 심층 한 층으로 취급.
상세
설치
/plugin install security-guidance@claude-plugins-official
/reload-plugins
- 터미널 CLI의
/plugin만 인터랙티브 패널 제공 - Desktop:
+→ Plugins → Add plugin - 웹/클라우드:
.claude/settings.json의enabledPlugins - marketplace 없음:
/plugin marketplace add anthropics/claude-plugins-official - 오래됨:
/plugin marketplace update claude-plugins-official - 스코프: user scope → 이 머신 모든 로컬 세션
클라우드·공유 저장소:
{
"enabledPlugins": {
"security-guidance@claude-plugins-official": true
}
}
관리자는 managed settings의 enabledPlugins로 조직 전체 활성화.
편집 시 패턴 예
- 동적 실행:
eval(,new Function,os.system,child_process.exec - 불안전 역직렬화:
pickle - DOM 주입:
dangerouslySetInnerHTML,.innerHTML =,document.write - 워크플로:
.github/workflows/편집
경고는 패턴×파일×세션당 1회. 커스텀: .claude/security-patterns.yaml.
턴 종료 리뷰가 잡는 예
인가 우회, IDOR, 주입, SSRF, 약한 암호 등 문자열 매칭 불가 이슈. 발견 시 Claude가 follow-up으로 수정.
커밋/푸시 리뷰
- Claude Bash의 commit/push만 (사용자 셸·
!이스케이프 제외) - 중복 발견 시 재프롬프트 없음
- 롤링 1시간 20회 상한
커스텀 규칙
모델 리뷰 가이던스 — .claude/claude-security-guidance.md:
# Security guidance for this repo
- Do not log `customer_id` or `account_number` at INFO level or above.
- All routes under `/admin` must call `require_role("admin")` before any database read.
- Use `crypto.timingSafeEqual` for token comparison instead of `===`.
가이던스는 차단 가드레일이 아닙니다. hard block은 hook/CI와 병행.
패턴 파일 — .claude/security-patterns.yaml:
patterns:
- rule_name: internal_api_key
substrings: ["sk_live_", "AKIA"]
reminder: "Hardcoded API key prefix. Load credentials from the secret manager."
- rule_name: tenant_unfiltered_query
regex: "\\.objects\\.all\\(\\)"
paths: ["**/src/tenants/**"]
reminder: "Multi-tenant code must filter by org_id."
| 필드 | 설명 |
|---|---|
rule_name |
경고 식별자 |
reminder |
컨텍스트에 붙는 경고(최대 1KB) |
regex / substrings |
둘 중 하나 |
paths / exclude_paths |
glob (프로젝트 상대는 **/ 접두) |
.yml/.json 동일 스키마. YAML은 PyYAML 필요. 커스텀 최대 50규칙. catastrophic backtracking 의심 regex 스킵.
탐색 경로 (가이던스·패턴 공통):
| 스코프 | 경로 |
|---|---|
| User | ~/.claude/claude-security-guidance.md |
| Project | .claude/claude-security-guidance.md |
| Project local | .claude/claude-security-guidance.local.md |
존재하는 위치 전부 로드, 가이던스 합 8KB 상한.
비용
- 패턴: 무비용
- 턴/커밋 리뷰: 일반 사용량 집계
- 기본 모델: Claude Opus 4.7
SECURITY_REVIEW_MODEL,SG_AGENTIC_MODEL로 변경 가능- 모든 플랜에서 사용 가능
비활성/제거
| 변수 | 효과 |
|---|---|
ENABLE_PATTERN_RULES=0 |
편집 패턴 off |
ENABLE_STOP_REVIEW=0 |
턴 종료 리뷰 off |
ENABLE_COMMIT_REVIEW=0 |
커밋/푸시 리뷰 off |
ENABLE_CODE_SECURITY_REVIEW=0 |
모델 리뷰 전부 off |
SECURITY_GUIDANCE_DISABLE=1 |
플러그인 전체 off |
/plugin disable security-guidance@claude-plugins-official
/plugin uninstall security-guidance@claude-plugins-official
프로젝트 settings로 켠 경우 disable은 .claude/settings.local.json 오버라이드. 공유 settings 제거는 v2.1.203+. managed settings는 관리자만.
훅 통합
| 훅 | 목적 |
|---|---|
SessionStart |
Python 환경 부트스트랩 |
UserPromptSubmit |
턴 종료 diff 기준선 |
PostToolUse Edit/Write/NotebookEdit |
패턴 매칭 |
Stop |
턴 종료 리뷰(백그라운드) |
PostToolUse Bash(git commit/push) |
커밋 리뷰 |
소스: https://github.com/anthropics/claude-plugins-official/tree/main/plugins/security-guidance
다른 보안 도구와 위치
| 단계 | 도구 |
|---|---|
| 세션 | security-guidance |
| 온디맨드 | /security-review, Claude Security 플러그인 |
| PR | Code Review (Team/Enterprise) |
| CI | 기존 SAST·의존성 스캐너 |
트러블슈팅
- 로그:
~/.claude/security/log.txt - git 아님 → 턴/커밋 리뷰 스킵
- Anthropic/서드파티 인증 없음 → 모델 리뷰 스킵, 패턴만
- YAML 있는데 PyYAML 없음 → 파일 무시 → JSON 사용
체크리스트
- CLI 2.1.144+, Python 3.10+(권장) 확인
- 플러그인 설치 후
/reload-plugins - 필요 시
claude-security-guidance.md/security-patterns추가 - PR Code Review·CI와 역할을 분리해 운영한다
- 리뷰가 안 보이면
~/.claude/security/log.txt확인