Examiner les outils de sécurité et de qualité du code de GitHub

Terminée

GitHub fournit une suite complète d’outils de sécurité et de qualité du code qui vous aident à protéger votre code, à gérer les vulnérabilités et à maintenir une base de code saine. Avant de vous plonger dans les spécificités de l’analyse des secrets, il est utile de comprendre où l’analyse des secrets s’intègre dans l’écosystème de sécurité plus large de GitHub.

Vue d’ensemble des outils de sécurité et de qualité du code de GitHub

GitHub organise ses fonctionnalités de sécurité et de qualité du code en plusieurs catégories : sécurité de la chaîne logistique, sécurité secrète, sécurité du code et qualité du code. Certaines fonctionnalités sont disponibles sur tous les plans GitHub, tandis que d’autres nécessitent un produit complémentaire payant : GitHub Secret Protection ou GitHub Code Security. De nombreuses fonctionnalités payantes sont également disponibles gratuitement sur les référentiels publics.

Sécurité de la chaîne d’approvisionnement

Les fonctionnalités de sécurité de la chaîne d’approvisionnement vous aident à comprendre et à protéger les dépendances sur lesquelles repose votre projet.

Graphe de dépendances

Le graphique des dépendances vous permet d’explorer les packages et les écosystèmes dont dépend votre référentiel, ainsi que les référentiels et les packages qui dépendent de votre référentiel. Il fournit une visibilité de l’arborescence complète des dépendances de votre projet, ce qui vous aide à comprendre où votre code a des dépendances externes.

Nomenclature logicielle (SBOM)

Vous pouvez exporter le graphique de dépendance de votre référentiel en tant que code de facturation de logiciels compatible SPDX (SBOM). Un SBOM fournit un inventaire formel et lisible par l’ordinateur des composants et dépendances de votre projet, qui est de plus en plus nécessaire à des fins de conformité et d’audit.

Base de données des avis GitHub

La base de données de conseil GitHub est une liste organisée de vulnérabilités de sécurité connues que vous pouvez parcourir, rechercher et filtrer. Lorsqu’une vulnérabilité est détectée dans l’une de vos dépendances, vous pouvez vérifier cette base de données pour plus d’informations sur la vulnérabilité et son impact.

Alertes et mises à jour de sécurité de Dependabot

Dependabot surveille vos dépendances pour connaître les vulnérabilités de sécurité connues. Lorsqu’une vulnérabilité est détectée, Dependabot crée une alerte et peut automatiquement générer des pull requests pour mettre à jour le module affecté vers une version sécurisée. Les règles de triage automatique par défaut organisées par GitHub permettent de filtrer les faux positifs.

Mises à jour des versions Dependabot

Dependabot peut également tenir vos dépendances à jour en créant automatiquement des demandes de tirage lorsque des versions plus récentes sont disponibles. La conservation des dépendances actuelles facilite l’application de correctifs de sécurité et réduit votre exposition aux vulnérabilités.

Vérification des dépendances

La révision des dépendances montre l’impact total des changements de dépendances dans une demande de tirage. Avant de fusionner une pull request, vous pouvez examiner les dépendances ajoutées, supprimées ou mises à jour, et vérifier si des versions vulnérables ont été introduites. La révision des dépendances nécessite GitHub Code Security pour les dépôts privés, mais est disponible gratuitement sur les dépôts publics.

Sécurité des secrets

Les fonctionnalités de sécurité secrètes détectent et empêchent l’exposition des informations d’identification dans votre codebase.

Alertes de détection de secrets destinées aux partenaires

Pour les dépôts publics, GitHub analyse automatiquement les modèles de secrets connus provenant de plus de 200 fournisseurs de services. Lorsqu’un secret fuite est détecté, GitHub avertit le fournisseur de services approprié afin qu’il puisse révoquer ou faire pivoter les informations d’identification compromises. Cette fonctionnalité est activée par défaut sur tous les référentiels publics sans coût.

