Toplu güvenlik taramaları çalıştırma
GitHub depolarını keşfedin veya bir CSV envanterinden sürdürülebilir güvenlik taramaları çalıştırın.
Depoları tek bir kampanyada incelemek için npx @openai/codex-security bulk-scan kullanın.
Kişisel GitHub hesabınızdan veya bir kuruluştan depoları keşfedin ya da her depoyu tam bir Git
revizyonuna sabitleyen bir CSV sağlayın.
Depo kaynağı seçme
| Kaynak | Ne zaman kullanılmalı |
|---|---|
| GitHub keşfi | Kişisel GitHub hesabınızdan veya bir kuruluştan depoları etkileşimli olarak seçmek için. |
| CSV envanteri | Kesin depo revizyonlarına karşı tekrarlanabilir, otomatik bir kampanya çalıştırmak için. |
Her iki iş akışı da ilerlemeyi kaydeder, depo başına sonuçları korur ve bir kesintiden sonra kampanyayı sürdürmenizi sağlar.
GitHub depolarını keşfetme
GitHub CLI ile oturum açın:
gh auth loginEtkileşimli bir toplu tarama başlatın:
npx @openai/codex-security bulk-scanCLI size şu adımlarda rehberlik eder:
- Kişisel GitHub hesabınızı veya bir kuruluşu seçin.
- Son 90 gün içinde etkin olan depoları inceleyin.
- Depo listesinde arama yapın ve taranacak depoları seçin.
- Tarama sonuçları için bir dizin seçin.
- Seçilen depoları inceleyin ve kampanyayı onaylayın.
Keşif, arşivlenmiş depoları ve fork'ları hariç tutar. CLI, seçilen her deponun tam
varsayılan dal commit'ini <output-directory>/repositories.csv içinde kaydeder.
Seçimi onaylayana kadar hiçbir tarama başlamaz.
GitHub Enterprise Server kullanmak için önce GitHub ana bilgisayarınızda oturum açın:
gh auth login --hostname github.example.comDepo keşfini başlatırken GH_HOST ayarlayın:
GH_HOST=github.example.com npx @openai/codex-security bulk-scanEtkileşimli keşif bir terminal gerektirir. CI, konteynerler veya hazırlanmış bir depo listesi için bunun yerine CSV envanteri kullanın.
Depo CSV'si oluşturma
Her depo ve sabitlenmiş revizyon için bir satır içeren CSV oluşturun:
id,repository,revision,scope,mode
payments,https://github.com/example/payments.git,0123456789abcdef0123456789abcdef01234567,services/api,standard
identity,https://github.com/example/identity.git,fedcba9876543210fedcba9876543210fedcba98,,deepCSV şu sütunları destekler:
| Sütun | Gerekli | Açıklama |
|---|---|---|
id |
Evet | Benzersiz depo tanımlayıcısı. Harf, rakam, nokta, kısa çizgi veya alt çizgi kullanın. |
repository |
Evet | HTTPS URL'si, SSH URL'si veya yerel depo yolu. Göreli yollar CSV dizininden çözümlenir. |
revision |
Evet | 40 veya 64 karakterlik tam Git commit SHA'sı. Dal adları, etiketler ve kısaltılmış commit hash'leri desteklenmez. |
scope |
Hayır | Taranacak, depoya göreli bir dizin. Deponun tamamını taramak için değeri atlayın. |
mode |
Hayır | standard veya deep. Komutun seçtiği modu kullanmak için değeri atlayın. |
Yerel bir deponun tam commit SHA'sını bulmak için şunu çalıştırın:
git -C /path/to/repository rev-parse HEADCSV'den kampanya çalıştırma
CSV'yi ve depoların dışındaki özel bir çıktı dizinini iletin:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4--workers, eşzamanlı depo taramalarının sayısını denetler ve varsayılan değeri
4 şeklindedir. Kendi mode değeri bulunmayan satırlar için derin taramayı
seçmek üzere --mode deep kullanın. Her CSV satırı yine de kendi tarama modunu ve depo kapsamını seçebilir.
CLI her sabitlenmiş revizyonu checkout eder, seçilen hedefi tarar, sonucu kaydeder ve geçici depo checkout'unu kaldırır. Bir depo yalnızca taramasının kapsamı eksiksiz olduğunda ve gerekli tüm sonuç yapıtları bulunduğunda tamamlanmış sayılır.
Model ve akıl yürütme düzeyi seçme
Toplu taramalar varsayılan olarak xhigh akıl yürütme düzeyiyle gpt-5.6-sol kullanır. Bir CSV
kampanyası için başka bir model ve düzey seçmek üzere:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4 \
--model gpt-5.6-terra \
--effort highAynı seçenekler etkileşimli depo keşfi sırasında da çalışır:
npx @openai/codex-security bulk-scan --model gpt-5.6-terra --effort highDesteklenen düzeyler minimal, low, medium, high ve xhigh değerleridir.
Kampanya sonuçlarını inceleme
Çıktı dizini sabitlenmiş kampanyayı, yalnızca ekleme yapılan bir sonuç defterini ve her depo ile deneme için ayrı yapıtları içerir:
security-scans/
├── manifest.json
├── results.jsonl
├── checkouts/
└── artifacts/
├── payments/
│ └── attempt-1/
│ ├── scan-manifest.json
│ ├── findings.json
│ ├── coverage.json
│ └── report.md
└── identity/
└── attempt-1/
├── scan-manifest.json
├── findings.json
├── coverage.json
└── report.mdmanifest.json; kampanyadaki depoları, sabitlenmiş revizyonları, kapsamları ve tarama modlarını kaydeder.results.jsonl; her depo denemesini, durumunu, yapıt dizinini ve mevcut maliyet ya da hata ayrıntılarını kaydeder.report.md, tek bir depo denemesi için okunabilir bir rapor sağlar.findings.jsonvecoverage.json, bu denemenin bulgularını ve incelenen kapsamını kaydeder.
Taşınabilir bir sonuca ihtiyacınız olduğunda tamamlanmış tek bir depo taramasını dışa aktarın:
npx @openai/codex-security export \
/path/outside/repositories/security-scans/artifacts/payments/attempt-1 \
--export-format sarif \
--output /path/outside/repositories/payments.sarifSonuçlar kaynak alıntıları ve güvenlik açığı ayrıntıları içerebilir. Çıktı dizinini özel, taranan depoların dışında ve uygun bir saklama ilkesine tabi tutun.
Kampanyayı sürdürme
Özgün komutu aynı CSV ve çıktı diziniyle çalıştırın:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4CLI, hâlâ çalışma gerektiren depoları sürdürür. Tamamlanmış bir depoyu yalnızca ilgili makbuz ve gerekli tüm tarama yapıtları hâlâ mevcutsa atlar.
Mevcut bir çıktı dizininin depo envanterini değiştirmeyin. CLI sabitlenmiş manifesti kontrol eder ve farklı bir kampanyayı reddeder. Depoları, revizyonları, kapsamları veya tarama modlarını değiştirdiğinizde yeni bir çıktı dizini kullanın.
Depo hatalarını yeniden deneme
Geçici bir checkout veya tarama hatasından sonra depoyu yeniden denemek için --max-attempts kullanın:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4 \
--max-attempts 3Varsayılan değer depo başına bir denemedir. Her deneme kendi makbuzunu ve yapıt dizinini alır.
Toplu taramalar şu çıkış kodlarını kullanır:
| Çıkış kodu | Anlamı |
|---|---|
0 |
Her depo başarıyla tamamlandı. |
2 |
Bir depo tamamlanamadı, bir taramanın kapsamı eksik kaldı veya komut bir giriş ya da çalışma zamanı hatasıyla karşılaştı. |
130 |
Ctrl-C kampanyayı kesintiye uğrattı. |
143 |
SIGTERM kampanyayı sonlandırdı. |
Docker'da toplu taramalar çalıştırma
Codex Security deposu, bir Linux Docker ana bilgisayarında otomatik CSV kampanyaları için sıkılaştırılmış bir Compose yapılandırması içerir. Ana bilgisayar ayrıcalıksız kullanıcı ad alanı oluşturmayı desteklemelidir.
Depo CSV'sini, tarama sonuçlarını ve oturum durumunu kalıcı dizinlere bağlı tutun.
OpenAI kimlik bilgilerini ortam veya bir gizli bilgi yöneticisi üzerinden sağlayın. Özel GitHub
depoları için GH_TOKEN veya GITHUB_TOKEN değerini aynı şekilde sağlayın.
İmajı bağlı CSV ve çıktı diziniyle çalıştırın:
docker compose run --rm codex-security \
bulk-scan /input/repositories.csv \
--output-dir /output \
--workers 4Kampanyayı sürdürmek için aynı bağlı CSV ve çıktı dizinini kullanın. GitHub Enterprise Server
için CODEX_SECURITY_GIT_HOST değerini GitHub ana bilgisayarınıza ayarlayın.
Kullanılabilir tüm bayraklar için toplu tarama komutu başvurusuna bakın. Tarama kapsamı ve bulgular hakkındaki yaygın sorular için CLI SSS bölümüne bakın.