Les dĂ©veloppeurs de logiciels et les chercheurs en sĂ©curitĂ© peuvent sĂ©curiser leur code avec lâanalyse de lâCodeQL. Pour plus dâinformations sur CodeQL, consultez Ă propos de lâanalyse du code avec CodeQL.
LâCodeQL CLI est un outil en ligne de commande autonome que vous pouvez utiliser pour analyser le code. Son objectif principal est de gĂ©nĂ©rer une reprĂ©sentation de base de donnĂ©es dâun codebase, une base de donnĂ©es CodeQL. Une fois que la base de donnĂ©es est prĂȘte, vous pouvez lâinterroger de maniĂšre interactive, ou exĂ©cuter une suite de requĂȘtes pour gĂ©nĂ©rer un ensemble de rĂ©sultats au format SARIF et charger les rĂ©sultats dans GitHub.
Vous pouvez utiliser CodeQL CLI pour :
- ExĂ©cuter des analyses CodeQL avec des requĂȘtes fournies par les ingĂ©nieurs GitHub et la communautĂ© open source
- GĂ©nĂ©rer des alertes dâanalyse du code que vous pouvez charger pour les afficher dans GitHub
- CrĂ©er des bases de donnĂ©es CodeQL Ă utiliser dans le CodeQL pour lâextension Visual Studio Code.
- DĂ©velopper et tester des requĂȘtes CodeQL personnalisĂ©es Ă utiliser dans vos propres analyses
Le CodeQL CLI peut analyser :
- Les langages dynamiques, par exemple, JavaScript et Python.
- Langages compilés, par exemple, C/C++, C#, Go, Java, Kotlin, et Swift
- Les codebases écrits dans un mélange de langages.
Pour plus dâinformations sur la configuration de CodeQL CLI, consultez Configuration de CodeQL CLI.
Ă propos de lâCodeQL CLI pour lâcode scanning
Vous pouvez utiliser lâCodeQL CLI pour exĂ©cuter lâcode scanning sur le code que vous traitez dans un systĂšme dâintĂ©gration continue (CI) tiers. Code scanning es une fonctionnalitĂ© que vous utilisez pour analyser le code dans un dĂ©pĂŽt GitHub afin de dĂ©tecter dâĂ©ventuelles vulnĂ©rabilitĂ©s de sĂ©curitĂ© et erreurs de codage. Tous les problĂšmes identifiĂ©s par lâanalyse sont Ă©numĂ©rĂ©s dans votre rĂ©fĂ©rentiel. Pour une vue d'ensemble de l'utilisation de l'analyse de code avec des systĂšmes CI externes, consultez Utilisation de l'analyse du code avec votre systĂšme CI existant. Pour dĂ©couvrir les spĂ©cifications recommandĂ©es (RAM, cĆurs de processeur et disque) pour lâexĂ©cution de lâanalyse CodeQL, consultez Ressources matĂ©rielles recommandĂ©es pour lâexĂ©cution de CodeQL.
Vous pouvez aussi utiliser GitHub Actions ou des pipelines Azure DevOps pour analyser le code en utilisant le CodeQL CLI. Pour plus dâinformations, consultez DĂ©finition de la configuration par dĂ©faut pour lâanalyse du code ou Configurer GitHub Advanced Security for Azure DevOps dans Microsoft Learn.
Pour obtenir une vue dâensemble de toutes les options dâutilisation de lâanalyse CodeQL pour lâanalyse du code, consultez Ă propos de lâanalyse du code avec CodeQL.
Remarque
- Le CodeQL CLI est disponible pour les clients disposant dâune licence GitHub Code Security.
- CodeQL CLI nâest actuellement pas compatible avec les distributions Linux non-glibc comme Alpine Linux (basĂ©e sur musl).
à propos de la génération de résultats d'analyse du code avec CodeQL CLI
Si vous choisissez dâexĂ©cuter directement CodeQL CLI, vous devez dâabord installer le CodeQL CLI localement. Si vous envisagez d'utiliser le CodeQL CLI avec un systĂšme CI externe, vous devez rendre le CodeQL CLI disponible pour les serveurs de votre systĂšme CI. Pour plus dâinformations, consultez « Configuration de CodeQL CLI ».
Une fois le CodeQL CLI configuré, vous pouvez utiliser trois commandes différentes pour générer des résultats et les charger dans GitHub :
database create
pour crĂ©er une base de donnĂ©es CodeQL afin de reprĂ©senter la structure hiĂ©rarchique de chaque langage de programmation pris en charge dans le dĂ©pĂŽt. Pour plus dâinformations, consultez « PrĂ©paration de votre code pour lâanalyse CodeQL ».database analyze
pour exĂ©cuter des requĂȘtes afin dâanalyser chaque base de donnĂ©es CodeQL et de synthĂ©tiser les rĂ©sultats dans un fichier SARIF. Pour plus dâinformations, consultez « Analyse de votre code avec des requĂȘtes CodeQL ».github upload-results
pour charger les fichiers SARIF rĂ©sultants sur GitHub oĂč les rĂ©sultats sont mis en correspondance avec une branche ou une demande de tirage (pull request) et affichĂ©s sous la forme dâalertes code scanning. Pour plus dâinformations, consultez « Chargement des rĂ©sultats d'analyse de CodeQL sur GitHub ».
Remarque
Le chargement des donnĂ©es SARIF Ă afficher comme rĂ©sultats code scanning dans GitHub est pris en charge pour les rĂ©fĂ©rentiels appartenant Ă lâorganisation avec GitHub Code Security activĂ©. Pour plus dâinformations, consultez « Gestion des paramĂštres de sĂ©curitĂ© et dâanalyse pour votre dĂ©pĂŽt ».
Exemple de configuration CI pour lâanalyse CodeQL
Il s'agit d'un exemple de la série complÚte de commandes pour le CodeQL CLI que vous pourriez utiliser pour analyser un codebase avec deux langues prises en charge et ensuite télécharger les résultats vers GitHub.
# Create CodeQL databases for Java and Python in the 'codeql-dbs' directory
# Call the normal build script for the codebase: 'myBuildScript'
codeql database create codeql-dbs --source-root=src \
--db-cluster --language=java,python --command=./myBuildScript
# Analyze the CodeQL database for Java, 'codeql-dbs/java'
# Tag the data as 'java' results and store in: 'java-results.sarif'
codeql database analyze codeql-dbs/java java-code-scanning.qls \
--format=sarif-latest --sarif-category=java --output=java-results.sarif
# Analyze the CodeQL database for Python, 'codeql-dbs/python'
# Tag the data as 'python' results and store in: 'python-results.sarif'
codeql database analyze codeql-dbs/python python-code-scanning.qls \
--format=sarif-latest --sarif-category=python --output=python-results.sarif
# Upload the SARIF file with the Java results: 'java-results.sarif'
# The GitHub App or personal access token created for authentication
# with GitHub's REST API is available in the `GITHUB_TOKEN` environment variable.
codeql github upload-results \
--repository=my-org/example-repo \
--ref=refs/heads/main --commit=deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 \
--sarif=java-results.sarif
# Upload the SARIF file with the Python results: 'python-results.sarif'
codeql github upload-results \
--repository=my-org/example-repo \
--ref=refs/heads/main --commit=deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 \
--sarif=python-results.sarif
Ă propos de la licence GitHub CodeQL
Avis de licence : si vous ne disposez pas dâune licence pour GitHub Code Security, alors, en installant ce produit, vous acceptez les Conditions gĂ©nĂ©rales de GitHub CodeQL.