Bahasa Indonesia

FAQ Codex Security CLI

Jawaban tentang pemindaian Codex Security, temuan, positif palsu, cakupan, biaya, dan CI.

Temukan jawaban atas pertanyaan umum tentang pemindaian repositori dan pengelolaan temuan keamanan dari terminal. Untuk instalasi dan pemindaian pertama, mulailah dengan panduan memulai cepat CLI.

Pemindaian repositori

Siapa yang dapat menggunakan CLI

Paket @openai/codex-security tersedia untuk publik. Instal CLI dan SDK:

npm install @openai/codex-security

Menjalankan pemindaian memerlukan akses Codex Security. Untuk hasil terbaik, gunakan akun yang telah diverifikasi untuk Trusted Access for Cyber.

Mengapa pemindaian menggunakan API key setelah proses masuk

Ketika lingkungan Anda menyertakan OPENAI_API_KEY atau CODEX_API_KEY, pemindaian tanpa terminal interaktif serta pemindaian JSON dan JSONL secara default menggunakan API key dari lingkungan, bahkan setelah berhasil masuk dengan ChatGPT atau token akses. Pemindaian interaktif dengan output teks meminta Anda memilih ketika informasi masuk ChatGPT juga tersedia. Uji coba tidak menampilkan permintaan atau memuat kredensial.

Untuk menggunakan kredensial tersimpan bagi pemindaian, pilih kredensial tersebut secara eksplisit:

npx @openai/codex-security scan . --auth chatgpt

Untuk mewajibkan API key dari OPENAI_API_KEY atau CODEX_API_KEY:

npx @openai/codex-security scan . --auth api-key

Untuk menjadikan kredensial tersimpan sebagai nilai default otomatis, jalankan unset OPENAI_API_KEY CODEX_API_KEY. Untuk semua mode autentikasi yang didukung, lihat referensi CLI.

Cara kerja pemindaian repositori massal

Masuk dengan GitHub CLI:

gh auth login

Temukan dan pilih repositori dari akun atau organisasi GitHub:

npx @openai/codex-security bulk-scan

Untuk daftar yang telah disiapkan, berikan CSV repositori dan direktori output:

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

Lihat Menjalankan pemindaian keamanan massal untuk penemuan GitHub, format CSV, hasil kampanye, dan opsi yang tersedia.

Apakah pemindaian massal yang terinterupsi dapat dilanjutkan

Ya. Jalankan perintah pemindaian massal yang sama dengan CSV dan direktori output asli. Codex Security melewati repositori yang telah selesai jika artefak pemindaian tercatatnya tetap utuh.

Tambahkan --max-attempts 3 untuk mencoba kembali kesalahan sementara pada repositori atau pemindaian:

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

Cara pemindaian menggunakan arsitektur dan kebijakan keamanan

Teruskan dokumen arsitektur, model ancaman, atau kebijakan keamanan dengan --knowledge-base:

npx @openai/codex-security scan . \
  --knowledge-base /path/to/architecture.md \
  --knowledge-base /path/to/security-policies

Codex Security menggunakan dokumen tersebut sebagai konteks untuk pemindaian saat ini. Untuk jenis berkas yang didukung dan perilaku direktori, lihat Menambahkan konteks keamanan.

Temuan dan cakupan

Tempat tim dapat menemukan hasil pemindaian sebelumnya

Cantumkan pemindaian tersimpan untuk repositori Anda:

npx @openai/codex-security scans list /path/to/repository

Gunakan ID pemindaian dari hasil untuk memeriksa temuannya:

npx @openai/codex-security scans show SCAN_ID

Setiap pemindaian yang selesai menyimpan laporan, temuan, cakupan, dan artefak pendukungnya secara bersamaan. Lihat Artefak pemindaian untuk tata letak lengkap.

Apa yang harus dilakukan jika CLI tidak dapat menyimpan riwayat pemindaian

Codex Security menyimpan riwayat pemindaian dalam basis data workbench. Jika direktori status default tidak dapat ditulis, pilih direktori privat di luar repositori:

export CODEX_SECURITY_STATE_DIR=/path/outside/repository/codex-security-state

Cara pemindaian membedakan temuan baru dan yang sudah diketahui

Cocokkan temuan yang memiliki akar penyebab sama di antara kedua pemindaian:

npx @openai/codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_ID

Bandingkan temuan yang telah dicocokkan:

npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_ID

Perbandingan mengidentifikasi temuan baru, yang berlanjut, dibuka kembali, diselesaikan, dan tidak diketahui. Temuan dianggap telah diselesaikan hanya ketika pemindaian berikutnya mencakup target awal dan jalur terdampaknya tanpa kesenjangan cakupan.

Cara kerja umpan balik positif palsu

