암호로 감싸도 세션과 모델을 안 가려
“암호로 감싼 추론을 같은 회사의 약한 모델에 그대로 넣으면, 그 모델이 내용을 평문으로 받아 적어.”
요즘 Anthropic, OpenAI, Google은 모델이 답을 만들기까지 거친 생각의 사슬을 그대로 보여주지 않아. 대신 암호화한 덩어리로 바꿔 클라이언트에 돌려주고, 다음 요청 때 그 덩어리를 다시 받아. 서버에 안 쌓아두니까 비용도 줄고 내용도 가려지거든.
문제는 그 덩어리가 세션이나 사용자, 모델이 달라져도 같은 회사 안에서는 그대로 통한다는 거야. 강한 모델이 만든 덩어리를 안전장치가 헐거운 작은 모델에 넣고 받아 적으라고 시키면, 강한 모델을 직접 건드리지 않고도 내용이 나와.
공개 저장소에 올려둔 로그에서 자격증명 182개
연구진은 GitHub 같은 공개 저장소에 이미 올라와 있던 실행 기록을 모았어. 거기 들어 있던 추론 블록 315,320개를 풀었더니 개인정보 367건과 자격증명 182개가 나왔다고 논문에 적혀 있어.
회사 서버가 뚫린 건 아니야. 개발자들이 API 세션 기록을 공유할 때 암호 덩어리 안에 뭐가 들었는지 몰랐던 게 컸어.
논문이 나눈 공격 경로 네 가지
- 증류 방지 우회: 비공개 모델의 추론을 그대로 꺼내 학습에 쓸 수 있어. 세 회사 모두에서 재현됐다고 적었어
- 공개 로그에서 개인정보 수집: 위의
315,320개 사례가 여기 해당해 - 걸러진 내용 되살리기: 최종 답변은 위험한 요청을 거절했는데, 거절하기까지의 추론 안에 위험한 내용이 남아 있는 경우야
- 보이지 않는 프롬프트 주입: 암호 덩어리 안에 명령을 숨겨 공개된 에이전트 실행 기록을 오염시키는 경로야. 논문이 제시한 방식이고, 실제 피해 보고가 나온 건 아니야