For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Hauptnavigation

FAQ zur Codex Security CLI

Antworten zu Scans mit Codex Security, Befunden, Fehlalarmen, Abdeckung, Kosten und CI.

Hier findest du Antworten auf häufige Fragen zum Scannen von Repositorys und zum Verwalten von Sicherheitsbefunden über das Terminal. Beginne für die Installation und deinen ersten Scan mit dem CLI-Schnellstart.

Repository-Scans

Wer kann die CLI verwenden

Das Paket @openai/codex-security ist öffentlich verfügbar.

Zum Ausführen von Scans benötigst du Zugriff auf Codex Security. Verwende für optimale Ergebnisse ein Konto, das für Trusted Access for Cyber verifiziert wurde.

Warum verwendet ein Scan nach der Anmeldung einen API-Schlüssel

Wenn in deiner Umgebung OPENAI_API_KEY oder CODEX_API_KEY gesetzt ist, verwenden Scans ohne interaktives Terminal sowie JSON- und JSONL-Scans standardmäßig den API-Schlüssel aus der Umgebung, selbst nach einer erfolgreichen Anmeldung über ChatGPT oder ein Zugriffstoken. Bei interaktiven Scans mit Textausgabe wirst du zur Auswahl aufgefordert, wenn zusätzlich eine ChatGPT-Anmeldung verfügbar ist. Testläufe fordern keine Eingabe an und laden keine Anmeldedaten.

Um deine gespeicherten Anmeldedaten für einen Scan zu verwenden, wähle sie ausdrücklich aus:

npx @openai/codex-security scan . --auth chatgpt

So legst du fest, dass ein API-Schlüssel aus OPENAI_API_KEY oder CODEX_API_KEY erforderlich ist:

npx @openai/codex-security scan . --auth api-key

Damit deine gespeicherten Anmeldedaten automatisch verwendet werden, führe unset OPENAI_API_KEY CODEX_API_KEY aus. Informationen zu allen unterstützten Authentifizierungsmethoden findest du in der CLI-Referenz.

Wie funktionieren Scans mehrerer Repositorys

Melde dich mit der GitHub CLI an:

gh auth login

Suche Repositorys in einem GitHub-Konto oder einer GitHub-Organisation und wähle sie aus:

npx @openai/codex-security bulk-scan

Gib für eine vorbereitete Liste eine CSV-Datei mit Repositorys und ein Ausgabeverzeichnis an:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --workers 4

Unter Sicherheitsscans für mehrere Repositorys ausführen findest du Informationen zur Suche nach Repositorys auf GitHub, zum CSV-Format, zu Kampagnenergebnissen und zu verfügbaren Optionen.

Kann ein unterbrochener Scan mehrerer Repositorys fortgesetzt werden

Ja. Führe denselben Befehl für den Scan mehrerer Repositorys mit der ursprünglichen CSV-Datei und dem ursprünglichen Ausgabeverzeichnis erneut aus. Codex Security überspringt Repositorys, deren Scan bereits abgeschlossen ist.

Füge --max-attempts 3 hinzu, um nach vorübergehenden Repository- oder Scanfehlern einen erneuten Versuch zu starten:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --workers 4 \
  --max-attempts 3

Ein abgeschlossener Scan mit dem Abdeckungsstatus partial oder unknown behält seine Ergebnisse, und die Kampagne endet mit dem Exitcode 2. Der Scan wird auch mit --max-attempts nicht wiederholt.

Wie kann ein Scan Architektur und Sicherheitsrichtlinien berücksichtigen

Übergib Architekturdokumente, Bedrohungsmodelle oder Sicherheitsrichtlinien mit --knowledge-base:

npx @openai/codex-security scan . \
  --knowledge-base /path/to/architecture.md \
  --knowledge-base /path/to/security-policies

Codex Security verwendet diese Dokumente als Kontext für den aktuellen Scan. Informationen zu unterstützten Dateitypen und zur Verarbeitung von Verzeichnissen findest du unter Sicherheitskontext hinzufügen.

Befunde und Abdeckung

Wo finden Teams frühere Scanergebnisse

