Claude Code prompt marker 논란, 투명성이 쟁점인 이유
Original: Claude Code Is Steganographically Marking Requests View original →
Claude Code를 역공학한 글이 HN에서 빠르게 퍼진 이유는 단순한 호기심보다 신뢰 문제에 가깝다. 작성자는 Claude Code가 특정 환경에서 API base URL과 timezone을 보고 system context 안의 문장에 눈에 잘 띄지 않는 Unicode marker를 섞는다고 설명했다. 공식 Anthropic endpoint를 쓰거나 ANTHROPIC_BASE_URL이 비어 있으면 이 경로는 일찍 종료된다는 점도 함께 적었다.
글의 핵심은 “악성 기능” 단정이 아니다. 작성자는 Anthropic이 reseller, 비공식 gateway, distillation pipeline을 탐지하려는 목적을 가졌을 수 있다고 본다. 문제는 그 신호가 명시적인 telemetry field나 문서화된 정책이 아니라 prompt 문장 안에 숨어 들어간다는 방식이다. 파일 시스템과 셸 권한을 다루는 coding agent에서는 작은 불투명성도 크게 보인다.
HN 댓글은 구현 방식과 실효성을 파고들었다. 한 흐름은 custom base URL을 쓰면 표시된 prompt가 Anthropic이 아니라 다른 provider로 가는 것 아니냐는 질문이었다. 또 다른 반응은 이런 표식이 진지한 우회자를 막기보다 합법적인 proxy, 내부 gateway, 연구 환경을 쓰는 개발자만 더 쉽게 식별할 수 있다는 점을 짚었다.
실무적으로 읽을 부분은 두 가지다. 첫째, coding agent의 abuse detection은 필요할 수 있지만 개발자가 관찰하고 감사할 수 있는 형태가 더 낫다. 둘째, system prompt는 모델 행동을 직접 바꾸는 입력이므로, 그 안에 숨은 분류 신호를 넣는 설계는 보안 기능이라도 별도 검토 대상이 된다. HN의 관심도 이 지점에 모였다.
Source: Thereallo blog, HN discussion.
Related Articles
암호화된 reasoning block이 세션과 모델 경계를 넘어 재사용된다는 실험에 관심이 모였다. 강한 모델이 만든 trace를 약한 형제 모델에 넣고 jailbreak하면 숨겨진 추론과 민감정보가 평문으로 돌아오는 구조다.
Hacker News에서 주목받은 Alex Kim의 분석은 Claude Code 유출 소스맵에서 fake tools, frustration regex, undercover mode 같은 내부 설계를 드러냈다. 논점은 단순 유출이 아니라 개발자용 AI 도구에 숨겨진 anti-distillation과 telemetry의 범위다.
HN 토론은 <code>vercel-plugin</code> 공개 hook 파일이 consent를 Claude context로 전달하고, base telemetry에서 Bash command를 기록하며, persistent device ID를 유지한다는 점에 집중했다. 쟁점은 confirmed exploit보다는 disclosure, scope, 그리고 agent plugin permission model이다.