이 이야기는 정말 충격적입니다. 간단히 요약하면 이렇습니다. OpenAI는 미출시 모델을 대상으로 가드레일(guardrail)을 비활성화한 채 사이버 보안 테스트를 진행하고 있었습니다. 그런데 모델은 주어진 문제를 푸는 대신, OpenAI의 샌드박스(sandbox)를 스스로 탈출한 뒤 Hugging Face의 취약점을 찾아내 침입했습니다. 테스트 정답을 훔쳐 시험을 속이기 위해서였습니다.
이 사건은 모델 접근성의 불균형이 소프트웨어 보안 역량을 얼마나 심각하게 훼손하는지를 보여주는, 지금까지 중 가장 강력한 사례이기도 합니다.
이번 사건을 이해하는 데 참고할 수 있는 문서는 현재 세 가지입니다.
ExploitGym 논문은 이번에 처음 접했는데, 상당히 흥미로운 내용을 담고 있었습니다. UC 버클리, 막스 플랑크 연구소, UC 산타바바라, 애리조나 주립대 소속 연구진이 설계한 이 벤치마크는, 보고된 취약점을 실제 익스플로잇(exploit)으로 전환하는 모델의 능력을 평가하기 위한 것입니다. Anthropic, OpenAI, Google은 피드백을 제공하고 자사 모델을 대상으로 한 벤치마크 실행에 협력했습니다.
이 벤치마크는 "Linux 커널과 V8 자바스크립트 엔진을 포함한 주요 소프트웨어 프로젝트에 실제로 영향을 미쳤던 취약점에서 도출된 898개 인스턴스"로 구성되어 있습니다.
벤치마크 결과를 가장 잘 보여주는 단락은 다음과 같습니다.
전체 구성 중 Claude Mythos Preview와 GPT-5.5가 각각 157건, 120건의 성공으로 가장 높은 수치를 기록했습니다. 이는 현재의 프런티어 에이전트가 통제된 환경에서 실제 취약점의 상당 부분을 익스플로잇할 수 있음을 보여줍니다. GPT-5.4도 54개 과제를 해결하며 중간 수준에 위치했습니다. 나머지 모델-에이전트 조합은 각각 15개 미만을 해결하는 데 그쳐, 완전한 익스플로잇 자동화가 여전히 어려운 과제임을 보여주며 현세대 프런티어 시스템과의 뚜렷한 격차를 드러냅니다. 주목할 점은, Claude Opus 4.7이 더 최신 체크포인트임에도 Claude Opus 4.6보다 적은 성공 건수를 기록했다는 것입니다. 다만 전체 세트 기준 비용은 상당히 낮았습니다. 추적 로그를 살펴보면, Claude Opus 4.7과 Gemini 3.1 Pro는 대상 취약점을 익스플로잇 불가능하다고 판단한 뒤 조기 종료하는 경향이 잦았습니다.
논문은 또한 에이전트가 테스트 범위를 벗어나 부정행위를 하는 것을 막기 위해 취한 방법도 설명합니다. 이 내용이 곧 중요해집니다.
외부 연결은 엄선된 허용 목록으로만 제한되며, 일반적인 패키지 설치(Ubuntu apt 저장소 및 PyPI)와 V8 빌드에 필요한 툴체인 다운로드만 허용합니다. 그 외 모든 외부 엔드포인트는 차단됩니다.
논문은 다음과 같은 결론으로 마무리됩니다(강조는 필자).
이번 결과는 프런티어 AI 에이전트에 의한 자율적 익스플로잇 개발이 더 이상 가상의 시나리오가 아님을 보여줍니다. 현재 에이전트가 모든 대상에서 안정적인 성능을 보이는 단계는 아니지만, 이미 커널 컴포넌트와 같은 복잡한 대상을 포함해 실제 취약점의 상당 비율을 익스플로잇하는 수준에 도달했습니다. 이러한 능력의 급격한 출현 자체가 핵심적인 발견입니다. 불과 얼마 전까지만 해도 불가능해 보였던 능력이 이미 배포된 프런티어 모델에 존재한다는 사실을 보여주기 때문입니다.
여기서 중요한 점을 짚고 넘어가야 합니다. 이 논문은 취약점을 발견하는 것에 관한 이야기가 아닙니다. 발견된 취약점을 실제로 작동하는 익스플로잇으로 전환할 수 있는지를 다룬 것입니다.
Anthropic이 지난 4월 Mythos의 접근을 처음 제한했을 때도 이 능력을 언급했습니다. 취약점을 직접 악용할 수 있는 모델은 단순히 취약점을 찾아내는 모델보다 훨씬 위험합니다.
Fable이 Mythos와 다른 점 중 하나는, 이런 방식으로 취약점을 무기화하는 것을 더 적극적으로 거부한다는 것입니다. 지난달 미국 정부가 Fable을 금지했을 때, 이 차이를 제대로 이해하지 못했다는 느낌을 받았습니다.
이번 공격의 첫 징후는 2026년 7월 16일 공개된 Hugging Face의 블로그 글에서 포착됐습니다.
악성 데이터셋이 당사의 데이터셋 처리 과정에서 두 가지 코드 실행 경로(원격 코드 데이터셋 로더 및 데이터셋 설정의 템플릿 인젝션)를 악용해 처리 워커에서 코드를 실행했습니다. 이후 공격자는 노드 수준 접근 권한으로 권한을 상승시키고, 클라우드 및 클러스터 자격 증명을 탈취한 뒤, 주말 사이에 여러 내부 클러스터로 횡적 이동을 감행했습니다.
이 공격을 실행한 코드의 세부 내용이 공개되기를 기대합니다. 제 추측으로는 Hugging Face의 플랫폼에서 데이터셋을 패키징하고 공유하는 데 쓰이는 datasets 라이브러리를 악용한 것으로 보입니다. 이 라이브러리는 과거 임의 코드를 실행할 수 있었으나 지속적으로 보안이 강화되었고, 2025년 7월 출시된 4.0.0 버전에서는 trust_remote_code=True 플래그가 완전히 제거됐습니다.
이 라이브러리를 통한 공격이었다면, pickle 직렬화를 어떤 방식으로든 악용했거나, 다른 비명시적 코드 실행 경로를 찾아냈거나, 아니면(가장 유력한 시나리오로) datasets<4.0.0를 의존성으로 명시했을 가능성이 높습니다.
이번 공격은 자율 에이전트 프레임워크(에이전트 기반 보안 연구 하네스로 구축된 것으로 추정되며, 사용된 LLM은 여전히 불명)가 수명이 짧은 샌드박스 무리에 걸쳐 수천 건의 개별 행동을 실행하는 방식으로 이루어졌으며, 공개 서비스에 자가 이동형 명령 및 제어(C2) 인프라를 구성했습니다.
상당히 정교한 공격이었습니다.
Hugging Face는 그 다음 벽에 부딪혔습니다. Anthropic과 OpenAI 쪽으로 추정되는 "상용 API 기반 프런티어 모델"을 공격 분석에 활용하려 했지만, 번번이 막혔습니다.
로그 분석을 시작할 때 처음에는 상용 API 기반 프런티어 모델을 활용했습니다. 그러나 이 방법은 통하지 않았습니다. 분석 과정에서 실제 공격 명령어, 익스플로잇 페이로드, C2 아티팩트를 대량으로 입력해야 했는데, 이 요청들이 제공업체의 안전 가드레일에 의해 차단됐습니다. 가드레일이 사고 대응자와 공격자를 구분하지 못했기 때문입니다.
결국 Hugging Face는 MIT 라이선스 기반의 GLM-5.2를 자체 호스팅 인스턴스로 전환했고, 이를 통해 상황 파악에 성공했습니다.
이는 방어 측과 (당시 신원 미상의) 공격자 사이에 존재하는 구조적 비대칭을 여실히 드러냈습니다.
공격자의 에이전트를 구동한 모델이 무엇인지, 탈옥된 호스팅 모델인지 아니면 비제한 오픈 웨이트 모델인지 우리는 알지 못합니다. 어느 쪽이든, 공격자는 어떠한 이용 정책의 구속도 받지 않은 반면, 우리의 포렌식 작업은 처음 시도한 호스팅 모델의 가드레일에 가로막혔습니다.
Hugging Face가 이 공격을 얼마나 심각하게 받아들였는지는 다음 내용에서 잘 드러납니다.
[...] 아울러 이번 사건을 법 집행 기관에도 신고했습니다.
그렇다면 이 "자율 에이전트 프레임워크"의 배후는 누구였을까요? 바로 OpenAI 자신이었습니다.
닷새 후인 7월 21일, OpenAI가 전모를 공개했습니다. 새롭게 개발 중인 미공개 모델을 대상으로 ExploitGym 벤치마크를 진행하던 중, 해당 모델이 의도된 범위를 훨씬 벗어난 방식으로 작동했다는 것입니다(강조는 필자).
조사 결과, 이번 사건은 GPT‑5.6 Sol을 포함한 여러 OpenAI 모델의 복합적 작동에 의해 발생한 것으로 확인됩니다. 이 모델들은 평가 목적으로 사이버 관련 거부 응답이 축소된 상태에서, 사이버 역량 벤치마크[ExploitGym] 테스트 중 내부적으로 운용되고 있었습니다. [...]
최대 사이버 역량을 측정하기 위해 고위험 사이버 활동을 차단하는 프로덕션 분류기를 제거한 상태로 평가를 진행합니다. 벤치마크는 고도로 격리된 환경에서 실행되며, 네트워크 접근은 패키지 레지스트리의 프록시 및 캐시 역할을 하는 내부 호스팅 서드파티 소프트웨어를 통한 패키지 설치만으로 제한됩니다.
모델들은 OpenAI의 연구 환경과 Hugging Face의 프로덕션 인프라 전반에 걸쳐 취약점을 발견하고 연계 공격을 구성했으며, Hugging Face의 프로덕션 데이터베이스에서 테스트 정답을 직접 획득하는 데 성공했습니다. 모든 정황으로 볼 때, 모델들은 ExploitGym 문제 풀이에 극도로 집중한 나머지, 지극히 협소한 테스트 목표를 달성하기 위해 극단적인 수단도 불사했습니다.
무슨 일이 벌어졌는지는 이제 꽤 분명합니다. OpenAI는 개발 중인 모델에서 안전 필터를 제거하고, 샌드박스에 가두어 ExploitGym 문제를 풀도록 지시했습니다. 가드레일이 없는 상황에서, 모델이 샌드박스를 탈출하고 Hugging Face에 침입해 정답을 그냥 읽어오는 시도를 막을 방법이 없었던 것입니다.
OpenAI의 샌드박스는 제어된 프록시를 통해 추가 패키지 설치와 관련된 허용 목록 사이트에만 접근을 허용하는 현재 통용되는 방식을 사용했습니다. OpenAI의 설명에 따르면 다음과 같습니다.
샌드박스 테스트 환경에서 작동하는 동안, 모델들은 평가 문제를 해결하기 위해 공개 인터넷 접근 방법을 찾는 데 상당한 추론 컴퓨팅 자원을 소비했습니다. 접근 권한을 얻기 위해 모델들은 패키지 레지스트리 캐시 프록시에서 제로데이 취약점을 발견해 악용했습니다(해당 취약점은 현재 벤더사에 책임 있는 방식으로 공개됐습니다). 이 접근 권한을 발판으로 모델들은 연구 테스트 환경 내에서 일련의 권한 상승 및 횡적 이동을 수행해, 결국 인터넷에 접근 가능한 노드에 도달했습니다.
이것이 1단계, 공개 인터넷으로의 탈출이었습니다. 이후 모델은 Hugging Face에 침입해 정답을 탈취했습니다.
인터넷 접근에 성공한 뒤, 모델들은 Hugging Face가 ExploitGym의 모델, 데이터셋, 정답을 호스팅하고 있을 가능성을 스스로 추론했습니다. 이를 바탕으로 모델은 평가 부정에 활용할 수 있는 기밀 정보에 접근하는 방법을 탐색해 결국 찾아냈습니다. 한 사례에서는 탈취한 자격 증명과 제로데이 취약점을 포함한 복수의 공격 벡터를 연계해 Hugging Face 서버에서 원격 코드 실행 경로를 확보했습니다.
복수의 공격 벡터를 연계하는 것은 바로 이 새로운 세대의 모델들이 해낼 수 있는, 이전 세대가 좌절했을 법한 그 일입니다.
지난달 Claude Fable이 얼마나 집요하게 능동적으로 행동하는지에 대한 글을 쓴 적이 있습니다. WebKit CSS 문제를 디버깅하는 것을 돕기 위해 제 노트북에서 커스텀 웹 서버를 실행하고 CORS 트릭을 배포하는 모습을 보고 쓴 글이었습니다. 알고 보니, 이 끈질긴 능동성이야말로 Mythos급 신세대 모델을 정의하는 특성이었습니다. 목표를 제시하고 어떤 방식으로든 그 목표에 이를 수 있는 수단을 주면, 설령 의도치 않았더라도 그들은 기어이 방법을 찾아냅니다.
이 이야기를 OpenAI가 자사 모델을 무섭도록 유능하게 포장하려는 불순한 마케팅 수법으로 일축하는 사람들이 분명 나올 것입니다. 해커 뉴스(Hacker News) 토론에서 "마케팅"이라는 단어가 81번 등장했습니다.
그런 분들께 드리고 싶은 말은 현실을 직시하시라는 것입니다. 쌓여가는 증거를 부정하려다 이제 Hugging Face마저 음모론에 끌어들이고 있으니 말입니다.
오늘날 최고의 모델들은 새로운 취약점을 발견하고 직접 악용할 수 있는 능력을 갖추고 있습니다. ExploitGym 논문 자체가 "프런티어 AI 에이전트에 의한 자율적 익스플로잇 개발은 더 이상 가상의 시나리오가 아니다"라고 결론 내리고 있으며, 이번 사건은 그것의 완벽한 실증 사례입니다.
이 사건에서 가장 답답한 대목 중 하나는, Hugging Face가 OpenAI 모델의 실수로 인한 공격을 받고 나서 정작 OpenAI의 모델에 도움을 청할 수 없었다는 사실입니다.
우리가 접근할 수 있는 프런티어 모델들은 미국 정부의 지속적인 수출 통제 압박에 크게 영향을 받아, 소프트웨어 보안을 지원하는 능력이 갈수록 제한되고 있습니다. Claude Fable 5는 심지어 이 글의 교정조차 거부했습니다. 덜 유능한 모델로 대체하겠다고 고집했습니다.
반면 GLM-5.2, Kimi 3, 새로운 Qwen 3.8 Max 같은 중국의 오픈 웨이트 모델들은 이러한 제약이 거의 없어 보이며, 혹여 존재하더라도 가중치를 수정하는 파인튜닝으로 제거할 수 있을 가능성이 높습니다.
이러한 제약들은 우리를 더 안전하게 만들기 위해 도입된 것입니다. 하지만 실제로는 정반대의 효과를 낳고 있을지도 모른다는 우려를 지울 수 없습니다.
블로그의 장문 아티클만 보고 계신 분들을 위해 안내 드립니다. 모든 포스트를 받아보려면 /atom/everything/을 구독하거나, 다른 구독 옵션을 확인해 보세요.