Leer en inglés

Compartir a través de

Microsoft Sentinel 中 Jupyter 笔记本和 MSTICPy 的高级配置

本文介绍了在 Microsoft Sentinel 中使用 Jupyter Notebook 和 MSTICPy 时会用到的高级配置。

有关详细信息,请参阅 使用 Jupyter 笔记本搜寻安全威胁 ,并在 Microsoft Sentinel 中开始使用 Jupyter 笔记本和 MSTICPy

先决条件

本文是“在 Microsoft Sentinel 中使用 Jupyter 笔记本和 MSTICPy 入门”的续篇。 建议先执行本教程,然后再继续学习本文中所述的高级过程。

为 Microsoft 和 Microsoft Sentinel API 指定身份验证参数

本过程介绍如何在 msticpyconfig.yaml 文件中为 Microsoft Sentinel 和其他 Azure API 资源配置身份验证参数。

若要在 MSTICPy 设置编辑器中添加 Azure 身份验证和 Microsoft Sentinel API 设置:

  1. 转到包含以下代码的下一个单元,并运行该单元:

    mpedit.set_tab("Data Providers")
    mpedit
    
  2. “数据提供程序”选项卡中,选择“AzureCLI”“添加”

  3. 选择要使用的身份验证方法:

    • 虽然可以使用与默认值不同的方法集,但此用法不是典型的配置。 有关详细信息,请参阅 Azure Sentinel ML Notebooks 笔记本的入门指南
    • 除非要使用 env(环境变量)身份验证,否则请将“clientId”、“tenantId”和“clientSecret”字段保留为空。
    • MSTICPy 还支持使用客户端应用 ID 和机密进行身份验证,但不建议你这样做。 在此类情况下,请直接在“数据提供程序”选项卡中定义“clientId”、“tenantId”和“clientSecret”字段。
  4. 选择“保存文件”以保存更改。

定义自动加载的查询提供程序

定义任何要在运行nbinit.init_notebook函数时由 MSTICPy 自动加载的查询提供程序。

当频繁创作新的笔记本时,自动加载查询提供程序可以确保在加载其他组件(例如 Pivot 函数和 Notebooklets)之前加载所需的提供程序,从而节省时间。

若要添加自动加载的查询提供程序:

  1. 转到下一个单元格,使用并运行以下代码:

    mpedit.set_tab("Autoload QueryProvs")
    mpedit
    
  2. 在“自动加载 QueryProv”选项卡中:

    • 对于 Microsoft Sentinel 提供程序,需指定要连接到的提供程序名称和工作区名称。
    • 对于其他查询提供程序,仅指定提供程序名称。

    每个提供程序还具有以下可选值:

    • 自动连接:默认情况下,此选项定义为“True”,MSTICPy 会尝试在加载提供程序后立即对其进行身份验证。 MSTICPy 假设你已在设置中为提供程序配置凭据。

    • 别名:当 MSTICPy 加载提供程序时,它会为提供程序分配 Python 变量名。 默认情况下,Microsoft Sentinel 提供程序的变量名为 qryworkspace_name,其他提供程序的变量名为 qryprovider_name 。

      例如,如果加载 ContosoSOC 工作区的查询提供程序,则会在笔记本环境中创建此查询提供程序,名称 qry_ContosoSOC为 。 如果要使用更短或更容易键入和记住的内容,请添加别名。 提供程序变量名称为 qry_<alias>,其中 <alias> 将替换为所提供的别名。

      采用此机制加载的提供程序还会添加到 MSTICPy 的 current_providers 属性中,例如,以下代码中将会使用该属性:

      import msticpy
      msticpy.current_providers
      
  3. 选择“保存设置”以保存更改。

定义自动加载的 MSTICPy 组件

本过程介绍如何定义运行 nbinit.init_notebook 函数时 MSTICPy 自动加载的其他组件。

支持的组件按以下顺序包括:

  1. TILookup:要使用的 TI 提供程序库
  2. GeoIP: 您需要使用的 GeoIP 服务商
  3. AzureData:用于查询有关 Azure 资源的详细信息的模块
  4. AzureSentinelAPI: 用于查询 Microsoft Sentinel API 的模块
  5. Notebookletsmsticnb 包中的 Notebooklets
  6. Pivot:Pivot 函数

组件按此顺序进行加载,因为 Pivot 组件需要加载查询和其他提供程序才能查找其附加到实体的 Pivot 函数。 有关详细信息,请参阅 MSTICPy 文档。 有关详细信息,请参阅 Azure Sentinel ML Notebooks 笔记本的入门指南

定义自动加载的 MSTICPy 组件:

  1. 转到包含以下代码的下一个单元,并运行该单元:

    mpedit.set_tab("Autoload Components")
    mpedit
    
  2. 在“自动加载组件”选项卡中,定义任何所需参数值。 例如:

    • GeoIpLookup。 输入要使用的 GeoIP 提供程序的名称,“GeoLiteLookup”或“IPStack”。

    • AzureData 和 AzureSentinelAPI 组件。 定义以下值:

      • auth_methods:替代 AzureCLI 的默认设置,并使用所选的方法进行连接。
      • Auto-connect:设置为 false,以在不连接的情况下加载。

      有关详细信息,请参阅为 Azure 和 Microsoft Sentinel API 指定身份验证参数

    • Notebooklets。 Notebooklets 组件具有单个参数块:AzureSentinel。

      使用以下语法指定 Microsoft Sentinel 工作区:workspace:\<workspace name>。 工作区名称必须是“Microsoft Sentinel”选项卡中定义的工作区之一。

      如果要添加更多要发送到 notebooklets init 函数的参数,请将这些参数指定为以换行符分隔的键值对。 例如:

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

      有关详细信息,请参阅 MSTICNB (MSTIC Notebooklets) 文档

    某些组件(例如 TILookup 和 Pivot)不需要任何参数。

  3. 选择“保存设置”以保存更改。

