本文介绍如何运行 Microsoft Sentinel ML Notebooks 笔记本的入门指南 ,该指南为在 Microsoft Sentinel 中运行 Jupyter 笔记本设置基本配置,并提供运行简单查询的示例。
Microsoft Sentinel ML Notebooks 笔记本入门指南使用 MSTICPy,这是一个功能强大的 Python 库,旨在增强Microsoft Sentinel 笔记本内的安全调查和威胁搜寻。 它提供用于数据扩充、可视化、异常检测和自动化查询的内置工具,帮助分析师无需进行广泛的自定义编码即可简化其工作流。
有关更多信息,请参阅使用笔记本进行调查和使用 Jupyter 笔记本搜寻安全威胁。
重要
Microsoft Sentinel 在 Microsoft Defender 门户中正式发布,包括没有 Microsoft Defender XDR 或 E5 许可证的客户。 有关详细信息,请参阅 Microsoft Defender 门户中的 Microsoft Sentinel。
先决条件
在开始之前,请确保拥有所需的权限和资源。
先决条件 | DESCRIPTION |
---|---|
权限 | 若要在 Microsoft Sentinel 中使用 notebook,请确保你具有所需的权限。 有关详细信息,请参阅管理对 Microsoft Sentinel 笔记本的访问。 |
Python | 要执行本文中的步骤,需要使用 Python 3.6 或更高版本。 在 Azure 机器学习中,可以使用 Python 3.8 内核(推荐)或 Python 3.6 内核。 如果在另一个 Jupyter 环境中使用本文所述的笔记本,则可以使用支持 Python 3.6 或更高版本的任何内核。 若要在 Microsoft Sentinel 和 Azure 机器学习 (ML) 之外使用 MSTICPy 笔记本,还需要配置 Python 环境。 使用 Anaconda 发行版安装 Python 3.6 或更高版本,其中包含许多必需的包。 |
MaxMind GeoLite2 | 此笔记本使用 MaxMind GeoLite2 地理定位查找服务来查找 IP 地址。 若要使用 MaxMind GeoLite2 服务,需要许可证密钥。 您可以在 Maxmind 注册页面注册一个免费帐户和密钥。 |
VirusTotal | 此笔记本使用 VirusTotal (VT) 作为威胁情报源。 若要使用 VirusTotal 威胁情报查找,需要一个 VirusTotal 帐户和 API 密钥。 如果使用 VT 企业密钥,请将其存储为 Azure Key Vault,而不是 msticpyconfig.yaml 文件。 有关详细信息,请参阅 MSTICPY 文档中的将机密指定为密钥保管库机密。 如果不想立即设置 Azure 密钥保管库,请注册并使用免费帐户,直到可以设置密钥保管库存储。 |
安装和运行入门指南笔记本
此过程介绍如何使用 Microsoft Sentinel 启动笔记本。
对于 Defender 门户中的 Microsoft Sentinel,请选择“Microsoft Sentinel”“威胁管理”>“笔记本”>。 对于 Azure 门户中的 Microsoft Sentinel,请在“威胁管理”下选择“笔记本”。
在“模板”选项卡中,选择“Microsoft Sentinel ML Notebooks 入门指南”。
选择“通过模板创建”。
编辑名称,并根据需要选择 Azure 机器学习工作区。
选择“保存”以将其保存到 Azure 机器学习工作区。
选择“启动笔记本”以运行笔记本。 该笔记本包含一系列单元:
- Markdown 单元包含文本和图形以及使用笔记本的说明
- “代码”单元包含执行笔记本功能的可执行代码
在页面顶部,选择你的计算。
按照笔记本中的说明继续按顺序阅读 markdown 单元格并运行代码单元格。 跳过单元或乱序运行可能会导致笔记本随后出现错误。
根据正在执行的函数,单元格中的代码可能会快速运行,或者可能需要一些时间才能完成。 当单元格正在运行时,播放按钮将更改为加载旋转图标,状态以及已用时间会显示在单元格底部。
首次运行代码单元时,可能需要几分钟才能启动会话,具体取决于计算设置。 当笔记本准备好运行代码单元格时,会显示 “就绪 ”指示。 例如:
“Microsoft Sentinel ML Notebooks 入门指南”包括以下活动的部分:
名称 | DESCRIPTION |
---|---|
介绍 | 介绍笔记本基础知识并提供可运行的示例代码,以查看笔记本的工作原理。 |
初始化笔记本和 MSTICPy | 帮助你让环境准备好运行笔记本的其余部分。 初始化笔记本时,预期会出现有关缺少设置的配置警告,因为尚未配置任何设置。 |
从 Microsoft Sentinel 查询数据 | 帮助你验证、配置和测试 Microsoft Sentinel 设置。 使用本节中的代码进行身份验证以Microsoft Sentinel 并运行示例查询来测试连接。 |
配置和测试外部数据提供程序(VirusTotal 和 Maxmind GeoLite2) | 帮助你将 VirusTotal 的设置配置为示例威胁智能服务,将 MaxMind GeoLite2 配置为示例地理位置查找服务。 使用本节中的代码针对这些数据提供程序运行示例查询以测试它们。 |
Microsoft Sentinel ML Notebook 入门指南中的代码将启动 MpConfigEdit 工具,该工具包含用于配置笔记本环境的一系列选项卡。 在 MpConfigEdit 工具中进行更改时,请确保在继续之前保存更改。 笔记本的设置存储在 msticpyconfig.yaml 文件中,该文件会自动填充工作区的初始详细信息。
请务必仔细阅读 markdown 单元格,以便完全了解该过程,包括每个设置和 msticpyconfig.yaml 文件。 笔记本的末尾提供了通向Azure Sentinel Notebooks Wiki中的后续步骤、额外资源和常见问题解答的链接。
自定义查询(可选)
Microsoft Sentinel ML 笔记本入门指南提供了供您学习笔记本时使用的示例查询。 通过添加更多查询逻辑来自定义内置查询,或者使用 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())
有关详细信息,请参阅:
将指南应用于其他笔记本
本文中的步骤介绍了如何在 Azure ML 工作区中通过 Microsoft Sentinel 运行 Microsoft Sentinel 机器学习 Notebooks 入门指南笔记本。 在其他环境(包括本地)中执行类似步骤以运行笔记本时,也可以使用本文作为指导。
某些 Microsoft Sentinel 笔记本不使用 MSTICPy,例如“凭据扫描器”笔记本或 PowerShell 和 C# 示例。 如果笔记本不使用 MSTICpy,则不需要本文中所述的 MSTICPy 配置。
试用其他Microsoft Sentinel 笔记本,例如:
- 配置笔记本环境
- Cybersec 笔记本功能概览
- Notebooks 中的机器学习例子
- 实体资源管理器系列,包括帐户、域和 URL、IP 地址以及 Linux 或 Windows 主机的变体。
有关详细信息,请参阅:
- 具有 Microsoft Sentinel 搜寻功能的 Jupyter 笔记本
- Microsoft Sentinel 中 Jupyter 笔记本和 MSTICPy 的高级配置
- 创建第一个Microsoft Sentinel 笔记本 (博客系列)
- Linux Host Explorer Notebook 使用指南 (博客)
相关内容
有关详细信息,请参阅: