Ch4. 보안 가이드
승인 기반 실행과 샌드박스(workspace-write 네트워크 차단), zsh-fork 패치(0.106.0)·deny-read 가드레일·글로벌 와일드카드 도메인 거부, requirements.toml 강제와 OTel 옵트인까지 Codex 보안 운영
핵심 요약
- 최소 권한·민감 데이터 분리·로그 규칙을 기본으로,
workspace-write는 네트워크를 끄고danger-full-access/--yolo는 격리 컨테이너 최후의 수단으로만 둡니다. - 0.106.0에서 zsh-fork 샌드박스 우회 취약점을 패치했으니 0.105.x 이하는 곧바로 업데이트하고, 입력 크기는 ~1M자로 제한됩니다.
- 0.113.0은 글로벌 와일드카드 도메인(
*)을 거부하고 신뢰 확립 전 git 실행을 막으며, 0.122.0은 deny-read glob과 trusted workspace에서만 hooks/exec policy를 허용합니다. requirements.toml로allowed_approval_policies·allowed_sandbox_modes를 조직 차원에서 강제해 개인 설정·CLI 플래그가 정책을 흔들지 못하게 합니다.- CI는
read-only+never무인 실행을 기본으로, OTel 텔레메트리는 옵트인이며 수집기는 조직 통제 인프라로 제한하고 프롬프트 본문 저장은 정책 허용 시에만 켭니다.
Codex 보안 가이드의 세 축은 승인 기반 실행, 샌드박스, 데이터 보호입니다. 운영 환경이라면 최소 권한과 감사 가능성을 처음부터 깔고 설계해야 합니다.
운영 체크리스트(시니어용)
- 최소 권한 원칙: 필요한 도구만 허용
- 민감 데이터 분리: 토큰/키는 환경 변수로 관리
- 로그 관리: 민감 정보가 로그에 남지 않도록 규칙화
- 입력 크기 제한: CLI는 ~1M자 입력 크기 제한이 적용됩니다(0.106.0+, 대용량 붙여넣기 행 방지)
샌드박스/네트워크 기본값을 "정책"으로 고정
- 기본
workspace-write는 네트워크 접근을 꺼 둔 채 운영하는 편이 안전합니다(예외는 설정으로만 허용). - full access(
danger-full-access/--yolo)는 "최후의 수단"으로만 두고, 가능하면 컨테이너 같은 격리 환경에서만 허용하세요. - Linux 샌드박스 환경에서는 최소
/dev디바이스 노드가 제공됩니다(0.105.0+).
최근 보안 패치
zsh-fork 샌드박스 우회 취약점 (0.106.0 수정)
CLI 0.106.0에서 zsh-fork 셸 실행 방식을 노린 샌드박스 우회 취약점을 패치했습니다. 0.105.x 이하 버전을 쓰고 있다면 곧바로 업데이트하세요.
샌드박스/네트워크 하드닝 (0.107.0~0.112.0)
- structured network approvals: host/protocol 정보가 더 잘 보여 네트워크 승인 리뷰 품질이 올라감
- requirements 기반 network constraints: 조직 차원에서 어떤 네트워크 경로/검색 모드를 허용할지 강제 가능
- rerun 시 sandbox 보존: 승인 후 재실행되는 shell command가 원래 sandbox config를 유지
- per-turn sandbox merge: zsh-fork skill 실행은 turn 단위 sandbox policy에 추가 권한을 합치는 식으로 더 정교해짐
- bubblewrap/macOS seatbelt 하드닝: Linux user namespace 분리, macOS 네트워크·unix socket 처리 안정성 개선
- 이미지 출력 제한:
js_repl이미지는data:URL만 허용하도록 강화되어 외부 URL 전달 위험이 줄어듦
네트워크 프록시 하드닝 및 신뢰 부트스트랩 (0.113.0)
글로벌 와일드카드 도메인 거부 (0.113.0)
네트워크 프록시 정책 파싱이 강화되어 * 같은 글로벌 와일드카드 도메인을 거부합니다.
기존에 넓은 와일드카드를 쓰던 설정이 있다면 구체적인 호스트나 패턴으로 바꿔야 합니다.
- 신뢰 부트스트랩 수정: 프로젝트 신뢰(trust)가 서기도 전에 git 명령이 실행되던 문제를 고쳤습니다. 이제 신뢰 검증을 마친 뒤에만 git 명령이 돌아가므로, 신뢰되지 않은 레포에서 코드가 의도치 않게 실행될 위험이 줄어듭니다.
- SQLite 기반 감사 로그: 로그가 전용 SQLite DB로 옮겨가면서 타임스탬프, 자동 정리(pruning), 보관 기한(retention)을 설정할 수 있게 됐습니다. 감사 추적이 필요한 조직이라면 이 DB도 백업·모니터링 대상에 넣으세요.
deny-read + trusted workspace 가드레일 (0.122.0)
0.122.0에서는 보안 경계를 한 단계 더 또렷하게 그었습니다.
- deny-read glob 정책: permissions profile에서 특정 파일/패턴을
"none"으로 막아, 작업 루트 안에서도 읽지 못하게 할 수 있음 - managed deny-read requirements: 조직 관리 레이어에서 읽기 금지 패턴을 강제 가능
- project hooks / exec policy는 trusted workspace에서만: 신뢰되지 않은 워크스페이스에서 훅이나 exec policy가 실행되지 않도록 강화
- logout 시 managed ChatGPT token revoke: 공용 머신/원격 머신에서 세션 정리 신뢰도가 높아짐
- Windows sandbox grant 축소: user profile·SSH root에 대한 과도한 권한 부여를 피하도록 수정
권장 운영 패턴
"쓰기 가능"과 "읽기 가능"을 같은 말로 묶지 마세요. 빌드 캐시나 산출물은 써도 되지만, .env,
배포 키, 내부 자격증명은 deny-read로 막아 따로 떼어 두는 편이 더 안전합니다.
Codex Security 리서치 프리뷰 (2026-03-06)
GPT-5.4 기반의 Codex Security를 Enterprise/Business/Edu 고객에게 리서치 프리뷰로 제공합니다. 앞선 "Aardvark" 프라이빗 베타(2025-10)가 정식 버전으로 발전한 것입니다.
핵심 특성
- 프로젝트별 위협 모델링: 코드베이스 구조를 이해하고 맞춤 위협 모델을 생성
- 샌드박스 검증: 발견된 취약점을 격리 환경에서 자동 검증
- 노이즈 감소: 오탐 50% 감소, 과잉 심각도 판정 90% 감소, 전체 노이즈 84% 감소
- 실적: 1.2M 커밋 스캔, 792개 크리티컬 + 10,561개 하이 심각도 발견
# Codex Security는 웹 인터페이스에서 접근 (첫 달 무료)
# Enterprise/Business/Edu 고객 대상Promptfoo 인수 (2026-03-09)
OpenAI가 AI 보안/평가 스타트업 Promptfoo를 인수했습니다. Fortune 500 기업의 25% 이상이 사용하던 도구로, Frontier 플랫폼에 통합될 예정입니다. Codex Security와 함께 AI 코드 보안 생태계가 강화되고 있습니다.
감사 가능성(리뷰 루프) 만들기
Codex가 만든 변경은 "AI가 만든 것"이 아니라 한 건의 "PR"로 다루는 편이 안전합니다.
- diff → 테스트 → 요약 순서의 루틴을 팀에 고정
- 커밋 메시지/PR 설명에 "무엇을 왜 바꿨는지, 어떤 검증을 했는지"를 남겨 감사 가능성 확보
/review와/diff를 기본 루틴에 포함/review는 별도review_model을 지정해 리뷰 품질을 독립적으로 관리 가능
CI 전용 정책(권장)
- 샌드박스는
read-only, 승인은never조합을 기본으로 두고(완전 무인 실행), 쓰기/네트워크가 필요할 때만 단계적으로 권한을 올립니다. - CI에서는 "최소 입력/최대 출력"을 목표로, JSONL/스키마 출력으로 파이프라인 통합을 우선합니다.
관리자 강제(requirements.toml)로 사고를 선제 차단
개인 설정이나 CLI 플래그로 정책이 흔들리지 않도록, 조직 차원에서 허용 범위를 묶어 둘 수 있습니다.
예: never 승인/danger-full-access 샌드박스(및 --yolo)를 차단
# /etc/codex/requirements.toml (Unix 예시)
allowed_approval_policies = ["untrusted", "on-request"]
allowed_sandbox_modes = ["read-only", "workspace-write"]레거시 호환 탓에 managed_config.toml의 일부 필드가 요구사항(requirements)처럼 해석되기도 하니, 조직 안에서 둘을 섞어 쓰고 있지 않은지 점검하세요.
멀티에이전트 보안 고려사항
sub-agent는 부모의 샌드박스 정책을 물려받되 비대화형 승인으로 동작합니다. 추가 승인이 필요한 작업은 실패하고 그 에러가 부모에게 전달되니, 정책을 짤 때 이 점을 염두에 두세요.
모니터링/텔레메트리(OTel) 운영 팁
Codex는 OpenTelemetry(OTel) 기반의 옵트인 텔레메트리를 지원합니다. 기본값은 꺼짐이고, 감사나 컴플라이언스 목적일 때만 직접 켭니다.
- 수집기는 반드시 조직이 통제하는 인프라로 제한(보관/접근 제어 포함)
- 프롬프트 본문 저장은 정책적으로 허용된 경우에만(기본은 비권장)
- 네트워크가 꺼진 실행에서는 OTel export가 실패할 수 있으므로 "어디서 export할지"를 먼저 합의
참고 문서
- Codex 보안: https://developers.openai.com/codex/security (영어)
- 슬래시 커맨드(/review, /diff): https://developers.openai.com/codex/cli/slash-commands (영어)
- config 레퍼런스(정책 키): https://developers.openai.com/codex/config-reference (영어)
- Multi-agent 보안: https://developers.openai.com/codex/multi-agent (영어)
- GitHub Releases: https://github.com/openai/codex/releases (영어)