Cliquez pour évaluer cet article !
0 avis

Dans cet article, nous verrons comment exécuter des requêtes KQL sur Microsoft Defender pour Endpoint à l’aide d’Azure Automation, PowerShell et Graph API.

La solution

Nous procéderons comme suit :

  1. Créer un compte Azure automation
  2. Configurer une identité managée
  3. Attribuer des permissions à l’identité managée
  4. S’authentifier avec l’identité managée
  5. Exécuter une requête KQL avec PowerShell

Obtenir les scripts

Cliquez sur l’image GitHub ci-dessous pour obtenir les scripts.


Vous y trouverez :

  • Assign_permissions.ps1 : script pour ajouter des permissions à l’identité managée
  • Runbook.ps1 : le Runbook Azure Automation

Création d’un compte d’automation

Objectif : ici, nous allons créer le compte Azure automation qui sera utilisé pour exécuter le script et envoyer des données.

  1. Allez dans Azure
  2. Allez dans Automation account
  3. Cliquez sur Create
  4. Saisissez un nom
  5. Choisissez une souscription, un groupe de ressources et une région
  6. Cliquez sur Create

Configuration de l’identité managée

Objectif : l’identité managée est utilisée pour s’authentifier auprès de votre tenant sans fournir de credentials.
Lors de la configuration, une nouvelle application d’entreprise Azure sera créée. Celle-ci sera utilisée pour s’authentifier et effectuer des appels API.
Procédez comme suit :

  1. Accédez à votre compte d’automation
  2. Allez dans Identity
  3. Cliquez sur System-assigned
  4. Sélectionnez On
  5. Cliquez sur Save
  6. Confirmez avec Yes
  7. Une application d’entreprise portant le même nom que le compte d’automation sera créée

Ajout de permissions

Objectif : pour exécuter une requête KQL via notre compte d’automation, nous devons ajouter la permission AdvancedQuery.Read.All.
Procédez comme suit :

  1. Modifiez le script Assign_permissions_MDE.ps1
  2. Renseignez les variables $TenantID et $DisplayNameOfMSI
  3. Ouvrez PowerShell avec des droits administrateur globaux
  4. Exécutez le script Assign_permissions.ps1

Modification du script

Objectif : ici, nous adapterons le script Runbook à nos besoins.
Procédez comme suit :

  1. Modifiez le script Runbook.ps1
  2. Remplacez la variable $My_Advanced_Query par votre requête KQL

Création du Runbook

Objectif : créer le script qui exécute la requête KQL à distance.

  1. Cliquez sur Add a runbook
  2. Saisissez un nom
  3. Sélectionnez PowerShell
  4. Cliquez sur Create
  5. Cliquez sur Modify dans le runbook
  6. Copiez le contenu du script Runbook.ps1
  7. Cliquez sur Save
  8. Publiez le runbook
  9. Exécutez-le
  10. Les résultats de la requête KQL seront affichés

Exportation des résultats vers un fichier CSV

Objectif : exporter les résultats de la requête dans un fichier CSV, puis l’envoyer à SharePoint.

Ajout de modules

  1. Accédez à votre compte d’automation
  2. Cliquez sur Modules gallery
  3. Importez les modules suivants :
    • Microsoft.Graph.Users.Actions
    • Microsoft.Graph.Authentication

Ajout de permission pour envoyer des mails

  1. Utilisez le script Assign_permissions_Mail.ps1
  2. Ajoutez les permissions nécessaires, notamment Mail.Send
  3. Renseignez les variables suivantes : $TenantID, $DisplayNameOfMSI

Configuration du script

Renseignez les variables suivantes si vous souhaitez envoyer des informations par mail :

$Notif_Title, $Notif_Message, $Send_Mail, $Mail_From, $Mail_To

Envoi du CSV par mail

Pour envoyer les résultats de la requête en CSV à SharePoint :

Modifiez les variables $appId, $appSecret, $tenantID dans le script Runbook.ps1.

Notez cet article

Vous avez aimé cet article ?

Rendez-le plus visible auprès des internautes en lui mettant une bonne note.

Cliquez pour évaluer cet article !
0 avis

Articles pouvant vous intéresser