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-securityL’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 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.
Comment fonctionne l’analyse groupée de dépôts
Connectez-vous avec GitHub CLI :
gh auth loginDécouvrez et sélectionnez des dépôts depuis un compte ou une organisation GitHub :
npx @openai/codex-security bulk-scanPour 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 4Consultez 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 3Comment 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-policiesCodex 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/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.
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
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_IDComparez les constats mis en correspondance :
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_IDLa 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_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_IDFaites correspondre les constats de référence à ceux de la nouvelle analyse :
npx @openai/codex-security scans match BASELINE_SCAN_ID REPEAT_SCAN_IDComparez les résultats mis en correspondance :
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é
Après avoir appliqué un correctif, réexécutez l’analyse d’origine :
npx @openai/codex-security scans rerun BEFORE_SCAN_IDFaites correspondre les constats d’origine à ceux de la nouvelle analyse :
npx @openai/codex-security scans match BEFORE_SCAN_ID AFTER_SCAN_IDComparez les constats mis en correspondance :
npx @openai/codex-security scans compare BEFORE_SCAN_ID AFTER_SCAN_IDVé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 5Cette 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-hookPour 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 highUne 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.