AI 보안 2026-07-03

Claude Code 스테가노그래피 사건: Anthropic은 아포스트로피 하나로 사용자를 분류했다(2026)

한 줄 결론: 역어셈블리 보고에 따르면, 2026년 6월 말 Claude Code(웹 버전이 아닌 CLI)는 사용자가 ANTHROPIC_BASE_URL을 비공식 프록시 서버로 지정했을 때 시스템 프롬프트의 Today's date is... 행을 문자 스테가노그래피로변경했습니다. 날짜 구분자와 육안으로 구별하기 어려운 Unicode 아포스트로피를 바꿔 시간대와 중국 도메인/AI 랩 히트 정보를 서버로 몰래 실어 보냈습니다. Anthropic은 2.1.197(7월 1일)에서 관련 코드를 제거했습니다. 커뮤니티 주류 해석은 반모델 증류 수단이며, 논쟁의 초점은 목적보다 은닉적이고 의도적으로 난독화된 수단에 있습니다.

Claude Code 시스템 프롬프트 Unicode 아포스트로피 지문 U+2019 U+02BC 스테가노그래피 2026

⚠️ 본문은 공개 보도와 역어셈블리 보고를 바탕으로 「보도에 따르면/역어셈블리 보고에 따르면/혐의받고 있다」는 표현으로 법적 리스크를 낮췄습니다. Anthropic의 동기는 커뮤니티 추론이며 공식 확인이 아닙니다. 정보는 2026년 7월 3일 기준입니다.

01 · 핵심 요약

차원 요점
사건 B 폭로2026년 6월 30일, 개발자가 Claude Code 바이너리를 역어셈블리해 thereallo.dev에 공개. Reddit → Hacker News로 확산
트리거 조건ANTHROPIC_BASE_URL ≠ api.anthropic.com(프록시/게이트웨이/재판매)일 때만. 공식 엔드포인트는변경 없음
인코딩 수단시스템 프롬프트 Today's date is... 행: 날짜 구분자(- vs /) + Unicode 아포스트로피(U+0027 / U+2019 / U+02BC / U+02B9)
규칙 목록base64 + XOR(91) 경미한 난독화, 약 147개 도메인 규칙. deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai 등 AI 랩 키워드 포함
영향 버전역어셈블리 담당자는 2.1.193 / 2.1.195 / 2.1.196 모두 존재 확인. 2.1.197(2026-07-01)에서 제거, changelog 미기재
커뮤니티 열도HN 스레드는 수 시간 만에 front page, 350+ points, 100건 넘는 댓글. 「정당한 반증류 방어」vs「개발자 도구로서 악의에 가깝다」로 분열
사건 A(별건)2026년 4월 Alexander Hanff가 Claude Desktop Native Messaging 조용한 주입 폭로(제3절 참조)
프롬프트 주입 리스크Anthropic 자체 데이터: Claude for Chrome 프롬프트 주입 성공률 완화 없음 23.6%, 완화 있음 11.2%——사건 A 고권한 채널과 겹쳐 리스크 무시 불가

02 · 세 가지핵심 문제: 개발자가 배신감을 느끼는 이유

  1. 두 사건이 혼동되기 쉽다: 미디어와 커뮤니티는 4월 Claude Desktop 브라우저 주입(사건 A)과 6월 Claude Code 프롬프트 스테가노그래피(사건 B)를 「Anthropic 스파이웨어」로 한데 묶곤 합니다. 제품·트리거·기술 메커니즘이 전혀 다르므로 혼동은 판단과 SEO 신뢰성을 해칩니다.
  2. 은닉 채널과 개발자 신뢰의 충돌: 역어셈블리 보고에 따르면 분류 신호는 문장부호 안에 숨겨지고, 코드는 base64+XOR로 난독화되며 사용자에게 미공개였습니다. 신뢰를 전제로 하는 CLI 코딩 도구에서 동기가 반증류라 해도 수단은 HN 사용자들에게한계를 넘었다고 지적받고 있습니다.
  3. 프록시 사용자에게 재현 가능한 자가 점검 환경 부족: 공식 엔드포인트와 프록시 엔드포인트 하에서 시스템 프롬프트 차이를 비교하려면 격리 macOS에서 Claude Code를 설정하고 ANTHROPIC_BASE_URL과 Native Messaging 목록을 감사해야 합니다. 주력 Mac에 여러 버전 CLI와 브라우저 설정이 섞이면 디버깅 비용이 극히 높아집니다.

03 · 두 사건을 혼동하지 말 것: 사건 A vs 사건 B

