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
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 chatgptPour exiger une API key provenant de OPENAI_API_KEY ou CODEX_API_KEY :
npx @openai/codex-security scan . --auth api-keyPour 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.
Une analyse groupée interrompue peut-elle reprendre
Oui. Exécutez la même commande bulk-scan avec le CSV et le répertoire de sortie d’origine. Codex Security ignore les dépôts déjà traités.
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 3Les analyses terminées conservent leurs résultats et ne sont pas relancées, même si des lacunes de couverture
subsistent. Ces lacunes ne font pas terminer la campagne avec le code 2.
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/repositoryUtilisez un identifiant d’analyse figurant dans les résultats pour examiner ses constats :
npx @openai/codex-security scans show SCAN_IDChaque 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.
Pour inspecter les événements d’analyse et de worker enregistrés, exécutez scans logs SCAN_ID. Ces journaux
ne sont pas expurgés et peuvent contenir du code source ou des identifiants d’accès.
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-stateComment les analyses distinguent-elles les nouveaux constats des constats connus
Répertoriez les résultats ouverts issus de toutes les analyses d’un dépôt :
npx @openai/codex-security findings list /path/to/repositoryLa liste identifie les résultats confirmés lors de la dernière analyse et les résultats ouverts antérieurs que l’analyse n’a pas confirmés.
Comparez les résultats des deux analyses :
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_IDLa comparaison associe automatiquement les constats selon leur cause racine, réutilise les correspondances enregistrées et identifie les constats nouveaux, persistants, rouverts, non observés, résolus et indéterminés. Lorsqu’une analyse ultérieure ne retrouve pas un constat antérieur dans le code qu’elle a analysé, ce constat est considéré comme non observé. Il n’est considéré comme résolu qu’après avoir été explicitement clôturé comme déjà corrigé. Les chemins exclus et les correspondances incertaines restent indéterminés.
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_IDIndiquez 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_IDLa nouvelle exécution conserve la configuration de l’analyse d’origine et nécessite la même version du plugin. Si le plugin installé a changé, la commande s’arrête.
Comparez l’analyse de référence à la nouvelle analyse :
npx @openai/codex-security scans compare BASELINE_SCAN_ID REPEAT_SCAN_IDFournissez 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é
Vérifiez à nouveau le constat initial dans la copie de travail modifiée. Depuis cette copie de travail, fournissez le rapport correspondant et le problème dont vous souhaitez valider la correction :
npx @openai/codex-security validate /path/to/original/findings.json \
"Recheck the SQL injection in src/orders.ts:42 against the current code"Examinez les éléments prouvant que le chemin vulnérable est bloqué et que le fonctionnement légitime reste opérationnel. Exécutez le scénario de reproduction initial ou le test de non-régression, s’il est disponible. Si la vérification ne peut pas être exécutée, signalez l’incertitude restante dans le résultat.
Une comparaison d’analyses peut montrer l’évolution des constats, mais l’absence d’un constat ne suffit pas à vérifier une correction.
Que signifie une couverture incomplète
Consultez coverage.json pour connaître les chemins exclus, les périmètres différés et les questions en suspens.
Les nouveaux résultats ne comportent pas de champ indiquant l’exhaustivité de la couverture. Consultez scan.status dans
scan-manifest.json pour connaître l’état d’exécution.
Les lacunes de couverture ne modifient pas le code de sortie d’une analyse terminée. Le code de sortie 0 ne signifie pas
que chaque fichier a été examiné. 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
Fonctionnement des limites de durée des analyses approfondies
Définissez une échéance pour les workers au démarrage d’une analyse approfondie :
npx @openai/codex-security scan . --mode deep --max-time-hours 1.5La valeur par défaut est de 96 heures. Utilisez toute valeur positive jusqu’à 96, y compris
des fractions d’heure. À l’échéance, Codex Security arrête les workers qui n’ont pas terminé, conserve
les résultats des analyses standard terminées et les regroupe dans le rapport final.
Consultez le rapport pour connaître les zones examinées et les travaux différés. L’échéance seule
ne détermine pas le code de sortie ; celui-ci dépend de l’état d’exécution et de la politique de sévérité.
Pour des paramètres persistants ou des campagnes groupées, définissez max_time_hours sous
[deep_scan] dans la configuration des analyses
approfondies.
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 5La 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 cette limite. Si une analyse approfondie atteint la limite après que Codex
Security a regroupé les résultats des workers ayant terminé, la CLI peut enregistrer un rapport
terminé avec un avertissement budgétaire. Elle renvoie 0, ou 1 si des constats atteignent le
seuil de sévérité configuré. Si elle ne peut pas produire de résultat terminé valide,
elle renvoie 2 et conserve toute sortie disponible.
Pour les vérifications des pull requests GitHub et les analyses planifiées des dépôts, utilisez
l’action GitHub Codex Security. Avec
action-v0.3.0, une analyse terminée signifie que l’analyse configurée a produit un
résultat valide. Les exclusions de périmètre et les investigations différées ne contournent pas la
politique de sévérité. Examinez coverage.json pour évaluer le périmètre et les
limites de l’analyse. Pour rejeter également les diffs vides et les simulations, exigez que la sortie
scan-status de l’action soit completed ; consultez Choisir une politique de
sévérité.
Pour les autres fournisseurs, consultez la présentation de CI/CD.
Pour effectuer une vérification avant chaque commit, utilisez
install-hook.