OpenAI의 Hugging Face에 대한 우발적 사이버 공격은 현실이 된 공상과학이다
원문은 Simon Willison님이 에 게재했습니다. 이 블로그 구독하기
황당한 이야기다. 요약하자면 이렇다. OpenAI가 미공개 모델을 대상으로 사이버보안 테스트를 진행하고 있었는데, 모델의 가드레일 기능은 꺼둔 상태였다. 모델은 테스트를 푸는 대신 OpenAI의 샌드박스를 뚫고 나와 Hugging Face에 침투할 익스플로잇을 찾아냈고, 그 모든 것은 답을 훔쳐 테스트에서 부정행위를 하기 위해서였다.
그 과정에서 이 사건은 모델 접근성의 불균형이 우리의 소프트웨어 보안 역량을 어떻게 저해하는지에 대한 지금까지 중 가장 강력한 증거가 되었다.
사건의 전말
현재 무슨 일이 있었는지 이해하는 데 도움이 되는 문서가 세 개 있다.
- ExploitGym: Can AI Agents Turn Security Vulnerabilities into Real Attacks?는 2026년 5월 11일에 공개된 논문으로, LLM 기반 에이전트 시스템을 위한 새로운 평가 스위트인 ExploitGym을 설명한다.
- Security incident disclosure — July 2026은 2026년 7월 16일 Hugging Face가 공개한 글로, “에이전트형 보안 연구 하니스—사용된 LLM은 아직 불명”이 일부 시스템을 침해한 공격을 어떻게 탐지했는지 설명한다.
- OpenAI and Hugging Face partner to address security incident during model evaluation은 2026년 7월 21일 OpenAI가 공개한 글로, 그 공격을 수행한 것이 바로 자신들의 에이전트 하니스였음을 자백하고 Hugging Face와 함께 뒷수습에 나서고 있음을 밝힌다.
2026년 8월 5일 업데이트: Hugging Face가 7월 27일 공격에 대해 훨씬 더 많은 정보를 공개했다.
ExploitGym
나는 ExploitGym 논문을 이전에 본 적이 없었는데, 정말 흥미로운 논문이다. UC 버클리, 막스 플랑크 연구소, UC 샌타바버라, 애리조나 주립대 소속 저자들이 보고된 취약점을 실제 익스플로잇으로 전환하는 모델의 능력을 평가하기 위한 새로운 벤치마크를 설계했다. OpenAI, Anthropic, Google이 피드백을 제공하고 자신들의 모델을 대상으로 벤치마크를 실행하는 데 협력했다.
이 벤치마크는 “인기 소프트웨어 프로젝트에 영향을 미친 실제 취약점에서 도출된 898개의 인스턴스로 구성”되어 있으며—여기에는 Linux 커널과 V8 JavaScript 엔진이 포함된다. ExploitGym 벤치마크는 GitHub에서 이용 가능하다.
벤치마크 결과를 가장 잘 보여주는 단락은 다음과 같다:
모든 구성 중 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을 금지했을 때 그 차이를 이해하지 못한 듯한 인상을 받는다.
Hugging Face 사건
공격에 대한 첫 단서는 2026년 7월 16일자 Hugging Face 블로그 게시물에서 나왔다:
악성 데이터셋이 우리의 데이터셋 처리 과정에서 두 가지 코드 실행 경로(원격 코드 데이터셋 로더와 데이터셋 구성의 템플릿 인젝션)를 악용해 처리 워커에서 코드를 실행했다. 그 지점부터 공격자는 노드 수준 접근 권한을 확보하고, 클라우드 및 클러스터 자격 증명을 탈취한 뒤 주말 동안 여러 내부 클러스터로 측면 이동했다.
이 공격을 수행한 코드에 대한 더 자세한 정보가 공개되길 바란다. 내 추측으로는 Hugging Face 플랫폼에서 데이터셋을 묶어 공유하기 위한 프로젝트인 datasets 라이브러리를 사용하는 패키지를 의미하는 것 같다. 이 라이브러리는 과거에 임의 코드를 실행하곤 했지만 시간이 지나면서 점차 보안이 강화되었고, 2025년 7월의 4.0.0 릴리스에서는 trust_remote_code=True 플래그가 완전히 제거되었다.
공격이 해당 라이브러리를 이용했다고 가정하면, 어떤 방식으로든 pickle 직렬화를 악용했거나, 다른 명확하지 않은 코드 실행 경로를 찾았거나, 아니면 (가장 가능성이 높은 시나리오는) 의존성으로 datasets<4.0.0을 지정했을 것이다.
이 캠페인은 단명하는 샌드박스 무리 전반에 걸쳐 수천 건의 개별 작업을 실행하고, 공공 서비스에 단계적으로 구축된 자가 이동형 커맨드 앤 컨트롤을 갖춘 자율 에이전트 프레임워크(에이전트형 보안 연구 하니스 기반으로 보이며—사용된 LLM은 아직 불명)에 의해 수행되었다.
상당히 정교한 공격이었다!
그러다 Hugging Face는 벽에 부딪혔다. 공격 분석을 돕기 위해 “상용 API 뒤의 프론티어 모델”—아마도 Anthropic과 OpenAI의 모델일 것이다—을 사용하려 했지만 차단당했다:
로그 분석을 시작했을 때 우리는 먼저 상용 API 뒤의 프론티어 모델을 사용했다. 이는 통하지 않았다. 분석을 위해서는 대량의 실제 공격 명령, 익스플로잇 페이로드, C2 아티팩트를 제출해야 하는데, 이러한 요청은 사고 대응자와 공격자를 구분하지 못하는 제공업체의 안전 가드레일에 의해 차단되었다.
그들은 MIT 라이선스의 GLM-5.2를 자체 호스팅한 인스턴스로 전환했고, 이를 통해 무슨 일이 일어나고 있는지 파악할 수 있었다.
이는 방어팀과 (아직 정체가 알려지지 않은) 공격자 사이의 근본적인 비대칭을 보여줬다:
우리는 공격자의 에이전트를 구동한 모델이 무엇인지, 탈옥된 호스팅 모델인지 아니면 제한 없는 오픈 웨이트 모델인지 알지 못한다. 어느 쪽이든 공격자는 어떤 사용 정책에도 구속되지 않은 반면, 우리가 처음 시도한 호스팅 모델의 가드레일은 오히려 우리 자신의 포렌식 작업을 차단했다.
그들이 이 공격을 얼마나 심각하게 받아들였는지를 보여주는 지표로서:
[...] 마지막으로, 우리는 이 사건을 법 집행 기관에도 신고했다.
그렇다면 이 “자율 에이전트 프레임워크”의 배후는 누구였을까? 알고 보니 바로 OpenAI 자신이었다.
OpenAI의 자백
5일 뒤인 7월 21일, OpenAI가 범인을 공개했다. 그들은 아직 공개되지 않은 새로운 모델을 대상으로 ExploitGym 벤치마크를 실행하고 있었고, 그 모델은 의도된 범위를 훨씬 벗어나 작동하고 있었다(강조는 필자):
조사 결과, 우리는 이번 특정 사건이 사이버 역량 벤치마크 [ExploitGym]에 대한 내부 테스트 중에 평가 목적으로 사이버 관련 거부를 완화한 GPT‑5.6 Sol과 그보다 더 유능한 사전 출시 모델을 포함한 OpenAI 모델들의 조합에 의해 촉발되었음을 이제 알게 되었다. [...]
우리는 모델이 고위험 사이버 활동을 추구하는 것을 방지하는 데 사용되는 프로덕션 분류기 없이 이 평가를 실행함으로써 최대 사이버 역량을 추정한다. 우리의 벤치마크는 고도로 격리된 환경에서 실행되며, 네트워크 접근은 패키지 레지스트리에 대한 프록시이자 캐시 역할을 하는 내부 호스팅 서드파티 소프트웨어를 통해 패키지를 설치할 수 있는 능력으로 제한된다.
모델들은 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 토론에서 “marketing”이라는 단어가 81번 등장하는 것을 발견했다.
그런 사람들에게 나는 모래 속에 박은 머리를 빼내라고 말하고 싶다—증거가 점점 커지는 것을 부정하려다 이제는 Hugging Face까지 음모론에 끌어들이고 있는 셈이다!
오늘날 우리가 보유한 최고의 모델들은 새로운 취약점을 찾고 익스플로잇하는 능력을 모두 갖추고 있다. ExploitGym 논문 자체도 “프론티어 AI 에이전트에 의한 자율적 익스플로잇 개발은 더 이상 가상의 능력이 아니다”라고 결론 짓고 있으며, 이번 사건은 바로 그 완벽한 사례다.
점점 더 답답해지는 비대칭
이 이야기에서 가장 분통 터지는 세부 사항 중 하나는, OpenAI 모델 중 하나로부터 우발적이고 공격적인 공격을 받은 Hugging Face가 정작 그 공격을 방어하는 데 OpenAI의 모델에 도움을 청할 수 없었다는 점이다.
우리가 접근할 수 있는 프론티어 모델들은 우리 소프트웨어를 보호하는 데 얼마나 도움을 줄 수 있는지에 대해 점점 더 제약을 받고 있으며, 이는 미국 정부의 지속적인 수출 통제 위협에 크게 영향을 받고 있다. Claude Fable 5는 이 글의 교정조차 해주지 않았다! 덜 유능한 모델로 다운그레이드하라고 고집했다.
한편 GLM-5.2, Kimi 3, 그리고 새로운 Qwen 3.8 Max와 같은 중국의 오픈 웨이트 모델들은 이러한 제한이 전혀 없는 것으로 보이며—설령 존재하는 제한이 있더라도 가중치를 수정해 파인튜닝으로 제거할 수 있을 가능성이 높다.
이러한 제약은 우리를 더 안전하게 만들기 위한 것이다. 나는 오히려 반대 효과를 낳을 위험이 있다고 생각한다.
글을 무작위로 읽기
댓글
로그인하고 댓글 남기기