你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Microsoft Sentinel 中开始使用 Jupyter 笔记本和 MSTICPy

本文介绍如何运行 Microsoft Sentinel ML Notebooks 笔记本入门指南,该指南为在 Microsoft Sentinel 中运行 Jupyter 笔记本设置了基本配置,并提供运行简单查询的示例。

Microsoft Sentinel ML Notebooks 笔记本入门指南使用 MSTICPy,这是一个功能强大的 Python 库,旨在增强Microsoft Sentinel笔记本中的安全调查和威胁搜寻。 它提供用于数据扩充、可视化、异常检测和自动查询的内置工具,帮助分析师简化其工作流,而无需大量自定义编码。

有关详细信息,请参阅 使用笔记本为调查提供支持 和使用 Jupyter 笔记本搜寻安全威胁

重要

2027 年 3 月 31 日之后,Azure 门户将不再支持Microsoft Sentinel,并且仅在Microsoft Defender门户中可用。 在Azure 门户中使用Microsoft Sentinel的所有客户都将重定向到 Defender 门户,并且仅在 Defender 门户中使用Microsoft Sentinel

如果仍在Azure 门户中使用Microsoft Sentinel,建议开始规划到 Defender 门户的转换,以确保平稳过渡,并充分利用 Microsoft Defender 提供的统一安全操作体验

先决条件

在开始之前,请确保拥有所需的权限和资源。

先决条件 说明
权限 若要在 Microsoft Sentinel 中使用笔记本,请确保具有所需的权限。

有关详细信息,请参阅管理对Microsoft Sentinel笔记本的访问权限
Python 若要执行本文中的步骤,需要 Python 3.6 或更高版本。

在Azure机器学习中,可以使用 Python 3.8 内核 (建议) 或 Python 3.6 内核。 如果在另一个 Jupyter 环境中使用本文中所述的笔记本,则可以使用任何支持 Python 3.6 或更高版本的内核。

若要在 Microsoft Sentinel 外部使用 MSTICPy 笔记本,Azure机器学习 (ML) ,还需要配置 Python 环境。 使用 Anaconda 分发版安装 Python 3.6 或更高版本,其中包含许多必需的包。
MaxMind GeoLite2 此笔记本对 IP 地址使用 MaxMind GeoLite2 地理位置查找服务。 若要使用 MaxMind GeoLite2 服务,需要许可证密钥。 可以在 Maxmind 注册页注册免费帐户和密钥。
VirusTotal 此笔记本使用 VirusTotal (VT) 作为威胁情报源。 若要使用 VirusTotal 威胁情报查找,需要一个 VirusTotal 帐户和 API 密钥。

如果使用 VT 企业密钥,请将其存储为Azure 密钥保管库而不是 msticpyconfig.yaml 文件。 有关详细信息,请参阅 MSTICPY 文档中的将机密指定为密钥保管库机密

如果现在不想设置Azure 密钥保管库,请注册并使用免费帐户,直到可以设置密钥保管库存储。

安装并运行 入门 Guide 笔记本

此过程介绍如何使用 Microsoft Sentinel 启动笔记本。

  1. 对于 Defender 门户中的Microsoft Sentinel,请选择“Microsoft Sentinel>”“资源管理>笔记本”。 对于Azure 门户中的Microsoft Sentinel,请在“威胁管理”下,选择“笔记本”。

  2. “模板”选项卡中,选择“Microsoft Sentinel ML 笔记本的入门指南”。

  3. 选择“ 从模板创建”。

  4. 编辑名称,并根据需要选择Azure机器学习工作区。

  5. 选择“保存”将其保存到Azure机器学习工作区。

  6. 选择“ 启动笔记本 ”以运行笔记本。 笔记本包含一系列单元格:

    • Markdown 单元格包含文本和图形以及笔记本使用说明
    • 代码 单元格包含执行笔记本函数的可执行代码
  7. 在页面顶部,选择“ 计算”。

  8. 继续使用笔记本中的说明,按顺序阅读 markdown 单元格并运行代码单元格。 跳过单元格或按顺序运行单元格可能会导致笔记本稍后出现错误。

    根据正在执行的函数,单元格中的代码可能会快速运行,或者可能需要一些时间才能完成。 当单元格运行时,播放按钮将更改为加载微调器,并且状态与运行时间一起显示在单元格底部。

    首次运行代码单元时,可能需要几分钟才能启动会话,具体取决于计算设置。 当笔记本已准备好运行代码单元格时,将显示“ 就绪 ”指示。 例如:

    准备运行代码单元的机器学习环境的屏幕截图。

