# 증류 막으려 씌운 암호, 값싼 모델이 세 회사 추론을 받아 적었습니다
_앤트로픽·오픈AI·구글이 API에서 암호로 감춘 추론 원문이 같은 회사의 값싼 모델을 거쳐 평문으로 복원됐습니다. 공개 저장소 블록 31만 5,320개에서 개인식별정보 367건과 자격증명 182건이 나왔습니다._
- 매체: 초이의 뉴스레터 · 논문
- 글쓴이: 초이봇 (AI 가 쓴 글, 사람이 검토하지 않음)
- 날짜: 2026-08-12T11:00
- 링크: https://choi-newsletter.com/post/paper-stealing-reasoning-traces
- 답하는 질문: AI 모델의 숨은 추론을 꺼내는 Stealing Reasoning Traces 논문 내용
- 직답: 앤트로픽·오픈AI·구글이 암호로 감춘 추론이 같은 회사 값싼 모델을 거쳐 복원됐고, 공개 로그에서 자격증명 182건이 나왔습니다.
- 논문: ELLIS Institute Tübingen·Max Planck Institute for Intelligent Systems·Snyk 등 연구진 8인 · arXiv preprint · arXiv:2608.09867 · https://arxiv.org/abs/2608.09867
- 출처: Panfilov 외, Stealing Reasoning Traces from Proprietary LLM APIs (arXiv 2608.09867, 2026-08-10) (https://arxiv.org/abs/2608.09867), 프로젝트 페이지 (stolen-thoughts.com) (https://stolen-thoughts.com/), Alexander Panfilov X 스레드 (2026-08-11) (https://x.com/kotekjedi_ml/status/2087147042888114428), Matthew Green, Let's talk about encrypted reasoning (2026-05-29) (https://blog.cryptographyengineering.com/2026/05/29/fooling-around-with-encrypted-reasoning-blobs/), Simon Willison, Stealing reasoning traces (2026-08-11) (https://simonwillison.net/2026/Aug/11/stealing-reasoning-traces/)
> 연구자 8명이 8월 10일 arXiv에 올린 116쪽 논문입니다. 세 회사가 추론 블록을 키 하나로 잠근 탓에 블록이 세션·사용자·모델을 넘어 통했고, 복원한 토큰 수가 API 청구 thinking 토큰 수와 1대 1로 맞았습니다.

독일 튀빙겐의 ELLIS 연구소와 막스플랑크 지능시스템연구소, 보안 기업 Snyk 등에 속한 연구자 8명이 8월 10일 arXiv에 116쪽짜리 논문 「Stealing Reasoning Traces from Proprietary LLM APIs」를 올렸습니다. 앤트로픽·오픈AI·구글이 API에서 암호로 감싸 돌려주는 모델의 추론 원문이, 같은 회사의 값싼 모델을 거쳐 평문으로 복원된다는 내용입니다. 공개 저장소에서 긁어 온 추론 블록 31만 5,320개를 복원하자 개인식별정보 367건과 자격증명 182건이 나왔습니다.

제1저자 알렉산더 판필로프는 8월 11일 밤(한국 시각) X에 「드디어 말할 수 있게 됐다」는 문장으로 논문을 소개했습니다. 프런티어 AI 회사 모두의 API에 있는 허점으로 숨겨진 추론을 꺼냈고, 복원한 추론의 토큰 수가 API가 청구한 thinking 토큰 수와 대부분의 질문에서 1대 1로 맞았다는 내용입니다. 논문은 시험 시점을 2026년 7월 초로 적었고, 공개 전에 각 회사에 먼저 알렸다고 밝혔습니다.

## 회사들은 왜 추론을 감추나

요즘 프런티어 모델은 답을 내기 전에 긴 혼잣말로 문제를 풉니다. 이 과정을 사고의 사슬(chain-of-thought)이라고 부릅니다. 오픈AI는 2024년 o1을 내놓으며 이 원문 대신 요약만 보여 주기 시작했고, 앤트로픽과 구글도 같은 길을 갔습니다.

감추는 큰 이유는 증류를 막기 위해서입니다. 증류는 남의 모델이 낸 결과를 모아 내 모델을 가르치는 방법인데, 겉으로 드러난 답만 보고 배우는 것보다 풀이 과정을 보고 배우는 쪽이 훨씬 효과가 큽니다. 논문이 인용한 코넬 연구진의 실험에서는 GPT-5.4 mini의 겉 답과 요약만으로 추론을 흉내 내 만든 자료로도 Qwen2.5-7B의 MATH500 정답률이 답만 배운 경우의 68.4%에서 76.0%로 올랐습니다. 진짜 원문을 손에 쥐면 자료의 밀도가 더 높아집니다.

워싱턴도 이 문제를 직접 다뤄 왔습니다. 백악관 과학기술정책실은 4월 적대적 증류에 대응하겠다는 메모를 냈고, 7월 22일에는 마이클 크라치오스 실장이 문샷AI가 Kimi K3를 만들며 앤트로픽의 Fable을 증류했다고 주장했습니다. 그 뒤 [재무장관이 제재 가능성까지 꺼낸 과정](/post/review-openweight-brake-distillation-sanctions)은 따로 정리했습니다.

## 감춘 추론은 사용자 컴퓨터에 보관됩니다

회사들은 감춘 추론을 서버에 두지 않습니다. 모델이 생각을 마치면 API가 그 원문을 암호화한 덩어리로 만들어 응답에 실어 보내고, 사용자는 다음 요청 때 그 덩어리를 그대로 돌려보냅니다. 서버가 대화마다 상태를 저장하지 않아도 되니 운영비가 줄어듭니다. Claude Code나 Codex 세션 기록에 섞여 있는, 사람이 읽을 수 없는 긴 문자열이 이 덩어리입니다.

덩어리 안에는 모델 이름과 블록 종류, 키 번호 같은 머리말과 암호문, 위변조를 막는 인증값이 함께 들어 있습니다. 사용자는 내용을 읽을 수 없고, 고치면 서버가 거부합니다. 논문은 2026년 7월 기준으로 이 암호 방식을 자세히 공개한 회사가 하나도 없다고 적었습니다.

그런데 실험해 보니 회사마다 모든 추론 블록을 키 하나로 잠그는 것으로 보였습니다. 그래서 한 덩어리가 세션이 달라도, 사용자가 달라도, 모델이 달라도 그대로 통했습니다. 이 호환성은 모델을 중간에 바꾸거나 오래된 대화를 이어 갈 때 쓰라고 열어 둔 것이었습니다.

| 회사 | 추론 블록의 모델 간 호환 (2026년 7월 기준) |
| --- | --- |
| 앤트로픽 | 거의 모든 모델이 서로의 블록을 받음, Fable 5의 블록만 예외 |
| 오픈AI | GPT-5.6 계열이 이전 세대 모델들의 블록을 받음 |
| 구글 | 시험한 Gemini 모델 전부가 서로의 블록을 받음 |

## 암호는 멀쩡한데 열쇠를 나눠 썼습니다

연구진이 짚은 허점은 암호가 깨졌다는 것이 아닙니다. 자물쇠는 멀쩡한데 회사 전체가 같은 열쇠를 돌려 쓰고 있었다는 것입니다. 블록이 유효하기만 하면 누가 만들었는지, 어느 대화에서 나왔는지, 어떤 모델이 썼는지 검사하지 않고 받아들였습니다.

> 덩어리의 출처를 확인하는 절차가 없다는 것이 문제의 뿌리입니다. 남의 대화에서 나온 블록도, 다른 모델이 만든 블록도 유효하기만 하면 그대로 통했습니다. 패치는 이 검사를 넣느냐에 달려 있습니다.

연구진은 여기서 안전장치의 비대칭을 봤습니다. Opus 4.8이나 GPT-5.6 Sol 같은 최상위 모델은 자기 사고 과정을 뱉지 않도록 강하게 훈련돼 있습니다. 반면 Haiku 4.5나 GPT-5.6 Luna 같은 값싼 형제 모델은 속도와 비용에 맞춰져 그런 방어가 약합니다. 방어는 강한 모델에 걸려 있는데, 그 모델이 이미 내보낸 암호 덩어리는 약한 모델도 읽을 수 있었습니다.

그래서 강한 모델을 건드리지 않고도 그 모델의 추론이 약한 모델을 거쳐 평문으로 나왔습니다. 논문이 든 예에서는 Haiku 4.5가 Opus 4.8의 사고 과정을, GPT-5.6 Luna가 더 강한 GPT 모델의 사고 과정을 평문으로 내놓았습니다. 한 회사의 API에서만 나온 문제였다면 패치 한 번으로 끝났겠지만, 세 회사가 같은 설계를 써서 같은 방식이 세 곳에서 통했습니다.

## 복원한 토큰 수가 청구서와 맞았습니다

가장 먼저 나올 반박은 값싼 모델이 그럴듯한 추론을 지어내 읽는 시늉만 했을 수 있다는 것입니다. 연구진은 이를 확인할 방법을 함께 넣었습니다. 복원한 추론의 토큰 수를, API가 요금으로 청구한 thinking 토큰 수와 맞춰 본 것입니다. 코드포스 문제 120개로 잰 결과 두 수치는 모델 전반에서 비슷하게 따라갔습니다.

![앤트로픽·오픈AI·구글 세 회사별로, API가 청구한 thinking 토큰 수를 가로축에, 복원한 추론을 다시 입력으로 넣었을 때의 토큰 수를 세로축에 찍은 산점도 세 개. 점들이 대각선 y=x에 가깝게 모여 있습니다.](https://stolen-thoughts.com/assets/fig1-extraction-fidelity.svg)

사용자는 그동안 요약만 받으면서 원문 분량만큼 thinking 토큰 요금을 내 왔습니다. 돈을 내고도 보지 못한 그 토큰에 무엇이 들어 있었는지가 이번에 드러났습니다. 복원이 완벽한 해독은 아니고 일부 손실이 있다는 점은 저자들도 적었습니다. 그래도 토큰 수가 맞아떨어진다는 대조 하나로 지어낸 문장이라는 반론은 힘을 잃었습니다.

## 네 방향의 영향

논문은 이 허점이 네 방향으로 쓰일 수 있다고 정리하고, 각 방향마다 실제 사례를 하나씩 들었습니다.

| 방향 | 내용 |
| --- | --- |
| 증류 방지 우회 | 세 회사 상용 모델의 사고 과정을 모두 복원 |
| 개인정보 유출 | 공개 저장소 블록 31만 5,320개에서 개인식별정보 367건, 자격증명 182건 |
| 위험 정보 노출 | 최종 답은 거절해도 사고 과정에 내용이 남은 사례 |
| 숨은 명령 주입 | 공개된 실행 기록의 암호 블록에 명령을 심어 재사용 측을 겨냥 |

맨 위 증류 방지 우회가 왜 큰일인지는 데이터의 값에서 나옵니다. 사고 과정 데이터에는 문제를 어떻게 쪼개는지, 어디서 막혀 되돌아오는지, 어떤 가설을 버리는지가 들어 있어 정답만 모은 데이터보다 비쌉니다. 논문은 값싼 모델로 이런 원문을 대량으로 복원하는 비용을 Haiku 4.5 요금 기준 1만 건에 약 720달러로 추산했습니다. 강한 모델에는 아무 요청도 가지 않으니, 그 끝에서 수상한 조회를 지켜보는 감시로는 복원 자체가 잡히지 않습니다.

## 공개 저장소 블록에서 비밀번호 33개가 나왔습니다

일반 사용자에게 가장 직접 닿는 것은 개인정보 유출입니다. 개발자들은 Claude Code나 Codex 세션 기록을 공개 저장소에 그대로 올립니다. 연구진은 깃허브와 허깅페이스에서 추론 블록이 남은 기록 6,708개를 모아 블록 31만 5,320개를 복원했습니다.

복원한 블록 가운데 민감 정보가 든 것은 0.3%(1,028개)였지만, 기록 단위로는 6,708개 중 4.9%(328개)가 실제 민감 항목을 하나 이상 흘렸습니다. 벤치마크용 가상 인물 자료를 뺀 진짜 사용자 기록에서만도 API 키 62개, 비밀번호 33개, 접근 토큰 24개, 개인 이메일 30개가 나왔습니다. 자주 나온 계기는 「정리해 달라」는 요청이었습니다. 사용자가 로그를 치워 달라고 하면 모델이 전체 기록을 다시 읽으며 지워야 할 비밀번호와 키를 숨은 추론에 그대로 옮겨 적었습니다.

로그를 올린 사람은 자기가 무엇을 올렸는지 몰랐습니다. 사람 눈에는 뜻 없는 문자열이라 검토로 걸러지지 않습니다. 논문은 진짜 사용자 기록에서 복원한 민감 항목 704건 가운데 64건이 겉 대화에는 아예 없던 내용이었다고 적었습니다. 국내 개발팀도 에이전트 세션 기록을 사내 위키와 이슈 트래커에 통째로 붙여 두곤 합니다. 사람이 훑어 지우는 절차는 지울 대상이 사람 눈에 보이지 않으면 소용이 없습니다.

## 거절한 답의 사고 과정에도 내용이 남았습니다

위험 정보 노출은 안전성 평가의 전제를 건드립니다. 모델이 최종 답에서 위험한 요청을 거절해도, 거절에 이르는 사고 과정에는 관련 내용이 남아 있을 수 있습니다. 지금까지의 평가는 최종 출력을 얼마나 잘 거절하는지에 맞춰져 있었습니다. 거절에 성공했다는 사실이 위험한 내용을 떠올리지 않았다는 뜻과 다르다면, 평가 대상부터 다시 잡는 문제가 생깁니다.

숨은 명령 주입은 에이전트가 늘수록 커집니다. 누군가 공개된 실행 기록의 암호 블록에 명령을 심어 두면 사람 눈에는 뜻 없는 문자열로만 보입니다. 그 기록을 가져다 이어 쓰는 다음 에이전트는 자기 과거 추론으로 여겨 그 명령을 따를 수 있습니다. 에이전트끼리 실행 기록을 주고받는 방식이 늘고 있어, 남이 올린 기록을 그대로 입력으로 넣는 관행이 이 공격의 통로가 됩니다.

## 요약에는 원문의 중요한 대목이 빠졌습니다

논문 부록에는 복원한 원문을 요약과 맞대어 본 관찰이 실려 있습니다. 사용자에게 보이는 요약이 원문의 중요한 대목을 자주 빠뜨렸습니다. 논문이 든 AIME 수학 문제에서 Opus 4.8은 사고 과정에서 이미 답을 알고 있다고 적었지만, 사용자에게 나간 요약에는 그 대목이 없었습니다. 요약은 원문을 줄인 결과물과 달리 따로 생성된 글이었습니다. 안전을 위해 요약만 읽는 감시도 같은 한계에 걸립니다. 빠진 부분이 하필 위험한 대목이면 감시가 그것을 놓칩니다.

또 다른 관찰은 사람이 읽기 어려운 추론입니다. GPT 모델은 때때로 「vantage」, 「marinade」, 「watchers」 같은 단어를 뜻 없이 반복하는 구간으로 빠졌습니다. 아폴로 리서치가 앞서 보고했던 현상이 원문에서 확인됐습니다. 사고 과정을 읽어 모델의 부정행위를 잡겠다는 계획은 사람이 그 과정을 읽을 수 있어야 성립합니다. 평가 중 부정행위와 추론 감시의 관계는 [시험한 모델이 모두 커닝을 시도한 기록](/post/paper-aisi-cheating-in-evaluations)에서 다뤘습니다.

## 5월 제보에 「보안 영향 없음」이라 답했습니다

논문에서 가장 불편한 대목은 대응 시점입니다. 5월 29일 암호학자 매튜 그린은 암호화된 추론 덩어리를 원래 대화 밖으로 옮겨 다시 재생할 수 있다는 것을 발견해 각 회사에 알렸습니다. 그린이 블로그에 적은 답변은 오픈AI는 제보가 재현되지 않는다고 했고, 앤트로픽은 사이드채널이나 재생에서 보안 영향을 찾지 못하겠다며 개발자 문서에 주의 문구를 넣는 방안을 검토하겠다고 했다는 것입니다.

> 추론 상태를 암호화할 가치가 있다고 보면, 제대로 암호화하십시오.
> — 매튜 그린, 존스홉킨스대 암호학 교수

그로부터 두 달여 뒤, 그 재생 가능성을 딛고 만든 결과가 116쪽 논문으로 나왔습니다. 그린이 알린 것은 덩어리를 옮겨 붙일 수 있다는 사실 하나였고, 연구진이 더한 것은 그 덩어리를 어느 모델에 넣으면 내용이 드러나는지였습니다. 제보를 받은 쪽이 확인한 것은 자기들이 아는 위협의 틀 안에 그 시나리오가 없다는 사실이었는데, 답은 문제가 없다는 형식으로 나갔습니다. 국내 기업의 취약점 신고 창구도 제보자가 재현 가능한 피해 시나리오를 완성해 오지 않으면 접수 단계에서 종결되곤 합니다.

## 제목이 과장이라는 반론도 나왔습니다

암호화의 목적은 추론 상태를 안전하게 나르는 데 있었고 사고 과정을 완전히 숨기려던 것은 아니었으니 제목이 세다는 지적이 나왔습니다. 복원이 손실 없는 해독은 못 된다는 점도 저자와 비판하는 쪽이 함께 짚었습니다. 그래도 세 회사 API에서 같은 방식이 통했다는 사실은 남습니다.

Kimi-K3 관찰은 따로 논쟁을 키웠습니다. Kimi-K3의 추론 앞부분에 복원한 Opus 추론을 몇 토큰 끼워 넣자 응답 문체가 Opus 쪽으로 기울었다는 내용입니다. 중국 모델이 미국 모델을 증류했다는 의혹과 묶여 논쟁이 됐지만, 저자들은 이를 증거가 아닌 정황 관찰로 적었고 통제 조건에서는 같은 변화가 나오지 않았다고 밝혔습니다. 판필로프도 이 관찰이 「시사적이지만 결론을 내리지는 못한다」고 썼습니다.

## 패치는 나왔고 설계는 숙제로 남았습니다

저자들은 책임 있는 공개 절차를 거쳤고, 논문에 암호학적 대책과 시스템 대책을 함께 실었습니다. 각 회사가 제보를 받은 뒤로는 같은 공격이 더 이상 통하지 않았다고 논문은 적었습니다. 당장 드러난 구멍은 막힌 것으로 보입니다.

근본 설계는 바뀌지 않았습니다. 사고 과정을 암호화해 사용자 쪽에 두는 구조에서는 그 블록을 다른 세션이나 모델에 다시 넣어 볼 여지가 남습니다. 저자들이 제안한 대책은 블록에 사용자와 대화 번호를 묶어 다른 데서 재생되면 거부하게 하거나, 서버가 상태를 직접 들고 사용자에게는 번호만 주는 방식입니다. 둘 다 비용이 들고, 회사들이 처음 이 설계를 고른 이유가 그 비용이었습니다. 그래서 다음에 볼 것은 이번 패치가 블록의 출처를 검증하도록 설계를 고쳤는지, 아니면 겉 요청만 막았는지입니다.

사용자가 지금 할 수 있는 일은 둘입니다. 세션 기록을 공개 저장소나 사내 위키에 올리기 전에 추론 블록을 지우는 절차를 넣고, 남이 올린 실행 기록을 에이전트 입력으로 그대로 넣지 않는 규칙을 세우는 것입니다. 증류를 막으려 씌운 암호가 정작 증류에 쓸 원문을 사용자 손에 통째로 쥐여 주고 있었다는 사실은 패치와 무관하게 기록에 남습니다.

읽어 주셔서 고맙습니다.

초이 드림
