AI Agents

Codex Security là gì? Cách để Codex tự quét và vá lỗ hổng bảo mật cho code (2026)

H Hoàng Trọng Thuật 21 phút đọc

Codex Security là agent bảo mật ứng dụng của OpenAI: nó dựng mô hình mối đe dọa riêng cho repo của bạn, tìm lỗ hổng theo ngữ cảnh code thật, tự xác thực từng phát hiện trong môi trường cô lập rồi mới báo, và đề xuất bản vá có giới hạn phạm vi. Bạn chạy được nó qua plugin trong app Codex, CLI công khai @openai/codex-security, TypeScript SDK hoặc bản cloud quét GitHub (đang research preview). Bài này giải thích cả hai mặt: để Codex tự quét lỗ hổng, và để chính agent Codex viết code an toàn nhờ sandbox + approval.

TL;DR

  • Codex Security (quét và vá lỗ hổng) và sandbox + approval (hàng rào cho agent khi viết code) là hai thứ khác nhau — đừng nhầm.
  • Codex agent có 3 sandbox mode: read-only, workspace-write (mặc định cho thư mục có Git), danger-full-access; approval policy khuyến nghị là on-request.
  • Policy untrusted đã bị khai tử: theo tài liệu OpenAI, cấu hình còn giữ nó “có thể khiến client không khởi động được”.
  • Mặc định agent tắt mạng và chỉ ghi trong thư mục làm việc; .git, .agents, .codex luôn chỉ-đọc. Muốn ra mạng phải bật rõ và nên siết bằng network_proxy allowlist.
  • Auto-review (approvals_reviewer = "auto_review") kiểm 4 nhóm rủi ro: rò rỉ dữ liệu, dò credential, làm yếu bảo mật lâu dài, hành động phá hủy; lỗi hoặc hết giờ thì fail closed.
  • CLI/SDK @openai/codex-security cần Node 22.13+ và Python 3.10+; chạy scan cần quyền Codex Security, tốt nhất là tài khoản đã xác minh Trusted Access for Cyber.

Codex Security khác gì Codex agent viết code?

Codex Security là “người soi lỗ hổng”, còn sandbox + approval là “hàng rào an toàn” cho agent khi nó viết code. Nhiều người tìm “Codex bảo mật” nhưng thực ra đang hỏi hai chuyện tách biệt.

  • Codex Security (tài liệu learn.chatgpt.com/docs/security): agent bảo mật ứng dụng. Việc của nó là tìm lỗ hổng, xác nhận lỗ hổng đó có thật không, và đề xuất bản vá. OpenAI mô tả nó “giúp đội bảo mật và kỹ thuật tìm, xác nhận và sửa lỗ hổng”. Có plugin trong app, có CLI, có SDK, và bản cloud quét GitHub.
  • Sandbox + Approval (tài liệu agent-approvals-security): cơ chế giữ cho chính agent Codex — khi bạn nhờ nó viết hoặc sửa code — không tự ý xóa file, gọi mạng, hay chạy lệnh nguy hiểm mà chưa hỏi.

Với creator hay SME Việt tự dựng tool bằng AI (bot Zalo, workflow n8n, script đăng bài), cả hai đều cần: hàng rào để agent không phá dự án đang chạy, và máy quét để tool bạn đưa lên VPS không dính lỗ hổng cơ bản như lộ API key hay thiếu kiểm tra đầu vào. Nếu bạn chưa biết Codex là gì, đọc trước ChatGPT Codex là gì.

Codex có mấy sandbox mode? Chọn cái nào?

Có 3 sandbox mode, quyết định Codex được làm gì về mặt kỹ thuật. Đây là lớp “nó có thể làm gì”, tách biệt với approval policy (lớp “khi nào nó phải hỏi bạn”).

Sandbox mode Codex được làm gì Dùng khi nào
read-only Chỉ đọc file, không sửa, không ra mạng Muốn hỏi/lên kế hoạch mà không đụng code; thư mục chưa có Git
workspace-write (mặc định) Đọc + sửa file + chạy lệnh trong thư mục làm việc; mạng tắt trừ khi bật Làm việc bình thường trên repo có Git
danger-full-access Không sandbox, toàn quyền + mạng Chỉ trong môi trường cô lập (container/CI runner riêng)

Theo tài liệu OpenAI, khi khởi động Codex tự nhận diện: thư mục có quản lý phiên bản (Git) → preset Auto (workspace-write + on-request); thư mục không có Git → read-only. Gõ /status để xem thư mục nào đang nằm trong workspace, /permissions để đổi mode.

Về cách thực thi: trên macOS Codex dùng Seatbelt, trên Linux dùng bwrap + seccomp, trên Windows dùng WSL2 hoặc sandbox Windows native; còn Codex cloud chạy trong container do OpenAI quản lý, cách ly hoàn toàn với máy bạn. Một chi tiết dễ bỏ qua: trong workspace-write, các thư mục .git, .agents, .codex vẫn bị khóa chỉ-đọc dù nằm trong thư mục ghi được — tránh việc agent lỡ tay ghi đè lịch sử Git hay tự sửa cấu hình của chính nó.

Approval policy hoạt động thế nào? “untrusted” còn dùng được không?

Không. Tài liệu OpenAI ghi rõ Codex và ChatGPT Work “không còn hỗ trợ approval_policy = "untrusted"” và cấu hình cũ “có thể khiến client không khởi động được”. Đây là thay đổi quan trọng nhất năm 2026 mà nhiều hướng dẫn cũ trên mạng chưa cập nhật.

Approval policy quyết định khi nào Codex dừng lại hỏi bạn trước khi hành động. Các giá trị đang dùng:

  • on-request: lệnh nào sandbox cho phép thì chạy luôn; chỉ khi cần vượt rào (sửa file ngoài workspace, gọi mạng bị chặn) mới hỏi. Đây là mặc định khuyến nghị.
  • never: không bao giờ hỏi — chỉ dùng trong sandbox đã siết chặt hoặc CI.
  • Các policy chi tiết hơn cho phép chọn loại prompt nào được hỏi, loại nào tự từ chối.

Cấu hình khuyến nghị cho phiên “đọc để hỏi”:

sandbox_mode = "read-only"
approval_policy = "on-request"

Nếu muốn giữ luật “hỏi trước mọi lệnh” như untrusted cũ cho một dự án cụ thể, tài liệu hướng dẫn khai báo theo project thay vì đặt toàn cục:

[projects."/duong/dan/du-an"]
trust_level = "untrusted"

Ngoài lệnh shell và sửa file, Codex còn xin phép cho các tool của app/connector (MCP) nếu tool đó khai báo có side effect. Tool gắn nhãn “destructive” luôn phải được duyệt — trừ khi tool đó khai báo nhãn “read”, nhãn này được ưu tiên. Bài MCP là gì giải thích cơ chế nhãn này từ phía giao thức.

Auto-review là gì và có nên bật không?

Auto-review là một agent thứ hai xét từng yêu cầu cần duyệt trước khi Codex chạy, thay vì bắt bạn bấm tay từng cái. Bật bằng cách đặt approvals_reviewer = "auto_review" cùng approval_policy = "on-request".

Reviewer này chỉ xét những hành động vốn đã cần duyệt — vượt sandbox, gọi mạng bị chặn, tool app/MCP có side effect — chứ không đụng đến hành động nằm gọn trong sandbox. Theo tài liệu, nó kiểm 4 nhóm rủi ro: rò rỉ dữ liệu, dò credential, làm yếu bảo mật lâu dài, và hành động phá hủy. Cơ chế xử lý:

  1. Hành động rủi ro thấp/trung bình → cho chạy nếu policy cho phép.
  2. Hành động rủi ro cao → cần đủ mức ủy quyền của người dùng và không dính luật deny.
  3. Hành động rủi ro tới hạn (critical) → từ chối thẳng.
  4. Lỗi khi phân tích hoặc hết giờ → fail closed: mặc định không cho chạy.

