Remarque : Votre administrateur de site doit activer l’code scanning pour votre instance GitHub Enterprise Server afin que vous puissiez utiliser cette fonctionnalité. Pour plus d’informations, consultez « Configuration de l’analyse de code pour votre appliance ».
Vous ne pourrez peut-être pas activer ou désactiver lcode scanning si un propriétaire d’entreprise a défini une stratégie GitHub Advanced Security (GHAS) 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 ».
À propos des alertes d’code scanning
Vous pouvez configurer l’code scanning pour vérifier le code dans un référentiel en utilisant l’analyse CodeQL par défaut, une analyse tierce ou plusieurs types d’analyse. Une fois l’analyse terminée, les alertes résultantes s’affichent côte à côte dans l’affichage de sécurité du dépôt. Les résultats provenant d’outils tiers ou de requêtes personnalisées peuvent ne pas inclure toutes les propriétés que vous voyez pour les alertes détectées par l’analyse CodeQL par défaut de GitHub. Pour plus d’informations, consultez « Définition de la configuration par défaut pour l’analyse du code » et « Configuration de la configuration par défaut pour l’analyse du code ».
Par défaut, l’code scanning analyse votre code périodiquement sur la branche par défaut et lors des demandes de tirage (pull request). Pour plus d’informations sur la gestion des alertes de demande de tirage, consultez « Triage des alertes d’analyse du code dans les demandes de tirage (pull request) ».
Vous pouvez auditer les actions effectuées en réponse aux alertes code scanning à l’aide des outils GitHub. Pour plus d’informations, consultez « Audit des alertes de sécurité ».
À propos des détails des alertes
Chaque alerte met en évidence un problème avec le code et le nom de l’outil qui l’a identifié. Vous pouvez voir la ligne de code qui a déclenché l’alerte ainsi que les propriétés de l’alerte, telles que la gravité de l’alerte, la gravité de sécurité et la nature du problème. Les alertes vous indiquent également quand le problème a été introduit pour la première fois. Pour les alertes identifiées par l’analyse CodeQL, vous voyez également des informations sur la façon de résoudre le problème.
L’état et les détails présentés sur la page de l’alerte reflètent uniquement l’état de l’alerte sur la branche par défaut du référentiel, même si l’alerte existe sur d’autres branches. Vous pouvez consulter l’état de l’alerte sur les branches autres que la branche par défaut dans la section Branches affectées sur le côté droit de la page de l’alerte. Si une alerte n’existe pas sur la branche par défaut, l’état de l’alerte est « dans la demande de tirage » ou « dans la branche », et il est grisé.
Si vous configurez l’code scanning avec CodeQL, vous pouvez également trouver des problèmes de flux de données dans votre code. L’analyse du flux de données détecte les problèmes de sécurité potentiels dans le code, tels que l’utilisation de données non sécurisée, le passage d’arguments dangereux à des fonctions et la fuite d’informations sensibles.
Quand l’code scanning signale des alertes de flux de données, GitHub vous montre comment les données transitent par le code. L’Code scanning vous permet d’identifier les zones de votre code qui laissent échapper des informations sensibles et qui peuvent être le point d’entrée d’attaques par des utilisateurs malveillants.
À propos des alertes de plusieurs configurations
Vous pouvez exécuter plusieurs configurations d’analyse du code sur un dépôt, en utilisant différents outils et en ciblant différents langages ou zones du code. Chaque configuration d’code scanning génère un ensemble unique d’alertes. Par exemple, une alerte générée à l’aide de l’analyse CodeQL par défaut avec GitHub Actions provient d’une configuration différente de celle d’une alerte générée en externe et chargée via l’API code scanning.
Si vous utilisez plusieurs configurations pour analyser un fichier, les problèmes détectés par la même requête sont signalés sous la forme d’alertes par plusieurs configurations. Si une alerte existe dans plusieurs configurations, le nombre de configurations apparaît en regard du nom de la branche dans la section « Branches affectées » à droite de la page des alertes. Pour voir les configurations d’une alerte, dans la section « Branches affectées », cliquez sur une branche. Un modal « Analyse des configurations » s’affiche avec les noms de chaque configuration générant l’alerte pour cette branche. Sous chaque configuration, vous pouvez voir quand son alerte a été mise à jour pour la dernière fois.
Une alerte peut afficher différents états de différentes configurations. Pour mettre à jour les états des alertes, réexécutez chaque configuration obsolète. Vous pouvez également supprimer les configurations obsolètes d’une branche pour supprimer les alertes obsolètes. Pour plus d’informations sur la suppression des configurations et alertes obsolètes, consultez « Gestion des alertes d’analyse du code pour votre référentiel ».
À propos des étiquettes pour les alertes introuvables dans le code de l’application
GitHub Enterprise Server affecte une étiquette de catégorie aux alertes introuvables dans le code de l’application. L’étiquette est liée à l’emplacement de l’alerte.
- Généré : code généré par le processus de génération
- Test : code de test
- Bibliothèque : bibliothèque ou code tiers
- Documentation : Documentation
L’Code scanning classe les fichiers par chemin de fichier. Vous ne pouvez pas classer manuellement les fichiers sources.
Dans cet exemple, une alerte est marquée comme étant dans le code « Test » dans la liste d’alertes d’code scanning.
Lorsque vous cliquez pour voir les détails de l’alerte, vous voyez que le chemin du fichier est marqué comme code « Test ».
À propos des niveaux de gravité d’alerte et de gravité de sécurité
Le niveau de gravité d’une alerte code scanning indique le risque que le problème ajoute à votre codebase.
- Gravité. Toutes les alertes code scanning ont un niveau
Error
,Warning
ouNote
. - Gravité de sécurité. Chaque alerte de sécurité trouvée à l’aide de CodeQL a également un niveau de gravité de sécurité de
Critical
,High
,Medium
ouLow
.
Lorsqu’une alerte a un niveau de gravité de sécurité, code scanning affiche et utilise ce niveau plutôt que la severity
. Les niveaux de gravité de sécurité suivent le Common Vulnerability Scoring System (CVSS) qui est également utilisé pour les avertissements dans GitHub Advisory Database. Pour plus d’informations, consultez Échelle CVSS : Qualitative Severity Rating Scale.
Échecs de la vérification de demande de tirage pour les alertes code scanning
Lorsque vous activez code scanning sur les demandes de tirage (pull request), la vérification échoue uniquement si une ou plusieurs alertes de gravité error
, ou de gravité de sécurité critical
ou high
sont détectées. La vérification réussit si des alertes avec une gravité ou une gravité de sécurité inférieure sont détectées. Pour les codebases importants, il peut être souhaitable que la vérification code scanning échoue si des alertes sont détectées, de sorte que l’alerte doit être corrigée ou ignorée avant la fusion des modifications du code. Pour plus d’informations sur les niveaux de gravité, consultez « À propos des niveaux de gravité d’alerte et de gravité de sécurité ».
Vous pouvez modifier les niveaux d’alerte de gravité et de gravité de sécurité qui provoquent un échec de la vérification. Pour plus d’informations, consultez « Modification de la configuration d’installation par défaut ».
Calcul des niveaux de gravité de sécurité
Lorsqu’une requête de sécurité est ajoutée à la suite de requêtes par défaut ou étendue de CodeQL, l’équipe d’ingénierie de CodeQL calcule la gravité de la sécurité comme suit.
- Recherchez toutes les CVE affectées à une ou plusieurs balises CWE associées à la nouvelle requête de sécurité.
- Calculez le 75e centile du score CVSS pour ces CVE.
- Définissez ce score comme gravité de sécurité pour la requête.
- Lors de l’affichage des alertes trouvées par la requête, traduisez les scores numériques en niveaux
Critical
,High
,Medium
ouLow
en utilisant les définitions CVSS.
Pour plus d’informations, consultez Couverture CWE CodeQL sur le site de documentation de CodeQL.