Codex Security CLI hızlı başlangıç
Codex Security'yi kurun, yerel bir tarama çalıştırın ve raporu, bulguları ve kapsamı inceleyin.
Codex Security, güvenlik ve mühendislik ekiplerinin güvenlik açıklarını bulmasına, doğrulamasına ve gidermesine yardımcı olur. Sahibi olduğunuz veya değerlendirme izniniz bulunan depoları taramak, bulguları zaman içinde incelemek ve değişiklikleri kullanıma alınmadan önce kontrol etmek için komut satırı arayüzünü (CLI) kullanın.
Ön koşulları kontrol etme
CLI için Node.js 22 veya sonraki bir sürümü gerekir. Tarama çalıştırmak ya da bulguları dışa aktarmak için ayrıca Python 3.10 veya sonraki bir sürümü gerekir. Ayrıntılı bilgi için Kimlik doğrulama ve ön koşullar bölümüne bakın.
CLI'ı kurma ve doğrulama
Yayımlanan paketi yükleyin:
npm install @openai/codex-securityKullanılabilir komutları listeleyin:
npx @openai/codex-security --helpAyrıca CLI referansına bakın.
Oturum açma
Yerel kullanım için ChatGPT hesabınızla oturum açın:
npx @openai/codex-security loginUzak veya ekransız bir makinede cihaz kimlik doğrulamasını kullanın:
npx @openai/codex-security login --device-authCI ve diğer otomatik iş akışları için bir OpenAI API key ayarlayın:
export OPENAI_API_KEY="<your-api-key>"AWS kimlik bilgileri için Amazon Bedrock kurulumu bölümüne bakın.
Bir API key de ayarlanmışken ChatGPT oturumunuzu kullanmak için bunu açıkça seçin:
npx @openai/codex-security scan . --auth chatgptOrtam API key'inin kullanılmasını zorunlu tutmak için API-key kimlik doğrulamasını seçin:
npx @openai/codex-security scan . --auth api-keyHesabınıza ve deponuza bağlı olarak tam depo taramaları ayrıca Trusted Access for Cyber gerektirebilir.
Tarama hazırlama
Taranacak bir depo ve sonuçların yazılacağı bir dizin seçin.
REPOSITORY=/path/to/repository
SCAN_DIR=/path/outside/repository/codex-security-results--output-dir değerini belirtmezseniz Codex Security sonuçları kendi kalıcı
durum dizinine kaydeder. Sonuçlar kaynak alıntıları ve güvenlik açığı ayrıntıları içerebilir;
bu nedenle özel bir konum ve uygun bir saklama politikası seçin.
Varsayılan durum dizinine yazılamıyorsa taranan deponun dışında yazılabilir bir dizin seçin:
export CODEX_SECURITY_STATE_DIR=/path/outside/repository/codex-security-stateTaramayı başlatmadan önce depoyu, hedefi ve çıktı dizinini kontrol edin:
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR" --dry-runDeneme çalıştırması; Codex'i başlatmadan, kimlik bilgilerini yüklemeden veya eklentinin Python yorumlayıcısını yoklamadan yerel girdileri kontrol eder.
İlk taramanızı çalıştırma
Standart bir tarama çalıştırın ve sonuçlarını seçilen dizinde tutun:
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR"CLI, varsayılan olarak tarama ilerlemesini ve tamamlanma özetini stderr'e yazar. Tam tarama sonucunu stdout'a yazdırmaz. Tamamlanan bir tarama şuna benzer bir özet yazdırır:
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-resultsToken kullanımı ve tahmini maliyet, mevcut olduğunda gösterilir. Tam sonucu makine tarafından okunabilir JSON olarak yazdırmak için yapılandırılmış çıktıyı açıkça isteyin:
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR" --jsonTaramalar varsayılan olarak yalnızca rapor üretir; dolayısıyla bulgular yerel inceleme için kullanılabilir durumda kalır. CI'da tarama çalıştırmaya hazır olduğunuzda bir önem derecesi eşiği eklemek isteyebilirsiniz.
Model ve akıl yürütme çabası seçme
Taramalar varsayılan olarak gpt-5.6-sol modelini xhigh akıl yürütme çabasıyla kullanır. Görev gerektirdiğinde
farklı bir model ve çaba seçin:
npx @openai/codex-security scan "$REPOSITORY" \
--model gpt-5.6-terra \
--effort highDesteklenen çaba düzeyleri minimal, low, medium, high ve xhigh değerleridir.
Sonuçları inceleme
Okunabilir sonuç için report.md dosyasını açın. Tarama dizini ayrıca otomasyonun
kullandığı yapılandırılmış dosyaları içerir:
codex-security-results/
├── scan-manifest.json
├── findings.json
├── coverage.json
├── report.md
├── artifacts/
└── exports/
└── results.sarif # when producedscan-manifest.json; hedefi, kapsamı, üreticiyi ve mühürlenmiş yapıtları kaydeder.findings.json; her bulgunun önem derecesini, güven düzeyini, konumlarını, kanıtlarını ve düzeltme yöntemini kaydeder.coverage.json; incelenen yüzeyleri, hariç tutulanları, ertelenen işleri, açık soruları ve kapsamın eksiksizliğini kaydeder.
Kapsam complete, partial veya unknown olabilir. Taramayı inceleme kanıtı olarak kabul etmeden önce
ertelenen tüm alanları ve açık soruları okuyun.
CLI referansı,
yapıt ve çıktı sözleşmesinin tamamını açıklar.
Sonraki taramayı seçme
Bir depo ayrı hizmetler veya paketler içeriyorsa yol taraması kullanın:
npx @openai/codex-security scan "$REPOSITORY" \
--path services/billing \
--path packages/authTemel revizyon ile HEAD arasındaki kaydedilmiş değişiklikleri inceleyin:
npx @openai/codex-security scan "$REPOSITORY" --diff origin/main --head HEADHazırlanmış ve hazırlanmamış değişiklikleri HEAD ile karşılaştırarak inceleyin:
npx @openai/codex-security scan "$REPOSITORY" --working-tree --base HEADFark ve çalışma ağacı taramalarında depo bağımsız değişkeninin Git çalışma ağacı kökü olması beklenir. Fark taramasını başlatmadan önce seçilen revizyonları getirin.
Bir depo veya yolun daha kapsamlı incelenmesi gerektiğinde derin modu kullanın:
npx @openai/codex-security scan "$REPOSITORY" --mode deepDerin mod, fark veya çalışma ağacı taramalarını değil, depo ve yol hedeflerini destekler.
Mimari ve güvenlik bağlamı ekleme
Mimari belgeleri, tehdit modellerini veya güvenlik politikalarını tarama bağlamı olarak sağlayın. Bu, Codex Security'nin bulguları sisteminizin gerçekte nasıl çalıştığına göre değerlendirmesine yardımcı olur:
npx @openai/codex-security scan "$REPOSITORY" \
--knowledge-base /path/to/architecture.md \
--knowledge-base /path/to/security-policiesTarama bütçesi belirleme
Tahmini model maliyeti USD cinsinden bir sınırı aştığında taramayı durdurmak için
--max-cost kullanın:
npx @openai/codex-security scan "$REPOSITORY" --max-cost 5Devam etmekte olan istekler sınırı aşarak tamamlanabilir. Codex Security, tarama durduğunda mevcut sonuçları korur.
Her kayıttan önce değişiklikleri tarama
Deponuz için bir Git kayıt öncesi güvenlik kontrolü yükleyin:
npx @openai/codex-security install-hookKontrol, her kayıttan önce hazırlanmış ve hazırlanmamış değişiklikleri tarar. Mevcut bir kayıt öncesi betiğini değiştirmeden yüksek önem dereceli bulguları ve tarama hatalarını engeller.
Depoları toplu olarak tarama
Depoları keşfetmeden önce GitHub'da oturum açın:
gh auth loginGitHub hesabınızdaki veya kuruluşunuzdaki depoları keşfedip seçin:
npx @openai/codex-security bulk-scanEtkileşimli akış, arşivlenmiş depoları ve çatalları hariç tutar. Taramadan önce seçilen depoları onaylamanızı ister.
Hazırlanmış bir depo listesini taramak için bir CSV ve çıktı dizini sağlayın:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4Mevcut bir toplu taramayı sürdürmek için aynı komutu yeniden çalıştırın. Sonuç
yapıtları sağlam olan tamamlanmış depolar yeniden taranmaz. Geçici depo veya tarama
hatalarını yeniden denemek istediğinizde --max-attempts 3 ekleyin.
GitHub keşfi, CSV hazırlama, kampanya sonuçları ve Docker kurulumu için Toplu güvenlik taramaları çalıştırma bölümüne bakın.
Docker'da toplu taramalar çalıştırma
Erişiminiz Codex Security Docker görüntüsünü içeriyorsa sağlanan güçlendirilmiş Compose yapılandırmasını ve güvenlik profilini bir Linux Docker ana makinesinde kullanın. Ana makine, ayrıcalıksız kullanıcı ad alanı oluşturmayı desteklemelidir. Bir depo CSV'si sağlayın, sonuçları ve oturum açma durumunu kalıcı bağlı dizinlerde tutun ve kimlik bilgilerini ortamınız veya bir gizli bilgi yöneticisi aracılığıyla sağlayın:
docker compose run --rm codex-security \
bulk-scan /input/repositories.csv \
--output-dir /output \
--workers 4Kapsayıcı, toplu taramaları istem göstermeden çalıştırır. Depoları etkileşimli olarak
keşfetmek istediğinizde CLI'ı Docker dışında kullanın. Özel depolar için
GH_TOKEN veya GITHUB_TOKEN değerini ortamınız ya da gizli bilgi
yöneticiniz aracılığıyla sağlayın. Hesap ve depo erişimi dâhil oturum açma gereksinimleri,
kapsayıcı içinde çalıştırılan taramalar için de geçerlidir.
Kaydedilmiş bir taramayı yeniden inceleme
Deponuz için kaydedilmiş taramaları listeleyin:
npx @openai/codex-security scans list "$REPOSITORY"Bulgularını ve yapılandırmasını incelemek için sonuçlardan bir tarama kimliği kopyalayın:
npx @openai/codex-security scans show SCAN_IDİncelenmiş bir bulguyu yanlış pozitif olarak işaretlemek için bulgunun neden geçerli olmadığını açıklayın:
npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
--reason "The route already checks permissions"Sonraki taramalar bu açıklamayı dikkate alır ancak güncel kodu yine de yeniden kontrol eder.
Aynı taramayı özgün yapılandırmasıyla güncel çalışma kopyasında çalıştırın:
npx @openai/codex-security scans rerun SCAN_IDİki taramayı karşılaştırmak için önce aynı kök nedeni paylaşan bulguları eşleştirin:
npx @openai/codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_IDArdından hangi bulguların yeni, devam eden, yeniden açılmış, çözülmüş veya bilinmeyen olduğunu kontrol edin:
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_IDToplu tarama CSV biçimi, tarama geçmişi filtreleri ve komut seçenekleri için CLI referansına bakın.
Hedefinize uygun iş akışıyla devam edin:
- GitHub depolarını keşfetmek veya sabitlenmiş bir CSV envanterini taramak için Toplu güvenlik taramaları çalıştırma bölümünü kullanın.
- Tarama geçmişi, yanlış pozitif geri bildirimi, kapsam ve düzeltme doğrulamasıyla ilgili yanıtlar için CLI SSS'yi okuyun.
- Çekme isteklerini incelemek, sonuçları korumak ve bir önem derecesi politikası belirlemek için CI'da taramalar çalıştırın.
- Tüm bayrakları, çıktı biçimlerini, yapıtları ve çıkış kodlarını kontrol etmek için CLI referansını kullanın.
- Bir uygulamadan veya geliştirici aracından tarama çalıştırmak için TypeScript SDK'yı entegre edin.