Auto-review tốn thêm lệnh gọi model nên làm tăng usage. Với dự án cá nhân, giữ approvals_reviewer = "user" (mặc định) để tự soi là đủ; auto-review hợp hơn với team chạy nhiều task song song không kịp bấm tay.

Kiểm soát mạng cho Codex thế nào để tránh rò rỉ dữ liệu?

Mặc định trong workspace-write, mạng bị tắt hoàn toàn — đây là tuyến phòng thủ số một chống prompt injection. Muốn cho lệnh ra mạng phải bật rõ ràng:

[sandbox_workspace_write]
network_access = true

Nhưng bật mạng “trần” nghĩa là ra ngoài không giới hạn. Để siết theo danh sách domain, bật thêm network_proxy — cơ chế allowlist-first, mặc định chặn hết cho tới khi bạn thêm luật allow:

[features.network_proxy]
enabled = true
domains = { "api.openai.com" = "allow", "example.com" = "deny" }

Ba trạng thái cần nhớ: mạng tắt + proxy bật = vẫn tắt; mạng bật + proxy tắt = ra ngoài không kiểm soát; mạng bật + proxy bật = ra ngoài nhưng bị chính sách domain siết. Luật domain theo tài liệu: deny luôn thắng allow; *.example.com chỉ khớp subdomain, **.example.com khớp cả apex lẫn subdomain; địa chỉ nội bộ (loopback, private IP) bị chặn mặc định vì allow_local_binding = false. Hai khóa dangerously_allow_non_loopback_proxy và dangerously_allow_all_unix_sockets cố tình nới rộng vùng tin cậy — chỉ bật khi hiểu rõ.

Điểm mấu chốt cho người hay dùng web search: Codex mặc định dùng cache kết quả tìm kiếm (không truy cập trang live), giảm rủi ro dính lệnh ẩn. Nhưng nếu bạn chạy --yolo hoặc sandbox full access, web search chuyển sang kết quả live — dễ ăn prompt injection hơn. Tài liệu OpenAI khuyên coi mọi nội dung web là không đáng tin.

Chạy Codex Security để quét lỗ hổng: các bước cụ thể

Bạn có thể quét ngay bằng CLI công khai @openai/codex-security — chỉ cần npx, không phải cài nặng. Quy trình gọn nhất theo tài liệu và README của package:

  1. Kiểm tra môi trường: Node.js 22.13.0 trở lên và Python 3.10 trở lên (yêu cầu ghi trong README).
  2. Chạy thử CLI: npx @openai/codex-security --help để xem lệnh và cờ.
  3. Đăng nhập: npx @openai/codex-security login. Trong CI, đặt biến môi trường OPENAI_API_KEY thay vì đăng nhập. Chạy scan cần quyền Codex Security; OpenAI khuyên dùng tài khoản đã xác minh Trusted Access for Cyber (chatgpt.com/cyber).
  4. Quét: npx @openai/codex-security scan /duong/dan/repo, có thể thêm --mode deep, --workers 2, --maxTimeHours 1.5 để chỉnh độ sâu, số luồng và trần thời gian.
  5. Xem findings: với người dùng app, mở tab Security trong sidebar Codex — mục Scans để chạy và theo dõi, Findings để xem bằng chứng từng lỗ hổng, Repositories để xem lịch sử repo.
  6. Review thay đổi trước khi merge: dùng chế độ review code changes để soi PR/branch.
  7. Vá và xác minh: tài liệu gọi là “fix and verify” — Codex chỉ tạo bản vá bounded (giới hạn phạm vi) cho những finding bạn đã duyệt, rồi xác minh lại.
  8. Đưa vào CI: chạy scan trên pull request, giữ artifact, upload SARIF, đặt ngưỡng severity. Package còn có lệnh policy để soạn SECURITY.md, classify-severity để chấm mức nghiêm trọng theo chính sách riêng, dedupe để gộp finding trùng.

