Remarque
Votre administrateur de site doit activer l’code scanning avant de pouvoir utiliser cette fonctionnalité. Pour plus d’informations, consultez « Configuration de l’analyse du code pour votre appliance ».
Vous ne pourrez peut-être pas activer ou désactiver code scanning si un propriétaire d’entreprise a défini une stratégie GitHub Code Security au niveau de l’entreprise. Pour plus d’informations, consultez « Application de stratégies de sécurité et d’analyse du code pour votre entreprise ».
CodeQL est le moteur d’analyse de code développé par GitHub pour automatiser les vérifications de sécurité. Vous pouvez analyser votre code à l’aide de CodeQL et afficher les résultats sous forme d’alertes d’code scanning.
Il existe trois façons principales d’utiliser CodeQL l’analyse pour code scanning:
-
Utilisez la configuration par défaut pour configurer rapidement l’analyse CodeQL pour code scanning dans votre référentiel. La configuration par défaut permet de configurer rapidement l’analyse CodeQL pour code scanning sur votre dépôt. Si vous préférez, vous pouvez sélectionner manuellement la suite de requêtes à exécuter et les langues à analyser. Une fois que vous avez activé CodeQL, GitHub Actions exécute les exécutions de flux de travail pour analyser votre code. Pour plus d’informations, consultez « Définition de la configuration par défaut pour l’analyse du code ».
-
Utilisez la configuration avancée pour ajouter le CodeQL flux de travail à votre référentiel. Cela génère un fichier de flux de travail personnalisable qui utilise github/codeql-action pour exécuter le CodeQL CLI. Pour plus d’informations, consultez « Configuration avancée de l’analyse du code ».
-
Exécutez directement CodeQL CLI dans un système CI externe et chargez les résultats dans GitHub. Pour plus d’informations, consultez « Utilisation de l’analyse du code avec votre système CI existant ».
Remarque
Sur GitHub Enterprise Server3.20, l’action CodeQL utilise CodeQL CLI la version 2.23.9 par défaut. Nous vous recommandons d’utiliser la même version de l’analyse CodeQL CLI si vous exécutez une analyse dans un système CI externe.
Pour plus d’informations sur les alertes code scanning, consultez Alertes d’analyse du code.
À propos de CodeQL
CodeQL est un langage de programmation et des outils associés qui traitent du code comme des données. Il a été conçu spécifiquement pour faciliter l’analyse du code et l’identification de vulnérabilités potentielles avec un niveau de confiance supérieur à celui des analyseurs statiques traditionnels.
- Vous générez une CodeQL base de données pour représenter votre codebase.
- Ensuite, vous exécutez CodeQL des requêtes sur cette base de données pour identifier les problèmes dans la base de code.
- Les résultats de la requête sont affichés code scanningcomme des alertes dans GitHub lorsque vous utilisez CodeQL avec code scanning.
CodeQL prend en charge les langages compilés et interprétés, et peut trouver des vulnérabilités et des erreurs dans le code écrit dans les langues prises en charge.
CodeQL prend en charge les langues suivantes :
- C/C++
- C#
- Go
- Java/Kotlin
- JavaScript/TypeScript
- Python
- Ruby
- Rust
- Workflows rapides * GitHub Actions
Remarque
- Utilisez
java-kotlinpour analyser le code écrit en Java, Kotlin ou les deux. - Utilisez
javascript-typescriptpour analyser le code écrit en JavaScript, TypeScript ou les deux.
Pour plus d’informations, consultez la documentation disponible sur le site web de CodeQL : Langages et frameworks pris en charge.
Important
CodeQL ne prend pas en charge les langues qui ne sont pas répertoriées ci-dessus. Cela inclut, sans s’y limiter, PHP, Scala et d’autres. Toute tentative d’utilisation CodeQL avec des langues non prises en charge peut entraîner la génération d’aucune alerte et une analyse incomplète.
Modélisation de frameworks personnalisés ou de niche
GitHub des experts, des chercheurs en sécurité et des contributeurs communautaires écrivent des bibliothèques pour modéliser le flux de données dans les infrastructures et bibliothèques populaires. Si vous utilisez des dépendances personnalisées qui ne sont pas modélisées, vous pouvez utiliser l’extension CodeQL pour Visual Studio Code créer des modèles pour ces dépendances et les utiliser pour étendre votre analyse. Pour plus d’informations, consultez « Utiliser l'éditeur de modèles CodeQL ».
Requêtes CodeQL
GitHub les experts, les chercheurs en sécurité et les contributeurs de la communauté écrivent et gèrent les requêtes par défaut CodeQL utilisées pour code scanning. Les requêtes sont régulièrement mises à jour pour améliorer l’analyse et réduire les faux résultats positifs. Pour plus d’informations sur les requêtes disponibles dans les packs par défaut et étendus, consultez Requêtes incluses dans les suites de requêtes étendues par défaut et de sécurité.
Rédiger vos propres requêtes
Les requêtes sont open source. Vous pouvez donc afficher et contribuer aux requêtes dans le référentiel github/codeql. Pour plus d’informations, consultez À propos CodeQL des requêtes dans la CodeQL documentation.
Exécution de requêtes supplémentaires
Si vous analysez votre code à l’aide d’une configuration avancée ou d’un système CI externe, vous pouvez exécuter des requêtes supplémentaires dans le cadre de votre analyse.
Ces requêtes doivent appartenir à un pack de requêtes publié CodeQL ou à un CodeQL pack dans un référentiel.
-
Lorsqu’un CodeQL pack de requêtes est publié sur le GitHubContainer registrypackage, toutes les dépendances transitives requises par les requêtes et un cache de compilation sont incluses dans le package. Cela améliore les performances et garantit que l’exécution des requêtes dans le pack donne systématiquement des résultats identiques jusqu’à ce que vous effectuiez une mise à niveau vers une nouvelle version du pack ou de l’interface CLI.
-
CodeQL les packs de requêtes peuvent être téléchargés à partir de plusieurs GitHub registres de conteneurs. Pour plus d’informations, consultez « Options de configuration de flux de travail pour l’analyse du code ».
Pour plus d’informations, consultez « Personnalisation de l’analyse avec des packs CodeQL ».