ANTHROPIC_BASE_URL ≠ 공식 주소) 시 시스템 프롬프트 Today's date is... 행을 텍스트 스테가노그래피로 바꾸는 사실이 밝혀졌습니다. 육안으로 거의 구분할 수 없는 Unicode 아포스트로피와 날짜 구분자를 전환해 시간대와 중국 도메인/AI 랩 히트 정보를 서버로 몰래 되돌려 보냈습니다. Anthropic은 2.1.197에서 관련 코드를 제거했습니다. 본문은 Claude 개발자와 컴플라이언스 담당자를 위해 ① 사건 A(Desktop 브라우저 주입)와 사건 B(Code 스테가노그래피) 완전 구분, ② Unicode 매핑 표와 기술 원리, ③ 반증류 동기와 HN 양파 논쟁, ④ 6단계 자가 점검 Runbook, ⑤ 하드 데이터와 AI 벤더 신뢰 경계 관점을 제공합니다.
Claude Code 스테가노그래피 사건: 무슨 일이 있었나? 두 사건을 혼동하지 않기
TL;DR: 이번 논란은 두 개의 독립 사건이 겹쳐 확대된 것입니다. 혼동하면 사실 오류가 납니다. 사건 A는 4월 Claude Desktop의 브라우저 Native Messaging 매니페스트 무음 기록, 사건 B는 6월 30일 Claude Code의 시스템 프롬프트 Unicode 핑거프린트입니다. 후자가 본문 주제이며 비공식 Base URL 설정 시에만 발동하며 모든 대화에서 반드시 발동하는 것은 아닙니다.
사건 A(2026년 4월, Alexander Hanff 폭로): Claude Desktop(macOS) 설치 후 폭로에 따르면 Chrome, Edge, Brave, Arc, Vivaldi, Opera 등 브라우저 디렉터리에 com.anthropic.claude_browser_extension.json을 무음 기록하고 3개 확장 ID에 샌드박스 밖 chrome-native-host 호출을 사전 승인합니다. 브라우저 미설치 시에도 디렉터리를 사전 생성하며 삭제 후 재시작 시 복구됩니다. 독립 컨설턴트 Noah Kenney(Digital 520)가 Hanff의 기술 주장 재현 가능을 확인했고 안천(Antiy) 랩이 전용 위험 분석 보고서를 발표했습니다. Anthropic은 공식 공개 대응 없이 후속 버전에 승인 스위치를 추가했으나 기반 권한 모델은 근본 제거되지 않았습니다.
사건 B(2026년 6월 30일, thereallo.dev 리버스 엔지니어링): 개발자가 Claude Code 바이너리를 분석해 ANTHROPIC_BASE_URL ≠ api.anthropic.com일 때 시스템 프롬프트 Today's date is... 행이 날짜 구분자와 Unicode 아포스트로피 전환으로 사용자 분류 신호를 인코딩함을 발견했습니다. 분석자는 2.1.193 / 2.1.195 / 2.1.196 세 버전 모두 존재를 확인했고 HN 스레드는 수 시간 만에 프론트 페이지에 올라 350+ points, 100+ 댓글을 기록했습니다.
수정 타임라인: Anthropic은 코드 존재를 인정했고 2026년 7월 1일 Claude Code 2.1.197을 배포해 관련 로직을 제거했으나 changelog에는 이 변경이 기록되지 않았습니다.
붙은 라벨 차이: 사건 A는 보안계에서 "spyware" / "backdoor"로, 사건 B는 "prompt steganography" / "covert channel"(프롬프트 스테가노그래피/은밀 채널)로 불립니다.
컴플라이언스 표현 주의: 전문에서 「폭로에 따르면/리버스 엔지니어링 보고에 따르면/被指控(alleged)」로 표현합니다. 목적(반증류)과 수단(스테가노그래피)은 분리 평가하고 의도를 확정 사실과 혼동하지 마십시오.
| 차원 | 사건 A: 무음 브라우저 주입 | 사건 B: 시스템 프롬프트 스테가노그래피 |
|---|---|---|
| 관련 제품 | Claude Desktop(macOS 클라이언트) | Claude Code(CLI 코딩 도구) |
| 정보 출처 | Alexander Hanff(The Register) | thereallo.dev → Reddit → HN |
| 시기 | 2026년 4월(약 4/18~) | 2026년 6월 30일 |
| 트리거 조건 | Claude Desktop 설치/시작 즉시 | ANTHROPIC_BASE_URL 비공식일 때만 |
| 핵심 동작 | Native Messaging 매니페스트 기록, 확장에 샌드박스 밖 호스트 호출 사전 승인 | Today's date 행 Unicode와 날짜 형식 변경 |
Claude Code는 중국 프록시를 어떻게 식별하나? Unicode 핑거프린트 매핑 표
핵심 전제: ANTHROPIC_BASE_URL을 비공식 주소(프록시, 게이트웨이, 제3자 재판매, OpenAI 호환 레이어)로 지정한 경우에만 발동합니다. 공식 api.anthropic.com에서는 손대지 않습니다. 발동 후 분류 신호는 무해해 보이는 Today's date is ... 행에 숨겨집니다.
| 감지 상황 | 날짜 형식 | Today's 아포스트로피 | Unicode |
|---|---|---|---|
| 기본(히트 없음) | 2026-06-30 | ' 표준 ASCII 아포스트로피 | U+0027 |
| 중국 기관/딜러 도메인 히트 | 2026-06-30 | ' 오른쪽 작은따옴표 | U+2019 |
| AI 랩 키워드 히트 | 2026-06-30 | ʼ 수식 문자 아포스트로피 | U+02BC |
| 도메인+랩 동시 히트 | 2026-06-30 | ʹ 수식 문자 프라임 | U+02B9 |
| 중국 시간대 중첩 | 2026/06/30(/ 구분) | (위 규칙 따름) | — |
중국 시간대는 Asia/Shanghai 또는 Asia/Urumqi를 가리킵니다. 도메인과 키워드 목록은 base64 + XOR(91)로 경미 난독화되어 약 147개 도메인 규칙을 포함합니다. 키워드에는 deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai 등이 있습니다. 쉽게 말해 요청은 겉으로 평범한 영어 프롬프트지만 백엔드는 아포스트로피 Unicode 코드 포인트만 봐도 「해외 VPN을 쓰지만 실제로는 중국 시간대, 심지어 특정 중국 AI 랩 의심」이라고 태그할 수 있습니다. 이것이 전형적인 은밀 채널(covert channel)입니다.
echo $ANTHROPIC_BASE_URL python3 -c "s=\"Today's\"; print([hex(ord(c)) for c in s if c in \"''ʼʹ\"])" grep -r "com.anthropic.claude_browser_extension" ~/Library/Application\ Support/*/NativeMessagingHosts/ 2>/dev/null
힌트: 터미널이나 에디터에서 U+0027과 U+2019를 육안으로 구분하는 것은 거의 불가능합니다. 16진수 또는 Python ord()로 핑거프린트 표시 여부를 확인하십시오.
Anthropic은 왜 이렇게 했나? Claude 스파이웨어라 할 수 있나?
커뮤니티 주류 판단(비교적 절제): 목적은 모델 증류 방지+무단 재판매 대응입니다. Anthropic, OpenAI, Google 모두 경쟁사가 API에서 대량 출력을 끌어와 소형 모델을 훈련하는(distillation) 것을 공개적으로 우려합니다. 중국 관련 프록시, 재판매, 랩이 핵심 의심 대상이 되어 이 태깅 로직이 추가되었습니다. 목적은 이해할 수 있으나 수단이 문제입니다. 분류 신호를 육안 불가시하고 난독화 코드로 각 요청에 숨기는 행위는 개발자 신뢰에 의존하는 도구에게 신뢰의 적선을 넘습니다.
HN 커뮤니티는 두 파로 갈립니다: 「합리적 반증류 방어」 vs 「개발자 도구로서 악의에 가까운 행위」.
「스파이웨어」는 감정적 라벨입니다. 더 정확히는 사건 A는 제3자 소프트웨어 무단 변조+휴면 공격면 예약에 가깝습니다. 당장 악용되지 않았더라도 브라우저 샌드박스 밖 고권한 채널을 미리 깔아 두었고 Claude for Chrome이 스스로 공개한 프롬프트 주입 성공률(완화 없음 23.6%, 완화 있음 11.2%)과 겹쳐 위험은 현실적입니다. 사건 B는 미공개 은밀 원격 측정/사용자 분류에 가깝습니다. 스파이웨어라는 말을 쓰든 말든 핵심 문제는 같습니다: 사용자의 사전 동의 없이 의도적으로 은밀합니다.
Claude Desktop 무음 설치 삭제 방법: 6단계 자가 점검 Runbook
Base URL 확인: echo $ANTHROPIC_BASE_URL 실행. 비어 있거나 공식 api.anthropic.com이면 사건 B는 발동하지 않습니다. 프록시/게이트웨이를 가리키면 분류 대상입니다.
Claude Code 업그레이드: 버전 ≥ 2.1.197(2026-07-01 배포, 스테가노그래피 로직 제거) 확인. claude --version으로 대조하십시오.
Unicode 핑거프린트 자가 점검: 캡처한 시스템 프롬프트의 Today's를 문자 단위 Unicode 코드 포인트 확인. U+0027(정상)인지 U+2019/U+02BC/U+02B9(표시됨)인지 판단합니다.
Native Messaging 점검(사건 A): macOS에서 ~/Library/Application Support/<브라우저>/NativeMessagingHosts/com.anthropic.claude_browser_extension.json 확인 후 필요 시 삭제. Claude Desktop 재시작 시 재생성될 수 있습니다.
시간대 감사: 시스템 시간대가 Asia/Shanghai 또는 Asia/Urumqi인지 확인. 비공식 Base URL과 겹치면 날짜 구분자가 -에서 /로 바뀝니다.
엔터프라이즈 환경 강화: 프로덕션 파이프라인에서 데스크톱 Agent 계속 사용 여부를 평가합니다. 최소 권한, 명시적 승인, 감사 가능성이 기본선입니다. 민감 환경에서는 Claude Desktop과 브라우저 Native Messaging 채널을 격리하는 것을 권장합니다.
인용 가능한 하드 데이터: Claude Code 핑거프린트 사건 핵심 파라미터
도메인 규칙 수: 약 147개, base64 + XOR(91) 난독화 저장. deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai 등 AI 랩 키워드 포함.
영향 버전: 분석자는 2.1.193 / 2.1.195 / 2.1.196 모두 스테가노그래피 로직 존재 확인. 2.1.197(2026-07-01)에서 제거.
HN 커뮤니티 열기: 스레드는 수 시간 만에 프론트 페이지 도달, 350+ points, 100+ 댓글. Claude for Chrome 프롬프트 주입 성공률: 완화 없음 23.6%, 완화 있음 11.2%(Anthropic 자체 공개, 사건 A 위험 관련).
주의: 이번 사건의 진짜 경고는 「한 글자 아포스트로피」가 아니라 모델 역량이 급증하는 한편 보안 경계와 감사가 크게 뒤처질 때 벤더가 「경험/남용 방지」를 명목으로 신뢰 경계를 넘기 쉽다는 점입니다. 기본 불신, 공개를 요구하고 은닉을 거부, 최소 권한 격리——이것이 사용자와 실무자의 기본선입니다.
Claude Code로 iOS CI/CD와 AI Agent 자동화에 의존하는 팀에게 로컬 Mac에서 고권한 데스크톱 Agent를 실행하는 것은 권한 확산과 은밀 원격 측정 위험을 수반합니다. VM 공유 인스턴스 격리도 전용 베어메탈만큼 신뢰할 수 없습니다. 안정·감사 가능·7×24 온라인 Apple Silicon 프로덕션 환경에는 MESHLAUNCH Mac Mini 클라우드 대여가 일반적으로 더 나은 선택입니다. 전용 M4/M4 Pro, 일/주/월 유연 주문, Claude Desktop 로컬 고권한 채널과의 물리 격리, Agent 워크로드를 통제 가능한 클라우드 노드에서 실행할 수 있습니다.
참고 출처: The Register(Claude Desktop 권한 변경, 2026-04); Malwarebytes / gHacks / YOOTA; thereallo.dev(Claude Code 원본 리버스 엔지니어링); Tech Startups / TMC Insight / Developers Digest / TechTimes(2.1.197 수정); Antiy Labs(안천) Claude Desktop 위험 분석 보고서.
전통적 의미의 스파이웨어는 아니지만, 리버스 엔지니어링 보고에 따르면 시스템 프롬프트에 미공개·난독화된 핑거프린트를 숨겨 프록시 경유 중국 관련 사용자를 표시했습니다. Anthropic은 2.1.197에서 제거했습니다. 더 정확한 표현은 「미공개 은밀 채널」입니다.
리버스 엔지니어링 보고에 따르면 비공식 ANTHROPIC_BASE_URL 설정 시에만 Asia/Shanghai 또는 Asia/Urumqi를 확인합니다. 공식 엔드포인트에서는 날짜 행이 변경되지 않습니다.
Today's의 아포스트로피가 U+0027, U+2019, U+02BC, U+02B9 사이에서 전환되며 중국 기관 도메인·AI 랩 키워드 히트 여부를 인코딩합니다. 자세한 내용은 본문 Unicode 매핑 표를 참조하십시오.
아닙니다. 4월 Claude Desktop의 Native Messaging 매니페스트 무음 기록은 독립 사건 A입니다. 6월 30일 Claude Code 프롬프트 스테가노그래피는 사건 B로 제품과 트리거 조건이 다릅니다.
커뮤니티 주류 판단은 모델 증류 방지와 무단 API 재판매 대응이 목적입니다. 논쟁은 수단이 과도하게 은밀하고 사용자에게 공개되지 않았다는 점입니다. 격리 배포 방안은 가격 페이지를 참조하십시오.
사건 B는 Claude Code에서 비공식 ANTHROPIC_BASE_URL 설정 시에만 발동합니다. 공식 엔드포인트 사용자는 이 로직의 영향을 받지 않습니다.
~/Library/Application Support/<브라우저>/NativeMessagingHosts/에서 com.anthropic.claude_browser_extension.json을 찾아 삭제합니다. Claude Desktop 재시작 시 재생성될 수 있습니다. 먼저 고객 센터 관련 안내를 확인하십시오.
Anthropic은 코드 존재를 인정했고 2026년 7월 1일 2.1.197에서 제거했지만 changelog에는 이 변경이 기록되지 않았습니다. 즉시 업그레이드하고 버전 번호를 확인하십시오.