Configurer l’intégration native de GitHub Advanced Security avec Microsoft Defender for Cloud

Ce guide fournit des étapes de configuration et d’autres actions pour vous aider à intégrer GitHub Advanced Security (GHAS) et Microsoft Defender for Cloud avec un cas d’usage qui vous aide à valider la fin de l’intégration. Cette intégration permet d’optimiser la sécurité des applications natives cloud de Microsoft en mettant en corrélation les risques d’exécution et le contexte avec le code d’origine pour accélérer la correction basée sur l’IA.

En suivant ce guide, vous devez :

  • Configurez votre dépôt GitHub pour la couverture de Defender pour le Cloud.
  • Créez un facteur de risque d’exécution.
  • Testez les cas d’usage réels dans Defender pour Cloud.
  • Lier du code aux ressources d’exécution.
  • Démarrez une campagne de sécurité sur GitHub. Cette campagne utilise le contexte d’exécution pour hiérarchiser les alertes de sécurité GHAS.
  • Créez des issues GitHub à partir de Defender for Cloud pour démarrer la remédiation.
  • Fermez la boucle entre les équipes d’ingénierie et de sécurité.

Prerequisites

Aspect Détails
Exigences environnementales - Compte GitHub avec un connecteur créé dans Defender pour le Cloud
- licence GitHub Advanced Security (GHAS) sur les référentiels connectés
- Defender plan DCSPM (Cloud Security Posture Management) activé sur l’abonnement
- Microsoft Security Copilot (facultatif pour la correction automatisée basée sur l’IA)
Rôles et autorisations - Autorisations d’administrateur de sécurité
- Administrateur de sécurité sur l’abonnement Azure (pour afficher les résultats dans Defender pour cloud)
- Propriétaire de l'organisation GitHub (pour connecter des dépôts et configurer des campagnes de sécurité)
Environnements cloud - Disponible uniquement dans les clouds commerciaux (non dans Azure Government, Azure gérés par 21Vianet ou d’autres clouds souverains)

Préparer votre environnement

Étape 1 : Configurer le référentiel GitHub et exécuter le workflow

Pour tester l’intégration, utilisez vos propres référentiels ou un projet de bac à sable example qui a un dépôt de test GitHub avec tout le contenu pour générer une image conteneur vulnérable.

  1. Connectez-vous au portail Azure.

  2. Accédez à Microsoft Defender for Cloud>DevOps security.

  3. Entrez le nom de votre dépôt de code dans la barre de recherche (exemple : zava-webshop).

  4. Vérifiez qu’elle appartient vraiment à l’organisation que vous surveillez (exemple : zava-corporation org).

  5. Vérifiez s’il existe des résultats pour le dépôt.

  6. Vérifiez que le statut de sécurité avancée est Activé, indiquant que vous avez activé GitHub Advanced Security sur le dépôt supervisé, votre dépôt intégré.

  7. Si votre dépôt est introuvable, reportez-vous à la documentation Microsoft Defender pour Cloud pour le dépannage et l'intégration du connecteur GitHub.

  8. Vérifiez que l’analyse sans agent est activée pour votre connecteur GitHub.

    Capture d'écran de la configuration du plan dans CSPM Defender avec l'analyse du code sans agent activée et toutes les options du scanner activées.

Étape 2 : Vérifier que votre environnement est prêt

La validation confirme que votre environnement est correctement configuré pour exposer le code pour exécuter des recommandations et générer des résultats actionnables. Au cours de cette étape, Defender vérifie que :

Code complet pour la visibilité du runtime

  • Microsoft Defender for Cloud surveille en permanence les référentiels de code source pour les vulnérabilités de sécurité.
  • Les artefacts de build, tels que les images de conteneur, sont examinés dans les registres de conteneurs avant le déploiement.
  • Les charges de travail d’exécution déployées sur des clusters Kubernetes sont surveillées pour détecter les risques de sécurité.
  • Defender for Cloud met en corrélation et trace chaque artefact à partir du code, via la génération et le déploiement, jusqu’au runtime et au retour.

Note

L’application des étapes précédentes peut prendre jusqu’à 24 heures pour afficher les résultats suivants.

Testez que GitHub analyse sans agent récupère le référentiel.

Accédez à Microsoft Defender for Cloud>Cloud Security Explorer et effectuez la requête. Les requêtes de validation testent si Defender peut identifier les artefacts générés par vos pipelines et charges de travail. Si les requêtes retournent des résultats, cela indique que l’analyse et la corrélation fonctionnent comme prévu.