Microsoft Sentinel ML 笔记本的入门指南包括有关以下活动的部分:

名称 说明
简介 描述笔记本基础知识,并提供可运行的示例代码,以查看笔记本的工作原理。
初始化笔记本和 MSTICPy 帮助你让环境准备好运行笔记本的其余部分。 初始化笔记本时,预期会出现有关缺少设置的配置警告,因为你尚未配置任何内容。
从Microsoft Sentinel查询数据 帮助你验证、配置和测试Microsoft Sentinel设置。 使用此部分中的代码对Microsoft Sentinel进行身份验证,并运行示例查询来测试连接。
配置并测试 (VirusTotal 和 Maxmind GeoLite2) 的外部数据提供程序 帮助你将 VirusTotal 的设置配置为示例威胁情报服务,将 MaxMind GeoLite2 配置为示例地理位置查找服务。 使用本节中的代码针对这些数据提供程序运行示例查询来测试它们。

Microsoft Sentinel ML 笔记本入门指南中的代码将启动 MpConfigEdit 工具,该工具具有一系列用于配置笔记本环境的选项卡。 在 MpConfigEdit 工具中进行更改时,请确保先保存更改,然后再继续操作。 笔记本的设置存储在 msticpyconfig.yaml 文件中,该文件会自动填充工作区的初始详细信息。

请务必仔细阅读 markdown 单元格,以便完全了解该过程,包括每个设置和 msticpyconfig.yaml 文件。 Azure Sentinel笔记本 Wiki 中的后续步骤、额外资源和常见问题解答从笔记本末尾链接。

(可选) 自定义查询

Microsoft Sentinel ML Notebooks 笔记本的入门指南提供了示例查询,供你在学习笔记本时使用。 通过添加更多查询逻辑来自定义内置查询,或使用 函数运行完整的查询 exec_query 。 例如,大多数内置查询都支持 add_query_items 参数,可用于将筛选器或其他操作追加到查询中。

  1. 运行以下代码单元以添加按警报名称汇总警报数的数据帧:

    from datetime import datetime, timedelta
    
    qry_prov.SecurityAlert.list_alerts(
       start=datetime.utcnow() - timedelta(28),
        end=datetime.utcnow(),
        add_query_items="| summarize NumAlerts=count() by AlertName"
    )
    
  2. 将完整Kusto 查询语言 (KQL) 查询字符串传递给查询提供程序。 查询针对连接的工作区运行,数据以 panda DataFrame 的形式返回。 运行:

    # Define your query
    test_query = """
    OfficeActivity
    | where TimeGenerated > ago(1d)
    | take 10
    """
    
    # Pass the query to your QueryProvider
    office_events_df = qry_prov.exec_query(test_query)
    display(office_events_df.head())
    
    

有关更多信息,请参阅:

将指南应用于其他笔记本

本文中的步骤介绍如何通过Microsoft Sentinel在Azure机器学习工作区中运行Microsoft Sentinel ML Notebook 的入门指南。 还可以将本文用作执行类似步骤以在其他环境中(包括本地)中运行笔记本的指导。

多个Microsoft Sentinel笔记本不使用 MSTICPy,例如凭据扫描程序笔记本或 PowerShell 和 C# 示例。 不使用 MSTICpy 的笔记本不需要本文中所述的 MSTICPy 配置。

试用其他Microsoft Sentinel笔记本,例如:

  • 配置笔记本环境
  • Cybersec 笔记本功能教程
  • 笔记本中的机器学习示例
  • 实体资源管理器系列,包括帐户、域和 URL、IP 地址以及Linux或 Windows 主机的变体。

有关更多信息,请参阅:

有关更多信息,请参阅: