Codex Security CLI SSS
Codex Security taramaları, bulgular, yanlış pozitifler, kapsam, maliyet ve CI hakkındaki yanıtlar.
Depoları tarama ve güvenlik bulgularını terminalden yönetme hakkındaki yaygın soruların yanıtlarını bulun. Yükleme ve ilk tarama için CLI hızlı başlangıç kılavuzuyla başlayın.
Depo taramaları
Tarama, oturum açtıktan sonra neden bir API key kullanıyor
Ortamınız OPENAI_API_KEY veya CODEX_API_KEY içerdiğinde etkileşimli terminali olmayan taramalar ile
JSON ve JSONL taramaları, başarılı bir ChatGPT veya erişim belirteci oturumundan sonra bile varsayılan olarak
ortamdaki API key'i kullanır. ChatGPT oturumu da mevcut olduğunda metin çıktılı
etkileşimli taramalar seçim yapmanızı ister. Deneme çalıştırmaları istem göstermez veya kimlik bilgilerini yüklemez.
Bir taramada saklanan kimlik bilgilerinizi kullanmak için bunları açıkça seçin:
npx @openai/codex-security scan . --auth chatgptOPENAI_API_KEY veya CODEX_API_KEY üzerinden bir API key gerektirmek için:
npx @openai/codex-security scan . --auth api-keySaklanan kimlik bilgilerinizi otomatik varsayılan yapmak için
unset OPENAI_API_KEY CODEX_API_KEY komutunu çalıştırın. Desteklenen tüm kimlik doğrulama modları için
CLI referansına bakın.
Kesintiye uğrayan toplu tarama sürdürülebilir mi
Evet. Aynı bulk-scan komutunu özgün CSV ve çıktı diziniyle çalıştırın. Codex Security tamamlanmış depoları atlar.
Geçici depo veya tarama hatalarını yeniden denemek için --max-attempts 3 ekleyin:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4 \
--max-attempts 3Tamamlanan taramalar, kapsam boşlukları kalsa bile sonuçlarını korur
ve yeniden denenmez. Kapsam boşlukları, kampanyanın 2 koduyla çıkmasına neden olmaz.
Bulgular ve kapsam
Ekipler önceki tarama sonuçlarını nerede bulabilir
Deponuz için kaydedilmiş taramaları listeleyin:
npx @openai/codex-security scans list /path/to/repositoryBulguları incelemek için sonuçlardaki bir tarama kimliğini kullanın:
npx @openai/codex-security scans show SCAN_IDTamamlanmış her tarama raporunu, bulgularını, kapsamını ve destekleyici yapıtlarını birlikte tutar. Tam düzen için Tarama yapıtları bölümüne bakın.
Kaydedilmiş tarama ve çalışan olaylarını incelemek için scans logs SCAN_ID komutunu çalıştırın. Bu günlüklerde
hassas bilgiler gizlenmez; günlükler kaynak kod veya kimlik bilgileri içerebilir.
CLI tarama geçmişini kaydedemezse ne olur
Codex Security tarama geçmişini bir çalışma alanı veritabanında tutar. Varsayılan durum dizini yazılabilir değilse deponun dışında özel bir dizin seçin:
export CODEX_SECURITY_STATE_DIR=/path/outside/repository/codex-security-stateTaramalar yeni ve bilinen bulguları nasıl ayırt eder
Bir deponun tüm taramalarındaki açık bulguları listeleyin:
npx @openai/codex-security findings list /path/to/repositoryListe, en son taramada doğrulanan bulguları ve taramanın doğrulamadığı daha önceki açık bulguları belirtir.
İki taramadaki bulguları karşılaştırın:
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_IDKarşılaştırma, bulguları kök nedenlerine göre otomatik olarak eşleştirir, kaydedilmiş eşleşmeleri yeniden kullanır ve yeni, devam eden, yeniden açılmış, gözlemlenmemiş, çözülmüş ve durumu bilinmeyen bulguları belirler. Daha sonraki bir tarama, taradığı kodda önceki bir bulguyu tespit edemezse bulgu gözlemlenmemiş sayılır. Yalnızca zaten düzeltildiği belirtilerek açıkça kapatıldıktan sonra çözülmüş sayılır. Hariç tutulan yollar ve kesin olmayan eşleşmelerin durumu bilinmiyor olarak kalır.
Yanlış pozitif geri bildirimi nasıl çalışır
Oluşum kimliğini bulmak için kaydedilmiş taramayı inceleyin:
npx @openai/codex-security scans show SCAN_IDBu bulgunun neden geçerli olmadığını kaydedin:
npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
--reason "The framework escapes this input before it reaches the query"Aynı deponun gelecek taramaları bu açıklamayı bağlam olarak alır. Yine de geçerli kaynağı, denetimleri ve erişilebilirliği bağımsız olarak kontrol ederler. Bir reddetme, kuralı, yolu veya güvenlik açığı sınıfını engellemez.
Komut ayrıntıları için bulgular referansına bakın.
Yinelenen taramalar neden farklı bulgular döndürebilir
Yapay zekâ destekli taramalar, aynı tarama yapılandırmasıyla bile değişebilir. Önce temel taramanızı yeniden çalıştırın:
npx @openai/codex-security scans rerun BASELINE_SCAN_IDYeniden çalıştırma, özgün tarama yapılandırmasını korur ve aynı eklenti sürümünü gerektirir. Yüklü eklenti değişmişse komut durur.
Temel taramayı yeni taramayla karşılaştırın:
npx @openai/codex-security scans compare BASELINE_SCAN_ID REPEAT_SCAN_IDEksik bağlam değişkenliğe katkıda bulunabiliyorsa ortak mimari ve güvenlik rehberliği sağlayın. Eşleştirme, çalıştırmalar arasında aynı temel bulguyu belirleyebilir ancak taramaları belirlenimci yapmaz. Kaybolan tüm önemli bulguları doğrudan yeniden kontrol edin.
Bir ekip düzeltmenin işe yaradığını nasıl doğrulayabilir
Özgün bulguyu, değişikliklerin bulunduğu çalışma kopyasında yeniden kontrol edin. Bu çalışma kopyasından, bulgunun raporunu ve doğrulamak istediğiniz sorunu iletin:
npx @openai/codex-security validate /path/to/original/findings.json \
"Recheck the SQL injection in src/orders.ts:42 against the current code"Güvenlik açığına yol açan yolun kapatıldığını ve geçerli davranışın hâlâ çalıştığını gösteren kanıtları inceleyin. Varsa özgün yeniden üretim örneğini veya regresyon testini çalıştırın. Kontrol çalıştırılamıyorsa sonuçta kalan belirsizliği belirtin.
Bir tarama karşılaştırması bulguların nasıl değiştiğini gösterebilir, ancak bir bulgunun görünmemesi tek başına düzeltmeyi doğrulamaz.
Eksik kapsam ne anlama gelir
Hariç tutulan yollar, ertelenen alanlar ve açık sorular için coverage.json dosyasını inceleyin.
Yeni sonuçlar, kapsamın eksiksizliğini belirten bir alan içermez. Yürütme durumu için
scan-manifest.json dosyasındaki scan.status alanını kontrol edin.
Kapsam boşlukları, tamamlanmış bir taramanın çıkış kodunu değiştirmez. 0 çıkış kodu,
her dosyanın incelendiği anlamına gelmez. Daha sonraki bir tarama, önceki bir bulgunun
özgün yolunu kapsamıyorsa o bulgunun artık mevcut olmadığını ortaya koyamaz.
Otomasyon ve maliyet
Derin tarama süre sınırları nasıl çalışır
Derin tarama başlatırken bir çalışan süre sınırı belirleyin:
npx @openai/codex-security scan . --mode deep --max-time-hours 1.5Varsayılan süre 96 saattir. Kesirli değerler de dahil olmak üzere 96 değerine kadar
herhangi bir pozitif değer kullanın. Süre dolduğunda Codex Security, tamamlanmamış çalışan süreçleri durdurur,
tamamlanmış standart tarama sonuçlarını korur ve bunları nihai raporda birleştirir.
İncelenen alanlar ve ertelenen işler için raporu kontrol edin. Sürenin dolması tek başına
çıkış kodunu belirlemez; çıkış kodunu yürütme durumu ve önem düzeyi ilkesi belirler.
Kalıcı ayarlar veya toplu kampanyalar için derin tarama
yapılandırmasında [deep_scan] altında
max_time_hours değerini ayarlayın.
Tarama maliyeti sınırları nasıl çalışır
Taramayı başlatmadan önce USD cinsinden tahmini bir maliyet sınırı ayarlayın:
npx @openai/codex-security scan . --max-cost 5Bu sınır bir tahmindir, kesin bir harcama sınırı değildir. Devam eden
istekler tamamlandığında bu sınır aşılabilir. Derin tarama, Codex
Security tamamlanan çalışan süreçlerin sonuçlarını birleştirdikten sonra sınıra ulaşırsa CLI,
bütçe uyarısı içeren tamamlanmış bir rapor kaydedebilir. 0 döndürür; bulgular yapılandırılan
önem düzeyi eşiğini karşılıyorsa 1 döndürür. Geçerli ve tamamlanmış bir sonuç üretemezse
2 döndürür ve mevcut tüm çıktıları korur.
GitHub çekme isteği kontrolleri ve zamanlanmış depo taramaları için
Codex Security GitHub Action kullanın.
action-v0.3.0 ile tamamlanmış bir tarama, yapılandırılan analizin
geçerli bir sonuç ürettiği anlamına gelir. Kapsam dışı bırakılan öğeler ve ertelenen incelemeler,
önem derecesi politikasını atlamaz. Taramanın kapsamını ve
sınırlamalarını değerlendirmek için coverage.json dosyasını inceleyin. Boş farkları ve deneme çalıştırmalarını da reddetmek için Action'ın
scan-status çıktısının completed olmasını zorunlu kılın; Önem derecesi politikası
seçme bölümüne bakın.
Diğer sağlayıcılar için CI/CD'ye genel bakış sayfasına bakın.
Her commit öncesinde kontrol yapmak için
install-hook kullanın.