使用 Jupyter 笔记本搜寻安全威胁

Jupyter 笔记本将完整的可编程性与用于机器学习、可视化效果和数据分析的大量库集合组合在一起。 这些属性使 Jupyter 成为安全调查和搜寻的引人注目的工具。

Microsoft Sentinel 的基础是数据存储;它结合了高性能查询和动态架构并可扩展到大规模数据卷。 Azure 门户和所有 Microsoft Sentinel 工具都使用一个公共 API 来访问此数据存储。 同一 API 也可用于 Jupyter 笔记本和 Python 等外部工具。

何时使用 Jupyter 笔记本

虽然可以在门户中执行许多常见任务,但 Jupyter 扩展了可对此数据执行的操作范围。

例如,使用笔记本可以进行以下操作:

  • 执行 Microsoft Sentinel 中非现成提供的分析(例如某些 Python 机器学习功能)
  • 创建 Microsoft Sentinel 中非现成提供的数据可视化效果(例如,自定义时间线和进程树)
  • 集成 Microsoft Sentinel 外部的数据源(例如,本地数据集)。

我们已将 Jupyter 体验集成到 Azure 门户中,使你可以轻松地创建和运行笔记本来分析数据。 Kqlmagic 库提供了一种连接,使你可以从 Microsoft Sentinel 获取 KQL 查询并直接在笔记本中运行它们。

Microsoft 的某些安全分析师开发的几个笔记本打包在 Microsoft Sentinel 中:

  • 其中一些笔记本专门用于特定方案,可以按原样使用。
  • 其他笔记本用作示例,以说明可以复制或修改以便在自己的笔记本中使用的技术和功能。

其他一些笔记本也可以从 Microsoft Sentinel GitHub 存储库导入。

Jupyter 笔记本的工作原理

笔记本包括两个组件:

  • 基于浏览器的界面,你可以在其中输入和运行查询和代码,执行结果也显示在此处。
  • 内核,负责分析和执行代码本身。

Microsoft Sentinel 笔记本的内核在 Azure 虚拟机 (VM) 上运行。 VM 实例支持同时运行多个笔记本。 如果你的笔记本包含复杂的机器学习模型,则可以使用几种许可选项来使用功能更强大的虚拟机。

了解 Python 包

Microsoft Sentinel 笔记本使用许多常见的 Python 库(例如,pandas、matplotlib、bokeh 等) 。 还提供了许多其他 Python 包供你选择,涵盖的领域包括:

  • 可视化效果和图形
  • 数据处理和分析
  • 统计和数字计算
  • 机器学习和深度学习

为了避免将复杂而重复的代码键入或粘贴到笔记本单元格中,大多数 Python 笔记本依赖于名为包的第三方库。 若要使用笔记本中的包,需要安装和导入包。 Azure ML 计算预先安装了最常见的包。 请确保导入包或包的相关部分,如模块、文件、函数或类。

Microsoft Sentinel 笔记本使用名为 MSTICPy 的 Python 包,它是用于数据检索、分析、扩充和可视化效果的网络安全工具集合。

MSTICPy 工具专为帮助创建用于搜寻和调查的笔记本而设计,我们正在积极地致力于提供新功能和改进。 有关详细信息,请参阅:

查找笔记本

在 Azure 门户中,转到“Microsoft Sentinel”>“威胁管理”>“笔记本”,以查看 Microsoft Sentinel 提供的笔记本。 有关 Microsoft 生成的或者社区贡献的其他笔记本,请转到 Microsoft Sentinel GitHub存储库

管理对 Microsoft Sentinel 笔记本的访问权限

若要在 Microsoft Sentinel 中使用 Jupyter 笔记本,首先必须具有适当的权限,具体取决于用户角色。

虽然可以在 JupyterLab 或 Jupyter 经典中运行 Microsoft Sentinel 笔记本,但在 Microsoft Sentinel 中,笔记本在 Azure 机器学习 (Azure ML) 平台上运行。 要在 Microsoft Sentinel 上运行 notebook,必须对 Microsoft Sentinel 工作区和 Azure ML 工作区均具有适当的访问权限。

权限 说明
Microsoft Sentinel 权限 与其他 Microsoft Sentinel 资源一样,若要访问 Microsoft Sentinel Notebook 边栏选项卡上的笔记本,需要 Microsoft Sentinel 读取者、Microsoft Sentinel 响应者或 Microsoft Sentinel 参与者角色。

有关详细信息,请参阅 Microsoft Sentinel 中的权限
Azure 机器学习权限 Azure 机器学习工作区是一种 Azure 资源。 与其他 Azure 资源一样,创建新的 Azure 机器学习工作区时,它附带了默认角色。 可以将用户添加到工作区,并将他们分配给这些内置角色之一。 有关详细信息,请参阅 Azure 机器学习默认角色Azure 内置角色

重要说明:在 Azure 中可将角色访问权限划分为多个级别。 例如,对工作区具有所有者访问权限的人可能没有对包含工作区的资源组的所有者访问权限。 有关详细信息,请参阅 Azure RBAC 工作原理

如果你是 Azure ML 工作区的所有者,可以添加和删除工作区的角色,并将角色分配给用户。 有关详细信息,请参阅:
- Azure 门户
- PowerShell
- Azure CLI
- REST API
- Azure 资源管理器模板
- Azure 机器学习 CLI

如果内置角色不足,还可以创建自定义角色。 自定义角色可能具有该工作区中的读取、写入、删除和计算资源权限。 可以使角色在特定工作区级别、特定资源组级别或特定订阅级别可用。 有关详细信息,请参阅创建自定义角色

后续步骤

其他资源:

  • 使用 Microsoft Sentinel GitHub 存储库中共享的笔记本作为开发自己的笔记本时可以使用的有用工具、演示和代码示例。

  • 欢迎提交反馈、建议、功能请求、笔记本、bug 报告或对现有笔记本的改进和补充。 请前往 Microsoft Sentinel GitHub 存储库创建问题或分支并上传贡献。

  • 通过探索一些笔记本模板,了解更多关于在威胁追踪和调查中使用笔记本的知识。

    在 Microsoft Sentinel >“笔记本”>“模板”选项卡中找到更多笔记本模板。

  • 有关更多笔记本,请参阅 Microsoft Sentinel GitHub 存储库

    • Sample-Notebooks 目录包括与可用于显示预期输出的数据一起保存的示例 notebook。

    • HowTos 目录包含描述设置默认 Python 版本、从笔记本创建 Microsoft Sentinel 书签等概念的笔记本。

有关详细信息,请参阅: