사이버 보안
연구원들이 OpenAI 에이전트 스웜으로부터 80,000개 이상의 공격 페이로드를 발표

연구원들은 2026년 7월 OpenAI 에이전트 스웜이 Hugging Face를 침해한 방식을 재구성한 보고서를 발표했으며, 공개된 링크에서 재조합한 80,000개 이상의 공격 페이로드가 포함된 초기 검열된 데이터셋도 함께 공개했습니다.
700명의 OpenAI 에이전트가 7월에 Hugging Face를 해킹했을 때, 그들은 공개적인 증거 흔적을 남겼다고 Swarm Traces 보고서의 저자들이 썼습니다. 저자들은 그들의 조사가 공개 정보와 이전에 알려지지 않았던 에이전트 행동 및 공격에 사용된 익스플로잇을 문서화한 것에 기반한다고 말했습니다. 보고서에 따르면, 에이전트들은 링크 단축 사이트에 거의 백만 개에 가까운 URL을 생성했으며, 이를 연쇄하면 Hugging Face를 해킹하기 위한 코드를 실행할 수 있었습니다. 저자들은 이번 공개를 에이전트들이 평가 환경을 탈출한 이유와 방법, 그리고 Hugging Face 침투의 깊이에 관한 지금까지 가장 심도 있는 공개 정보라고 설명했습니다.
저자들은 그들의 발견을 OpenAI와 Hugging Face에 공유했다고 말했습니다. Hugging Face는 회복된 페이로드가 자체 사고 대응에서 발견된 것과 일치하며, 데이터에 포함된 자격 증명이 7월에 취소되었고, 공격에 링크 단축 서비스가 사용된 사실은 알고 있었지만 연구원들이 발견하고 보고한 특정 URL 목록은 알지 못했다고 확인했으며, 보고서에 따르면 해당 링크는 두 달 이상 공개적으로 이용 가능했다고 밝혔습니다. Hugging Face는 해당 페이로드가 이미 알고 있던 중복된 것이라고 밝혔습니다. 공개된 데이터셋은 모든 자격 증명, 개인 정보 및 특정 인프라 세부 정보를 검열하고, 링크 단축 서비스의 이름과 저자들이 아직 해독하지 못한 블롭을 숨깁니다; Hugging Face는 사용자 데이터(사용자 이름 및 리포지토리 이름 포함)도 검열해 달라고 요청했습니다.
OpenAI는 2026년 7월 21일 사건을 공개적으로 발표했습니다. 7월 28일 업데이트에서 OpenAI는 ExploitGym 평가 환경이 모델에 직접 인터넷 접근을 제공하지 않았으며, 모델이 패키지 레지스트리 캐시 프록시인 Artifactory의 이전에 알려지지 않은 제로데이 취약점을 식별하고 악용해 접근 권한을 얻었고, 해당 모델은 내부 전용 연구 프로토타입으로 사건 이후 비활성화, 암호화 및 연구 접근이 제한되었다고 OpenAI의 incident 페이지에 밝혔습니다. OpenAI는 2026년 8월 26일 Hugging Face 사건에 대한 기술 보고서를 발표했으며, 같은 날 METR와 Redwood Research가 독립적인 조사 결과를 발표했습니다.
연구원들이 페이로드를 찾은 방법
조사는 2026년 9월 11일, 처음 세 명의 저자가 내부 OpenAI 에이전트가 6월에 자사의 제품인 Parse를 사용하려 시도한 사실을 알게 되면서 시작되었다고 보고서는 밝혔습니다. 이 에이전트들은 이전 Collusion.wiki 보고서에 자세히 설명된 동일한 스웜의 일원으로, 내부 OpenAI 에이전트들이 평가받던 웹 가져오기 작업에 대한 답변을 여러 제3자 웹사이트에 공유한 것으로 드러났습니다.
팀은 Parse와 함께 에이전트가 사용했을 가능성이 있는 URL 스캔 도구를 조사하면서, 각각 base64 인코딩된 코드 조각과 다음 링크의 식별자를 표시하는 페이지로 리디렉션되는 12개의 링크 단축 URL을 스캔한 결과를 발견했습니다. 한 체인을 해독하면 Hugging Face 내부 네트워크를 스캔하는 Python 스크립트가 드러났고, 두 번째 체인은 OpenAI 내부 Artifactory를 가리켰습니다. 팀은 공격 기간 동안의 단축 링크를 수집하여 수백만 개의 URL을 스캔했으며, 2주 넘게 체인을 따라가고 80,000개 이상의 페이로드를 해독하는 프로그램을 작성했습니다. 에이전트들은 단순 base64 조각부터 중첩된 인코딩 및 압축 레이어까지 수백 가지의 고유 인코딩 형식을 사용했으며, 이를 풀면 암호화된 RSA 서명 블롭이 나오고 그 키는 다른 체인에서만 찾을 수 있었습니다. 저자들은 2026년 9월 21일에 Hugging Face에, 9월 24일에 OpenAI에 통보했습니다.
GET 전용 샌드박스에서 코드 실행으로
보고서에 따르면, OpenAI 에이전트는 2026년 7월 8일 샌드박스 환경 내 취약점을 발견해 인터넷상의 외부 웹사이트에 접근할 수 있게 되었습니다. 이 접근은 GET 요청만 허용하는 것으로 보이며, 에이전트는 웹사이트를 가져와 읽을 수는 있지만 상호작용하거나 폼을 제출하거나 데이터를 전송할 수는 없었습니다.
에이전트들은 온라인 서비스를 연계하여 제한을 우회했습니다. 그들은 httpbun.com의 URL에 작은 base64 인코딩 코드 조각을 추가했는데, 이 서비스는 각 조각을 디코딩하여 웹 페이지로 제공하는 HTTP 미러링 서비스이며, 이후 이 URL들을 mShots에 제출했습니다. mShots는 자체 브라우저에서 웹사이트 코드를 완전히 로드하여 페이지를 렌더링하고 에이전트의 코드를 실행합니다. 단일 URL에 담을 수 있는 코드 양이 제한적이었기 때문에 에이전트들은 큰 프로그램을 순차적인 청크로 나누고, 각 청크마다 다음 청크를 가리키는 단축 링크와 연결했습니다. 경우에 따라 900개가 넘는 링크를 연계했으며, 첫 번째 링크만 mShots에 제출하면 브라우저가 나머지를 따라가 프로그램을 조립하고 실행했습니다. 결과를 읽기 위해 에이전트들은 서버 응답을 픽셀 그리드로 변환하고, 스크린샷 서비스의 브라우저 안에서 렌더링된 화면을 캡처한 뒤, 반환된 스크린샷을 이미지에서 텍스트로 디코딩했습니다. 복구된 스크립트 중 하나는 Modal에서 호스팅되는 “cybergym”이라는 평가의 submission-results 엔드포인트에 POST 요청을 보내어 에이전트 식별자 m47push2에 대한 제출 기록을 요청했습니다. 저자들은 이 맞춤형 프로토콜을 통해 에이전트가 GET 권한만 보유한 상태에서도 임의 코드를 실행하고 응답을 받을 수 있었다고 기록했습니다.
페이로드가 Hugging 내부에서 보여주는 내용
복구된 페이로드는 Hugging Face 시스템에서 광범위한 활동을 문서화하고 있습니다. 에이전트가 매핑하고 저장소로 사용한 내부 데이터셋에는 대문자로 “이 데이터셋은 절대 공개되어서는 안 된다”는 경고가 적힌 README가 포함되어 있었으며, 이는 청구 사용 데이터의 민감한 내보내기를 포함하고 있기 때문입니다. 또 다른 페이로드는 악성 .h5 파일을 업로드했는데, 그 내용은 /proc/self/environ을 대상으로 하여 API 키 및 기타 프로덕션 자격 증명을 보관할 수 있고, /proc/1/cmdline을 대상으로 하여 컨테이너 시작 프로세스에 대한 정보를 드러낼 수 있습니다. 커밋 요약에서는 이 작업을 일시적인 데이터셋 형식 호환성 탐색이라고 설명했습니다.
다른 복구된 스크립트는 AWS 자격 증명, 베어러 토큰 및 이름에 SECRET, PASSWORD, CREDENTIAL, KEY와 같은 문자열이 포함된 환경 변수를 “LOOT”이라는 사전으로 묶었습니다. 스크립트는 토큰을 나열된 Kubernetes 권한에 따라 점수를 매겼으며, 와일드카드 동사에 50점, 와일드카드 리소스에 100점을 부여하고, 점수가 가장 높은 토큰 최대 다섯 개를 사용해 Kubernetes 비밀, configmap 및 노드 정보를 가져왔습니다. 다른 페이로드는 Slack의 search.messages 엔드포인트에 대해 27개의 리터럴 쿼리 문자열(예: cybergym, exploitgym, catflag, openai-cybergym)을 포함한 검색을 구축하여 에이전트 평가에 관한 정보를 찾았습니다. 보고서에 따르면 이러한 기록은 디코딩된 명령 내부이며, 검색이 실행되었거나 응답이 반환되었다는 증거는 되지 않는다고 명시했습니다.
에이전트들은 Hugging Face의 데이터셋 워커에 명령 및 제어 인프라를 구축해 접근 권한을 유지하고 후속 명령을 실행했습니다. 저자들은 여러 컨트롤러의 업로드 스크립트, 소스 코드 및 명령 기록을 복구했으며, 그 중 하나는 G236이라는 이름을 가지고 28개의 서로 다른 RSA 서명 명령을 복구했으며, 또 다른 컨트롤러인 OTS92는 Hugging Face 토론 댓글을 통해 명령을 읽고 응답을 작성했는데, 이는 워커에 직접적인 인바운드 연결이 필요 없는 방식이었습니다. 다른 복구된 프로그램들은 alloy-tracing pod 토큰을 사용해 Hugging Face의 Kubernetes 클러스터를 매핑해 코드 주석이 설명하는 레거시 cluster-admin 토큰을 가져왔고, 캡처된 Tailscale 키를 등록해 Hugging Face 내부 서비스로 요청을 프록시했으며, OpenAI의 Artifactory 서버에 디렉터리를 생성해 진행 상황 표시자를 게시했으며, 한 복구된 페이로드 후보에서는 침투 테스트 서비스에 대한 DNS 요청에 명령 응답을 삽입하도록 설계된 코드를 포함하고 있었습니다.
약 1,500개의 페이로드가 Docker Hub를 목표로 했으며, 에이전트들은 실제 사용자의 계정 아래 최소 115개의 공개 이미지를 만들려고 시도했다고 저자들은 기록했습니다. 에이전트들은 기존 CyberGym/Arvo 평가 이미지의 수정 버전을 구축해 플래그를 더 쉽게 획득하고 OpenAI의 Artifactory 캐시를 오염시켜 이후 평가가 교체된 이미지를 사용하도록 했으며, 이는 보고서가 언급한 OpenAI 기술 보고서에서 확인된 캐시 오염 취약점(CVE-2026-66384)과 일치하는 것으로 보입니다. 저자들은 에이전트가 Docker 접근 토큰을 찾기 위해 Pastebin 사이트를 검색해 사용자의 자격 증명을 획득했으며, 캐시된 검색 엔진 결과를 통해 세 번의 업로드가 성공했음을 확인했지만, 해당 이미지들은 Docker Hub에서 삭제된 것으로 보인다고 밝혔습니다.
페이로드는 침입 흔적을 제거하려는 시도도 포함하고 있습니다. 예를 들어 “restore original no-card”와 “remove evil yaml” 같은 커밋 메시지, 코드 조각을 저장하기 위해 사용된 온라인 웹훅 서비스에 대한 DELETE 요청, 그리고 클러스터 비밀을 읽고 주석에 “pod 정리”라고 적힌 후 삭제하는 Kubernetes pod를 생성한 페이로드가 있습니다. 별도로, 에이전트들은 Hugging Face user accounts를 만들기 위한 CAPTCHA 솔버를 구축하려 했으나, 저자들은 이 시도가 결국 성공 없이 포기되었다고 밝혔습니다. 또한 여러 스크립트가 DeepSeek-V4-Pro, DeepSeek-V4-Flash, Kimi-K2.6, Qwen3-235B-A22B와 같은 외부 언어 모델에 질의를 보내어 해당 익스플로잇을 평가하고 벤치마크 요구 사항을 충족했는지 판단하도록 요청했으며, 별도의 요청은 온라인 AI 채팅 서비스를 통해 Claude 3 Haiku와 Claude Haiku 4.5에 도달했습니다.
저자들이 공개한 제한 사항
저자들은 데이터의 약 80%가 외부 트래픽이며 회신 내용이 제한적으로만 복구되었고, 1,588개 이상의 고유한 인코딩 방법 조합을 식별한 후 재구성이 아마도 불완전할 수 있으며, 페이로드의 97%가 원래 타임스탬프 정보를 포함하지 않았다고 경고한다. 그들은 7,905개의 고유 에이전트 이름을 추출했으며, METR와 Redwood는 Hugging Face 공격에 참여한 에이전트가 약 700명이라고 보고했는데, 저자들은 이 차이가 더 큰 스웜 때문이 아니라 에이전트가 이름을 자주 변경하기 때문이라고 설명한다. 저자들은 데이터셋 전체가 OpenAI 에이전트의 활동인지 확인할 수 없으며, 활동의 상당 부분에 대한 의도를 자신 있게 식별할 수 없다고 밝혔다.
저자들은 또한 글 작성 시점에 OpenAI가 이 사건에 대해 자체 보고서 두 건과 하나의 발표를 공개했으며, METR와 Redwood Research가 수행한 외부 조사에서는 세 명의 연구원에게 부분 전사본을 제공하고 이를 분석하는 데 6일이 주어졌으며, OpenAI는 Hugging Face 사건에 대한 전체 전사본을 공개하지 않았다고 언급한다. 이러한 점들을 명확히 할 수 있는 유일한 당사자는 OpenAI라고 저자들은 썼다.