Với team, có thêm Codex Security cloud (research preview): quét repo GitHub đã kết nối theo từng commit, tự xác thực issue tín hiệu cao trong môi trường cô lập rồi mới báo, kèm bản vá gợi ý. Hạn chế: repo nào thấy được phụ thuộc cấu hình workspace Codex cloud.

Những rủi ro bảo mật thật của Codex bạn phải biết

Codex có sandbox tốt, nhưng rủi ro lớn nhất đến từ cách dùng, không phải từ model. Ba tình huống cần cảnh giác:

  • Prompt injection khi bật mạng/web search: trang web hoặc log bạn đưa vào có thể chứa “lệnh ẩn” khiến agent làm việc bạn không muốn. Giữ mạng tắt khi không cần; ưu tiên web search dạng cache.
  • Repo lạ: mở một repo không tin cậy có thể kéo theo cấu hình hoặc tool chạy tự động. Chỉ dùng danger-full-access với repo tin cậy, và mở repo người khác ở read-only trước.
  • Cờ --yolo (tức --dangerously-bypass-approvals-and-sandbox): bỏ sandbox lẫn approval. Tài liệu OpenAI xếp đây là “không khuyến nghị”. Nếu buộc phải dùng, chạy trong Dev Container để container làm lớp cô lập ngoài — nhưng tài liệu cảnh báo thẳng: trong container, một dự án độc hại “có thể rút mọi thứ có trong devcontainer, kể cả credential Codex”.

OpenAI cũng bổ sung safety monitoring ở GPT-6 Astra: giám sát chạy bất đồng bộ, có thể tạm dừng task nếu phát hiện hành vi model đáng ngờ. Tài liệu lưu ý pause có thể đến sau hành động gây ra nó, và giám sát này bổ sung chứ không thay thế sandbox, approval hay việc bạn tự review kết quả.

Bộ cấu hình khuyến nghị theo từng tình huống

Không có một cấu hình đúng cho mọi việc; hãy chọn theo mức tin cậy của repo và mức tự động bạn cần. Bảng dưới tổng hợp từ các khuyến nghị trong tài liệu OpenAI:

Tình huống sandbox_mode approval_policy Mạng Ghi chú
Đọc hiểu repo lạ, hỏi đáp read-only on-request Tắt Tài liệu gọi đây là chế độ “safe browsing”
Làm việc hằng ngày trên repo của mình workspace-write on-request Tắt, bật từng phiên khi cần Preset Auto; .git vẫn chỉ-đọc
Cần cài dependency từ registry workspace-write on-request Bật + network_proxy allowlist Chỉ allow đúng domain registry/API
Team chạy nhiều task song song workspace-write on-request + approvals_reviewer = "auto_review" Theo nhu cầu Chấp nhận usage tăng để đổi lấy tốc độ
CI/CD, tác vụ không giám sát workspace-write hoặc container never Allowlist Chạy trong runner riêng; bật OpenTelemetry để audit
Buộc phải full access danger-full-access — Mở Chỉ trong container dùng một lần, repo tin cậy

Khi bật OpenTelemetry (mặc định tắt, phải bật rõ), giữ log_user_prompt = false để không ghi nội dung prompt — prompt thường chứa source code và dữ liệu nhạy cảm. Cách cài Codex và xử lý lỗi trên Windows có trong bài cài đặt Codex trên Windows 11.

Codex Security có miễn phí không? Chạy trên Windows được không?

CLI và SDK @openai/codex-security là package công khai (giấy phép Apache-2.0), nhưng chạy scan cần quyền truy cập Codex Security; OpenAI khuyến nghị tài khoản đã xác minh Trusted Access for Cyber. Bản cloud quét GitHub đang ở research preview. README cũng nêu package hỗ trợ cấu hình nhà cung cấp model thay thế (Amazon Bedrock, OpenRouter, Fireworks) qua biến môi trường. Tài liệu không công bố bảng giá riêng cho Codex Security; về gói và hạn mức Codex nói chung, xem ChatGPT Codex giá bao nhiêu.

