pylapp

CVE

GitHub et les alertes Dependabot

🇫🇷 – dimanche 24 juillet 2022

Mots clés : #GitHub, #Dependabot, #alertes, #vulnérabilités, #CVE

Un peu de contexte

Au cas où vous ne le sauriez pas, GitHub propose plusieurs outils qui concernent les fuites de données (leaks) et les vulnérabilités (flaws). Par exemple, assez récemment, GitHub a mis en place un service de détection de leaks avec notamment deux volets : un basé sur des patterns pour les dépôts publics, et un autre plus complet pour l'édition Enterprise Cloud.

Depuis plus longtemps, GitHub peut afficher les alertes Dependabot, à savoir s'il existe des flaws sur des dépendances du projet, et cette fonctionnalité est gratuite et efficace !

Dependabot

En effet, en haut de votre dépôt, parfois cette bannière peut s'afficher. Et dans ce cas, il n'y a pas d'excuse pour aller voir ce qu'il se passe. Juste un bouton sur lequel cliquer. À savoir qu'il faut être membre du projet et authentifié sur GitHub pour voir ces alertes. C'est assez logique, autant éviter d'exposer à n'importe qui que l'on a une passoire dans le projet.

Une bannière d'alerte Dependabot indiquant que des vulnérabilités ont été trouvées dans les dépendances

Ainsi, en allant voir les choses de plus près, on peut tomber sur ce genre d'énumération de potentiels ennuis. Dès le début du parcours, on distingue plusieurs éléments pertinents, dont le niveau de sévérité, un titre plus ou moins explicite, la dépendance concernée et le fichier traité. J'adore NPM et Node.js pour leur lot d'alertes de vulnérabilités, on retrouve souvent les mêmes plateformes et environnements qui exposent autant de dépendances trouées, et ce n'est pas forcément surprenant ou anormal.

Une liste d'alertes Dependabot affichant les niveaux de sévérité et les dépendances incriminées

Ainsi, en choisissant une alerte, on accède à plusieurs données intéressantes dont la sévérité, la référence CVE, les versions concernées, et le cas d'exploitation de cette vulnérabilité. C'est très instructif et ça me parait complet pour le néophyte que je suis ! Bref, en cas d'alerte, on a assez de billes en main pour corriger.

Détails d'une alerte Dependabot avec les références CVE, une description technique de comment exploiter la faille et les versions incriminées

Du coup, comment faire pour ne rien rater de ces alertes ? Comment configurer mon dépôt allez-vous me dire ?

Configurer son dépôt

Première chose à savoir : il faut être... administrateur de son dépôt. Je ne comprends pas la logique, la gestion des droits sur GitHub étant toujours aussi grossière. Pourquoi devoir être administrateur, et donc avoir tous les droits, juste pour gérer les alertes ou s'y abonner ?

Ensuite, allez faire un tour dans les réglages du dépôt pour ajouter nominativement les personnes qui seront notifiées en cas d'alertes. C'est idiot, mais de base, personne n'est ajouté. Donc une alerte sur un dépôt peu actif peut très bien apparaitre sur GitHub, mais personne ne sera courant. Bref, ajoutez dans la section “Access to alerts” les membres de votre projet.

Définition des accès avec un champ de saisie de texte pour ajouter des personnes

Ensuite, jetez un œil à la section “Code security and analysis”. Il y a plusieurs options à activer comme les alertes Dependabot (pas certain que ce soit activé par défaut) et aussi la possibilité d'ouvrir des pull requests à chaque alerte pour corriger la situation. Pas d'excuse, même pour les flemmards !

Configuration des outils par dépôt avec plusieurs boutons

Configurer son compte GitHub

Enfin, allez faire un tour sur les réglages de votre compte GitHub, en commençant par la section “Notification” où vous pouvez vous abonner à des notifications de diverses formes.

Configuration des alertes et notifications par compte GitHub avec plusieurs boutons

Dernière chose, rendez-vous dans la section “Code security and analysis”, et activez les options ci-dessous. Oui, cela ressemble beaucoup à un volet de configuration pour les dépôts, je n'ai pas encore testé les différences, surement un niveau de précision (dépôt uniquement ou tous les dépôts du comptes) différent.

Configuration des derniers éléments par compte GitHub avec plusieurs boutons

Bref

Plus d'excuse maintenant pour laisser vos comptes GitHub et dépôts seuls, abandonnés devant ces vagues de vulnérabilités pouvant compromettre le projet et bien plus encore. En 5 minutes (et je suis large), les choses sont configurées, et le minimum proposé par GitHub dans sa forme gratuite parait déjà acceptable.

De plus, posez-vous la question suivante : si des dégâts venaient à être provoqués à cause d'une faille non corrigée, sur quelle tête les ennuis vont tomber ? D'autant plus que plus ça tombe de haut, plus ça fait mal en bas 🤯. Pour avoir discuté avec des développeurs lors de conférences et meetups, dans certaines entreprises (au moins deux ESN dont je tairais les noms, juste dire que l'une respecte la règle des A et l'autre fait partie des CASSOS), il est prévu dans le contrat de travail que c'est la responsabilité pénale du salarié développeur qui est engagée.

Raison de plus pour signer vos commits (histoire de vous dédouaner en cas d'ennuis et d'envoyer la patate chaude dans la friteuse), tout en vérifiant que tout est bien configuré avec Dependabot, et que des secrets ne sont pas divulgués !

Bref, sortez couverts !

— Dernière mise à jour : mardi 26 juillet 2022 Précédemment sur paper.wf —

Did you enjoy reading this blog? Give me a beer 🍺 or use something else ❤️‍🔥 Licensed under CC-BY-SA 4.0 Opinions are my own, even if I have some interests. For any comment or to contact me, feel free to choose the most suitable medium for you.