Deutsch

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 login

Starten Sie einen interaktiven Massenscan:

npx @openai/codex-security bulk-scan

Die CLI führt Sie durch diese Schritte:

  1. Wählen Sie Ihr persönliches GitHub-Konto oder eine Organisation aus.
  2. Prüfen Sie Repositorys, die innerhalb der letzten 90 Tage aktiv waren.
  3. Durchsuchen Sie die Repository-Liste und wählen Sie die zu scannenden Repositorys aus.
  4. Wählen Sie ein Verzeichnis für die Scanergebnisse aus.
  5. 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.com

Legen Sie GH_HOST fest, wenn Sie die Repository-Ermittlung starten:

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

Die 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,,deep

Die 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 HEAD

Kampagne 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 high

Dieselben Optionen sind bei der interaktiven Repository-Ermittlung verfügbar:

npx @openai/codex-security bulk-scan --model gpt-5.6-terra --effort high

Unterstü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.md
  • manifest.json zeichnet die Repositorys, festgelegten Revisionen, Umfänge und Scan- modi der Kampagne auf.
  • results.jsonl zeichnet jeden Repository-Versuch, seinen Status, das Artefakt- verzeichnis und alle verfügbaren Kosten- oder Fehlerdetails auf.
  • report.md stellt einen lesbaren Bericht für einen Repository-Versuch bereit.
  • findings.json und coverage.json zeichnen 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.sarif

Ergebnisse 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 4

Die 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 3

Standardmäß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 4

Verwenden 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.