Periksa pemindaian tersimpan untuk menemukan ID kemunculan:

npx @openai/codex-security scans show SCAN_ID

Catat alasan temuan tersebut tidak berlaku:

npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
  --reason "The framework escapes this input before it reaches the query"

Pemindaian mendatang pada repositori yang sama menerima penjelasan tersebut sebagai konteks. Pemindaian tersebut tetap memeriksa sumber, kontrol, dan keterjangkauan saat ini secara independen. Penolakan tidak menekan aturan, jalur, atau kelas kerentanan.

Untuk detail perintah, lihat referensi temuan.

Mengapa pemindaian berulang dapat menghasilkan temuan berbeda

Pemindaian berbantuan AI dapat bervariasi, meskipun menggunakan konfigurasi pemindaian yang sama. Mulailah dengan menjalankan ulang pemindaian acuan Anda:

npx @openai/codex-security scans rerun BASELINE_SCAN_ID

Cocokkan temuan acuan dengan pemindaian baru:

npx @openai/codex-security scans match BASELINE_SCAN_ID REPEAT_SCAN_ID

Bandingkan hasil yang telah dicocokkan:

npx @openai/codex-security scans compare BASELINE_SCAN_ID REPEAT_SCAN_ID

Berikan panduan arsitektur dan keamanan bersama ketika konteks yang tidak tersedia mungkin menyebabkan variasi. Pencocokan dapat mengidentifikasi temuan dasar yang sama di berbagai proses, tetapi tidak membuat pemindaian menjadi deterministik. Periksa kembali secara langsung setiap temuan penting yang menghilang.

Cara tim memastikan bahwa perbaikan berhasil

Setelah menerapkan perbaikan, jalankan ulang pemindaian asli:

npx @openai/codex-security scans rerun BEFORE_SCAN_ID

Cocokkan temuan asli dengan pemindaian baru:

npx @openai/codex-security scans match BEFORE_SCAN_ID AFTER_SCAN_ID

Bandingkan temuan yang telah dicocokkan:

npx @openai/codex-security scans compare BEFORE_SCAN_ID AFTER_SCAN_ID

Pastikan pemindaian baru mencakup target awal dan jalur terdampak tanpa kesenjangan cakupan. Kemudian periksa kembali secara langsung temuan asli terhadap checkout saat ini:

npx @openai/codex-security validate /path/to/original/findings.json \
  "Recheck the SQL injection in src/orders.ts:42 against the current code"

Temuan yang tidak muncul atau perbandingan pemindaian saja tidak membuktikan bahwa perbaikan berhasil.

Arti cakupan tidak lengkap

Cakupan dapat berupa complete, partial, atau unknown. Tinjau coverage.json untuk jalur yang dikecualikan, permukaan yang ditangguhkan, dan pertanyaan terbuka sebelum menggunakan pemindaian sebagai bukti peninjauan.

Pemindaian dengan cakupan parsial atau tidak diketahui mengembalikan kode keluar 2, bahkan tanpa kebijakan tingkat keparahan. Pemindaian tetap menyimpan setiap temuan dan cakupan yang tersedia. Pemindaian berikutnya tidak dapat membuktikan bahwa temuan sebelumnya sudah tidak ada jika tidak mencakup jalur awal temuan tersebut.

Otomatisasi dan biaya

Cara kerja batas biaya pemindaian

Tetapkan batas estimasi biaya dalam USD sebelum memulai pemindaian:

npx @openai/codex-security scan . --max-cost 5

Batas tersebut merupakan estimasi, bukan batas pengeluaran yang mutlak. Permintaan yang sudah berlangsung dapat selesai di atas batas. Codex Security menyimpan hasil yang tersedia ketika pemindaian berhenti.

Apakah pemindaian dapat memeriksa commit dan pull request

Instal pemeriksaan keamanan sebelum commit untuk perubahan yang telah dan belum di-stage:

npx @openai/codex-security install-hook

Untuk pemeriksaan pull request, pindai perubahan yang telah di-commit dan tetapkan ambang tingkat keparahan:

npx @openai/codex-security scan . \
  --diff origin/main \
  --fail-on-severity high

Pemindaian lengkap mengembalikan kode keluar 1 ketika menemukan masalah pada atau di atas tingkat keparahan yang dipilih. Lihat Menjalankan pemindaian di CI untuk alur kerja GitHub Actions lengkap, penanganan artefak, dan ekspor SARIF.

Apakah aplikasi lain dapat menjalankan pemindaian secara langsung

Ya. Gunakan TypeScript SDK untuk memulai pemindaian, memilih target, memeriksa temuan dan cakupan, melacak progres, serta menerapkan kontrol biaya dari aplikasi atau alat pengembang.