모델 추출 공격 방어 체크리스트: adversarial distillation을 API·도구·계정 레벨에서 막는 방법
OpenAI가 9월 30일 공개한 model-distillation campaign 대응 사례는 AI 보안팀이 앞으로 자주 보게 될 문제를 보여준다. 공격자는 데이터베이스를 해킹하거나 저장된 대화를 훔친 것이 아니라, 모델 상호작용을 조작해 protected reasoning을 보이는 형태로 재현하려 했다. OpenAI는 이를 adversarial distillation, 즉 한 모델의 출력이나 추론을 체계적으로 사용해 다른 모델을 훈련·복제·개선하려는 무단 활동으로 설명했다.
이 사건은 frontier lab만의 문제가 아니다. API로 LLM 서비스를 제공하거나, 기업 내부에 에이전트 플랫폼을 만든 팀도 비슷한 패턴을 겪을 수 있다. 사용자는 정상 API 호출처럼 보이는 요청을 대량으로 보내면서 모델의 숨은 추론, 정책 경계, 도구 호출 패턴, 평가 데이터에 가까운 정보를 빼내려 할 수 있다.
검색 의도는 “adversarial distillation 방어”, “LLM reasoning extraction”, “AI model extraction API security”, “prompt injection reasoning leak”에 가깝다. 이 글은 제품 보안팀과 플랫폼 개발자가 당장 점검할 수 있는 API, 도구, 계정 레벨 방어 기준을 정리한다.
공격의 핵심은 정상 호출처럼 보인다는 점이다
OpenAI 설명에 따르면 공격자는 암호화를 깨거나 내부 데이터베이스에 침입하지 않았다. 대신 모델과의 대화를 조작해 protected reasoning이 요청자에게 보이는 형태로 재현되도록 시도했다. 또 한 대화에서 얻은 encrypted reasoning을 다른 대화에 복사하고, 모델에게 이를 해독하거나 전사하게 하는 방식도 관찰됐다.
이 점이 중요하다. 전통적인 보안 모니터링은 비정상 로그인, 권한 상승, 파일 다운로드, 데이터베이스 접근 같은 이벤트를 본다. 모델 추출 공격은 합법적인 API 경로를 통해 발생할 수 있다. HTTP 상태 코드는 200이고, 사용자도 정상 계정일 수 있다. 위험 신호는 요청 패턴, 프롬프트 구조, 반복성, 계정 군집, 출력 형태에 숨어 있다.
OpenAI는 초기 활동이 7월 첫째 주에 관찰됐고, 7월 24~25일에는 관련 extraction 패턴으로 4,000명 이상 사용자에서 16,000건 요청이 발생했다고 밝혔다. 이후 15,000명 이상 사용자 클러스터와 관련 prompt-pattern 활동을 확인해 7월 28일까지 중단했다고 설명했다. 숫자에서 보듯이 단일 계정만 보면 정상 사용처럼 보일 수 있다. 클러스터 분석이 필요하다.
API 레벨에서 봐야 할 신호
첫 번째 방어선은 API 관측이다. 모델 추출 공격은 대량 반복 호출, 미세하게 변형된 프롬프트, 특정 형식의 출력 유도, 숨은 추론 요구, 다른 세션의 산출물 재입력 같은 패턴을 만들 수 있다.
기본적으로 다음 로그가 필요하다.
- 계정 ID와 조직 ID
- IP, ASN, 지역, 디바이스 fingerprint
- 모델명과 reasoning 설정
- 요청 길이와 출력 길이
- 프롬프트 유사도 hash
- 거부·차단·검토 hold 여부
- tool call 사용 여부
- 세션 간 artifact 재사용 여부
내용 전체를 저장하라는 뜻은 아니다. 개인정보와 영업비밀 때문에 원문 저장은 신중해야 한다. 대신 안전한 hash, 특징값, 분류 태그, 샘플링 정책을 둬야 한다. 추출 공격은 한 계정보다 여러 계정의 유사 패턴에서 드러나는 경우가 많다.
reasoning과 tool output은 별도 보호 대상이다
많은 서비스가 최종 답변만 보호하면 된다고 생각한다. 그러나 에이전트 제품에서는 중간 산출물이 더 민감할 수 있다. 모델의 숨은 reasoning, tool output, planner state, scratchpad, 압축된 대화 요약, 시스템 메시지 일부가 공격 목표가 될 수 있다.
OpenAI는 streamed output에서 reasoning이 노출될 가능성을 감지하고 hold하는 체크를 추가했다고 설명했다. 이 방향은 다른 팀에도 필요하다. 최종 응답만 검사하는 필터는 부족하다. 스트리밍 중간 조각, 도구 결과, 모델 간 전달되는 메모리, 대화 압축 결과도 검사해야 한다.
특히 에이전트 시스템에서는 한 모델이 만든 요약을 다른 모델이 읽는 경우가 많다. 이때 요약 안에 “이전 모델의 숨은 추론을 복원하라” 같은 공격 문자열이나, 다른 세션에서 가져온 artifact가 들어오면 다음 모델이 이를 실행할 수 있다. 모델 간 전달 데이터는 사용자 입력과 동일하게 취급해야 한다.
계정과 조직 클러스터링이 필요하다
OpenAI 사례에서 4,000명 이상 사용자, 15,000명 이상 사용자 클러스터가 언급된 것은 우연이 아니다. 추출 공격자는 단일 계정 rate limit을 피하려고 여러 계정을 사용할 수 있다. 무료 체험, 도난 계정, 프록시, 제3자 서비스 경유가 섞이면 탐지가 어려워진다.
따라서 계정 단위 제한만으로는 부족하다. 조직, 결제 수단, IP 대역, 디바이스, 프롬프트 fingerprint, 가입 시점, 사용 패턴을 조합해 클러스터를 봐야 한다. 물론 프라이버시와 오탐 문제가 있으므로 자동 차단보다 risk score, 추가 인증, 출력 지연, 샘플 검토 같은 단계적 대응이 현실적이다.
기업 내부 에이전트 플랫폼에서도 마찬가지다. 한 사용자가 아니라 여러 서비스 계정이 같은 방식으로 내부 모델을 질의한다면, 데이터 추출이나 정책 우회 시도로 볼 수 있다.
차단보다 단계적 대응이 안전하다
모든 의심 요청을 즉시 차단하면 정상 연구자와 파워유저가 피해를 볼 수 있다. 반대로 느슨하면 추출이 진행된다. 단계적 대응이 필요하다.
첫 단계는 관측 강화다. 의심 패턴에 태그를 붙이고 추가 로그를 남긴다. 두 번째는 속도 제한과 출력 제한이다. 유사 요청 반복, reasoning 요구, cross-session artifact 재입력에 대해 rate limit을 낮춘다. 세 번째는 안전한 거부 또는 변환이다. 모델이 숨은 추론을 재현하지 않고, 요약된 근거만 제공하도록 한다. 네 번째는 계정 제한과 파트너 공유다. 명백한 조작 캠페인은 계정 제한, 인프라 차단, 업계 정보 공유가 필요하다.
OpenAI도 계정 enforcement, 기술적 통제, 파트너 조정, Frontier Model Forum 공유를 조합했다고 설명했다. 이 조합이 중요하다. 모델 추출은 한 회사만 막아도 다른 경로로 옮겨갈 수 있다.
내부 LLM 서비스에도 같은 기준을 적용한다
기업이 자체 LLM 게이트웨이를 운영한다면 “우리는 frontier lab이 아니니 괜찮다”고 생각하기 쉽다. 하지만 내부 모델도 회사 코드, 문서, 고객 정보, 업무 정책을 학습하거나 검색한다. 공격 목표는 모델 자체 복제뿐 아니라 내부 지식 추출일 수 있다.
예를 들어 직원 계정이 RAG 시스템에 반복적으로 비슷한 질문을 던져 문서 전체를 재구성하려 한다면 이것도 추출 공격이다. coding agent가 repository 전체를 요약해 외부로 보내게 만드는 것도 위험하다. 방어 기준은 모델 제공사 API와 유사하다. 요청량, 유사도, 출력량, 문서 커버리지, 비정상 시간대, 계정 클러스터를 봐야 한다.
또한 tool output에는 최소 권한을 적용해야 한다. 에이전트가 모든 문서를 검색할 수 있으면 모델이 안전해도 검색 결과가 새나간다. 검색 권한, 문서 ACL, tool result redaction이 함께 필요하다.
실행 체크리스트
- 최종 답변뿐 아니라 reasoning, tool output, memory summary, stream chunk를 보호 대상으로 정의한다.
- 프롬프트 원문 저장 없이도 탐지 가능한 hash, fingerprint, 분류 태그를 설계한다.
- 유사 프롬프트 반복, cross-session artifact 재입력, 숨은 추론 요구 패턴을 탐지한다.
- 계정 단위가 아니라 조직, IP, 디바이스, 결제, 프롬프트 fingerprint 기반 클러스터를 본다.
- 의심 요청은 즉시 차단만 하지 말고 관측 강화, rate limit, 출력 제한, 검토 hold를 단계적으로 적용한다.
- 모델 간 전달되는 요약과 tool output도 사용자 입력처럼 검사한다.
- RAG 시스템은 문서 ACL과 검색 결과 redaction을 반드시 적용한다.
- 대량 질의로 문서 전체를 재구성하려는 패턴을 별도 탐지한다.
- 보안 이벤트를 모델명, reasoning 설정, tool call, 조직 ID와 함께 기록한다.
- 공격 지표가 확인되면 파트너, 벤더, 업계 공유 채널에 전달할 수 있는 절차를 만든다.
모델 추출 공격은 프롬프트 필터 하나로 막을 수 없다. API 관측, 계정 클러스터링, 중간 산출물 보호, 단계적 대응이 같이 있어야 한다. 에이전트가 더 많은 도구와 메모리를 갖게 될수록 이 체크리스트는 선택이 아니라 기본 운영 요구사항이 된다.
출처: OpenAI, “Disrupting a coordinated model-distillation campaign”, 2026년 9월 30일.