spoonai
TOPClaude CodeAnthropic소스 코드 유출

Claude Code 소스 코드 유출 2026 — npm 소스맵 실수로 512,000줄 전체 노출

Anthropic이 npm 패키지에 소스맵 59.8MB를 실수로 포함하면서 Claude Code의 TypeScript 소스 1,900개 파일이 전체 공개됐다. 유출 경위, 발견된 내부 기능, 아키텍처를 분석한다.

공유
Claude Code npm 소스맵 유출 분석 2026
출처: BleepingComputer

소스맵(source map)은 압축된 JavaScript를 원본 소스 코드로 역추적할 수 있게 해주는 디버깅용 파일이다. 2026년 3월 31일, Anthropicnpm 레지스트리에 배포한 @anthropic-ai/claude-code@2.1.88 패키지에 이 소스맵 59.8MB가 그대로 포함된 채 공개됐다. TypeScript 원본 소스 1,900개 파일, 512,000줄 전체가 누구나 npm install 한 번으로 열람 가능한 상태가 된 것이다.

이번 사건은 지난주 Claude Mythos 유출에 이어 Anthropic의 두 번째 대형 보안 실수다. Mythos 유출이 CMS 설정 오류로 인한 내부 문서 노출이었다면, 이번에는 빌드 파이프라인의 .npmignore 설정 한 줄이 원인이었다.

유출 경위 — .npmignore 한 줄의 대가

npm 패키지를 배포할 때 .npmignore 파일은 레지스트리에 올리지 않을 파일 목록을 정의한다. BleepingComputer의 보도에 따르면, Anthropic의 빌드 시스템은 프로덕션 배포 시 소스맵 파일(.map 확장자)을 제외하도록 설정되어 있었다. 그런데 2.1.88 버전에서 이 규칙이 누락됐다. 결과적으로 10.5MB짜리 번들 cli.js에 대한 소스맵이 패키지에 포함됐고, 이 소스맵에는 번들링 전의 원본 TypeScript 소스 전체가 인라인으로 임베딩되어 있었다.

발견은 빠르게 이뤄졌다. npm 패키지 크기 모니터링 봇이 평소 대비 6배 이상 커진 패키지 사이즈를 감지했고, 커뮤니티 개발자들이 소스맵을 디코딩하기 시작했다. The Hacker News에 따르면, 유출 후 24시간 이내에 GitHub에서 41,500회 이상 포크가 발생했다. Anthropic은 즉시 해당 버전을 npm에서 제거하고 패치 버전을 배포했지만, 이미 소스는 광범위하게 퍼진 뒤였다. Anthropic은 GitHub에 8,100개 리포지토리에 대한 DMCA 테이크다운 통보를 보냈다.

이 사건이 단순한 실수 이상의 의미를 갖는 이유가 있다. Claude Code는 사용자의 터미널에서 직접 실행되는 AI 에이전트다. 소스 코드가 공개됐다는 것은 이 에이전트가 사용자의 시스템에서 정확히 무엇을 할 수 있고, 어떤 데이터에 접근하며, 어떤 제한을 갖는지가 모두 드러났다는 뜻이다.

발견된 내부 기능 — KAIROS, 안티 디스틸레이션, Undercover

유출된 소스에서 가장 주목받은 것은 아직 공개되지 않은 내부 기능 세 가지다.

첫 번째는 KAIROS(Knowledge-Aware Intelligent Reasoning and Operation System)다. Fortune의 보도에 따르면, KAIROS는 24시간 동안 자율적으로 작동하는 에이전트 시스템이다. 사용자의 명시적 지시 없이도 코드 저장소를 모니터링하고, 이슈를 분석하고, PR을 생성할 수 있도록 설계되어 있다. 소스 코드에는 KAIROS의 스케줄링 로직, 태스크 큐 관리, 그리고 인간 승인 없이 실행할 수 있는 작업의 범위를 정의하는 권한 체계가 포함되어 있었다.

두 번째는 안티 디스틸레이션(anti-distillation) 메커니즘이다. 이것은 경쟁사가 Claude의 출력을 학습 데이터로 사용해 자사 모델을 훈련하는 것, 즉 디스틸레이션(distillation, 지식 증류)을 방지하기 위한 방어 장치다. 구체적인 구현 방식은 위조된 도구 정의(fake tool definitions)를 응답에 주입하는 것이다. Alex Kim의 기술 분석에 따르면, 이 위조 정의는 Claude의 정상적인 작동에는 영향을 미치지 않지만, 이 출력을 그대로 학습 데이터로 사용하면 경쟁 모델의 도구 사용 능력에 오류를 유발하도록 설계되어 있다.

