Bắt đầu nhanh với Codex Security CLI
Thiết lập Codex Security, chạy quét cục bộ và xem xét báo cáo, phát hiện cũng như phạm vi bao phủ.
Chạy lượt quét tiêu chuẩn cho kho lưu trữ cục bộ bằng Codex Security CLI độc lập. Hướng dẫn bắt đầu nhanh này kết thúc bằng một báo cáo được lưu để bạn xem xét và tra cứu lại. Để quét trong cuộc trò chuyện với Codex, hãy dùng plugin Codex Security .
Kiểm tra điều kiện tiên quyết
Sử dụng Node.js 24 hoặc 26, hoặc Node.js 22 từ phiên bản 22.13.0 trở lên.
Bạn cũng cần Python 3.10 trở lên.
Python 3.10 còn cần tomli. Các lượt quét sử dụng suy luận của OpenAI yêu cầu quyền truy cập Codex Security.
Tùy thuộc vào tài khoản và kho lưu trữ của bạn, việc quét toàn bộ kho lưu trữ cũng có thể
cần Trusted Access for Cyber.
CLI chạy với quyền của bạn trên hệ điều hành và không tạm dừng để chờ phê duyệt. Các tiến trình quét có thể kế thừa môi trường của bạn, vì vậy hãy loại bỏ thông tin xác thực không liên quan trước khi bắt đầu. Xem Quyền quét cục bộ.
Thiết lập và xác minh CLI
Chạy gói công khai bằng npx:
npx @openai/codex-security --versionLệnh này in ra phiên bản gói đã cài đặt. Dùng info --json để kiểm tra
phiên bản plugin đi kèm hoặc --help để liệt kê các lệnh. Những thay đổi của gói được
liệt kê trong Các bản phát hành CLI và SDK.
Đăng nhập
Đăng nhập bằng tài khoản ChatGPT của bạn:
npx @openai/codex-security loginTrên máy không có trình duyệt, hãy thêm --device-auth và làm theo hướng dẫn
đăng nhập được hiển thị. Dùng --auth chatgpt trong các lệnh quét bên dưới để chọn
phương thức đăng nhập đó ngay cả khi môi trường của bạn cũng có API key.
Đối với API key và các nhà cung cấp khác, xem Chọn phương thức xác thực cho lượt quét. Đối với Amazon Bedrock, hãy dùng Thông tin xác thực AWS và quyền truy cập mô hình thay cho phương thức đăng nhập ChatGPT hoặc API key của OpenAI.
Chuẩn bị quét
Thay các đường dẫn này bằng đường dẫn đến kho lưu trữ của bạn và một thư mục kết quả mới nằm ngoài Git worktree của kho lưu trữ:
REPOSITORY=/path/to/repository
SCAN_DIR=/path/outside/repository/codex-security-resultsKết quả có thể bao gồm các trích đoạn mã nguồn và chi tiết về lỗ hổng. Hãy chọn một vị trí
riêng tư. Nếu bạn bỏ qua --output-dir, CLI sẽ dùng thư mục trạng thái được lưu lâu dài của nó.
Kiểm tra mục tiêu và vị trí đầu ra:
npx @openai/codex-security scan "$REPOSITORY" \
--auth chatgpt --output-dir "$SCAN_DIR" --dry-runMột lần chạy thử thành công xác nhận các đầu vào cục bộ. Lần chạy này không bắt đầu quét, nạp thông tin xác thực hay kiểm tra trình thông dịch Python của plugin, nên không xác nhận rằng việc xác thực và thiết lập môi trường chạy sẽ thành công.
Chạy lần quét đầu tiên
Bỏ --dry-run để bắt đầu quét:
npx @openai/codex-security scan "$REPOSITORY" \
--auth chatgpt --output-dir "$SCAN_DIR"Terminal tương tác hiển thị bảng điều khiển trực tiếp. Terminal không tương tác hiển thị các dòng
tiến trình. Thêm --headless để cũng dùng các dòng tiến trình trong terminal tương tác.
Bảng điều khiển và nhật ký đã lưu có thể chứa mã nguồn hoặc thông tin xác thực. Hãy xem xét
chúng trước khi chia sẻ.
Khi lượt quét kết thúc, stderr hiển thị đường dẫn báo cáo, số lượng phát hiện và thời gian đã trôi qua. Ví dụ:
REPORT /path/outside/repository/codex-security-results/report.md
FINDINGS 2 (2 confirmed this scan; 0 previously found; 1 high, 1 medium)
ELAPSED 42s
RESULTS /path/outside/repository/codex-security-resultsTheo mặc định, mức độ nghiêm trọng của một phát hiện không khiến lượt quét thất bại. Để
stdout có định dạng máy có thể đọc được, hãy thêm --json. Để các phát hiện khiến bước kiểm tra CI thất bại, hãy đặt
chính sách về mức độ nghiêm trọng.
Xem xét kết quả
Mở report.md trong thư mục được thông báo. Xác nhận mục tiêu và bản sửa đổi,
sau đó đọc phạm vi bao phủ trước khi xem xét từng phát hiện.
Kiểm tra scan.status trong scan-manifest.json để xác nhận lượt quét đã hoàn tất.
Xem coverage.json để biết các phạm vi đã được rà soát, đường dẫn bị loại trừ, công việc hoãn lại,
và các câu hỏi còn bỏ ngỏ.
Lượt quét hoàn tất sẽ thoát với mã 0, trừ khi các phát hiện đạt ngưỡng mức độ nghiêm trọng
đã cấu hình; khi đó mã trả về là 1. Những phần chưa được rà soát không làm thay đổi mã thoát, nên
mã thoát 0 không có nghĩa là mọi tệp đều đã được rà soát. Lỗi đầu vào, thực thi, tính toàn vẹn của kết quả,
hoặc đầu ra bắt buộc sẽ trả về 2. Tài liệu
tham khảo CLI giải thích
các mã thoát.
Với mỗi phát hiện, hãy kiểm tra mã bị ảnh hưởng, các điều kiện tiên quyết để kẻ tấn công khai thác, bằng chứng xác minh và những điểm còn chưa chắc chắn. Phát hiện dựa trên mã nguồn không nhất thiết đi kèm với việc tái hiện thành công khi chạy. Chỉ chọn một phát hiện để khắc phục khi bằng chứng của phát hiện đó đủ cơ sở cho vấn đề được nêu.
Giữ nguyên toàn bộ thư mục quét khi chia sẻ hoặc lưu trữ. Thư mục này chứa
scan-manifest.json, findings.json và coverage.json cùng với báo cáo
và các tệp hỗ trợ. Xem Các tệp đầu ra
của lượt quét để biết cấu trúc đầy đủ.
Xem lại một lần quét đã lưu
Liệt kê các lượt quét của kho lưu trữ:
npx @openai/codex-security scans list "$REPOSITORY"Sao chép ID của một lượt quét từ kết quả:
npx @openai/codex-security scans show SCAN_IDSau khi một lượt quét tương tác hoàn tất và có phát hiện, CLI cũng cung cấp trình duyệt phát hiện. Xem xét bằng chứng tại đó trước khi chọn cách khắc phục. Với các phát hiện đã lưu, hãy dùng các lệnh xác minh và tạo bản vá.
Chọn lượt quét tiếp theo
| Mục tiêu | Hướng dẫn |
|---|---|
| Quét các đường dẫn đã chọn hoặc phần khác biệt | Chọn mục tiêu quét |
| Sử dụng quét chuyên sâu hoặc giới hạn thời gian chạy | Cấu hình quét chuyên sâu |
| Cung cấp kiến trúc hoặc chính sách bảo mật | Thêm ngữ cảnh bảo mật |
| Thay đổi mô hình hoặc mức độ suy luận | Cấu hình môi trường thực thi |
| Đặt giới hạn chi phí ước tính | Tùy chọn đầu ra và chính sách |
| Quét nhiều kho lưu trữ | Quét hàng loạt |
| Quét pull request trên GitHub hoặc chạy quét theo lịch | Hướng dẫn GitHub Actions |
| Chọn nhà cung cấp CI khác | Tổng quan về CI/CD |
Nếu gặp vấn đề xác thực, khác biệt giữa các lần quét lại hoặc muốn phản hồi về phát hiện dương tính giả, hãy xem Câu hỏi thường gặp về CLI.