Français

FAQ sur la CLI Codex Security

Réponses concernant les analyses Codex Security, les constats, les faux positifs, la couverture, les coûts et la CI.

Trouvez des réponses aux questions fréquentes sur l’analyse des dépôts et la gestion des constats de sécurité depuis le terminal. Pour l’installation et une première analyse, commencez par le guide de démarrage rapide de la CLI.

Analyses de dépôts

Qui peut utiliser la CLI

Le package @openai/codex-security est public. Installez la CLI et le SDK :

npm install @openai/codex-security

L’exécution d’analyses nécessite un accès à Codex Security. Pour de meilleurs résultats, utilisez un compte vérifié pour le programme Trusted Access for Cyber.

Pourquoi une analyse utilise-t-elle une API key après la connexion

Lorsque votre environnement contient OPENAI_API_KEY ou CODEX_API_KEY, les analyses sans terminal interactif ainsi que les analyses JSON et JSONL utilisent par défaut l’API key de l’environnement, même après une connexion réussie avec ChatGPT ou un jeton d’accès. Les analyses interactives avec une sortie texte vous demandent de choisir lorsqu’une connexion ChatGPT est également disponible. Les simulations ne demandent ni ne chargent d’identifiants.

Pour utiliser vos identifiants enregistrés lors d’une analyse, sélectionnez-les explicitement :

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

Pour exiger une API key provenant de OPENAI_API_KEY ou CODEX_API_KEY :

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

Pour faire de vos identifiants enregistrés la valeur par défaut automatique, exécutez unset OPENAI_API_KEY CODEX_API_KEY. Pour tous les modes d’authentification pris en charge, consultez la référence de la CLI.

Comment fonctionne l’analyse groupée de dépôts

Connectez-vous avec GitHub CLI :

gh auth login

Découvrez et sélectionnez des dépôts depuis un compte ou une organisation GitHub :

npx @openai/codex-security bulk-scan

Pour une liste préparée, fournissez un fichier CSV de dépôts et un répertoire de sortie :

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

Consultez Exécuter des analyses de sécurité groupées pour la découverte GitHub, le format CSV, les résultats de campagne et les options disponibles.

Une analyse groupée interrompue peut-elle reprendre

Oui. Exécutez la même commande d’analyse groupée avec le fichier CSV et le répertoire de sortie d’origine. Codex Security ignore les dépôts terminés tant que les artefacts d’analyse enregistrés restent intacts.

Ajoutez --max-attempts 3 pour réessayer après des erreurs temporaires de dépôt ou d’analyse :

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

Comment une analyse peut-elle utiliser des politiques d’architecture et de sécurité

Transmettez des documents d’architecture, des modèles de menace ou des politiques de sécurité avec --knowledge-base :

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

Codex Security utilise ces documents comme contexte pour l’analyse en cours. Pour connaître les types de fichiers pris en charge et le comportement des répertoires, consultez Ajouter du contexte de sécurité.

Constats et couverture

Où les équipes peuvent-elles trouver les résultats d’analyses antérieures

Répertoriez les analyses enregistrées pour votre dépôt :

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

Utilisez un identifiant d’analyse figurant dans les résultats pour examiner ses constats :

npx @openai/codex-security scans show SCAN_ID

Chaque analyse terminée conserve ensemble son rapport, ses constats, sa couverture et ses artefacts justificatifs. Consultez Artefacts d’analyse pour connaître la structure complète.

Que faire si la CLI ne peut pas enregistrer l’historique des analyses

Codex Security conserve l’historique des analyses dans une base de données de l’espace de travail. Si le répertoire d’état par défaut n’est pas accessible en écriture, choisissez un répertoire privé en dehors du dépôt :

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

Comment les analyses distinguent-elles les nouveaux constats des constats connus

Faites correspondre les constats qui partagent une même cause racine entre les deux analyses :

npx @openai/codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_ID

Comparez les constats mis en correspondance :

npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_ID

La comparaison identifie les constats nouveaux, persistants, rouverts, résolus et de statut inconnu. Un constat n’est considéré comme résolu que si l’analyse ultérieure couvre sa cible d’origine et le chemin concerné sans lacune de couverture.

