From 83abda47509ca3ecdfd0aeeb49aa330acc9eacb2 Mon Sep 17 00:00:00 2001 From: "Peng Chen (BEYONDSOFT CONSULTING INC)" Date: Mon, 15 Apr 2024 19:40:46 -0700 Subject: [PATCH] Copy Files From Source Repo (2024-04-15 19:40) --- .github/CONTRIBUTING.md | 21 ++++ .github/ISSUE_TEMPLATE.md | 12 ++ .github/PULL_REQUEST_TEMPLATE.md | 10 ++ .../Demos/DEMO_00_course_introduction.md | 38 ++++++ ..._01_create_microsoft_sentinel_workspace.md | 79 +++++++++++++ ...microsoft_sentinel_content_hub_solution.md | 109 ++++++++++++++++++ ...validate-microsoft_sentinel_deploymnent.md | 82 +++++++++++++ ...LAB_04_perform_analytic_rule_validation.md | 53 +++++++++ .../Media/apl-5001-lab-diagrams-01.png | Bin 0 -> 24337 bytes .../Media/apl-5001-lab-diagrams-lab02.png | Bin 0 -> 50147 bytes .../Media/apl-5001-lab-diagrams-lab03.png | Bin 0 -> 34923 bytes .../Media/apl-5001-lab-diagrams-lab04.png | Bin 0 -> 19627 bytes LICENSE | 21 ++++ README.md | 31 ++++- _build.yml | 36 ++++++ _config.yml | 17 +++ index.md | 25 ++++ 17 files changed, 532 insertions(+), 2 deletions(-) create mode 100644 .github/CONTRIBUTING.md create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 Instructions/Demos/DEMO_00_course_introduction.md create mode 100644 Instructions/Labs/LAB_01_create_microsoft_sentinel_workspace.md create mode 100644 Instructions/Labs/LAB_02_deploy_microsoft_sentinel_content_hub_solution.md create mode 100644 Instructions/Labs/LAB_03_validate-microsoft_sentinel_deploymnent.md create mode 100644 Instructions/Labs/LAB_04_perform_analytic_rule_validation.md create mode 100644 Instructions/Media/apl-5001-lab-diagrams-01.png create mode 100644 Instructions/Media/apl-5001-lab-diagrams-lab02.png create mode 100644 Instructions/Media/apl-5001-lab-diagrams-lab03.png create mode 100644 Instructions/Media/apl-5001-lab-diagrams-lab04.png create mode 100644 LICENSE create mode 100644 _build.yml create mode 100644 _config.yml create mode 100644 index.md diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 0000000..2589d21 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,21 @@ +# Contributing to Microsoft Learning Repositories + +MCT contributions are a key part of keeping the lab and demo content current as the Azure platform changes. We want to make it as easy as possible for you to contribute changes to the lab files. Here are a few guidelines to keep in mind as you contribute changes. + +## GitHub Use & Purpose + +Microsoft Learning is using GitHub to publish the lab steps and lab scripts for courses that cover cloud services like Azure. Using GitHub allows the course’s authors and MCTs to keep the lab content current with Azure platform changes. Using GitHub allows the MCTs to provide feedback and suggestions for lab changes, and then the course authors can update lab steps and scripts quickly and relatively easily. + +> When you prepare to teach these courses, you should ensure that you are using the latest lab steps and scripts by downloading the appropriate files from GitHub. GitHub should not be used to discuss technical content in the course, or how to prep. It should only be used to address changes in the labs. + +It is strongly recommended that MCTs and Partners access these materials and in turn, provide them separately to students. Pointing students directly to GitHub to access Lab steps as part of an ongoing class will require them to access yet another UI as part of the course, contributing to a confusing experience for the student. An explanation to the student regarding why they are receiving separate Lab instructions can highlight the nature of an always-changing cloud-based interface and platform. Microsoft Learning support for accessing files on GitHub and support for navigation of the GitHub site is limited to MCTs teaching this course only. + +> As an alternative to pointing students directly to the GitHub repository, you can point students to the GitHub Pages website to view the lab instructions. The URL for the GitHub Pages website can be found at the top of the repository. + +To address general comments about the course and demos, or how to prepare for a course delivery, please use the existing MCT forums. + +## Additional Resources + +A user guide has been provided for MCTs who are new to GitHub. It provides steps for connecting to GitHub, downloading and printing course materials, updating the scripts that students use in labs, and explaining how you can help ensure that this course’s content remains current. + + diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..4dd6247 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,12 @@ +# Module: 00 +## Lab/Demo: 00 +### Task: 00 +#### Step: 00 + +Description of issue + +Repro steps: + +1. +1. +1. \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..a593e56 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,10 @@ +# Module: 00 +## Lab/Demo: 00 + +Fixes # . + +Changes proposed in this pull request: + +- +- +- \ No newline at end of file diff --git a/Instructions/Demos/DEMO_00_course_introduction.md b/Instructions/Demos/DEMO_00_course_introduction.md new file mode 100644 index 0000000..5d1e811 --- /dev/null +++ b/Instructions/Demos/DEMO_00_course_introduction.md @@ -0,0 +1,38 @@ +--- +demo: + title: "Démonstration\_00\_: Matériel pour les participants et environnement de labo (ajuster)" + module: Guided Project - Configure SIEM Security Operations with Microsoft Sentinel +--- +## Démonstration : Matériel pour les participants et environnement de labo (facultatif) + +Utilisez cette démonstration pour montrer aux participants comment accéder à l'environnement du labo et au matériel pédagogique. Vous pouvez le faire au début de la classe ou avant la prochaine démonstration. + +## Présenter aux élèves l’environnement de labo (à adapter en fonction de l’hôte de votre labo) + +- Expliquez comment les élèves accèdent à l’environnement de labo. + +- Expliquez comment se connecter à l’hôte de la machine virtuelle. + +- Expliquez comment accéder au [portail Azure](https://portal.azure.com). Il est préférable d’ouvrir le Portail Azure dans l’environnement de labo plutôt que dans une fenêtre séparée. Demandez aux participants de lever la main pour savoir combien d'entre eux ont utilisé le portail. + +- Expliquez quelles ressources, le cas échéant, ont déjà été configurées pour les labos. + +- Passez en revue l'utilisation des instructions du labo. + +- Ajoutez d'autres sujets spécifiques à l'environnement d'hébergement de votre labo. + +## Montrez aux participants leur matériel de cours. + +- Accédez à la page [Microsoft Learn](https://learn.microsoft.com). + +- Expliquez que Microsoft Learn est une excellente ressource où ils peuvent trouver toute la documentation, les formations, les certifications et les évaluations Azure. + +- Sélectionnez **Parcours d’apprentissage**, puis recherchez le parcours d’apprentissage **Configurer les opérations de sécurité SIEM à l’aide de Microsoft Sentinel**. + +- Expliquez que le contenu du parcours d'apprentissage est spécifique à ce cours. Ils peuvent consulter d'autres contenus sur le stockage. + +- Expliquez que le contenu est du matériel de référence et il n’y a pas de mappage individuel avec les présentations en classe. + +- Indiquez que chacun de ces modules peut comporter des activités pratiques supplémentaires. Vous identifierez ces activités tout au long du cours. + +- Demandez aux participants de localiser le parcours d’apprentissage et de l’ajouter à leurs signets. diff --git a/Instructions/Labs/LAB_01_create_microsoft_sentinel_workspace.md b/Instructions/Labs/LAB_01_create_microsoft_sentinel_workspace.md new file mode 100644 index 0000000..5379cc1 --- /dev/null +++ b/Instructions/Labs/LAB_01_create_microsoft_sentinel_workspace.md @@ -0,0 +1,79 @@ +--- +lab: + title: "Exercice\_01\_: Déployer Microsoft Sentinel" + module: Guided Project - Create and configure a Microsoft Sentinel workspace +--- + +>**Remarque** : pour suivre ce labo, vous devez disposer d’un [abonnement Azure](https://azure.microsoft.com/en-us/free/?azure-portal=true) pour lequel vous disposez d’un accès administratif. + +## Recommandations générales + +- Lors de la création d’objets, utilisez les paramètres par défaut, à moins que des exigences ne requièrent des configurations différentes. +- Ne créez, ne supprimez ou ne modifiez des objets que pour répondre aux exigences énoncées. Des modifications inutiles de l’environnement peuvent avoir un effet négatif sur votre score final. +- S’il existe plusieurs approches pour atteindre un objectif, choisissez toujours celle qui nécessite le moins d’efforts administratifs. + +Nous évaluons actuellement le niveau de sécurité existant de notre environnement d’entreprise. Nous avons besoin de votre aide pour configurer une solution SIEM (Gestion des informations et des événements de sécurité) pour identifier les cyber-attaques futures et en cours. + +## Diagramme de l'architecture + +![Diagramme avec l’espace de travail Log Analytics.](../Media/apl-5001-lab-diagrams-01.png) + +## Tâches d'apprentissage + +Vous devez déployer un espace de travail Microsoft Sentinel. La solution doit remplir les conditions suivantes : + +- Veillez à ce que les données Sentinel soient stockées dans la région Azure USA Ouest. +- Assurez-vous que tous les journaux d’activité Sentinel sont conservés pendant 180 jours. +- Attribuez des rôles à Operator1 pour qu’il puisse gérer les incidents et exécuter les playbooks Sentinel. La solution doit respecter le principe du privilège minimum. + +## Instructions de l’exercice + +### Tâche 1 : Créer un espace de travail Log Analytics + +Créez un espace de travail Log Analytics, y compris l’option de région. En savoir plus sur l’[intégration Microsoft Sentinel](https://learn.microsoft.com/azure/sentinel/quickstart-onboard). + + 1. Dans le portail Azure, recherchez et sélectionnez `Microsoft Sentinel`. + 1. Sélectionnez **+ Créer**. + 1. Sélectionnez **Créer un espace de travail**. + 1. Sélectionnez `RG2` comme groupe de ressources. + 1. Saisissez un nom valide pour l’espace de travail Log Analytics. + 1. Sélectionnez `West US` comme la région de l’espace de travail. + 1. Sélectionnez **Vérifier + créer** pour valider le nouvel espace de travail. + 1. Sélectionnez **Créer** pour déployer l’espace de travail. + +### Tâche 2 : Déployer Microsoft Sentinel dans un espace de travail + +Déployez Microsoft Sentinel dans l’espace de travail. + + 1. Une fois le déploiement `workspace` terminé, sélectionnez **Actualiser** pour afficher le nouveau `workspace`. + 1. Sélectionnez l’élément `workspace` auquel vous souhaitez ajouter Sentinel (créé dans la tâche 1). + 1. Sélectionnez **Ajouter**. + +### Tâche 3 : Attribuer un rôle Microsoft Sentinel à un utilisateur + +Attribuer un rôle Microsoft Sentinel à une utilisation. En savoir plus sur les [rôles et autorisations pour travailler dans Microsoft Sentinel](https://learn.microsoft.com/azure/sentinel/roles). + + 1. Accédez au groupe de ressources RG2. + 1. Sélectionnez **Contrôle d’accès (IAM)** . + 1. Sélectionnez **Ajouter** et `Add role assignment`. + 1. Dans la barre de recherche, recherchez et sélectionnez le rôle `Microsoft Sentinel Contributor`. + 1. Cliquez sur **Suivant**. + 1. Sélectionnez l’option `User, group, or service principal`. + 1. Sélectionnez **+ Sélectionner des membres**. + 1. Recherchez le `Operator1` attribué dans vos instructions de labo `(operator1-XXXXXXXXX@LODSPRODMCA.onmicrosoft.com)`. + 1. Sélectionnez `user icon`. + 1. Cliquez sur **Sélectionner**. + 1. Sélectionnez « Vérifier + attribuer ». + 1. Sélectionnez « Vérifier + attribuer ». + +### Tâche 4 : Configurer la rétention des données + +Configurez la rétention des données [En savoir plus sur la rétention des données](https://learn.microsoft.com/azure/azure-monitor/logs/data-retention-archive). + + 1. Accédez à `Log Analytics workspace` créé à l’étape 5 de la tâche 1. + 1. Sélectionnez **Utilisation et estimation des coûts**. + 1. Sélectionnez **Rétention des données**. + 1. Modifiez la période de rétention en la portant à **180 jours**. + 1. Cliquez sur **OK**. + +>**Remarque** : pour des exercices supplémentaires, suivez le module [Créer et gérer des espaces de travail Microsoft Sentinel](https://learn.microsoft.com/training/modules/create-manage-azure-sentinel-workspaces/). diff --git a/Instructions/Labs/LAB_02_deploy_microsoft_sentinel_content_hub_solution.md b/Instructions/Labs/LAB_02_deploy_microsoft_sentinel_content_hub_solution.md new file mode 100644 index 0000000..b9599d6 --- /dev/null +++ b/Instructions/Labs/LAB_02_deploy_microsoft_sentinel_content_hub_solution.md @@ -0,0 +1,109 @@ +--- +lab: + title: "Exercice\_02\_: Ingérer des données d’événement Sécurité Windows" + module: Guided Project - Deploy Microsoft Sentinel Content Hub solutions and data connectors +--- + +>**Remarque** : ce labo s’appuie sur le Lab 01. Pour suivre ce labo, vous devez disposer d’un [abonnement Azure](https://azure.microsoft.com/free/?azure-portal=true). pour lequel vous disposez d’un accès administratif. + +## Recommandations générales + +- Lors de la création d’objets, utilisez les paramètres par défaut, à moins que des exigences ne requièrent des configurations différentes. +- Ne créez, ne supprimez ou ne modifiez des objets que pour répondre aux exigences énoncées. Des modifications inutiles de l’environnement peuvent avoir un effet négatif sur votre score final. +- S’il existe plusieurs approches pour atteindre un objectif, choisissez toujours celle qui nécessite le moins d’efforts administratifs. + +Nous devons configurer Microsoft Sentinel pour ingérer des données en utilisant les solutions Microsoft Sentinel. + +## Diagramme de l'architecture + +![Diagramme des connecteurs de données Content Hub](../Media/apl-5001-lab-diagrams-lab02.png) + +## Tâches d'apprentissage + +Vous devez déployer des solutions Content Hub dans l’espace de travail Microsoft Sentinel et répondre aux exigences suivantes : + +- Installez les solutions suivantes : + - Windows Security Events. + - Connecteur Azure Activity. + - Microsoft Defender pour le cloud. +- Configurez le connecteur de données pour Azure Activity afin d’appliquer toutes les ressources nouvelles et existantes dans l’abonnement. +- Configurez le connecteur de données de Microsoft Defender pour le cloud pour qu’il se connecte à l’abonnement Azure et assurez-vous que seule la synchronisation bidirectionnelle est activée. +- Activez une règle d’analyse basée sur le modèle Nombre suspect d’activités de création ou de déploiement de ressources. La règle doit être exécutée toutes les heures et ne doit consulter que les données de la dernière heure. +- Assurez-vous que le classeur Activité Azure est disponible dans Mes classeurs. + +## Instructions de l’exercice + +>**Remarque** : dans les tâches suivantes, pour accéder à `Microsoft Sentinel`, sélectionnez le fichier `workspace` que vous avez créé au Lab 01. + +### Tâche 1 : Déployer une solution Microsoft Sentinel Content Hub + +Déployez une solution Content Hub et configurez les connecteurs de données. En savoir plus sur les [solutions Content Hub](https://learn.microsoft.com/azure/sentinel/sentinel-solutions). + +1. Dans `Microsoft Sentinel`, accédez à la section de menu `Content management` et sélectionnez **Content Hub**. +1. Recherchez et sélectionnez **Windows Security Events**. +1. Sélectionnez le lien pour **afficher les détails** +1. Sélectionnez le plan Windows Security Events, puis **Créer**. +1. Sélectionnez le groupe de ressources `RG2` qui inclut l’espace de travail Microsoft Sentinel, puis sélectionnez le `Workspace`. +1. Sélectionnez **Suivant** dans l’onglet Connecteurs de données (la solution déploiera 2 connecteurs de données). +1. Sélectionnez **Suivant** dans l’onglet Classeurs (la solution installe les classeurs). +1. Sélectionnez **Suivant** dans l’onglet Analyses (la solution installe les règles d’analyse). +1. Sélectionnez **Suivant** dans l’onglet Requêtes de chasse (la solution installe des requêtes de chasse). +1. Sélectionner **Vérifier + créer** +1. Sélectionnez **Créer** + +1. Répétez ces étapes pour les solutions `Azure Activity` et les solutions `Microsoft Defender for Cloud`. + +### Tâche 2 : Configurer le connecteur de données pour Azure Activity + +Configurez le connecteur de données pour Azure Activity afin d’appliquer toutes les ressources nouvelles et existantes dans l’abonnement. En savoir plus sur les [connecteur de données Microsoft Sentinel](https://learn.microsoft.com/azure/sentinel/connect-data-sources). + + 1. Dans `Microsoft Sentinel`, accédez à la section de menu `Content management` et sélectionnez **Content Hub**. + 1. Dans `Content hub`, filtrez `Status` sur les solutions installées. + 1. Sélectionnez la solution `Azure Activity`, puis sélectionnez **Gérer**. + 1. Sélectionnez le connecteur de données `Azure Activity`, puis la page **Ouvrir le connecteur**. + 1. Dans la zone `Configuration` sous l’onglet `Instructions`, descendez jusqu’à `2. Connect your subscriptions...` et sélectionnez **Lancer l’assistant d’affectation Azure Policy>**. + 1. Sous l’onglet **Informations de base**, sélectionnez le bouton de sélection (…) sous **Étendue**, sélectionnez votre « Abonnement » dans la liste déroulante et cliquez sur **Sélectionner**. + 1. Sélectionnez l’onglet **Paramètres**, choisissez votre espace de travail dans la liste déroulante **Espace de travail Log Analytics principal**. + 1. Sélectionnez l’onglet **Correction** et cochez la case **Créer une tâche de correction**. + 1. Sélectionnez le bouton **Vérifier + créer** pour passer en revue la configuration. + 1. Sélectionnez **Créer** pour terminer. + +### Tâche 3 : Configurer le connecteur de données Defender pour le cloud + +Configurez le connecteur de données pour Microsoft Defender pour le cloud et vérifiez que seule la gestion des incidents est configurée. + + 1. Dans `Microsoft Sentinel`, accédez à la section de menu `Content management` et sélectionnez **Content Hub**. + 1. Dans `Content hub`, filtrez `Status` sur les solutions installées. + 1. Sélectionnez la solution `Microsoft Defender for Cloud`, puis sélectionnez **Gérer**. + 1. Sélectionnez le connecteur de données `Subscription-based Microsoft Defender for Cloud (Legacy)`, puis la page **Ouvrir le connecteur**. + 1. Dans la zone `Configuration` sous l’onglet `Instructions`, descendez jusqu’à votre abonnement et placez le curseur dans la colonne `Status` sur **Connecté**. + 1. Vérifiez que `Bi-directional sync` est **activé**. + +### Tâche 4 : Créer une règle d’analyse + +Créez une règle d’analyse basée sur le modèle Nombre suspect d’activités de création ou de déploiement de ressources. La règle doit être exécutée toutes les heures et ne doit consulter que les données de la dernière heure. En savoir plus sur l’[utilisation des modèles de règles d’analyse Microsoft Sentinel](https://learn.microsoft.com/azure/sentinel/detect-threats-built-in). + + 1. Dans `Microsoft Sentinel`, accédez à la section de menu `Configuration` et sélectionnez **Analyses**. + 1. Dans l’onglet `Rule templates`, recherchez le **Nombre suspect d’activités de création ou de déploiement de ressources**. + 1. Sélectionnez le **Nombre suspect d’activités de création ou de déploiement de ressources**, puis sélectionnez **Créer une règle**. + 1. Conservez les valeurs par défaut de l’onglet `General` et sélectionnez **Suivant : Définir la logique de la règle >**. + 1. Conservez la valeur par défaut pour `Rule query` et configurez `Query scheduling` à l’aide de la table : + + |Paramètre |Valeur| + |---|---| + |Exécuter la requête toutes les|1 heure| + |Rechercher les données des dernières|1 heure| + + 1. Sélectionnez **Suivant : Paramètres d’incident >**. + 1. Conservez les valeurs par défaut et sélectionnez **Suivant : Réponse automatisée >**. + 1. Conservez les valeurs par défaut et sélectionnez **Suivant : Vérifier et créer >**. + 1. Sélectionnez **Enregistrer**. + +### Tâche 5 : S’assurer que le classeur Activité Azure est disponible dans Mes classeurs + + 1. Dans `Microsoft Sentinel`, accédez à la section de menu `Content management` et sélectionnez **Content Hub**. + 1. Dans `Content hub`, filtrez `Status` sur les solutions installées. + 1. Sélectionnez la solution `Azure Activity`, puis sélectionnez **Gérer**. + 1. Sélectionnez le classeur `Azure Activity` `checkbox`, puis sélectionnez **Configuration**. + 1. Sélectionnez le classeur `Azure Activity`, puis sélectionnez **Enregistrer**. + 1. Choisissez le `Azure Region` pour votre espace de travail `Microsoft Sentinel`. diff --git a/Instructions/Labs/LAB_03_validate-microsoft_sentinel_deploymnent.md b/Instructions/Labs/LAB_03_validate-microsoft_sentinel_deploymnent.md new file mode 100644 index 0000000..1830b90 --- /dev/null +++ b/Instructions/Labs/LAB_03_validate-microsoft_sentinel_deploymnent.md @@ -0,0 +1,82 @@ +--- +lab: + title: "Exercice\_03\_: Valider le déploiement Sentinel" + module: 'Guided Project - Configure Microsoft Sentinel Data Collection rules, NRT Analytic rule and Automation' +--- + +>**Remarque** : ce labo s’appuie sur les Lab 01 et Lab 02. Pour suivre ce labo, vous devez disposer d’un [abonnement Azure](https://azure.microsoft.com/free/?azure-portal=true). pour lequel vous disposez d’un accès administratif. + +## Recommandations générales + +- Lors de la création d’objets, utilisez les paramètres par défaut, à moins que des exigences ne requièrent des configurations différentes. +- Ne créez, ne supprimez ou ne modifiez des objets que pour répondre aux exigences énoncées. Des modifications inutiles de l’environnement peuvent avoir un effet négatif sur votre score final. +- S’il existe plusieurs approches pour atteindre un objectif, choisissez toujours celle qui nécessite le moins d’efforts administratifs. + +Nous devons configurer Microsoft Sentinel pour qu’il reçoive les événements de sécurité des machines virtuelles qui exécutent Windows. + +## Diagramme de l'architecture + +![Diagramme de Windows Security Events via AMA à l’aide de DCR](../Media/apl-5001-lab-diagrams-lab03.png) + +## Tâches d'apprentissage + +Vous devez valider le déploiement de Microsoft Sentinel pour qu’il réponde aux exigences suivantes : + +- Configurez Windows Security Events via le connecteur AMA pour collecter tous les événements de sécurité provenant uniquement d’une machine virtuelle nommée VM1. +- Créez une règle de requête en temps quasi réel (NRT) pour générer un incident basé sur la requête suivante. + +```KQL +SecurityEvent +| where EventID == 4732 +| where TargetAccount == "Builtin\\Administrators" +``` + +- Créez une règle d’automatisation qui attribue à Operator1 le rôle de propriétaire pour les incidents générés par la règle NRT. + +## Instructions de l’exercice + +>**Remarque** : dans les tâches suivantes, pour accéder à `Microsoft Sentinel`, sélectionnez le fichier `workspace` que vous avez créé au Lab 01. + +### Tâche 1 : Configurer les règles de collecte de données (DCR) dans Microsoft Sentinel + +Configurez un Windows Security Events via le connecteur AMA. En savoir plus sur [Windows Security Events via le connecteur AMA](https://learn.microsoft.com/azure/sentinel/data-connectors/windows-security-events-via-ama). + + 1. Dans `Microsoft Sentinel`, accédez à la section de menu `Configuration` et sélectionnez **Connecteurs de données**. + 1. Recherchez et sélectionnez **Windows Security Events via AMA**. + 1. Sélectionnez **Ouvrir la page du connecteur**. + 1. Dans la zone `Configuration`, sélectionnez **+Créer une règle de collecte de données**. + 1. Sous l’onglet `Basics` saisissez un `Rule Name`. + 1. Sous l’onglet `Resources`, développez votre abonnement et le groupe de ressources `RG1` dans la colonne `Scope`. + 1. Sélectionnez `VM1`, puis **Suivant : Collecter >**. + 1. Sous l’onglet `Collect`, conservez la valeur par défaut `All Security Events`. + 1. Sélectionnez **Suivant : Vérifier + créer >**, puis **Créer**. + +### Tâche 2 : Créer une détection de requête en quasi-temps réel (NRT) + +Détectez les menaces avec des règles d’analyse en quasi-temps réel (NRT) dans Microsoft Sentinel. En savoir plus sur les [règles d’analyse NRT dans Microsoft Sentinel](https://learn.microsoft.com/azure/sentinel/near-real-time-rules). + + 1. Dans `Microsoft Sentinel`, accédez à la section de menu `Configuration` et sélectionnez **Analyses**. + 1. Sélectionnez **+ Créer** et **Règle de requête NRT (préversion)** + 1. Saisissez un `Name` pour la règle, puis sélectionnez **Réaffectation de privilèges** à partir de `Tactics and techniques`. + 1. Sélectionnez **Suivant : Définir la logique de la règle >**. + 1. Entrez la requête KQL dans le `Rule query`formulaire. + + ```KQL + SecurityEvent + | where EventID == 4732 + | where TargetAccount == "Builtin\\Administrators" + ``` + + 1. Sélectionnez **Suivant : Paramètres d’incident >**, puis Sélectionnez **Suivant : Réponse automatisée >** + 1. Sélectionnez **Suivant : Vérifier + créer** + 1. Une fois la validation terminée, sélectionnez **Enregistrer**. + +### Tâche 3 : Configurer l’automatisation dans Microsoft Sentinel + +Configurez l’automatisation dans Microsoft Sentinel. En savoir plus sur la [création et l’utilisation des règles d’automatisation de Microsoft Sentinel](https://learn.microsoft.com/azure/sentinel/create-manage-use-automation-rules). + + 1. Dans `Microsoft Sentinel`, accédez à la section de menu `Configuration` et sélectionnez **Automation**. + 1. Sélectionnez **+ Créer** et Règle d’automatisation. + 1. Entrez un `Automation rule name`, puis sélectionnez **Attribuer un propriétaire** à partir de `Actions`. + 1. Attribuez **Operator1** en tant que propriétaire. + 1. Sélectionnez **Appliquer** diff --git a/Instructions/Labs/LAB_04_perform_analytic_rule_validation.md b/Instructions/Labs/LAB_04_perform_analytic_rule_validation.md new file mode 100644 index 0000000..524fed3 --- /dev/null +++ b/Instructions/Labs/LAB_04_perform_analytic_rule_validation.md @@ -0,0 +1,53 @@ +--- +lab: + title: "Exercice\_04\_: Simuler une attaque" + module: Guided Project - Perform a simulated attack to validate Analytic and Automation rules +--- + +>**Remarque** : ce labo s’appuie sur les Labs 01, 02 et 03. Pour suivre ce labo, vous devez disposer d’un [abonnement Azure](https://azure.microsoft.com/free/?azure-portal=true). pour lequel vous disposez d’un accès administratif. + +## Recommandations générales + +- Lors de la création d’objets, utilisez les paramètres par défaut, à moins que des exigences ne requièrent des configurations différentes. +- Ne créez, ne supprimez ou ne modifiez des objets que pour répondre aux exigences énoncées. Des modifications inutiles de l’environnement peuvent avoir un effet négatif sur votre score final. +- S’il existe plusieurs approches pour atteindre un objectif, choisissez toujours celle qui nécessite le moins d’efforts administratifs. + +Nous devons vérifier que notre déploiement Microsoft Sentinel reçoit des événements de sécurité et crée des incidents à partir de machines virtuelles qui exécutent Windows. + +## Diagramme de l'architecture + +![Diagramme de la simulation d’attaque ](../Media/apl-5001-lab-diagrams-lab04.png) + +## Tâches d'apprentissage + +Vous devez effectuer une attaque simulée pour vérifier que les règles d’analytique et d’automatisation créent un incident et l’attribuent au `Operator1`. Vous allez effectuer une attaque `Privilege Escalation` simple sur `vm1`. + +## Instructions de l’exercice + +### Tâche 1 : Effectuer une simulation d’attaque de réaffection des privilèges + +Utilisez des simulations d’attaques pour tester les règles d’analyse dans Microsoft Sentinel. En savoir plus sur la [simulation d’attaque de réaffectation des privilèges](https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1078.003/T1078.003.md). + +1. Localisez et sélectionnez la machine virtuelle **vm1** dans Azure, puis faites défiler les éléments de menu jusqu’à **Opérations** et sélectionnez **Exécuter la commande**. +1. Dans le volet **Exécuter la commande**, sélectionnez **RunPowerShellScript**. +1. Copiez les commandes ci-dessous pour simuler la création d’un compte Admin dans le formulaire `PowerShell Script` et sélectionnez **Exécuter**. + + ```CommandPrompt + net user theusernametoadd /add + net user theusernametoadd ThePassword1! + net localgroup administrators theusernametoadd /add + ``` + +>**Remarque** : assurez-vous qu’il n’y a qu’une seule commande par ligne et que vous pouvez réexécuter les commandes en changeant de nom d’utilisateur. + +1. Dans la fenêtre `Output`, vous devriez voir `The command completed successfully` trois fois. + +### Tâche 2 : Vérifier qu’un incident est créé à partir de la simulation d’attaque + +Vérifiez qu’un incident est créé et qu’il correspond aux critères de la règle d’analyse et de l’automatisation. En savoir plus sur la [gestion des incidents dans Microsoft Sentinel](https://learn.microsoft.com/azure/sentinel/incident-investigation). + +1. Dans `Microsoft Sentinel`, accédez à la section de menu `Threat management` et sélectionnez **Incidents** +1. Vous devriez voir un incident qui correspond à `Severity` et `Title` que vous avez configurés dans la règle `NRT` que vous avez créée. +1. Sélectionnez le `Incident` et le volet `detail` s’ouvre. +1. L’affectation `Owner` doit être **Operator1**, créée à partir de `Automation rule`, et `Tactics and techniques` doit être **Réaffection de privilèges** (à partir de la règle `NRT`). +1. Sélectionnez **Afficher tous les détail**s pour voir toutes les capacités `Incident management` et `Incident actions`. diff --git a/Instructions/Media/apl-5001-lab-diagrams-01.png b/Instructions/Media/apl-5001-lab-diagrams-01.png new file mode 100644 index 0000000000000000000000000000000000000000..71896237f8d85e695a080f2599f81974619f3c1c GIT binary patch literal 24337 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 z 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 a2kaHgkpA*w*8olia$WV-)vPObAO9aADS~(a literal 0 HcmV?d00001 diff --git a/Instructions/Media/apl-5001-lab-diagrams-lab03.png b/Instructions/Media/apl-5001-lab-diagrams-lab03.png new file mode 100644 index 0000000000000000000000000000000000000000..eeed404ed2207234575e5f02dc8e6a5043a85925 GIT binary patch literal 34923 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 literal 0 HcmV?d00001 diff --git a/Instructions/Media/apl-5001-lab-diagrams-lab04.png b/Instructions/Media/apl-5001-lab-diagrams-lab04.png new file mode 100644 index 0000000000000000000000000000000000000000..dfdfe34d27d30cd2cae6df50a44b8ee86f4f3f70 GIT binary patch literal 19627 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 literal 0 HcmV?d00001 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9ac2500 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Sidney Andrews + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index 6313505..ef853cb 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,29 @@ -# APL-5001-configure-siem-security-operations-using-microsoft-sentinel.fr-fr -French repo +# APL-5001 : Configurer les opérations de sécurité SIEM à l’aide de Microsoft Sentinel + +- **[Lien vers les labos (format HTML)]( https://microsoftlearning.github.io/APL-5001-configure-siem-security-operations-using-microsoft-sentinel/)** + +- **Êtes-vous MCT ?** - Consultez notre [Guide de l’utilisateur GitHub pour MCT](https://microsoftlearning.github.io/MCT-User-Guide/) + +## Que faisons-nous ? + +- Pour assurer la prise en charge de ce cours, nous effectuerons des mises à jour fréquentes du contenu de la formation pour maintenir à jour les services Microsoft qui y sont utilisés. Nous publions les instructions et les fichiers de labo sur GitHub pour permettre des contributions ouvertes entre les auteurs du cours et les MCT (Microsoft Certified Trainer) afin de maintenir le contenu à jour avec les modifications apportées aux produits. + +- Nous espérons que cela apportera comme jamais auparavant une touche collaborative aux labos. Si vous constatez qu’un service Microsoft tel qu’Azure ou Microsoft 365 a évolué à l’occasion d’une livraison en direct, n’hésitez pas à y apporter une amélioration directement dans la source du labo. Aidez vos collègues MCT. + +## Comment puis-je utiliser ce référentiel ? + +- Les supports de formation de l’instructeur sont votre principale source d’apprentissage du contenu du cours. + +- Ces fichiers sur GitHub sont conçus pour être utilisés dans les labos de cours, à l’aide de l’environnement de labo hébergé. + +- Pour chaque prestation il est recommandé que les formateurs vérifient dans GitHub les modifications qui ont pu être apportées afin de prendre en charge les derniers services Microsoft Cloud et afin de garantir que ce sont bien les tout derniers fichiers qui seront utilisés dans la cadre de la formation. + +## Qu’en est-il des modifications apportées au manuel du participant ? + +- Si un manuel du participant est fourni, nous le passerons tous les trimestres et le mettrons à jour par le biais des canaux de diffusion MOC (Microsoft Official Curriculum) classiques, si nécessaire. + +## Comment puis-je contribuer ? + +- Tous les MCT (Microsoft Certified Trainer) peuvent soumettre une demande de tirage (pull request) au code ou au contenu dans le référentiel GitHub. Microsoft et l’auteur du cours vont ensuite trier et inclure les changements de contenu et de code de laboratoire si nécessaire. + +- Vous pouvez soumettre des bogues, des changements, des améliorations et des idées. Vous avez découvert une nouvelle fonctionnalité Azure ou Microsoft 365 avant nous ? Envoyez une nouvelle démonstration ! diff --git a/_build.yml b/_build.yml new file mode 100644 index 0000000..2d118cd --- /dev/null +++ b/_build.yml @@ -0,0 +1,36 @@ +name: '$(Date:yyyyMMdd)$(Rev:.rr)' +jobs: + - job: build_markdown_content + displayName: 'Build Markdown Content' + workspace: + clean: all + pool: + vmImage: 'Ubuntu 16.04' + container: + image: 'microsoftlearning/markdown-build:latest' + steps: + - task: Bash@3 + displayName: 'Build Content' + inputs: + targetType: inline + script: | + cp /{attribution.md,template.docx,package.json,package.js} . + npm install + node package.js --version $(Build.BuildNumber) + - task: GitHubRelease@0 + displayName: 'Create GitHub Release' + inputs: + gitHubConnection: 'github-microsoftlearning-organization' + repositoryName: '$(Build.Repository.Name)' + tagSource: manual + tag: 'v$(Build.BuildNumber)' + title: 'Version $(Build.BuildNumber)' + releaseNotesSource: input + releaseNotes: '# Version $(Build.BuildNumber) Release' + assets: '$(Build.SourcesDirectory)/out/*.zip' + assetUploadMode: replace + - task: PublishBuildArtifacts@1 + displayName: 'Publish Output Files' + inputs: + pathtoPublish: '$(Build.SourcesDirectory)/out/' + artifactName: 'Lab Files' diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..91272fc --- /dev/null +++ b/_config.yml @@ -0,0 +1,17 @@ +remote_theme: MicrosoftLearning/Jekyll-Theme +exclude: + - readme.md + - .github/ +header_pages: + - index.html +author: Microsoft Learning +twitter_username: mslearning +github_username: MicrosoftLearning +plugins: + - jekyll-sitemap + - jekyll-mentions + - jemoji +markdown: kramdown +kramdown: + syntax_highlighter_opts: + disable : true diff --git a/index.md b/index.md new file mode 100644 index 0000000..23682ce --- /dev/null +++ b/index.md @@ -0,0 +1,25 @@ +--- +title: Instructions hébergées en ligne +permalink: index.html +layout: home +--- + +# Répertoire de contenu + +Les liens hypertexte vers chaque exercice et démonstration de labo sont répertoriés ci-dessous. + +## Laboratoires + +{% assign labs = site.pages | where_exp:"page", "page.url contains '/Instructions/Labs'" %} +| Module | Laboratoire | +| --- | --- | +{% for activity in labs %}| {{ activity.lab.module }} | [{{ activity.lab.title }}{% if activity.lab.type %} - {{ activity.lab.type }}{% endif %}]({{ site.github.url }}{{ activity.url }}) | +{% endfor %} + +## Démonstrations + +{% assign demos = site.pages | where_exp:"page", "page.url contains ’/Instructions/Demos’" %} +| Module | Démonstration | +| --- | --- | +{% for activity in demos %}| {{ activity.demo.module }} | [{{ activity.demo.title }}]({{ site.github.url }}{{ activity.url }}) | +{% endfor %}