Sécurité automatisée
Ici, nous abordons certaines façons d’automatiser les vérifications de sécurité dans un référentiel qui sont disponibles pour les administrateurs de référentiel GitHub.
Détecter et corriger les dépendances obsolètes avec des vulnérabilités de sécurité
Pratiquement tous les projets ces jours-ci prennent des dépendances sur des packages externes. Bien que ces composants puissent offrir des avantages substantiels en matière de productivité, ils peuvent introduire d’autres risques de sécurité. Gérer ces modules et leur état de vulnérabilité peut être chronophage, surtout si l'on considère que chaque dépendance peut avoir ses propres dépendances, ce qui peut devenir difficile à suivre et à maintenir. Heureusement, GitHub fournit des fonctionnalités qui réduisent cette charge de travail.
Graphiques des dépendances des dépôts
Une fonctionnalité par défaut que chaque référentiel inclut est des graphiques de dépendances. GitHub analyse les manifestes de package courants, tels que package.json, requirements.txtet d’autres. Ces graphiques permettent aux propriétaires de projet de suivre de manière récursive toutes les dépendances sur lesquelles repose leur projet.

Pour obtenir la liste des manifestes de dépendances pris en charge, consultez À propos du graphique des dépendances.
Alertes Dependabot
Même avec un graphe de dépendances visuel, il peut toujours être écrasant de se tenir informé des dernières considérations de sécurité pour chaque dépendance d'un projet. Pour réduire cette surcharge, GitHub fournit des alertes Dependabot qui regardent vos graphiques de dépendances pour vous. Ensuite, il fait un croisement des versions cibles avec les versions figurant sur des listes de vulnérabilités connues. Lorsqu’un risque est détecté, le projet est alerté. L’entrée pour l’analyse provient des avis de sécurité GitHub.

Mises à jour automatisées des dépendances avec Dependabot
Une alerte de dépendance peut amener un contributeur au projet à faire passer la référence du package incriminé à la version recommandée et à créer une demande de tirage (pull request) pour la validation. N’est-ce pas génial s’il y avait un moyen d’automatiser cet effort ? Eh bien, bonne nouvelle ! Dependabot ne fait que ça. Elle recherche les alertes de dépendance et crée des demandes de tirage (pull requests) afin qu’un contributeur puisse valider la mise à jour et fusionner la demande.
Pour en savoir plus sur la flexibilité de Dependabot, consultez Configuration des mises à jour de sécurité de Dependabot.
Analyse automatisée du code
Similaire à la façon dont Dependabot analyse votre référentiel pour détecter les alertes de dépendance, vous pouvez utiliser l’analyse du code pour analyser et rechercher des vulnérabilités de sécurité et des erreurs dans le code dans un dépôt GitHub. L’analyse du code présente plusieurs avantages. Vous pouvez l’utiliser pour rechercher, trier et hiérarchiser les correctifs pour les problèmes existants ou les vulnérabilités de sécurité potentielles. Il est également utile d’empêcher les développeurs d’introduire de nouveaux problèmes de sécurité dans le code.
Un autre avantage pour l’analyse du code est sa capacité à utiliser CodeQL. CodeQL vous permet d’interroger le code en tant que données, ce qui vous permet de créer des requêtes personnalisées ou d’utiliser des requêtes gérées par la communauté open source. L’analyse du code vous donne la possibilité de personnaliser et de gérer la façon dont le code au sein de votre référentiel est analysé.
Vous pouvez activer les alertes et les flux de travail d’analyse du code dans l’onglet sécurité d’un dépôt GitHub :
En savoir plus sur l’analyse du code et CodeQL.
Analyse de secrets
Une autre fonctionnalité d’analyse automatisée au sein d’un dépôt GitHub est l’analyse secrète. À l’instar des fonctionnalités d’analyse de sécurité précédentes, l’analyse des secrets recherche les secrets connus ou les informations d’identification inscrites dans le référentiel. Cette analyse est effectuée pour empêcher l’utilisation d’un comportement frauduleux et pour sécuriser l’intégrité de toutes les données sensibles. Par défaut, l’analyse des secrets se produit sur les référentiels publics et vous pouvez activer l’analyse des secrets sur les référentiels privés par les administrateurs de référentiels ou les propriétaires d’organisations.
Lorsque l’analyse des secrets détecte un ensemble d’informations d’identification, GitHub avertit le fournisseur de services qui a émis le secret. Le fournisseur de services valide les informations d’identification. Ensuite, il décide s’ils doivent révoquer le secret, émettre un nouveau secret ou vous contacter directement. L’action dépend des risques associés à vous ou au fournisseur de services.
En savoir plus sur l’analyse des secrets pour les dépôts publics et privés.