🔓인사이트
클로드 소스코드 유출 사건: npm 패키지 소스맵 실수로 전체 코드 노출
Anthropic의 Claude Code CLI 소스코드가 npm 패키지에 포함된 .map 파일을 통해 완전히 유출된 사건
↗ 원본 링크#Anthropic#보안#소스코드유출#Claude#npm
📅 사건 개요
2025년 3월 31일, Anthropic의 Claude Code CLI 전체 소스코드가 npm 패키지를 통해 유출되는 사건이 발생했습니다.
🔍 유출 원인
소스맵(.map) 파일 배포 실수
▸Claude Code는 Bun 번들러를 사용하여 빌드
▸Bun은 기본적으로 소스맵 파일을 생성
▸프로덕션 빌드에서 소스맵 생성을 비활성화하지 않음
▸결과적으로 .map 파일이 npm 패키지에 포함되어 배포
소스맵은 압축된 코드를 원본 코드로 매핑해주는 디버깅 도구입니다. 개발 중에는 유용하지만, 프로덕션 환경에서는 반드시 제거해야 합니다.
📊 유출 규모
총 51만 2천 줄 이상의 TypeScript 코드
▸파일 수: 1,900개
▸GitHub 아카이브: 수 시간 내 생성
▸좋아요: 1,100개 이상
▸포크: 1,900개 이상
📦 주요 유출 내용
핵심 시스템
▸
툴 시스템: 약 40개의 권한 기반 도구 (2만 9천 줄)
▸
쿼리 엔진: 모든 LLM API 호출 처리 (4만 6천 줄)
▸
멀티에이전트 오케스트레이션: 여러 AI 에이전트 조율
▸
IDE 브릿지 시스템: 개발 환경 연동
🎮 숨겨진 기능들
1. "Buddy" - 다마고치 스타일 반려동물
▸컴파일 타임 피처 플래그로 숨겨진 기능
▸Claude Code 내부에 캐릭터 부화 및 육성 미니게임
▸사용자에게는 공개되지 않은 이스터에그
2. "Undercover Mode" - 내부 정보 보호 모드
▸Anthropic 직원용 특수 모드
▸오픈소스 프로젝트 작업 시 민감 정보 노출 방지
▸내부 코드명이나 미공개 모델명이 커밋 메시지에 포함되지 않도록 필터링
▸
아이러니: 유출을 막으려는 시스템을 만들어두고 정작 소스코드 전체를 유출
💡 교훈
이 사건은 다음과 같은 중요한 교훈을 제공합니다:
1.빌드 설정 검증: 프로덕션 빌드에서 디버깅 파일 제거 필수
2.배포 전 점검: npm 패키지 내용물 확인 프로세스 필요
3.자동화된 검증: 민감한 파일 포함 여부 자동 체크
🔐 개발자를 위한 팁
프로덕션 배포 시 주의사항:
json
// package.json - 배포 파일 제한
{
"files": [
"dist/**/*.js",
"!dist/**/*.map"
]
}javascript
// Bun 빌드 설정 - 소스맵 비활성화
await Bun.build({
entrypoints: ['./src/index.ts'],
outdir: './dist',
sourcemap: 'none' // 프로덕션에서는 'none'
});🎯 결론
작은 설정 실수 하나가 수십만 줄의 코드를 세상에 공개하는 결과를 낳았습니다. 보안은 큰 취약점보다 이런 작은 실수에서 시작되는 경우가 많습니다.