Tiếng Việt

Chạy bản quét bảo mật hàng loạt

Khám phá các kho lưu trữ GitHub hoặc chạy bản quét bảo mật có thể tiếp tục từ danh mục CSV.

Sử dụng npx @openai/codex-security bulk-scan để xem xét các kho lưu trữ trong một chiến dịch. Khám phá kho lưu trữ từ tài khoản GitHub cá nhân hoặc một tổ chức, hoặc cung cấp CSV cố định từng kho lưu trữ tại một bản sửa đổi Git chính xác.

Chọn nguồn kho lưu trữ

Nguồn Khi nào nên sử dụng
Khám phá GitHub Chọn kho lưu trữ theo cách tương tác từ tài khoản GitHub cá nhân hoặc một tổ chức.
Danh mục CSV Chạy một chiến dịch có thể lặp lại và tự động đối với các bản sửa đổi kho lưu trữ chính xác.

Cả hai quy trình đều lưu tiến trình, bảo toàn kết quả theo từng kho lưu trữ và cho phép bạn tiếp tục chiến dịch sau khi bị gián đoạn.

Khám phá kho lưu trữ GitHub

Đăng nhập bằng GitHub CLI:

gh auth login

Bắt đầu bản quét hàng loạt tương tác:

npx @openai/codex-security bulk-scan

CLI hướng dẫn bạn qua các bước sau:

  1. Chọn tài khoản GitHub cá nhân hoặc một tổ chức.
  2. Xem xét các kho lưu trữ hoạt động trong 90 ngày gần nhất.
  3. Tìm kiếm trong danh sách kho lưu trữ và chọn các kho lưu trữ cần quét.
  4. Chọn thư mục cho kết quả quét.
  5. Xem lại các kho lưu trữ đã chọn và xác nhận chiến dịch.

Quá trình khám phá loại trừ các kho lưu trữ đã lưu trữ và fork. CLI ghi lại chính xác commit trên nhánh mặc định của từng kho lưu trữ đã chọn trong <output-directory>/repositories.csv. Không có bản quét nào bắt đầu cho đến khi bạn xác nhận lựa chọn.

Để sử dụng GitHub Enterprise Server, trước tiên hãy đăng nhập vào máy chủ GitHub:

gh auth login --hostname github.example.com

Đặt GH_HOST khi bắt đầu khám phá kho lưu trữ:

GH_HOST=github.example.com npx @openai/codex-security bulk-scan

Khám phá tương tác yêu cầu terminal. Đối với CI, container hoặc danh sách kho lưu trữ đã chuẩn bị, hãy sử dụng danh mục CSV.

Tạo CSV kho lưu trữ

Tạo CSV với một hàng cho mỗi kho lưu trữ và bản sửa đổi được cố định:

id,repository,revision,scope,mode
payments,https://github.com/example/payments.git,0123456789abcdef0123456789abcdef01234567,services/api,standard
identity,https://github.com/example/identity.git,fedcba9876543210fedcba9876543210fedcba98,,deep

CSV hỗ trợ các cột sau:

Cột Bắt buộc Mô tả
id Mã định danh kho lưu trữ duy nhất. Sử dụng chữ cái, chữ số, dấu chấm, dấu gạch nối hoặc dấu gạch dưới.
repository URL HTTPS, URL SSH hoặc đường dẫn kho lưu trữ cục bộ. Đường dẫn tương đối được phân giải từ thư mục CSV.
revision SHA commit Git đầy đủ gồm 40 hoặc 64 ký tự. Không hỗ trợ tên nhánh, thẻ và hàm băm commit rút gọn.
scope Không Thư mục tương đối so với kho lưu trữ cần quét. Bỏ qua giá trị để quét toàn bộ kho lưu trữ.
mode Không standard hoặc deep. Bỏ qua giá trị để sử dụng chế độ đã chọn của lệnh.

Để tìm SHA commit đầy đủ của kho lưu trữ cục bộ, hãy chạy:

git -C /path/to/repository rev-parse HEAD

Chạy chiến dịch từ CSV

Truyền CSV và một thư mục đầu ra riêng tư nằm ngoài các kho lưu trữ:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --workers 4

--workers kiểm soát số bản quét kho lưu trữ đồng thời và mặc định là 4. Sử dụng --mode deep để chọn quét sâu cho các hàng không có mode riêng. Mỗi hàng CSV vẫn có thể chọn chế độ quét và phạm vi kho lưu trữ riêng.

CLI checkout từng bản sửa đổi được cố định, quét mục tiêu đã chọn, ghi lại kết quả và xóa bản checkout kho lưu trữ tạm thời. Một kho lưu trữ chỉ được tính là hoàn tất khi bản quét có phạm vi bao phủ đầy đủ và tồn tại tất cả hiện vật kết quả bắt buộc.

Chọn mô hình và mức độ suy luận

Theo mặc định, bản quét hàng loạt sử dụng gpt-5.6-sol với mức độ suy luận xhigh. Để chọn mô hình và mức độ khác cho chiến dịch CSV:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --workers 4 \
  --model gpt-5.6-terra \
  --effort high