Liste die gespeicherten Scans für dein Repository auf:

npx @openai/codex-security scans list /path/to/repository

Verwende eine Scan-ID aus den Ergebnissen, um die zugehörigen Befunde zu prüfen:

npx @openai/codex-security scans show SCAN_ID

Für jeden abgeschlossenen Scan werden Bericht, Befunde, Abdeckung und zugehörige Artefakte gemeinsam gespeichert. Den vollständigen Aufbau findest du unter Artefakte von Scans.

Führe scans logs SCAN_ID aus, um gespeicherte Scan- und Worker-Ereignisse zu prüfen. Diese Protokolle sind nicht geschwärzt und können Quellcode oder Anmeldedaten enthalten.

Was passiert, wenn die CLI den Scanverlauf nicht speichern kann

Codex Security speichert den Scanverlauf in einer Workbench-Datenbank. Wenn das standardmäßige Statusverzeichnis nicht beschreibbar ist, wähle ein privates Verzeichnis außerhalb des Repositorys:

export CODEX_SECURITY_STATE_DIR=/path/outside/repository/codex-security-state

Wie unterscheiden Scans zwischen neuen und bekannten Befunden

Liste die offenen Befunde aus allen Scans eines Repositorys auf:

npx @openai/codex-security findings list /path/to/repository

Die Liste zeigt Befunde, die im letzten Scan bestätigt wurden, sowie frühere offene Befunde, die der Scan nicht bestätigt hat.

Vergleiche die Befunde der beiden Scans:

npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_ID

Der Vergleich gleicht Befunde automatisch anhand ihrer zugrunde liegenden Ursache ab, nutzt gespeicherte Zuordnungen erneut und erkennt neue, fortbestehende, wiedereröffnete, behobene sowie unbekannte Befunde. Ein Befund gilt nur dann als behoben, wenn der spätere Scan sein ursprüngliches Ziel und den betroffenen Pfad lückenlos abdeckt.

Wie funktionieren Rückmeldungen zu Fehlalarmen

Prüfe den gespeicherten Scan, um die ID des Vorkommens zu finden:

npx @openai/codex-security scans show SCAN_ID

Dokumentiere, warum dieser Befund nicht zutrifft:

npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
  --reason "The framework escapes this input before it reaches the query"

Künftige Scans desselben Repositorys erhalten diese Erklärung als Kontext. Dennoch prüfen sie den aktuellen Quellcode, die Schutzmaßnahmen und die Erreichbarkeit unabhängig. Das Verwerfen eines Befunds unterdrückt weder eine Regel noch einen Pfad oder eine Schwachstellenklasse.

Details zu den Befehlen findest du in der Referenz zu Befunden.

Warum können wiederholte Scans unterschiedliche Befunde liefern

KI-gestützte Scans können selbst bei derselben Scan-Konfiguration unterschiedlich ausfallen. Führe zunächst deinen Ausgangsscan erneut aus:

npx @openai/codex-security scans rerun BASELINE_SCAN_ID

Beim erneuten Ausführen bleibt die ursprüngliche Scan-Konfiguration erhalten, und dieselbe Plug-in-Version ist erforderlich. Hat sich das installierte Plug-in geändert, wird der Befehl abgebrochen.

Vergleiche den Ausgangsscan mit dem neuen Scan:

npx @openai/codex-security scans compare BASELINE_SCAN_ID REPEAT_SCAN_ID

Stelle einheitliche Architektur- und Sicherheitsvorgaben bereit, wenn fehlender Kontext zu den Abweichungen beitragen könnte. Ein Abgleich kann denselben zugrunde liegenden Befund über mehrere Scanläufe hinweg erkennen, macht die Scans aber nicht deterministisch. Prüfe jeden wichtigen Befund, der nicht mehr angezeigt wird, direkt erneut.

Wie kann ein Team prüfen, ob eine Korrektur wirksam war

Führe nach der Korrektur den ursprünglichen Scan erneut aus:

npx @openai/codex-security scans rerun BEFORE_SCAN_ID

Vergleiche die ursprünglichen Befunde mit dem neuen Scan:

