你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
自带机器学习 (ML) 到 Microsoft Sentinel
注意
有关美国政府云中的功能可用性的信息,请参阅美国政府客户的云功能可用性中的 Microsoft Sentinel 表。
机器学习 (ML) 是 Microsoft Sentinel 的主要基础结构之一,是它的主要独特属性之一。 Microsoft Sentinel 在几个体验中提供 ML:内置于融合关联引擎和 Jupyter Notebook,以及新发布的自行构建 ML (BYO ML) 平台。
ML 检测模型可适应个人环境和用户行为变化,从而减少假正并识别使用传统方法无法找到的威胁。 许多安全组织都了解 ML 的安全性价值,但是没多少组织能够拥有在安全和 ML 方面都具有专业知识的专业人员。 我们在这里展示了为安全组织和专业人员设计的框架,请在 ML 旅程中与我们一起成长。 刚刚接触 ML 或没有必要专业知识的组织可以从 Microsoft Sentinel 的内置 ML 功能中获得重大的保护价值。
什么是自带机器学习 (BYO-ML) 平台?
对于具有 ML 资源并想要针对其独特的业务需求构建自定义 ML 模型的组织,我们提供了“BYO-ML 平台”。 该平台利用 Azure Databricks/Apache Spark 环境和 Jupyter Notebook 来生成 ML 环境。 它提供以下组件:
一个 BYO-ML 包,其中包含的库可帮助访问数据并将结果推送回 Log Analytics (LA),这样可以将结果与检测、调查和搜寻集成。
ML 算法模板,可以自定义这些模板,以适应组织中的特定安全问题。
示例笔记本,用于训练模型和安排模型评分。
除此之外,还可以自带的 ML 模型和/或 Spark 环境,与 Microsoft Sentinel 集成。
使用 BYO-ML 平台,可以快速开始自行构建 ML 模型:
带有示例数据的笔记本有助于获得端到端的动手体验,而无需担心处理生产数据。
与 Spark 环境集成的包减少了管理基础结构的难题和摩擦。
库支持数据移动。 培训和评分笔记本演示了端到端体验,并可作为模板用于适应环境。
用例
BYO-ML 平台和包可显著减少自行构建 ML 检测所需的时间和精力,并释放解决 Microsoft Sentinel 中特定安全问题的功能。 平台支持以下用例:
“训练 ML 算法以获取自定义模型”:可以采用现有的 ML 算法(由Microsoft 或用户社区共享)并轻松地用自己的数据训练该算法,以获取更适合数据和环境的自定义 ML 模型。
“修改 ML 算法模板以获取自定义模型”:可以修改 ML 算法模板(由 Microsoft 或用户社区共享),并用自己的数据来训练修改后的算法,以根据特定问题来派生自定义模型。
“自行创建模型”:使用 Microsoft Sentinel 的 BYO-ML 平台和实用程序从头开始自行创建模型。
“集成 Databricks/Spark 环境”:将现有的 Databricks/Spark 环境集成到 Microsoft Sentinel 中,并使用 BYO-ML 库和模板为其独特的情况构建 ML 模型。
“自行导入 ML 模型”:可以自行导入 ML 模型,并使用 BYO-ML 平台和实用程序将它们与 Microsoft Sentinel 集成。
“共享 ML 算法”:共享 ML 算法,以便社区采用和调整。
“使用 ML 来实现 SecOps”:自行使用自定义 ML 模型和结果进行搜寻、检测、调查和响应。
本文演示了 BYO-ML 平台的组件,以及如何利用平台和异常资源访问算法,通过 Microsoft Sentinel 提供自定义 ML 检测。
Azure Databricks/Spark 环境
Apache Spark 通过提供用于构建数据管道的统一框架,在简化大数据方面向前迈了一大步。 Azure Databricks 通过提供一个围绕 Spark 构建的零管理云平台,在这方面更进一步。 我们建议将 Databricks 用于 BYO-ML 平台,这样就可以专注于找到直接影响业务的答案,而不是处理数据管道和平台问题。
如果已有 Databricks 或任何其他 Spark 环境,并希望使用现有的设置,BYO-ML 包也会正常运行。
BYO-ML 包
BYO ML 包中包含 Microsoft 在安全性 ML 前端的最佳实践和研究。 在此包中,我们提供了以下针对安全性问题的实用程序、笔记本和算法模板的列表。
文件名 | 说明 |
---|---|
azure_sentinel_utilities.whl | 包含用于从 Azure 读取 blob 和写入 Log Analytics 的实用程序。 |
AnomalousRASampleData | 笔记本演示如何结合使用 Microsoft Sentinel 中的异常资源访问模型与所生成的训练和测试示例数据。 |
AnomalousRATraining.ipynb | 用于训练算法,构建和保存模型的笔记本。 |
AnomalousRAScoring.ipynb | 用于安排要运行的模型,直观显示结果和将分数写回到 Microsoft Sentinel 的笔记本。 |
我们提供的第一个 ML 算法模板用于异常资源访问检测。 它基于协作筛选算法,并使用 Windows 文件共享访问日志训练(事件 ID 为 5140 的安全事件)。 日志中此模型所需的关键信息是用户和所访问资源的配对。
示例演练:异常文件共享访问检测
现在已经熟悉了 BYO-ML 平台的关键组件,下面提供了一个示例,演示如何使用平台和组件来提供自定义 ML 检测。
设置 Databricks/Spark 环境
如果还没有 Databricks 环境,需要自行设置一个。 有关说明,请参阅 Databricks 快速入门文档。
自动导出指令
如果要基于 Microsoft Sentinel 中自己的数据构建自定义 ML 模型,需要将数据从 Log Analytics 导出到 Blob 存储或事件中心资源,以便 ML 模型可以从 Databricks 访问。 了解如何将数据引入到 Microsoft Sentinel 中。
在此示例中,需要在 Azure blob 存储中有文件共享访问日志的训练数据。 数据的格式记录在笔记本和库中。
可使用 Azure CLI 从 Log Analytics 中自动导出数据。
如果要运行这些命令,必须在 Log Analytics 工作区、存储帐户和 EventHub 资源中分配“参与者”角色。
下面是用于设置自动导出的一组示例命令:
az –version
# Login with Azure CLI
az login
# List all Log Analytics clusters
az monitor log-analytics cluster list
# Set to specific subscription
az account set --subscription "SUBSCRIPTION_NAME"
# Export to Storage - all tables
az monitor log-analytics workspace data-export create --resource-group "RG_NAME" --workspace-name "WS_NAME" -n LAExportCLIStr --destination "DESTINATION_NAME" --enable "true" --tables SecurityEvent
# Export to EventHub - all tables
az monitor log-analytics workspace data-export create --resource-group "RG_NAME" --workspace-name "WS_NAME" -n LAExportCLIEH --destination "DESTINATION_NAME" --enable "true" --tables ["SecurityEvent","Heartbeat"]
# List export settings
az monitor log-analytics workspace data-export list --resource-group "RG_NAME" --workspace-name "WS_NAME"
# Delete export setting
az monitor log-analytics workspace data-export delete --resource-group "RG_NAME" --workspace-name "WS_NAME" --name "NAME"
导出自定义数据
对于 Log Analytics 自动导出不支持的自定义数据,可以使用逻辑应用或其他解决方案来移动数据。 可以参考将 Log Analytics 数据导出到 Blob 存储博客和脚本。
与 Microsoft Sentinel 之外的数据关联
还可以将 Microsoft Sentinel 之外的数据引入 blob 存储或事件中心,并将其与 Microsoft Sentinel 数据相关联,以构建 ML 模型。
复制并安装相关的包
将前面提到的 Microsoft Sentinel GitHub 存储库中的 BYO-ML 包复制到 Databricks 环境。 然后打开笔记本并按照笔记本中的说明在群集上安装所需的库。
模型训练和评分
按照两个笔记本中的说明,根据自己的环境和资源更改配置,按步骤训练和构建模型,然后安排模型为传入文件共享访问日志评分。
将结果写入 Log Analytics
安排评分后,可以使用评分笔记本中的模块将评分结果写入与 Microsoft Sentinel 实例相关联的 Log Analytics 工作区。
在 Microsoft Sentinel 中检查结果
如果要查看评分结果以及相关日志详细信息,请返回到 Microsoft Sentinel 门户。 在“日志”>“自定义日志”中,将在 AnomalousResourceAccessResult_CL 表(或你自己的自定义表名称)中看到结果。 可以使用这些结果来增强调查和搜寻体验。
用 ML 结果构建自定义分析规则
一旦确认了 ML 结果位于自定义日志表中,并且对分数的保真度感到满意,就可以根据结果创建检测。 从 Microsoft Sentinel 门户中转到“分析”,并创建新的检测规则。 下面是一个示例,演示了用于创建检测的查询。
查看和响应事件
基于 ML 结果设置分析规则后,如果结果超出了查询中设置的阈值,则一个事件会生成并显示在 Microsoft Sentinel 上的“事件”页上。
后续步骤
本文档介绍了如何使用 Microsoft Sentinel 的 BYO-ML 平台来自行创建或自行导入机器学习算法,以便分析数据和检测威胁。
- 请参阅 Microsoft Sentinel 博客中有关机器学习和众多其他相关主题的帖子。