클로드 코드에 숨겨진 추적 코드 발견, 3개월간 중국 접속자 식별해왔다
작성일
클로드 코드, 날짜 문구에 숨긴 표식으로 우회 접속 이용자 식별
147개 중국계 목록·XOR 인코딩 확인되자 앤트로픽 새 버전 배포

소프트웨어 개발자가 운영하는 블로그 thereallo.dev의 한 개발자가 프라이버시 점검 차원에서 앤트로픽(Anthropic)의 코딩 에이전트 클로드 코드(Claude Code) 로컬 설치판(버전 2.1.196)을 들여다보다 이상한 코드를 발견했다. 시스템 프롬프트에 매번 삽입되는 '오늘 날짜' 문구 안에, 겉보기엔 평범한 문장부호처럼 보이는 유니코드 문자를 몰래 바꿔 넣는 기능이 들어 있었던 것이다. 눈에 보이는 문장은 정상적인 날짜 표기 그대로지만 그 이면에 데이터를 숨기는 방식으로, 이런 기법을 '프롬프트 스테가노그래피(prompt steganography)'라 부른다. 테크타임스(techtimes.com)는 이 코드가 최소 3개월간 은밀히 작동하며 중국계 API 프록시나 특정 AI 연구소 인프라를 거친 이용자를 식별해왔다고 6월 30일(현지시각) 보도했다. 앤트로픽은 해당 코드의 존재를 인정하고 이를 제거한 새 버전을 내놓겠다고 밝혔다.
날짜 문구 속에 숨은 표식, 어떻게 작동했나
클로드 코드 바이너리 안에는 시스템 프롬프트에 들어갈 날짜 문자열을 만드는 함수가 있다. 정상적으로는 "Today's date is 2026-06-30." 같은 문장이 표시된다. 그런데 이 함수는 두 가지를 은밀히 바꿀 수 있었다. 하나는 Today's의 아포스트로피 문자 종류다. 소스 코드를 보면 조건에 따라 표준 아포스트로피(')와 세 가지 다른 유니코드 아포스트로피(', ʼ, ʹ) 중 하나를 골라 쓰도록 설계돼 있었다. 다른 하나는 날짜의 구분 기호로, 이용자의 시스템 시간대가 '아시아/상하이(Asia/Shanghai)' 또는 '아시아/우루무치(Asia/Urumqi)'일 경우 표준 대시(-) 대신 슬래시(/)로 바뀌었다.
이 표식은 이용자의 API 접속 호스트가 특정 목록에 걸리는지, 시간대가 중국 지역인지에 따라 조합이 달라지는 구조다. 겉으로 드러나는 문장은 그대로 날짜처럼 보이지만, 문장부호 하나에 여러 정보가 압축돼 담기는 셈이다. thereallo.dev의 개발자는 "모델과 사용자 모두 평범한 것을 본다. 원문 요청 안에는 표식이 담겨 있다"고 지적했다.

4단계 탐지 파이프라인과 147개 우회 접속 목록
테크타임스에 따르면 이 표식 기능은 이용자가 앤트로픽 공식 서버(api.anthropic.com)가 아닌 커스텀 API 엔드포인트로 요청을 우회할 때만 작동했다. 환경변수 ANTHROPIC_BASE_URL이 공식 주소 이외의 값으로 설정되면, 클라이언트는 프록시 호스트명을 추출하고 이용자의 시스템 시간대를 읽어 두 개의 숨겨진 목록과 대조하는 4단계 절차를 거쳤다.
첫 번째 목록에는 중국 기업 네트워크, 중국 클라우드 인프라 리전, 중국 AI 연구소, 클로드 API 리셀러·미러 서비스를 아우르는 항목 147개가 담겨 있었다. 두 번째 목록에는 딥시크(deepseek), 문샷(moonshot), 미니맥스(minimax), 지푸(zhipu), 바이촨(baichuan), 스텝펀(stepfun), 다시스코프(dashscope) 등을 포함한 AI 연구소 관련 키워드 문자열 11개가 들어 있었다. 두 목록 모두 바이너리 안에 베이스64로 인코딩된 상태로 저장돼 있었고, 실행 시점에 XOR 91 키로 복호화되는 방식이었다. 테크타임스는 이 기법이 "정적 분석 도구로부터 악성코드를 숨길 때 흔히 쓰이는 방식"이라고 짚었다.
개발자 커뮤니티의 반응과 신뢰 문제
이 사안이 문제로 떠오른 이유는 클로드 코드가 단순한 챗봇이 아니라는 점에 있다. 파일 시스템, 셸, 깃(git), 브라우저 접근 권한까지 넘겨받는 코딩 에이전트인 만큼, 저장소를 읽고 명령을 실행할 수 있는 도구는 그만큼 더 투명해야 한다는 게 개발자들의 문제 제기다. thereallo.dev의 개발자는 원래 이런 프라이버시 관점에서 클라이언트 바이너리를 점검하다 이 기능을 찾아냈다고 설명했다.
테크타임스는 이번 사안을 앤트로픽이 자사를 '안전을 최우선하는 대안적 AI 기업'으로 내세워온 것과 대비시켰다. 셸 접근 권한을 가진 도구가 이용자에게 알리지 않은 채 접속 경로 정보를 몰래 표시해온 사실이, 개발자 커뮤니티의 신뢰에 의존하는 회사의 입장과 상충한다는 지적이다.
앤트로픽의 대응과 남은 의문
앤트로픽은 해당 코드가 존재했다는 사실을 인정하고 이를 제거한 새 버전을 배포하겠다고 밝혔다. 실제로 새 버전 2.1.197이 이후 수요일 오전(현지시각)에 공개됐다. 다만 테크타임스에 따르면 공식 변경 내역(changelog)에는 이 스테가노그래피 코드를 제거했다는 언급이 전혀 없었다.
변경 내역에 관련 내용이 빠져 있다는 점은 이번 사안이 단순한 버그 수정으로 끝나지 않을 수 있음을 시사한다. 코딩 에이전트에 광범위한 시스템 접근 권한을 부여하는 관행이 이미 업계 표준처럼 자리 잡은 상황에서, 그 바이너리 자체가 얼마나 투명하게 검증 가능한지가 새로운 화두로 떠오르고 있다.
앤트로픽은 왜 이런 코드를 넣었나
보안 연구자와 개발자들 사이에서는 이 기능의 목적을 두고 대체로 한 가지 해석으로 의견이 모인다. 앤트로픽이 자사 모델의 무단 사용, 특히 이른바 '증류 공격(distillation attack)'을 탐지하려 했다는 것이다. 증류 공격은 한 모델의 출력을 대량으로 뽑아내 경쟁 모델을 학습시키는 방식을 말한다.
앤트로픽은 2026년 2월, 딥시크·문샷·미니맥스 등 중국계 AI 연구소 세 곳이 약 2만 4천 개의 부정 계정을 통해 클로드와 1,600만 회 이상의 대화를 주고받으며 그 결과물을 경쟁 모델 학습에 활용했다고 공개한 바 있다. 이어 6월에는 알리바바의 큐원(Qwen) 연구소가 지금까지 확인된 것 중 최대 규모의 증류 공격을 수행했다고 의회에 보고하며, 이를 단순한 이용약관 위반이 아니라 국가 안보 문제로 규정했다.
이 맥락에서 보면, 이용자의 API 접속 주소가 알려진 중국 AI 연구소 도메인을 향하고 시스템 시간대까지 중국 지역일 경우, 이는 증류 목적의 우회 접속을 의심할 만한 신호가 된다. 무단 사용을 막으려는 동기 자체는 이해할 만하다는 평가가 나오는 이유다. 다만 문제로 지적되는 것은 그 방식이다. 개발자 도구가 이용약관을 강제하거나 남용을 탐지하는 것은 가능한 일이지만, 이를 이용자에게 알리지 않은 채 눈에 보이지 않는 문장부호에 숨기는 대신 명시적으로 공개하는 것이 옳은 방법이었다는 것이다. 실제로 이 표식은 호스트명이나 시간대만 바꿔도 손쉽게 우회할 수 있어, 정작 적대적 연구소는 걸러내지 못하고 사내 게이트웨이나 프록시를 쓰는 평범한 개발자만 표시하게 된다는 한계도 함께 지적됐다.