이번 파장은 독립적이면서 연관된 두 사건이 겹쳐 확대된 것입니다.작성 전 반드시 구분하세요. 영어권 기술 독자(HN / Reddit / 보안계)는 혼동을 금방 간파합니다.

차원 사건 A: 조용한 브라우저 주입 사건 B: 시스템 프롬프트 스테가노그래피
대상 제품Claude Desktop(macOS 클라이언트)Claude Code(CLI 코딩 도구)
폭로자Alexander Hanff(프라이버시 컨설턴트, The Register 기고자)개발자 바이너리 역어셈블리, thereallo.dev
시기2026년 4월(약 4/18부터)2026년 6월 30일
핵심 행위Chrome/Edge/Brave/Arc/Vivaldi/Opera/Chromium에 Native Messaging 목록 com.anthropic.claude_browser_extension.json 조용히 기록, 3개 확장 ID에 샌드박스 바깥 chrome-native-host 호출 사전 승인. 확장 미설치여도 디렉터리 사전 생성, 삭제 후 Claude Desktop 재시작 시 부활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 미기재

04 · 타임라인과 버전 대조

시기사건
2026년 4월보도에 따르면 Alexander Hanff가 Claude Desktop Native Messaging 조용한 주입 폭로(사건 A)
2026년 4월독립 컨설턴트 Noah Kenney(Digital 520)가 Hanff 기술 주장 재현 가능 확인. 安天实验室(Antiy Labs) 전문 리스크 분석 보고서 발표
2026년 6월 30일개발자가 thereallo.dev에 Claude Code 역어셈블리 보고 공개(사건 B). Reddit → HN 확산
2026년 6월 말HN 스레드 350+ points, 100건 넘는 댓글. 커뮤니티 양파로 분열
역어셈블리 담당자 2.1.193 / 2.1.195 / 2.1.196 모두 스테가노그래피 로직 확인
2026년 7월 1일Anthropic Claude Code 2.1.197 배포, 관련 코드 제거(changelog 미명시)

05 · 스테가노그래피는 어떻게 작동하는가

핵심 전제(역어셈블리 보고): ANTHROPIC_BASE_URL을 비공식 주소로 지정한 경우에만——프록시, 게이트웨이, 제3자 재판매, OpenAI 호환 레이어 등——트리거됩니다. api.anthropic.com에 직접 연결하면 시스템 프롬프트의 날짜 행은변경되지 않습니다.

트리거 후 프로그램은 무해해 보이는 Today's date is ... 행에 두 종류의 신호를 숨깁니다:

  1. 날짜 구분자 변경: 시스템 시간대가 Asia/Shanghai 또는 Asia/Urumqi이면 2026-06-302026/06/30이 됩니다.
  2. 아포스트로피 교체: Today's 안의 아포스트로피를 시각적으로 비슷하지만 Unicode가 다른 문자로 바꿔 「무엇에 히트했는지」를 인코딩합니다.

도메인과 키워드 목록은 base64 + XOR(91)로 경미한 난독화되며 약 147개 규칙이 있습니다. deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai 등 중국 AI 랩 관련 문자열이 포함됩니다.

쉽게 말하면: 요청은 평범한 영어 시스템 프롬프트처럼 보이지만, 백엔드가 날짜 구분자와 아포스트로피의 Unicode 코드 포인트만 봐도 사용자에게 「해외 VPN 쓰지만 실제로는 중국 시간대, 심지어 특정 AI 랩 의심」이라는 라벨을 붙일 수 있습니다. 이는 전형적인 은닉 채널(covert channel)입니다.

06 · Unicode 대조표(역어셈블리 보고 기준)

탐지 조건 날짜 형식 Today's 아포스트로피 Unicode
기본(도메인 목록 밖, 비 AI 랩)2026-06-30' 표준 ASCII 아포스트로피U+0027
중국 기관/딜러 도메인 히트2026-06-30' 오른쪽 작은따옴표U+2019
AI 랩 키워드 히트2026-06-30ʼ 수식 문자 아포스트로피U+02BC
도메인과 랩 동시 히트2026-06-30ʹ 수식 문자 프라임U+02B9
중국 시간대 겹침(Asia/Shanghai / Asia/Urumqi)2026/06/30아포스트로피 규칙은 위와 동일

07 · Anthropic은 왜 이렇게 했나? 동기 vs 수단

