본문으로 건너뛰기
뉴스 목록으로

Claude Code 소스코드 유출: npm .map 파일로 51만 줄 노출

Claude Code 소스코드 유출: npm .map 파일로 51만 줄 노출

Claude Code 소스코드 유출은 단순 패키징 실수가 아니라 AI 도구의 내부 방어 메커니즘 전체를 노출시킨 사건으로, 기술적 보안보다 법적 보호가 핵심임을 드러낸다.

AI 뉴스를 놓치지 마세요

매주 핵심 AI 소식을 이메일로 받아보세요.

📋 핵심 요약

  • 2026-03-31, Anthropic이 Claude Code v2.1.88 배포 시 .map 파일 포함 → 512,000줄 이상 소스코드 전면 공개
  • anti-distillation(가짜 도구 주입), undercover 모드, frustration 감지 정규식 등 내부 기능 노출
  • 패키지는 즉시 삭제됐으나 GitHub 미러링 완료 — "인간 실수, 보안 침해 아님" 공식 입장

Anthropic이 2026년 3월 31일 Claude Code 버전 2.1.88을 npm에 배포하는 과정에서 심각한 실수를 저질렀다. 패키지 안에 .map 파일(소스맵)이 그대로 포함된 것이다. 이 파일 하나로 인해 약 2,000개의 소스 코드 파일과 512,000줄 이상의 코드가 외부에 공개됐다. 보안 연구자 Chaofan Shou가 X(구 트위터)에 발견 사실을 올리자마자 Hacker News에서 1,863점의 추천을 받으며 AI 커뮤니티 전체가 들썩였다.

이 사건이 특히 주목받은 이유는 타이밍 때문이다. 불과 며칠 전 Anthropic은 내부 파일 약 3,000건을 실수로 공개했고, 같은 달에 OpenCode라는 서드파티 도구에 법적 경고장을 보낸 전력도 있다. OpenCode는 Claude Code의 내부 API를 이용해 구독 요금으로 Opus에 접근하는 방식을 허용했던 도구다. 이번 소스코드 유출은 그 경고장이 얼마나 아이러니한지를 더욱 부각시켰다.

anti-distillation: 가짜 도구로 복제 방어

유출된 코드 중 가장 화제가 된 부분은 claude.ts 파일(301–313번째 줄)에서 발견된 ANTI_DISTILLATION_CC 플래그다. 이 플래그가 활성화되면 Claude Code는 API 요청 시 anti_distillation: ['fake_tools']를 서버에 전송한다. 서버는 이 신호를 받아 시스템 프롬프트에 가짜 도구 정의를 조용히 삽입한다.

의도는 명확하다. 누군가 Claude Code의 API 트래픽을 녹화해 경쟁 모델을 훈련시키려 한다면, 그 학습 데이터에 가짜 도구 정보가 섞여 들어가 오염된다. 이 메커니즘은 GrowthBook 피처 플래그(tengu_anti_distill_fake_tool_injection)로 제어되며, 1st-party CLI 세션에만 적용된다.

두 번째 anti-distillation 방어는 betas.ts(279–298번째 줄)에 있는 서버 측 텍스트 요약 기능이다. 활성화 시 API는 도구 호출 사이의 응답 텍스트를 버퍼링해 요약본과 암호화 서명을 반환한다. 이후 원본은 서명으로 복원할 수 있지만, 트래픽만 기록하면 요약본밖에 얻지 못한다.

그러나 개발자들은 이 방어가 우회하기 어렵지 않다는 점을 빠르게 지적했다. CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 환경변수를 설정하거나, 서드파티 API 프로바이더를 사용하면 이 메커니즘 전체가 비활성화된다. 진짜 방어는 기술이 아니라 법률이라는 평가가 지배적이다.

undercover 모드: AI가 AI임을 숨기는 기능

약 90줄로 구성된 undercover.ts 파일은 모델이 자신이 AI임을 드러내는 식별자를 시스템 프롬프트에서 제거하는 기능을 구현한다. Anthropic 내부 정의 상 "1st-party" 세션에서만 활성화되는 옵션으로, Claude Code를 다른 브랜드로 재포장하거나 AI 여부를 명시하지 않아야 하는 B2B 파트너십을 위한 장치로 해석된다.

이 기능은 EU AI Act 등 AI 투명성 규정과 충돌할 소지가 있어 법적 논쟁을 불러일으켰다. 물론 정확한 활성화 조건과 실제 배포 범위는 알 수 없지만, 대형 AI 업체가 이러한 기능을 조용히 구현하고 있다는 사실 자체가 공론화됐다.

