Qu’est-ce que l’analyse du code ?

Effectué

L’analyse du code utilise CodeQL pour analyser le code d’un référentiel GitHub afin de trouver des failles de sécurité et des erreurs de codage. L’analyse des secrets est disponible pour tous les dépôts publics et pour les dépôts privés détenus par les organisations où la fonctionnalité GitHub Advanced Security est activée. Si l’analyse du code détecte une vulnérabilité ou une erreur potentielle dans votre code, GitHub affiche une alerte sous l’onglet Sécurité du référentiel. Une fois que vous avez corrigé le code qui a déclenché l’alerte, GitHub ferme l’alerte.

Vous pouvez utiliser l’analyse du code pour rechercher, trier et hiérarchiser les correctifs pour les problèmes existants dans votre code. L’analyse du code empêche également les développeurs d’introduire de nouveaux problèmes. Vous pouvez planifier des analyses pour certains jours et certaines heures, ou déclencher des analyses lorsqu’un événement spécifique se produit dans le référentiel, comme un push.

Dans cette unité, vous allez découvrir CodeQL, les trois options pour la configuration de l’analyse du code et comment ajouter le workflow CodeQL à votre dépôt.

À propos de l’analyse du code avec CodeQL

CodeQL est le moteur d’analyse du code que GitHub a développé 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’analyse du code. Il existe trois façons principales de configurer l’analyse CodeQL pour l’analyse du code :

  • Utiliser la configuration par défaut pour configurer rapidement l’analyse CodeQL pour l’analyse du code sur votre dépôt. La configuration par défaut permet de choisir les langages à analyser, la suite de requêtes à exécuter et les événements qui déclenchent les analyses, avec la possibilité de configurer manuellement les langages et les suites de requêtes. Cette option de configuration exécute l’analyse du code en tant qu’action GitHub.
  • Utiliser la configuration avancée pour ajouter le workflow CodeQL directement à votre dépôt. L’ajout du workflow CodeQL directement dans votre dépôt génère un fichier de workflow personnalisable, qui utilise github/codeql-action pour exécuter l’interface CLI CodeQL en tant qu’action GitHub.
  • Exécutez l’interface CLI CodeQL directement dans un système d’intégration externe et chargez les résultats dans GitHub.

CodeQL traite le code comme les données, ce qui vous permet de détecter les vulnérabilités potentielles dans votre code avec une plus grande confiance que les analyseurs statiques traditionnels. Vous générez une base de données CodeQL pour représenter votre codebase, puis exécutez des requêtes CodeQL sur cette base de données pour identifier des problèmes dans le codebase. Les résultats de la requête sont affichés en tant qu’alertes d’analyse du code dans GitHub lorsque vous utilisez CodeQL avec l’analyse du code.

CodeQL prend en charge les langages compilés et interprétés, et il peut trouver des vulnérabilités et des erreurs dans le code écrit dans les langues prises en charge suivantes :

  • C ou C++
  • C#
  • Allez
  • Java/Kotlin
  • JavaScript/TypeScript
  • Python
  • Rubis
  • Rapide

La section suivante explique comment ajouter le workflow CodeQL à votre référentiel. Vous allez apprendre à configurer CodeQL à l’aide d’outils externes dans l’unité Activer l’analyse du code avec des outils tiers.

Activer CodeQL dans votre dépôt avec la configuration par défaut

Si vous disposez d’autorisations d’accès en écriture à un référentiel, vous pouvez configurer ou configurer l’analyse du code pour ce référentiel.

Pour configurer l’analyse du code à l’aide du workflow GitHub Actions CodeQL, procédez comme suit :

  1. Sur GitHub.com, accédez à la page principale du référentiel.

  2. Sous le nom de votre référentiel, sélectionnez Sécurité.

    Capture d’écran de l’onglet de sécurité.

  3. Sélectionnez Configurer l’analyse du code. Si cette option n’est pas disponible, demandez à un propriétaire d’organisation ou à un administrateur de dépôt d’activer GitHub Advanced Security.

    Capture d’écran du bouton d’analyse du code configuré.

  4. Dans la liste déroulante Configurer, sélectionnez Par défaut.

  5. Passez en revue les options par défaut. Si nécessaire, sélectionnez le bouton Modifier dans le coin inférieur gauche de la nouvelle fenêtre pour personnaliser l’exécution de CodeQL.

    Les déclencheurs on:pull_request et on:push sont les valeurs par défaut pour l’analyse du code et ont chacun des objectifs différents. Vous en apprendrez davantage sur ces déclencheurs dans l’unité Configurer l’analyse du code.

  6. Sélectionnez Activer CodeQL une fois que vous êtes prêt à activer l’analyse du code.

    Dans le workflow d’analyse CodeQL par défaut, l’analyse du code est configurée pour analyser votre code chaque fois que vous envoyez (push) une modification à des branches protégées, ou que vous déclenchez une demande de tirage (pull request) sur la branche par défaut. Une fois l’envoi (push) effectué, l’analyse du code s’exécute automatiquement.

Dans la section précédente, nous avons activé l’analyse du code à l’aide de la configuration par défaut, qui exécute des analyses du code en tant qu’action GitHub sans la nécessité de gérer un fichier de workflow. L’autre option est la configurationAvancée, qui génère le fichier de workflow par défaut que vous pouvez modifier pour une configuration avancée et d’autres étapes. Nous aborderons l’utilisation de la configuration avancée pour la configuration de l’analyse du code dans une unité ultérieure.

L’exécution de l’analyse du code avec GitHub Actions affecte les minutes de votre facturation mensuelle. Si vous voulez utiliser GitHub Actions au-delà du stockage ou des minutes de votre compte, vous êtes facturé pour cette utilisation supplémentaire.

À propos de la facturation d’Actions

L’analyse du code utilise GitHub Actions. Chaque exécution d’un workflow d’analyse du code consomme quelques minutes pour GitHub Actions. L’utilisation de GitHub Actions est gratuite à la fois pour les référentiels publics et les exécuteurs auto-hébergés. Pour les référentiels privés, chaque compte GitHub reçoit un certain nombre de minutes et de stockage gratuits, en fonction du produit utilisé avec le compte. Les limites de dépense contrôlent toute utilisation au-delà des montants inclus. Si vous êtes un client facturé tous les mois, votre compte a une limite de dépense par défaut de zéro dollar américain (USD), ce qui empêche l’utilisation supplémentaire de minutes ou de stockage pour les dépôts privés au-delà des montants inclus dans votre compte. Si vous payez votre compte par facture, votre compte aura une limite de dépense par défaut illimitée. Les minutes sont réinitialisées chaque mois, contrairement à l’utilisation du stockage.