跳转到主要内容

MSTIC Notebooklets

项目描述

msticnb - Jupyter Notebooks的Notebooklets

msticnb.readthedocs阅读完整文档

msticnb是msticpy的配套包。它设计用于由安全运维工程师和分析师在Jupyter notebooks中使用,以便他们能够快速访问常见的notebook模式,例如检索主机或IP地址的摘要信息。

Notebooklet browser showing list of notebooklets and some details of the user documentation for the selected notebooklet.

每个notebooklet相当于传统笔记本中的多个单元格和大量代码。您可以用两行代码(如果您不耐烦,甚至一行)导入和运行notebooklet。通常,notebooklet的输入参数将是一个标识符(例如主机名)和时间范围(在此范围内查询数据)。一些notebooklet(主要是打包的分析)将以pandas DataFrame作为输入。

    host_summary = nb.nblts.azsent.host.HostSummary()
    host_sum_rslt = host_summary.run(
        value="Msticalertswin1", timespan=time_span
    )

您可以创建自己的notebooklet,并使用与包中现有的相同的框架。


notebooklet

什么是notebooklet?

notebooklet是一系列实现了某些有用可重复序列的notebook单元格。它们是msticpy包的扩展,旨在简化为网络安全猎人和调查员编写Jupyter笔记本。notebooklet的目标是替换笔记本中常见操作的重复和冗长的样板代码。

以下是一些示例:

  • 获取指定主机的摘要(IP地址、云注册信息、最近警报)
  • 获取账户活动(主机和云登录失败、最近活动摘要)
  • 使用威胁情报数据分类警报(通过关联威胁情报来源优先排序您的警报)

目标受众

  • 使用Jupyter笔记本进行工作的网络安全调查员和猎人
  • 安全运营中心(SOC)工程师/SecDevOps为SOC分析师构建可重复使用的notebook

我们为什么创建notebooklet?

  • notebook代码可能很快就会变得复杂和冗长
    • 模糊了您试图显示的信息
    • 可能令非开发者感到害怕
  • notebook代码单元格中的代码不易重复使用
    • 您可以复制和粘贴,但如何将更改同步回原始notebook?
    • 在notebooks中难以发现代码片段
  • notebook代码通常很脆弱
    • 通常没有参数化或模块化
    • 代码块通常依赖于之前分配的全局值
    • 输出数据没有标准格式
    • 难以测试

为什么这些不是msticpy的一部分?

  • msticpy旨在实现平台无关性,而大多数notebooklet(如果不是全部)都假设一个特定的数据模式,该模式适用于他们的数据提供商/SIEM。
  • msticpy主要用于离散功能,如数据采集、分析和可视化。Msticnb使用此功能实现常见的SOC场景。

传统notebook与使用notebooklet的notebook

左侧的notebook主要使用内联代码(占用notebook的50%以上)。右侧的notebook使用单个notebooklet,仅包含3或4行代码。

Comparing a standard notebook with one using a notebooklet. The standard notebook on the left can require large amounts of code. The notebook on the right uses just 3 lines of code.

notebooklet的特点

  • 它们有一个或少数几个入口点/方法(通常是“运行”方法)
  • 它们是可参数化的(例如,您可以提供主机名、IP地址、时间范围等),并且它们可能有运行时选项,允许跳过不需要的处理或包含可选处理
  • 它们可以查询、处理或可视化数据(或任何组合)
  • 它们返回一个可以用于notebook后续部分的结果包
  • 如果需要,可以将代码导入notebook单元格进行修改。

限制

  • 它们通常特定于数据后端/SIEM,因为SIEM供应商之间的数据模式和布局不同。
  • notebooklet代码布局通常比标准notebook代码更复杂

使用notebooklet

有关这些步骤的更详细说明和其他功能的说明,请参阅Notebooklets笔记本

安装包

pip install msticnb

导入和初始化

Python statement to import msticnb - 'import msticnb as nb'

init方法加载与所选数据平台相关的数据驱动和数据提供者。

Python statement to initialize msticnb - nb.init('AzureSentinel')

选择要使用的notebooklet

您可以通过命令行使用自动补全功能选择一个笔记本。您还可以通过笔记本名称和文档中的关键词和文本搜索笔记本。

