Tiếng Việt

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-security

Việ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 login

Khá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 4

Hã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 3

Cá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-policies

Codex 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/repository

Sử 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_ID

Mỗ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-state

Cá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_ID

So sánh các phát hiện đã đối sánh:

npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_ID

Kế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_ID

Ghi 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_ID

So sánh các kết quả đã đối sánh:

npx @openai/codex-security scans compare BASELINE_SCAN_ID REPEAT_SCAN_ID

Cung 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_ID

So sánh các phát hiện đã đối sánh:

npx @openai/codex-security scans compare BEFORE_SCAN_ID AFTER_SCAN_ID

Xá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 5

Giớ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 high

Mộ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.