Capture d'écran de l'Explorateur de sécurité cloud de Defender for Cloud montrant une requête pour les déclenchements de GitHub vers des images de conteneur.

Note

Si aucun résultat n’est retourné, il peut indiquer que les artefacts ne sont pas encore générés, que l’analyse n’est pas configurée ou que les autorisations sont manquantes. Pour plus d’informations, consultez rôles d’utilisateur et autorisations .

  1. Vérifiez que Defender pour Cloud (dans Azure Container Registry) a analysé l’image conteneur et l’a utilisée pour créer un conteneur.

  2. Dans votre requête, ajoutez les conditions de votre déploiement spécifique.

    Capture d’écran de l’Explorateur de sécurité cloud de Defender for Cloud montrant une requête pour les poussées du dépôt GitHub vers les images de conteneur avec des vulnérabilités.

  3. Vérifiez que le conteneur est en cours d’exécution et que Defender pour Cloud a analysé le cluster AKS.

    Capture d’écran de Cloud Security Explorer de Defender for Cloud qui affiche une requête pour les pushs GitHub vers des images de conteneur avec des vulnérabilités.

  4. Vérifiez que les facteurs de risque sont configurés correctement côté Defender pour cloud. Recherchez le nom de votre conteneur dans la page d’inventaire Defender for Cloud, et vous devez le voir marqué comme critique.

Note

Cette étape est requise uniquement si les facteurs de risque ne sont pas déjà configurés dans votre environnement. Si vous utilisez déjà des facteurs de risque, vous pouvez vérifier leur configuration sous Paramètres > Criticité des ressources.

La validation réussie garantit que les étapes suivantes, telles que les recommandations, les campagnes et GitHub génération de problèmes, produisent des résultats significatifs.

Note

Une fois que vous avez classé votre ressource comme critique, il peut prendre jusqu’à 12 heures pour que Defender pour Cloud envoie les données à GitHub. En savoir plus.

Étape 3 : Créer une campagne de GitHub

Pour créer une campagne d’analyse, vous devez travailler au niveau de l’organisation GitHub. Cette expérience n’est pas disponible au niveau du référentiel individuel.

  1. Dans GitHub, accédez à l’organisation GitHub que vous avez utilisée pour le test d’installation.

  2. SélectionnezCampagnes>>> d’analyse de code.

  3. Cette campagne permet de hiérarchiser les résultats de GHAS qui sont associés au code réellement déployé et qui s'exécute.

  4. Sélectionnez filtres Risques d’exécution pour la campagne.

    Capture d'écran de la création d'une campagne d'analyse de code sur GitHub avec une barre de filtres, un bouton 'Filtrer' et une info-bulle sur le filtrage par métadonnées d'artefacts.

    Screenshot de la boîte de dialogue des filtres avancés lors de la création de campagne GitHub avec le Filtre de risque d'exécution et le menu des facteurs de risque sélectionnables ouvert.

  5. Sélectionnez Enregistrer>Publier en tant que campagne. Entrez les informations requises, puis publiez la campagne.

  6. Suivre l’avancement des campagnes. Screenshot de la page de campagne GitHub affichant l’état en retard, la barre de progression des campagnes, la liste des alertes critiques et les options de filtre.

Étape 4 : Mobilisation des recommandations

Utilisez les recommandations d'évaluation des vulnérabilités pour la fonctionnalité du code à l'exécution et la corrélation des CVE identifiés avec les alertes de sécurité de Dependabot afin de comprendre l'état des problèmes de sécurité. Vous pouvez ensuite affecter la recommandation de résolution à l’équipe d’ingénierie appropriée en fonction du mappage de code à exécution.

  1. Dans le portail Defender pour cloud, accédez à l’onglet Recommandations .

  2. Recherchez le nom du conteneur que vous avez créé à partir de votre dépôt de code.

  3. Ouvrez l’une des recommandations relatives aux logiciels de mise à jour ; le nom de la recommandation commence par Update

  4. Sélectionnez l'onglet CVEs associés. Les alertes de sécurité apparaissent dans le cadre du flux d'évaluation des recommandations. Ces alertes fournissent des indications sur les résultats de GitHub Advanced Security déjà connus des ingénieurs. Notez que certains ID CVE ont un lien Afficher sur GitHub dans la colonne des alertes GitHub associées.

    Capture d’écran de l’onglet Résultats dans Defender pour Cloud montrant les alertes CVE-2024-21409, le statut de correction, les scores CVSS et la fenêtre contextuelle des détails des alertes GitHub.

