Türkçe

Toplu güvenlik taramaları çalıştırma

GitHub depolarını keşfedin veya bir CSV envanterinden devam ettirilebilir 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 belirli 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çin.
CSV envanteri Tam depo revizyonlarına yönelik tekrarlanabilir ve otomatik bir kampanya çalıştırın.

Her iki iş akışı da ilerlemeyi kaydeder, depo başına sonuçları korur ve bir kesintiden sonra kampanyayı sürdürmenize olanak tanır.

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, aşağıdaki adımlarda size yol gösterir:

  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 çatalları hariç tutar. CLI, seçilen her depo için varsayılan dalın tam commit değerini <output-directory>/repositories.csv içinde kaydeder. Siz seçimi onaylayana kadar hiçbir tarama başlamaz.

GitHub Enterprise Server kullanmak için önce GitHub ana makinenizde oturum açın:

gh auth login --hostname github.example.com

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

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

Etkileşimli keşif için bir terminal gerekir. CI, container'lar 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 bir CSV oluşturun:

id,repository,revision,scope,mode,prompt
payments,https://github.com/example/payments.git,0123456789abcdef0123456789abcdef01234567,services/api,standard,Review payment authorization and refunds.
identity,https://github.com/example/identity.git,fedcba9876543210fedcba9876543210fedcba98,,deep,Review session and identity boundaries.

CSV şu sütunları destekler:

Sütun Zorunlu 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 dizinine göre çözümlenir.
revision Evet 40 veya 64 karakterlik tam Git commit SHA'sı. Dal adları, etiketler ve kısaltılmış commit karmaları desteklenmez.
scope Hayır Taranacak, depoya göreli bir dizin. Deponun tamamını taramak için değeri belirtmeyin.
mode Hayır standard veya deep. Komutta seçilen modu kullanmak için değeri belirtmeyin.
prompt Hayır Bu depoya özgü tarama talimatları.

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ışında bulunan ö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ı denetler ve varsayılan değeri 4 olur. Bu, her derin taramadaki bağımsız standart tarama çalışanlarının sayısını ayarlamaz; bu sınırları [deep_scan] üzerinden yapılandırın. Kendi mode değeri olmayan 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.

Kampanyadaki her derin tarama için çalışan yürütmesini sınırlamak üzere [deep_scan].max_time_hours değerini ayarlayın. --max-time-hours bayrağı scan ile çalışır, bulk-scan ile değil.

CLI, sabitlenmiş her revizyonu kullanıma alır, seçilen hedefi tarar, sonucu kaydeder ve geçici depo çalışma kopyasını kaldırır. Bir depo yalnızca taraması tam kapsama ulaştığında ve gerekli tüm sonuç yapıtları mevcut olduğunda tamamlanmış sayılır.

Güvenlik bağlamını ve talimatları paylaşma

--knowledge-base ile her taramaya mimari belgeleri, tehdit modelleri veya güvenlik politikaları ekleyin. Daha fazla dosya veya dizin için bayrağı tekrarlayın:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --knowledge-base /path/to/architecture.md \
  --knowledge-base /path/to/security-policies

Paylaşılan tarama talimatları eklemek veya her taramadan sonra bir takip işlemi çalıştırmak için istem dosyaları sağlayın:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --scan-prompt-file scan-instructions.md \
  --post-scan-prompt-file follow-up.md

CLI, her deponun CSV'deki prompt değerini paylaşılan tarama talimatlarının sonuna ekler. Takip talimatları, başarılı taramaların ve kapsamı eksik ya da hatalı taramaların ardından aynı kimliği doğrulanmış oturumda çalışır; ancak iptalden veya maliyet sınırına ulaşan bir taramadan sonra çalışmaz. İstem dosyası yolları geçerli dizininize göre çözümlenir.

Model ve akıl yürütme eforu seçme

Toplu taramalar varsayılan olarak gpt-5.6-sol modelini xhigh akıl yürütme eforuyla kullanır. Bir CSV kampanyası için başka bir model ve efor 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 efor düzeyleri minimal, low, medium, high ve xhigh değerleridir.

OpenRouter veya Fireworks kullanmak için sırasıyla OPENROUTER_API_KEY ya da FIREWORKS_API_KEY değerini ayarlayın ve --provider ile --model değerlerini belirtin. Kimlik bilgileri ve örnekler için OpenRouter veya Fireworks kurulumuna ya da Amazon Bedrock kurulumuna bakın.

Kampanya sonuçlarını inceleme

Çıktı dizini; sabitlenmiş kampanyayı, yalnızca sonuna ekleme yapılan bir sonuç günlüğünü 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ı, tarama modlarını ve paylaşılan ya da depoya özgü talimatları 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, ilgili denemenin bulgularını ve incelenen kapsamını kaydeder.

Taşınabilir bir sonuca ihtiyaç duyduğunuzda tamamlanmış 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 politikasına 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, tamamlanmamış depo taramalarını sürdürür ve tamamlananları atlar. Kapsamı eksik taramalar yeniden denenmez. Sonuçları kullanılabilir durumda kalır ve komut 2 koduyla sonlanır.

Mevcut bir çıktı dizini için depo envanterini ya da tarama ve takip talimatlarını değiştirmeyin. CLI, sabitlenmiş manifesti denetler ve farklı bir kampanyayı reddeder. Depoları, revizyonları, kapsamları, tarama modlarını ya da paylaşılan veya depoya özgü talimatları değiştirdiğinizde yeni bir çıktı dizini kullanın.

Depo hatalarını yeniden deneme

Geçici bir kullanıma alma 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 alındısını ve yapıt dizinini alır. Yeniden denemeler; kullanıma alma hatalarını, tarama hatalarını ve eksik zorunlu yapıtları kapsar. Kapsamı eksik olan tamamlanmış taramalar yeniden denenmez.

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 girdi 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, Linux Docker ana makinesindeki otomatik CSV kampanyaları için güçlendirilmiş bir Compose yapılandırması içerir. Ana makine, ayrıcalıksız kullanıcı ad alanı oluşturmayı desteklemelidir.

Depo CSV'sini, tarama sonuçlarını ve oturum açma 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 bağlı olan aynı CSV'yi ve çıktı dizinini kullanın. GitHub Enterprise Server için CODEX_SECURITY_GIT_HOST değerini GitHub ana makinenize ayarlayın.

Kullanılabilir tüm bayraklar için bulk-scan komut referansına bakın. Tarama kapsamı ve bulgularla ilgili sık sorulan sorular için CLI SSS'ye bakın.