클로드 코드 소스 유출 — 51만 줄이 npm에 그냥 올라갔다[원인 분석과 대안] - 하이테크정보

[AI] claude code | | 🔬 연구
#anthropic #claude #npm #공급망 공격 #보안 #소스 유출 #클로드 코드
원문 출처: [AI] claude code · Genesis Park에서 요약 및 분석

요약

2026년 3월 31일, 앤스로픽이 npm 레지스트리에 실수로 디버깅용 .map 파일을 공개 배포하면서 클로드 코드의 약 51만 2,000줄에 달하는 소스코드가 유출되는 사고가 발생했습니다. 설상가상으로 같은 날 클로드 코드가 사용하는 외부 라이브러리인 'Axios'의 관리자 계정이 해킹당해 원격 접근 트로이목마(RAT)가 심긴 악성 버전이 배포되어, 해당 시간대에 패키지를 설치한 개발자들은 이중 위험에 노출되었습니다. 유출된 코드를 통해 40여 개의 도구 시스템과 공개 예정인 44개의 신규 기능 등이 담긴 내부 설계도가 전 세계에 퍼졌으나, 다행히 AI 모델 가중치나 고객 데이터 등은 포함되지 않았습니다.

본문

[제이슨 박의 논평①] Axios 공급망 공격과 겹친 최악의 하루, 개발자가 지금 당장 해야 할 것 ■ 새벽 네 시, 트윗 한 줄이 세상을 바꿨다. 자물쇠가 부서진 것이 아니었다. 문이 열려 있었다. 2026년 3월 31일 새벽, 보안 연구자 차우판 소우(Chaofan Shou)는 짧은 글 하나를 X(옛 트위터)에 올렸다. "클로드 코드(Claude Code) 소스코드가 npm 레지스트리의 .map 파일을 통해 유출됐습니다." 140자도 안 되는 이 문장은 순식간에 전 세계 개발자 커뮤니티를 뒤흔들었다. 몇 시간 만에 게시물은 2880만 뷰를 넘겼고, 유출된 코드는 깃허브(GitHub: 개발자들이 코드를 공유하는 플랫폼)에 복제되어 8만 4천 개 이상의 별(star)을 받으며 전 세계로 퍼져나갔다. 흥미로운 것은 이 상황이 영화 같은 해킹 장면과 전혀 달랐다는 점이다. 누군가 서버를 뚫은 것도, 암호를 해독한 것도 아니었다. 그냥 파일이 거기 있었다. 알고 있는 사람이면 누구나 내려받을 수 있었다. 마치 은행이 금고 문을 열어둔 채 퇴근한 것과 같은 상황이었다. ■ .map 파일 하나가 어떻게 51만 줄을 내보냈나. 이 사건을 이해하려면 '.map 파일'이 무엇인지부터 알아야 한다. 조금 낯선 개념이지만, 한 번만 이해하면 왜 이것이 문제였는지가 바로 보인다. 개발자들은 프로그램을 배포할 때 코드를 압축하고 읽기 어렵게 변환한다. 경쟁사나 해커가 쉽게 분석하지 못하도록 하기 위해서다. 변환된 코드는 원본과 전혀 다른 모습이 된다. 예를 들어 원본에서 '사용자 이름을 확인한다'고 쓰인 코드가 변환 후에는 'a(b.c)'처럼 알아볼 수 없는 형태가 된다. 그런데 개발자들은 이렇게 변환된 코드에서 오류가 생겼을 때 원인을 찾기가 매우 어렵다. 그래서 만들어진 것이 .map 파일이다. 변환된 코드의 각 줄이 원본의 어느 줄에 해당하는지를 알려주는 '지도' 역할을 한다. 오로지 내부 디버깅(오류 수정)용으로 쓰이는 파일이다. 문제는 이 .map 파일이 원본 소스코드의 전체 내용을 그대로 담고 있다는 것이다. 앤스로픽(Anthropic)은 Claude Code 버전 2.1.88을 npm(자바스크립트 패키지를 배포하는 공개 저장소)에 올리면서, 내부용으로만 써야 할 이 59.8MB짜리 .map 파일을 함께 배포했다. 그 안에는 약 1900개 파일, 51만 2000 줄의 TypeScript(프로그래밍 언어) 코드가 고스란히 담겨 있었다. 지도를 보면 목적지가 나오듯, 이 파일을 보면 Claude Code의 전체 설계가 나와있다. Anthropic은 즉각 해당 버전을 삭제하고 공식 입장을 발표했다. "오늘 Claude Code 릴리스에 일부 내부 소스코드가 포함됐습니다. 민감한 고객 데이터나 자격증명은 노출되지 않았습니다. 이것은 보안 침해가 아니라 인간의 실수로 인한 릴리스 패키징 문제입니다. 재발 방지 조치를 시행하고 있습니다." 그러나 이미 코드는 전 세계로 퍼진 뒤였다. 인터넷에 한 번 올라간 것은 내려오지 않는다. ■ 하필 그날, Axios도 당했다. 나쁜 일은 혼자 오지 않는다고 했던가. 같은 날 자정을 넘긴 시각, 전혀 별개의 사고가 동시에 진행되고 있었다. 개발자들이 광범위하게 사용하는 HTTP 라이브러리 Axios(프로그램이 인터넷을 통해 서버와 데이터를 주고받을 때 쓰는 도구)가 해킹당했다. 주간 내려받기 횟수만 8300만 건에 달하는 이 도구의 관리자 계정이 탈취됐고, 공격자는 악성 버전 두 개(1.14.1, 0.30.4)를 npm에 몰래 올렸다. 이 버전들은 설치 즉시 RAT(원격 접근 트로이목마)를 심었다. RAT란 공격자가 감염된 컴퓨터를 마치 자기 컴퓨터처럼 원격에서 조종할 수 있게 해주는 악성 프로그램이다. 맥과 윈도우, 리눅스(macOS, Windows, Linux) 모두 대상이었다. 이 악성 버전이 배포된 시간대가 UTC 기준 3월 31일 00:21부터 03:29였다. 그리고 Claude Code는 Axios를 의존성 패키지(프로그램이 작동하기 위해 필요한 외부 도구)로 사용한다. 즉 이 짧은 시간대에 npm으로 Claude Code를 설치하거나 업데이트한 개발자라면, 소스 유출이라는 Anthropic의 실수와 Axios 해킹이라는 외부 공격, 두 가지 위험에 동시에 노출됐을 수 있다. 여기서 독자 여러분 중 개발자가 있다면 지금 당장 확인해야 할 사항이 있다. 프로젝트의 package-lock.json 또는 yarn.lock 파일에서 axios 1.14.1, 0.30.4 또는 plain-crypto-js라는 항목이 있는지 검색해야 한다. 만약 발견된다면 해당 컴퓨터는 완전히 감염된 것으로 간주하고, 모든 비밀번호와 API 키(서비스 접근용 암호)를 즉시 교체해야 한다. Anthropic은 현재 npm 대신 공식 네이티브 설치 방법(curl -fsSL https://claude.ai/install.sh | bash)을 권장하고 있다. ■ 유출된 코드 안에는 무엇이 있었나. 소스코드가 공개되자 전 세계 개발자들이 분석에 뛰어들었다. 그리고 많은 이들이 놀랐다. Claude Code가 생각보다 훨씬 정교한 시스템이었기 때문이다. 외부에서 보기에 Claude Code는 터미널(명령어 입력창)에서 AI와 대화하며 코드를 짜는 도구처럼 보인다. 그러나 내부는 달랐다. 40여 개의 도구 시스템, 여러 AI가 역할을 나눠 동시에 작업하는 멀티에이전트 오케스트레이션(다중 AI 협업 구조), IDE(통합 개발 환경, 코딩 프로그램)와의 양방향 연결 구조가 드러났다. 경쟁사들에게는 설계 청사진이, 보안 연구자들에게는 분석 대상이, 개발자들에게는 학습 교재가 생겼다. 또한 아직 공개되지 않은 미래 기능 44개가 feature flag(특정 조건에서만 켜지는 기능 스위치) 뒤에 숨겨져 있었다는 사실도 밝혀졌다. 출시도 전에 제품 로드맵이 통째로 공개된 것이다. 한 가지 분명히 해둘 것이 있다. 이번에 유출된 것은 Claude Code라는 도구의 설계도이지, Claude 모델 자체의 핵심 기술인 모델 가중치(AI가 학습한 내용의 집약체)가 아니다. Anthropic이 밝혔듯 고객 데이터나 접속 정보도 포함되지 않았다. 그러나 도구의 설계도만으로도 경쟁사들이 얻는 정보는 상당하다. 어떻게 만들었는지를 알면, 비슷하게 또는 더 잘 만들 수 있기 때문이다. ■ 이것은 운이 나빴던 하루가 아니다. 이쯤에서 이 사건을 그냥 '운 나쁜 하루'로 정리하고 싶은 유혹이 생길 수 있다. 누구나 실수하고, 해킹은 어느 날 갑자기 일어나며, Anthropic도 사람이 운영하는 회사라고. 그 말 자체는 틀리지 않는다. 그러나 이 사건을 그냥 넘기기 어려운 이유가 있다. 이것이 처음이 아니었기 때문이다. 2025년 2월, Anthropic은 이미 동일한 방식의 유출을 경험했다. 같은 파일, 같은 방식, 같은 실수. 그 이야기는 다음 편(4월 4-5일자 중)에서 다룬다. ※참고: 이 기고문은 아래 출처에서 자료를 일부 활용해서 작성되었음을 밝힙니다. - VentureBeat, "Claude Code's source code appears to have leaked: here's what we know" (2026.03.31) — venturebeat.com - BleepingComputer, "Claude Code source code accidentally leaked in NPM package" (2026.03.31) — bleepingcomputer.com - The Hacker News, "Claude Code Source Leaked via npm Packaging Error, Anthropic Confirms" (2026.04.01) — thehackernews.com - StepSecurity, "Axios compromised on npm, malicious versions drop remote access trojan" (2026.03.30) — stepsecurity.io ◈ 필자 제이슨 박은 1981년 중1때 단신 도미, 샌디에고 캘리포니아 대학(UCSD)을 졸업 후 캘리포니아 주 고교 교사를 거쳐 일리노이대-시카고(UIC) 입학사정관으로 근무했다. 현재 이스턴 일리노이대(EIU), 사우스웨스트미네소타 주립대(SMSU), 독일 유럽대(University of Europe)의 입학처 자문위원을 맡고 있다. 또한, 누적 조회수 120만을 넘긴 유튜브 및 틱톡 채널 '제이슨튜브' 운영자이며, 현재 오산대학교 전임교수다.

Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.

공유

관련 저널 읽기

전체 보기 →