在 Python 3.6 和 3.8 内核之间切换

如果要在 Python 3.65 和 3.8 内核之间切换,你可能会发现 MSTICPy 和其他包未按预期安装。

!pip install pkg 命令在第一个环境中正确安装,但在第二个环境中安装不正确时,可能会发生这种情况。 这会导致第二个环境无法导入或使用包。

我们建议您不要使用 !pip install... 在 Azure 机器学习笔记本中安装程序包。 改用以下选项之一:

  • 在笔记本中使用 %pip line magic。 运行:

    
    %pip install --upgrade msticpy
    
  • 从终端安装:

    1. 在 Azure 机器学习笔记本中打开终端并运行以下命令:

      conda activate azureml_py38
      pip install --upgrade msticpy
      
    2. 关闭终端并重启内核。

为 msticpyconfig.yaml 文件设置环境变量

如果在 Azure 机器学习中运行,并且 msticpyconfig.yaml 文件位于用户文件夹的根目录中,则 MSTICPy 会自动找到这些设置。 但是,如果要在另一个环境中运行笔记本,请按照本节中的说明设置指向配置文件位置的环境变量。

通过在环境变量中定义 msticpyconfig.yaml 文件的路径,可以将文件存储在已知位置,并确保始终加载相同的设置。

如果要将不同的设置用于不同的笔记本,请使用多个配置文件和多个环境变量。

  1. 确定 msticpyconfig.yaml 文件的位置,例如,位于 ~/.msticpyconfig.yaml 或 %userprofile%/msticpyconfig.yaml 中。

    Azure ML 用户:如果将配置文件存储在 Azure 机器学习用户文件夹中,MSTICPy init_notebook 函数(在初始化单元中运行)会自动查找和使用该文件,并且无需设置 MSTICPYCONFIG 环境变量。

    但是,如果此文件中还存储了机密,则建议将配置文件存储在计算本地驱动器中。 只有创建计算的人员才能访问计算内部存储,而共享存储可供有权访问 Azure 机器学习工作区的任何人访问。

    有关详细信息,请参阅什么是 Azure 机器学习计算实例?

  2. 如果需要,请将 msticpyconfig.yaml 文件复制到所选位置。

  3. 将 MSTICPYCONFIG 环境变量设置为指向该位置。

使用以下过程之一来定义 MSTICPYCONFIG 环境变量。

本过程介绍如何更新 .bashrc 文件,以在 Linux 系统上设置 MSTICPYCONFIG 环境变量。

  1. 根据需要将 msticpyconfig.yaml 文件移动到计算实例。

  2. 打开 Azure 机器学习终端,例如从 Microsoft Sentinel Notebooks 页。

  3. 验证是否可以访问 msticpyconfig.yaml 文件。

    在 Azure 机器学习终端中,当前目录应该是在计算 Linux 系统中装载的 Azure 机器学习文件存储主目录。 提示与以下示例类似:

    azureuser@alicecontoso-azml7:~/cloudfiles/code/Users/alicecontoso$
    

    通过输入 ,列出主目录中的所有文件,包括 msticpyconfig.yaml 文件。

  4. 若要将 msticpyconfig.yaml 文件移动到计算文件存储,请输入:

    mv msticpyconfig.yaml ~
    
  5. 使用以下过程之一编辑环境变量的 .bashrc 文件:

    命令 步骤
    vim 1.运行:vim ~/.bashrc
    2.按 SHIFT+G > End,转到文件末尾。 3. 输入“a”并按 Enter,创建新行。
    4.添加环境变量,然后按 ESC 返回到命令模式。
    5.输入 :wq,保存文件。
    Nano 1.运行:nano ~/.bashrc
    1.按 ALT+/ 或 OPTION+/,转到文件末尾。
    1.添加环境变量,然后保存文件。 按 CTRL+X,然后按 Y。

    添加以下环境变量之一:

    • 如果移动了 msticpyconfig.yaml 文件,请运行 export MSTICPYCONFIG=~/msticpyconfig.yaml
    • 如果未移动 msticpyconfig.yaml 文件,请运行 export MSTICPYCONFIG=~/cloudfiles/code/Users/<YOURNAME>/msticpyconfig.yaml

Nota

对于 Linux 和 Windows 选项,需要重启 Jupyter 服务器才能选取定义的环境变量。

后续步骤

有关详细信息,请参阅:

使用者 更多参考资料
MSTICPy - MSTICPy 包配置
- MSTICPy 设置编辑器
- 配置笔记本环境
- MPSettingsEditor 笔记本

注意:Azure-Sentinel-Notebooks GitHub 存储库还包含 msticpyconfig.yaml 模板文件,其中包含注释掉的部分,可能会对你了解设置有所帮助。
Microsoft Sentinel 和 Jupyter Notebook - 创建第一个 Microsoft Sentinel 笔记本(博客系列)
- Jupyter Notebook 简介
- MSTICPy 文档
- Microsoft Sentinel Notebook 文档
- Infosec Jupyterbook
- Linux 主机资源管理器 Notebook 演练
- 为什么使用 Jupyter 进行安全调查
- 使用 Microsoft Sentinel 和 Notebook 进行安全调查
- Pandas 文档
- Bokeh 文档