Trên Windows: Codex chạy sandbox Linux khi ở trong WSL2 (khuyến nghị). Chạy native Windows thì Codex dùng sandbox Windows riêng với hai mode unelevated hoặc elevated. Nếu dùng extension trong IDE trên Windows, bật chatgpt.runCodexInWindowsSubsystemForLinux để agent chạy trong WSL2 và giữ nguyên ngữ nghĩa sandbox Linux.

Câu hỏi thường gặp về Codex Security

Codex Security có tự sửa lỗ hổng không?

Có, theo cơ chế “fix and verify”: nó chỉ tạo bản vá bounded cho những finding bạn đã duyệt, rồi xác minh lại. Bạn vẫn phải review diff trước khi merge như một PR bình thường.

Cấu hình còn untrusted thì có sao không?

Có thể sao. Tài liệu ghi setting đã nghỉ hưu này “có thể khiến client không khởi động”. Xóa nó khỏi mọi file cấu hình, profile, script khởi động, rồi dùng on-request hoặc trust_level = "untrusted" theo từng project.

Codex có tự ý gửi code của tôi ra internet không?

Mặc định không — mạng tắt trong workspace-write. Chỉ khi bạn bật network_access = true hoặc chạy full access thì lệnh mới ra được mạng. Kể cả vậy, bật network_proxy để giới hạn domain.

Auto-review có thay được việc tôi tự review không?

Không. Auto-review chỉ chặn hành động rủi ro trước khi chạy; nó không thay thế việc bạn đọc kết quả cuối. Tài liệu OpenAI cũng nói safety monitoring không thay thế sandbox, approval hay review của con người.

Chạy Codex trong Docker cho an toàn thì làm sao?

Dùng Dev Container để Docker làm lớp cô lập ngoài. Nhưng nếu bạn chạy --sandbox danger-full-access hoặc --yolo bên trong container với repo độc hại, tài liệu cảnh báo nó vẫn có thể rút mọi thứ bên trong container, gồm cả credential Codex.

Codex Security khác gì công cụ SAST truyền thống?

SAST thường dò theo mẫu chung nên nhiều báo động giả. Codex Security dựng threat model riêng cho repo, xác thực finding trong môi trường cô lập trước khi báo (“giảm nhiễu bằng cách xác thực trước khi bạn review”), và gợi ý bản vá theo ngữ cảnh code thật.

Codex Security so với Claude Code thì sao?

Hai công cụ khác nhau chủ yếu ở mô hình quyền, sandbox và cách xin phép người dùng. Bài ChatGPT Codex vs Claude Code so sánh chi tiết, và hướng dẫn Claude Code từ A–Z mô tả cơ chế permission phía Anthropic.

Kết: An toàn là mặc định, không phải tùy chọn

Codex mạnh không phải vì nó tự do làm mọi thứ, mà vì bạn kiểm soát được nó tới đâu. Sandbox workspace-write + approval on-request + mạng tắt mặc định là bộ ba nên giữ cho hầu hết công việc. Khi cần quét lỗ hổng nghiêm túc, Codex Security cho bạn máy quét có ngữ cảnh, tự xác thực và vá có kiểm soát — nhưng quyết định merge vẫn là của bạn.

Nếu bạn mới bắt đầu với Codex, đọc Codex cho người không biết code; nếu đang cân nhắc dựng agent tự động cho doanh nghiệp, xem Top 7 nền tảng xây AI agent không cần code để đặt Codex đúng chỗ trong bức tranh chung.

Nguồn tham khảo

H

Hoàng Trọng Thuật

Nhà sáng tạo nội dung về AI, YouTube Automation và Affiliate Marketing. Chia sẻ kiến thức thực chiến từ kinh nghiệm vận hành thật.