Définir GHAS et l’importance de ses fonctionnalités fondamentales
Dans cette unité, nous allons couvrir les aspects suivants :
- Analyse de secrets
- Analyse de code
- Dependabot
- Création d’un cycle de vie de développement logiciel plus sécurisé avec les fonctionnalités clés
Commençons par un bref passage en revue de GHAS.
Qu’est-ce que GHAS ?
GitHub Advanced Security (ou GHAS) est une solution de sécurité des applications qui aide les développeurs à sécuriser leur code et à gérer les risques sans perturber leur flux de travail.
GHAS inclut des fonctionnalités désormais proposées en tant que deux produits distincts : GitHub Secret Protection et GitHub Code Security. Cette séparation permet aux organisations d’activer les fonctionnalités qui correspondent le mieux à leurs priorités de sécurité et à leurs licences.
Advanced Security est intégré directement dans votre workflow pour éviter les vulnérabilités et les fuites d’informations d’identification sans ralentir le développement. Utiliser GitHub Advanced Security, c’est un peu comme avoir son propre consultant en protection personnelle qui passe en revue chaque ligne de code en utilisant les insights d’experts en sécurité du monde entier.
Garantir la sécurité des applications et de la chaîne d’approvisionnement logicielle n’a jamais été aussi important. Gartner prédit que 45 % des organisations dans le monde seront impactées par une attaque de la chaîne d’approvisionnement d’ici 2025. Selon le rapport d’investigation 2022 de Verizon sur les violations de données, les applications continuent d’être l’un des principaux vecteurs d’attaque et sont au centre de plus de 40 % de toutes les violations de données.
L’intégration de la sécurité dans votre processus de développement logiciel peut sembler un processus intimidant. Nous allons donc passer en revue 3 fonctionnalités clés de GHAS et voir comment elles peuvent aider votre équipe à gérer de manière proactive les dernières menaces de sécurité : analyse de secret, analyse de code et Dependabot.
Analyse de secrets
L’analyse des secrets est une fonctionnalité de sécurité GitHub critique qui identifie et empêche l’exposition accidentelle d’informations sensibles, telles que les clés d’API et les jetons, dans votre code source. L’analyse des secrets est disponible gratuitement pour tous les référentiels publics et peut également être activée pour les dépôts privés avec une licence GitHub Advanced Security (GHAS).
Cela permet d’empêcher tout accès non autorisé et de protéger les données confidentielles. L’analyse des secrets fonctionne en recherchant des modèles et des signatures prédéfinis (indicateurs de la présence d’informations sensibles), ce qui permet de répondre rapidement aux risques de sécurité potentiels. Par défaut, l’analyse des secrets recherche des modèles très précis fournis par un partenaire GitHub. Toutefois, des modèles personnalisés peuvent être créés pour d’autres cas d’usage.
L’analyse des secrets comprend les aspects suivants :
- La protection de l’envoi (push) empêche de manière proactive les fuites de secrets en analysant le code au moment du commit, et en bloquant un envoi (push) si un secret est présent.
- Possibilité de voir facilement les alertes, et de les corriger sans avoir à quitter GitHub.
Dans un cycle de vie de développement logiciel sécurisé, l’analyse des secrets détecte les secrets exposés, ce qui permet aux équipes de les révoquer ou de les faire pivoter le plus tôt possible, souvent avant qu’elles ne puissent être utilisées à des fins malveillantes, réduisant le risque de violations de données et préservant la confidentialité tout au long du développement.
Passons ensuite en revue l’analyse du code.
Analyse de code
L’analyse du code est une fonctionnalité fondamentale de GHAS. Elle permet d’analyser le code source à la recherche des failles de sécurité et des erreurs de programmation. Elle repose sur des techniques d’analyse statique pour identifier les problèmes potentiels tels que l’injection de code SQL, le scripting inter-site et les dépassements de mémoire tampon. En fournissant des commentaires automatisés directement au sein du workflow de demande de tirage (pull request), l’analyse du code permet aux développeurs de corriger les vulnérabilités de manière précoce dans le processus de développement.
L’analyse du code améliore la qualité du code et permet de réduire les menaces de sécurité en identifiant et en traitant les problèmes au début du cycle de vie du développement. Étant donné que les règles d’analyse sont mises à jour en continu, l’analyse du code peut également détecter les vulnérabilités qui peuvent déjà exister en production.
Dependabot
Dependabot est un outil automatisé de gestion des dépendances, responsable de l’actualisation des dépendances d’un projet. Il recherche régulièrement les mises à jour des bibliothèques et des infrastructures utilisées dans un projet, et ouvre automatiquement les demandes de tirage (pull requests) pour mettre à jour les dépendances vers leurs dernières versions sécurisées.
Dependabot inclut :
- Alertes pour les vulnérabilités connues
- Mises à jour de sécurité pour les packages vulnérables
- Mises à jour de version pour maintenir les dépendances actuelles
Dependabot fonctionne en étroite collaboration avec Dependency Graph pour déterminer les dépendances en cours d’utilisation et les référencer croiséement à la base de données de conseil GitHub pour détecter les vulnérabilités.
Avec GitHub Advanced Security, les fonctionnalités de Dependabot sont améliorées par La révision des dépendances, ce qui vous permet d’afficher un aperçu des packages vulnérables introduits dans une demande de tirage et d’empêcher l’ajout de dépendances non sécurisées avant la fusion.
Où activer les alertes relatives à l’analyse des secrets, à l’analyse du code et à Dependabot
Pour activer l’une des alertes à partir d’un niveau de dépôt, accédez d’abord à l’onglet Sécurité de votre dépôt.
Activez ensuite vos alertes dans la vue d’ensemble de la sécurité.
Nous avons passé en revue et activé les trois fonctionnalités fondamentales de GHAS, voyons à présent comment les implémenter pour créer un cycle de vie de développement logiciel plus sécurisé.
Création d’un cycle de vie de développement logiciel plus sécurisé avec les trois fonctionnalités fondamentales
L’analyse des secrets, l’analyse du code et Dependabot contribuent collectivement à créer un cycle de vie de développement logiciel plus sécurisé. L’analyse des secrets empêche l’exposition par inadvertance d’informations sensibles. L’analyse du code identifie et corrige les failles de sécurité dans le codebase. De plus, Dependabot automatise la gestion des dépendances.
En intégrant ces fonctionnalités, les équipes de développement peuvent résoudre de manière proactive les problèmes de sécurité à chaque phase du cycle de vie de développement. Cette approche proactive réduit la probabilité que les incidents de sécurité arrivent en phase de production, ce qui se traduit par un processus de développement logiciel plus résilient, sécurisé et efficace.
En raison de l’impact combiné de ces fonctionnalités fondamentales, la sécurité n’est pas une considération autonome. Elle fait partie intégrante de l’ensemble du workflow de développement.
Fonctionnalités de sécurité pour les projets open source
Les projets publics sur GitHub bénéficient de certaines fonctionnalités de sécurité par défaut, par exemple l’analyse des secrets et les graphes des dépendances. GitHub analyse automatiquement les dépôts publics à la recherche de modèles partenaires, et fournit des alertes aux administrateurs de dépôts. Les propriétaires de projets publics peuvent également choisir d’activer l’analyse du code, Dependabot et la revue des dépendances sans disposer de licence GitHub Advanced Security.
Toutefois, bien que ces fonctionnalités soient fondamentales, elles n’offrent peut-être pas le niveau de protection nécessaire pour les projets ou les environnements d’entreprise plus complexes.
Quand GitHub Advanced Security (GHAS) est associé à GitHub Enterprise Cloud (GHEC), l’ensemble complet des fonctionnalités de sécurité est également disponible pour les projets internes et privés :
- Analyse du code - Permet de rechercher les failles de sécurité et les erreurs de programmation potentielles dans votre code.
- Analyse des secrets - Permet de détecter les secrets, par exemple les clés et les jetons, qui ont été archivés dans des dépôts privés. Les alertes relatives à l’analyse des secrets pour les utilisateurs et les partenaires sont disponibles et gratuites dans les dépôts publics de GitHub.com. Si la protection de l’envoi (push) est activée, elle détecte également les secrets quand ils sont envoyés vers votre dépôt.
- Vérification des dépendances : montrez l’impact complet des modifications apportées aux dépendances et examinez le détail des versions vulnérables avant de fusionner une demande de tirage.
Le tableau ci-dessous récapitule la disponibilité des fonctionnalités GitHub Advanced Security pour les dépôts publics et privés.
| Caractéristique | Dépôt public | Dépôt privé sans Advanced Security | Dépôt privé avec Advanced Security |
|---|---|---|---|
| Analyse de code | ✅ | ❌ | ✅ |
| Analyse de secrets | ✅ | ❌ | ✅ |
| Révision des dépendances | ✅ | ❌ | ✅ |