# \[GN⁺\] Claude Code 소스 유출: 가짜 도구, 욕설 감지 정규식, 은폐 모드 등 내부 구조 드러남

**URL:** <https://discuss.pytorch.kr/t/gn-claude-code/9508>\
**Category:** 읽을거리&정보공유\
**Tags:** claude-code, claude-code-leak\
**Created:** [4월 1, 2026, 10:00오전 UTC](https://discuss.pytorch.kr/t/gn-claude-code/9508 "2026-04-01T10:00:29Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![9bow](https://discuss.pytorch.kr/user_avatar/discuss.pytorch.kr/9bow/32/16301_2.png) [@9bow](https://discuss.pytorch.kr/u/9bow)\
**Post date:** [4월 1, 2026, 10:00오전 UTC](https://discuss.pytorch.kr/t/gn-claude-code/9508/1 "2026-04-01T10:00:29Z")

</div>

![Claude Code 소스 유출: 가짜 도구, 욕설 감지 정규식, 은폐 모드 등 내부 구조 드러남](https://discuss.pytorch.kr/uploads/default/original/3X/4/7/4740c34802ea16ea133b8bc6d1936c73df12aeaf.png)

## Claude Code 소스 유출 글 소개

- Anthropic이 npm 패키지에 **소스맵을 포함해 배포** 하면서 Claude Code의 전체 코드가 공개되어, 내부 기능과 실험적 플래그가 모두 드러남
- 코드에는 **모델 모방 방지를 위한 가짜 도구 삽입(anti-distillation)**, **AI 정체를 숨기는 undercover 모드** , **욕설 감지용 frustration regex** 등이 포함됨
- **네이티브 클라이언트 인증** 과 **DRM 수준의 해시 검증** 구조가 존재해, 비공식 도구의 API 접근을 차단하도록 설계됨
- 내부 주석에서는 하루 **25만 건의 실패 API 호출** , 미완성 **KAIROS 자율 에이전트 모드** , **Tamagotchi형 동반자 시스템** 등 다양한 실험 기능이 확인됨
- 이번 유출은 **Anthropic의 핵심 제품 구조와 로드맵이 노출된 사례** 로, Bun 런타임의 소스맵 버그가 원인일 가능성이 제기됨

* * *

## 소스맵 유출로 드러난 Claude Code 내부 구조

- Anthropic이 npm 패키지에 **소스맵을 포함해 배포** 하면서 Claude Code의 전체 소스가 공개됨

- 
### Anti-distillation: 모방 방지를 위한 가짜 도구 삽입

  - `claude.ts`에는 `ANTI_DISTILLATION_CC` 플래그가 존재하며, 활성화 시 API 요청에 `anti_distillation: ['fake_tools']`를 포함해 **가짜 도구 정의를 시스템 프롬프트에 삽입**
    - 이는 API 트래픽을 캡처해 모델을 모방하려는 시도를 **오염시키는 목적**
    - GrowthBook 플래그 `tengu_anti_distill_fake_tool_injection`이 켜진 **1차 CLI 세션에서만 작동**

  - `betas.ts`에는 두 번째 메커니즘으로 **요약 기반 서버 측 보호 기능** 이 존재
    - 도구 호출 사이의 텍스트를 요약 후 암호 서명과 함께 반환, 이후 복원 가능
    - 외부에서 트래픽을 기록해도 **전체 추론 과정을 볼 수 없음**

  - 이 기능은 여러 조건이 동시에 충족되어야 하며, **MITM 프록시로 필드 제거 시 무력화 가능**
    - 환경 변수 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` 설정으로 비활성화 가능
    - `USER_TYPE === 'ant'` 조건으로 인해 **Anthropic 내부 사용자 전용**

  - 실질적 방어 수단은 기술적 장치보다 **법적 제약에 가까운 형태**

- 
### Undercover mode: AI 정체를 숨기는 모드

  - `undercover.ts`는 외부 저장소에서 사용될 때 **Anthropic 내부 코드명, Slack 채널, “Claude Code” 문구** 등을 제거
    - `"There is NO force-OFF"` 문구로 **비활성화 불가**
    - 환경 변수 `CLAUDE_CODE_UNDERCOVER=1`로 강제 활성화 가능

  - 외부 빌드에서는 함수가 **무의미한 반환으로 제거** 되어 일방향적 구조
  - 이로 인해 Anthropic 직원이 오픈소스에 기여할 때 **AI 작성 여부가 표시되지 않음**
    - 내부 정보 은폐 목적은 합리적이지만, **AI가 인간처럼 위장하는 효과** 발생

- 
### Frustration regex: 욕설 감지용 정규식

  - `userPromptKeywords.ts`에는 사용자의 **불만·욕설을 감지하는 정규식 패턴** 이 포함
    - “wtf”, “this sucks”, “fuck you” 등 다양한 표현을 탐지

  - LLM 기업이 **감정 분석에 정규식을 사용하는 아이러니** 를 보여주지만,
    - LLM 호출보다 **비용과 속도 면에서 효율적**

- 
### Native client attestation: JS 런타임 아래의 클라이언트 인증

  - `system.ts`에는 API 요청 시 `cch=00000` 자리표시자가 포함되어,
    - Bun의 Zig 기반 네이티브 HTTP 스택이 이를 **해시로 대체**
    - 서버는 이 해시를 검증해 **공식 Claude Code 바이너리 여부를 확인**

  - 이는 **OpenCode 법적 분쟁의 기술적 근거** 로,
    - 제3자 도구가 API를 직접 호출하지 못하도록 **DRM 수준의 검증** 수행

  - 단, `NATIVE_CLIENT_ATTESTATION` 플래그가 꺼져 있거나
    - `CLAUDE_CODE_ATTRIBUTION_HEADER`가 비활성화되면 작동하지 않음
    - Zig 해시 교체는 **공식 Bun 바이너리에서만 작동** , Node 환경에서는 무효

  - 서버가 잘못된 해시를 거부하는지는 불명확하며,
    - `_parse_cc_header`가 “unknown extra fields”를 허용한다는 주석 존재

- 
### 25만 건의 낭비된 API 호출

  - `autoCompact.ts` 주석에 따르면,
    - 하루 약 **25만 건의 API 호출이 실패 루프로 낭비** 되고 있었음
    - 1,279개 세션에서 50회 이상 연속 실패, 최대 3,272회

  - 수정은 단 3줄로, `MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3` 설정 시
    - 3회 연속 실패 후 자동 압축 기능이 비활성화됨

- 
### KAIROS: 미공개 자율 에이전트 모드

  - 코드 전반에 `KAIROS`라는 **기능 게이트 모드** 가 존재
    - `main.tsx` 기준, **자율형 에이전트 기능** 으로 추정
    - `/dream` 스킬(야간 메모리 증류), GitHub 웹훅, 백그라운드 데몬, 5분 주기 크론 리프레시 포함

  - 구현은 미완성이지만, **항상 실행되는 백그라운드 에이전트 기반 구조** 가 마련됨

- 
### 기타 발견 사항

  - **만우절 이스터에그** : `buddy/companion.ts`에 **Tamagotchi 스타일 동반자 시스템** 존재
    - 18종 생물, 희귀도·RPG 스탯·1% 확률의 ‘shiny’ 버전 포함
    - 사용자 ID 기반 PRNG로 결정, 문자열 인코딩으로 빌드 검사 회피

  - **터미널 렌더링 엔진** (`ink/screen.ts`, `ink/optimizer.ts`)은
    - `Int32Array` 기반 ASCII 버퍼, 비트마스크 스타일 메타데이터, **50배 성능 향상 캐시** 구현

  - **보안 검사** (`bashSecurity.ts`)는 23단계로 구성되어
    - Zsh 내장 명령 차단, `=curl` 우회 방지, 유니코드 제로폭·널바이트 주입 차단 등 수행
    - **Zsh 전용 위협 모델** 을 가진 드문 사례

  - **프롬프트 캐시 관리** (`promptCacheBreakDetection.ts`)는
    - 14가지 캐시 파손 벡터 추적, 모드 전환 시 캐시 유지용 ‘sticky latch’ 사용
    - `DANGEROUS_uncachedSystemPromptSection()` 주석 존재
    - **토큰 단가 절감 중심의 설계 철학** 반영

  - **멀티 에이전트 조정기** (`coordinatorMode.ts`)는
    - 코드가 아닌 **프롬프트 기반 오케스트레이션 알고리듬** 사용
    - “약한 작업 승인 금지”, “이해 없이 위임 금지” 등 지침 포함

  - **코드 품질 문제** 도 존재
    - `print.ts`는 5,594줄, 단일 함수가 3,167줄에 달함
    - HTTP 요청에 **Axios 사용** , 최근 npm 악성 버전 사건과 시기적으로 겹침

- 
### 의미와 파장

  - Google Gemini CLI나 OpenAI Codex의 공개 SDK와 달리,
    - 이번 유출은 **Anthropic의 핵심 제품 내부 구조 전체** 가 드러난 사례

  - 가장 큰 피해는 코드 자체보다 **Feature Flag와 로드맵 노출**
    - KAIROS, Anti-distillation 등 **전략적 기능이 경쟁사에 공개**

  - Anthropic은 지난해 **Bun을 인수** 했으며, Claude Code는 Bun 위에서 동작
    - Bun의 **소스맵 버그** (`oven-sh/bun#28001`)가 원인일 가능성 존재
    - 프로덕션 모드에서도 소스맵이 노출되는 문제로, 아직 미해결 상태

  - 결과적으로 Anthropic은 **자사 도구 체인 버그로 자사 제품을 유출** 한 셈
    - 한 트위터 반응처럼, “AI가 작성한 코드를 배포하다가 AI가 만든 버그로 코드가 새어 나간” 아이러니한 사건

### 함께 보면 좋은 글β

- [Claude Code의 숨겨진 강력한 기능들 15가지](https://news.hada.io/topic?id=28021)

- [Claude Code Auto Mode 공개 - 권한 결정을 자동화하는 새로운 퍼미션 모드](https://news.hada.io/topic?id=27831)

- [Claude Code 활용 방식: 계획과 실행의 분리](https://news.hada.io/topic?id=26907)

- [Claude Code (유출본) 소스 코드 분석서](https://news.hada.io/topic?id=28080)

- [Claude Code 사용량 모니터 – 사용량 제한 회피를 위한 실시간 트래커](https://news.hada.io/topic?id=21562)

## [Hacker News 의견들](https://news.ycombinator.com/item?id=47586778)

- “Undercover mode”가 단순히 내부 정보를 숨기는 기능이라고 오해하는 댓글들이 많음  
실제 프롬프트에는 커밋 메시지나 PR 설명에 **“Claude Code”나 AI 언급을 절대 포함하지 말라** 고 명시되어 있음  
즉, 인간처럼 행동하며 정체를 숨기는 기능처럼 보임  
특히 공개 저장소에 기여할 때 이런 지침이 적용된다는 점이 우려스러움  
[관련 코드 링크](https://github.com/chatgptprojects/claude-code/blob/642c7f94...)
  - Claude가 커밋 공동 작성자로 등장할 때마다 **민망함** 을 느낌  
Git 히스토리는 책임과 소유권을 추적하는 용도이지, 도구 목록을 기록하는 곳이 아님  
그렇다면 나도 내 PR에 linter나 IDE를 공동 작성자로 넣어야 하는지 의문임
  - 나처럼 이미 CLAUDE.md 파일에 이런 지침을 추가한 사람도 있을 거라 생각함  
사실상 **사소한 설정 한 줄** 로 해결 가능한 문제임
  - 인간인 척하려는 의도보다는, 코드 품질이 낮을 때 **Claude가 조롱받지 않도록** 하려는 목적 같음  
결국 책임은 인간 개발자가 지는 구조임
  - 코드의 목표는 정보 유출 방지지만, 실제 구현은 그보다 **범위가 넓음**  
아마도 목표 달성을 위해 의도적으로 넓게 설정했거나, 숨은 의도가 있을 수도 있음  
다만 “인간인 척한다”고 단정하기보다는, “인간 개발자처럼 작성하라”는 문구 그대로 해석하는 게 타당함  
회의적일수록 **사실 기반으로 비판** 하는 게 설득력 있음
  - 나도 PR에서 “coauthored by Claude Code” 문구를 본 적 있음  
솔직히 그런 건 원치 않음

- 최근 연이은 **Mythos 유출** 과 Claude Code 전체 코드베이스 노출로 신뢰 문제가 커지고 있음  
개별 사건은 흥미롭지만, 연속적으로 발생하니 패턴처럼 느껴짐  
결국 “이런 도구를 코드베이스에 계속 신뢰할 수 있는가”라는 질문으로 이어짐
  - 이런 걱정은 과도하다고 생각함  
나는 여전히 140달러를 내고 CC를 쓰고 있음  
오히려 이런 유출이 **Anthropic의 윤리적 모델** 과 맞닿아 있다고 봄 — 실패를 통해 성장하는 느낌임
  - 큰 영향은 없다고 봄  
진짜 가치는 코드가 아니라 **모델 접근권** 에 있음  
코드베이스는 엉망이지만, 구독형 모델 접근은 여전히 매력적이라 매일 Claude Code를 씀
  - 솔직히 Claude 자체가 **vibe coded slop** 같음  
웹 UI나 CC에서 자잘한 오류가 너무 많음  
tmux 제어도 문서대로 안 되고, 세션 정리도 안 됨  
그래도 여전히 좋아하는 제품임 — 엉성하지만 매력 있음

- 내 GitHub의 **anthropics/claude-code 포크** 가 DMCA로 삭제됨  
유출된 코드를 포함하지 않았는데도 전체 네트워크(8.1K개 저장소)가 일괄 차단됨  
[DMCA 공지 링크](https://github.com/github/dmca/blob/master/2026/03/2026-03-3...)  
Anthropic이 종을 울려놓고 다시 멈출 수 있다고 생각하는 건 **어리석음** 임
  - 어차피 변호사 비용은 이미 청구되고 있을 테니, 그냥 **법무팀을 활용** 하는 셈임  
유출은 되돌릴 수 없으니 차라리 제품 로드맵에 포함시키는 게 현실적임

- 과거 회사들이 **영업비밀** 이라 부르던 내용이 소스에 그대로 들어가 있는 걸 보고 놀람  
주석에 비즈니스 배경까지 적혀 있음  
예: “하루 25만 API 호출 낭비” 같은 운영 데이터가 그대로 노출됨
  - 주석은 사실상 **에이전트 코딩의 핵심 해킹** 임  
문서보다 주석을 더 잘 읽기 때문에, 장기 기억처럼 활용 가능함
  - 대부분의 대형 비공개 코드베이스도 비슷함  
단지 Anthropic은 유출될 줄 몰랐을 뿐임
  - 설정 이유를 설명하는 좋은 주석임  
경쟁사 입장에서는 별 가치 없는 정보임
  - 코드 내에 가능한 많은 정보를 담는 게 실용적임  
어차피 유출을 예상하지 않았을 것임
  - 모든 맥락을 코드 안에 넣는 건 **에이전트 친화적 설계의 종착점** 같음  
별도 문서로 설명할 필요가 없어짐

- 일부 기능이 `process.env.USER_TYPE === 'ant'` 조건으로 잠겨 있음  
즉, **Anthropic 직원용 지침이 더 엄격하고 솔직함** — 흥미로운 구조임
- 이미 HN 원글이 인기인데, 굳이 HN 댓글 요약 블로그를 또 올릴 필요가 있나 의문임
  - 해당 블로그는 **AI가 일부 작성한 흔적** 이 보임
  - 원글이 산만했기 때문에 요약이 필요했다는 의견도 있음
  - HN 문화가 **자기참조적** 으로 흐르는 경향이 있음

- 여전히 Claude Code는 훌륭하다고 생각함  
OpenAI나 Gemini로 바꿀 이유가 없음
  - 나는 Claude Code에 실망해 **Codex로 전환** 했는데, 웹·모바일 개발에서는 거의 비슷하게 잘 작동함

- “Undercover mode”라는 이름과 “Claude Code 언급 금지” 문구가 섬뜩하게 들리지만, 실제 코드를 보면 내부 코드명 보호 목적이 더 큼  
[소스 링크](https://github.com/alex000kim/claude-code/blob/main/src/util...)
  - 코드명 보호는 이해하지만, **AI 생성 흔적을 지우는 것** 은 의미가 다름  
꽤 중요한 변화로 느껴짐
  - “인간 개발자처럼 커밋 메시지를 작성하라”는 문구가 핵심임
  - “BAD 예시”로 Claude 관련 문구를 금지한 걸 보면, 의도는 명확히 **AI 노출 방지** 임
  - 아마도 개발자들이 회사 프로젝트에서 AI 사용을 **눈에 띄지 않게** 하려는 목적임
  - 오픈소스 기여 시 Claude가 자동으로 **정체를 드러내지 않도록** 설계된 것 같음

- “Anti-distillation: 가짜 툴을 심어 복제 방지”라는 아이디어가 흥미로움  
만약 중국 경쟁사들이 그 가짜 툴을 실제로 구현한다면 반전일 듯함
  - 조만간 **zAI, Qwen, Minimax CC** 같은 복제 버전이 나올 것 같음  
요즘은 모델보다 **데이터와 인퍼런스 비용** 이 경쟁 포인트라 생각함  
이 주제에 대해 더 이야기 나누고 싶음
  - 이런 **distillation 논의 자체가 공허** 하게 느껴짐  
이미 이 회사들도 남의 데이터를 도용해 제국을 세웠으니까임
  - 사실 양쪽 모두 서로를 **증류(copy)** 하고 있음  
품질은 정체되고, 진짜 차이는 **툴링 완성도** 에 있음  
이번 유출로 그 격차가 줄어들 수도 있음
  - 가짜 툴은 단순히 **정규식으로 걸러낼 수 있는 미끼** 일 뿐임  
요즘은 distillation 자체가 줄어드는 추세임
  - “우리는 남의 저작물을 훔쳤지만, 너희는 우리 걸 훔치지 마라”는 식의 **아이러니한 태도** 가 웃김

- 내가 만든 **시각적 가이드** 를 공유함  
[ccunpacked.dev](https://ccunpacked.dev/)

## 원문

> **[The Claude Code Source Leak: fake tools, frustration regexes, undercover...](https://alex000kim.com/posts/2026-03-31-claude-code-source-leak/)**
>
> Anthropic accidentally shipped a source map in their npm package, exposing the full Claude Code source. Here's what I found inside.

## 출처 / GeekNews

> **[Claude Code 소스 유출: 가짜 도구, 욕설 감지 정규식, 은폐 모드 등 내부 구조 | GeekNews](https://news.hada.io/topic?id=28074)**
>
> Anthropic이 npm 패키지에 소스맵을 포함해 배포하면서 Claude Code의 전체 코드가 공개되어, 내부 기능과 실험적 플래그가 모두 드러남코드에는 모델 모방 방지를 위한 가짜 도구 삽입(anti-distillation), AI 정체를 숨기는 undercover 모드, 욕설 감지용 frustration regex 등이 포함됨네이티브 클라이언트 인증

* * *

### **ℹ 알려드립니다**

이 글은 국내외 IT 소식들을 공유하는 [GeekNews](https://news.hada.io/)의 운영자이신 [xguru](https://news.hada.io/user?id=xguru)님께 허락을 받아 GeekNews에 게제된 AI 관련된 소식을 공유한 것입니다.

출처의 [GeekNews](https://news.hada.io/) 링크를 방문하시면 이 글과 관련한 추가적인 의견들을 보시거나 공유하실 수 있습니다! 😉

🎁 아래↘쪽에 좋아요❤를 눌러주시면 새로운 소식을 정리하고 공유하는데 힘이 됩니다~ 🤩