Protection d’envoi pour les utilisateurs

La protection push est une fonctionnalité de sécurité personnelle qui empêche automatiquement les utilisateurs de valider, sans le vouloir, des secrets dans un dépôt public, que celui-ci ait ou non activé l’analyse des secrets. Cette fonctionnalité est activée par défaut pour tous les utilisateurs et peut être gérée via les paramètres de compte personnel.

Alertes de détection des informations sensibles pour les utilisateurs

Les alertes d’analyse des secrets pour les utilisateurs étendent les fonctionnalités de détection pour avertir les administrateurs de référentiel et les équipes de sécurité quand des secrets sont trouvés dans un référentiel. Vous pouvez afficher des alertes dans l’onglet Sécurité du référentiel avec des détails sur le type de secret, l’emplacement et la validité. Cette fonctionnalité nécessite GitHub Secret Protection pour les dépôts privés, mais est disponible gratuitement sur les dépôts publics.

Analyse des secrets avec Copilot

L’analyse des secrets Copilot utilise la détection de secrets génériques alimentés par l’IA pour identifier les secrets non structurés (tels que les mots de passe) dans votre code source qui ne correspondent pas à un modèle connu spécifique. Cette fonctionnalité étend la détection au-delà des modèles structurés identifiés par l’analyse des secrets standard.

Protection contre les push (niveau du référentiel)

La protection push bloque les commits contenant des modèles de secrets à haut niveau de confiance avant qu’ils ne soient envoyés vers un dépôt. Si un contributeur contourne le bloc, GitHub crée une alerte. Pour les dépôts privés, la protection push nécessite GitHub Secret Protection. Il est disponible gratuitement sur les dépôts publics.

Contournement délégué pour la protection des poussées

Le contournement délégué vous permet de contrôler les personnes, les rôles et les équipes qui peuvent contourner la protection de poussée. Il implémente un processus de révision et d'approbation pour les poussées qui contiennent des secrets, ajoutant ainsi une couche supplémentaire de gouvernance.

Modèles personnalisés pour l’analyse des secrets

Les organisations peuvent définir des modèles personnalisés pour l’analyse des secrets pour détecter les informations d’identification et les jetons spécifiques à leurs systèmes internes et non couverts par les modèles par défaut.

Sécurité du code

Les fonctionnalités de sécurité du code vous aident à trouver et à corriger les vulnérabilités de sécurité dans votre codebase.

Analyse du code

L’analyse du code utilise une analyse statique pour détecter automatiquement les vulnérabilités de sécurité et les erreurs de codage dans le code nouveau ou modifié. Les problèmes potentiels sont mis en surbrillance avec des informations détaillées afin de pouvoir les corriger avant de les fusionner dans la branche par défaut. L’analyse du code nécessite GitHub Code Security pour les dépôts privés, mais est disponible gratuitement sur les dépôts publics.

Interface CLI CodeQL

L’interface CLI CodeQL vous permet d’exécuter l’analyse CodeQL localement sur vos projets logiciels et de générer des résultats d’analyse du code pour le chargement sur GitHub. Il s’agit du même moteur d’analyse derrière la fonctionnalité d’analyse du code de GitHub.

Copilot Autofix pour l’analyse du code

Copilot Autofix génère automatiquement des correctifs suggérés pour les alertes d’analyse du code. Lorsque l’analyse du code détecte une vulnérabilité, Copilot Autofix fournit une suggestion de correction que vous pouvez examiner et appliquer, réduisant considérablement le temps nécessaire pour résoudre les problèmes.

Règles de tri automatique personnalisées pour Dependabot

Les règles de triage automatique personnalisées vous permettent de contrôler la façon dont les alertes Dependabot sont gérées à grande échelle. Vous pouvez configurer des règles pour rejeter, mettre en attente ou déclencher automatiquement des mises à jour de sécurité pour certaines alertes, en fonction des priorités de votre organisation.

