4.7 KiB
4.7 KiB
샌드박스 (Sandbox)
📌 Brief Summary
샌드박스(Sandbox)는 대규모 언어 모델(LLM) 기반의 에이전트가 생성한 코드를 안전하게 실행하고 도구와 상호작용할 수 있도록 격리된 환경과 보안 경계를 제공하는 핵심 에이전트 하네스 프리미티브 중 하나이다 [1, 2]. 에이전트가 호스트 시스템을 파괴하거나 위험에 빠뜨리지 않도록 보호하며, 실행 결과를 안전하게 관찰하고 검증할 수 있는 독립적인 작업 공간을 보장한다 [1, 2]. 샌드박스를 통해 에이전트의 실행 환경은 온디맨드로 생성되고, 대규모 작업으로 확장되며, 작업 완료 후 안전하게 폐기될 수 있다 [1].
📖 Core 기Content
- 격리된 실행 및 시스템 보호: 에이전트가 생성한 코드를 로컬 호스트 머신에서 직접 실행하는 것은 매우 위험하므로, 샌드박스는 커널 수준의 격리, 리소스 제한(CPU/메모리/디스크), 그리고 네트워크 격리를 통해 시스템을 보호한다 [1-3]. 또한 실행 결과에 대한 안전한 검증 루프를 형성하는 데 필수적인 역할을 수행한다 [2].
- 다양한 샌드박스 구현 아키텍처:
- Docker 기반 컨테이너: AutoGen(AG2)과 같은 프레임워크는 Docker 네이티브 샌드박싱을 통해 호스트 시스템 위험 없이 코드를 격리 실행한다 [4]. Open Harness는 단일 저장소 및 브랜치에 스코프를 맞춘 컨테이너를 제공하여 호스트 랩탑 환경을 깨끗하게 유지하며, 브라우저와 셸, 파일 시스템 등을 결합한 올인원(AIO) 환경을 구축한다 [5, 6]. Daytona는 OCI 컨테이너 샌드박스를 통해 장기 실행 에이전트 세션을 위한 상태 지속성(State persistence)을 지원한다 [3].
- 마이크로 가상 머신 (MicroVM): E2B와 LangSmith 샌드박스는 Firecracker 기반의 마이크로 가상 머신(microVM) 아키텍처를 사용하여 커널 수준의 격리와 매우 빠른 콜드 스타트(150ms 미만)를 제공한다 [3]. LangSmith 샌드박스는 보안 인증 프록시를 통해 런타임 환경 외부에 비밀 정보(Secrets)를 분리 보관하며 지속적인 WebSocket 세션을 지원한다 [3].
- V8 격리 (V8 Isolate): Cloudflare Dynamic Workers는 V8 격리 기반의 샌드박싱으로 기존 컨테이너 아키텍처보다 최대 100배 빠르고 100배 더 메모리 효율적인 실행 환경을 제공하며, 아웃바운드 HTTP 요청을 가로채어 자격 증명을 안전하게 주입한다 [7].
- 제어 및 보안 정책 적용: NVIDIA OpenShell과 같은 샌드박스 런타임은 파일 시스템(Landlock LSM), 시스템 호출(seccomp BPF) 및 네트워크 프록시를 통해 커널 수준에서 엄격한 보안 제약 조건을 강제하여, 손상된 에이전트조차 보안 정책을 우회할 수 없게 원천적으로 차단한다 [7].
⚖️ Trade-offs & Caveats
- 자체 구성 수정에 의한 권한 상승 (Escalation) 위험: 표준적인 샌드박스 격리만으로는 완벽한 보안이 보장되지 않는다 [7]. 에이전트가 샌드박스 내에서 자신의 하네스 구성(예: MCP 서버 설정 및 훅 파일)을 직접 수정할 수 있다면 권한을 스스로 상승시키는 치명적인 보안 위협이 발생할 수 있으므로, 해당 설정 파일들에 대한 에이전트의 접근을 차단해야 한다 [7].
- 제약 조건 인지에 대한 학습 필요성: 에이전트가 샌드박스의 제약 조건을 스스로 인지하도록 명시적으로 학습되지 않으면 부작용이 발생할 수 있다 [3]. 제약을 모르는 에이전트는 샌드박스 경계 내에서 자유롭게 코드를 탐색하고 실행하는 대신, 모든 외부 접근이나 파일 작업에 대해 사용자 승인을 요청하며 작업 흐름을 지속적으로 방해(Interrupt)할 수 있다 [3].
- 인프라 노이즈로 인한 평가 편향 (Infrastructure Noise): 샌드박스 컨테이너에 할당되는 리소스 구성(CPU/메모리 등) 자체가 모델 평가 시 6% 포인트 이상의 벤치마크 점수 변동을 일으키는 인프라 노이즈로 작용할 수 있다 [8]. 특정 리소스 할당량(예: 3배 임계값)을 넘어서면 에이전트가 가벼운 도구를 쓸지 무거운 종속성을 사용할지 등 문제 해결 전략을 완전히 바꾸게 되므로 성능 평가 시 주의가 필요하다 [8].
- 운영 복잡성 증가: 샌드박싱이나 파일 시스템 백엔드 기능을 컨테이너화된 환경에서 사용할 경우, 로컬에서 단순 실행하는 것보다 운영 및 설정의 복잡성이 구조적으로 증가하는 반대 급부가 따른다 [9-11].
Last updated: 2026-05-05