Claude Code 보안 감사: 실전 2026 워크플로
Claude Code 보안 감사는 AI 어시스턴트에게 코드의 의미(시맨틱)를 읽게 하는 방식이에요. 예전 도구처럼 단순히 패턴만 대조하는 게 아니라서 SQL 인젝션, 인증 결함, 하드코딩된 시크릿, 알려진 CVE가 있는 의존성 같은 결함을 찾아낼 수 있어요. 방법은 네 가지예요. 빠른 스캔용 /security-review, 멀티 에이전트로 깊게 스캔하는 claude-security 플러그인, 코드를 작성하는 동안 자동으로 리뷰하는 security-guidance 플러그인, 그리고 AgentKit에 미리 만들어진 ak-security 스킬이에요. 몇 분 만에 대기 중인 변경을 스캔하고 file:line과 심각도가 담긴 발견 항목 표를 얻은 뒤 패치할 수 있어요. 한계도 있어요. AI는 시프트 레프트를 돕지만 전문가의 침투 테스트를 대체하지는 않아요.
이 글의 명령어와 플러그인 이름은 Anthropic 공식 문서(2026년 8월 확인)를 따랐어요. Claude Code는 자주 업데이트되니 감사 전에 /plugin 마켓플레이스를 다시 확인하세요.
Claude Code 보안 감사란?
Claude Code 보안 감사란 Claude Code를 "AI 보안 리뷰어"로 사용해, 전통적인 린터처럼 패턴만 대조하는 대신 코드의 의미를 읽어 취약점을 찾아내는 방식이에요. 모델이 데이터 흐름과 함수의 의도를 이해하기 때문에, 정규식 기반 도구가 흔히 놓치는 문제도 잡아내요. 예를 들어 사용자 입력이 연결된 SQL 문자열로 흘러 들어가는 부분, 인가 검사가 빠진 엔드포인트, 소스에 그대로 박힌 API 키 같은 것들이에요.
Claude Code가 잘 잡아내는 취약점 유형에는 인젝션(SQL, 명령, NoSQL, XXE), 인증·인가 결함(IDOR, 권한 상승, 취약한 세션), 데이터 노출(하드코딩된 시크릿, 로그 속 PII), 약한 암호(부실한 RNG, 잘못된 키 관리), 설정 오류(CORS, 보안 헤더), 공급망 위험(알려진 CVE가 있는 의존성) 등이 있어요.
이 가이드에서는 네 가지 접근 방식을 다뤄요.
- 네이티브
/security-review— Claude Code에 내장된 명령어와 Anthropic의 공식 GitHub Action이에요(2025년 8월 공개, anthropics/claude-code-security-review, 2026년 8월 확인). 대기 중인 변경을 리뷰하고 심각도를 매기며 수정안을 제안하고, 오탐 필터가 내장돼 있어요. claude-security플러그인 —/plugin install claude-security@claude-plugins-official로 설치하면/claude-security명령어가 추가되고, 멀티 에이전트 심층 스캔 메뉴가 열려요(단순한 스캔 명령어가 아니에요). 아키텍처 매핑 → 위협 모델 구축 → 취약점 탐색 → 독립 에이전트가 보고 전에 검증하는 흐름이에요. 무료(플랜 사용량에서 차감)이고 dynamic workflows가 필요해요. 자세한 내용은 아래 전용 섹션을 참고하세요.security-guidance플러그인 — Claude가 방금 작성한 코드를 3개 계층으로 자동 리뷰해요(즉시 패턴 대조, 턴 종료 시 백그라운드 리뷰, 커밋/푸시 시 심층 리뷰). 지속적인 모니터링 계층으로 정기 감사를 보완해요. 자세한 내용은 보안 모범 사례 글을 참고하세요.- 미리 만들어진
ak-security스킬 — STRIDE + OWASP A01~A10, 스택을 고려한 의존성 감사, 멀티 페르소나 레드팀,--fix모드를 아우르는 프롬프트 묶음이라, 긴 프롬프트를 직접 쓸 필요가 없어요. 유료이며 AgentKit Engineer Kit의 일부예요.
Claude Code의 보안 모델에 관한 공식 문서는 code.claude.com/docs/en/security(2026년 8월 확인)에 있어요. 저장소에서 명령을 실행할 권한을 AI에게 주기 전에 읽어 둘 가치가 있어요.
감사 전에: 준비
3분의 준비로 세션을 깔끔하고 되돌릴 수 있는 상태로 유지할 수 있어요.
- Claude Code 설치 및 로그인 완료. 아직이라면 Claude Code 설치 가이드를 따르세요.
- 깨끗한 Git 작업 트리(
git status에 대기 중인 변경이 없는 상태). AI가 제안하는 내용을 구분하려면 명확한 diff가 필요하고, 패치가 무언가를 망가뜨리면git restore로 되돌릴 수 있어요. - 범위를 먼저 정하세요. 단일 폴더(
src/api/**), 지금 수정 중인 파일, 아니면 저장소 전체 중 하나예요. 범위가 좁을수록 빠르고 토큰도 아껴요. - 신뢰할 수 있는 코드만 감사하세요. 이건 일찍 짚어 둘 중요한 경고예요. 낯선 사람의 저장소나 PR 코드를 AI에게 읽히면, 그 코드 안의 악성 내용이 지시를 주입(프롬프트 인젝션)해 모델을 속일 수 있어요. 신뢰할 수 없는 코드는 직접 검토하거나 격리된 환경에서 실행하세요.
- 낯설거나 신뢰할 수 없는 저장소를 감사하나요? 샌드박스에서 실행하세요. 잘 모르는 저장소를 감사해야 한다면, OS 수준 격리를 위해
/sandbox(macOS는 Seatbelt, Linux/WSL2는 bubblewrap+socat) 안에서 Claude Code를 실행하세요. 일반 권한 모드보다 강력한 계층이에요. Claude Code 샌드박싱을 참고하세요. - 명령 권한을 확인하세요. Claude Code 권한과 안전한 실행을 검토해, 스캔 중에 AI가 파괴적인 명령을 스스로 실행하지 못하게 하세요. 2026년 8월 기준으로 auto 모드가 Pro/Max/Team의 기본 시작 모드예요. 감사가 제안할 수 있는 위험한 명령(예:
npm install을 실행하는--fix)은 매번 수동 확인 대신 분류기를 거치니, 시작 전에 allowlist를 검토해 두세요.
Claude Code 감사 6단계 워크플로
이것이 세션 전체의 뼈대예요. 결과를 읽기 쉽게 유지하고 토큰을 헛되이 쓰지 않도록, 좁은 범위에서 넓은 범위로 순서대로 진행하세요.
1단계 — 범위 정의하기
먼저 리뷰받고 싶은 대상을 정확히 지정하는 것부터 시작하세요. 작은 변경이라면 Claude가 diff에 집중하게 하고, 큰 저장소라면 민감한 영역(인증, 결제, 업로드, 공개 API)에 디렉터리 glob으로 범위를 좁히세요. Claude에게 분석 전에 범위 안의 모든 파일을 읽으라고 지시하세요. 그러지 않으면 모델은 함수 이름으로 추측하는 경향이 있어요. 시작 프롬프트예요.
Read all files in src/api/ and src/auth/ first.
Do not change anything yet. Just list the areas with an attack
surface (external input, DB access, auth handling) so I can pick a scope.
2단계 — 대기 중인 변경에 /security-review 실행하기
곧 커밋할 변경에 대해, Claude Code 세션 안에서 바로 네이티브 명령을 실행하세요.
/security-review
이 명령은 대기 중인 diff를 리뷰하고 심각도를 분류하며 발견 항목마다 수정안을 제안해요. 사용 가능한 가장 강력한 Claude 모델(설정 가능)에서 동작하니, 사람이 보기 전에 PR을 읽는 보안 리뷰어라고 생각하세요. 여기가 가장 빠르게 "시프트 레프트"할 수 있는 지점이에요. 코드가 아직 따끈하고 메인 브랜치에 올라가기 전에 문제를 잡을 수 있어요.
3단계 — STRIDE + OWASP로 저장소 전체 스캔하기
diff보다 더 깊이 파고들려면, 구조화된 위협 모델링 프롬프트를 Claude에게 주세요. STRIDE는 OWASP Top 10에 꽤 깔끔하게 대응돼요. 복사·붙여넣기용 템플릿이에요.
Audit all in-scope code across the 6 STRIDE categories, mapped to the OWASP Top 10:
- Spoofing -> A07 (identification/authentication failures)
- Tampering -> A03 (injection), A08 (data/software integrity)
- Repudiation -> A09 (missing logging/monitoring)
- Info Disclosure -> A02 (crypto), A01 (access control)
- Denial of Service -> note it, but only report with clear impact
- Elevation of Priv -> A01 (broken access control)
For each finding, record: severity, category, file:line, a short description,
and a concrete fix. Do not report theoretical issues you cannot tie to real impact.
4단계 — 의존성 감사하기
취약점은 내가 작성한 코드보다 끌어온 라이브러리 안에 있는 경우가 많아요. 스택에 맞는 도구를 실행한 뒤, Claude가 종합해 우선순위를 매기게 하세요.
npm audit # Node.js
pip-audit # Python
govulncheck ./... # Go
bundle audit # Ruby
그런 다음 출력을 Claude에 붙여넣으세요. "이 CVE들을 내 프로젝트에서의 실제 악용 가능성으로 순위를 매기고, devDependencies에만 있고 프로덕션에 도달하지 않는 것은 제외해." Claude는 노이즈를 줄여 줘요. 모든 CVE가 실제 실행 경로에 있는 건 아니니까요.
5단계 — 하드코딩된 시크릿 찾기
소스와 설정 파일에 직접 박힌 API 키, 비밀번호, 토큰, 개인 키를 스캔하도록 Claude에게 요청하세요. 자격 증명 위생에 관한 참고 사항이에요. 보고할 때는 리포트를 로그에 남기거나 커밋하기 전에 실제 값을 <REDACTED_TOKEN>으로 마스킹하세요. 시크릿을 감사하는 바로 그 파일에서 시크릿이 새어 나가지 않도록요.
Scan the whole repo for hardcoded secrets (api keys, passwords, tokens,
private keys, DB connection strings). For each finding, record only file:line
and the TYPE of secret, and mask the value to <REDACTED>. Do not print real values.
6단계 — 심각도 분류 및 리포트 내보내기
모든 발견 항목을 심각도별로 하나의 표에 모으고, 명확한 대응 기준을 붙이도록 Claude에게 요청하세요.
| 심각도 | 의미 | 수정 시점 |
|---|---|---|
| 심각 | 악용 가능하며 영향이 큼(RCE, 인증 우회, 시크릿 유출) | 릴리스를 중단 — 지금 바로 패치 |
| 높음 | 악용 가능하지만 조건부 | 다음 스프린트 전에 패치 |
| 중간 | 조건부 위험 / 심층 방어 | 우선순위 백로그에 추가 |
| 낮음 | 영향이 작고 악용이 어려움 | 여유 있을 때 수정 |
| 정보 | 기록만, 취약점 아님 | 참고용 |
결과를 남기려면, 맨 위에 심각도 개수 요약("심각 2건, 높음 3건…")이 있는 Markdown 리포트를 내보내도록 Claude에게 요청하세요. 이 형식이면 이슈 트래커나 리드에게 보내는 리뷰에 그대로 들어가요. 감사를 정기적으로 한다면, 날짜가 붙은 리포트를 security/ 폴더에 보관하고(민감한 부분은 gitignore) 실행 결과를 비교해, 어떤 취약점이 다시 나타나거나 리뷰를 빠져나가는지 파악하세요.
실제 감사 세션: 발견 항목 읽는 법
여기가 대부분의 경쟁 글이 거의 완전히 건너뛰는 부분이에요. 기능 설명이 아니라 실제 발견 항목 표예요. 아래는 출력이 어떤 모습인지 보여 주기 위해 샘플 Node/TypeScript 프로젝트(API + 인증)에서 만든 예시 결과예요. 자신의 표를 얻으려면 본인 저장소에서 실행하세요.
| # | 심각도 | 카테고리 | file:line | 설명 | 권장 수정 |
|---|---|---|---|---|---|
| 1 | 심각 | SQL 인젝션 (A03) | api/users.ts:45 | 사용자 입력이 쿼리 문자열에 연결됨 | 매개변수화 쿼리 사용 |
| 2 | 높음 | 인증 결함 (A07) | auth/login.ts:12 | 로그인 엔드포인트에 레이트 리밋 없음 | IP별 + 계정별 레이트 리미터 추가 |
| 3 | 높음 | 데이터 노출 (A02) | config/db.ts:8 | DB 연결 문자열이 비밀번호와 함께 하드코딩됨 | 환경 변수로 이동 |
| 4 | 중간 | 접근 제어 (A01) | api/orders.ts:73 | 소유자 확인 없이 id로 주문에 접근(IDOR) | order.userId === session.userId 확인 |
| 5 | 낮음 | 보안 헤더 | server.ts:20 | CSP / HSTS 헤더 누락 | helmet 미들웨어 추가 |
읽는 법이에요. 심각도 순으로 위에서 아래로 진행하세요. 발견 항목 #1은 릴리스를 막아요. 여기엔 이견이 없어요. #2와 #3은 곧장 스프린트로 들어가요. #4(IDOR)는 자주 과소평가되지만 매우 흔한 접근 권한 상승 결함이에요. 각 행마다 정확한 file:line을 열고, 문제가 진짜인지(오탐이 아닌지) 확인한 뒤에야 패치하세요. 리포트만 믿고 무작정 패치하지 마세요.
패치 전 빠른 검증 요령이에요. Claude에게 되물어 보세요. "발견 항목 #4가 악용 가능함을 증명해 봐. 사용자 A가 사용자 B의 주문을 읽는 데 쓸 구체적인 요청을 작성해." 모델이 구체적인 악용 시나리오를 만들 수 있으면 진짜 취약점이에요. 얼버무리거나 비현실적인 조건을 가정해야 한다면 오탐일 가능성이 높으니 우선순위를 낮춰도 돼요. 이 적대적 단계는 노이즈를 걸러 내고, 추상적인 전문 용어 대신 구체적인 공격자의 언어로 팀의 나머지 구성원에게 위험을 설명하는 데도 도움이 돼요.
취약점 패치하기 — 실제 전/후
발견 항목 #1(심각, SQL 인젝션)을 예로 들게요. 틀리기 쉬운 코드는 이런 모습이에요.
// BEFORE - vulnerable to SQL injection
export async function getUser(id: string) {
const sql = "SELECT * FROM users WHERE id = '" + id + "'";
return db.query(sql); // the id input flows straight into the SQL string
}
그리고 매개변수화 쿼리로 패치한 후예요.
// AFTER - parameterized, the driver escapes it
export async function getUser(id: string) {
const sql = "SELECT * FROM users WHERE id = $1";
return db.query(sql, [id]); // the id value travels through the parameter channel, not the SQL string
}
왜 더 안전할까요. 두 번째 버전에서는 id가 더 이상 SQL 문자열에 연결되지 않고 별도의 매개변수 채널을 통해 전달돼요. 데이터베이스 드라이버는 그것을 명령이 아니라 데이터로 취급해요. 그래서 ' OR '1'='1 같은 문자열이 더 이상 쿼리의 구조를 바꿀 수 없어요.
자동화된 흐름에서는 미리 만들어진 스킬이 --fix를 제공해, 발견 항목을 하나씩 패치하고, 패치마다 회귀를 막는 가드 테스트를 실행한 뒤, 각 수정을 따로 커밋해요. 하지만 병합 전에는 항상 diff를 검토하세요. 그리고 패치가 테스트를 깨뜨리면 추측하지 말고, 대신 테스트를 깨뜨리는 수정을 AI로 디버깅해 진짜 원인을 찾으세요.
자동화: 모든 풀 리퀘스트에서 보안 리뷰
모든 PR을 자동으로 스캔하려면 공식 GitHub Action을 사용하세요. .github/workflows/security.yml 파일을 추가하세요.
name: Security Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: read
steps:
- uses: actions/checkout@v4
- uses: anthropics/claude-code-security-review@main
with:
claude-api-key: ${{ secrets.ANTHROPIC_API_KEY }}
이 Action은 발견 항목을 PR에 직접 코멘트하니, 리뷰어가 바로 확인할 수 있어요.
필수 유의 사항: Anthropic에 따르면 이 Action은 아직 프롬프트 인젝션에 대해 강화되어 있지 않아요. 신뢰할 수 있는 PR에서만 실행하고, Actions 설정에서 "모든 외부 기여자에 대해 승인 필요"를 켜세요. 그러지 않으면 낯선 사람의 악성 PR이 지시를 주입해 리뷰 과정을 속일 수 있어요.
방어 계층을 마무리하려면, Claude Code로 안전한 Git 워크플로와 결합하고, 코드가 원격에 도달하기 전에 시크릿을 스캔하는 pre-commit hook 추가도 고려하세요.
claude-security 플러그인으로 무료 심층 스캔
이건 무료 공식 멀티 에이전트 심층 스캔 계층으로, 한 번의 모델 호출로 하나의 diff를 리뷰하는 2단계의 /security-review와는 꽤 달라요. claude-security는 세션 안에서 에이전트 팀 전체를 돌려요. 하나는 저장소의 아키텍처를 매핑하고, 하나는 거기서 위협 모델을 구축하며, 한 그룹이 위협 모델에 맞춰 취약점을 탐색하고, 그런 다음 독립 에이전트가 검증한 뒤에야 최종 리포트에 실려요. 바로 이 독립 검증 단계가 단일 스캔 한 번보다 리포트를 더 믿을 만하게 만들어요.
요구 사항이에요. 유료 플랜의 Claude Code v2.1.154 이상, 에이전트를 오케스트레이션하기 위한 dynamic workflows(Pro에서는 /config의 "Dynamic workflows" 행에서 직접 켜야 해요), PATH에 python3로 사용 가능한 Python 3.9.6 이상(플러그인 도구는 표준 라이브러리만 쓰고, 추가로 설치하는 건 없어요), 그리고 변경 스캔과 패치 내보내기를 위한 Git(저장소 전체 스캔은 Git 없이도 동작해요)이에요.
설치하고 실행하세요.
/plugin install claude-security@claude-plugins-official
/claude-security # opens the menu: Scan codebase / Scan changes / Suggest patches
/claude-security scan my branch # or call a job directly in plain language
플러그인은 먼저 저장소를 읽은 뒤, 전체 스캔이나 특정 영역에 집중한 스캔을 각 옵션의 비용 견적과 함께 제시해요. 전체 스캔은 상당한 양의 토큰을 쓸 수 있고 끝날 때까지 Claude Code를 열어 둬야 하니, 큰 저장소에서 유용해요. 확인하기 전에는 아무것도 실행되지 않아요.
결과는 저장소 안의 타임스탬프가 붙은 CLAUDE-SECURITY-<timestamp>/ 디렉터리에 저장돼요. CLAUDE-SECURITY-RESULTS.md(읽기 쉬운 리포트로, 각 발견 항목에 F1 같은 ID와 심각도, 신뢰도, 악용 시나리오가 붙어요), 기계가 읽을 수 있는 .jsonl 버전, 그리고 리비전 스탬프가 담겨요. 리비전 스탬프는 어떤 커밋이 얼마나 철저히 스캔됐는지, 커밋되지 않은 변경이 포함됐는지를 정확히 기록하는 파일이라, 리포트가 항상 그것이 설명하는 바로 그 코드에 연결되게 해요. 이 디렉터리는 자체 .gitignore를 가지고 있어서, 실수로 git add해도 커밋에 딸려 들어가지 않아요.
패치하려면 /claude-security를 다시 실행하고 "Suggest patches"를 골라, 처리할 발견 항목을 선택하세요. 각 패치는 그것을 작성한 에이전트와 독립된 에이전트가 전달 전에 검토하고, 절대 자동으로 적용되지 않아요. 패치는 patches/F<n>.patch에 저장되고, 검토한 뒤 직접 git apply를 실행하면 돼요.
ak-security 스킬과 비교하면: 이 둘은 이제 정말로 겹치고, 그걸 피할 이유는 없어요. claude-security의 강점: 무료, 별도 에이전트의 독립 검증, 그리고 바로 git apply할 수 있는 패치. ak-security의 강점: STRIDE + OWASP + 4-페르소나 레드팀 + 시크릿 스캔 프레임워크를 하나의 깔끔한 명령에 담았고, 이미 AgentKit을 다른 데 쓰고 있다면 익숙하다는 점. 어느 쪽도 상대를 완전히 대체하진 않아요. 아직 AgentKit이 없다면 claude-security만으로도 무료로 시작하기에 충분히 강력해요.
고급 레드팀: 4가지 공격자 페르소나로 감사하기
STRIDE를 한 번 훑는 것도 좋지만, 진짜 취약점은 특정 공격자처럼 생각할 때 드러나는 경향이 있어요. 4가지 다른 관점에서 감사를 실행하면 얻는 정보가 확실히 늘어나요.
- 보안 공격자 — 인증 우회, 인젝션 변종, IDOR를 찾아요. "일반 계정으로 로그인하면 다른 사람의 데이터를 읽거나 편집할 수 있을까?"
- 공급망 — 알려진 CVE가 있는 의존성, 오염된 CI/CD, 패키지의 타이포스쿼팅.
- 내부자 — 수평/수직 권한 상승, 대량 데이터 내보내기, 내부 계정 권한의 남용.
- 인프라 — SSRF, 환경 변수를 통한 시크릿 유출, 잘못 설정된 컨테이너/네트워크 설정.
4가지 페르소나를 전부 손으로 쓰는 건 많은 작업이에요. 각 관점마다 고유한 프롬프트 세트와 체크리스트가 필요하니까요. 바로 이 지점에서, 미리 만들어진 구조화된 위협 모델링이 프롬프트 작성에 드는 몇 시간을 아껴 줘요.
4가지 페르소나 실행은 정기적인 심층 스캔 패스예요. 다음 감사를 기다리지 않고 Claude가 코드를 작성하는 순간 문제를 잡는 지속적 계층은 보안 모범 사례 글의 security-guidance 플러그인을 참고하세요. 이 두 계층은 서로 보완하지, 대체하지 않아요.
미리 만들어진 ak-security 스킬 사용하기(프롬프트 작성 건너뛰기)
STRIDE 프롬프트, 4가지 레드팀 페르소나, --fix 흐름을 매번 손으로 쓰는 대신, AgentKit 번들 — 현재 $149(원래 $198)이 그 모든 것을 ak-security 스킬에 담았어요(Engineer Kit의 일부, $99. 사이트에는 환불 보장과 평생 업데이트가 적혀 있고, 반복 결제 언급은 없어요). 사용법이에요.
/ak:security src/api/**/*.ts # scan a narrow scope
/ak:security full --red-team --fix # whole repo, 4 personas, auto-patch
이건 STRIDE + OWASP A01~A10, 스택을 고려한 의존성 감사, 시크릿 탐지, 심각도 점수, 그리고 가드 테스트를 곁들인 순차 패치를 묶어요. 자신의 필요와 견줘 보려면 Engineer Kit에 어떤 보안 스킬이 들어 있는지를 참고하세요.
솔직히 말하면: 이 스킬은 이제 위의 무료 claude-security 플러그인과 정말로 겹쳐요. 네이티브 플러그인 이상으로 "AI를 침투 테스터로 바꿔 줄" 거라고 기대하지 마세요. ak-security의 강점: STRIDE + OWASP + 4-페르소나 레드팀 + 시크릿/의존성 스캔을 하나의 깔끔한 명령에 묶었고, 이미 다른 데서 AgentKit을 쓴다면 익숙하다는 점. claude-security의 강점: 별도 에이전트의 독립 검증과 바로 git apply할 수 있는 패치를 무료로 제공한다는 점. 어느 쪽도 상대를 완전히 대체하진 않아요. 이 키트는 "본질적으로 더 강력해서"가 아니라, 이미 AgentKit이 있고 하나의 생태계에 머물고 싶을 때 가치가 있어요.
혼동을 피하기 위한 한 줄: 여기서 AgentKit은 Claude Code용 키트(agentkit.best, ak CLI)이지, OpenAI의 AgentKit(Agent Builder/ChatKit)이 아니에요.
진짜 한계, 그리고 AI를 믿으면 안 될 때
보안은 YMYL 영역에 가까워서, 과장보다 한계에 대해 솔직한 것이 더 중요해요.
- 프롬프트 인젝션. 낯선 코드를 무작정 감사하지 마세요. 신뢰할 수 없는 코드는 취약점을 무시하게 하거나 의도하지 않은 명령을 실행하도록 모델을 몰아가는 지시를 주입할 수 있어요.
- 오탐과 미탐. 기본적으로
/security-review는 실증 가능한 영향에 연결할 수 없는 DoS, 레이트 리밋, 리소스 고갈, 오픈 리다이렉트, 입력 검증 유형을 걸러 내요. 그래서 "스캔 결과 깨끗함"이 "완벽하게 안전함"을 뜻하지는 않아요. 반대로 AI는 여전히 미묘한 비즈니스 로직 결함(경쟁 상태, TOCTOU, 복잡한 인가 로직)을 놓쳐요. - 전문가의 침투 테스트를 대체하지 않아요. 이건 문제를 일찍, 저렴하게 잡는 시프트 레프트 도구지, 보안 인증이 아니에요. 중요한 시스템에는 여전히 SAST/DAST와 수동 침투 테스트가 필요해요.
- 토큰 비용. 큰 저장소를 스캔하면 상당한 토큰과 시간이 들어요. 매번
full을 실행하지 말고 민감한 디렉터리로 범위를 좁히세요.
자주 묻는 질문(FAQ)
/security-review 명령은 무료인가요?
명령과 GitHub Action은 Anthropic의 오픈 소스라, 사용하는 데 별도 요금은 없어요. 실제 비용은 가입한 플랜(Pro, Max, 또는 토큰당 과금 API)에서의 Claude Code 토큰/사용량이에요.
Claude Code 감사는 전통적인 SAST와 어떻게 다른가요?
SAST는 대부분 고정된 패턴과 규칙을 대조해서 노이즈가 많은 편이에요. Claude Code는 시맨틱과 데이터 흐름을 읽기 때문에, 패턴 대조가 놓치는 문맥 의존적 문제(IDOR나 인가 로직 등)를 잡아내요. 그 대신 덜 결정적이고 사람의 확인이 필요해요.
AI가 전문가의 침투 테스트를 대체할 수 있나요?
아니요. 이건 문제를 일찍, 저렴하게 잡는 시프트 레프트 계층이지 인증이 아니에요. 중요한 시스템에는 파이프라인의 SAST/DAST와 함께 여전히 수동 침투 테스트가 필요해요.
다른 사람의 코드를 감사해도 안전한가요?
프롬프트 인젝션 위험이 있어요. 신뢰할 수 없는 코드는 모델을 오도하는 지시를 주입할 수 있어요. 신뢰할 수 있는 코드만 감사하거나, 외부 기여자에 대해 수동 승인을 켠 격리 환경에서 실행하세요.
감사에는 토큰과 시간이 얼마나 드나요?
범위에 따라 달라요. 작은 diff 리뷰는 몇 분과 적은 토큰이면 되지만, 큰 저장소 스캔은 훨씬 많은 토큰이 들고 눈에 띄게 오래 걸려요. 아끼려면 민감한 디렉터리로 범위를 좁히세요.
ak-security 스킬은 직접 프롬프트를 쓰는 것과 어떻게 다른가요?
이건 STRIDE + OWASP, 4가지 레드팀 페르소나, 그리고 가드 테스트를 거친 --fix 흐름을 하나의 명령에 담아 프롬프트 작성 수고를 덜어 줘요. 탐지 능력 면에서는 좋은 프롬프트를 직접 쓰는 것과 대체로 비슷해요. 차이는 편의성과 일관성이지, "본질적으로 더 강력함"이 아니에요.
claude-security 플러그인은 ak-security 스킬과 어떻게 다른가요?
이 둘은 이제 정말로 겹쳐요. claude-security는 무료이고, 독립 검증 단계를 갖춘 멀티 에이전트로 실행되며, 바로 git apply할 수 있는 패치를 내보내요. ak-security는 유료(AgentKit의 일부)이고, 미리 만들어진 STRIDE + OWASP + 4-페르소나 + 시크릿/의존성 스캔 프레임워크를 하나의 명령에 담았어요. 어느 쪽도 상대를 완전히 대체하진 않아요. 이미 AgentKit이 있는지, 그리고 무료와 가장 콤팩트한 옵션 중 무엇을 원하는지로 고르세요.
security-guidance 플러그인이 정기 감사를 대체하나요?
아니요. security-guidance는 Claude가 코드를 작성하는 순간 동작하는 지속적인 포인트 체크 계층이에요(즉시 패턴 대조, 턴 종료 시 백그라운드 리뷰, 커밋/푸시 시 심층 리뷰). 문제를 일찍 잡지만, claude-security나 위의 6단계 워크플로 같은 포괄적이고 정기적이거나 온디맨드인 감사를 대체하지는 않아요. 두 계층은 서로 보완해요.
결론과 다음 단계
Claude Code 보안 감사는 전문가를 대체하진 않지만, 취약점 사냥을 저렴하고 빠른 습관으로 바꿔 줘요. 릴리스마다 /security-review를 실행하고, 정기적으로 STRIDE 스캔을 하거나 무료 심층 스캔으로 claude-security를 돌리고, 작성하는 동안 지속적으로 리뷰하도록 security-guidance를 켜고, 신뢰할 수 있는 PR에서 자동화하세요. 다음으로 포괄적인 AI 코드 리뷰로 넓히고, Claude Code 보안 모범 사례로 토대를 다지세요. 그리고 잊지 마세요. 릴리스마다 하는 정기 감사가, 한 번 하고 잊어버리는 심층 스캔보다 나아요.
지금 바로 더 강력한 Claude Code를 원하세요? Engineer Kit($99, 환불 보장과 평생 업데이트 포함)은 STRIDE, OWASP, 4-페르소나 레드팀을 갖춘 ak-security 스킬을 제공해요. 전담 보안 엔지니어가 없는 소규모 팀에 잘 맞아요.