mstic安全工具
msticp的Python项目详细描述
mstic jupyter和python安全工具
微软威胁情报python安全工具。
msticpy包最初是为支持jupyter笔记本而开发的。 为azure sentinel创作。 许多包含的工具可用于其他安全场景中进行威胁搜索 以及威胁调查。主要有三个子包:
- sectools-帮助进行数据分析或调查的python安全工具
- nbtools-特定于jupyter的ui工具,如小部件和数据显示
- 数据-特定于Sentinel/Log Analytics的数据接口
该软件包处于早期预览模式,因此可能存在错误,并且有几个 尚未优化性能的区域。 我们欢迎对新功能的反馈、错误报告和建议。
安装
pip安装msticpy
或者对于最新的开发版本
pip安装git+https://github.com/microsoft/msticpy
文档
完整的文档位于阅读文档
许多模块的示例笔记本都位于文档/笔记本文件夹和附带的笔记本中。
您还可以浏览本文档末尾引用的示例笔记本 (尤其是Windows警报调查笔记本)查看上下文中使用的某些功能。
安全工具子包-sectools
此子包包含几个有助于进行安全调查和搜索的模块:
base64解包
base64和archive(gz,zip,tar)提取器。输入可以是单个字符串 或熊猫数据帧的指定列。它将尝试识别任何base64编码的 字符串并解码它们。如果结果看起来像受支持的存档类型之一 将打开内容。每次解码/解包的结果都要重新检查,以便进一步 Base64内容,并将向下递归多达20个级别(默认值可以重写)。 输出为解码字符串(用于单字符串输入)或数据帧(用于数据帧输入)。
iocextract
使用一组内置正则表达式来查找折衷(IOC)模式的指示器。 输入可以是单个字符串或pandas数据框,其中一列或多列指定为输入。
以下类型是内置的:
- IPv4和IPv6
- DNS域
- 散列(md5、sha1、sha256)
- Windows文件路径
- Linux文件路径(这有点嘈杂,因为合法的Linux文件路径几乎可以包含任何字符)
您可以修改或添加到运行时使用的正则表达式。
输出是匹配字典(用于单字符串输入)或数据帧(用于数据帧输入)。
vtlookup
包装类包装病毒总API。 输入可以是单个ioc可观测数据或包含多个可观测数据的pandas数据帧。 处理需要病毒总帐户和API密钥,处理性能限制为 每分钟对您拥有的帐户类型的请求数。 支持IOC类型:
- 文件哈希
- DNS域
- IPv4地址
GEOIP
地理位置展望P代表IP地址。 本模块有两个不同的服务类:
- GeoliteLookup-MaxMind Geolite(请参见https://www.maxmind.com" rel="nofollow">https://www.maxmind.com)
- ipstacklookup-ipstack(请参见https://ipstack.com rel="nofollow">https://ipstack.com)
这两项服务都为非商业用途提供免费等级。然而, 付费等级通常会让你更精确、更详细 更高的吞吐量。MaxMind Geolite使用可下载的数据库, 而ipstack是一个在线查找(需要api密钥)。
事件群集
本单元旨在总结大量 事件分成不同模式的集群。大容量重复 活动通常会使您很难看到独特和有趣的项目。
这是一个使用scikit learn dbscan实现的无监督学习模块。
该模块包含从 字符串数据。例如,一个管理命令 用命令行在数千台服务器上进行一些维护 通过忽略字符值折叠成单个群集模式 在字符串中并使用分隔符或标记对值进行分组。
install-update -hostname {host.fqdn} -tmp:/tmp/{GUID}/rollback
异常值
类似于eventcluster模块,但更具实验性(读"less tested")。 它使用sklearn隔离林来识别单个数据集中的异常事件,或者使用 一组数据作为训练数据,另一组数据用于预测异常值。
auditdextract
用于加载和解码Linux审核日志的模块。它折叠共享相同的消息 将消息id转换为单个事件,解码十六进制编码的数据字段并执行一些 特定于事件的格式化和规范化(例如,对于流程启动事件,它将 将进程命令行参数重新组合为单个字符串)。
这项工作仍在进行中。
笔记本工具子包-nbtools
这是一个显示和实用模块的集合,旨在使 在Jupyter笔记本电脑中使用安全数据更快更容易。
- nbwidgets-将常见功能(如列表选择器、时间边界设置、将环境变量保存和检索到单行可调用命令中)分组。
- nbdisplay-以比print()更易使用的方式实现警报、事件等常见显示的函数
- EntitySchema-实现日志分析警报和许多这些模块中使用的实体类(例如主机、帐户、IP地址)。每个实体封装一个或多个与该实体相关的属性。
数据子包-数据
这些组件目前仍然是nbtools子包的一部分,但是 将它们重新分解成自己的包。
- 查询管理器-使用kqlmagic实现常见kql/log分析查询的模块集合
- 安全警报和安全事件-警报和事件的封装类。
每个都有一个标准的"entities"属性,反映在警报或事件中找到的实体。
这些也可以用作许多查询的元参数。
例如,下面的查询将提取hostname
查询参数的值
来自警报:
qry.list_主机登录(provs==[查询次数,警报])
将此回购协议中的笔记本克隆到azure笔记本
需要登录到azure笔记本
github或 有关详细信息和版本要求,请参见requirements.txt。 这个项目欢迎大家提出意见和建议。大多数捐款要求您同意
出资人许可协议(CLA)声明您有权并且实际上有权授予我们
使用您的捐款的权利。有关详细信息,请访问https://cla.microsoft.com" rel="nofollow">https://cla.microsoft.com 当您提交拉取请求时,cla bot将自动确定您是否需要提供
a cla并适当地装饰pr(例如,标签、注释)。只需按照说明操作
由机器人提供。您只需使用我们的CLA在所有回购协议中执行一次即可。 本项目采用了微软开源行为准则。
有关更多信息,请参见行为准则常见问题解答或
如有任何其他问题或意见,请联系opencode@microsoft.com。待办事项
支持的平台和软件包
贡献
推荐PyPI第三方库