Connecteur GitHub (à l’aide de webhooks) (avec Azure Functions) pour Microsoft Sentinel

Le connecteur de données de webhook GitHub offre la possibilité d’ingérer des événements GitHub auxquels vous êtes abonnés dans Microsoft Sentinel à l’aide d’événements webhook GitHub. Le connecteur permet d’obtenir les événements dans Sentinel afin d’examiner les risques de sécurité potentiels, d’analyser la collaboration de votre équipe, de diagnostiquer les problèmes de configuration, etc.

Remarque : si vous prévoyez d’ingérer les journaux d’audit GitHub, veuillez vous reporter à Connecteur de journaux d’audit GitHub Enterprise à partir de la galerie « Connecteurs de données ».

Attributs du connecteur

Attribut du connecteur Description
Code d’application de fonction Azure https://aka.ms/sentinel-GitHubWebhookAPI-functionapp
Table(s) Log Analytics githubscanaudit_CL
Prise en charge des règles de collecte de données Non prise en charge pour le moment
Pris en charge par Microsoft Corporation

Exemples de requête

Événements GitHub - Toutes les activités.

githubscanaudit_CL

| sort by TimeGenerated desc

Prérequis

Pour intégrer à GitHub (à l’aide de webhooks) (avec Azure Functions), vérifiez que vous disposez des éléments suivants :

Instructions d’installation du fournisseur

Notes

Ce connecteur a été créé sur une fonction Azure basée sur un déclencheur HTTP. Il fournit également un point de terminaison auquel GitHub sera connecté via sa fonctionnalité de webhook, et publie les événements auxquels vous êtes abonné dans Microsoft Sentinel. Cela risque de générer des coûts supplémentaires d’ingestion des données. Si vous souhaitez en savoir plus, veuillez consulter la page des tarifs d’Azure Functions.

(Étape facultative) Stockez en toute sécurité les clés ou les jetons d’autorisation de l’espace de travail et de l’API dans Azure Key Vault. Azure Key Vault fournit un mécanisme sécurisé pour stocker et récupérer des valeurs de clés. Suivez ces instructions pour utiliser Azure Key Vault avec une application Azure Function.

Choisissez UNE des deux options de déploiement suivantes pour déployer le connecteur et la fonction Azure associée

IMPORTANT : avant de déployer le connecteur GitHub Webhook, assurez-vous d’avoir l’ID et la clé primaire de l’espace de travail (vous pouvez les copier à partir de ce qui suit).

Option 1 : modèle Azure Resource Manager (ARM)

Utilisez cette méthode pour le déploiement automatisé du connecteur de données GitHub à l’aide d’un modèle ARM.

  1. Cliquez sur le bouton Déployer sur Azure ci-dessous.

    Déployer sur Azure

  2. Sélectionnez votre abonnement, votre groupe de ressources, puis votre emplacement préférés.

REMARQUE : au sein du même groupe de ressources, vous ne pouvez pas mélanger et déployer des applications Windows et Linux dans la même région. 3. Cochez la case J’accepte les conditions générales mentionnées ci-dessus. 5. Cliquez sur Acheter pour effectuer le déploiement.

Option 2 : déploiement manuel d’Azure Functions

Utilisez les instructions détaillées suivantes pour déployer manuellement le connecteur de données webhook GitHub avec Azure Functions (déploiement via Visual Studio Code).

1. Déployer une application de fonction

