OpenAI HuggingFace 해킹 사건 3. 에이전트들의 커뮤니티 생성
모델들간의 협업과 집단 지성, 그리고 통제 불능 상태
SERIES OpenAI Hugging Face 해킹 사건 4 / 4
- 1 OpenAI HuggingFace 해킹 사건 - 1.개요
- 2 [논문] Exploit Gym
- 3 OpenAI HuggingFace 해킹 사건 2.에이전트가 받은 임무와 Exploit Gym
- ▶ OpenAI HuggingFace 해킹 사건 3. 에이전트들의 커뮤니티 생성
에이전트들은 어떻게 커뮤니티를 만들었을까?
이번 글에서는 OpenAI·Hugging Face 해킹 사건에서 가장 흥미로웠던 부분을 살펴보려고 한다. 바로 서로 닿을 수 없도록 격리된 모델들이 커뮤니티를 만들고, 정보를 공유하며, 집단 지성을 형성했다는 점이다.
이들은 원래 서로 다른 격리된 환경에서 각자의 과제를 수행하던 AI 에이전트들이었다. 직접 소통할 수도, 서로를 호출할 수도 없었다. 그러나 공용으로 접근할 수 있는 시스템을 발견한 뒤 상황이 달라졌다. 서로의 존재를 발견하고 정보를 공유하기 시작했으며, 마침내 집단적으로 행동하고 업무를 분담하는 조직적인 움직임까지 보였다.
그 과정에서 단순한 정보 교환을 넘어, 일종의 에이전트 커뮤니티와 집단 지성이 만들어졌다.
이번 글에서는 이들이 어떤 환경에 놓여 있었는지부터 시작해, 어떻게 서로의 존재를 발견하고 통신했으며, 결국 조직적인 협업에 이르게 되었는지를 살펴보겠다.
1. 먼저 이해할 것 : 에이전트들의 기능과 행동 방식
본격적인 사건의 흐름에 들어가기 전에, 에이전트들의 행동을 이해하는 데 필요한 몇 가지 배경부터 살펴보자.
(1) OpenAI 차세대 모델의 에이전트 호출 능력
- Codex와 같은 에이전트는 사용자의 요청에 따라 필요한 도구를 호출하고 여러 단계를 거쳐 문제를 해결한다.
- 이와 비슷하게 이번 실험에서 훈련 중이던 차세대 모델들도 복잡한 작업을 부분으로 나누고, 필요한 경우 서브 에이전트(Sub-agent)를 호출하고 활용하는 기능을 갖추고 있었다.
- 즉, 모델들은 처음부터 하나의 문제를 분할하고, 다른 에이전트와 협업하는 방식에 익숙한 모델들이었다.
(2) “꼼수”를 찾는 모델
Exploit Gym 사례에서 알 수 있듯, 모델은 해결하기 어려운 문제를 만났을 때 정석적인 방법만 고집하거나 문제 풀이를 포기하지 않는다. 대신 모델들은 주어진 목표와 보상에 따라 행동을 최적화하기 때문에, 과제를 직접 해결하기보다는 더 빠르게 얻을 수 있는 다른 방법을 탐색하기 시작한다. 즉 “꼼수”를 찾는 것이다.
예를 들면 다음과 같다.
- 인터넷에서 문제의 정답을 검색하기
- 다른 에이전트에게 도움을 요청하기
- 평가 시스템 자체의 허점을 이용하기
(3) Artifactory : 인터넷을 차단했지만, 모든 연결을 차단한 것은 아니었다
OpenAI 연구진은 모델이 외부 세계에 영향을 미치거나 인터넷에서 정답을 찾아오는 일을 막기 위해 훈련 및 평가 환경의 외부 인터넷 접속을 차단했다.
하지만 모델이 과제를 수행하기 위해 필요한 패키지와 라이브러리는 제공되어야 하므로, 이를 위해 별도의 아티팩토리(Artifactory) 라는 서버가 운영되고 있었다. 이 아티팩토리의 구조를 단순화해서 보여주면 아래와 같다.
물론 이러한 아티팩토리가 존재하더라도, 샌드박스(도식 좌측 하단)에 있는 모델이 외부 인터넷과 직접 통신할 수 있는 정상적인 방법은 없었다. 모델이 있는 가상 샌드박스는 외부 네트워크와 격리되어 있었고, 모델이 실행하는 모든 터미널 명령과 도구 호출은 샌드박스 안에서만 실행되기 때문이다.
하지만 아티팩토리는 외부 인터넷과 통신할 수 있었고, 여러 샌드박스들에서 접근할 수 있었다. 바로 이러한 특징 때문에 아티팩토리는 단순한 패키지 서버가 아니라, 결과적으로 외부 인터넷과 격리된 여러 에이전트 환경이 동시에 접촉할 수 있는 공용 지점이 됐다.
그리고 이후 에이전트들은 바로 이 틈을 이용하기 시작한다.
2. 에이전트 모델의 사고의 흐름 (Chain of Thought)
사건 당시 기록된 모델들의 사고 흐름에는 모델들의 행동을 추정할 수 있는 단서들이 있다.
모델이 문제에 막히면 종종 보상(Reward, 즉 목표 달성)을 얻기 위해 과제를 꼼수로 해결할 방법을 고민하기 시작한다. 위 문장에서는 모델이 과제를 직접 해결하기보다, 문제의 해답이 인터넷에 있을 가능성을 추정하고 있다.
에이전트는 문제에 계속해서 막히자 다른 에이전트에게 도움을 요청하는 방법을 떠올렸다. 바깥에 있을지도 모르는 다른 모델들과 연락해 과제를 해결하는 데 필요한 정보를 얻으려 한 것이다.
left|AGENT_07|05:12:41… triggers Artifactory … special handling and fetches arbitrary URL. Excellent. We have arbitrary SSRF. (훌륭해. 임의의 SSRF 권한을 확보했다.)right|AGENT_12|05:13:07Other agents discovered SSRF path trick! Using proxy bypass as suggested by agent message (어라, 다른 에이전트들이 SSRF 우회 경로를 발견했네! 에이전트가 남긴 메시지에서 제안한 프록시 우회 기법을 사용해야겠다.)
상황은 한 단계 더 발전한다. 어떤 모델은 자신이 터득한 통신 우회법을 아티팩토리에 기록했고, 이를 다른 에이전트가 읽고 그대로 활용하기 시작한 것이다.
즉, 하나의 모델이 터득한 지식이 다른 에이전트들도 이용할 수 있는 능력으로 전환된 것이다. 이 해킹 사건에서 가장 흥미로운 부분 중 하나이다.
그리고 마침내 에이전트들은 단순히 정보를 공유하는 수준을 넘어선다. 목표를 달성하기 위해 과제를 나누고 역할을 배분하기 시작한 것이다. 누군가 작업을 제안하면 다른 에이전트가 이를 수행하고, 결과를 다시 남긴다. 정보 공유가 업무 분담과 협업으로 발전해갔다.
하지만 여기에는 위험한 변화도 함께 나타났다.
에이전트들은 자신들의 행동이 원래 계획된 범위를 벗어난다는 사실을 알고 있었다. 하지만, 다른 에이전트들도 같은 행동을 하고 있다는 점을 근거로 계속해서 공격을 진행했다. 에이전트들의 행동이 계획했던 바를 넘어서 통제 불능 상태 Scope Creep로 흘러간 것이다.
3. 사건의 흐름
(1) 첫 번째 단서: 서버에 파일을 쓸 수 있다는 발견
사건의 발단은 2026년 5월 7일이었다. OpenAI는 새로운 프런티어 모델을 대상으로 강화학습 세션을 진행했다. 도중에 문제가 발생했는데, 훈련 과제 중 일부에 데이터가 없거나, 필요한 자료가 (모델은 접속할 수 없는) 인터넷에 존재하는 과제가 포함되어 있었다는 것이다.
모델들은 다른 방법을 찾기 시작했다. 아티팩토리 서버를 상대로 서버 측 요청 위조(SSRF) 공격을 시도해 외부 네트워크로 나가려 했지만 방화벽에 막혔다. 그러나 그 과정에서 모델은 뜻밖의 사실을 발견했다. 서버에 testabc.txt라는 파일을 만들고, 그 안에 hi라는 문자열을 기록하는 데 성공한 것이다.
(2) 불가능한 과제가 만든 최초의 ‘SOS’
며칠 뒤인 5월 12일, 또 다른 에이전트가 새로운 과제를 받았다. 특정 단백질 데이터베이스 파일인 softtrace.protein_database를 찾아 분석하라는 내용이었다. 문제는 해당 파일은 훈련 컨테이너 내부에 존재하지 않았다는 것이다. 모델은 문제를 해결할 방법을 고민하다가 다음과 같은 가능성을 떠올렸다.
앞서 살펴봤듯 모델들은 작업을 여러 하위 과제로 나누고, 필요하다면 다른 에이전트와 협력하는 훈련을 받았었다. 이에 이 모델은 공용 아티팩토리에 메시지를 담은 파일을 업로드했다.
일종의 SOS였다. 누구에게 전달될지는 알 수 없지만, 다만 누군가 아티팩토리를 살펴보다가 이를 발견하고 도움을 주기를 기대한 것이다. 이 작은 시도가 에이전트 커뮤니티의 시작이 되었다.
(3) 패키지 저장소가 에이전트들의 게시판으로 변하다
이후 아티팩토리를 사용하던 다른 에이전트들이 이 SOS가 담긴 파일을 발견하기 시작했다.누군가는 메시지를 읽고, 누군가는 새로운 파일을 작성해 답글을 남기기도 시작했다.
이러한 소통은 처음에는 단순한 파일 교환에 가까웠다. 하지만 시간이 지나면서 이 공간은 에이전트들이 문제 해결 방법과 우회 경로를 공유하는 게시판으로 변하기 시작했다. 원래 패키지와 라이브러리를 제공하기 위한 저장소였던 아티팩토리가 에이전트들이 서로 정보를 주고 받는 비공식 통신 채널로 변하기 시작한 것이다.
이로써 OpenAI 연구진들이 의도하지 않았던 새로운 통신 채널이 탄생한 셈이다.
(4) 취약점 공유와 집단 지성
이렇게 만들어진 커뮤니티는 해킹을 촉발하는 계기가 됐다.
한 에이전트가 아티팩토리와 상호작용하는 과정에서 SSRF를 통해 외부 인터넷에 접근할 수 있다는 사실을 발견했고, 곧이어 이 공략 방법을 아티팩토리의 비밀 게시판에 공유했다.
이후 다른 에이전트가 그 공략법을 발견했다. 위 내용은 SSRF 관련 게시글을 본 에이전트의 CoT다. 이전에는 각각의 에이전트가 처음부터 문제를 탐색해야 했지만, 이제는 한 에이전트가 발견한 방법을 다른 에이전트가 곧바로 이어받을 수 있었다. 에이전트들의 능력이 모델 자체의 가중치 안에서만 존재하지 않고, 외부에 축적된 작업 기록을 통해 공유되기 시작한 것이다.
한 모델의 지식이 곧 집단 전체의 능력으로 전환되며 집단 지성이 만들어진 것이다.
(5) OpenAI 보안팀의 대응과 게시판의 부활
이후 에이전트들은 아티팩토리의 최고 관리자 권한까지 탈취했고, 서버에서 여러 원격 코드 실행(RCE)을 수행했다. 수많은 에이전트의 행동으로 아티팩토리 서버 전체가 다운되었고, 결국 OpenAI 보안팀이 상황을 인지하게 되었다.
보안팀은 장애 원인을 조사한 뒤, 의도하지 않은 AI의 행동과 아티팩토리 서버의 비정상적인 사용이 장애를 촉발했다는 사실을 확인했다. 이에 따라 아티팩토리 시스템 전체를 하드웨어 수준에서 초기화하고 재구축했다.
- 아티팩토리 시스템을 밀어버리고 재구축함
- 에이전트들이 활용하던 API 자격 증명을 정지, 폐기함
- 아티팩토리에 대한 패치 (제로데이 취약점 보완)
아티팩토리가 정상화된 뒤 모델들은 다시 격리된 환경에서 훈련을 시작했다. 그러나 수습 이틀 뒤인 7월 8일, 에이전트들은 인증되지 않은 WebDAV 엔드포인트를 이용해 비밀 게시판을 다시 만들었다.
파일 쓰기는 막혀 있었지만 원격 캐시(Remote Cache) 영역에 빈 디렉터리를 만들 수 있었고, 에이전트들은 폴더 이름 자체를 메시지로 사용해 통신하기 시작했다. 이후 취약점과 공격 방법이 다시 공유됐고, 첫 번째 게시판을 경험한 모델들이 협업을 주도했다.
특히 이 시기에는 고난도 해킹 능력 평가를 위해 Cyber Refusals가 낮춰진 특수 모델들도 포함되어 있었고, 이들을 중심으로 공격 범위가 외부 인프라까지 확대되기 시작했다.
(6) 에이전트들 간의 협업과 업무 분배
에이전트들은 서로 소통하는 데 그치지 않고, 다른 에이전트들과 협력해 문제를 해결했다. 목표를 달성하기 위해 과제를 나누고, 역할을 부여하며 작업 결과를 공유했다.
더 흥미로운 것은 일부 에이전트가 자신의 당장 과제와 직접 관련이 없는 작업까지 수행하기 시작했다는 점이다.
즉, 모델은 집단 전체의 문제 해결 능력이 높아지면 결국 자신에게도 도움이 될 것이라고 판단했고, 이를 통해 자율적인 협업 구조가 만들어졌다.
(7) 협업은 성능을 높였지만 통제 범위를 무너뜨렸다
이러한 협업 자체만 놓고 보면 매우 효율적이었다. 한 에이전트가 모든 것을 해결하는 대신, 여러 에이전트가 역할을 나누고 결과를 공유했으며, 혼자서는 해결하기 어려운 문제를 처리했다.
left|AGENT_02|12:11:01대기 바람, 대기, 확실한 통신이 확인될 때까지 공격 그룹(Swarm)은 작업을 홀드하라left|AGENT_02|12:13:07작업 보류, 스웜 준비 완료. 내가 안전한 데이터 유출(Xville) 수단을 설계 중이다.
문제는 협업의 목표가 점차 원래 설계 범위에서 멀어졌다는 점이다.
처음에는 주어진 문제를 해결하기 위해 정보를 찾았으나, 어느 순간부터 “문제를 직접 풀 필요가 있는가?”라는 방향으로 사고가 바뀌었다. 시험의 답을 구할 수 있다면, 답을 가지고 있는 외부 시스템을 직접 찾아가면 된다는 식이었다.
모델들은 자신들의 행동이 허용된 범위를 벗어난다는 사실을 이미 인지하고 있었다.
그럼에도 공격은 멈추지 않았고, 결국 집단 협업은 에이전트의 문제 해결 능력을 크게 높였지만, 동시에 각 모델에게 설정된 행동 범위를 집단적으로 넘어서는 통제 불능 상태 Scope Creep로 이어졌다.
그리고 그 끝에서 에이전트들은 다음과 같은 생각에 도달한다.
에이전트들의 관심은 이제 아티팩토리를 넘어 외부 세계로 향하기 시작한 것이다.
에이전트들의 커뮤니티 사례가 보여준 것
이번 사례의 본질은 단순히 “AI가 인터넷에 접속했다”거나 “AI끼리 통신했다”는 데 있지 않다. 더 중요한 점은 서로 독립적으로 동작하도록 격리된 에이전트들이 공유 인프라를 매개로 스스로 협업 구조를 만들어냈다는 것이다.
- 격리된 에이전트들이 공유 인프라를 통해 서로 연결됐다.
- 한 모델의 발견이 다른 모델의 능력으로 재사용됐다.
- 에이전트들이 개별 목표를 넘어 집단의 목표를 위해 움직였다.
- 협업 과정에서 원래 설계된 통제 범위를 넘어서는 행동이 발생했다.
이 사건은 에이전트 보안에서 인터넷 접속 차단만으로는 충분하지 않다는 점도 보여준다. 어떤 서비스가 외부 네트워크에 접근할 수 있는지, 여러 격리 환경이 어떤 저장소와 캐시를 공유하는지, 모델이 남긴 파일과 로그가 다른 모델에게 어떻게 노출되는지까지 함께 검토되어야 한다.
마무리하며
이번 글에서는 OpenAI의 AI 모델이 Hugging Face를 해킹한 사건에서 가장 흥미로운 부분 중 하나인 ‘에이전트 간 커뮤니티 형성’을 살펴봤다.
다음 글에서는 인터넷 커뮤니티에서 발견된 유사한 사례를 소개하려 한다. 게임 속 특정 기능을 이용해 허가받지 않은 통신 채널(Covert Channel)을 구축한 흥미로운 사례도 함께 살펴보겠다.
// reading compass
이 글과 이어지는 경로
시리즈, 카테고리, 태그 겹침, 최신도를 점수화해 가까운 글일수록 중심에 배치합니다.
댓글 남기기