Các tùy chọn tương tự hoạt động trong quá trình khám phá kho lưu trữ tương tác:

npx @openai/codex-security bulk-scan --model gpt-5.6-terra --effort high

Các mức độ được hỗ trợ là minimal, low, medium, highxhigh.

Xem xét kết quả chiến dịch

Thư mục đầu ra chứa chiến dịch đã cố định, sổ cái kết quả chỉ cho phép nối thêm và các hiện vật riêng biệt cho từng kho lưu trữ và lần thử:

security-scans/
├── manifest.json
├── results.jsonl
├── checkouts/
└── artifacts/
    ├── payments/
    │   └── attempt-1/
    │       ├── scan-manifest.json
    │       ├── findings.json
    │       ├── coverage.json
    │       └── report.md
    └── identity/
        └── attempt-1/
            ├── scan-manifest.json
            ├── findings.json
            ├── coverage.json
            └── report.md
  • manifest.json ghi lại các kho lưu trữ, bản sửa đổi được cố định, phạm vi và chế độ quét trong chiến dịch.
  • results.jsonl ghi lại từng lần thử kho lưu trữ, trạng thái, thư mục hiện vật và mọi chi tiết hiện có về chi phí hoặc lỗi.
  • report.md cung cấp báo cáo dễ đọc cho một lần thử kho lưu trữ.
  • findings.jsoncoverage.json ghi lại các phát hiện và phạm vi đã xem xét của lần thử đó.

Xuất một bản quét kho lưu trữ đã hoàn tất khi bạn cần kết quả có tính di động:

npx @openai/codex-security export \
  /path/outside/repositories/security-scans/artifacts/payments/attempt-1 \
  --export-format sarif \
  --output /path/outside/repositories/payments.sarif

Kết quả có thể chứa các đoạn mã nguồn và chi tiết lỗ hổng. Hãy giữ thư mục đầu ra ở chế độ riêng tư, bên ngoài các kho lưu trữ được quét và tuân theo chính sách lưu giữ phù hợp.

Tiếp tục chiến dịch

Chạy lệnh ban đầu với cùng CSV và thư mục đầu ra:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --workers 4

CLI tiếp tục xử lý các kho lưu trữ vẫn cần thực hiện. CLI chỉ bỏ qua một kho lưu trữ đã hoàn tất khi biên nhận tương ứng và tất cả hiện vật quét bắt buộc vẫn tồn tại.

Không thay đổi danh mục kho lưu trữ cho một thư mục đầu ra hiện có. CLI kiểm tra tệp kê khai đã cố định và từ chối chiến dịch khác. Hãy sử dụng thư mục đầu ra mới khi bạn thay đổi kho lưu trữ, bản sửa đổi, phạm vi hoặc chế độ quét.

Thử lại lỗi kho lưu trữ

Sử dụng --max-attempts để thử lại một kho lưu trữ sau lỗi checkout hoặc quét tạm thời:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --workers 4 \
  --max-attempts 3

Mặc định là một lần thử cho mỗi kho lưu trữ. Mỗi lần thử nhận một biên nhận và thư mục hiện vật riêng.

Bản quét hàng loạt sử dụng các mã thoát sau:

Mã thoát Ý nghĩa
0 Mọi kho lưu trữ đều hoàn tất thành công.
2 Một kho lưu trữ không thể hoàn tất, bản quét có phạm vi bao phủ chưa đầy đủ hoặc lệnh gặp lỗi đầu vào hay lỗi thời gian chạy.
130 Ctrl-C đã ngắt chiến dịch.
143 SIGTERM đã chấm dứt chiến dịch.

Chạy bản quét hàng loạt trong Docker

Kho lưu trữ Codex Security bao gồm một cấu hình Compose được gia cố cho các chiến dịch CSV tự động trên máy chủ Docker Linux. Máy chủ phải hỗ trợ tạo không gian tên người dùng không đặc quyền.

Hãy duy trì CSV kho lưu trữ, kết quả quét và trạng thái đăng nhập trong các thư mục gắn kết bền vững. Cung cấp thông tin xác thực OpenAI qua môi trường hoặc trình quản lý bí mật. Đối với kho lưu trữ GitHub riêng tư, hãy cung cấp GH_TOKEN hoặc GITHUB_TOKEN theo cách tương tự.

Chạy image với CSV và thư mục đầu ra đã gắn kết:

docker compose run --rm codex-security \
  bulk-scan /input/repositories.csv \
  --output-dir /output \
  --workers 4

Sử dụng cùng CSV và thư mục đầu ra đã gắn kết để tiếp tục chiến dịch. Đối với GitHub Enterprise Server, hãy đặt CODEX_SECURITY_GIT_HOST thành máy chủ GitHub của bạn.

Để xem mọi cờ khả dụng, hãy tham khảo tài liệu tham khảo lệnh quét hàng loạt. Để xem các câu hỏi thường gặp về phạm vi bao phủ và phát hiện của bản quét, hãy xem Câu hỏi thường gặp về CLI.