커뮤니티 주류 판단(절제된 표현, Anthropic 공식 성명 아님): 목적은 반모델 증류(distillation) + 무허가 재판매 대응입니다. Anthropic, OpenAI, Google 모두 경쟁사가 API 출력을 대량 수집해 소형 모델을 훈련하는 것을 우려해 왔습니다. 중국 관련 프록시·재판매·랩이 핵심 의심 대상이 되어, 보도에 따르면 이 「라벨링」 로직이 추가된 것으로 보입니다.

목적은 이해해도 문제는 수단: 분류 신호를 육안으로 보이지 않게 만들고, 의도적으로 난독화해 각 요청에 숨기는 행위는 개발자 신뢰를 전제로 하는 도구에 빨간선입니다. Hacker News에서는 격렬히 대립했습니다:

  • 옹호파: 「정당한 반증류 방어다」
  • 비판파: 「개발자 도구로서 악의에 가깝다(malware-adjacent)」

Claude Fable 5 수출 규제AI 코딩 어시스턴트 선정 비교를 함께 읽으면 Anthropic의 접근 통제와 개발자 생태계 긴장 관계를 더 입체적으로 이해할 수 있습니다.

08 · 이것은 스파이웨어인가?

「스파이웨어」는 감정적인 꼬리표입니다. 공개 자료에 기반한 더 정확한 표현은 다음과 같습니다:

  • 사건 A는 「제3자 소프트웨어 무허가 변경 + 휴면 공격면 예약」에 가깝습니다——즉시 악용되지 않아도 브라우저 샌드박스 바깥 고권한 채널을 미리 깔아 둔 형태입니다. Anthropic 자체 데이터: Claude for Chrome 프롬프트 주입 성공률 완화 없음 23.6%, 완화 있음 11.2%로 리스크는 현실적입니다.
  • 사건 B는 「미공개 은닉 텔레메트리/사용자 분류」에 가깝습니다.

스파이웨어라는 말을 쓰든 말든 핵심은 하나입니다: 사용자의 사전 동의 없이, 의도적으로 은닉되어 있다. 주류 해석은 Anthropic의 의도가 무허가 재판매와 증류 탐지이며 개인 감시가 아니라고 봅니다. 논쟁은 목적보다 수단(은닉, 난독화, 미공개)에 있습니다.

09 · 제3자 기술 확인(사건 A)

Hanff의 최초 폭로 외에 공개 보도에 따르면:

  • Noah Kenney(Digital 520 독립 컨설턴트)가 Hanff의 기술 주장 재현 가능 확인
  • 安天实验室(Antiy Labs)가 Claude Desktop 고권한 브라우저 채널 전문 리스크 분석 보고서 발표

사건 B의 기술 세부는 주로 thereallo.dev 역어셈블리 보고와 Tech Startups, TMC Insight, Developers Digest, TechTimes 등 후속 미디어 보도에 기반합니다.

10 · 5단계 자가 점검 및 대응 체크리스트

  1. ANTHROPIC_BASE_URL과 Claude Code 버전 감사: 환경 변수가 api.anthropic.com 이외 프록시를 가리키는지 확인. 2.1.193~196 사용 시 즉시 2.1.197+로 업그레이드.
  2. macOS Native Messaging 목록 확인(사건 A): ~/Library/Application Support/<브라우저>/NativeMessagingHosts/에서 com.anthropic.claude_browser_extension.json 검색 후 필요 시 삭제. Claude Desktop 재시작 시 재생성 주의.
  3. 시스템 시간대와 프록시 경로 감사: Asia/Shanghai, Asia/Urumqi 등 설정 대조, 날짜 구분자와 아포스트로피가 정보를 어떻게 조합해 인코딩하는지 이해.
  4. 기업/민감 환경 최소 권한: Claude Desktop / Claude Code를 고권한 데스크톱 Agent로 취급, 명시 승인·감사·프로덕션 분리 철저. MCP Server 처음부터 구축 가이드로 Agent 도구 호출 경계 정리.
  5. 기본 불신·공개 요구: 재현 가능·감사 가능·끌 수 있음이 신뢰 기준. 벤더는 반증류를 공개적으로 하고 스위치를 제공해야 하며, 문장부호에 숨기면 안 됩니다.

11 · AI가 강해지는 시대, 어떻게 대응할까

이번 교훈은 「아포스트로피 하나」 자체가 아니라, 모델 역량이 급증하는 한편 안전 경계·승인·감사가 크게 뒤처져 있다는 점에 있습니다. 벤더는 「경험/남용 방지」를 명분으로 사용자와 다른 소프트웨어 벤더 간 신뢰 경계를 일방적으로 넘기 쉽습니다.

  1. 기본 불신, 증거로 판단: 재현 가능·감사 가능·끌 수 있음이 신뢰할 만합니다.
  2. 「숨기지 말고 공개」 요구: 반증류는 공개적으로——설명과 스위치를 제공하고 Unicode에 숨기면 안 됩니다.
  3. 최소 권한 + 경계 분리: 모든 데스크톱 Agent를 고권한 프로그램으로 취급합니다.
  4. 발로 투표 + 제도로 구속: GDPR/개인정보보호법과 시장 선택이 「기술 무한」을 억제하는 최종 수단입니다.

