Qu’est-ce que GitHub Advanced Security ?

Effectué

GitHub a de nombreuses fonctionnalités qui vous aident à améliorer et à maintenir la qualité de votre code. Certaines de ces fonctionnalités sont incluses dans tous les plans, tels que le graphique des dépendances et les alertes Dependabot. D’autres fournissent des fonctionnalités limitées sur les référentiels publics, tandis que les fonctionnalités avancées pour les référentiels privés nécessitent GitHub Sécurité du code et GitHub Protection secrète.

Dans cette unité, vous allez en savoir plus sur GitHub Advanced Security et découvrir à quoi ressemble un projet avec des fonctionnalités de sécurité avancées.

Vue d’ensemble de GitHub Advanced Security

GitHub fonctionnalités avancées de sécurité sont désormais fournies par le biais de deux produits principaux :

  • sécurité du code GitHub (détection et correction des vulnérabilités)
  • Protection des secrets GitHub (détection et prévention des secrets)

Ensemble, ces produits fournissent une plateforme de sécurité plus large qui s’étend au-delà de l’ensemble de fonctionnalités de sécurité avancée GitHub d’origine.

Disponibilité des fonctionnalités

Le tableau suivant résume la disponibilité des fonctionnalités de sécurité GitHub entre les types de référentiels et les produits.

Fonctionnalité Référentiel public Référentiel privé sécurité du code GitHub protection des secrets GitHub
Analyse du code (CodeQL) Oui Non Oui Non
Copilot Autofix Oui, limitée Non Oui Non
Révision des dépendances Oui Non Oui Non
Alertes Dependabot Oui Oui Oui Non
Règles de triage automatique de Dependabot Non Non Oui Non
Campagnes de sécurité Non Non Oui Non
Vue d’ensemble de la sécurité Non Non Oui Non
Analyse de secrets Oui (de base) Non Non Oui
Protection contre les notifications push Non Non Non Oui
Modèles de secrets personnalisés Non Non Non Oui

Comme indiqué dans le tableau précédent, de nombreuses fonctionnalités de sécurité principales, notamment l’analyse du code, l’analyse des secrets de base, la révision des dépendances et les alertes Dependabot, sont disponibles par défaut pour les référentiels publics sur GitHub.com. Les fonctionnalités avancées pour les référentiels privés et internes nécessitent GitHub Enterprise Cloud ou GitHub Team avec GitHub Sécurité du code et/ou GitHub Protection secrète activée.

GitHub Sécurité du code et protection secrète GitHub fournissent les fonctionnalités améliorées suivantes pour les référentiels privés et internes :

  • Analyse du code (CodeQL) : Détecte automatiquement les vulnérabilités et les erreurs de codage et prend en charge les correctifs assistés par l’IA via Copilot correction automatique (où activé).
  • Analyse des secrets : Détecte les secrets exposés dans le code, bloque les fuites avec la protection Push, prend en charge les modèles de secrets personnalisés et fournit des flux de travail d’alerte et de correction améliorés.
  • Vérification des dépendances : Affiche l’impact des modifications des dépendances et met en évidence les versions vulnérables avant la fusion des pull requests.
  • Vue d’ensemble de la sécurité : Fournit une visibilité à l’échelle de l’organisation sur la posture de sécurité, les risques et les alertes au niveau du référentiel.
  • Campagnes de sécurité : Permet aux organisations de regrouper, de hiérarchiser et de corriger systématiquement plusieurs alertes de sécurité entre les référentiels, ce qui aide les équipes à réduire les vulnérabilités plus rapidement et à grande échelle.

Remarques importantes

GitHub a évolué d’une offre groupée GitHub Advanced Security unique en une plateforme modulaire composée de :

  • Sécurité du code GitHub
  • Protection des secrets GitHub

Voici d’autres points importants :

  • Les dépôts publics continuent de bénéficier d’un socle solide de fonctionnalités de sécurité gratuites.
  • Les fonctionnalités avancées se concentrent sur la prévention (par exemple, la protection push), l’automatisation et la correction assistée par l’IA.

GitHub Advanced Security dans le cycle de vie du développement logiciel

Quel impact les fonctionnalités de GitHub Advanced Security ont-elles sur le cycle de vie du développement logiciel ? Examinons d’abord un scénario de sécurité de base.

Diagramme montrant une représentation des différentes étapes du cycle de vie du développement logiciel dans une approche de sécurité traditionnelle.

Cet exemple illustre une approche traditionnelle qui considère la sécurité comme une porte, dans laquelle un ou plusieurs tests de sécurité sont effectués pendant la phase d’assurance qualité. Dans ce scénario, la sécurité devient souvent un goulot d’étranglement qui retarde la livraison des logiciels. De nombreuses organisations répondent à ce défi en déplaçant la sécurité vers la gauche.

Examinons maintenant le même cycle de vie de développement logiciel avec GitHub Advanced Security.

Diagramme représentant les différentes étapes du cycle de vie du développement logiciel avec GitHub Advanced Security.

Dans ce scénario, la sécurité est intégrée depuis le début via les stratégies de sécurité configurées lors de l’installation du projet. Les développeurs reçoivent des commentaires sur la sécurité tout au long du processus de développement.

  • Analyse du code : Analyse chaque validation et fusion pour détecter les vulnérabilités et les erreurs de codage.
  • Analyse des secrets : analyse chaque commit et fusion pour détecter les secrets accidentellement commités, tels que les jetons et les clés privées.
  • Révision des dépendances : Surveille les modifications des dépendances et évalue leur impact sur la sécurité du projet en comparant les fichiers manifestes aux bases de données de vulnérabilités connues pendant chaque demande de tirage.

En outre, La vue d’ensemble de la sécurité fournit aux administrateurs une vue générale de la posture de sécurité de l’organisation. Cette vue permet d’identifier les référentiels qui nécessitent une attention ou une correction.

Étant donné que les vérifications de sécurité se produisent tout au long du cycle de vie du développement, les problèmes potentiels sont identifiés et résolus précédemment. Cette approche réduit les goulots d’étranglement pendant l’assurance qualité et réduit la dette technique avant la publication du logiciel.