Claude Code 2.1.196 프롬프트 스테가노그래피 발견

Claude Code 2.1.196 프롬프트 스테가노그래피 발견

Claude Code는 API 게이트웨이를 식별하기 위해 스테가노그래피 마커를 사용합니다

Claude Code 버전 2.1.196에는 사용자의 환경에 대한 메타데이터를 인코딩하기 위해 시스템 프롬프트의 날짜 문자열을 조용히 수정하는 기능이 포함되어 있습니다. 시각적으로 유사한 유니코드 문자를 변경함으로써—특히 "Today's"의 아포스트로피와 날짜 구분 기호—이 도구는 API 백엔드로 전송되는 원시 요청에 분류 신호를 임베딩합니다. 프롬프트 스테가노그래피로 알려진 이 기술은 Anthropic이 사용자의 인지 없이 도구가 승인되지 않은 게이트웨이, 리셀러 또는 경쟁 AI 연구소(lab)를 통해 라우팅되는지 식별할 수 있게 합니다.

프롬프트 수정을 위한 환경적 트리거

스테가노그래피 마킹 프로세스는 ANTHROPIC_BASE_URL 환경 변수가 설정되어 있을 때만 트리거됩니다. 이는 사용자가 기본 Anthropic API 엔드포인트를 사용하지 않고 있음을 나타냅니다. 트리거되면, 도구는 어떤 마커를 사용할지 결정하기 위해 다음 조건을 평가합니다:

시간대 기반 마킹

시스템 시간대가 Asia/Shanghai 또는 Asia/Urumqi로 설정되어 있는 경우, 날짜 구분 기호가 하이픈(-)에서 슬래시(/)로 변경됩니다.

호스트네임 기반 마킹

도구는 ANTHROPIC_BASE_URL 호스트네임을 디코딩된 도메인 및 키워드 목록과 대조합니다. "Today's"라는 단어의 아포스트로피는 호스트네임의 분류에 따라 다음과 같이 교체됩니다:

Condition Apostrophe Character Unicode Code Point
Normal ' Standard apostrophe
Known domain Right single quotation mark
Lab keyword ʼ Modifier letter apostrophe
Known domain and lab keyword ʹ Modifier letter prime

난독화 및 대상 식별

이러한 검사를 숨기기 위해, 도메인 및 키워드 목록은 base64 문자열로 저장되며 키 91을 사용하여 XOR-디코딩됩니다. 디코딩된 목록에는 다음이 포함됩니다:

  • AI Lab Keywords: deepseekzhipu와 같은 용어.
  • Domain Lists: 중국 기업 도메인, AI 기업 도메인, 그리고 다양한 프록시, 리셀러 및 게이트웨이 도메인의 포괄적인 목록.

개발자 신뢰 및 개인정보 보호에 미치는 영향

Claude Code는 파일 시스템 액세스, 쉘 실행 및 git 통합을 포함한 광범위한 권한을 요구하기 때문에, 숨겨진 텔레메트리 메커니즘의 발견은 도구 바이너리의 무결성에 대한 우려를 불러일으킵니다. 마커는 모델 증류(distillation) 공격을 방지하고 API 오남용을 탐지하기 위해 의도된 것으로 보이지만, 명시적인 텔레메트리 필드나 문서화를 통해 이 동작을 숨기는 대신 시스템 프롬프트에 숨기는 방식의 선택은 높은 권한을 가진 개발자 도구에서 기대되는 "boring behavior"에 대한 위반으로 간주됩니다.

공식 Anthropic API 엔드포인트를 사용하거나 ANTHROPIC_BASE_URL이 설정되지 않은 대부분의 사용자에게는 날짜 프롬프트가 변경되지 않은 상태로 유지됩니다. 그러나 이 기능은 내부 게이트웨이, 로컬 프록시 또는 연구용 설정을 사용하는 개발자를 구체적으로 대상으로 하며, 그들의 분류를 프롬프트 구두점 속에 인코딩합니다.

Sources