21 Meilleures pratiques de sécurité pour GitHub

GitHub est extrêmement proactif en ce qui concerne la protection de la sécurité de ses utilisateurs et de leur code. En plus d'encourager ou d'imposer l'utilisation de l'authentification multifacteurs (AMF), elle a également développé et déployé des outils pour aider à empêcher l'accès non autorisé et l'exposition d'informations sensibles dans les référentiels publics. Par conséquent, la majorité des incidents de sécurité liés à GitHub sont dus à des erreurs commises par ses utilisateurs. Cet article explore quelques bonnes pratiques que les organisations utilisant GitHub peuvent adopter pour garantir la sécurité de leurs dépôts GitHub et du code et des données qu'ils contiennent.

Téléchargez le livre blanc En savoir plus

Top 21 des meilleures pratiques de sécurité pour GitHub

Voici les 21 meilleures pratiques de sécurité pour GitHub :

#1. Ne stockez jamais d'identifiants ni de données sensibles sur Github

GitHub est un système de contrôle de version, les données qui y sont stockées le sont donc pour toujours. Des outils tels que git-secrets peuvent empêcher le code contenant des données sensibles d'être envoyé sur GitHub.

#2. Désactiver la bifurcation

Le forkage permet de faire une copie d'un dépôt GitHub sans affecter la base de code originale. Désactivez le forkage pour garder le contrôle sur le code source et vous assurer que des données sensibles ne sont pas ajoutées et rendues publiques par un forkage non autorisé.

#3. Désactiver les changements de visibilité

GitHub prend en charge les dépôts publics et privés, et les utilisateurs privilégiés peuvent modifier la visibilité d'un dépôt. Limitez l'ensemble des utilisateurs qui peuvent le faire en désactivant l'autorisation pour tous les membres de votre organisation de modifier "Repository visibility change" dans les privilèges des membres de GitHub.

#4. Validez votre application GitHub

Les organisations travaillent souvent avec des développeurs tiers qui ont accès à des comptes GitHub. Ces utilisateurs externes doivent avoir un accès limité et toutes les modifications doivent être validées avant d'être ajoutées à un répertoire.

#5. Appliquez l'authentification à deux facteurs

GitHub permet aux organisations d'imposer l'utilisation de l'authentification à deux facteurs (2FA). Exiger le 2FA pour tous les utilisateurs réduit le risque de fuites de code ou de codes malveillants dus à des comptes non sécurisés.

#6. Mettre en place le SSO (GitHub Enterprise uniquement)

GitHub Enterprise permet aux organisations d'attribuer des autorisations granulaires à diverses ressources. En outre, l'authentification unique SAML permet d'intégrer GitHub à la solution IAM d'une organisation.

#7. Limitez l'accès aux adresses IP autorisées

La liste d'autorisation IP permet à une organisation de limiter l'accès à l'appareil sur site ou aux réseaux privés virtuels d'entreprise. Cela permet d'éviter que d'anciens employés ou des appareils non autorisés n'accèdent à la base de données.

#8. Gérez rigoureusement les autorisations des contributeurs externes

Les contributeurs externes peuvent ne faire partie d'un projet que pour une courte durée et l'accès doit leur être retiré lorsque leur rôle est terminé. La gestion des comptes externes réduit le manque de sécurité et la tarification "par utilisateur" de GitHub.

#9. Retirez les autorisations en temps voulu

Les utilisateurs peuvent ne plus avoir besoin de l'accès au répertoire après avoir quitté l'entreprise ou le projet. La révocation de l'accès ou le passage en lecture seule réduit le risque associé à leur compte.

#10. Exiger la signature d'un engagement

L'identité perçue d'un utilisateur peut être changée sur GitHub simplement en modifiant sa configuration git. La signature de code signe cryptographiquement les engagements pour en garantir l'authenticité et la traçabilité.

#11. Appliquer l'examen du code avant les modifications (Commits)

L'examen du code permet d'identifier les vulnérabilités potentielles en matière de sécurité ou les fonctionnalités malveillantes d'une livraison. GitHub peut être configuré de manière à ce que toutes les soumissions soient des demandes d'extraction, ce qui permet de les examiner avant de les fusionner.

#12. Ajouter un fichier Security.md

Le fichier security.md documente officiellement les politiques de sécurité d'un référentiel. Il peut être utilisé pour partager les exigences en matière de sécurité et les moyens de signaler les vulnérabilités.

#13. Rotation des clés SSH et des jetons d'accès personnels (PAT)

GitHub utilise des clés SSH et des PAT comme alternative aux mots de passe pour l'authentification. Il convient de procéder à une rotation régulière afin d'éliminer les informations d'identification susceptibles d'avoir fait l'objet d'une violation.

#14. Auditer tout le code téléchargé sur GitHub

Des bases de code héritées et externes peuvent être ajoutées à un dépôt GitHub dans le cadre d'une application. Ce code doit faire l'objet d'un audit de vulnérabilité potentielle avant d'être accepté dans une base de code.

#15. Examinez vos journaux d'audit GitHub à la recherche d'activités suspectes

GitHub propose un système de journalisation robuste pour les activités au sein de GitHub d'une organisation. L'examen régulier de ces journaux permet d'identifier les activités potentiellement suspectes et les comptes compromis.

#16. Activer les alertes pour les dépendances vulnérables

Les applications peuvent hériter de la vulnérabilité de leurs dépendances, en particulier les dépendances tierces et open source. GitHub permet de signaler automatiquement la vulnérabilité des dépôts publics d'une organisation.

#17. Utiliser l'analyse automatisée des secrets au moment de la validation préalable

Les informations d'identification codées en dur dans une application risquent d'être exposées, même dans les dépôts privés. L'analyse automatisée des secrets permet d'identifier et de bloquer ces informations d'identification afin qu'elles ne soient pas incluses dans le code commis.

#18. Effacer votre historique GitHub

L'historique des versions de GitHub peut être problématique si des données sensibles sont incluses dans le code. L'historique peut être réécrit en utilisant la commande git filter-branch.

#19. Activer la protection des branches Git

La protection des branches Git empêche toute modification non autorisée de branches spécifiques. Cela permet de protéger ces branches contre la perte de code et de données due à une suppression accidentelle ou à une fusion git squash.

#20. Ajouter des fichiers sensibles à .gitignore

Un repo git local peut nécessiter l'accès à certaines clés SSK et à certains jetons d'accès qui ne devraient pas être poussés vers un repo git. Inclure ces fichiers dans .gitignore les empêche d'être téléchargés.

#21. Recourir à un service de "coffre-fort des secrets

Un coffre-fort de secrets stocke des informations sensibles (mots de passe, clés cryptographiques, etc.) auxquelles une application doit accéder. Un coffre-fort offre une protection plus forte que celle offerte par GitHub.

Assurer la sécurité de GitHub avec Check Point

Pour les organisations qui utilisent les dépôts GitHub, il est essentiel de les sécuriser pour protéger le code et les données sensibles qu'ils peuvent contenir.

Pour plus de conseils sur la sécurité de vos dépôts GitHub, consultez cette liste plus complète des meilleures pratiques de sécurité GitHub. Check Point propose des solutions pour sécuriser les applications tout au long du cycle de développement des logiciels (SDLC).

Découvrez comment votre organisation peut améliorer la sécurité de GitHub avec Check Point Developer Security.