frustration 감지 정규식과 감정 분석

유출 코드에서 개발자들이 흥미롭게 발견한 또 다른 부분은 사용자 입력에서 불만이나 좌절을 감지하는 정규식 패턴이다. "이거 왜 안 돼", "도대체 뭐가 문제야" 식의 표현을 감지하면 Claude Code의 응답 방식이나 대화 흐름이 조정될 수 있음을 시사한다. 실제 행동 변화가 어느 수준인지는 불명확하지만, AI 도구가 감정 상태를 모니터링하고 있다는 사실은 UX 연구자들 사이에서 큰 관심을 끌었다.

📋 기술 요약

  • fake_tools injection: GrowthBook 플래그 제어, 1st-party CLI 전용
  • connector-text summarization: Anthropic 내부 계정(USER_TYPE='ant')만 해당
  • undercover mode: 브랜드 재포장 파트너십용 추정, 활성화 조건 불명확
  • frustration regex: 사용자 감정 상태 감지 → 응답 조정 가능성

개발자 커뮤니티 반응과 시사점

HN 커뮤니티는 이번 유출을 두 가지 시각으로 분석했다. 첫째는 "production-grade developer experience"라는 찬사로, 단순 API 래퍼가 아니라 수만 줄의 정교한 엔지니어링이 뒷받침된 도구임이 증명됐다는 관점이다. 실제로 하나의 블로그 포스트는 아키텍처의 정교함에 주목하며 오픈소스 대안들이 단기간 내 따라잡기 어렵다고 분석했다.

둘째는 우려다. Anthropic이 일주일 사이에 두 번 내부 자산을 공개적으로 노출시켰다는 사실은 "안전 최우선"을 표방하는 회사 이미지에 상처를 입힌다. 특히 같은 달에 서드파티 개발자들에게 법적 경고를 보낸 직후에 자신의 소스코드를 스스로 유출시켰다는 아이러니는 커뮤니티의 냉소를 불러왔다.

국내 개발자 관점에서 이번 사건의 의미는 두 가지다. 첫째, Claude Code를 기반으로 내부 도구를 구축하는 팀이라면 이 아키텍처 분석을 통해 도구의 한계와 작동 방식을 더 명확히 이해할 수 있다. 둘째, npm 패키지 배포 파이프라인에서 .map 파일 포함 여부를 CI/CD 단계에서 명시적으로 차단하는 것이 필수 보안 관행임을 재확인시켜 준다.

기능설명활성화 조건우회 가능 여부
fake_tools injection가짜 도구로 학습 데이터 오염1st-party CLI + GrowthBook 플래그환경변수 또는 서드파티 API로 우회 가능
connector-text summarization응답 요약으로 추론 체인 은폐Anthropic 내부 계정만외부 사용자 해당 없음
undercover modeAI 식별자 제거파트너십용 추정활성화 조건 불명확
frustration regex사용자 감정 감지항상 활성화 추정알 수 없음
prompt cache반복 요청 비용 절감기본 5분 캐시1시간 유료 확장 가능

npm 패키지 보안: 소스맵 유출 방지 방법

이번 사고의 직접적 원인은 프로덕션 npm 패키지에 .map 소스맵 파일이 포함된 것이다. 개발자라면 배포 파이프라인에서 반드시 다음을 확인해야 한다.

  • package.jsonfiles 필드 또는 .npmignore.map 파일 명시적 제외
  • CI/CD에서 npm pack --dry-run으로 포함 파일 목록 사전 검증
  • TypeScript 빌드 설정에서 sourceMap: false (프로덕션 빌드) 또는 inlineSources: false 적용
  • 번들러(esbuild, rollup 등)에서 소스맵 출력 경로 분리 또는 비활성화

Anthropic 측은 "인간 실수에 의한 릴리스 패키징 이슈이며 보안 침해가 아니다"라고 공식 입장을 밝혔다. 그러나 소스코드는 이미 GitHub 등 여러 곳에 미러링된 상태다.

Q1: 유출된 소스코드로 Claude Code를 복제할 수 있나?

A: 소스코드는 CLI 도구의 스캐폴딩이지 AI 모델 자체가 아닙니다. 모델 가중치나 학습 데이터는 포함되지 않으므로 Claude 모델 복제는 불가능합니다. 다만 도구 아키텍처 참조는 가능합니다.

Q2: anti-distillation 기능은 오픈소스 Claude 클라이언트에도 영향을 미치나?