Campagnes de sécurité

Les campagnes de sécurité permettent aux organisations de corriger les alertes de sécurité à grande échelle en créant des efforts coordonnés pour réduire le backlog de sécurité. Les campagnes de sécurité permettent d’organiser et de hiérarchiser le travail de correction sur plusieurs référentiels.

Qualité du code

Les fonctionnalités de qualité du code vous aident à maintenir une base de code saine, fiable et gérable.

Qualité du code GitHub

GitHub Code Quality utilise l’analyse basée sur des règles CodeQL et l’analyse basée sur l’IA pour signaler les problèmes de qualité du code dans les requêtes d’extraction et les analyses de référentiel. Code Quality identifie les problèmes de fiabilité et de maintenance, fournit des correctifs automatiques alimentés par Copilot et vous permet de configurer des ensembles de règles qui imposent des normes de qualité du code lors des demandes de tirage.

Note

GitHub Code Quality est actuellement en préversion publique et disponible pour les dépôts appartenant à l’organisation, dans les plans GitHub Team et GitHub Enterprise Cloud.

Fonctionnalités de sécurité générales

GitHub fournit également des fonctionnalités de sécurité fondamentales qui prennent en charge votre posture de sécurité globale.

Stratégie de sécurité

Vous pouvez ajouter une stratégie de sécurité à votre référentiel qui fournit des instructions aux utilisateurs pour signaler de manière confidentielle les vulnérabilités de sécurité qu’ils découvrent dans votre projet.

Avis de sécurité

Les avis de sécurité vous permettent de discuter en privé et de corriger les vulnérabilités de sécurité dans le code de votre référentiel public, puis de publier un avis pour alerter votre communauté et encourager les mises à niveau.

Ensembles de règles d'un dépôt

Les ensembles de règles de référentiel appliquent des normes de code cohérentes, des exigences de sécurité et des stratégies de conformité entre les branches et les étiquettes de vos référentiels.

Attestations d’artefacts

Les attestations d’artefacts créent des garanties de provenance et d’intégrité infalsifiables pour le logiciel que vous créez, établissant un lien vérifiable entre vos artefacts de build et le code source et le processus de génération qui les a produits.

Vue d’ensemble de la sécurité

La vue d’ensemble de la sécurité fournit un tableau de bord centralisé pour passer en revue le paysage de sécurité global de votre organisation. Il montre les tendances, les insights et les configurations de sécurité, ce qui facilite la surveillance de l’état de sécurité de votre organisation et l’identification des référentiels à plus haut risque. La vue d’ensemble de la sécurité est disponible avec GitHub Secret Protection et GitHub Code Security.

Disponibilité des outils de sécurité GitHub en fonction du plan

Le tableau suivant récapitule les outils de sécurité et de qualité du code de GitHub, le plan GitHub minimal requis pour les utiliser et indique si le module complémentaire GitHub Secret Protection ou GitHub Code Security est nécessaire.

Note

GitHub Secret Protection et GitHub Code Security sont des produits complémentaires payants qui peuvent être achetés par des organisations sur des plans GitHub Team et GitHub Enterprise Cloud . De nombreuses fonctionnalités incluses dans ces produits complémentaires sont également disponibles gratuitement sur les dépôts publics, comme indiqué dans le tableau ci-dessous.

