Bahasa Indonesia

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

Tampilkan daftar perintah yang tersedia:

npx @openai/codex-security --help

Lihat juga Referensi CLI.

Masuk

Untuk penggunaan lokal, masuk dengan akun ChatGPT Anda:

npx @openai/codex-security login

Di mesin jarak jauh atau tanpa antarmuka pengguna, gunakan autentikasi perangkat:

npx @openai/codex-security login --device-auth

Untuk 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 chatgpt

Untuk mewajibkan API key lingkungan, pilih autentikasi API key:

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

Bergantung 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-results

Jika 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-state

Periksa repositori, target, dan direktori keluaran sebelum memulai pemindaian:

npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR" --dry-run

Uji 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-results

Penggunaan 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" --json

Secara 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 high

Tingkat 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 produced
  • scan-manifest.json mencatat target, cakupan, pembuat, dan artefak tersegel.
  • findings.json mencatat tingkat keparahan, keyakinan, lokasi, bukti, dan remediasi untuk setiap temuan.
  • coverage.json mencatat 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/auth

Tinjau perubahan yang telah di-commit antara revisi dasar dan HEAD:

npx @openai/codex-security scan "$REPOSITORY" --diff origin/main --head HEAD

Tinjau perubahan yang telah dan belum di-stage terhadap HEAD:

npx @openai/codex-security scan "$REPOSITORY" --working-tree --base HEAD

Pemindaian 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 deep

Mode 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-policies

Tetapkan anggaran pemindaian

Gunakan --max-cost untuk menghentikan pemindaian saat perkiraan biaya model melampaui batas dalam USD:

npx @openai/codex-security scan "$REPOSITORY" --max-cost 5

Permintaan 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-hook

Pemeriksaan 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 login

Temukan dan pilih repositori dari akun atau organisasi GitHub Anda:

npx @openai/codex-security bulk-scan

Alur 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 4

Jalankan 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 4

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

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

Untuk membandingkan dua pemindaian, cocokkan terlebih dahulu temuan yang memiliki akar penyebab yang sama:

npx @openai/codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_ID

Kemudian periksa temuan mana yang baru, tetap ada, muncul kembali, terselesaikan, atau tidak diketahui:

npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_ID

Untuk format CSV pemindaian massal, filter riwayat pemindaian, dan opsi perintah, lihat Referensi CLI.

Lanjutkan dengan alur kerja yang sesuai dengan tujuan Anda: