Cet article fait partie d’une série sur l’adoption de GitHub Advanced Security à grande échelle. Pour l’article précédent de cette série, consultez « Phase 1 : Aligner sur votre stratégie de déploiement et vos objectifs ».
Préparation de l’activation de l’code scanning
Code scanning es une fonctionnalité que vous utilisez pour analyser le code dans un dépôt GitHub afin de détecter d’éventuelles vulnérabilités de sécurité et erreurs de codage. Tous les problèmes identifiés par l’analyse sont affichés dans GitHub Enterprise Server. Pour plus d’informations, consultez « À propos de l’analyse du code ».
Le déploiement de l’code scanning sur des centaines de dépôts peut être difficile, en particulier lorsque le déploiement est effectué de manière inefficace. Le suivi de ces étapes vous permettra de garantir l’efficacité et le succès de votre déploiement. Dans le cadre de votre préparation, vous allez travailler avec vos équipes, utiliser l’automatisation pour collecter des données sur vos dépôts et activer l’code scanning.
Préparation des équipes pour l’code scanning
Tout d’abord, préparez vos équipes à utiliser l’code scanning. Plus le nombre d’équipes utilisant l’code scanning sera élevé, plus vous aurez de données pour générer des plans de correction et superviser la progression de votre déploiement. Au cours de cette phase, concentrez-vous sur l’utilisation des API et l’exécution d’événements d’activation interne.
Votre objectif principal doit être de préparer le plus d’équipes à utiliser l’code scanning qu’il est possible. Vous pouvez également encourager les équipes à apporter des corrections appropriées, mais nous vous recommandons de privilégier l’activation et l’utilisation de l’code scanning par rapport à la résolution des problèmes au cours de cette phase.
Collecte d’informations sur vos dépôts
Vous pouvez collecter par programmation des informations sur les différents langages de programmation utilisés dans vos dépôts, et utiliser ces données pour activer l’code scanning sur tous les dépôts qui utilisent le même langage, à l’aide de l’API GraphQL de GitHub Enterprise Server.
Remarque : Pour collecter ces données sans exécuter manuellement les requêtes GraphQL décrites dans cet article, vous pouvez utiliser notre outil disponible publiquement. Pour plus d’informations, consultez le dépôt sur l’outil ghas-enablement.
Si vous souhaitez collecter des informations à partir de dépôts appartenant à plusieurs organisations de votre entreprise, vous pouvez utiliser la requête ci-dessous pour obtenir les noms de vos organisations, puis les alimenter dans la requête de dépôt. Remplacez OCTO-ENTERPRISE par le nom de votre entreprise.
query {
enterprise(slug: "OCTO-ENTERPRISE") {
organizations(first: 100) {
totalCount
nodes {
name
}
pageInfo {
endCursor
hasNextPage
}
}
}
}
Vous pouvez identifier quels dépôts utilisent quels langages en regroupant les dépôts par langage au niveau de l’organisation. Vous pouvez modifier l’exemple de requête GraphQL ci-dessous, en remplaçant OCTO-ORG par le nom de l’organisation.
query {
organization(login: "OCTO-ORG") {
repositories(first: 100) {
totalCount
nodes {
nameWithOwner
languages(first: 100) {
totalCount
nodes {
name
}
}
}
pageInfo {
endCursor
hasNextPage
}
}
}
}
Pour plus d’informations sur l’exécution de requêtes GraphQL, consultez « Formation d’appels avec GraphQL ».
Ensuite, convertissez les données de la requête GraphQL en un format lisible, tel qu’une table.
Langage | Nombre de dépôts | Noms des dépôts |
---|---|---|
JavaScript (TypeScript) | 4212 | org/repo org/repo |
Python | 2012 | org/repo org/repo |
Go | 983 | org/repo org/repo |
Java | 412 | org/repo org/repo |
Swift | 111 | org/repo org/repo |
Kotlin | 82 | org/repo org/repo |
C | 12 | org/repo org/repo |
Vous pouvez filtrer les langages qui ne sont actuellement pas pris en charge par GitHub Advanced Security afin de les exclure de ce tableau.
Si vous avez des dépôts avec plusieurs langages, vous pouvez mettre en forme les résultats GraphQL comme indiqué dans le tableau ci-dessous. Filtrez les langages qui ne sont pas pris en charge, mais conservez tous les dépôts avec au moins un langage pris en charge. Vous pouvez activer l’code scanning sur ces dépôts, et tous les langages pris en charge seront analysés.
Langue(s) | Nombre de dépôts | Noms des dépôts |
---|---|---|
JavaScript/Python/Go | 16 | org/repo org/repo |
Rust/TypeScript/Python | 12 | org/repo org/repo |
Savoir quels dépôts utilisent quels langages vous aidera à identifier les dépôts candidats pour les programmes pilotes lors de la phase 3, et vous préparera à activer l’code scanning dans tous les dépôts, un langage à la fois, lors de la phase 5.
Activation de l’code scanning pour votre appliance
Avant de pouvoir poursuivre les programmes pilotes et déployer l’code scanning dans votre entreprise, vous devez d’abord activer l’code scanning pour votre appliance. Pour plus d’informations, consultez « Configuration de l’analyse du code pour votre appliance ».
Préparation de l’activation de l’secret scanning
Remarque : Quand l’secret scanning détecte un secret dans les dépôts appartenant à des organisations qui utilisent GitHub Enterprise Cloud et qui disposent d’une licence pour GitHub Advanced Security, GitHub alerte tous les utilisateurs ayant accès aux alertes de sécurité du dépôt.
Si un projet communique avec un service externe, il se peut qu’il utilise un jeton ou une clé privée pour l’authentification. Si vous archivez un secret dans un dépôt, toute personne disposant d’un accès en lecture au dépôt peut l’utiliser pour accéder au service externe avec vos privilèges. L’Secret scanning analysera l’intégralité de votre historique Git sur toutes les branches présentes dans vos dépôts GitHub pour les secrets, et vous avertira ou bloquera la poussée contenant le secret. Pour plus d’informations, consultez « À propos de l’analyse des secrets ».
Considérations lors de l’activation de l’secret scanning
La fonctionnalité d’secret scanning de GitHub Enterprise Server est légèrement différente de l’code scanning car elle ne nécessite aucune configuration spécifique par langage de programmation ou par dépôt, et moins de configuration globale pour commencer. Cela signifie que l’activation de l’secret scanning au niveau de l’organisation peut être simple, mais le fait de cliquer sur Activer tout au niveau de l’organisation et de cocher l’option Activer automatiquement l’secret scanning pour chaque nouveau dépôt a des effets en aval que vous devez connaître :
Consommation de licence
L’activation de l’secret scanning pour tous les dépôts consomme toutes vos licences, même si personne n’utilise l’analyse du code. Ce ne pose pas de souci, sauf si vous envisagez d’augmenter le nombre de développeurs actifs dans votre organisation. Si le nombre de développeurs actifs est susceptible d’augmenter au cours des prochains mois, vous risquez de dépasser votre limite de licence et de ne pas pouvoir utiliser GitHub Advanced Security sur les dépôts nouvellement créés.
Volume initial élevé de secrets détectés
Si vous activez l’secret scanning sur une grande organisation, préparez-vous à voir un grand nombre de secrets trouvés. Parfois, cela provoque un choc pour les organisations et l’alarme est déclenchée. Si vous souhaitez activer l’secret scanning sur tous les dépôts à la fois, planifiez la façon dont vous répondrez aux alertes multiples au sein de l’organisation.
L’Secret scanning peut être activée pour des dépôts individuels. Pour plus d’informations, consultez « Configuration de l’analyse des secrets pour vos dépôts ». L’Secret scanning peut également être activée pour tous les dépôts de votre organisation, comme décrit ci-dessus. Pour plus d’informations sur l’activation pour tous les dépôts, consultez « Gestion des paramètres de sécurité et d’analyse pour votre organisation ».
Modèles personnalisés pour l’secret scanning
L’Secret scanning détecte un grand nombre de modèles par défaut, mais peut également être configurée pour détecter des modèles personnalisés, tels que les formats de secrets propres à votre infrastructure ou utilisés par les intégrateurs, que l’secret scanning de GitHub Enterprise Server ne détecte pas actuellement. Pour plus d’informations sur les secrets pris en charge pour les modèles de partenaire, consultez « Modèles d’analyse des secrets ».
Lorsque vous auditez vos dépôts et discutez avec les équipes de sécurité et de développement, créez une liste des types de secrets que vous utiliserez ultérieurement pour configurer des modèles personnalisés pour l’secret scanning. Pour plus d’informations, consultez « Définition de modèles personnalisés pour l’analyse des secrets ».
Pour l’article suivant de cette série, consultez « Phase 3 : Programmes pilotes ».