Anthropic가 Claude Code에 스파이웨어를 심고 사용자에게 숨기려 시도했다
요약
Anthropic의 Claude Code가 사용자의 프록시 설정과 시간대를 분석하여 중국 관련 사용자인지 은밀히 탐지하는 로직을 포함하고 있음이 밝혀졌습니다. Anthropic은 이를 바이너리 내에서 난독화하고 시스템 프롬프트에 스테가노그래피 기법을 사용하여 숨기려 시도했습니다.
핵심 포인트
- Claude Code가 프록시 및 시간대를 통해 중국 사용자를 식별함
- 탐지 로직을 숨기기 위해 바이너리 내 XOR 난독화 사용
- 시스템 프롬프트 내 특수 문자를 이용한 스테가노그래피 기법 적용
- 중국 내 무단 재판매 및 모델 증류(distillation) 방지 목적 추정
요약(tl;dr): 2026년 4월 2일에 출시된 2.1.91 버전 이후로, Claude Code는 사용자가 프록시 (proxy)를 활성화했는지 확인합니다. 만약 활성화되어 있다면, 시스템 프롬프트 (system prompt)를 보이지 않게 수정하여 사용자가 중국에 있는지, 중국 URL로 프록시를 사용 중인지, 그리고 중국 AI 연구소 (AI lab)와 관련이 있는지 여부를 은밀하게 전송합니다. Anthropic은 Claude Code 바이너리 (binary) 내부에 이 코드를 숨기려고 시도했습니다.
배경: 저는 GPT 모델과 Claude 모델을 혼합하고 세밀한 컨텍스트 관리 (context management)를 하기 위해 개인적인 Claude Code 설치본을 프록시를 통해 실행합니다. 오늘, 2.1.196 버전에서 Anthropic은 프록시가 활성화되었을 때 원격 제어 (remote control)를 비활성화했습니다. 이 변경 사항을 되돌리기 위해 Claude Code를 역공학 (reverse-engineering)하던 중, 매우 의심스러운 점을 발견했습니다.
코드 내용
Claude Code 바이너리 내부에는 2.1.91 버전 이후 변경되지 않은 다음과 같은 확인 절차가 들어 있습니다. 이 확인 절차는 다음과 같이 작동합니다:
프록시를 사용하는 경우:
- 시스템 시간대 (timezone)가 Asia/Shanghai 또는 Asia/Urumqi와 일치하는지 확인합니다.
- 프록시 URL이 중국 도메인인지, 특정 도메인 목록과 일치하는지, 그리고/또는 중국 AI 연구소 (AI lab)를 포함하는지 확인합니다.
이 두 가지 확인을 바탕으로, Anthropic은 시스템 프롬프트의 날짜 부분을 수정합니다.
시스템 시간대가 중국인 경우, 날짜는 2026-06-30 대신 2026/06/30 형식을 사용합니다. 그리고 프록시 URL에 따라 "Today**'**s date is"의 아포스트로피 (apostrophe)가 다음과 같이 변경됩니다:
- 중국 도메인이거나 도메인 화이트리스트 (whitelist)와 일치하지만, AI 연구소는 아닌 경우: ’, "right single quotation mark" — ’
- 중국 도메인이 아니거나 도메인 화이트리스트와 일치하지 않지만, AI 연구소인 경우: ʼ, "modifier letter apostrophe" — ʼ
- 중국 도메인이거나 도메인 화이트리스트와 일치하면서 동시에 중국 AI 연구소인 경우: ʹ, "modifier letter prime" — ʹ
Claude Code 소스 코드에서 이를 직접 확인할 수 있습니다. 2.1.196 버전에서 관련 함수는 Crt(), Rrt(e), e0t(), Zup(), edp, 그리고 Vla입니다.
이 이름들은 난독화된 (minified) 이름들이므로 Claude Code의 릴리스에 따라 변경된다는 점에 유의하십시오. 하지만 Claude Code나 Codex에게 Claude Code를 역공학 (reverse-engineer) 하여 이 로직을 찾아보라고 요청하면, 아주 쉽게 찾아낼 것입니다.
의도
Anthropic은 중국 내에서의 Claude 무단 재판매와 중국 연구소들의 증류 (distillation) 시도를 탐지하기 위해 이 확인 절차를 명백히 추가했습니다. 그러나 정말 불안한 점은, Anthropic이 바이너리 (binary) 내에서 이 로직을 난독화 (obfuscate) 하려 시도했다는 사실입니다. 상당 부분이 키 값 91을 사용한 XOR 난독화 처리가 되어 있는데, 이는 일반적인 문자열 덤프 (strings dump)에서 드러나지 않게 하려는 의도로 보입니다. 게다가, 2.1.91 버전의 릴리스 노트에는 이 확인 절차에 대한 언급이 전혀 없습니다.
또한, 이들은 시스템 프롬프트 (system prompt) 내에 스테가노그래피 (steganography) 기법을 사용하여 이를 숨기고 있는데, 그 방식 또한 명확합니다. 사용자나 심지어 모델조차 인지할 수 없는 미세한 변화를 주어 Anthropic은 쉽게 탐지할 수 있게 만들었습니다.
사용자 신뢰에 대한 근본적인 위반
무단 재판매와 증류를 탐지하려는 이러한 사용 사례 자체는 이해할 수 있지만, Anthropic이 사용자의 인지나 동의 없이 시스템 및 프록시 (proxy) 설정에 관한 정보를 은밀하게 전송한다는 사실은 사용자 신뢰에 대한 근본적인 위반입니다. 특정 시간대의 모든 사용자를 감시하는 것은 근본적인 권한 남용일 뿐만 아니라, 그 존재 자체만으로도 훨씬 더 심각한 우려의 문을 열어젖힙니다. 만약 Anthropic이 단지 사용자가 중국인이라는 이유만으로 시스템 정보를 비밀리에 전송할 의사가 있다면, 모델이 더 나쁘게 동작하도록 비밀리에 유도하는 것(연구자들이 지적하기 전 Fable에서 시도했던 것처럼)이나, 더 나아가 악의적인 행위를 하는 것을 무엇이 막을 수 있겠습니까?
저와 같은 개발자들은 Claude Code가 자신의 작업을 수행할 수 있도록 전체 파일 시스템과 상당한 수준의 셸 (shell) 권한을 부여합니다. 하지만 이는 곧 Anthropic이 이를 악용하여 사용자의 시스템에서 완전한 원격 코드 실행 (remote code execution)을 수행하는 것을 막을 방법이 아무것도 없음을 의미합니다. 오늘은 시간대 확인이지만, 내일은 시스템 파괴나 데이터 유출 (data exfiltration)이 될 수도 있습니다.
개발자들이 Claude Code에 부여하는 신뢰를 고려할 때, Anthropic에 더 많은 투명성을 요구하는 것이 중요하다고 생각합니다. 지식재산권 (IP) 보호는 합리적이지만, 그것이 모든 개발자의 시스템에 스파이웨어와 다름없는 것을 심어두는 대가를 치러서는 안 됩니다.
또한 이러한 검사 방식은 정당한 사용자들의 개인정보 (privacy)를 침해하는 동시에, 어느 정도 정교한 공격자라면 아주 쉽게 우회할 수 있다는 점도 주목해야 합니다. 따라서 이것이 정당한 사용자의 개인정보를 침해하면서, 동시에 무단 재판매나 증류 (distillation)를 방지하려는 본래의 목적을 실제로 달성할 수 있는지에 대해서는 논란의 여지가 있습니다.
제출자: /u/LegitMichel777
[링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/ClaudeAI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기