MSTIC安全工具
项目描述
MSTIC Jupyter和Python安全工具
Microsoft威胁情报Python安全工具。
msticpy 是一个用于Jupyter笔记本中信息安全和狩猎的库。它包括以下功能:
- 从多个来源查询日志数据
- 使用威胁情报、地理位置和Azure资源数据丰富数据
- 从日志中提取活动指标(IoA)并解包编码数据
- 执行复杂的分析,如异常会话检测和时间序列分解
- 使用交互式时间线、流程树和多维形态图可视化数据
它还包括一些节省时间的笔记本工具,例如设置查询时间边界、从列表中选择和显示项目以及配置笔记本环境的控件。
msticpy 包最初开发用于支持 Jupyter笔记本 编写用于 Azure Sentinel。虽然Azure Sentinel仍然是我们工作的重点,但我们正在扩展数据查询/获取组件以从其他来源提取日志数据(目前支持Splunk、Microsoft Defender for Endpoint和Microsoft Graph,但我们正在积极开发支持其他SIEM平台的数据)。大多数组件也可以用于任何来源的数据。Pandas DataFrames被用作几乎所有组件的通用输入和输出格式。还有一个数据提供程序,可以轻松地从本地CSV文件和pickle DataFrames中处理数据。
该包解决了安全调查员和狩猎者三个核心需求
- 获取和丰富数据
- 分析数据
- 可视化数据
我们欢迎反馈、错误报告、新功能建议和贡献。
安装
对于核心安装
pip install msticpy
如果您正在使用 MSTICPy 与 Azure Sentinel,应使用 "azsentinel" 扩展包安装
pip install msticpy[azsentinel]
或对于最新的开发版本
pip install git+https://github.com/microsoft/msticpy
升级
要升级 msticpy 到最新的公开非测试版本,运行
pip install --upgrade msticpy
请注意,将您的 msticpyconfig.yaml 复制并存储在磁盘上但不在您的 msticpy 文件夹中,并在环境变量中引用它是一个好习惯。这可以防止您在每次更新 msticpy 安装时丢失您的配置。
文档
完整文档位于 ReadTheDocs
许多模块的示例笔记本在 docs/notebooks 文件夹和伴随的笔记本中。
您还可以浏览此文档末尾引用的示例笔记本,以了解一些在上下文中使用的功能。您可以在mybinder.org上的交互式演示中尝试一些包功能。
日志数据获取
QueryProvider 是一个可扩展的查询库,针对 Azure Sentinel/Log Analytics、Splunk、OData 和其他日志数据源。它还专门支持 Mordor 数据集和本地数据。
内置的参数化查询允许通过单个函数调用运行复杂的查询。使用简单的 YAML 架构添加您自己的查询。
数据丰富
威胁情报提供者
The TILookup 类可以在多个 TI 提供者中查找 IoC。内置提供者包括 AlienVault OTX、IBM XForce、VirusTotal 和 Azure Sentinel。
输入可以是一个IoC可观察对象,或者包含多个可观察对象的pandas DataFrame。根据提供商的不同,您可能需要一个账户和API密钥。一些提供商还实施限制速率(尤其是免费层),这可能会影响批量查找的性能。
地理位置数据
GeoIP查找类允许您使用以下方式匹配IP地址的地理位置:
- GeoLiteLookup - Maxmind GeoLite(见 https://www.maxmind.com)
- IPStackLookup - IPStack(见 https://ipstack.com)
Azure 资源数据、存储和 Azure Sentinel API
AzureData模块包含用于丰富与Azure主机详细信息相关的数据的功能,这些主机详细信息通过Azure API公开。AzureSentinel模块允许您查询事件、检索检测器和狩猎查询。AzureBlogStorage让您能够从blob存储中读取和写入数据。
Azure 资源 API、Azure Sentinel API、Azure 存储
安全分析
此子包包含一些模块,有助于进行安全调查和狩猎
异常序列检测
检测您的Office、Active Directory或其他日志数据中的异常事件序列。您可以提取会话(例如,由同一账户发起的活动)并识别和可视化异常的活动序列。例如,检测攻击者在某人的邮箱上设置邮件转发规则。
时间序列分析
时间序列分析允许您在考虑正常的季节性变化(例如,事件在一天中的小时、一周中的天等)的情况下,识别日志数据中的异常模式。使用分析和可视化可以突出显示任何数据集的异常流量或事件活动。
可视化
事件时间线
在交互式时间线中显示任何日志事件。使用 Bokeh 可视化库,时间线控件允许您可视化一个或多个事件流,交互式地放大特定时间段并查看所绘事件的事件详细信息。
进程树
进程树功能有两个主要组件
- 进程树创建 - 从主机获取进程创建日志,并在数据集中构建进程之间的父子关系。
- 进程树可视化 - 这将处理后的输出显示为使用Bokeh绘制的交互式进程树。
有一组实用函数可以从处理后的数据集中提取单个和部分树。
数据处理和实用函数
转置函数
让您以“实体为中心”的方式使用 MSTICPy 功能。所有与特定实体类型(例如主机、IP地址、URL)相关的函数、查询和查找都被收集在该实体类的方法中。因此,如果您想对IP地址进行操作,只需加载IpAddress实体并浏览其方法即可。
base64unpack
Base64和存档(gz、zip、tar)提取器。它将尝试识别任何Base64编码的字符串并尝试解码它们。如果结果看起来像支持的存档类型之一,它将解包内容。对每个解码/解包的结果都会重新检查以进一步查找Base64内容,并达到指定的深度。
iocextract
使用正则表达式查找妥协指标(IoC)模式 - IP地址、URL、DNS域、哈希、文件路径。输入可以是一个字符串或pandas数据框。
eventcluster(实验性)
本模块旨在用于将大量事件总结为不同模式的集群。大量重复事件往往难以看到独特和有趣的项目。
这是一个使用SciKit Learn DBScan实现的非监督学习模块。
auditdextract
用于加载和解码Linux审计日志的模块。它将具有相同消息ID的消息合并为单个事件,解码十六进制编码的数据字段,并执行一些特定事件的格式化和归一化(例如,对于进程启动事件,它将重新组装进程命令行参数为单个字符串)。
syslog_utils
模块,用于支持仅启用syslog日志记录的Linux主机的调查。这包括汇总主机数据、聚类登录事件和检测包含可疑活动的用户会话的函数。
cmd_line
模块,用于支持检测已知恶意命令行活动或可疑的命令行活动模式。
domain_utils
模块,用于支持调查域名和URL,包括验证域名和截图URL的函数。
笔记本小部件
这些是从 Jupyter ipywidgets 收集中构建的,并将常用功能(如列表选择器、查询时间边界设置和事件显示)组合到易于使用的格式中,以用于信息安全任务。
示例MSTICPy笔记本
更多Azure Sentinel笔记本在GitHub上的笔记本
示例笔记本
直接在GitHub上查看或在nbviewer.org中复制粘贴链接
具有保存数据的笔记本示例
请参阅以下笔记本,以获取更多此软件包在实际应用中使用示例
支持的平台和包
- msticpy是操作系统无关的
- 需要 Python 3.8或更高版本
- 有关更多详细信息及版本要求,请参阅requirements.txt
贡献
有关(简短)开发者指南,请参阅此维基文章 贡献指南
本项目欢迎贡献和建议。大多数贡献需要您同意一份贡献者许可协议(CLA),声明您有权并且实际上确实授予我们使用您的贡献的权利。有关详情,请访问 https://cla.microsoft.com。
当您提交拉取请求时,CLA机器人会自动判断您是否需要提供CLA,并相应地装饰PR(例如,标签、注释)。只需遵循机器人提供的说明。您只需在整个使用我们CLA的所有仓库中做一次。
本项目已采用 微软开源行为准则。有关更多信息,请参阅行为准则FAQ或通过opencode@microsoft.com联系以获取任何额外的问题或评论。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
构建版本
msticpy-2.13.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3b2cdbf72a0355addbed86c60b4ba62b7e7ae6b1264e121d9c8562bbe62a1a1e |
|
MD5 | 1e692a556572beca9fe2989967025011 |
|
BLAKE2b-256 | 6d437979ae703cb31a39c05216afe59e0d14a3c4805726fc955025cdf5f20e35 |
msticpy-2.13.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8db21cb0957bdd9f59366d1f82563191e432dfdaf0e41f579ecadd191667f7e3 |
|
MD5 | 69f7012a5456438e41d6dca511d626a9 |
|
BLAKE2b-256 | 0c9233d7c7f64c144abdfbea8ec451fd60a266e815cf5572da2a4536226054bc |