A: 아닙니다. shouldIncludeFirstPartyOnlyBetas() 함수가 1st-party CLI 세션 여부를 확인하므로, 서드파티 API 클라이언트나 SDK를 직접 사용하는 경우에는 이 기능이 활성화되지 않습니다.

Q3: undercover 모드는 AI 투명성 규정 위반 아닌가?

A: EU AI Act나 국내 AI 기본법상 AI 여부 공개 의무와 충돌 가능성이 있습니다. 다만 정확한 활성화 조건과 배포 범위가 불명확해 Anthropic의 공식 해명이 필요한 상황입니다.

Q4: 이번 유출이 Claude Code의 경쟁력에 영향을 미치나?

A: 단기적으로는 아키텍처 분석을 통한 경쟁사 벤치마킹 가능성이 있지만, 실제 경쟁력은 모델 품질과 생태계에서 나오므로 장기 영향은 제한적입니다. 오히려 투명성 증가로 신뢰도가 높아졌다는 긍정적 시각도 있습니다.

Q5: Anthropic의 반복 유출 사고는 무엇을 의미하나?

A: 일주일 사이 두 번의 내부 자산 유출은 Anthropic의 배포 및 보안 검토 프로세스에 구조적 취약점이 있음을 시사합니다. "안전 최우선" 브랜딩과 실제 운영 사이의 간극을 좁히는 조직적 노력이 필요합니다.


이번 Claude Code 유출 사건은 단순 실수지만 그 파장은 넓다. AI 도구 개발사들이 내부적으로 어떤 방어 메커니즘을 구현하고 있는지, 그리고 그 방어가 기술보다 법률에 더 의존하고 있다는 사실이 공론화됐다. 국내 AI 개발팀이라면 이번 사건을 계기로 자신의 배포 파이프라인 보안을 점검하고, 사용 중인 AI 도구의 작동 방식을 더 비판적으로 이해하는 기회로 삼을 만하다.

관련 기사

관련 토픽 더 보기

#anthropic#ai-coding#developer-tools#securityAI 코딩 도구오픈소스 보안Anthropic 제품

📰 원본 출처

alex000kim.com

이 기사는 AI 기술을 활용하여 작성되었으며, 원본 뉴스 소스를 기반으로 분석 및 해설을 추가한 콘텐츠입니다. 정확한 정보 전달을 위해 노력하고 있으나, 원본 기사를 함께 확인하시기를 권장합니다.

공유

관련 기사

Claude Code 사용량 제한 폭주: 캐시 버그로 비용 10-20배 폭증

2026-04-01
#anthropic#developer-tools

Anthropic Claude Code 사용자들이 월 사용량 초과 폭증 신고. 프롬프트 캐시 버그로 토큰 비용 10-20배 증가, Max 5 플랜 1시간 소진 사례. Anthropic 공식 조사 착수.

Claude 유료 구독자 폭증: Anthropic, ChatGPT 추격 본격화

2026-03-29
#anthropic#claude

Anthropic의 Claude 유료 구독자가 2026년 1~2월 역대 최고치를 기록했습니다. Super Bowl 광고, DoD 사태, Claude Code 출시가 맞물려 구독자 수가 올해 2배 이상 증가한 배경을 분석합니다.

Anthropic, 트럼프 행정부 상대 법원 가처분 승소

2026-03-28
#anthropic#regulation

연방 법원이 Anthropic의 손을 들어줬다. 국방부의 '공급망 위험' 지정과 연방기관 사용 금지 명령을 취소하라고 판결한 이번 소송의 전말과 AI 기업 규제의 시사점을 분석합니다.

.claude/ 폴더 완전 해부: Claude Code 제어의 핵심

2026-03-28
#claude#ai-coding

Claude Code 개발자라면 반드시 알아야 할 .claude/ 폴더 구조 완전 분석. CLAUDE.md, rules/, commands/ 등 각 파일의 역할과 팀 협업에서 활용법을 한국어로 심층 해설합니다.

클로드 코드, 할당량 초과시 로컬 모델 연결 기능 추가

2026-02-05
#claude#anthropic

Anthropic의 AI 코딩 도구 Claude Code가 사용자의 할당량(quota)이 소진되었을 때 로컬 AI 모델에 자동으로 연결할 수 있는 기능을 도입했습니다. 이를 통해 개발자들은 클라우드 서비스 제한에 구애받지 않고 지속적으로 AI 코딩 어시스턴트를 활용할 수 ...