Mulai cepat Codex Security CLI
Siapkan Codex Security, jalankan pemindaian lokal, lalu tinjau laporan, temuan, dan cakupannya.
Codex Security membantu tim keamanan dan rekayasa menemukan, mengonfirmasi, dan memperbaiki kerentanan. Gunakan antarmuka baris perintahnya (CLI) untuk memindai repositori yang Anda miliki atau yang telah diizinkan untuk Anda nilai, meninjau temuan dari waktu ke waktu, dan memeriksa perubahan sebelum diterapkan.
Periksa prasyarat
CLI memerlukan Node.js 22 atau yang lebih baru. Menjalankan pemindaian atau mengekspor temuan juga memerlukan Python 3.10 atau yang lebih baru. Untuk detail selengkapnya, lihat Autentikasi dan prasyarat.
Siapkan dan verifikasi CLI
Instal paket yang telah dipublikasikan:
npm install @openai/codex-securityTampilkan daftar perintah yang tersedia:
npx @openai/codex-security --helpLihat juga Referensi CLI.
Masuk
Untuk penggunaan lokal, masuk dengan akun ChatGPT Anda:
npx @openai/codex-security loginDi mesin jarak jauh atau tanpa antarmuka pengguna, gunakan autentikasi perangkat:
npx @openai/codex-security login --device-authUntuk CI dan alur kerja otomatis lainnya, tetapkan API key OpenAI:
export OPENAI_API_KEY="<your-api-key>"Untuk kredensial AWS, lihat Penyiapan Amazon Bedrock.
Untuk menggunakan sesi masuk ChatGPT Anda saat API key juga ditetapkan, pilih secara eksplisit:
npx @openai/codex-security scan . --auth chatgptUntuk mewajibkan API key lingkungan, pilih autentikasi API key:
npx @openai/codex-security scan . --auth api-keyBergantung pada akun dan repositori Anda, pemindaian seluruh repositori mungkin juga memerlukan Trusted Access for Cyber.
Siapkan pemindaian
Pilih repositori yang akan dipindai dan direktori untuk menulis hasil.
REPOSITORY=/path/to/repository
SCAN_DIR=/path/outside/repository/codex-security-resultsJika Anda menghilangkan --output-dir, Codex Security menyimpan hasil di direktori
status persistennya sendiri. Hasil dapat mencakup cuplikan sumber dan detail kerentanan,
jadi pilih lokasi privat dan kebijakan retensi yang sesuai.
Jika direktori status default tidak dapat ditulisi, pilih direktori yang dapat ditulisi di luar repositori yang dipindai:
export CODEX_SECURITY_STATE_DIR=/path/outside/repository/codex-security-statePeriksa repositori, target, dan direktori keluaran sebelum memulai pemindaian:
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR" --dry-runUji coba memeriksa masukan lokal tanpa memulai Codex, memuat kredensial, atau memeriksa interpreter Python milik plugin.
Jalankan pemindaian pertama Anda
Jalankan pemindaian standar dan simpan hasilnya di direktori yang dipilih:
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR"Secara default, CLI menulis progres pemindaian dan ringkasan penyelesaiannya ke stderr. CLI tidak mencetak hasil pemindaian lengkap ke stdout. Pemindaian yang selesai mencetak ringkasan seperti ini:
codex-security: Findings: 2 (1 high, 1 medium). Coverage: complete.
codex-security: Elapsed: 42s.
codex-security: Report: /path/outside/repository/codex-security-results/report.md
codex-security: Results: /path/outside/repository/codex-security-resultsPenggunaan token dan perkiraan biaya ditampilkan jika tersedia. Untuk mencetak hasil lengkap sebagai JSON yang dapat dibaca mesin, minta keluaran terstruktur secara eksplisit:
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR" --jsonSecara default, pemindaian hanya menghasilkan laporan, sehingga temuan tetap tersedia untuk peninjauan lokal. Anda dapat menambahkan ambang tingkat keparahan saat siap menjalankan pemindaian di CI.
Pilih model dan upaya penalaran
Secara default, pemindaian menggunakan gpt-5.6-sol dengan upaya penalaran xhigh. Pilih
model dan upaya lain jika tugas memerlukannya:
npx @openai/codex-security scan "$REPOSITORY" \
--model gpt-5.6-terra \
--effort highTingkat upaya yang didukung adalah minimal, low, medium, high, dan xhigh.
Tinjau hasil
Buka report.md untuk melihat hasil yang mudah dibaca. Direktori pemindaian juga berisi
berkas terstruktur yang digunakan oleh otomatisasi:
codex-security-results/
├── scan-manifest.json
├── findings.json
├── coverage.json
├── report.md
├── artifacts/
└── exports/
└── results.sarif # when producedscan-manifest.jsonmencatat target, cakupan, pembuat, dan artefak tersegel.findings.jsonmencatat tingkat keparahan, keyakinan, lokasi, bukti, dan remediasi untuk setiap temuan.coverage.jsonmencatat permukaan yang ditinjau, pengecualian, pekerjaan yang ditunda, pertanyaan terbuka, dan kelengkapan cakupan.
Cakupan dapat berupa complete, partial, atau unknown. Baca setiap area yang ditunda atau
pertanyaan terbuka sebelum menganggap pemindaian sebagai bukti peninjauan.
Referensi CLI menjelaskan
kontrak artefak dan keluaran secara lengkap.
Pilih pemindaian berikutnya
Gunakan pemindaian jalur jika repositori berisi layanan atau paket terpisah:
npx @openai/codex-security scan "$REPOSITORY" \
--path services/billing \
--path packages/authTinjau perubahan yang telah di-commit antara revisi dasar dan HEAD:
npx @openai/codex-security scan "$REPOSITORY" --diff origin/main --head HEADTinjau perubahan yang telah dan belum di-stage terhadap HEAD:
npx @openai/codex-security scan "$REPOSITORY" --working-tree --base HEADPemindaian diff dan working tree mengharuskan argumen repositori berupa root worktree Git. Ambil revisi yang dipilih sebelum memulai pemindaian diff.
Gunakan mode mendalam jika repositori atau jalur memerlukan peninjauan yang lebih luas:
npx @openai/codex-security scan "$REPOSITORY" --mode deepMode mendalam mendukung target repositori dan jalur, bukan pemindaian diff atau working tree.
Tambahkan konteks arsitektur dan keamanan
Berikan dokumen arsitektur, model ancaman, atau kebijakan keamanan sebagai konteks pemindaian. Ini membantu Codex Security mengevaluasi temuan berdasarkan cara kerja sistem Anda yang sebenarnya:
npx @openai/codex-security scan "$REPOSITORY" \
--knowledge-base /path/to/architecture.md \
--knowledge-base /path/to/security-policiesTetapkan anggaran pemindaian
Gunakan --max-cost untuk menghentikan pemindaian saat perkiraan biaya model melampaui batas
dalam USD:
npx @openai/codex-security scan "$REPOSITORY" --max-cost 5Permintaan yang sudah berlangsung dapat selesai dengan biaya di atas batas. Codex Security mempertahankan hasil yang tersedia ketika pemindaian berhenti.
Pindai perubahan sebelum setiap commit
Instal pemeriksaan keamanan Git pre-commit untuk repositori Anda:
npx @openai/codex-security install-hookPemeriksaan ini memindai perubahan yang telah dan belum di-stage sebelum setiap commit. Pemeriksaan akan memblokir temuan berkeparahan tinggi dan kesalahan pemindaian tanpa mengganti skrip pre-commit yang sudah ada.
Pindai repositori secara massal
Masuk ke GitHub sebelum menemukan repositori:
gh auth loginTemukan dan pilih repositori dari akun atau organisasi GitHub Anda:
npx @openai/codex-security bulk-scanAlur interaktif mengecualikan repositori yang diarsipkan dan fork. Alur ini meminta Anda mengonfirmasi repositori yang dipilih sebelum pemindaian.
Untuk memindai daftar repositori yang telah disiapkan, berikan CSV dan direktori keluaran:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4Jalankan kembali perintah yang sama untuk melanjutkan pemindaian massal yang sudah ada. Repositori
yang telah selesai dan memiliki artefak hasil utuh tidak dipindai lagi. Tambahkan
--max-attempts 3 jika Anda ingin mencoba kembali kesalahan sementara pada repositori atau pemindaian.
Untuk penemuan GitHub, penyiapan CSV, hasil kampanye, dan penyiapan Docker, lihat Jalankan pemindaian keamanan massal.
Jalankan pemindaian massal di Docker
Jika akses Anda mencakup image Docker Codex Security, gunakan konfigurasi Compose yang diperkuat dan profil keamanan yang disediakan pada host Docker Linux. Host harus mendukung pembuatan namespace pengguna tanpa hak istimewa. Berikan CSV repositori, simpan hasil dan status masuk di direktori terpasang yang persisten, serta berikan kredensial melalui lingkungan atau pengelola rahasia Anda:
docker compose run --rm codex-security \
bulk-scan /input/repositories.csv \
--output-dir /output \
--workers 4Kontainer menjalankan pemindaian massal tanpa prompt. Gunakan CLI di luar Docker jika
Anda ingin menemukan repositori secara interaktif. Untuk repositori privat,
berikan GH_TOKEN atau GITHUB_TOKEN melalui lingkungan atau pengelola
rahasia Anda. Persyaratan masuk, termasuk akses akun dan repositori,
juga berlaku untuk pemindaian dalam kontainer.
Tinjau kembali pemindaian tersimpan
Tampilkan daftar pemindaian tersimpan untuk repositori Anda:
npx @openai/codex-security scans list "$REPOSITORY"Salin ID pemindaian dari hasil untuk memeriksa temuan dan konfigurasinya:
npx @openai/codex-security scans show SCAN_IDUntuk menandai temuan yang telah ditinjau sebagai positif palsu, jelaskan mengapa temuan tersebut tidak berlaku:
npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
--reason "The route already checks permissions"Pemindaian berikutnya mempertimbangkan penjelasan tersebut, tetapi tetap memeriksa ulang kode saat ini.
Jalankan pemindaian yang sama terhadap checkout saat ini dengan konfigurasi aslinya:
npx @openai/codex-security scans rerun SCAN_IDUntuk membandingkan dua pemindaian, cocokkan terlebih dahulu temuan yang memiliki akar penyebab yang sama:
npx @openai/codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_IDKemudian periksa temuan mana yang baru, tetap ada, muncul kembali, terselesaikan, atau tidak diketahui:
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_IDUntuk format CSV pemindaian massal, filter riwayat pemindaian, dan opsi perintah, lihat Referensi CLI.
Lanjutkan dengan alur kerja yang sesuai dengan tujuan Anda:
- Jalankan pemindaian keamanan massal untuk menemukan repositori GitHub atau memindai inventaris CSV dengan revisi tetap.
- Baca FAQ CLI untuk jawaban tentang riwayat pemindaian, umpan balik positif palsu, cakupan, dan verifikasi perbaikan.
- Jalankan pemindaian di CI untuk meninjau pull request, mempertahankan hasil, dan menetapkan kebijakan tingkat keparahan.
- Gunakan referensi CLI untuk memeriksa setiap flag, format keluaran, artefak, dan kode keluar.
- Integrasikan TypeScript SDK untuk menjalankan pemindaian dari aplikasi atau alat pengembang.