Configurations avancées pour les notebooks Jupyter et MSTICPy dans Microsoft Sentinel

Cet article décrit les configurations avancées pour l’utilisation des notebooks Jupyter et MSTICPy dans Microsoft Sentinel.

Pour plus d’informations, consultez Utiliser des notebooks Jupyter pour repérer des menaces de sécurité et Tutoriel : Prendre en main les notebooks Jupyter et MSTICPy dans Microsoft Sentinel.

Prérequis

Cet article est une suite du tutoriel : Prendre en main les notebooks Jupyter et MSTICPy dans Microsoft Sentinel. Nous vous recommandons de suivre le didacticiel avant de passer aux procédures avancées décrites ci-dessous.

Spécifier les paramètres d’authentification pour les API Azure et Microsoft Sentinel

Cette procédure décrit comment configurer les paramètres d’authentification pour Microsoft Sentinel et d’autres ressources de l’API Azure dans votre fichier msticpyconfig.yaml.

Pour ajouter l’authentification Azure et les paramètres de l’API Microsoft Sentinel dans l’éditeur de paramètres MSTICPy :

  1. Passez à la cellule suivante, avec le code suivant et exécutez-la :

    mpedit.set_tab("Data Providers")
    mpedit
    
  2. Dans l’onglet Fournisseurs de données, sélectionnez AzureCLI>Ajouter.

  3. Sélectionnez les méthodes d’authentification à utiliser :

    • Bien que vous puissiez utiliser un autre ensemble de méthodes à partir des paramètres par défaut d’Azure, cette utilisation n’est pas une configuration classique.
    • À moins que vous ne souhaitiez utiliser l’authentification env (variable d’environnement), laissez les champs ClientID, tenantiIdet clientSecret vides.
    • Bien que cela ne soit pas recommandé, MSTICPy prend également en charge l’utilisation des ID d’application cliente et des secrets pour votre authentification. Dans ce cas, définissez vos champs ClientID, tenantIdet ClientSecret directement dans l’onglet Fournisseurs de données .
  4. Cliquez sur Enregistrer pour enregistrer vos modifications :

Définir le chargement automatique des fournisseurs de requêtes

Définissez les fournisseurs de requêtes que vous souhaitez MSTICPy charger automatiquement lorsque vous exécutez la fonction nbinit.init_notebook.

Lorsque vous créez fréquemment de nouveaux blocs-notes, le chargement automatique des fournisseurs de requêtes peut vous faire gagner du temps en vous assurant que les fournisseurs requis sont chargés avant d’autres composants, tels que les fonctions pivot et notebooklets.

Pour ajouter le chargement automatique des fournisseurs de requêtes:

  1. Passez à la cellule suivante, avec le code suivant et exécutez-la :

    mpedit.set_tab("Autoload QueryProvs")
    mpedit
    
  2. Sous l’onglet Autoload QueryProv :

    • Pour les fournisseurs Microsoft Sentinel, spécifiez le nom du fournisseur et le nom de l’espace de travail auquel vous souhaitez vous connecter.
    • Pour les autres fournisseurs de requêtes, spécifiez uniquement le nom du fournisseur.

    Chaque fournisseur a également les valeurs facultatives suivantes :

    • Connexion automatique : Cette option est définie sur True par défaut, et MSTICPy essaie de s’authentifier auprès du fournisseur immédiatement après le chargement. MSTICPy suppose que vous avez configuré les informations d’identification du fournisseur dans vos paramètres.

    • Alias : Quand MSTICPy charge un fournisseur, il attribue le fournisseur à un nom de variable Python. Par défaut, le nom de la variable est qryworkspace_name pour les fournisseurs Microsoft Sentinel et qryprovider_name pour les autres fournisseurs.

      Par exemple, si vous chargez un fournisseur de requêtes pour l’espace de travail ContosoSOC, ce fournisseur de requêtes sera créé dans votre environnement de bloc-notes avec le nom qry_ContosoSOC. Ajoutez un alias si vous souhaitez utiliser un nom plus petit ou plus facile à taper et à mémoriser. Le nom de la variable du fournisseur sera qry_<alias> , où <alias> est remplacé par le nom d’alias que vous avez fourni.

      Les fournisseurs que vous chargez par ce mécanisme sont également ajoutés à l' attribut current_providers MSTICPy, qui est utilisé, par exemple, dans le code suivant :

      import msticpy
      msticpy.current_providers
      
  3. Cliquez sur Enregistrer les paramètres pour enregistrer vos modifications :

