Câu hỏi thường gặp về Codex Security CLI
Giải đáp về các lượt quét Codex Security, phát hiện, dương tính giả, độ bao phủ, chi phí và CI.
Tìm câu trả lời cho các câu hỏi thường gặp về việc quét kho lưu trữ và quản lý phát hiện bảo mật từ thiết bị đầu cuối. Để cài đặt và thực hiện lần quét đầu tiên, hãy bắt đầu với Hướng dẫn bắt đầu nhanh về CLI.
Quét kho lưu trữ
Ai có thể sử dụng CLI
Gói @openai/codex-security được cung cấp công khai. Cài đặt CLI và SDK:
npm install @openai/codex-securityViệc chạy quét yêu cầu quyền truy cập Codex Security. Để có kết quả tốt nhất, hãy sử dụng tài khoản đã được xác minh cho Trusted Access for Cyber.
Tại sao lượt quét sử dụng API key sau khi đăng nhập
Khi môi trường của bạn có OPENAI_API_KEY hoặc CODEX_API_KEY, các lượt quét
không có thiết bị đầu cuối tương tác và các lượt quét JSON cũng như JSONL mặc định sử dụng API key
từ môi trường, ngay cả sau khi đăng nhập thành công bằng ChatGPT hoặc mã thông báo truy cập.
Các lượt quét tương tác với đầu ra văn bản yêu cầu bạn chọn khi cũng có
phiên đăng nhập ChatGPT. Chạy thử không hiển thị lời nhắc hoặc nạp thông tin xác thực.
Để sử dụng thông tin xác thực đã lưu cho một lượt quét, hãy chọn rõ thông tin đó:
npx @openai/codex-security scan . --auth chatgptĐể yêu cầu API key từ OPENAI_API_KEY hoặc CODEX_API_KEY:
npx @openai/codex-security scan . --auth api-keyĐể đặt thông tin xác thực đã lưu làm lựa chọn tự động mặc định, hãy chạy
unset OPENAI_API_KEY CODEX_API_KEY. Để xem tất cả chế độ xác thực được hỗ trợ,
hãy xem tài liệu tham chiếu CLI.
Cách hoạt động của tính năng quét kho lưu trữ hàng loạt
Đăng nhập bằng GitHub CLI:
gh auth loginKhám phá và chọn kho lưu trữ từ một tài khoản hoặc tổ chức GitHub:
npx @openai/codex-security bulk-scanĐối với danh sách đã chuẩn bị, hãy cung cấp một tệp CSV kho lưu trữ và thư mục đầu ra:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4Hãy xem Chạy lượt quét bảo mật hàng loạt để biết cách khám phá GitHub, định dạng CSV, kết quả chiến dịch và các tùy chọn khả dụng.
Lượt quét hàng loạt bị gián đoạn có thể tiếp tục không
Có. Hãy chạy cùng lệnh quét hàng loạt với tệp CSV và thư mục đầu ra ban đầu. Codex Security bỏ qua các kho lưu trữ đã hoàn tất khi tạo tác quét được ghi nhận của chúng vẫn nguyên vẹn.
Thêm --max-attempts 3 để thử lại các lỗi tạm thời của kho lưu trữ hoặc lượt quét:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4 \
--max-attempts 3Cách cung cấp kiến trúc và chính sách bảo mật cho lượt quét
Truyền tài liệu kiến trúc, mô hình mối đe dọa hoặc chính sách bảo mật bằng
--knowledge-base:
npx @openai/codex-security scan . \
--knowledge-base /path/to/architecture.md \
--knowledge-base /path/to/security-policiesCodex Security sử dụng những tài liệu này làm ngữ cảnh cho lượt quét hiện tại. Để biết các loại tệp được hỗ trợ và hành vi của thư mục, hãy xem Thêm ngữ cảnh bảo mật.
Phát hiện và độ bao phủ
Nhóm có thể tìm kết quả quét trước đó ở đâu
Liệt kê các lượt quét đã lưu cho kho lưu trữ của bạn:
npx @openai/codex-security scans list /path/to/repositorySử dụng ID lượt quét trong kết quả để kiểm tra các phát hiện của lượt quét đó:
npx @openai/codex-security scans show SCAN_IDMỗi lượt quét đã hoàn tất lưu báo cáo, phát hiện, độ bao phủ và các tạo tác hỗ trợ cùng nhau. Hãy xem Tạo tác quét để biết bố cục đầy đủ.
Nếu CLI không thể lưu lịch sử quét thì sao
Codex Security lưu lịch sử quét trong cơ sở dữ liệu workbench. Nếu thư mục trạng thái mặc định không thể ghi, hãy chọn một thư mục riêng tư bên ngoài kho lưu trữ:
export CODEX_SECURITY_STATE_DIR=/path/outside/repository/codex-security-stateCách các lượt quét phân biệt phát hiện mới và đã biết
Đối sánh các phát hiện có cùng nguyên nhân gốc giữa hai lượt quét:
npx @openai/codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_IDSo sánh các phát hiện đã đối sánh:
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_IDKết quả so sánh xác định các phát hiện mới, còn tồn tại, mở lại, đã xử lý và không xác định. Một phát hiện chỉ được coi là đã xử lý khi lượt quét sau bao phủ mục tiêu ban đầu và đường dẫn bị ảnh hưởng mà không có khoảng trống bao phủ.
Phản hồi về dương tính giả hoạt động như thế nào
Kiểm tra lượt quét đã lưu để tìm ID lần xuất hiện:
npx @openai/codex-security scans show SCAN_IDGhi lại lý do phát hiện đó không áp dụng:
npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
--reason "The framework escapes this input before it reaches the query"Các lượt quét trong tương lai của cùng kho lưu trữ nhận được lời giải thích đó làm ngữ cảnh. Chúng vẫn độc lập kiểm tra mã nguồn, biện pháp kiểm soát và khả năng tiếp cận hiện tại. Việc loại bỏ một phát hiện không loại trừ một quy tắc, đường dẫn hoặc lớp lỗ hổng.
Để biết chi tiết về lệnh, hãy xem tài liệu tham chiếu về phát hiện.
Tại sao các lượt quét lặp lại có thể trả về những phát hiện khác nhau
Các lượt quét có AI hỗ trợ có thể cho kết quả khác nhau, ngay cả với cùng một cấu hình quét. Hãy bắt đầu bằng cách chạy lại lượt quét cơ sở:
npx @openai/codex-security scans rerun BASELINE_SCAN_IDĐối sánh các phát hiện cơ sở với lượt quét mới:
npx @openai/codex-security scans match BASELINE_SCAN_ID REPEAT_SCAN_IDSo sánh các kết quả đã đối sánh:
npx @openai/codex-security scans compare BASELINE_SCAN_ID REPEAT_SCAN_IDCung cấp hướng dẫn chung về kiến trúc và bảo mật khi ngữ cảnh còn thiếu có thể góp phần gây ra sự khác biệt. Việc đối sánh có thể xác định cùng một phát hiện cơ bản qua nhiều lần chạy, nhưng không làm cho các lượt quét trở nên tất định. Hãy trực tiếp kiểm tra lại mọi phát hiện quan trọng đã biến mất.
Cách một nhóm xác nhận bản sửa lỗi đã có hiệu quả
Sau khi áp dụng bản sửa lỗi, hãy chạy lại lượt quét ban đầu:
npx @openai/codex-security scans rerun BEFORE_SCAN_IDĐối sánh các phát hiện ban đầu với lượt quét mới:
npx @openai/codex-security scans match BEFORE_SCAN_ID AFTER_SCAN_IDSo sánh các phát hiện đã đối sánh:
npx @openai/codex-security scans compare BEFORE_SCAN_ID AFTER_SCAN_IDXác nhận lượt quét mới bao phủ mục tiêu ban đầu và đường dẫn bị ảnh hưởng mà không có khoảng trống bao phủ. Sau đó, trực tiếp kiểm tra lại phát hiện ban đầu trên bản checkout hiện tại:
npx @openai/codex-security validate /path/to/original/findings.json \
"Recheck the SQL injection in src/orders.ts:42 against the current code"Chỉ riêng việc thiếu một phát hiện hoặc so sánh lượt quét không chứng minh rằng bản sửa lỗi đã có hiệu quả.
Độ bao phủ không đầy đủ có nghĩa là gì
Độ bao phủ có thể là complete, partial hoặc unknown. Hãy xem xét coverage.json
để biết các đường dẫn bị loại trừ, bề mặt bị trì hoãn và câu hỏi còn mở trước khi coi một
lượt quét là bằng chứng đã xem xét.
Các lượt quét có độ bao phủ một phần hoặc không xác định trả về mã thoát 2, ngay cả khi không có
chính sách mức độ nghiêm trọng. Chúng vẫn giữ mọi phát hiện và dữ liệu độ bao phủ hiện có. Một lượt
quét sau không thể chứng minh rằng phát hiện trước đó không còn tồn tại khi nó không
bao phủ đường dẫn ban đầu của phát hiện đó.
Tự động hóa và chi phí
Cách hoạt động của giới hạn chi phí quét
Đặt giới hạn chi phí ước tính bằng USD trước khi bắt đầu quét:
npx @openai/codex-security scan . --max-cost 5Giới hạn này là một ước tính, không phải mức trần chi tiêu tuyệt đối. Các yêu cầu đang được xử lý có thể hoàn tất với chi phí vượt giới hạn. Codex Security lưu giữ các kết quả hiện có khi lượt quét dừng.
Lượt quét có thể kiểm tra commit và pull request không
Cài đặt bước kiểm tra bảo mật trước khi commit cho các thay đổi đã stage và chưa stage:
npx @openai/codex-security install-hookĐối với bước kiểm tra pull request, hãy quét các thay đổi đã commit và đặt ngưỡng mức độ nghiêm trọng:
npx @openai/codex-security scan . \
--diff origin/main \
--fail-on-severity highMột lượt quét đầy đủ trả về mã thoát 1 khi tìm thấy vấn đề có mức độ bằng hoặc cao hơn
mức độ đã chọn. Hãy xem Chạy quét trong CI để biết
quy trình làm việc GitHub Actions đầy đủ, cách xử lý tạo tác và xuất SARIF.
Một ứng dụng khác có thể chạy quét trực tiếp không
Có. Sử dụng TypeScript SDK để bắt đầu lượt quét, chọn mục tiêu, kiểm tra phát hiện và độ bao phủ, theo dõi tiến trình và áp dụng biện pháp kiểm soát chi phí từ một ứng dụng hoặc công cụ dành cho nhà phát triển.