你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何运行 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 启动笔记本。
对于 Defender 门户中的Microsoft Sentinel,请选择“Microsoft Sentinel>”“资源管理>笔记本”。 对于Azure 门户中的Microsoft Sentinel,请在“威胁管理”下,选择“笔记本”。
在“模板”选项卡中,选择“Microsoft Sentinel ML 笔记本的入门指南”。
选择“ 从模板创建”。
编辑名称,并根据需要选择Azure机器学习工作区。
选择“保存”将其保存到Azure机器学习工作区。
选择“ 启动笔记本 ”以运行笔记本。 笔记本包含一系列单元格:
- Markdown 单元格包含文本和图形以及笔记本使用说明
- 代码 单元格包含执行笔记本函数的可执行代码
在页面顶部,选择“ 计算”。
继续使用笔记本中的说明,按顺序阅读 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 参数,可用于将筛选器或其他操作追加到查询中。
运行以下代码单元以添加按警报名称汇总警报数的数据帧:
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" )将完整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 主机的变体。
有关更多信息,请参阅:
- 具有Microsoft Sentinel搜寻功能的 Jupyter 笔记本
- Microsoft Sentinel中 Jupyter 笔记本和 MSTICPy 的高级配置
- 创建第一个Microsoft Sentinel笔记本 (博客系列)
- Linux主机资源管理器笔记本演练 (博客)
相关内容
有关更多信息,请参阅: