/security-review
CWE 기반 보안 검토 + STRIDE 위협 모델링 (v6 - effort:max 강제)
> /plugin marketplace add sangrokjung/claude-forge > /plugin install claude-forge@claude-forge
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/security-review
Context preview
What this command does when you run it.
CWE 기반 보안 검토 + STRIDE 위협 모델링 (v6 - effort:max 강제)
Command definition
security-review.mdallowed-tools: Bash(npm:*), Bash(npx:*), Bash(pip:*), Bash(cargo:*), Bash(grep:*), Bash(git:*), Read, Glob, Grep
description: CWE 기반 보안 검토 + STRIDE 위협 모델링 (v6 - effort:max 강제)
argument-hint: [파일/디렉토리] [--auto] [--quick] [--cwe] [--stride] [--deps] [--report markdown|json]
Task
0단계: effort:max 강제
⚠️ Security Review는 항상 effort:max로 실행됩니다.
이는 보안 품질을 위해 타협할 수 없는 설정입니다.
모든 분석은 최대 깊이로 수행되며, 축약하지 않습니다.
effort:max를 내부적으로 강제 적용한다. 보안 검토는 속도보다 정확성이 우선이며, shallow scan은 허용하지 않는다.
---
1단계: 스캔 대상 식별
**파라미터 파싱:**
- `[경로]`: 특정 파일 또는 디렉토리 지정
- `--auto`: git diff 기반 변경 파일만 스캔 (민감 패턴 감지 시 자동 트리거)
- `--quick`: 변경 파일 대상 빠른 스캔 (CWE 상위 10개만)
- `--cwe`: CWE Top 25 전체 매핑 상세 분석
- `--stride`: STRIDE 위협 모델링 추가 실행
- `--deps`: 의존성 취약점 검사
- `--report [형식]`: markdown 또는 json 리포트 파일 생성
**스캔 범위 결정:**
# --auto: git diff 변경 파일만
git diff --cached --name-only | grep -E '\.(ts|tsx|js|jsx|py|go|rs|java)$'
git diff --name-only | grep -E '\.(ts|tsx|js|jsx|py|go|rs|java)$'
# --quick: 변경 파일 빠른 스캔
git diff --name-only HEAD~1 | grep -E '\.(ts|tsx|js|jsx|py|go|rs|java)$'
# 기본 (플래그 없음): 전체 소스 파일
find src/ lib/ app/ -type f -name '*.ts' -o -name '*.tsx' -o -name '*.js' -o -name '*.jsx'
**Auto-trigger 패턴 (--auto 모드에서 파일 경로/내용에 포함 시 자동 확대 스캔):**
| 패턴 | 위험 수준 | 설명 | |------|-----------|------| | `auth` | Critical | 인증 관련 코드 | | `payment` | Critical | 결제 처리 코드 | | `session` | High | 세션 관리 | | `token` | High | 토큰 발급/검증 | | `password` | Critical | 비밀번호 처리 | | `secret` | Critical | 시크릿/키 관리 | | `crypto` | High | 암호화 로직 | | `jwt` | High | JWT 토큰 처리 | | `admin` | High | 관리자 기능 | | `upload` | Medium | 파일 업로드 | | `download` | Medium | 파일 다운로드 | | `redirect` | Medium | URL 리다이렉트 |
---
2단계: CWE Top 25 매핑
모든 소스 파일에 대해 CWE Top 25 기반 패턴 매칭을 수행한다. 각 발견 항목에는 반드시 CWE ID를 태깅한다.
┌─────────┬──────────────────────────────┬───────────────────────────────┬──────┐
│ CWE ID │ Name │ Detection Pattern │ Sev │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-79 │ Cross-site Scripting (XSS) │ innerHTML, dangerouslySet*, │ Crit │
│ │ │ v-html, [innerHTML]= │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-89 │ SQL Injection │ query( + string concat/ │ Crit │
│ │ │ template literal with ${}, │ │
│ │ │ .raw( + user input │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-78 │ OS Command Injection │ exec(, spawn(, execSync( │ Crit │
│ │ │ + user-controlled input │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-22 │ Path Traversal │ ../ in user-supplied paths, │ High │
│ │ │ path.join( + req.params │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-352 │ Cross-Site Request Forgery │ POST/PUT/DELETE without │ High │
│ │ │ CSRF token validation │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-287 │ Improper Authentication │ Missing auth middleware, │ High │
│ │ │ auth check bypass │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-862 │ Missing Authorization │ Route handler without authz, │ High │
│ │ │ direct object reference │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-798 │ Hardcoded Credentials │ apiKey=", secret=", pass=", │ Crit │
│ │ │ token=", key=" (literals) │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-200 │ Exposure of Sensitive Info │ console.log + secret/token/ │ Med │
│ │ │ password, error stack trace │ │
│ │ │ in response │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-502 │ Deserialization of Untrusted │ JSON.parse(untrusted), │ High │
│ │ Data │ eval(, new Function( │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-306 │ Missing Authentication for │ Critical endpoint without │ High │
│ │ Critical Function │ auth guard │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-20 │ Improper Input Validation │ No schema validation (zod/ │ Med │
│ │ │ joi), missing sanitization │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-269 │ Improper Privilege Mgmt │ Role escalation, missing │ High │
│ │ │ role check │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-434 │ Unrestricted Upload │ File upload without type/ │ High │
│ │ │ size validation │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-918 │ Server-Side Request Forgery │ fetch/axios with user URL, │ High │
│ │ │ no URL allowlist │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-611 │ XML External Entity (XXE) │ XML parser without disabled │ High │
│ │ │ exteRead more
allowed-tools: Bash(npm:*), Bash(npx:*), Bash(pip:*), Bash(cargo:*), Bash(grep:*), Bash(git:*), Read, Glob, Grep description: CWE 기반 보안 검토 + STRIDE 위협 모델링 (v6 - effort:max 강제) argument-hint: [파일/디렉토리] [--auto] [--quick] [--cwe] [--stride] [--deps] [--report markdown|json]
Task
0단계: effort:max 강제
⚠️ Security Review는 항상 effort:max로 실행됩니다. 이는 보안 품질을 위해 타협할 수 없는 설정입니다. 모든 분석은 최대 깊이로 수행되며, 축약하지 않습니다.
effort:max를 내부적으로 강제 적용한다. 보안 검토는 속도보다 정확성이 우선이며, shallow scan은 허용하지 않는다.
---
1단계: 스캔 대상 식별
**파라미터 파싱:**
- `[경로]`: 특정 파일 또는 디렉토리 지정
- `--auto`: git diff 기반 변경 파일만 스캔 (민감 패턴 감지 시 자동 트리거)
- `--quick`: 변경 파일 대상 빠른 스캔 (CWE 상위 10개만)
- `--cwe`: CWE Top 25 전체 매핑 상세 분석
- `--stride`: STRIDE 위협 모델링 추가 실행
- `--deps`: 의존성 취약점 검사
- `--report [형식]`: markdown 또는 json 리포트 파일 생성
**스캔 범위 결정:**
# --auto: git diff 변경 파일만 git diff --cached --name-only | grep -E '\.(ts|tsx|js|jsx|py|go|rs|java)$' git diff --name-only | grep -E '\.(ts|tsx|js|jsx|py|go|rs|java)$' # --quick: 변경 파일 빠른 스캔 git diff --name-only HEAD~1 | grep -E '\.(ts|tsx|js|jsx|py|go|rs|java)$' # 기본 (플래그 없음): 전체 소스 파일 find src/ lib/ app/ -type f -name '*.ts' -o -name '*.tsx' -o -name '*.js' -o -name '*.jsx'
**Auto-trigger 패턴 (--auto 모드에서 파일 경로/내용에 포함 시 자동 확대 스캔):**
| 패턴 | 위험 수준 | 설명 | |------|-----------|------| | `auth` | Critical | 인증 관련 코드 | | `payment` | Critical | 결제 처리 코드 | | `session` | High | 세션 관리 | | `token` | High | 토큰 발급/검증 | | `password` | Critical | 비밀번호 처리 | | `secret` | Critical | 시크릿/키 관리 | | `crypto` | High | 암호화 로직 | | `jwt` | High | JWT 토큰 처리 | | `admin` | High | 관리자 기능 | | `upload` | Medium | 파일 업로드 | | `download` | Medium | 파일 다운로드 | | `redirect` | Medium | URL 리다이렉트 |
---
2단계: CWE Top 25 매핑
모든 소스 파일에 대해 CWE Top 25 기반 패턴 매칭을 수행한다. 각 발견 항목에는 반드시 CWE ID를 태깅한다.
┌─────────┬──────────────────────────────┬───────────────────────────────┬──────┐
│ CWE ID │ Name │ Detection Pattern │ Sev │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-79 │ Cross-site Scripting (XSS) │ innerHTML, dangerouslySet*, │ Crit │
│ │ │ v-html, [innerHTML]= │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-89 │ SQL Injection │ query( + string concat/ │ Crit │
│ │ │ template literal with ${}, │ │
│ │ │ .raw( + user input │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-78 │ OS Command Injection │ exec(, spawn(, execSync( │ Crit │
│ │ │ + user-controlled input │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-22 │ Path Traversal │ ../ in user-supplied paths, │ High │
│ │ │ path.join( + req.params │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-352 │ Cross-Site Request Forgery │ POST/PUT/DELETE without │ High │
│ │ │ CSRF token validation │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-287 │ Improper Authentication │ Missing auth middleware, │ High │
│ │ │ auth check bypass │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-862 │ Missing Authorization │ Route handler without authz, │ High │
│ │ │ direct object reference │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-798 │ Hardcoded Credentials │ apiKey=", secret=", pass=", │ Crit │
│ │ │ token=", key=" (literals) │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-200 │ Exposure of Sensitive Info │ console.log + secret/token/ │ Med │
│ │ │ password, error stack trace │ │
│ │ │ in response │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-502 │ Deserialization of Untrusted │ JSON.parse(untrusted), │ High │
│ │ Data │ eval(, new Function( │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-306 │ Missing Authentication for │ Critical endpoint without │ High │
│ │ Critical Function │ auth guard │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-20 │ Improper Input Validation │ No schema validation (zod/ │ Med │
│ │ │ joi), missing sanitization │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-269 │ Improper Privilege Mgmt │ Role escalation, missing │ High │
│ │ │ role check │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-434 │ Unrestricted Upload │ File upload without type/ │ High │
│ │ │ size validation │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-918 │ Server-Side Request Forgery │ fetch/axios with user URL, │ High │
│ │ │ no URL allowlist │ │
├─────────┼──────────────────────────────┼───────────────────────────────┼──────┤
│ CWE-611 │ XML External Entity (XXE) │ XML parser without disabled │ High │
│ │ │ exteSupercharge Claude Code with 11 AI agents, 36 commands & 15 skills — the claude-code plugin framework inspired by oh-my-zsh. 6-layer security hooks included. 5-min install.
Repo: sangrokjung/claude-forge
Other commands on claude-forge.
- /agent-router
전문 에이전트 자동 라우팅. 법률, 재무, 특허, SEO, 마케팅, 기획, BM 설계(BMC/Lean/JTBD/Wardley/Blue Ocean/Lightning Sprint), 코드리뷰, 아키텍처, 견적, CRM, HR/인사, 노무(노동법/해고/산재/취업규칙), 리서치, 데이터 분석, 제1원칙 사고, 주식 투자, 부동산 투자, 명리학, 회사운영(노란우산/창업혜택/고용지원/세무일정), 디자인 제작(배너/카드뉴스/SNS/광고/인포그래픽), FAQ/지식베이스(KCS/셀프서비스/아티클),
Open command - /auto
계획부터 PR까지 원버튼 자동 실행. 중간에 멈추지 않습니다.
Open command - /build-fix
빌드 에러를 자동으로 분석하고 수정합니다.
Open command - /checkpoint
작업 상태 저장/복원 (v6)
Open command - /code-review
방금 작성한 코드를 보안+품질 검사합니다.
Open command - /commit-push-pr
머지 전 /sync-docs 문서 동기화 의무 게이트 → 검증 → 커밋 & PR & 머지 + MCP 알림 (v7)
Open command