最简单的方法是使用nb.browse()方法。这将列出所有可用的笔记本,并显示每个笔记本的文档、使用信息和示例代码片段。

Notebooklet browser showing list of notebooklets and some details of the user documentation for the selected notebooklet.

实例化笔记本并执行"运行"命令。

笔记本通常有一个单个的run方法,这是笔记本的入口点。笔记本可能还有其他方法,以便在运行方法完成后进行进一步钻取、数据检索、可视化或其他操作。运行通常需要参数,例如主机或账户标识符以及要执行操作的日期范围。

Python code cell showing the creation of a notebooklet instance from the WinHostevents notebooklet class. The notebooklet 'run' method is called with parameters supplying the name of the host and a time range.

笔记本将输出直接显示在笔记本中(尽管这可以被抑制)- 显示文本、数据表和可视化。这些数据都保存在结果对象中。数据项是这个结果对象的简单属性,例如DataFrame、图形或简单的Python字典。您可以单独访问这些数据,也可以使用IPython display()或直接在空单元格中输入结果对象名称并运行该单元格来显示结果对象。

The notebooklet displays output directly to th notebook. The output includes styled tables, text headings and descriptions and interactive timeline visualizations.

查看笔记本的扩展帮助

您可以使用show_help()方法从任何笔记本类或实例访问详细文档。这包括高级描述和使用信息(参数、可用方法、选项)。它还描述了将显示的主要输出部分以及返回结果的内容。

注意:此帮助的内容也显示在之前显示的笔记本浏览器中。

The notebooklet help displays a description, parameter and other usage information and available methods. It also describes the major output sections and the contents of the return results.

当前笔记本

AccountSummary

检索选定账户的账户摘要。

主要操作

  • 在Active Directory、Windows和Linux主机日志中搜索与账户名称匹配的内容。
  • 如果找到匹配项,将返回一个选择小部件,您可以从中选择账户。
  • 选择账户将显示最近活动摘要,并检索与账户相关的任何警报和搜索书签。
  • 可以使用browse_alerts和browse_bookmarks方法浏览警报和书签。
  • 您可以调用find_additional_data方法来检索并显示账户的更详细活动信息(例如主机登录、Azure和Office 365活动)。

EnrichAlerts

警报丰富笔记本类。

丰富Azure Sentinel警报,添加威胁情报和其他数据。

HostLogonsSummary

主机登录摘要笔记本类。

查询并显示有关主机登录的信息,包括

  • 成功登录摘要
  • 登录事件时间可视化
  • 远程登录源的地理位置
  • 根据主机类型对各种登录元素进行可视化
  • 有关成功和失败登录的用户数据

HostSummary

HostSummary笔记本类。

查询并显示有关主机的信息,包括

  • IP地址分配
  • 相关警报
  • 相关搜索/调查书签
  • Azure订阅/资源数据。

WinHostEvents

Windows主机安全事件笔记本类。

查询并显示Windows安全事件,包括

  • 所有安全事件摘要
  • 提取并显示账户管理事件
  • 账户管理事件时间线
  • 可选地将打包的事件数据解析到DataFrame列中

进程(4688)和账户登录(4624、4625)不包括在此模块处理的事件类型中。

IpAddressSummary

检索有关IP地址的常见数据,包括

  • 尝试确定IP地址是外部还是内部(即由组织拥有)
  • Azure心跳、网络分析或VMComputer记录
  • Geo-IP和Whois数据
  • 威胁情报报告
  • 相关警报和搜索书签
  • 涉及IP地址的网络流
  • 源自IP地址的Azure活动(例如登录)

NetworkFlowSummary

网络流摘要笔记本类。

查询网络数据,为来自或前往主机或IP地址的网络流量绘制时间线。

  • 按协议和方向绘制流量事件
  • 按协议绘制流量数量
  • 显示流量摘要表
  • 按ASN显示流量摘要
  • 在地图上显示结果

TemplateNB

Template Notebooklet类。

创建附加notebooklets的代码模板。

另请参阅

msticpy文档

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源分布

msticnb-1.2.3.tar.gz (104.2 kB 查看哈希值)

上传时间

构建分布

msticnb-1.2.3-py3-none-any.whl (121.6 kB 查看哈希值)

上传时间 Python 3

支持者

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面