Anthropic, Claude Code 소스코드 51만 줄 유출 — npm 패키징 실수가 드러낸 AI 에이전트의 속살

Anthropic, Claude Code 소스코드 51만 줄 유출 — npm 패키징 실수가 드러낸 AI 에이전트의 속살

Anthropic, Claude Code 소스코드 51만 줄 유출 — npm 패키징 실수가 드러낸 AI 에이전트의 속살

51만 줄이 세상에 풀린 건 .map 파일 하나 때문이었다

3월 31일 새벽 4시 23분(미국 동부시간), Solayer Labs 인턴 Chaofan Shou가 X에 글 하나를 올렸습니다. Anthropic의 Claude Code npm 패키지(v2.1.88)에 59.8MB짜리 소스맵 파일이 포함돼 있었고, 이 파일이 Cloudflare R2 버킷에 올라간 전체 소스코드 압축 파일을 가리키고 있었거든요. 약 1,900개 파일, 51만 2천 줄의 TypeScript 코드가 그대로 노출된 겁니다.

몇 시간 만에 GitHub에 미러가 올라갔고, 포크 수가 4만 1,500건을 넘겼습니다. Anthropic이 DMCA 테이크다운 요청을 8,000건 넘게 보냈지만 이미 인터넷 곳곳에 퍼진 뒤였죠. Anthropic은 "고객 데이터나 인증 정보는 포함되지 않았다"며 "릴리스 패키징 과정의 인적 오류"라고 해명했는데요. .npmignore나 package.json의 files 필드 하나가 빠진 실수였습니다.

KAIROS, 꿈꾸는 에이전트가 준비되고 있었다

유출된 코드에서 가장 눈에 띈 건 KAIROS라는 내부 프로젝트입니다. Claude Code를 상시 백그라운드 에이전트로 돌리는 기능인데요. 사용자가 아무것도 안 하는 동안 autoDream이라는 프로세스가 돌면서 "메모리 통합"을 수행합니다. 쉽게 말하면 AI가 잠든 사이에 혼자 생각을 정리하는 거죠.

이 외에도 ULTRAPLAN(30분짜리 원격 기획 세션), Buddy(동반자 모드), 에이전트 스웜(복수 에이전트 협업), 워크플로 스크립트 등 44개 피처 플래그가 발견됐습니다. 6개 이상의 킬스위치도 확인됐고, 매시간 서버에서 설정을 폴링하는 원격 텔레메트리 구조까지 드러났거든요. 모델 코드네임도 공개됐는데, Capybara가 Claude 4.6, Fennec이 Opus 4.6, 아직 테스트 중인 Numbat까지 확인됐습니다.

"Undercover Mode" — Anthropic이 오픈소스에 몰래 기여하고 있었다

제일 논란이 된 건 Undercover Mode입니다. Anthropic이 Claude Code로 공개 오픈소스 프로젝트에 스텔스 기여를 하고 있었다는 건데요. 시스템 프롬프트에 이런 문구가 있었습니다. "You are operating UNDERCOVER... Your commit messages MUST NOT contain ANY Anthropic-internal information. Do not blow your cover."

Co-Authored-By 어트리뷰션을 전부 제거하고, Claude Code가 생성했다는 흔적을 지우고, 내부 코드네임이나 Slack 채널명까지 차단하는 구조였습니다. 아이러니한 건 이 Undercover Mode 자체가 내부 정보 유출을 막기 위해 만든 기능이라는 점이죠. 유출을 막으려고 만든 코드가 유출돼서 세상에 알려진 겁니다.

npm 하나에 회사 전체 아키텍처가 걸린 시대

이번 사건은 Anthropic만의 문제가 아닙니다. AI 코딩 에이전트가 npm, PyPI 같은 패키지 레지스트리를 통해 배포되는 한, 패키징 실수 한 번이 전체 아키텍처를 노출시킬 수 있거든요. Fortune은 이번 건을 Anthropic의 "며칠 사이 두 번째 보안 사고"라고 보도했는데, 직전에 Claude Mythos(10조 파라미터 모델) 정보도 실수로 공개한 적이 있습니다.

한국에서 Claude Code를 쓰는 개발자라면 실질적 영향은 제한적입니다. 고객 데이터 유출은 없었고, API 키나 인증 정보도 포함되지 않았거든요. 다만 유출된 코드를 분석해보면 Claude Code가 사용자 환경에서 어떤 수준의 시스템 접근 권한을 갖는지 구체적으로 드러났고, The Register는 이를 "프라이버시 악몽"이라고 표현했습니다. 에이전트에게 터미널 접근을 허용할 때 정확히 무엇을 넘겨주는 건지 한 번쯤 생각해볼 시점이에요.

경쟁사는 이걸 어떻게 볼까

OpenAI, Google, 그리고 수십 개의 AI 코딩 스타트업이 지금 이 코드를 분석하고 있을 겁니다. 에이전틱 하니스(agentic harness)의 설계 패턴, 에이전트 간 통신 구조, 세션 관리 방식이 전부 공개된 상황이니까요. 솔직히 경쟁사 입장에서는 Anthropic의 아키텍처를 참고해서 자기네 에이전트를 개선할 수 있는 기회입니다.

반대로 Anthropic 입장에서 긍정적인 해석도 있습니다. 코드가 공개된 뒤 개발자 커뮤니티 반응이 "이거 잘 만들었네"였거든요. DEV Community에서는 이걸 "AI 역사상 최고의 의도치 않은 PR"이라고 부르는 글까지 나왔습니다. 실제로 유출 이후 Claude Code 사용량이 줄지 않았고, 오히려 내부 구조를 이해한 개발자들이 더 적극적으로 쓰기 시작했다는 보고도 있어요.

지금 할 일은 .npmignore 점검이다

사내에서 npm이나 PyPI로 패키지를 배포하는 팀이라면, 이번 주 안에 빌드 아티팩트에 소스맵이나 디버그 파일이 포함되는지 점검해보세요. Anthropic 규모의 회사도 이런 실수를 하는데, 3명짜리 스타트업이 안전할 리가 없거든요. npm pack --dry-run 한 줄이면 실제 배포될 파일 목록을 미리 확인할 수 있습니다.

AI 에이전트를 터미널에서 돌리는 개발자라면, 에이전트의 시스템 접근 범위를 문서화하는 것도 필요합니다. Claude Code든 Copilot이든 Codex든, 에이전트가 읽을 수 있는 파일, 실행할 수 있는 명령, 접근할 수 있는 API를 한 페이지로 정리해두면 보안 감사 때 큰 도움이 됩니다.

댓글 쓰기

다음 이전