Massenhafte Sicherheitsscans ausführen
Entdecken Sie GitHub-Repositorys oder führen Sie fortsetzbare Sicherheitsscans anhand eines CSV-Inventars aus.
Verwenden Sie npx @openai/codex-security bulk-scan, um Repositorys in einer einzigen
Kampagne zu überprüfen. Entdecken Sie Repositorys aus Ihrem persönlichen GitHub-Konto oder einer
Organisation, oder stellen Sie eine CSV-Datei bereit, die jedes Repository auf eine exakte Git-
Revision festlegt.
Repository-Quelle auswählen
| Quelle | Verwendungszweck |
|---|---|
| GitHub-Ermittlung | Wählen Sie Repositorys interaktiv aus Ihrem persönlichen GitHub-Konto oder einer Organisation aus. |
| CSV-Inventar | Führen Sie eine wiederholbare, automatisierte Kampagne für exakte Repository-Revisionen aus. |
Beide Workflows speichern den Fortschritt, bewahren die Ergebnisse der einzelnen Repositorys auf und ermöglichen es Ihnen, eine Kampagne nach einer Unterbrechung fortzusetzen.
GitHub-Repositorys ermitteln
Melden Sie sich mit GitHub CLI an:
gh auth loginStarten Sie einen interaktiven Massenscan:
npx @openai/codex-security bulk-scanDie CLI führt Sie durch diese Schritte:
- Wählen Sie Ihr persönliches GitHub-Konto oder eine Organisation aus.
- Prüfen Sie Repositorys, die innerhalb der letzten 90 Tage aktiv waren.
- Durchsuchen Sie die Repository-Liste und wählen Sie die zu scannenden Repositorys aus.
- Wählen Sie ein Verzeichnis für die Scanergebnisse aus.
- Prüfen Sie die ausgewählten Repositorys und bestätigen Sie die Kampagne.
Bei der Ermittlung werden archivierte Repositorys und Forks ausgeschlossen. Die CLI zeichnet den exakten
Commit des Standard-Branches für jedes ausgewählte Repository in
<output-directory>/repositories.csv auf. Es werden keine Scans gestartet, bevor Sie die
Auswahl bestätigen.
Um GitHub Enterprise Server zu verwenden, melden Sie sich zunächst bei Ihrem GitHub-Host an:
gh auth login --hostname github.example.comLegen Sie GH_HOST fest, wenn Sie die Repository-Ermittlung starten:
GH_HOST=github.example.com npx @openai/codex-security bulk-scanDie interaktive Ermittlung erfordert ein Terminal. Verwenden Sie für CI, Container oder eine vorbereitete Repository-Liste stattdessen ein CSV-Inventar.
Repository-CSV erstellen
Erstellen Sie eine CSV-Datei mit einer Zeile für jedes Repository und die festgelegte Revision:
id,repository,revision,scope,mode
payments,https://github.com/example/payments.git,0123456789abcdef0123456789abcdef01234567,services/api,standard
identity,https://github.com/example/identity.git,fedcba9876543210fedcba9876543210fedcba98,,deepDie CSV unterstützt diese Spalten:
| Spalte | Erforderlich | Beschreibung |
|---|---|---|
id |
Ja | Eindeutiger Repository-Bezeichner. Verwenden Sie Buchstaben, Zahlen, Punkte, Bindestriche oder Unterstriche. |
repository |
Ja | HTTPS-URL, SSH-URL oder lokaler Repository-Pfad. Relative Pfade werden ausgehend vom CSV-Verzeichnis aufgelöst. |
revision |
Ja | Vollständige Git-Commit-SHA mit 40 oder 64 Zeichen. Branch-Namen, Tags und gekürzte Commit-Hashes werden nicht unterstützt. |
scope |
Nein | Ein Repository-relatives Verzeichnis, das gescannt werden soll. Lassen Sie den Wert aus, um das gesamte Repository zu scannen. |
mode |
Nein | standard oder deep. Lassen Sie den Wert aus, um den mit dem Befehl ausgewählten Modus zu verwenden. |
Führen Sie Folgendes aus, um die vollständige Commit-SHA eines lokalen Repositorys zu ermitteln:
git -C /path/to/repository rev-parse HEADKampagne aus einer CSV-Datei ausführen
Übergeben Sie die CSV-Datei und ein privates Ausgabeverzeichnis außerhalb der Repositorys:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4--workers steuert die Anzahl gleichzeitig ausgeführter Repository-Scans und ist standardmäßig auf
4 festgelegt. Verwenden Sie --mode deep, um für Zeilen ohne eigenen
mode Tiefenscans auszuwählen. Jede CSV-Zeile kann weiterhin einen eigenen Scanmodus und Repository-Umfang auswählen.
Die CLI checkt jede festgelegte Revision aus, scannt das ausgewählte Ziel, zeichnet das Ergebnis auf und entfernt den temporären Repository-Checkout. Ein Repository gilt nur dann als abgeschlossen, wenn sein Scan eine vollständige Abdeckung aufweist und alle erforderlichen Ergebnisartefakte vorhanden sind.
Modell und Reasoning-Aufwand auswählen
Massenscans verwenden standardmäßig gpt-5.6-sol mit dem Reasoning-Aufwand xhigh. So
wählen Sie ein anderes Modell und einen anderen Aufwand für eine CSV-Kampagne aus:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4 \
--model gpt-5.6-terra \
--effort highDieselben Optionen sind bei der interaktiven Repository-Ermittlung verfügbar:
npx @openai/codex-security bulk-scan --model gpt-5.6-terra --effort highUnterstützte Aufwandsstufen sind minimal, low, medium, high und xhigh.
Kampagnenergebnisse prüfen
Das Ausgabeverzeichnis enthält die festgelegte Kampagne, ein nur ergänzbares Ergebnis- protokoll sowie separate Artefakte für jedes Repository und jeden Versuch:
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.jsonzeichnet die Repositorys, festgelegten Revisionen, Umfänge und Scan- modi der Kampagne auf.results.jsonlzeichnet jeden Repository-Versuch, seinen Status, das Artefakt- verzeichnis und alle verfügbaren Kosten- oder Fehlerdetails auf.report.mdstellt einen lesbaren Bericht für einen Repository-Versuch bereit.findings.jsonundcoverage.jsonzeichnen die Befunde und den überprüften Umfang dieses Versuchs auf.
Exportieren Sie einen abgeschlossenen Repository-Scan, wenn Sie ein portables Ergebnis benötigen:
npx @openai/codex-security export \
/path/outside/repositories/security-scans/artifacts/payments/attempt-1 \
--export-format sarif \
--output /path/outside/repositories/payments.sarifErgebnisse können Quelltextauszüge und Details zu Schwachstellen enthalten. Halten Sie das Ausgabeverzeichnis privat, bewahren Sie es außerhalb gescannter Repositorys auf und unterwerfen Sie es einer angemessenen Aufbewahrungsrichtlinie.
Kampagne fortsetzen
Führen Sie den ursprünglichen Befehl mit derselben CSV-Datei und demselben Ausgabeverzeichnis aus:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4Die CLI setzt Repositorys fort, die noch bearbeitet werden müssen. Sie überspringt ein abgeschlossenes Repository nur, wenn die zugehörige Bestätigung und alle erforderlichen Scanartefakte noch vorhanden sind.
Ändern Sie das Repository-Inventar für ein vorhandenes Ausgabeverzeichnis nicht. Die CLI prüft das festgelegte Manifest und lehnt eine abweichende Kampagne ab. Verwenden Sie ein neues Ausgabe- verzeichnis, wenn Sie Repositorys, Revisionen, Umfänge oder Scanmodi ändern.
Repository-Fehler erneut versuchen
Verwenden Sie --max-attempts, um ein Repository nach einem vorübergehenden Checkout- oder Scan-
fehler erneut zu versuchen:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4 \
--max-attempts 3Standardmäßig wird pro Repository ein Versuch ausgeführt. Jeder Versuch erhält eine eigene Bestätigung und ein eigenes Artefaktverzeichnis.
Massenscans verwenden diese Exit-Codes:
| Exit-Code | Bedeutung |
|---|---|
0 |
Alle Repositorys wurden erfolgreich abgeschlossen. |
2 |
Ein Repository konnte nicht abgeschlossen werden, ein Scan hatte eine unvollständige Abdeckung oder beim Befehl trat ein Eingabe- oder Laufzeitfehler auf. |
130 |
Strg-C hat die Kampagne unterbrochen. |
143 |
SIGTERM hat die Kampagne beendet. |
Massenscans in Docker ausführen
Das Codex Security- Repository enthält eine gehärtete Compose-Konfiguration für automatisierte CSV-Kampagnen auf einem Linux-Docker-Host. Der Host muss die Erstellung nicht privilegierter Benutzer-Namespaces unterstützen.
Halten Sie die Repository-CSV, Scanergebnisse und den Anmeldestatus in persistenten
Verzeichnissen eingebunden. Stellen Sie OpenAI-Anmeldedaten über die Umgebung oder einen Secret-
Manager bereit. Stellen Sie für private GitHub-Repositorys GH_TOKEN oder GITHUB_TOKEN
auf dieselbe Weise bereit.
Führen Sie das Image mit der eingebundenen CSV-Datei und dem eingebundenen Ausgabeverzeichnis aus:
docker compose run --rm codex-security \
bulk-scan /input/repositories.csv \
--output-dir /output \
--workers 4Verwenden Sie dieselbe eingebundene CSV-Datei und dasselbe Ausgabeverzeichnis, um die Kampagne fortzusetzen. Legen Sie für
GitHub Enterprise Server CODEX_SECURITY_GIT_HOST auf Ihren GitHub-Host fest.
Informationen zu allen verfügbaren Flags finden Sie in der Referenz zum bulk-scan-Befehl. Antworten auf häufige Fragen zur Scanabdeckung und zu Befunden finden Sie in den CLI- FAQ.