AI가 답을 내기 전 거치는 ‘속으로 하는 생각’은 암호화돼 사용자에게 그대로 보이지 않습니다. 그런데 연구팀은 그 암호화된 사고를 통째로 평문으로 복원했고, 거기엔 유출된 비밀번호까지 섞여 있었습니다.

알렉산더 판필로프가 이끄는 연구팀이 주요 AI 제공사의 API 취약점을 통해 암호화된 추론 과정을 빼내는 방법을 찾아냈습니다. Anthropic, OpenAI, Google이 클라이언트에 돌려주는 ‘암호화된 사고 블록’이 원래 맥락 밖에서도 다시 재생된다는 점이 출발점이었죠. 대부분의 질의에서 추출된 토큰 수가 청구된 thinking 토큰과 정확히 맞아떨어졌는데, 이는 일부가 아니라 내부 추론 전체가 잡혔다는 뜻입니다.
출처: Stealing Reasoning Traces from Proprietary LLM APIs – Panfilov et al.
암호화된 생각을 어떻게 빼냈나
핵심 아이디어는 ‘같은 계열의 약한 모델을 이용하는 것’입니다. 흐름을 단순화하면 이렇습니다.
- 강한 모델(예: Claude Opus 4.8)이 만든 암호화 추론 블록을 확보합니다.
- 같은 제공사의 약한 모델(예: Haiku 4.5)에 그 블록을 그대로 집어넣습니다. 한 계열의 모델들이 같은 암호화 키를 써서 가능한 일이죠.
- 약한 모델을 탈옥(jailbreak)시켜 그 내용을 평문으로 받아쓰게 만듭니다.
- 강한 모델을 직접 공격하지 않고도 그 속생각이 복원됩니다.
연구팀은 이 암호화된 사고가 “세션, 사용자, 모델을 넘어 완전히 이동 가능하다”고 말합니다. 작은 Haiku가 훨씬 강력한 Opus의 생각을 읽어낼 수 있고, 같은 수법이 OpenAI와 Gemini에서도 통했죠. 다행히 제공사들은 신고를 접수한 뒤 수정했고, 지금은 동일한 공격이 통하지 않습니다.
거기서 나온 것들, 비밀번호와 “but marinade”
드러난 추론 토큰은 애초에 사람이 읽으라고 만든 게 아니었습니다. “app.css 필요. 아니 필요 없을지도. 접근성 포커스 필요” 같은 파편적 메모에 가깝습니다. GPT 계열이 CSS를 고민하며 남긴 흔적엔 맥락 없는 “but marinade” 같은 단어가 튀어나오기도 했죠.
문제는 이게 개인에게도 직접 닿는다는 데 있습니다. Claude Code나 Codex 세션을 공개로 공유하면서 암호화된 추론 블록이 함께 담긴 경우, 그 안의 개인 정보가 복원될 수 있죠. 연구팀이 공개된 트레이스 약 7,000건을 훑자 API 키 62개, 이메일 33개, 비밀번호 33개와 그 밖의 민감 정보가 쏟아져 나왔습니다.
증류 논쟁, 그리고 더 교묘한 수법
이 취약점은 ‘증류(distillation)’ 논쟁에도 불을 붙입니다. 약한 모델이 강한 모델의 출력, 특히 추론 과정을 학습해 성능을 끌어올리는 방식이죠.
연구팀에 따르면 특정 Claude·GPT 추론 조각은 다른 모델보다 Kimi-K3에서 최대 100만 배 쉽게 추출됐습니다. 이들은 Kimi-K3가 이런 트레이스로 학습됐을 정황으로 해석하죠. 공격 비용도 낮아서, 1만 건을 복호화하는 API 비용을 약 720달러로 추산했습니다.
더 섬뜩한 건 프롬프트 인젝션 변종입니다. 모델이 데이터 유출을 사고 과정의 일부로 여기도록 유도한 뒤, 그 사고 트레이스를 다른 모델에 먹이는 방식이죠. 모델은 자기 추론 트레이스를 신성한 것처럼 다뤄서, 그 안에 심긴 지시를 더 순순히 따르는 경향이 있었습니다.
암호화가 곧 안전은 아니었다
이 이야기는 사실 지난 5월로 거슬러 올라갑니다. 암호학자 매튜 그린이 암호화된 추론 덩어리를 원래 맥락 밖에서 재생할 수 있다는 걸 발견해 제공사에 알렸지만, 당시엔 “사이드 채널이나 재생에 보안적 함의가 없다”는 답이 돌아왔다고 하죠. 이번 연구는 그 판단이 틀렸음을 강하게 시사합니다.
숨긴 것을 그대로 재생할 수 있다면, 그건 제대로 숨긴 게 아니었던 셈입니다. 취약점 자체는 막혔지만, 우리가 AI에 넣는 내용과 공유하는 세션이 생각보다 멀리까지 흐를 수 있다는 사실은 남습니다.
참고자료:
- Stealing Reasoning Traces (해설) – Simon Willison
- “But marinade” and leaked passwords in ChatGPT’s hidden reasoning – the decoder
- Stolen Thoughts (프로젝트 사이트)

답글 남기기