Définir les composants MSTICPy chargés

Cette procédure décrit comment définir d’autres composants qui sont chargés automatiquement par MSTICPy lors de l’exécution de la fonction nbinit.init_notebook.

Les composants pris en charge incluent, dans l’ordre suivant :

  1. TILookup :Bibliothèque du fournisseur TI
  2. GeoIP :Fournisseur GeoIP que vous souhaitez utiliser
  3. AzureData : Module que vous utilisez pour interroger des détails sur les ressources Azure
  4. AzureSentinelAPI : Module que vous utilisez pour interroger l’API Microsoft Sentinel
  5. Notebooklets : Notebooklets à partir du package msticnb
  6. Pivot: Fonctions pivot

Notes

Les composants sont chargés dans cet ordre, car le composant pivot a besoin d’une requête et d’autres fournisseurs chargés pour trouver les fonctions pivot qu’il attache aux entités. Pour plus d’informations, consultez la documentation MSTICPy.

Pour définir les composants MSTICPy auto-chargés :

  1. Passez à la cellule suivante, avec le code suivant et exécutez-la :

    mpedit.set_tab("Autoload Components")
    mpedit
    
  2. Dans l’onglet Composants de chargement automatique, définissez les valeurs de paramètre en fonction des besoins. Par exemple :

    • GeoIpLookup. Entrez le nom du fournisseur GeoIP que vous souhaitez utiliser, soit GeoLiteLookup , soit IPStack. Pour plus d'informations, consultez Ajoutez les paramètres de fournisseur GeoIP.

    • Composants AzureData et AzureSentinelAPI. Renseignez les valeurs suivantes :

      • auth_methods : Remplacez les paramètres par défaut de AzureCLI et connectez-vous à l’aide des méthodes sélectionnées.
      • Connexion automatique : Affectez la valeur false à Load sans vous connecter.

      Pour plus d’informations, consultezSpécifier les paramètres d’authentification pour les API Azure et Microsoft Sentinel.

    • Notebooklets. Le composant Notebooklets a un seul bloc de paramètres : AzureSentinel.

      Spécifiez votre espace de travail Microsoft Sentinel à l’aide de la syntaxe suivante : workspace:\<workspace name>. Le nom de l’espace de travail doit être l’un des espaces de travail définis dans l’onglet Microsoft Sentinel.

      Si vous souhaitez ajouter d’autres paramètres à envoyer à la fonction notebooklets init, spécifiez-les en tant que paires clé-valeur, séparées par des sauts de lignes. Par exemple :

      workspace:<workspace name>
      providers=["LocalData","geolitelookup"]
      

      Pour plus d’informations, consultez la documentation MSTICNB (MSTIC Notebooklets).

    Certains composants, tels que TILookup et pivot, ne requièrent aucun paramètre.

  3. Cliquez sur Enregistrer les paramètres pour enregistrer vos modifications.

Basculer entre les noyaux Python 3.6 et 3.8

Si vous basculez entre les noyaux Python 3.65 et 3.8, vous constaterez peut-être que MSTICPy et d’autres packages ne sont pas installés comme prévu.

Cela peut se produire lorsque la commande !pip install pkg s’installe correctement dans le premier environnement, mais ne s’installe pas correctement dans le second. Cela crée une situation dans laquelle le deuxième environnement ne peut pas importer ou utiliser le package.

Nous vous recommandons de ne pas utiliser !pip install... pour installer des packages dans les blocs-notes Azure ML. Vous pouvez utiliser l’une des options suivantes :

  • Utilisez la magie de la ligne PIP dans un Notebook. Exécutez :

    
    %pip install --upgrade msticpy
    
  • Installer à partir d’un terminal:

    1. Ouvrez un terminal dans les blocs-notes Azure ML et exécutez les commandes suivantes :

      conda activate azureml_py38
      pip install --upgrade msticpy
      
    2. Fermez le terminal et redémarrez le noyau.

