En tant que propriétaire d'entreprise, vous êtes responsable du maintien d'une posture de sécurité solide, de la conformité aux réglementations, de l'atténuation des risques et de la protection de la propriété intellectuelle au sein de votre entreprise. GitHub dispose d'outils qui peuvent vous aider.
Le stockage du code de votre entreprise sur GitHub permet une collaboration, un suivi et un déploiement faciles à partir d'un emplacement unique. Bien qu'il soit important pour la culture et la productivité de permettre aux utilisateurs de travailler dans des dépôts avec le moins de friction possible, vous devrez mettre en place certains contrôles sur le travail des utilisateurs afin de garantir la sécurité et la fiabilité de votre code.
Avec GitHub Enterprise, vous avez accès à l'ensemble des fonctionnalités de gouvernance de GitHub, ce qui vous permet de :
- Contrôler la façon dont les utilisateurs peuvent mettre à jour le code
- Régir la manière dont les utilisateurs peuvent utiliser les dépôts
- Analyser l’activité
- Détecter les fuites de secrets
- Configurer un processus d'approbation pour les actions importantes
- Détecter les vulnérabilités ou erreurs présentes dans le code
Protection de vos branches
Pour les branches importantes des dépôts de votre entreprise, telles que les branches contenant du code de production, votre infrastructure de conformité doit réduire le risque d'erreurs ou de code malveillant pénétrant dans vos environnements de production.
Avec les ensembles de règles, vous pouvez appliquer des règles qui régissent la manière dont les utilisateurs peuvent interagir avec des branches spécifiques. Vous pouvez également accorder à certains utilisateurs le droit de contourner explicitement les règles, ce qui offre de la flexibilité tout en maintenant la clarté des restrictions prévues.
De nombreuses entreprises ajoutent des règles qui :
-
**Restreignent les suppressions**, afin se s'assurer que les utilisateurs ne supprimeront pas accidentellement la branche -
**Exigent une pull request** pour toutes les modifications, afin de disposer d'une trace écrite et de pouvoir imposer des revues -
**Exigent des vérifications d'état et des déploiements réussis** avant de fusionner les pull requests, afin de se prémunir contre les erreurs en production
D'autres règles, comme l'exigence de commits signés ou d'un historique de commits linéaire, sont plus contextuelles et dépendent de vos exigences en matière de conformité.
Pour en savoir plus, consultez À propos des ensembles de règles.
Gouvernance de l'utilisation des dépôts
Les dépôts étant l'endroit où sont stockés le code et les données de votre entreprise, il est important de définir comment les utilisateurs peuvent interagir avec vos dépôts afin de réduire le risque de fuites de données. Dans vos paramètres d'entreprise, vous pouvez définir des stratégies ad hoc pour :
- Restreindre la visibilité par défaut des dépôts
- Empêcher les non-membres d'être invités dans des dépôts
- Empêcher les dépôts d'être dupliqués ou transférés en dehors d'une organisation
L'objectif de vos stratégies doit être de servir vos exigences de sécurité tout en favorisant la collaboration et en réduisant les frictions pour les développeurs. Par exemple, vous pouvez créer une organisation « open source » pour tous les dépôts publics de votre entreprise et empêcher la création de dépôts publics dans toute autre organisation.
Pour savoir comment définir des stratégies, consultez Application de stratégies de gestion des dépôts dans votre entreprise.
Ciblage de stratégies avec des métadonnées
Vous pouvez activer une meilleure gouvernance par le biais de l’application automatisée des stratégies. Cela est possible avec des propriétés personnalisées, ce qui vous permet d’ajouter des métadonnées structurées à vos ressources.
Avec les propriétés personnalisées du référentiel, vous pouvez classifier les référentiels par attributs tels que le niveau de risque, la propriété de l’équipe ou les exigences de conformité. Ces métadonnées vous permettent d’appliquer automatiquement différentes règles de gouvernance en fonction des caractéristiques du référentiel.
Avec les propriétés personnalisées de l’organisation, vous pouvez catégoriser les organisations au sein de votre entreprise en fonction de la sensibilité des données, des infrastructures réglementaires ou des unités commerciales. Vous pouvez ensuite utiliser ces propriétés pour cibler de manière sélective les organisations avec des ensembles de règles d’entreprise.
Les deux types de propriétés personnalisées s’intègrent à des ensembles de règles, ce qui vous permet de créer des frameworks de gouvernance puissants qui appliquent automatiquement les stratégies appropriées en fonction des métadonnées plutôt que de la sélection manuelle du référentiel.
Consultez Gestion des propriétés personnalisées pour les référentiels de votre organisation.
Surveillance de l'activité
Si un problème survient, il est important de pouvoir rechercher l'activité dans votre entreprise afin d'en déterminer la cause ou l'étendue.
Le journal d'audit de GitHub comprend des événements détaillés liés à votre compte d'entreprise, à vos organisations et, si vous utilisez Enterprise Managed Users, à vos utilisateurs managés. Vous pouvez filtrer le journal d'audit par thèmes, comme l'activité de facturation, ou rechercher des événements associés à un jeton compromis.
Pour accéder au journal d'audit, consultez Accès au journal d’audit de votre entreprise.
GitHub ne conserve pas indéfiniment les données des journaux d'audit. Nous vous recommandons de diffuser vos journaux d'audit en continu vers un emplacement externe, ce qui vous permettra de conserver les données aussi longtemps que nécessaire et de les interroger à l'aide d'outils externes. Consultez « Streaming de journaux d’audit pour votre entreprise ».
Empêcher les informations sensibles d'atteindre votre codebase
Pour protéger votre propriété intellectuelle et empêcher les incidents de sécurité, il est important d'implémenter un système permettant de conserver les informations sensibles telles que les jetons en dehors de votre codebase.
Secret scanning
Avec secret scanning, vous pouvez analyser votre code pour détecter les informations sensibles telles que les clés API, les mots de passe et autres informations d'identification dans le codebase, afin de prévenir les accès non autorisés et les éventuelles violations de sécurité. Secret scanning vous signale la présence d'informations sensibles dans votre codebase, ce qui vous permet de réagir de manière appropriée en modifiant les mots de passe ou en effectuant une rotation des jetons.
Pour en savoir plus, veuillez consulter la section À propos de l’analyse des secrets.
Secret scanning peut être activé au niveau de l'entreprise, de l'organisation et du dépôt. Consultez Configuration de l’analyse de secrets pour votre appliance pour l'activation au niveau de l'entreprise.
Protection des push
De plus, vous pouvez empêcher que des données sensibles et des informations d'identification ne soient accidentellement envoyées vers des dépôts grâce à la protection des push.
La protection des push agit comme un garde-fou en analysant les secrets en temps réel et en bloquant les pushs contenant des informations potentiellement sensibles. Les propriétaires d'organisation peuvent configurer des stratégies de protection des push au niveau de l'organisation afin d'appliquer des normes de sécurité cohérentes dans tous les dépôts. Lorsqu'un push est bloqué, les développeurs reçoivent des instructions détaillées sur la manière de résoudre le problème, par exemple en supprimant le secret du code.
Consultez « À propos de la protection lors du push ».
La protection des push peut être activée au niveau de l'organisation, du dépôt et du compte d'utilisateur. Consultez « Activation de la protection d’envoi pour votre référentiel ».
Configuration d'un processus d'approbation pour les actions sensibles
Vous pouvez configurer un processus d'approbation pour mieux contrôler qui, dans votre entreprise, peut effectuer des actions sensibles. Un processus d'approbation permet d'atténuer le risque de modifications non autorisées ou malveillantes et peut fournir un enregistrement indiquant qui a utilisé le contournement et pourquoi, garantissant ainsi la traçabilité et la responsabilité de toutes les actions.
Remarque
La mise en œuvre de ces processus d'approbation peut potentiellement entraîner des frictions, et il est donc important de s'assurer que votre équipe de gestion de la sécurité dispose d'une couverture adéquate avant de poursuivre.
Les processus d'approbation sont disponibles pour :
- Contournements de la protection des push : vous pouvez choisir qui est autorisé à contourner la protection des push et ajouter un cycle de revue et d'approbation pour les push contenant des secrets provenant de tous les autres contributeurs. Pour plus d'informations sur le contournement délégué de la protection des push, consultez À propos du contournement délégué pour la protection push.
Identification des vulnérabilités et erreurs de sécurité
De nombreux secteurs sont soumis à des réglementations qui exigent des évaluations de sécurité régulières et une gestion efficace des vulnérabilités. Code scanning permet de garantir la conformité aux normes du secteur en identifiant et en atténuant les risques de sécurité dans votre code, tels que les modèles non sécurisés.
Code scanning peut être intégré à votre pipeline CI/CD, ce qui permet une surveillance et une évaluation continues de votre codebase.
Pour une prise en main rapide de code scanning, nous vous recommandons d'utiliser la configuration par défaut. Consultez « Définition de la configuration par défaut pour l’analyse du code ».
Code scanning peut être activé au niveau de l'entreprise, de l'organisation et du dépôt. Consultez Configuration de l’analyse de code pour votre appliance pour l'activation au niveau de l'entreprise.