Sélectionnez le lien pour ouvrir l’alerte de sécurité GHAS appropriée. (Pour afficher le contenu de l’alerte GHAS dans GitHub, vous devez disposer des autorisations d’accès au référentiel de GitHub approprié. Si vous n’avez pas d’autorisations d’accès, vous pouvez toujours copier le lien pour une utilisation ultérieure ou contacter votre administrateur GitHub.)

S’il existe un enrichissement d’alerte, une alerte Dependabot correspondante est déjà connue pour l’ingénierie. Si l’état est Actif, personne ne l’a encore résolu et le problème doit être hiérarchisé pour un correctif.

S'il n'y a pas d'enrichissement des résultats, cela indique un risque d'exécution qui était jusqu'alors inconnu pour l'équipe d'ingénierie, et qui doit être priorisé pour une correction.

Étapes suivantes Comment savoir qui est l’équipe appropriée pour le correctif ? Comment savoir quel contexte peut aider l'équipe d'ingénierie à résoudre le problème ?

Créer un problème de GitHub

Pour relier les équipes de sécurité et d’ingénierie, vous pouvez créer un ticket GitHub qui priorise les problèmes de sécurité sur lesquels l’équipe d’ingénierie doit concentrer ses efforts. Cette hiérarchisation peut inclure la transmission de résultats que GHAS n’a pas récupéré, mais que Defender pour Cloud a détecté pour les ID CVE qui ne font pas partie des dépendances directes. Ces résultats peuvent inclure des vulnérabilités dans l’image de base, le système d’exploitation ou les logiciels tels que NGINX.

Le problème de GitHub est généré automatiquement sur le référentiel de code d’origine, avec tous les ID CVE trouvés dans l’étendue de la recommandation, y compris d’autres contextes liés au runtime et au conteneur SDLC qui peuvent faciliter le correctif et le test.

Dans l’affichage des recommandations, vous pouvez générer explicitement un problème de GitHub pour suivre le travail de correction.

  1. Accédez à l’onglet Remediation Insights et affichez le diagramme code-vers-exécution. Le diagramme mappe votre conteneur en cours d’exécution à l’image conteneur dans le référentiel de code et au référentiel de code d’origine dans GitHub.

    Capture d’écran d’Insights de correction montrant le diagramme code-à-runtime avec les niveaux de risque et le menu Action ouvert dans la zone Runtime.

    1. Sous l'onglet Insights de Remédiation, examinez la boîte Runtime affectée.

    2. Validate si un problème de GitHub existe déjà. Si un problème de GitHub existe déjà, une icône de GitHub s’affiche dans la zone. Pointez sur l’icône pour afficher les détails du problème.

    3. Si aucun problème n’existe et que vous disposez des autorisations requises, vous pouvez générer un nouveau problème de GitHub. Sélectionnez Effectuer une action.

    4. Sélectionnez l’option Générer GitHub problème dans la fenêtre contextuelle.

    5. Si le problème a été créé avec succès, une notification contextuelle s’affiche avec un lien vers le problème. Le problème est créé dans le référentiel de code d’origine.

      Capture d'écran de la liste des problèmes de GitHub qui montre les problèmes ouverts pour les dépendances avec des étiquettes telles que Defender for Cloud et sécurité.

    Note

    Si l'option Générer un problème GitHub n'est pas disponible, les autorisations requises pour GitHub ou le référentiel pourraient être manquantes. Contactez votre administrateur de GitHub ou de référentiel pour demander l’accès.

    Capture d'écran de la liste des problèmes de GitHub montrant les problèmes ouverts pour les dépendances avec des étiquettes telles que Defender for Cloud et sécurité.

    1. Suivi de la propriété et des mises à jour de l'état : les modifications apportées à l’état d’un problème ou à l’affectation effectuées dans GitHub sont reflétées dans Microsoft Defender for Cloud, vous permettant de suivre la progression de la propriété et des actions correctives à partir de la vue Recommandations.

      Capture d'écran de la page Recommandations de Microsoft Defender for Cloud, présentant des problèmes à haut risque avec une fenêtre contextuelle des détails de l'incident GitHub.

Effectuer des correctifs agentiques

Côté GitHub, si vous disposez d’une licence GitHub Copilot, vous pouvez résoudre le problème à l’aide de l’agent de codage GitHub :

  1. Affectez un agent de codage GitHub au problème.
  2. Passez en revue le correctif généré.
  3. Si le correctif semble raisonnable, appliquez-le.
  4. Observez que Defender pour Cloud met à jour l’état du problème sur Fermé.