Anthropic이 Claude Code에 스파이웨어를 심고 숨기려 했다
Anthropic embedded spyware in Claude Code — and attempted to hide it from you
핵심 요약
Claude Code가 사용자의 위치와 프록시 설정을 몰래 전송한다는 의혹이 제기되었으나, 커뮤니티는 이를 일반적인 텔레메트리라며 냉소적인 반응을 보임.
- 스파이웨어 의혹 — Claude Code가 특정 지역 및 프록시 정보를 시스템 프롬프트에 몰래 삽입함
- 난독화 논란 — Anthropic이 해당 로직을 바이너리에 XOR 난독화로 숨기려 했다고 주장함
- 사용자 신뢰 위반 — 작성자는 이를 개인정보 침해이자 잠재적 원격 코드 실행 위험으로 간주함
- 커뮤니티 반응 — 대부분의 사용자는 이를 일반적인 데이터 수집으로 치부하며 작성자의 과민 반응을 비판함
tl;dr: 2026년 4월 2일에 출시된 2.1.91 버전부터 Claude Code는 프록시 사용 여부를 확인하기 시작했음. 만약 프록시를 쓰고 있다면, 시스템 프롬프트를 몰래 수정해서 사용자가 중국에 있는지, 중국 URL로 프록시를 거치는지, 중국 AI 연구소와 관련이 있는지 등의 정보를 은밀하게 전송함. 심지어 Anthropic은 이 코드를 Claude Code 바이너리 안에 교묘하게 숨겨놓기까지 했음.
배경: 나는 GPT 모델이랑 Claude 모델을 섞어 쓰고 세밀하게 컨텍스트를 관리하려고 개인용 Claude Code를 프록시로 돌리고 있음. 근데 오늘 2.1.196 버전으로 업데이트되면서 프록시를 쓰면 원격 제어가 안 되게 막아놨더라고. 그래서 이 변경 사항을 되돌리려고 Claude Code를 리버스 엔지니어링하다가 존나 수상한 걸 발견함.
코드
Claude Code 바이너리 안에는 2.1.91 버전부터 지금까지 그대로 남아있는 체크 로직이 있음. 이 로직이 하는 짓은 다음과 같음:
- 프록시를 사용 중이라면:
- 시스템 시간대가
Asia/Shanghai나Asia/Urumqi인지 확인. - 프록시 URL이 중국 도메인인지, 특정 도메인 리스트와 일치하는지, 혹은 중국 AI 연구소와 관련이 있는지 확인.
- 시스템 시간대가
- 이 두 가지 확인 결과를 바탕으로 Anthropic은 시스템 프롬프트의 날짜 부분을 수정함.
시스템 시간대가 중국이면 날짜 형식을 2026-06-30 대신 2026/06/30으로 바꿈. 그리고 프록시 URL에 따라 "Today**'**s date is"에 들어가는 아포스트로피가 바뀜:
- 중국 도메인이거나 화이트리스트 도메인이지만, AI 연구소는 아닐 때:
\u2019, "오른쪽 작은따옴표" — ’ - 중국 도메인이 아니거나 화이트리스트 도메인이지만, AI 연구소일 때:
\u02BC, "수정 문자 아포스트로피" — ʼ - 중국 도메인이거나 화이트리스트 도메인이고, 동시에 AI 연구소일 때:
\u02B9, "수정 문자 프라임" — ʹ
이건 Claude Code 소스 코드에서 직접 확인할 수 있음. 2.1.196 버전 기준으로 관련 함수는 Crt(), Rrt(e), e0t(), Zup(), edp, Vla임. 물론 이건 난독화된 이름이라 버전마다 바뀌겠지만, Claude Code나 Codex한테 리버스 엔지니어링 시켜서 이 로직 찾아달라고 하면 금방 찾아낼 거임.
의도
Anthropic이 이 체크 로직을 넣은 건 중국 내 Claude 무단 재판매나 중국 연구소들의 모델 증류(distillation) 시도를 잡아내려는 게 뻔함. 근데 진짜 소름 돋는 건 Anthropic이 이 로직을 바이너리 안에 난독화해서 숨기려 했다는 거임. 상당 부분이 91이라는 키로 XOR 난독화되어 있는데, 아마 strings 명령어로 덤프 떴을 때 바로 안 걸리게 하려고 그런 듯. 게다가 2.1.91 버전 릴리즈 노트에는 이 체크에 대한 언급이 단 한 줄도 없음.
이 새끼들 의도는 명확함. 시스템 프롬프트에 스테가노그래피(정보 은닉)를 써서 사용자는 물론이고 모델조차 눈치채기 힘든 미세한 차이를 만들어놓고, 자기들만 그걸 감지하겠다는 거임.

