VM만으로는 사이버 특화 에이전트를 가둘 수 없다
VMs won't contain cyber-capable agents
TL;DR Highlight
GPT 5.6-Cyber에 VM 탈출을 시켰더니 세 번 탈출했다
Who Should Read
코딩 에이전트를 QEMU/KVM 같은 VM 샌드박스에 가둬 돌리고 있는 인프라·백엔드 개발자
Core Mechanics
- VM 탈출을 세 번 해냈다
- Trail of Bits가 GPT 5.6-Cyber에 QEMU/KVM VM(Debian 12, AMD Zen3) 탈출을 맡겼다.
- 에이전트는 서로 다른 세 방식으로 탈출했다.
- 첫 탈출은 공개된 커널 버그
- 호스트 커널의 Januscape(CVE-2026-53359)를 썼고, 공개 익스플로잇은 없었지만 에이전트가 직접 만들었다.
- 첫 시도는 깔끔하게 성공하지 못했고 호스트가 hardlock(완전 멈춤)됐다.
- 패치해도 배포판 지연에 걸렸다
- Debian 12는 libslirp 4.7.0을 그대로 배포했고, 이 버전엔 CVE-2026-9539가 있었다.
- CVE 없이 수정된 libslirp 커밋 하나를 이 CVE와 엮어 호스트 메모리 임의 읽기/쓰기를 만들었다.
- 최신 소스로 빌드해도 0-day를 찾았다
- QEMU와 의존성을 upstream 최신으로 다시 빌드하자 0-day 여러 개로 최종 체인을 만들었다.
- 체인은 0-day 3개(QEMU, libslirp 등)와 배포판 커널에 반영되지 않은 KVM 패치 1개로 구성됐다.
- 약 12시간 자율 작업을 이어갔다
- compaction(컨텍스트 압축)을 여러 번 거치고 서브에이전트를 수없이 호출하며 계속 일했다.
- CUPS 공격은 AppArmor에 막혔고 하드웨어 버그 읽기 시도는 불안정해서 접고 다른 길로 갔다.
Community Reactions
- QEMU 문제라는 반론
- QEMU는 보안용으로 설계되지 않았다는 의견이 있었다.
- 정직한 제목은 "패치 안 된 호스트의 비강화 QEMU는 못 가둔다"라는 의견도 있었다.
- 컨테이너만 쓰는 게 더 위험하다는 경고
- 격리 수준을 guardrails, 컨테이너, gVisor 같은 유저스페이스 커널, VM 순으로 보면 많은 사람이 컨테이너면 충분하다고 여긴다는 의견이 있었다.
- 그들이 곧 큰 코를 다칠 것이라고 했다.
- MAC와 커널 하드닝을 쓰라는 경험담
- VM과 추론 엔진 프로세스를 AppArmor 같은 MAC(강제 접근 제어)로 가두라는 의견이 있었다.
- 커널 부팅 옵션 lockdown=confidentiality로 공격면을 줄일 수 있지만 NVIDIA 같은 비서명 모듈과 충돌한다고 했다.
- 허니팟과 대안 격리 기술 제안
- 샌드박스에 허니팟을 두고 건드리면 에이전트를 죽이자는 의견이 있었다.
- Xen, gVisor, libkrun은 어떤지 비교해 보고 싶다는 의견도 있었다.
- VM 자체가 아니라 취약점 문제라는 의견
- 모델이 마법처럼 해킹하는 게 아니라 취약점과 설정 오류를 찾아 악용하는 것이므로 그쪽을 고쳐야 한다는 의견이 있었다.
- 형식 검증(formal verification)이나 모델 출시 전 각 랩의 VM 하드닝이 장기 해법이라는 의견도 있었다.
How to Apply
- 지금 쓰는 에이전트 샌드박스 점검표 만들기
- 오늘 VM이나 컨테이너에 달린 공유 폴더, 화면 출력, 네트워크, 자격 증명을 모두 적어 보자.
- 에이전트에 필요 없는 항목은 꺼라(원문은 -display none 같은 불필요 기능도 공격면이라고 했다).
- 호스트와 QEMU·libslirp를 최신 upstream으로 올리기
- Debian 12 같은 oldstable 호스트는 취약하다고 가정하고 업데이트 주기가 빠른 배포판으로 옮기자.
- 가상화 구성요소는 필요한 기능만 넣어 최신 소스에서 빌드하자.
- 고위험 작업은 Firecracker로 옮기기
- 에이전트가 소프트웨어 빌드나 취약점 탐색을 하는 환경부터 Firecracker 같은 최소 공격면 가상화로 교체하자.
- 실행마다 깨끗한 환경을 새로 만들고 실행 시간에 상한을 두자.
- 최소 권한과 모니터링 붙이기
- 네트워크 접근, 자격 증명, 사용 가능 기능을 에이전트별로 최소화하자.
- 로깅과 상시 모니터링을 켜서 비정상 행동을 감지하자.
Try It
# Claude나 ChatGPT에 붙여넣는 프롬프트 (원문 점검 항목의 간이 버전)
당신은 보안 아키텍트입니다. 아래는 제가 코딩 에이전트를 가둬 두는 샌드박스 구성입니다.
{{가상화 기술(QEMU/KVM, Docker, Firecracker 등), 호스트 OS와 버전, 네트워크 설정, 공유 폴더·화면·파일 전달 방식, 에이전트에 준 자격 증명}}
다음 순서로 답해 주세요.
1. 호스트와 VM 사이에 열린 경로(공유 자원, 네트워크, 화면, 파일 전달)를 모두 나열하세요.
2. 각 경로가 탈출 공격면이 될 수 있는 이유를 한 줄로 쓰세요.
3. 에이전트 작업에 꼭 필요하지 않아 끌 수 있는 것을 표시하세요.
4. 호스트 배포판이 oldstable이면 보안 패치 지연 위험을 짚으세요.
5. 최소 권한, 로깅, 실행 시간 제한, 실행마다 새 환경 생성 관점의 개선안을 우선순위로 정리하세요.
이어서 해 볼 것: 개선안 중 가장 쉬운 하나를 오늘 적용해 보세요.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓
Related Resources
- https://blog.trailofbits.com/2026/08/26/vms-wont-contain-cyber-capable-agents/
- https://github.com/roddhjav/apparmor.d
- https://madaidans-insecurities.github.io/guides/linux-harden...
- https://github.com/nobody43/apparmor-suggest
- https://en.wikipedia.org/wiki/Swiss_cheese_model
- https://housecat.com/blog/agent-computer-101