Türkçe

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 login

Etkileşimli bir toplu tarama başlatın:

npx @openai/codex-security bulk-scan

CLI size şu adımlarda rehberlik eder:

  1. Kişisel GitHub hesabınızı veya bir kuruluşu seçin.
  2. Son 90 gün içinde etkin olan depoları inceleyin.
  3. Depo listesinde arama yapın ve taranacak depoları seçin.
  4. Tarama sonuçları için bir dizin seçin.
  5. 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.com

Depo keşfini başlatırken GH_HOST ayarlayın:

GH_HOST=github.example.com npx @openai/codex-security bulk-scan

Etkileş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,,deep

CSV ş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 HEAD

CSV'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 high

Aynı 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 high

Desteklenen 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.md
  • manifest.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.json ve coverage.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.sarif

Sonuç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 4

CLI, 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 3

Varsayı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 4

Kampanyayı 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.