Skip to main content

보안 주의사항

Claude Code는 파일 시스템 접근, 명령어 실행, 외부 서비스 연동 등 강력한 권한을 갖습니다. 이 힘을 안전하게 사용하기 위한 보안 원칙을 이해해야 합니다.

보안 아키텍처

Claude Code는 권한 기반 아키텍처로 설계되었습니다:

  • 읽기 전용 기본값: 기본적으로 읽기 전용 권한만 가짐
  • 명시적 승인: 파일 수정, 명령 실행 등은 사용자 승인 필요
  • Bash 샌드박스: 파일시스템과 네트워크를 격리하는 샌드박스 (/sandbox로 활성화)
  • 쓰기 범위 제한: 시작 디렉토리와 하위만 쓰기 가능, 상위 디렉토리 수정 불가
  • 프롬프트 피로 방지: 자주 사용하는 안전한 명령은 사용자/프로젝트/조직별 허용 목록 관리
  • Accept Edits 모드: 변경사항을 개별 승인 대신 모아서 일괄 검토/승인 가능
  • 자격 증명 암호화: API 키 등 자격 증명은 로컬에서 암호화하여 저장

핵심 위험 요소

1. 프롬프트 인젝션

외부 데이터에 악성 지시가 포함되어 Claude의 동작을 조작하려는 공격입니다.

방어 메커니즘:

  • 권한 시스템: 민감한 작업은 명시적 승인 필요
  • 컨텍스트 인식 분석: 전체 요청을 분석하여 잠재적 유해 지시 감지
  • 입력 위생처리: 명령 인젝션 방지를 위한 입력 처리
  • 명령어 차단 목록: curl, wget 등 웹 콘텐츠를 가져오는 명령은 기본 차단
  • 네트워크 요청 승인: 네트워크 요청을 하는 도구는 기본적으로 승인 필요
  • 격리된 컨텍스트: WebFetch는 별도 컨텍스트 윈도우에서 실행
  • 명령 인젝션 감지: 의심스러운 Bash 명령은 허용 목록에 있더라도 수동 승인 필요
  • Fail-closed 매칭: 매칭되지 않는 명령은 수동 승인으로 기본 처리

모범 사례:

  1. 제안된 명령을 승인 전에 검토
  2. 신뢰할 수 없는 콘텐츠를 Claude에 직접 파이프하지 않기
  3. 중요 파일 변경 제안은 반드시 확인
  4. 외부 웹 서비스와 상호작용 시 VM 사용 고려
  5. 의심스러운 동작은 /bug로 신고
알려진 취약점 (2025-2026)

CVE-2025-59536과 CVE-2026-21852는 악성 프로젝트 설정 파일을 통해 원격 코드 실행(RCE)과 API 키 탈취가 가능한 취약점입니다. 신뢰할 수 없는 리포지토리를 클론하여 Claude Code로 작업할 때 각별히 주의하세요. .claude/ 디렉토리나 CLAUDE.md 파일에 의심스러운 내용이 있는지 먼저 확인하는 것이 좋습니다. Claude Code를 항상 최신 버전으로 유지하세요.

2. 과도한 권한 부여

// 나쁜 예: 모든 것을 허용
{
"permissions": {
"allow": ["Bash(*)"]
}
}

// 좋은 예: 필요한 것만 허용
{
"permissions": {
"allow": [
"Read(*)",
"Edit(src/**)",
"Bash(npm test)",
"Bash(npm run lint)"
],
"deny": [
"Bash(rm *)",
"Bash(git push *)",
"Bash(curl *)"
]
}
}

3. 민감 정보 노출

# 위험: .env 파일을 통째로 컨텍스트에 포함
cat .env | claude -p "이 설정 파일 분석해줘"

# 안전: 민감 필드 제거 후 전달
env | grep -v "KEY\|TOKEN\|SECRET\|PASSWORD" | claude -p "설정 검토해줘"
cat api-response.json | jq 'del(.token, .api_key)' | claude -p "분석해줘"

4. 신뢰할 수 없는 MCP 서버

MCP 서버는 Claude를 통해 데이터에 접근합니다. 허용된 MCP 서버 목록은 소스 코드의 설정 파일에 정의되며, 직접 작성하거나 신뢰할 수 있는 제공자의 서버만 사용하세요. Anthropic은 서드파티 MCP 서버를 관리하거나 감사하지 않습니다.

5. Windows WebDAV 리스크

Windows 사용자 주의

Windows에서 Claude Code를 실행할 때 WebDAV를 활성화하거나 \\* 같은 WebDAV 하위 디렉토리를 포함할 수 있는 경로에 접근을 허용하지 마세요. WebDAV는 Microsoft에서 보안 위험으로 인해 더 이상 사용을 권장하지 않습니다. WebDAV 활성화 시 Claude Code가 원격 호스트에 네트워크 요청을 트리거하여 권한 시스템을 우회할 수 있습니다.

클라우드 실행 보안

Claude Code on the Web(클라우드 실행) 사용 시 추가 보안 제어:

보안 제어설명
격리된 VM각 클라우드 세션은 격리된 Anthropic 관리 VM에서 실행
네트워크 접근 제어기본 제한, 비활성화 또는 특정 도메인만 허용 가능
자격 증명 보호보안 프록시를 통한 인증, 샌드박스 내 스코프 제한 자격 증명 사용
브랜치 제한git push가 현재 작업 브랜치에만 제한
감사 로깅모든 작업이 준수 및 감사 목적으로 기록
자동 정리세션 완료 후 클라우드 환경 자동 종료

Remote Control 세션은 다릅니다. 웹 인터페이스가 로컬 머신의 Claude Code 프로세스에 연결되어 모든 코드 실행과 파일 접근이 로컬에서 이루어집니다. 클라우드 VM이나 샌드박싱이 관여하지 않으며, TLS를 통해 데이터가 전송됩니다.

.gitignore 필수 설정

# Claude Code 로컬 설정 (API 키가 포함될 수 있음)
.claude/settings.local.json

# 로컬 전용 설정
.env
.env.local
.env.*.local
*.pem
*.key

프로젝트 레벨 .claude/settings.json은 팀 공유 가능하지만, API 키나 개인 정보는 절대 포함하지 마세요.

조직 레벨 보안 정책

관리형 설정 (Managed Settings)

Enterprise/Team에서는 관리형 설정으로 조직 전체 보안 표준을 강제합니다:

// 관리형 정책 예시
{
"permissions": {
"deny": [
"Bash(rm -rf *)",
"Bash(git push --force *)",
"Edit(*.env)"
]
},
"disableBypassPermissionsMode": "disable"
}

관리형 설정은 모든 하위 설정보다 우선합니다.

CLAUDE.md에 보안 정책 명시

## 보안 정책

### 절대 금지
- 프로덕션 데이터베이스에 직접 연결하여 Claude 사용
- 고객 PII(개인식별정보)가 포함된 파일을 컨텍스트에 포함
- API 키, 비밀번호를 코드에 하드코딩
- 검토 없이 Claude가 생성한 코드를 프로덕션에 배포

### 권장 사항
- 로컬 개발 환경 또는 스테이징 환경에서 작업
- 보안 관련 코드는 보안 팀 검토 필수
- 대량 자동화 작업 전 테스트 실행으로 동작 검증

팀 보안 모범 사례

  • 관리형 설정으로 조직 표준 강제
  • 승인된 권한 설정을 버전 관리로 공유
  • 팀원에게 보안 모범 사례 교육
  • OpenTelemetry 메트릭으로 Claude Code 사용량 모니터링
  • ConfigChange Hook으로 세션 중 설정 변경 감사 또는 차단

감사 로그

Hook으로 중요한 작업의 감사 로그를 남기세요:

{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "echo \"[$(date -u '+%Y-%m-%dT%H:%M:%SZ')] USER:$(whoami) CMD:$CLAUDE_TOOL_INPUT_COMMAND\" >> ~/.claude-audit.log"
}
]
}
]
}
}

서브에이전트 실행도 SubagentStart/SubagentStop Hook으로 감사할 수 있습니다.

Claude Code Security Tool

2026년 2월 Anthropic이 발표한 코드 보안 분석 도구입니다. 기존 SAST(정적 분석) 도구와 달리 패턴 매칭이 아닌 추론 기반으로 취약점을 찾습니다.

항목설명
엔진Claude Opus 4.6 기반 추론 분석
성과오픈소스 프로젝트에서 수십 년간 미발견된 500+건 취약점 발견
오탐 방지다단계 검증(발견 → 분석 → 재검증)으로 오탐 필터링
강점비즈니스 로직 결함, 복잡한 조건부 취약점 등 기존 도구가 놓치는 영역
대상Enterprise/Team 고객 대상 리서치 프리뷰

기존 SAST 도구와 병행 사용하면 코드베이스의 보안 수준을 크게 높일 수 있습니다.

보안 체크리스트

Claude Code 도입 전 확인:

  • API 키는 환경변수로 관리 (코드에 하드코딩 금지)
  • settings.json에 최소 권한만 부여
  • .gitignore에 Claude 관련 민감 파일 추가
  • 팀 보안 정책을 CLAUDE.md에 명시
  • MCP 서버 소스 코드 검토 완료
  • CI 환경에서 --allowedTools로 도구 제한
  • 감사 로그 설정 (필요시)
  • Windows에서 WebDAV 비활성화 확인
  • /permissions로 권한 설정 정기 감사
  • 민감 코드 작업 시 devcontainer 사용 고려
보안 vs 생산성

보안 설정이 너무 엄격하면 생산성이 떨어집니다. deny 규칙은 실제로 위험한 명령(rm, 배포, 외부 전송)에만 적용하고, 일반적인 개발 도구는 허용해 생산성을 유지하세요.

보안 취약점 신고

Claude Code에서 보안 취약점을 발견하면 공개하지 말고 Anthropic의 HackerOne 프로그램을 통해 신고하세요. 상세한 재현 단계를 포함하고, 공개 전 Anthropic이 문제를 해결할 시간을 주세요.


다음 챕터: Agent SDK 기초 →