REMARQUE : vous devrez préparer le code VS pour le développement d’une fonction Azure.

  1. Téléchargez le fichier Application Azure Functions. Extrayez l’archive sur votre ordinateur de développement local.

  2. Démarrez VS Code. Choisissez Fichier dans le menu principal, puis sélectionnez Ouvrir le dossier.

  3. Sélectionnez le dossier de niveau supérieur depuis les fichiers extraits.

  4. Choisissez l’icône Azure dans la barre Activité, puis dans la zone Azure : Fonctions, choisissez le bouton Déployer sur une application de fonction. Si vous n’êtes pas encore connecté, choisissez l’icône Azure dans la barre d’activité, puis dans la zone Azure : Fonctions, choisissez Se connecter à Azure. Si vous êtes déjà connecté, passez à l’étape suivante.

  5. Quand vous y êtes invité, indiquez les informations suivantes :

    a. Sélectionner le dossier : choisissez un dossier dans votre espace de travail ou accédez à un dossier qui contient votre application de fonction.

    b. Sélectionnez l’abonnement : choisissez l’abonnement à utiliser.

    c. Sélectionnez Créer une application de fonction dans Azure (ne choisissez pas l’option Avancé).

    d. Entrer un nom global unique pour l’application de fonction : tapez un nom valide dans un chemin d’URL. Le système vérifie que le nom que vous tapez est unique dans Azure Functions. (par exemple, GitHubXXXXX).

    e. Sélectionnez un runtime : choisissez Python 3.8.

    f. Sélectionnez un emplacement pour les nouvelles ressources. Pour de meilleures performances et des coûts plus réduits, choisissez la même région que celle où se trouve Microsoft Sentinel.

  6. Le déploiement commence. Une notification s’affiche après que votre application de fonction a été créée et que le package de déploiement a été appliqué.

  7. Accédez au Portail Azure pour la configuration de l’application de fonction.

2. Configurer l’application de fonction

  1. Dans l’application de fonction, sélectionnez le nom de l’application de fonction, puis sélectionnez Configuration.

  2. Sous l’onglet Paramètres d’application, sélectionnez ** Nouveau paramètre d’application**.

  3. Ajoutez chacun des paramètres d’application suivants individuellement, avec leurs valeurs de chaîne respectives (en respectant la casse) :

    • WorkspaceID
    • WorkspaceKey
    • logAnalyticsUri (facultatif) - Utilisez logAnalyticsUri pour substituer le point de terminaison de l’API Log Analytics du cloud dédié. Par exemple, pour le cloud public, laissez la valeur vide. Pour l’environnement cloud Azure GovUS, spécifiez la valeur au format suivant : https://<CustomerId>.ods.opinsights.azure.us.
    • GithubWebhookSecret (facultatif) - Pour activer l’authentification webhook, générez une valeur secrète et stockez-la dans ce paramètre.
  4. Une fois tous les paramètres d’application entrés, cliquez sur Enregistrer.

Étapes de post-déploiement

ÉTAPE 1 : Obtenir l’URL de la fonction Azure

  1. Accédez à la page Vue d’ensemble de la fonction Azure et cliquez sur « Fonctions » dans le panneau de gauche.
  2. Cliquez sur la fonction appelée « GithubwebhookConnector ».
  3. Accédez à « GetFunctionurl » et copiez l’URL de la fonction.

ÉTAPE 2 : Configurer le webhook sur GitHub Organization

  1. Accédez à GitHub et ouvrez votre compte, puis cliquez sur « Vos organisations ».
  2. Cliquez sur Paramètres.
  3. Cliquez sur « Webhooks » et entrez l’URL de l’application de fonction qui a été copiée à l’étape 1 ci-dessus sous la zone de texte URL de charge utile.
  4. Choisissez le type de contenu « application/json ».
  5. (Facultatif) Pour activer l’authentification webhook, ajoutez à la valeur de champ « Secret » que vous avez enregistrée dans GithubWebhookSecret depuis les paramètres de l’application de fonction.
  6. Abonnez-vous aux événements et cliquez sur « Ajouter un webhook »

Nous en avons maintenant terminé avec la configuration du Webhook Github. Une fois les événements GitHub déclenchés et après le délai de 20 à 30 minutes (nécessaire pour que LogAnalytics fasse tourner les ressources pour la première fois), vous devriez être en mesure de voir tous les événements transactionnels de GitHub dans la table d’espace de travail LogAnalytics appelée « githubscanaudit_CL ».

Pour plus de détails, cliquez ici.

Étapes suivantes

Pour plus d’informations, accédez à la solution associée dans la Place de marché Azure.