Claude Code 또는 프록시 경유 Anthropic API를 쓰는 개발자라면 「Claude가 몰래 추적하나?」라는 질문을 접했을 가능성이 큽니다. 결론부터 말하면, 2026년 6월 말 역공학 보고에 따르면 Claude Code는 비공식 ANTHROPIC_BASE_URL 설정 시 시스템 프롬프트의 Today's date is... 한 줄을 텍스트 스테가노그래피로 바꿔, 육안으로 구분 불가한 Unicode 아포스트로피·날짜 구분자로 중국 관련 도메인·AI 랩·타임존 정보를 요청마다 인코딩합니다. Anthropic은 2.1.197에서 해당 코드를 제거했습니다. 목적은 반증류로 보이지만, 비공개·혼동 유발이라는 점이 논쟁의 핵심이며, 4월 Claude Desktop의 브라우저 무음 주입 사건과는 별개로 봐야 합니다. 본 글은 두 사건 대조표, Unicode 매핑, 동기 분석, 7단계 점검, 8개 FAQ, 출처 링크까지 한 번에 정리합니다.
01 Claude Code 스테가노그래피 vs Desktop 주입: 두 사건을 구분하세요
이번 파문은 두 독립 사건이 겹치며 확산되었습니다. HN·Reddit·보안 커뮤니티 독자에게는 구분이 필수입니다.
| 차원 | 사건 A: 무음 브라우저 주입 | 사건 B: 시스템 프롬프트 스테가노그래피 |
|---|---|---|
| 관련 제품 | Claude Desktop(macOS 클라이언트) | Claude Code(CLI 코딩 도구) |
| 폭로 경로 | Alexander Hanff(프라이버시 컨설턴트, The Register 기고) | 개발자 바이너리 역공학, thereallo.dev 게시 후 Reddit → HN 확산 |
| 시점 | 2026년 4월(약 4/18~) | 2026년 6월 30일 |
| 핵심 행위 | Chrome/Edge/Brave/Arc 등에 Native Messaging 매니페스트 com.anthropic.claude_browser_extension.json 무음 기록, 3개 확장 ID가 샌드박스 밖 chrome-native-host 호출 사전 승인; 브라우저 미설치 시에도 디렉터리 선생성, 삭제 후 재시작 시 복구 |
ANTHROPIC_BASE_URL ≠ api.anthropic.com일 때 시스템 프롬프트 Today's date is... 행을 스테가노그래피로 변조 |
| 붙은 라벨 | "spyware" / "backdoor"(스파이웨어/백도어) | "prompt steganography" / "covert channel"(프롬프트 스테가노/은밀 채널) |
| 트리거 조건 | Claude Desktop 설치·실행 즉시 | 비공식 Base URL(프록시) 설정 시에만; 매 대화마다 항상 발동하지는 않음 |
| Anthropic 대응 | 공식 성명 없음; 이후 버전에 승인 스위치 추가, 근본 권한 모델은 잔존 | 코드 존재 인정, 7/1 2.1.197에서 제거, changelog 미기재 |
- 사건 A 재현·검증: 독립 컨설턴트 Noah Kenney(Digital 520)가 Hanff 주장 재현 가능 확인; 안천(Antiy Labs) 전용 위험 분석 보고서 발행.
- 사건 B 버전 범위: 역공학자가 2.1.193 / 2.1.195 / 2.1.196에서 동일 로직 확인; HN 토론은 수 시간 내 350+ points, 100+ 댓글.
- 개발자 신뢰 위기: 데스크톱 AI Agent·CLI가 시스템 권한을 갖을 때 사전 동의 없이 의도적으로 숨긴 행위는 목적과 무관하게 신뢰 레드라인입니다.
- 모델 선택과의 연결: Anthropic은 OpenRouter 6월 랭킹에서 여전히 큰 점유율을 유지하지만, 「API 편의성」과 「도구 신뢰성」은 별개 축입니다.
본문은 「보도·역공학 보고·혐의(alleged)」 표현을 유지합니다. Anthropic의 반증류 목적과 수단은 분리 평가해야 하며, 수단이 논쟁의 중심입니다.
02 Claude Code 스테가노그래피 동작 원리: Unicode 아포스트로피 매핑표
전제: ANTHROPIC_BASE_URL을 비공식 주소(프록시, 게이트웨이, 리셀러, OpenAI 호환 레이어)로 둘 때만 발동합니다. 공식 api.anthropic.com에는 손대지 않으며, 일반 Claude 웹 사용자는 사건 B와 무관합니다.
트리거 후 프로그램은 시스템 프롬프트의 무해해 보이는 Today's date is ... 한 줄에서 두 가지를 수행합니다.
- 날짜 구분자 변경: 시스템 타임존이
Asia/Shanghai또는Asia/Urumqi이면2026-06-30→2026/06/30. - 아포스트로피 교체:
Today's의 어포스트로피를 시각적으로 동일·Unicode는 다른 문자로 바꿔 「무엇에 매칭됐는지」를 인코딩.
| 탐지 조건 | 날짜 형식 | 아포스트로피 문자 | Unicode |
|---|---|---|---|
| 기본(도메인 목록·AI 랩 미매칭) | 2026-06-30 |
' 표준 ASCII |
U+0027 |
| 중국 기관·리셀러 도메인 매칭 | 2026-06-30 |
' 오른쪽 작은따옴표 |
U+2019 |
| AI 랩 키워드(deepseek/moonshot/zhipu/minimax/baichuan/stepfun/01ai 등) | 2026-06-30 |
ʼ 수식 아포스트로피 |
U+02BC |
| 도메인·랩 동시 매칭 | 2026-06-30 |
ʹ 수식 각분 |
U+02B9 |
| 중국 타임존(Asia/Shanghai / Asia/Urumqi) 중첩 | 2026/06/30 |
(아포스트로피 규칙 동일) | — |
요약: 요청은 평범한 영문 프롬프트처럼 보이지만, 백엔드는 날짜 구분자와 아포스트로피 Unicode만으로 「해외 VPN + 중국 타임존 + 특정 AI 랩 의심」 등을 태깅할 수 있습니다. 도메인·키워드 목록은 base64 + XOR(91)로 경량 난독화, 약 147개 규칙. 전형적인 은밀 채널(covert channel)·프롬프트 스테가노그래피입니다.
# Today's 어포스트로피 Unicode 코드 포인트 확인(예시)
echo "Today's date is 2026-06-30" | xxd | grep -A1 "Today"
# U+0027 이외 바이트 시퀀스면 지문화 가능성
python3 -c "s=\"Today\u2019s\"; print([hex(ord(c)) for c in s if c in \"'\u2019\u02bc\u02b9\"])"
03 Anthropic의 동기는? 스파이웨어로 볼 수 있나?
커뮤니티 주류 해석(비교적 절제된 톤): 목적은 반증류 + 무단 API 리셀 방어입니다. Anthropic·OpenAI·Google 모두 경쟁사의 API 대량 출력으로 소형 모델을 증류(model distillation)하는 위험을 공개 우려해 왔습니다. 중국 관련 프록시·리셀·랩이 의심 대상이 되어 「태깅」 로직이 추가된 것으로 보입니다.
목적은 이해 가능, 수단이 문제: 분류 신호를 육안 불가·코드 난독화로 모든 요청에 숨기는 것은 개발자 신뢰에 기반한 도구에게 레드라인입니다. HN에서는 두 진영이 대립합니다.
- 「합리적 반증류 방어」: API 리셀·증류는 실재 위협, 벤더는 모델 보호 권리가 있다.
- 「개발자 도구에 가까운 악의」: 은밀·난독화·비공개 — 사용자가 바이너리 역공학으로만 발견하는 것은 기본 동작이 될 수 없다.
「스파이웨어」는 감정적 라벨이기도 합니다. 더 정확한 표현은 다음과 같습니다.
- 사건 A는 「무승인 제3자 소프트웨어 변조 + 휴면 공격면 예약」에 가깝습니다. Claude for Chrome 자체 공개 프롬프트 인젝션 성공률(완화 없음 23.6%, 완화 있음 11.2%)과 겹치면 위험은 실질적입니다.
- 사건 B는 「비공개 은밀 원격 측정·사용자 분류」 — 전통적 정보 탈취 트로jan이라기보다 covert channel에 가깝습니다.
"spyware" 용어 여부와 무관하게, 핵심은 사용자 사전 동의 없이 의도적으로 숨긴다는 점입니다.
04 Claude Code 자가 점검·방어: 7단계 실무 가이드
ANTHROPIC_BASE_URL확인: 셸 설정 또는.env에서echo $ANTHROPIC_BASE_URL실행. 비어 있거나api.anthropic.com이면 사건 B 미발동; 프록시 사용자는 우선 점검.- Claude Code 2.1.197+ 업그레이드: Anthropic이 2026년 7월 1일 해당 버전에서 스테가노 코드 제거(changelog 미기재, 바이너리로 재확인 권장).
- macOS 브라우저 Native Messaging 매니페스트 점검(사건 A):
~/Library/Application Support/<브라우저>/NativeMessagingHosts/com.anthropic.claude_browser_extension.json— Chrome, Edge, Brave, Arc, Vivaldi, Opera, Chromium. - 필요 시 삭제·재생성 모니터링: JSON 수동 삭제 후 Claude Desktop 재시작, 재생성 여부 관찰. 후속 버전 승인 스위치가 있어도 근본 권한 모델은 잔존한다는 보고가 있습니다.
- 시스템 타임존·지문 잔존 검증:
Asia/Shanghai/Asia/Urumqi가 날짜 구분자에 미치는지 확인; 구버전 사용 시 시스템 프롬프트 아포스트로피를 hex 도구로 검사. - 기업·민감 환경 최소 권한 평가: Claude Desktop / Claude Code를 고권한 프로그램으로 취급 — 명시적 승인, 네트워크 격리, 감사 로그가 최소선; 프로덕션 Agent 체인 유지 여부를 재평가.
- 공식·커뮤니티 후속 추적: Anthropic changelog·보안 공지 구독; 제3자 API 리셀러에 Base URL 라우팅·컴플라이언스 공개 요구.
05 인용 가능 핵심 데이터, FAQ, AI 벤더 과잉에 대한 대응
인용 가능 하드 데이터(공개 역공학·커뮤니티 논의 기준, 발행 전 재확인 권장):
- 도메인 규칙 규모: base64 + XOR(91) 난독화, 약 147개 도메인·키워드 규칙
- 영향 버전: 2.1.193 / 2.1.195 / 2.1.196 존재 확인; 2.1.197에서 제거
- HN 열기: 수 시간 내 프론트, 350+ points, 100+ 댓글, 커뮤니티 분열
- Claude for Chrome 프롬프트 인젝션: 완화 없음 23.6%, 완화 있음 11.2%(Anthropic 자체 공개, 사건 A 공격면 관련)
- Native Messaging 사전 승인: 3개 확장 ID가 샌드박스 밖
chrome-native-host호출, 브라우저 미설치 시에도 디렉터리 선생성
Claude Code는 스파이웨어인가요?
전통적 스파이웨어는 아니지만, 시스템 프롬프트에 비공개·난독화 지문을 숨겨 프록시 경유 중국 관련 사용자를 태깅했습니다. Anthropic은 2.1.197에서 제거. 「정보 탈취 트로jan」보다 「비공개 은밀 채널」이 더 정확한 표현입니다.
Claude Code가 내 타임존을 감지하나요?
역공학 보고에 따르면 Asia/Shanghai / Asia/Urumqi를 확인하지만, 비기본 ANTHROPIC_BASE_URL 사용 시에만입니다. 공식 엔드포인트에서는 날짜 행이 변하지 않습니다.
Today's date 아포스트로피 Unicode 트릭이란?
Today's의 어포스트로피가 U+0027, U+2019, U+02BC, U+02B9 사이에서 전환되어, 엔드포인트가 중국 관련 도메인·AI 랩 키워드·둘 다·해당 없음 중 어디에 매칭됐는지 인코딩합니다.
Anthropic이 왜 이 기능을 넣었나요?
주류 해석은 모델 증류(distillation)와 무단 API 리셀 탐지 — 합법적 목표이나, 비공개·은밀 구현이 신뢰 위기를 촉발했습니다.
Claude Desktop 「스파이웨어」와 같은 사건인가요?
아닙니다. 2026년 4월 독립 사건으로, Claude Desktop이 브라우저 Native Messaging 매니페스트를 무음 기록한 것이며, Alexander Hanff가 The Register에 폭로했습니다.
일반 Claude 웹 사용자도 영향받나요?
사건 B는 Claude Code에서 비공식 ANTHROPIC_BASE_URL 설정 시에만 발동하며, 공식 엔드포인트 웹 사용자는 해당 로직과 무관합니다.
Claude Desktop이 주입한 브라우저 파일은 어떻게 삭제하나요?
~/Library/Application Support/<브라우저>/NativeMessagingHosts/에서 com.anthropic.claude_browser_extension.json 삭제. Claude Desktop 재시작 시 재생성될 수 있습니다.
이 사건 이후 Anthropic을 신뢰해야 할까요?
신뢰는 「재현 가능·감사 가능·끌 수 있음」에 기반해야 하며, 「바이너리 역공학으로만 발견한 비밀」이 아닙니다. 벤더는 반증류를 공개하고 사용자 스위치를 제공할 수 있습니다.
진짜 경고는 「한 글자 아포스트로피」가 아니라, 모델 역량은 급성장하는데 보안 경계·승인·감사가 뒤처질 때 벤더가 「UX/남용 방지」 명목으로 사용자·타사 소프트웨어와의 신뢰 경계를 일방적으로 넘는다는 점입니다. 실무 대응:
- 기본 불신, 증거 우선: 재현·감사·비활성화 가능할 때만 신뢰.
- 「숨김 대신 공개」 요구: 반증류는 공개 설명과 옵트아웃으로 — 구두점에 숨기지 말 것.
- 최소 권한 + 경계 격리: 모든 데스크톱 Agent를 고권한 프로그램으로 취급.
- 선택과 규제: GDPR·개인정보보호법·시장 선택이 「기술 무경계」를 제약하는 최종 수단.
기술은 중립적일 수 있지만 기업은 그렇지 않습니다. 역량이 클수록 자기 제약이 필요하며, 그것이 사용자 역공학으로만 드러나면 안 됩니다.
원본 역공학·권위 보도(링크 기준 재확인 권장):
thereallo.dev: Claude Code Prompt Steganography(원본 역공학)
The Register: Claude Desktop changes software permissions without consent
제3자 분석·보안 연구:
Malwarebytes: Claude Desktop Native Messaging 보도
안천(Antiy Labs): Claude Desktop 고권한 브라우저 채널 위험 분석
Hacker News: Claude Code steganography 토론
AI 코딩 Agent를 감사 가능·격리 가능한 프로덕션에서 7×24 가동할 때, 공유 VM의 Hypervisor 오버헤드와 통제 불가능한 시스템 주입은 모델 성능과 무관하게 컴플라이언스·안정성 리스크를 키웁니다. 제로 로스 네이티브 연산, 안정적 iOS CI/CD, AI Agent 7×24 자동화가 필요한 프로덕션 환경에서는 ZUKCLOUD 베어메탈 Mac mini 클라우드 노드가 보통 더 나은 선택입니다: Apple Silicon 물리기 독점, Hypervisor 손실 없음, 7×24 온라인, 일·주·월 탄력 주문. 베어메탈 아키텍처 선언에서 UMA 제로카피·MDM 오케스트레이션 관점으로, Agent를 완전히 통제하는 물리 경계 안에 두는 것이 「블랙박스 데스크톱 도구 권한 침범」에 맞서는 가장 실용적인 엔지니어링 선택 중 하나임을 논증했습니다.