세 번째는 Undercover 모드다. 이 기능은 Claude Code의 내부 코드명, 시스템 프롬프트 구조, 모델 식별자 등이 사용자에게 노출되지 않도록 억제하는 메커니즘이다. 예를 들어 사용자가 "너의 모델 이름이 뭐야?"라고 물었을 때 내부 코드명 대신 공식 명칭만 응답하도록 하는 필터링 로직이 포함되어 있었다. 유출된 코드에서는 모델 버전 코드명도 확인됐다. Capybara는 Claude 4.6, Fennec은 Opus 4.6에 대응하며, Numbat이라는 아직 발표되지 않은 모델의 코드명도 포함되어 있었다.

아키텍처 분석 — TypeScript, React Ink, 그리고 샌드박스

기능뿐 아니라 Claude Code의 전체 기술 아키텍처도 드러났다. Layer5의 분석TechRadar의 보도를 종합하면 다음과 같은 구조가 확인된다.

Claude Code의 UI 레이어는 ReactInk로 구축되어 있다. Ink는 React 컴포넌트를 터미널에 렌더링할 수 있게 해주는 라이브러리이고, 레이아웃 엔진으로는 Yoga(Flexbox 기반)를 사용한다. 런타임은 Bun이며, 최종 번들은 10.5MB짜리 단일 cli.js 파일로 출력된다.

보안 측면에서 주목할 부분은 샌드박스 구현이다. macOS에서는 Seatbelt(Apple의 커널 수준 샌드박싱 프레임워크)를, Linux에서는 bubblewrap(네임스페이스 기반 컨테이너 격리 도구)를 사용한다. 파일 시스템 접근, 네트워크 요청, 프로세스 생성에 대한 세밀한 권한 제어가 코드 레벨에서 구현되어 있었다.

서브에이전트 시스템도 흥미로운 발견이다. Claude Code는 복잡한 작업을 분해해 여러 하위 에이전트에게 위임할 수 있는 팀 시스템을 내장하고 있었다. 각 서브에이전트는 독립적인 컨텍스트와 도구 접근 권한을 가지며, MCP(Model Context Protocol) 통합을 통해 외부 서비스와 연동된다. 플러그인/스킬 시스템도 확인됐는데, 이는 사용자가 Claude Code의 기능을 확장할 수 있는 모듈식 구조를 제공한다.

시사점 — 빌드 파이프라인 보안과 AI 에이전트 투명성

이 사건에서 핵심은 두 가지다.

하나는 빌드 파이프라인 보안의 중요성이다. .npmignore 파일 하나의 설정 오류가 512,000줄의 소스 코드를 노출시켰다. npm 생태계에서 소스맵 포함 사고는 이번이 처음이 아니지만, 이 규모는 전례가 없다. Axios의 보도에 따르면, Anthropic은 사후 대응으로 8,100개 DMCA 테이크다운을 발송했지만, 이미 퍼진 코드를 완전히 회수하는 것은 사실상 불가능하다. CI/CD 파이프라인에서 패키지 크기 검증, 소스맵 포함 여부 자동 검사, 배포 전 아티팩트 감사가 필수적이라는 교훈이다.

다른 하나는 AI 에이전트의 투명성 문제다. KAIROS 같은 24시간 자율 에이전트, 안티 디스틸레이션의 위조 도구 주입, Undercover 모드의 정보 억제 — 이런 기능들이 문서화 없이 사용자의 시스템에서 실행되고 있었다는 사실은 신뢰에 직접적인 영향을 미친다. Anthropic이 안전을 핵심 가치로 내세우는 회사라는 점에서 더욱 그렇다.

유출된 코드는 동시에 Claude Code의 엔지니어링 수준이 상당히 높다는 것도 보여준다. 커널 수준 샌드박싱, 세분화된 권한 체계, 모듈식 아키텍처는 AI 에이전트 보안에 진지하게 투자하고 있다는 증거다. 문제는 이런 투자가 빌드 배포라는 기본적인 단계에서 무너졌다는 역설이다.

참고 자료

이 기사의 분석은 다음 출처를 기반으로 작성됐다.

BleepingComputer, The Hacker News, TechRadar, Axios, Fortune, Layer5, Alex Kim


매일 아침 AI 뉴스를 이메일로 받아보세요. spoonai 뉴스레터 구독

무료 뉴스레터

AI 트렌드를 앞서가세요

매일 아침, 엄선된 AI 뉴스를 받아보세요. 스팸 없음. 언제든 구독 취소.

매일 30개+ 소스 분석 · 한국어/영어 이중 언어광고 없음 · 1-클릭 해지