Définir une variable d’environnement pour votre fichier msticpyconfig.yaml

Si vous exécutez dans Azure ML et que vous avez votre fichier msticpyconfig. yaml à la racine de votre dossier utilisateur, MSTICPy trouvera automatiquement ces paramètres. Toutefois, si vous exécutez les blocs-notes dans un autre environnement, suivez les instructions de cette section pour définir une variable d’environnement qui pointe vers l’emplacement de votre fichier de configuration.

La définition du chemin d’accès à votre fichier msticpyconfig.yaml dans une variable d’environnement vous permet de stocker votre fichier à un emplacement connu et de vous assurer que vous chargez toujours les mêmes paramètres.

Utilisez plusieurs fichiers de configuration, avec plusieurs variables d’environnement, si vous souhaitez utiliser des paramètres différents pour différents blocs-notes.

  1. Choisissez un emplacement pour votre fichier msticpyconfig.yaml , par exemple ~/.msticpyconfig.yaml ou % UserProfile%/msticpyconfig.yaml

    Utilisateurs d’azure ML: si vous stockez votre fichier de configuration dans votre dossier utilisateur azure ML, la init_notebook fonction MSTICPy (exécutée dans la cellule d’initialisation) trouvera et utilise automatiquement le fichier, et vous n’avez pas besoin de définir une variable d’environnement MSTICPYCONFIG .

    Toutefois, si vous avez également des secrets stockés dans le fichier, nous vous recommandons de stocker le fichier de configuration sur le lecteur local de calcul. Le stockage interne de calcul est accessible uniquement à la personne qui a créé le calcul, tandis que le stockage partagé est accessible à toute personne ayant accès à votre espace de travail Azure ML.

    Pour plus d’informations, consultez Qu’est-ce qu’une instance de calcul Azure Machine Learning ?

  2. Si nécessaire, copiez votre fichier msticpyconfig.yaml à l’emplacement sélectionné.

  3. Définissez la variable d’environnement MSTICPYCONFIG pour qu’elle pointe vers cet emplacement.

Utilisez l’une des procédures suivantes pour définir la variable d’environnement MSTICPYCONFIG .

Par exemple, pour définir la variable d’environnement MSTICPYCONFIG sur les systèmes Windows :

  1. Déplacez le fichier msticpyconfig.yaml vers l’instance de calcul en fonction des besoins.

  2. Dans la boîte de dialogue Propriétés système, cliquez sur l'onglet Avancé .

  3. Sélectionnez Variables d’environnement... pour ouvrir la boîte de dialogue Variables d’environnement .

  4. Dans la zone Variables système, sélectionnez Nouveau... , puis définissez les valeurs comme suit :

    • Nom de la variable : définir comme MSTICPYCONFIG
    • Valeur de la variable : entrez le chemin d’accès à votre fichier msticpyconfig.yaml

Notes

Pour les options Linux et Windows, vous devez redémarrer votre serveur Jupyter pour qu’il récupère la variable d’environnement que vous avez définie.

Étapes suivantes

Pour plus d'informations, consultez les pages suivantes :

Objet Plus de références
MSTICPy - Configuration de package MSTICPy
- Éditeur de Paramètres MSTICPy
- Configuration de votre environnement de bloc-notes.
- Bloc-notes MPSettingsEditor.

Remarque: le référentiel Azure-Sentinel-Notebooks GitHub contient également un fichier modèle msticpyconfig.yaml avec des sections commentées, ce qui peut vous aider à comprendre les paramètres.
Microsoft Sentinel et notebooks Jupyter - Création de votre premier notebook Microsoft Azure Sentinel (série de blog)
- Jupyter Notebook : présentation
- Documentation MSTICPy
- Documentation sur les notebooks Microsoft Sentinel
- Le livre Jupyter Infosec
- Procédure pas-à-pas du bloc-notes Linux Host Explorer
- Pourquoi utiliser Jupyter pour les investigations de sécurité
- Investigations de sécurité avec Microsoft Sentinel et les notebooks
- Documentation Pandas
- Documentation Bokeh