npx @openai/codex-security scans compare BEFORE_SCAN_ID AFTER_SCAN_ID

Stelle sicher, dass der neue Scan das ursprüngliche Ziel und den betroffenen Pfad lückenlos abdeckt. Prüfe den ursprünglichen Befund anschließend direkt anhand des aktuellen Checkouts:

npx @openai/codex-security validate /path/to/original/findings.json \
  "Recheck the SQL injection in src/orders.ts:42 against the current code"

Ein fehlender Befund oder ein Scanvergleich allein belegt nicht, dass eine Korrektur wirksam war.

Was bedeutet eine unvollständige Abdeckung

Der Abdeckungsstatus kann complete, partial oder unknown lauten. Prüfe coverage.json auf ausgeschlossene Pfade, zurückgestellte Bereiche und offene Fragen, bevor du einen Scan als Nachweis einer Überprüfung wertest.

Scans mit teilweiser oder unbekannter Abdeckung geben den Exitcode 2 zurück, auch ohne Richtlinie für Schweregrade. Verfügbare Befunde und Abdeckungsinformationen bleiben erhalten. Ein späterer Scan kann nicht belegen, dass ein früherer Befund nicht mehr besteht, wenn er dessen ursprünglichen Pfad nicht abdeckt.

Automatisierung und Kosten

Wie funktionieren Zeitlimits für Tiefenscans

Lege beim Start eines Tiefenscans eine Frist für die Worker fest:

npx @openai/codex-security scan . --mode deep --max-time-hours 1.5

Der Standardwert beträgt 96 Stunden. Du kannst jeden positiven Wert bis einschließlich 96 festlegen, auch Bruchteile. Nach Ablauf der Frist stoppt Codex Security noch nicht abgeschlossene Worker, behält die Ergebnisse abgeschlossener Standardscans bei und fasst sie im Abschlussbericht zusammen. Falls kein Worker die Überprüfung des Quellcodes abschließt, weist der Bericht eine teilweise Abdeckung aus und die CLI gibt den Exitcode 2 zurück.

Lege für dauerhafte Einstellungen oder Kampagnen mit mehreren Repositorys max_time_hours unter [deep_scan] in der Konfiguration für Tiefenscans fest.

Wie funktionieren Kostenlimits für Scans

Lege vor Beginn des Scans ein geschätztes Kostenlimit in USD fest:

npx @openai/codex-security scan . --max-cost 5

Das Limit ist eine Schätzung und keine feste Ausgabenobergrenze. Bereits laufende Anfragen können abgeschlossen werden und dabei das Limit überschreiten. Erreicht ein Tiefenscan das Limit, nachdem Codex Security die Ergebnisse abgeschlossener Worker zusammengeführt hat, speichert die CLI den fertiggestellten Bericht mit teilweiser Abdeckung und beendet sich mit dem Exitcode 2. Andernfalls bleiben vorhandene Teilergebnisse erhalten.

Können Scans Commits und Pull Requests prüfen

Installiere eine Pre-Commit-Sicherheitsprüfung für zum Commit vorgemerkte und nicht vorgemerkte Änderungen:

npx @openai/codex-security install-hook

Für die Prüfung von Pull Requests scanne die committeten Änderungen und lege einen Schwellenwert für den Schweregrad fest:

npx @openai/codex-security scan . \
  --diff origin/main \
  --fail-on-severity high

Ein vollständiger Scan gibt den Exit-Code 1 zurück, wenn er ein Problem findet, dessen Schweregrad mindestens dem ausgewählten Wert entspricht. Unter Scans in CI durchführen findest du den vollständigen Ablauf für GitHub Actions sowie Informationen zur Verarbeitung von Artefakten und zum SARIF-Export.

Kann eine andere Anwendung Scans direkt ausführen

Ja. Verwende das TypeScript SDK, um direkt aus einer Anwendung oder einem Entwicklungstool Scans zu starten, Ziele auszuwählen, Befunde und Abdeckung zu prüfen, den Fortschritt zu verfolgen und Kostenkontrollen anzuwenden.