Tech Hub

@ Solution Architecture Works

Sécurité Avancée sur GitHub – Partie 2 sur 2

Comprendre les résultats de CodeQL

Temps estimé :6 minutes 73 vues

Dans les unités précédentes, vous avez créé une base de données et analysé les fichiers extraits 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 CLI CodeQL peuvent être produits dans plusieurs formats, compatibles avec divers outils.

Vous pouvez contrôler la manière dont les résultats sont affichés dans le code source en modifiant l’instruction select d’une requête. Cela permet de rendre les résultats plus 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.

Cependant, 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 l’instruction select selon les exigences attendues.

Agir sur les alertes d’analyse de code

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

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

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

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

Chaque alerte comprend 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 sévérité en matière de sécurité.
  • Le moment où le problème a été introduit.
  • La nature du problème.

Lorsque CodeQL identifie une alerte, il fournit également des informations sur la manière de corriger le problème.
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 qui peuvent fuiter des informations sensibles, ce qui peut vous permettre de repérer les points d’entrée potentiels pour des attaques malveillantes.

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 (check failure).
Les niveaux de gravité des alertes sont :

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

Vous pouvez définir à partir de quel niveau de gravité une pull request doit échouer si 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é :

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

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

Par défaut, toute alerte ayant une gravité Critique ou Élevée entraîne l’échec du contrôle.
Vous pouvez personnaliser le niveau de gravité de sécurité à partir duquel une alerte doit provoquer un échec.

Fermer une alerte d’analyse de code

Vous avez 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 signifie que vous choisissez de ne pas la corriger.
Par exemple, vous pouvez ignorer une alerte liée à du code utilisé uniquement pour les tests, ou si l’effort nécessaire pour corriger le problème 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é du dépôt.

Pour ignorer une alerte depuis la liste :

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

Lorsque vous ignorez une alerte :

  • L’alerte est ignorée dans toutes les branches.
  • 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 là si nécessaire.
  • La raison de la fermeture est enregistrée.
  • Lors du prochain scan, le même code ne générera pas à nouveau l’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 est utile dans les cas suivants :

  • Vous avez mis en place 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 ce que vous souhaitez conserver.
  • Vous avez supprimé 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’apparaît pas dans la liste des alertes fermées.
  • L’alerte réapparaîtra dans les résultats d’analyse si le code concerné reste inchangé et que le même outil d’analyse est relancé sans modification de configuration.
Share this Doc

Comprendre les résultats de CodeQL

Or copy link

CONTENTS