Tech Hub

@ Solution Architecture Works

GitHub Advanced Security Part 2 of 2

Understand CodeQL results

Estimated reading: 6 minutes 24 views

Dans les unités précédentes, vous avez créé une base de données et analysé le fichier extrait de votre code. Vous pouvez maintenant consulter les résultats et déterminer s’il existe des vulnérabilités de sécurité à corriger.

Afficher les résultats de l’analyse CodeQL

Les résultats des requêtes interprétées sont automatiquement affichés dans le code source via l’extension CodeQL pour Visual Studio Code. Les résultats générés par le CodeQL CLI peuvent être exportés dans plusieurs formats, compatibles avec divers outils.

Vous pouvez contrôler l’affichage des résultats dans le code source en modifiant la clause select d’une requête. Cela permet de rendre les résultats clairs et compréhensibles pour les autres utilisateurs pendant le développement de la requête.

Lorsque vous écrivez vos propres requêtes dans la console de requêtes ou dans l’extension CodeQL pour VS Code, il n’y a aucune contrainte sur ce que vous pouvez sélectionner.

👉 Si vous souhaitez utiliser une requête pour générer des alertes dans l’analyse de code GitHub ou produire des résultats valides via le CLI CodeQL, vous devez formater la clause select selon les exigences du système.

Agir sur les alertes d’analyse de code

Vous pouvez configurer l’analyse de code pour vérifier le contenu d’un dépôt. Vous pouvez utiliser :

  • l’analyse CodeQL par défaut,
  • un outil d’analyse non-Microsoft,
  • ou d’autres types d’analyse.

Les alertes générées sont affichées ensemble dans le dépôt.

L’analyse CodeQL par défaut de GitHub peut inclure plus de propriétés pour les alertes que les outils non-Microsoft ou les requêtes personnalisées. Dans un workflow par défaut, l’analyse de code examine votre code périodiquement sur la branche principale et lors des pull requests.

Chaque alerte inclut les informations suivantes :

  • Le problème détecté dans le code et le nom de l’outil qui l’a identifié.
  • La ligne de code ayant déclenché l’alerte.
  • Les propriétés de l’alerte, comme la gravité.
  • La gravité en matière de sécurité.
  • Le moment où le problème a été introduit.
  • La nature du problème.

L’analyse CodeQL fournit également des informations sur la manière de corriger le problème lorsqu’une alerte est identifiée. De plus, l’analyse CodeQL peut détecter des problèmes de flux de données dans votre code.

Alertes de flux de données (Data-flow alerts)

L’analyse de flux de données permet de détecter des problèmes de sécurité potentiels dans le code, notamment :

  • L’utilisation de données d’une manière qui compromet la sécurité.
  • Le passage d’arguments dangereux à des fonctions.
  • La fuite d’informations sensibles.

GitHub vous montre comment les données circulent dans le code lorsque l’analyse de code signale des alertes de flux de données. Ces alertes vous aident à identifier les zones de votre code où des informations sensibles peuvent être exposées. Cette connaissance peut vous permettre de repérer les points d’entrée d’attaques par des utilisateurs malveillants.

Niveaux de gravité

Tout résultat d’analyse de code ayant une gravité de Erreur (Error) entraîne par défaut l’échec du contrôle.
Les niveaux de gravité des alertes sont :

  • Erreur (Error)
  • Avertissement (Warning)
  • Remarque (Note)

Vous pouvez spécifier le niveau de gravité à partir duquel une pull request doit échouer lorsqu’elle déclenche une alerte d’analyse de code.

Niveaux de gravité en matière de sécurité

Les requêtes de sécurité générées par l’analyse de code affichent des niveaux de gravité de sécurité pour les alertes :

  • Critique (Critical)
  • Élevée (High)
  • Moyenne (Medium)
  • Faible (Low)

GitHub utilise les données du Common Vulnerability Scoring System (CVSS) pour calculer la gravité de sécurité d’une alerte.

Tout résultat ayant une gravité de sécurité Critique ou Élevée entraîne par défaut l’échec du contrôle.
Vous pouvez définir quel niveau de gravité de sécurité doit provoquer l’échec d’un contrôle.

Fermer une alerte d’analyse de code

Il existe deux façons de fermer une alerte :

  1. Corriger le problème dans le code.
  2. Ignorer ou supprimer l’alerte.

Ignorer une alerte d’analyse de code

Ignorer une alerte permet de la fermer lorsqu’on estime qu’elle ne nécessite pas de correction.
Par exemple :

  • Une erreur dans du code utilisé uniquement pour les tests.
  • Une correction dont le coût dépasse les bénéfices attendus.

Vous pouvez ignorer une alerte depuis les annotations dans le code ou depuis la liste récapitulative dans l’onglet Sécurité.
Pour ignorer une alerte depuis la liste :

  • Sélectionnez le menu Ignorer l’alerte (Dismiss alert).
  • Choisissez une raison pour l’ignorer.
  • Cliquez sur le bouton Ignorer l’alerte (Dismiss alert).

Lorsque vous ignorez une alerte :

  • L’alerte est ignorée dans toutes les branches du dépôt.
  • Elle est retirée du nombre d’alertes actives pour votre projet.
  • Elle est déplacée dans la liste des alertes fermées dans le résumé. Vous pouvez la rouvrir à partir de cette liste si nécessaire.
  • La raison de la fermeture de l’alerte est enregistrée.
  • Lors de la prochaine exécution de l’analyse de code, le même code ne générera pas une nouvelle alerte.

Supprimer une alerte d’analyse de code

Vous pouvez supprimer une alerte si vous avez les droits administrateur sur le dépôt. La suppression d’alertes est utile dans les cas suivants :

  • Vous avez configuré un outil d’analyse de code, mais vous décidez ensuite de le retirer.
  • Vous avez configuré l’analyse CodeQL avec un ensemble de requêtes plus large que celui que vous souhaitez continuer à utiliser.
  • Vous avez retiré certaines requêtes de l’outil.
  • Vous souhaitez nettoyer les résultats de l’analyse de code.

Vous pouvez supprimer des alertes depuis la liste récapitulative dans l’onglet Sécurité.

Lorsque vous supprimez une alerte :

  • L’alerte est supprimée dans toutes les branches.
  • Elle est retirée du nombre d’alertes actives pour votre projet.
  • Elle n’est pas ajoutée à la liste des alertes fermées.
  • L’alerte peut réapparaître dans les résultats d’analyse si le code à l’origine de l’alerte reste inchangé et que le même outil d’analyse est exécuté à nouveau sans modification de configuration.
Share this Doc

Understand CodeQL results

Or copy link

CONTENTS