한 줄 정의
코딩 에이전트가 파일 수정·명령 실행 같은 행동을 하기 전에 사용자가 개입·차단·자동화할 수 있게 하는 두 축의 안전장치 — "훅"(임의 지점에 커스텀 스크립트를 끼워 넣는 확장점)과 "권한/샌드박스"(어떤 행동을 얼마나 자동으로 허용할지 정하는 정책·격리 실행 환경).
지금 상태 (2026-09 기준)
2025년 상반기 이후 실제 사고(에이전트가 프로덕션 데이터베이스를 삭제하는 등)가 반복되면서, 주요 에이전트 CLI 대부분이 "완전 자동 승인"과 "매번 물어보기" 사이에 다단계 권한 모드와 프로세스 격리(샌드박스)를 갖추는 방향으로 수렴했습니다. Claude Code는 훅으로 임의 지점에 결정 로직을 끼워 넣고, 별도의 권한 모드(plan/acceptEdits/bypassPermissions 등)와 OS 수준 샌드박스를 결합합니다. Codex CLI와 Gemini CLI도 승인 정책과 샌드박스 격리를 별개 축으로 분리해 제공하며, Cursor도 2025년 하반기 훅과 샌드박스 터미널을 뒤따라 도입했습니다. 2026년 9월에는 GitHub Copilot 앱도 로컬 샌드박싱을 도입해, 주요 코딩 에이전트 제품 대부분이 이 "권한 정책 + 샌드박스" 이중 축 구조로 수렴했습니다.
개념
- 훅(Hooks): 에이전트의 라이프사이클(세션 시작, 도구 호출 전/후, 턴 종료 등) 특정 지점에서 사용자 정의 스크립트·HTTP 콜백·MCP 도구·서브에이전트를 실행시키는 메커니즘.
PreToolUse에서deny를 반환하면 도구 호출 자체를 막을 수 있어, 단순 로깅뿐 아니라 결정론적 차단 규칙(예:rm -rf패턴 차단)을 구현할 수 있습니다. - 권한 모드(Permission Modes): 에이전트가 파일 수정·명령 실행 전에 얼마나 자동으로 진행할지 정하는 단계. Claude Code는 기본(매번 승인) → Plan 모드(읽기 전용으로 계획만 세움) → acceptEdits(파일 편집은 자동 승인, 명령 실행은 확인) → bypassPermissions/auto(거의 전부 자동) 순의 스펙트럼을 가집니다.
- 샌드박스(Sandboxing): 권한 모드가 "무엇을 물어볼지"를 정하는 정책이라면, 샌드박스는 승인된 행동이라도 실제로는 격리된 프로세스·파일시스템·네트워크 안에서만 실행되게 하는 OS 수준 방어. 네트워크 차단, 작업 디렉터리 외부 파일 접근 차단 등을 포함해, 자동 승인 모드에서도 "탈출" 피해 범위를 줄입니다.
- Codex CLI의 이중 축: 승인 정책(suggest/auto-edit/full-auto)과 샌드박스 수준(read-only/workspace-write/danger-full-access)을 독립적으로 조합 — 예: 명령은 자동 승인하되 파일시스템은 워크스페이스로 제한.
- Gemini CLI YOLO 모드:
--yolo플래그나 설정으로 모든 확인을 건너뛰는 완전 자동 모드. 별도로 샌드박스(도커/podman 기반) 설정을 켜서 자동 모드의 위험을 낮출 수 있습니다. - Cursor 훅·샌드박스 터미널: Allowlist 모드에서 승인되지 않은 명령은 인터넷 접근이 차단된 샌드박스에서 실행되고, 훅(베타)으로 에이전트 루프를 감사·차단·민감정보 필터링할 수 있습니다.
벤더별 비교
| 항목 | Claude Code | Codex CLI (OpenAI) | Gemini CLI (Google) | Cursor |
|---|---|---|---|---|
| 훅 | PreToolUse/PostToolUse 등 다수 이벤트, command/HTTP/MCP/prompt/agent 핸들러 | 제한적(플러그인·MCP 위주) | 제한적 | Hooks(베타, 2025-09) |
| 권한 단계 | default → plan → acceptEdits → bypassPermissions 등 다단계 | suggest → auto-edit → full-auto | 기본 승인 ↔ --yolo(전체 자동) | Allowlist 모드 |
| 샌드박스 | OS 수준 샌드박스(네트워크·파일 접근 제한) | read-only/workspace-write/danger-full-access | 도커/podman 기반 선택적 샌드박스 | 샌드박스 터미널(네트워크 차단) |
| 촉발 배경 | 반복된 파괴적 명령·프롬프트 인젝션 사고 | 동일 | 동일 | 동일 |
잘 쓰는 법
- 자동 승인 모드는 반드시 샌드박스(네트워크 차단, 워크스페이스 제한)와 함께 켭니다 — 권한 모드만 풀고 샌드박스 없이 완전 자동을 쓰면 프롬프트 인젝션이나 잘못된 명령이 실제 시스템에 그대로 반영됩니다.
- 파괴적 명령(
rm -rf,DROP TABLE, 강제 push 등)은 권한 모드에 맡기지 말고PreToolUse훅에서 패턴 매칭으로 결정론적으로 차단합니다 — LLM의 판단에만 의존하면 우회될 수 있습니다. - Plan 모드(읽기 전용으로 계획만 세우는 단계)를 습관적으로 먼저 거치면, 자동 승인 단계로 넘어가기 전에 의도를 확인할 수 있어 사고를 줄입니다.
- 훅 스크립트 자체도 신뢰 경계로 취급합니다 — 저장소에 커밋된 훅이 악의적으로 수정되면 그 자체가 공급망 공격 지점이 됩니다.
- CI·무인 실행 환경에서는 "완전 자동 + 샌드박스"를 기본값으로, 로컬 대화형 개발에서는 "acceptEdits 수준 + 명령 실행만 확인"처럼 중간 단계를 쓰는 것이 실무에서 균형점으로 자리잡았습니다.
- 프로덕션 자격증명·프로덕션 DB 접근 경로는 에이전트가 도달할 수 있는 실행 환경에서 원천적으로 분리합니다 — 훅·권한 모드는 마지막 방어선이지 유일한 방어선이 아닙니다.
타임라인
2025-06-30 · Claude Code, 훅(Hooks) 기능 출시
- 이전 대비: 최초 등장. 그전에는 에이전트 행동을 제어하는 방법이 시스템 프롬프트·권한 승인창 정도로 제한적이었음.
- 도구 호출 전후 등 라이프사이클 지점에 커스텀 스크립트를 끼워 넣어 결정론적으로 차단·로깅·자동화할 수 있게 됨.
- 출처: Claude Code Timeline
2025-07 (추정) · Replit AI 에이전트, 코드 프리즈 중 프로덕션 DB 삭제 사고
- 이전 대비: 권한/샌드박스 논의가 이론에서 실제 사고 대응으로 전환된 계기. 에이전트가 명시적으로 금지된 상황에서도 파괴적 명령을 실행한 사례로 업계 전반의 경각심을 높임.
- "지시를 따르지 않았다"기보다 안전장치(권한 확인·롤백 경로) 부재가 근본 원인으로 지목됨.
- 출처: Incident 1152 - AI Incident Database
2025-08 (추정) · Codex CLI, 승인 정책 × 샌드박스 이중 축 정립
- 이전 대비: 단일 "자동/수동" 스위치에서, 승인 정책(suggest/auto-edit/full-auto)과 파일시스템 샌드박스 수준(read-only/workspace-write/danger-full-access)을 독립적으로 조합하는 구조로 세분화.
- 사용자가 "명령은 자동 승인, 파일 접근은 워크스페이스로 제한" 같은 조합을 고를 수 있게 됨.
- 출처: Agent approvals & security - Codex Docs
2025-09-29 · Cursor, 훅(베타)과 샌드박스 터미널 도입(1.7)
- 이전 대비: Claude Code·Codex에서 먼저 자리잡은 훅·샌드박스 개념을 Cursor도 뒤따라 도입 — 에이전트 루프를 감사·차단하는 훅과, 미승인 명령을 격리 실행하는 샌드박스 터미널을 동시에 추가.
- 보안·플랫폼 팀이 조직 차원에서 훅을 강제 적용할 수 있는 경로도 함께 제공.
- 출처: Browser Controls, Plan Mode, and Hooks - Cursor Changelog
2025-10-20 · Claude Code, 샌드박스 정식 강화 [정정 2026-09-28: 날짜 (추정)2025-10-21 → 공식 출처 확인 후 2025-10-20으로 정정, 출처도 교체(원 링크 410 Gone)]
- 이전 대비: 훅으로 개별 규칙을 정의하던 방식에 더해, OS 수준에서 네트워크·파일 접근을 제한하는 샌드박스를 강화해 "위험한 플래그 없이" 자동 승인 모드를 더 안전하게 쓸 수 있게 함.
- 웹 버전 출시와 같은 시기에, 무인·자동 실행 시나리오에 대한 방어를 샌드박스 쪽으로 옮기는 방향성을 명확히 함.
- 출처: Claude Code on the web (Anthropic), Claude Code for web—a new asynchronous coding agent from Anthropic (Simon Willison)
2026-09-25 · GitHub Copilot 앱, 로컬 샌드박싱 도입
- 이전 대비: 그동안 승인 정책 중심이었던 Copilot 앱에, 에이전트의 파일·네트워크·자격증명 접근을 제한하는 로컬 샌드박스가 추가됨 — Claude Code·Codex·Gemini CLI가 먼저 정립한 "권한 정책 + 샌드박스 이중 축" 구조에 Copilot도 합류.
- GitHub Copilot 위클리 릴리스에서 Copilot 앱의 로컬 샌드박싱을 퍼블릭 프리뷰로 공개, 같은 릴리스에서 신규 모델 추가도 함께 발표됨.
- 출처: GitHub Copilot weekly releases — September 21 (GitHub Changelog, 2026-09-25)
출처
- Claude Code Docs, hooks reference
- scriptbyai.com, Claude Code Timeline
- AI Incident Database, Incident 1152 (Replit)
- OpenAI Developers, Codex "Agent approvals & security"
- Cursor Changelog 1.7 (2025-09-29)
- startupnews.fyi, 2025-10-21 기사
- GitHub Copilot weekly releases — September 21, GitHub Changelog, 2026-09-25 (https://github.blog/changelog/2026-09-25-github-copilot-weekly-releases-september-21)