Tool Plan GitHub minimal Dépôts publics Dépôts privés Protection des secrets GitHub Sécurité du code GitHub
Sécurité de la chaîne d’approvisionnement
Graphe de dépendances Tous les forfaits ✅ ✅ — —
Nomenclature logicielle (SBOM) Tous les forfaits ✅ ✅ — —
Base de données des avis GitHub Tous les forfaits ✅ ✅ — —
Alertes et mises à jour de sécurité de Dependabot Tous les forfaits ✅ ✅ — —
Mises à jour des versions Dependabot Tous les forfaits ✅ ✅ — —
Vérification des dépendances Tous les plans (publics) / GitHub Team (privé) ✅ — — ✅
Règles de tri automatique personnalisées pour Dependabot Tous les plans (publics) / GitHub Team (privé) ✅ — — ✅
Sécurité des secrets
Alertes de détection de secrets destinées aux partenaires Tous les forfaits ✅ — — —
Protection d’envoi pour les utilisateurs Tous les forfaits ✅ — — —
Alertes de détection des informations sensibles pour les utilisateurs Tous les plans (publics) / GitHub Team (privé) ✅ — ✅ —
Protection contre les push (niveau du référentiel) Tous les plans (publics) / GitHub Team (privé) ✅ — ✅ —
Analyse des secrets avec Copilot Équipe GitHub — — ✅ —
Contournement délégué pour la protection des poussées Équipe GitHub — — ✅ —
Modèles personnalisés pour l’analyse des secrets Équipe GitHub — — ✅ —
Sécurité du code
Analyse du code Tous les plans (publics) / GitHub Team (privé) ✅ — — ✅
Interface CLI CodeQL Tous les plans (publics) / GitHub Team (privé) ✅ — — ✅
Copilot Autofix pour l’analyse du code Tous les plans (publics) / GitHub Team (privé) ✅ — — ✅
Campagnes de sécurité Équipe GitHub — — — ✅
Qualité du code
Qualité du code GitHub GitHub Team * — — — ✅
Sécurité générale
Stratégie de sécurité Tous les forfaits ✅ ✅ — —
Avis de sécurité Tous les forfaits ✅ ✅ — —
Ensembles de règles d'un dépôt Tous les forfaits ✅ ✅ — —
Attestations d’artefacts Tous les plans (publics) / GitHub Enterprise Cloud (privé) ✅ ✅ ** — —
Vue d’ensemble de la sécurité Équipe GitHub — — ✅ ✅

* La qualité du code GitHub est actuellement en préversion publique.

Les attestations d'artéfacts pour les référentiels privés nécessitent le GitHub Enterprise Cloud.

Dans le tableau ci-dessus, « Tous les plans » signifie que l’outil est disponible sans frais supplémentaires sur chaque plan GitHub, y compris les plans gratuits (GitHub Gratuit pour les comptes personnels et GitHub Free pour les organisations). « GitHub Team » signifie que le plan minimum requis est GitHub Team ou GitHub Enterprise Cloud, qui sont tous deux des plans payants qui prennent également en charge l’achat des produits de module complémentaire GitHub Secret Protection et GitHub Code Security. Des informations détaillées sur la tarification sont disponibles à partir de GitHub.

Fonctionnement des outils de sécurité de GitHub

Les outils de sécurité et de qualité du code de GitHub sont conçus pour fonctionner en tant que couches complémentaires, offrant une protection complète sur différentes dimensions de votre codebase.

  • La sécurité de la chaîne d’approvisionnement (Dependabot, graphe de dépendances, révision des dépendances) vous protège contre les packages tiers vulnérables.
  • La sécurité des secrets (analyse des secrets, protection push) empêche l’exposition des informations d’identification.
  • La sécurité du code (analyse du code, CodeQL) identifie les vulnérabilités de sécurité dans votre propre code.
  • La qualité du code permet de maintenir du code fiable et gérable pour réduire la dette technique.

Ensemble, ces outils créent une approche de sécurité en profondeur qui traite les vulnérabilités de plusieurs angles. Par exemple, l’analyse des secrets peut détecter une clé API divulguée, Dependabot vous avertit d’une dépendance vulnérable que la clé API accède et l’analyse du code identifie une vulnérabilité d’injection SQL dans le code qui utilise cette dépendance. Chaque couche remplit un écart que les autres ne couvrent pas.

Dans ce module, vous allez vous concentrer sur l’analyse des secrets et la protection push, qui constituent la pierre angulaire des fonctionnalités de sécurité des secrets de GitHub.