Comment fonctionne le retour sur les faux positifs

Examinez l’analyse enregistrée pour trouver l’identifiant de l’occurrence :

npx @openai/codex-security scans show SCAN_ID

Indiquez pourquoi ce constat ne s’applique pas :

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

Les analyses ultérieures du même dépôt reçoivent cette explication comme contexte. Elles vérifient toujours indépendamment le code source actuel, les contrôles et l’accessibilité. Un classement sans suite ne désactive ni une règle, ni un chemin, ni une catégorie de vulnérabilités.

Pour plus de détails sur les commandes, consultez la référence des constats.

Pourquoi des analyses répétées peuvent-elles produire des constats différents

Les analyses assistées par l’IA peuvent varier, même avec la même configuration d’analyse. Commencez par réexécuter votre analyse de référence :

npx @openai/codex-security scans rerun BASELINE_SCAN_ID

Faites correspondre les constats de référence à ceux de la nouvelle analyse :

npx @openai/codex-security scans match BASELINE_SCAN_ID REPEAT_SCAN_ID

Comparez les résultats mis en correspondance :

npx @openai/codex-security scans compare BASELINE_SCAN_ID REPEAT_SCAN_ID

Fournissez des orientations communes sur l’architecture et la sécurité lorsqu’un manque de contexte peut contribuer à cette variation. La mise en correspondance peut identifier le même constat sous-jacent d’une exécution à l’autre, mais elle ne rend pas les analyses déterministes. Revérifiez directement tout constat important qui disparaît.

Comment une équipe peut-elle confirmer qu’un correctif a fonctionné

Après avoir appliqué un correctif, réexécutez l’analyse d’origine :

npx @openai/codex-security scans rerun BEFORE_SCAN_ID

Faites correspondre les constats d’origine à ceux de la nouvelle analyse :

npx @openai/codex-security scans match BEFORE_SCAN_ID AFTER_SCAN_ID

Comparez les constats mis en correspondance :

npx @openai/codex-security scans compare BEFORE_SCAN_ID AFTER_SCAN_ID

Vérifiez que la nouvelle analyse couvre la cible d’origine et le chemin concerné sans lacune de couverture. Revérifiez ensuite directement le constat d’origine dans la version actuellement extraite :

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

L’absence d’un constat ou une simple comparaison d’analyses ne prouve pas qu’un correctif a fonctionné.

Que signifie une couverture incomplète

La couverture peut être complete, partial ou unknown. Examinez coverage.json pour connaître les chemins exclus, les surfaces reportées et les questions en suspens avant de considérer une analyse comme preuve d’une revue.

Les analyses dont la couverture est partielle ou inconnue renvoient le code de sortie 2, même en l’absence de politique de sévérité. Elles conservent néanmoins tous les constats et toutes les données de couverture disponibles. Une analyse ultérieure ne peut pas établir qu’un constat antérieur n’existe plus si elle ne couvre pas le chemin d’origine de ce constat.

Automatisation et coûts

Comment fonctionnent les limites de coût des analyses

Définissez une limite de coût estimée en USD avant de lancer l’analyse :

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

Cette limite est une estimation, et non un plafond de dépenses strict. Les requêtes déjà en cours peuvent se terminer au-delà de la limite. Codex Security conserve les résultats disponibles lorsque l’analyse s’arrête.

Les analyses peuvent-elles vérifier les commits et les pull requests

Installez un contrôle de sécurité pre-commit pour les modifications indexées et non indexées :

npx @openai/codex-security install-hook

Pour les contrôles de pull requests, analysez les modifications validées et définissez un seuil de sévérité :

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

Une analyse complète renvoie le code de sortie 1 lorsqu’elle détecte un problème dont la sévérité est égale ou supérieure au seuil sélectionné. Consultez Exécuter des analyses dans la CI pour obtenir le workflow GitHub Actions complet, la gestion des artefacts et l’export SARIF.

Une autre application peut-elle exécuter directement des analyses

Oui. Utilisez le SDK TypeScript pour lancer des analyses, sélectionner des cibles, examiner les constats et la couverture, suivre la progression et appliquer des contrôles de coût depuis une application ou un outil de développement.