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 loginEtkileşimli bir toplu tarama başlatın:
npx @openai/codex-security bulk-scanCLI, aşağıdaki adımlarda size yol gösterir:
- 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 ç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.comDepo keşfini başlatırken GH_HOST değerini ayarlayın:
GH_HOST=github.example.com npx @openai/codex-security bulk-scanEtkileş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 HEADCSV'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-policiesPaylaşı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.mdCLI, 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 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 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.mdmanifest.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.jsonvecoverage.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.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 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 4CLI, 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 3Varsayı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 4Kampanyayı 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.