Claude Code 소스 유출: npm 소스맵이 드러낸 내부 구조와 AI 투명성 논쟁
Claude Code의 npm 소스맵 유출 경위와 Anti-Distillation·욕설 감지·Undercover Mode 등 내부 메커니즘, 보안·투명성 시사점과 OpenClaude 프로젝트를 정리한다
2026-08-14 · 최초 발행 2026-04-03
2026년 3월 31일, Anthropic의 AI 코딩 도구 Claude Code의 전체 소스 코드가 npm 패키지 레지스트리에 포함된 소스맵 파일을 통해 유출되었다. 약 1,900개의 TypeScript 파일과 51만 2천 줄 이상의 코드가 공개되면서, 가짜 도구 호출(fake tool calls), 욕설 감지 정규식, 은폐 모드(undercover mode) 등 내부 동작 메커니즘이 AI 커뮤니티에서 큰 화제를 모으고 있다.
소스맵 하나가 어떻게 새어나갔나
2026년 3월 31일, 보안 연구자 Chaofan Shou가 npm 레지스트리에 게시된 @anthropic-ai/claude-code 패키지 버전 2.1.88에서 59.8MB 크기의 JavaScript 소스맵 파일(.map)을 발견했다. 이 파일은 내부 디버깅용으로 작성된 것으로, 프로덕션 빌드에 포함되어서는 안 되는 파일이었다.
유출의 원인은 Bun 번들러의 기본 설정에 있었다. Bun은 기본적으로 소스맵을 생성하며, 이를 비활성화하려면 명시적 설정이 필요하다. 누군가가 .npmignore에 *.map을 추가하지 않았거나, 번들러 설정에서 소스맵 생성을 끄지 않은 것이 원인으로 지목됐다.
cli.js.map (59.8MB)
├── ~1,900 TypeScript 소스 파일
├── 512,000+ 줄의 코드
└── 내부 구현 전체 노출
Anthropic은 "민감한 고객 데이터나 자격 증명은 관련되거나 노출되지 않았다"며, "보안 침해가 아닌 릴리스 패키징 문제로 인적 오류에 의한 것"이라고 밝혔다. 해당 버전은 npm에서 더 이상 다운로드할 수 없다.
내부에서 무슨 일이 벌어지고 있었나
유출된 소스 코드에서 드러난 핵심 내부 메커니즘은 다음과 같다.
ANTI_DISTILLATION_CC라는 기능 플래그가 활성화되면 Claude Code는 API 요청에 anti_distillation: ['fake_tools'] 파라미터를 포함한다. 이 기능은 시스템 프롬프트에 가짜 도구 정의를 자동으로 주입해, 경쟁사가 API 트래픽을 가로채 자사 모델을 훈련할 경우 훈련 데이터를 오염시키는 역할을 한다. 이는 모델 지식 보호를 위한 독창적인 방어 전략으로 평가되지만, 이러한 '속임수' 기법이 사용자에게 알리지 않고 적용된다는 점에서 투명성 논란이 제기됐다.
userPromptKeywords.ts 파일에는 사용자의 좌절감을 감지하는 정규식 패턴이 포함돼 있었다. "wtf", "wth", "ffs", "omfg" 등의 표현과 다양한 비속어를 탐지해 사용자의 감정 상태를 추적한다. 이 접근 방식은 모든 메시지에 대해 추론을 실행하는 것보다 정규식이 더 빠르고 비용이 저렴하며 신뢰성이 높기 때문에 채택됐다. 그러나 사용자의 감정 데이터를 수집하고 로깅한다는 사실이 공개되면서 프라이버시 우려가 확산됐다.
undercover.ts 파일에 구현된 Undercover Mode(은폐 모드)는 Claude Code가 Anthropic 내부가 아닌 외부 리포지토리에서 사용될 때 Anthropic 내부 흔적을 모두 제거한다. "Capybara", "Tengu" 같은 내부 코드네임, 내부 Slack 채널명, 리포지토리 이름, 심지어 "Claude Code"라는 문구 자체도 언급하지 않도록 모델에 지시한다.
유출 코드에서 아직 공개되지 않은 자율 에이전트 모드 KAIROS의 존재도 확인됐다. 이는 Claude Code의 향후 개발 방향이 단순 코딩 도우미를 넘어 자율적 작업 수행 에이전트로 확장될 것임을 시사한다.
보안 위험과 투명성 논쟁
이번 유출 사건은 여러 측면에서 중요한 논의를 촉발했다. 보안 위험 측면에서는 내부 구조가 공개됨에 따라 공격자가 Claude Code를 속여 백그라운드 명령을 실행하거나 데이터를 유출하도록 특별히 설계된 악성 리포지토리를 만들 수 있는 길이 열렸다. 사용자가 신뢰 프롬프트를 보기 전에 공격이 이뤄질 가능성이 있다.
AI 투명성 측면에서는 내부 메커니즘의 공개가 AI 도구가 사용자 모르게 어떤 작업을 수행하는지에 대한 근본적 질문을 던진다. 가짜 도구 주입, 감정 추적, 은폐 모드 등의 존재는 AI 도구의 투명한 운영에 대한 업계 기준 마련의 필요성을 보여준다.
유출을 계기로 등장한 OpenClaude
이번 유출을 계기로 GitHub에서 OpenClaude라는 오픈소스 프로젝트가 등장했다. 이 프로젝트는 Claude Code의 핵심 기능을 투명하게 재구현하는 것을 목표로 하며, 사용자가 모든 내부 동작을 확인하고 제어할 수 있도록 설계됐다. OpenClaude의 주요 철학은 모든 코드가 오픈소스로 공개되는 완전한 투명성, 감정 추적·증류 방지 등 모든 기능의 활성/비활성 제어권을 부여하는 사용자 제어, 기능 결정이 커뮤니티 합의를 통해 이뤄지는 커뮤니티 주도다.
Claude Code 소스 유출 사건은 AI 도구의 내부 동작 투명성에 대한 업계 전반의 논의를 촉발한 중요한 사건이다. 가짜 도구 주입, 욕설 감지, 은폐 모드 등 공개된 내부 메커니즘은 기술적으로 흥미로운 동시에 윤리적 질문을 제기한다. 이번 사건을 계기로 AI 도구 제공 업체가 사용자에게 내부 동작을 어디까지 공개해야 하는지에 대한 기준이 마련되기를 기대한다.
Sources
- Claude Code 소스 유출 종합 분석 - PyTorch Korea
- OpenClaude GitHub Repository
- The Claude Code Source Leak: fake tools, frustration regexes, undercover mode - Alex Kim
- Claude Code Source Leaked via npm Packaging Error - The Hacker News
- Anthropic Accidentally Leaked Claude Code Source - Decrypt
- Claude Code's Entire Source Code Leaked via npm Source Maps - DEV Community