Ce guide suppose que vous avez planifié et démarré une version d’évaluation d’un GitHub Advanced Security compte d’entreprise existant ou d’essai GitHub , consultez Planification d’un essai de GitHub Advanced Security.
Présentation
Code scanning et l’analyse des dépendances fonctionnent de la même façon dans les référentiels publics et dans les référentiels privés et internes avec Code Security activé. En outre, Code Security vous permet de créer des campagnes de sécurité où les spécialistes de la sécurité et les développeurs peuvent collaborer pour réduire efficacement la dette technique.
Cet article se concentre sur la façon dont vous pouvez combiner ces fonctionnalités avec des contrôles au niveau de l'entreprise afin de normaliser et d'appliquer votre processus de développement.
Affinez vos configurations de sécurité
Contrairement à Secret Protection, où une configuration de sécurité unique est généralement appliquée à tous les référentiels, vous souhaitez probablement affiner la configuration de code scanning différents types de référentiels. Par exemple, vous pouvez avoir besoin de créer des configurations supplémentaires pour que :
-
Code scanning utilise des exécuteurs avec une étiquette spécifique pour s’appliquer aux référentiels qui nécessitent un environnement spécialisé ou qui utilisent des registres privés. -
Code scanning n’est pas défini pour s’appliquer aux référentiels qui doivent utiliser la configuration avancée ou qui nécessitent un outil tiers.
Pour votre essai, il est plus simple de créer une configuration de sécurité primaire au niveau de l'entreprise et de l'appliquer à vos référentiels de test. Vous pouvez ensuite créer toutes les configurations de sécurité supplémentaires dont vous avez besoin et les appliquer à un sous-ensemble de référentiels sélectionnés à l'aide du langage de code, des propriétés personnalisées, de la visibilité et d'autres options de filtrage. Pour plus d’informations, consultez « Activation des fonctions de sécurité dans votre entreprise pilote » et « Application d’une configuration de sécurité personnalisée ».
Fournir l’accès à l’affichage des résultats de code scanning
Par défaut, seul l’administrateur du référentiel et le propriétaire de l’organisation peuvent afficher toutes les code scanning alertes dans leur zone. Vous devez attribuer le rôle prédéfini de responsable de la sécurité à toutes les équipes de l'organisation et à tous les utilisateurs qui doivent avoir accès aux alertes trouvées pendant l'essai. Vous pouvez également attribuer ce rôle au propriétaire du compte d'entreprise pour chaque organisation de la phase d'évaluation. Pour plus d’informations, consultez « Gestion des gestionnaires de sécurité dans votre organisation » et « Utilisation des rôles d'organisation ».
Évaluer et affiner les résultats de la configuration par défaut
La configuration par défaut de code scanning exécute un ensemble de requêtes à haute confiance. Ceux-ci sont choisis pour vous assurer que, lorsque vous déployez code scanning sur l’ensemble de votre base de code, les développeurs voient un ensemble limité de résultats de haute qualité, avec peu de résultats faux positifs.
Vous pouvez voir un résumé des résultats trouvés dans les organisations de votre entreprise d’évaluation dans l’onglet Security and quality Entreprise. Il existe également des vues distinctes pour chaque type d'alerte de sécurité. Consultez Affichage des aperçus de sécurité.
Si vous ne voyez pas les résultats code scanningattendus, vous pouvez mettre à jour le programme d’installation par défaut pour exécuter une suite de requêtes étendue pour les référentiels où vous prévoyez de trouver plus de résultats. Ceci est contrôlé au niveau du référentiel, voir Modification de la configuration d’installation par défaut.
Conseil
Si vous êtes bloqué pour modifier les paramètres code scanningdu référentiel, modifiez la configuration de sécurité utilisée par le référentiel afin que les paramètres ne soient pas appliqués.
Si la suite étendue ne donne toujours pas les résultats escomptés, il se peut que vous deviez activer la configuration avancée afin de pouvoir personnaliser entièrement l'analyse. Pour plus d’informations, consultez « Utiliser la page d’état de l’outil pour l’analyse du code » et « Configuration avancée de l’analyse du code ».
Imposition d'une analyse automatisée des pull requests
Il existe trois types d’analyse automatisée des pull requests intégrées :GitHub
-
** Code scanning l’analyse** utilise des requêtes pour mettre en évidence les modèles de codage incorrects connus et les vulnérabilités de sécurité. Copilot Autofix suggère des correctifs aux problèmes identifiés par code scanning. -
**L'examen des dépendances**résume les modifications apportées aux dépendances par la demande d'extraction et met en évidence les dépendances présentant des vulnérabilités connues ou ne répondant pas à vos normes de développement. -
** Copilot La révision du code** utilise l’IA pour fournir des commentaires sur vos modifications avec des correctifs suggérés si possible.
Ces examens automatisés constituent une extension précieuse de l'auto-évaluation et permettent aux développeurs de présenter plus facilement une demande d'extraction plus complète et plus sûre pour l'examen par les pairs. En outre, code scanning les révisions de dépendances peuvent être appliquées pour protéger la sécurité et la conformité de votre code.
Remarque
GitHub Copilot Autofix est inclus dans la licence pour GitHub Code Security.
Copilot La révision du code nécessite un plan payant Copilot .
Code scanning Analyse
Quand code scanning est activé, vous pouvez ensuite bloquer les fusions dans des branches importantes, sauf si la pull request satisfait vos exigences en créant un ensemble de règles de code pour l'entreprise ou l'organisation. En règle générale, vous devez exiger que les résultats de code scanning soient disponibles et que toutes les alertes importantes soient résolues.
-
**Type de jeu de règles :** Branch. -
**Exiger code scanning des résultats :** activez la fusion de blocs jusqu’à ce que les résultats soient correctement générés pour la validation et la référence des cibles de demande de tirage. -
**Outils et seuils d’alerte requis :** Définissez le niveau d'alerte à résoudre avant qu’une pull request doive être fusionnée pour chaque code scanning outil que vous utilisez.
Comme pour tous les jeux de règles, vous pouvez contrôler exactement les organisations (au niveau de l'entreprise), les référentiels et les branches sur lesquels il agit et définir les rôles ou les équipes qui peuvent contourner la règle. Pour plus d’informations, consultez « À propos des ensembles de règles ».
Vérification des dépendances
Quand Code Security et le graphique des dépendances sont activés pour un référentiel, les fichiers manifestes ont une vue de différences enrichie qui affiche un résumé des dépendances qu’il ajoute ou met à jour. Il s'agit d'un résumé utile pour les réviseurs humains de la demande d'extraction, mais il ne permet pas de contrôler les dépendances qui sont ajoutées à la base de code.
La plupart des entreprises mettent en place des contrôles automatiques pour bloquer l'utilisation de dépendances présentant des vulnérabilités connues ou des conditions de licence non prises en charge.
- Créez un référentiel privé qui servira de foyer central où vous pourrez stocker des flux de travail réutilisables pour l'entreprise.
- Modifiez les paramètres d'action du référentiel pour permettre à tous les référentiels privés de l'entreprise d'accéder aux workflows de ce référentiel central, voir Autoriser l'accès aux composants d'un référentiel privé.
- Dans le référentiel central, créez un flux de travail réutilisable pour exécuter l’action de révision des dépendances, en configurant l’action pour répondre aux besoins de votre entreprise, consultez Configuration de l’action de revue des dépendances.
- Dans chaque organisation, créez ou mettez à jour les ensembles de règles de branche afin d'ajouter le nouveau flux de travail aux contrôles de statut requis, voir Application de la révision des dépendances dans une organisation.
Cela vous permet de mettre à jour la configuration à un seul endroit, mais d'utiliser le flux de travail dans plusieurs référentiels. Vous pouvez utiliser ce référentiel central pour gérer d'autres flux de travail. Pour plus d’informations, consultez « Réutiliser des workflows ».
révision du code Copilot
Remarque
- Si vous obtenez un Copilot abonnement d’une organisation, vous ne pourrez participer au préversion publique sur le site web GitHub que si un propriétaire de votre organisation ou entreprise a activé révision du code Copilot. Consultez Gestion des stratégies et des fonctionnalités pour GitHub Copilot dans votre organisation et Gestion des stratégies et fonctionnalités pour GitHub Copilot dans votre entreprise dans la GitHub Enterprise Cloud documentation.
Par défaut, les utilisateurs demandent une révision de Copilot de la même façon que de la part des réviseurs humains. Toutefois, vous pouvez mettre à jour ou créer un ensemble de règles au niveau de l'organisation pour ajouter automatiquement Copilot en tant que réviseur à toutes les pull requests faites aux branches sélectionnées dans tous les référentiels ou les référentiels sélectionnés. Consultez Configuration de la révision automatique du code par GitHub Copilot dans la GitHub Enterprise Cloud documentation.
Copilot laisse un commentaire de révision sur chaque pull request qu’il examine, sans approuver la pull request ou demander des modifications. Cela garantit que son examen est consultatif et qu'il ne bloquera pas les travaux de développement. De même, vous ne devez pas appliquer la résolution des suggestions faites par l’IA, car les suggestions de l’IA présentent des limitations connues, consultez [AUTOTITLE](/enterprise-cloud@latest/copilot/responsible-use-of-github-copilot-features/responsible-use-of-github-copilot-code-review#limitations-of-github-copilot-code-review) dans la GitHub Enterprise Cloud documentation.
Définir où Copilot Autofix est autorisé et activé
Copilot Autofix aide les développeurs à comprendre et à corriger les alertes code scanning trouvées dans leurs pull requests. Nous vous recommandons d’activer cette fonctionnalité pour tous les référentiels activés Code Security pour aider les développeurs à résoudre efficacement les alertes et à améliorer leur compréhension du codage sécurisé.
Il existe deux niveaux de contrôle :
- Les entreprises peuvent autoriser ou bloquer l’utilisation de Copilot Autofix dans toute l’entreprise à l’aide d’une stratégie de « sécurité du code », consultez : Application de stratégies de sécurité et d’analyse du code pour votre entreprise.
- Les organisations peuvent activer ou désactiver Copilot Autofix pour tous les référentiels appartenant à l’organisation dans les « paramètres globaux » de l’organisation, consultez Configuration des paramètres de sécurité globaux pour votre organisation.
Impliquer les développeurs dans la remédiation de la sécurité
Les campagnes de sécurité permettent aux équipes de sécurité de s'engager auprès des développeurs pour remédier à la dette technique en matière de sécurité. Ils offrent également un moyen pratique de combiner la formation au codage sécurisé avec des exemples de code vulnérable dans un code que vos développeurs connaissent bien. Pour plus d’informations, consultez À propos des campagnes de sécurité et Exécution d’une campagne de sécurité pour corriger les alertes à grande échelle dans la GitHub Enterprise Cloud documentation.
Fournir un environnement de développement sécurisé
L'environnement de développement comporte de nombreux éléments. Voici quelques-unes des fonctionnalités les plus utiles pour la mise à l’échelle et la normalisation d’un environnement de développement sécurisé :GitHub
-
**Configurations de sécurité** : définir la configuration des fonctions de sécurité pour l'entreprise, une organisation, un sous-ensemble de référentiels d'organisation ou de nouveaux référentiels, voir [Affiner vos configurations de sécurité](#refine-your-security-configurations). -
**Politiques :** protéger et contrôler l'utilisation des ressources pour l'entreprise ou l'organisation, voir [AUTOTITLE](/admin/enforcing-policies/enforcing-policies-for-your-enterprise). -
**Ensembles de règles :** pour protéger et contrôler les branches, les balises et les opérations de push pour une organisation, un sous-ensemble de dépôts d'une organisation ou un dépôt, consultez [AUTOTITLE](/organizations/managing-organization-settings/creating-rulesets-for-repositories-in-your-organization). -
**Modèles de référentiels :** définir les flux de travail et les processus de sécurité nécessaires pour chaque type d'environnement, voir [AUTOTITLE](/repositories/creating-and-managing-repositories/creating-a-template-repository). Par exemple, chaque modèle peut contenir un modèle spécialisé :- Fichier de politique de sécurité définissant la position de l'entreprise en matière de sécurité et la manière de signaler tout problème de sécurité.
- Flux de travail pour mettre en œuvre Dependabot version updates pour les gestionnaires de paquets utilisés par l’entreprise.
- Flux de travail définissant la configuration avancée pour les code scanning langages de développement pris en charge où les résultats de configuration par défaut ne sont pas suffisants.
En outre, lorsqu'un développeur crée un référentiel à partir d'un modèle, il doit définir la valeur des propriétés personnalisées requises. Les propriétés personnalisées sont très utiles pour sélectionner un sous-ensemble de référentiels auxquels vous souhaitez appliquer des configurations, des stratégies ou des ensembles de règles, consultez Gestion des propriétés personnalisées des référentiels dans votre entreprise dans la GitHub Enterprise Cloud documentation.
Étapes suivantes
Une fois que vous avez terminé d’explorer ces options et secret scanning fonctionnalités, vous êtes prêt à tester vos découvertes jusqu’à présent en fonction des besoins de votre entreprise, puis à explorer plus loin.
Lectures complémentaires
-
[AUTOTITLE](/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions) -
[AUTOTITLE](/admin/enforcing-policies/enforcing-policies-for-your-enterprise) -
[AUTOTITLE](/enterprise-cloud@latest/admin/managing-accounts-and-repositories/managing-repositories-in-your-enterprise/governing-how-people-use-repositories-in-your-enterprise) dans la GitHub Enterprise Cloud documentation -
[Appliquer GitHub Advanced Security à grande échelle](https://wellarchitected.github.com/library/application-security/recommendations/enforce-ghas-at-scale/)