À propos de l’code scanning
Code scanning es une fonctionnalité que vous utilisez pour analyser le code dans un dépôt GitHub afin de détecter d’éventuelles vulnérabilités de sécurité et erreurs de codage. Tous les problèmes identifiés par l’analyse sont énumérés dans votre référentiel.
Vous pouvez configurer l’code scanning pour exécuter l’analyse CodeQL et l’analyse tierce. Code scanning prend aussi en charge l’exécution de l’analyse en mode natif avec GitHub Actions ou en externe en utilisant l’infrastructure CI/CD existante. Les points ci-dessous récapitulent les options dont disposent les utilisateurs au moment de configurer votre instance GitHub Enterprise Server pour autoriser l’code scanning à l’aide d’actions.
- CodeQL : utilise GitHub Actions avec la configuration par défaut (voir « Définition de la configuration par défaut pour l’analyse du code ») ou la configuration avancée (voir « Configuration de la configuration par défaut pour l’analyse du code »), ou exécute l’analyse CodeQL dans un système d’intégration continue (CI) tiers (voir « Utilisation de l'analyse du code avec votre système CI existant »).
- Third‑party : utilise GitHub Actions ou des outils tiers et charge les résultats dans GitHub Enterprise Server (voir « Chargement d’un fichier SARIF sur GitHub »).
Vérification de la présence de GitHub Advanced Security
dans votre licence
Vous pouvez déterminer si votre entreprise dispose d’une licence GitHub Advanced Security en examinant ses paramètres. Pour plus d’informations, consultez « Activation de GitHub Advanced Security pour votre entreprise ».
Prérequis pour l’code scanning
-
Une licence de GitHub Advanced Security (voir « À propos de la facturation pour GitHub Advanced Security »)
-
Code scanning activé dans la console de gestion (consultez « Activation de GitHub Advanced Security pour votre entreprise »)
-
Une machine virtuelle ou un conteneur pour y exécuter code scanning.
Exécution de l’code scanning à l’aide de GitHub Actions
Approvisionnement d’un exécuteur auto-hébergé
GitHub Enterprise Server peut exécuter l’code scanning en utilisant un workflow GitHub Actions. Tout d’abord, vous devez provisionner un ou plusieurs exécuteurs GitHub Actions auto-hébergés dans votre environnement. Vous pouvez provisionner des exécuteurs auto-hébergés au niveau du dépôt, de l’organisation ou du compte d’entreprise. Consultez « À propos des exécuteurs auto-hébergés » et « Ajout d’exécuteurs auto-hébergés. »
Si vous provisionnez un exécuteur auto-hébergé pour l’analyse CodeQL, votre exécuteur doit utiliser une version du système d’exploitation et une architecture processeur prises en charge par CodeQL. Voir la configuration requise CodeQL.
Si vous utilisez la configuration par défaut pour l’code scanning, affectez l’étiquette code-scanning
à votre exécuteur auto-hébergé. Pour plus d’informations sur l’utilisation d’étiquettes avec des exécuteurs auto-hébergés, consultez « Utilisation d’étiquettes avec des exécuteurs auto-hébergés ». Pour plus d’informations sur l’utilisation de la configuration par défaut pour l’analyse du code des langages compilés, consultez « Analyse du code CodeQL pour les langages compilés ».
Vous devez vérifier que Git se trouve dans la variable PATH des exécuteurs auto-hébergés que vous utilisez pour exécuter des actions CodeQL.
Remarque : Si vous utilisez l’code scanning CodeQL pour analyser le code écrit en Python dans votre entreprise, vous devez vérifier que votre exécuteur auto-hébergé a Python 3 installé.
Approvisionnement d’un groupe identique d’exécuteurs
Vous pouvez utiliser Actions Runner Controller pour créer un groupe identique d’exécuteurs dédié à votre instance GitHub Enterprise Server. Consulter « Déploiement de groupes identiques d’exécuteurs avec Actions Runner Controller ».
Provisionnement des actions pour l’code scanning
Si vous souhaitez utiliser des actions pour exécuter l’code scanning sur GitHub Enterprise Server, les actions doivent être disponibles sur votre appliance.
L’action CodeQL est incluse dans votre installation de GitHub Enterprise Server. Si GitHub Enterprise Server 3.15 et votre exécuteur GitHub Actions ont accès à Internet, l’action télécharge automatiquement le bundle CodeQL 2.18.4 nécessaire pour effectuer l’analyse. Vous pouvez également utiliser un outil de synchronisation pour mettre à disposition localement la dernière version du bundle d’analyse CodeQL. Voir « Configurer l’analyse CodeQL sur un serveur sans accès internet » ci-dessous.
Vous pouvez aussi mettre des actions tierces à la disposition des utilisateurs pour code scanning en configurant GitHub Connect. Voir « Configuration de l’analyse de code pour votre appliance » ci-dessous.
Configuration de l’analyse CodeQL sur un serveur sans accès à Internet
Si le serveur sur lequel vous exécutez GitHub Enterprise Server n’est pas connecté à Internet et que vous souhaitez permettre aux utilisateurs d’activer l’code scanning CodeQL pour leurs dépôts, vous devez utiliser l’outil de synchronisation d’actions CodeQL pour copier le bundle d’analyse CodeQL de GitHub.com vers votre serveur. L’outil et les instructions d’utilisation sont disponibles à l’adresse https://github.com/github/codeql-action-sync-tool.
Si vous configurez l’outil de synchronisation d’actions CodeQL, vous pouvez vous en servir pour synchroniser les dernières versions de l’action CodeQL et le bundle d’analyse CodeQL associé. Ils sont compatibles avec GitHub Enterprise Server.
Configuration de GitHub Connect pour synchroniser GitHub Actions
- Si vous voulez télécharger des workflow d’actions à la demande à partir de GitHub.com, vous devez activer GitHub Connect. Consulter « Enabling GitHub Connect for GitHub.com ».
- Vous devez également activer GitHub Actions. Consulter « Bien démarrer avec GitHub Actions pour GitHub Enterprise Server ».
- L’étape suivante consiste à configurer l’accès aux actions sur GitHub.com à l’aide de GitHub Connect. Consulter « Activer l’accès automatique aux actions GitHub.com à l’aide de GitHub Connect ».
- Ajoutez un exécuteur auto-hébergé à votre dépôt, organisation ou compte d’entreprise. Consulter « Ajout d’exécuteurs auto-hébergés ».
Exécution de l’analyse du code à l’aide de CodeQL CLI
Si vous ne souhaitez pas utiliser GitHub Actions, vous devez exécuter code scanning à l’aide de CodeQL CLI.
CodeQL CLI est un outil en ligne de commande qui permet d’analyser des codebases sur n’importe quel ordinateur, y compris sur un système CI/CD tiers. Consulter « Utilisation de l'analyse du code avec votre système CI existant ».