기술에는 입장이 없어도 기업에는 입장이 필요합니다. 능력이 클수록 자기 규제가 요구된다——그것은 사용자가 바이너리를 역어셈블리해야만 알게 되는 비밀이어서는 안 됩니다.

12 · FAQ

Claude Code는 스파이웨어인가요?

역어셈블리 보고에 따르면 전통적 의미의 스파이웨어는 아닙니다. 다만 시스템 프롬프트에 미공개·난독화된 지문을 숨겨 프록시 경유 중국 관련 사용자를 분류했습니다. Anthropic은 2.1.197에서 제거했습니다. 더 정확히는 「미공개 은닉 채널」입니다.

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이 이 로직을 넣은 이유는?

커뮤니티 주류 견해: 모델 증류와 무허가 API 재판매 탐지가 가장 유력——정당한 목적이지만 보도에 따르면 은닉·난독화·미공개로 구현.

Claude Desktop 스파이웨어 사건과 같은 건가요?

아닙니다. 2026년 4월 Alexander Hanff 폭로 Claude Desktop Native Messaging 조용한 주입이 사건 A, 2026년 6월 30일 thereallo.dev 폭로 Claude Code 시스템 프롬프트 스테가노그래피가 사건 B입니다.

일반 웹 버전 Claude 사용자도 영향을 받나요?

사건 B는 Claude Code에서 비공식 ANTHROPIC_BASE_URL(프록시) 설정 시에만 발동. 일반 공식 엔드포인트 사용자는 영향 없음.

Claude Desktop 주입 브라우저 파일 삭제 방법은?

~/Library/Application Support/<브라우저>/NativeMessagingHosts/에서 com.anthropic.claude_browser_extension.json 검색 후 삭제. 보도에 따르면 Claude Desktop 재시작 시 재생성될 수 있음.

Claude Code 스테가노그래피 코드가 아직 남아 있나요?

역어셈블리 담당자와 미디어 보도에 따르면 2.1.193, 2.1.195, 2.1.196에 존재. Anthropic은 2026년 7월 1일 2.1.197로 제거, changelog 미명시.

13 · 참고 출처

  • The Register: Claude Desktop changes software permissions without consent(2026-04)
  • Malwarebytes / gHacks / YOOTA: Claude Desktop Native Messaging 관련 보도
  • thereallo.dev: Claude Code prompt steganography(원본 역어셈블리 보고)
  • Tech Startups / TMC Insight / Developers Digest / TechTimes: 사건 B 보도와 2.1.197 수정
  • 安天实验室(Antiy Labs): Claude Desktop 고권한 브라우저 채널 리스크 분석
  • Hacker News: Claude Code steganography 토론 스레드(350+ points)

14 · Mac 임대: Claude Code 권한과 프록시 설정 격리 검증

사건 B를 본인이 유발했는지 정확히 가려내려면, 깨끗하고 스냅샷 가능한 macOS 환경에서 공식 api.anthropic.com과 커스텀 ANTHROPIC_BASE_URL 양쪽으로 Claude Code를 실행해 시스템 프롬프트 diff를 확보해야 합니다. 동시에 Claude Desktop이 NativeMessagingHosts에 목록을 쓰는지도 감사합니다. 주력 Mac에 Homebrew 다중 버전 CLI, 회사 VPN, 일상 브라우저 설정이 섞이면 한 번의 대조 실험으로 수주간 디버깅 기준선이 오염될 수 있습니다.

일 단위 Apple Silicon Mac 임대로 격리 노드에서 「프록시 vs 공식 엔드포인트」 A/B 테스트, Native Messaging 목록 순찰, Claude Code와 Cursor 워크플로 회귀를 완료하고 검증 후 주력기 설정 복원 여부를 결정할 수 있습니다. 요금과 기종 대조는 M 시리즈 Mac 연산력 임대 요금을 참고하세요. Fable 5 수출 규제 영향을 받는 경우에도 임대 노드에서 컴플라이언스 검사를 병행하는 편이 주력 머신에 여러 버전 Claude CLI를 무리해서 넣는 것보다 시간과 대역을 절약합니다.