에이전트

샌드박싱

Code Sandboxing

샌드박싱은 AI가 만든 코드를 격리된 환경에서만 실행해, 코드가 틀렸거나 악의적이어도 내 파일·네트워크·다른 프로그램이 피해를 입지 않게 하는 방법이다. 에이전트에게 코드나 명령어 실행 권한을 줄 때 기본으로 깔아 두는 안전장치다.

방식격리 강도이럴 때 쓴다
OS 기능 (macOS Seatbelt, Linux bubblewrap)중간내 컴퓨터에서 도는 코딩 에이전트
컨테이너 (Docker)중간서버에서 같은 실행 환경을 반복해서 만들 때
마이크로VM (Firecracker)강함모르는 사람이 보낸 코드를 대신 실행할 때
클라우드 샌드박스 (E2B, Cloudflare Sandbox)서비스마다 다름인프라 없이 앱에 코드 실행 기능을 붙일 때

파일과 네트워크는 함께 막는다

샌드박스가 무엇을 막는지부터 정해야 한다. 보통 아래 네 가지를 제한한다.

대상제한 예시
파일작업 폴더에만 쓰기 허용
네트워크허용한 도메인에만 접속
프로세스호스트의 다른 프로그램 접근 차단
자원CPU·메모리·실행 시간 상한

파일만 막으면 에이전트가 읽은 비밀 정보를 외부로 보낼 수 있다. 네트워크만 막으면 시스템 파일을 고칠 수 있다. 그래서 둘을 함께 막아야 제대로 된 격리다.

내 PC는 설정으로, 내 앱은 SDK로

로컬 코딩 에이전트를 쓸 때는 에이전트에 들어 있는 샌드박스 기능을 켠다. Claude Code는 OS 기능을 써서 파일 쓰기는 작업 폴더 안으로, 네트워크는 허용한 도메인으로 묶는다. 그 범위 안의 명령은 매번 승인을 묻지 않으니 작업도 빨라진다.

내 앱에 코드 실행 기능을 붙일 때는 클라우드 샌드박스를 쓴다. E2B에서는 sandbox.run_code(code) 한 줄이면 격리된 환경에서 코드를 돌리고 결과만 받는다. 순서는 샌드박스 만들기 → 필요한 파일 올리기 → 코드 실행 → 결과 받기 → 샌드박스 종료다.

안에 비밀을 두면 소용없다

샌드박스는 바깥을 지켜 줄 뿐, 안에 넣은 것까지 지켜 주지는 않는다. API 키나 홈 폴더 전체를 넣어 두면 프롬프트 인젝션에 속은 에이전트가 그대로 빼낼 수 있다. 필요한 파일만 넣고, 키는 권한이 좁은 임시 키를 쓴다.

컨테이너는 호스트와 커널을 함께 쓴다. 그래서 탈출 취약점이 나오면 뚫릴 수 있다. 남이 보낸 코드를 돌린다면 VM 수준의 격리를 고른다. 반대로 내가 직접 읽고 확인한 짧은 스크립트만 돌린다면 무거운 샌드박스는 지나칠 수 있다.

에이전트 작업과 코드 실행 기능에 주로 쓴다

가장 흔한 건 코딩 에이전트에게 명령 실행을 맡길 때 켜 두는 방식이다. 누가 쓴 코드를 돌리는지에 따라 격리 강도를 고르고, 일이 끝나면 환경을 버린다.

어디서어떻게 쓰나
로컬 코딩 에이전트샌드박스 모드를 켜고 빌드·테스트 명령을 작업 폴더와 허용 도메인 안에서 승인 없이 돌린다
챗봇의 데이터 분석사용자가 올린 파일을 분석하는 코드를 클라우드 샌드박스에서 돌리고 표·그래프 결과만 받는다
클라우드·CI 에이전트저장소를 컨테이너에 받아 코드 수정과 테스트를 맡기고, 끝나면 컨테이너를 지운다
코드 실행 서비스모르는 사용자가 보낸 코드를 마이크로VM에서 실행해 다른 사용자와 서버를 지킨다
#보안#격리#코드실행
참고 자료
관련 영상
← AI Wiki에서 더 보기
updated at 2026-10-20