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个级别(默认值可以重写)。 输出为解码字符串(用于单字符串输入)或数据帧(用于数据帧输入)。

base64unpack笔记本

iocextract

使用一组内置正则表达式来查找折衷(IOC)模式的指示器。 输入可以是单个字符串或pandas数据框,其中一列或多列指定为输入。

以下类型是内置的:

  • IPv4和IPv6
  • URL
  • DNS域
  • 散列(md5、sha1、sha256)
  • Windows文件路径
  • Linux文件路径(这有点嘈杂,因为合法的Linux文件路径几乎可以包含任何字符)

您可以修改或添加到运行时使用的正则表达式。

输出是匹配字典(用于单字符串输入)或数据帧(用于数据帧输入)。

base64打开笔记本

vtlookup

包装类包装病毒总API。 输入可以是单个ioc可观测数据或包含多个可观测数据的pandas数据帧。 处理需要病毒总帐户和API密钥,处理性能限制为 每分钟对您拥有的帐户类型的请求数。 支持IOC类型:

  • 文件哈希
  • URL
  • DNS域
  • IPv4地址

vtlookup笔记本

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密钥)。

geoip查找笔记本

事件群集

本单元旨在总结大量 事件分成不同模式的集群。大容量重复 活动通常会使您很难看到独特和有趣的项目。

这是一个使用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笔记本 githubnbviewer

  • github中的Windows主机资源管理器或href="https://nbviewer.jupyter.org/github/azure/azure sentinel/blob/master/notebooks/sample notebooks/example%20-%20guided%20hunting%20-%20windows host explorer.ipynb" rel="nofollow">nbviewer
  • Office 365 Exploration inGithubnbviewer
  • Github中的跨网络搜索Githubnbviewer
  • 待办事项

    • 将数据模块重构成单独的包。
    • 将自定义数据架构替换为入口
    • 将其他笔记本添加到工具的文档使用中。

    支持的平台和软件包

    • msticpy与操作系统无关
    • 需要python 3.6或更高版本
    • 需要以下python包:pandas、bokeh、matplotlib、seaborn、setuptools、urllib3、ipywidgets、numpy、attrs、requests、networkx、ipython、scikit-learn、typing
    • 对于某些特定功能,建议并需要以下软件包:kqlmagic、maxminddb_geolite2、folium、dnspython、ipwhois

    有关详细信息和版本要求,请参见requirements.txt


    贡献

    这个项目欢迎大家提出意见和建议。大多数捐款要求您同意 出资人许可协议(CLA)声明您有权并且实际上有权授予我们 使用您的捐款的权利。有关详细信息,请访问https://cla.microsoft.com" rel="nofollow">https://cla.microsoft.com

    当您提交拉取请求时,cla bot将自动确定您是否需要提供 a cla并适当地装饰pr(例如,标签、注释)。只需按照说明操作 由机器人提供。您只需使用我们的CLA在所有回购协议中执行一次即可。

    本项目采用了微软开源行为准则。 有关更多信息,请参见行为准则常见问题解答或 如有任何其他问题或意见,请联系opencode@microsoft.com

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


    热门话题
    java FloatingAction按钮与RecyclerView中的CardView重叠   java如何计算CardLayout中的卡数   从远程系统上传MySQL数据库并访问Java应用程序   java调用堆栈如何处理带或不带返回类型的递归?   Springboot中的java组计数聚集   java如何在javafx textarea中使用richtextfx   获取与Mockito相关的错误时出现Java问题   java如何将JaxRS响应转换为Wiremock响应   Hadoop集群java。net ConnectionException:连接被拒绝错误   java如何加载文件私有文件类型是pem   java在元空间中的提升和加载的类   如何将系统属性传递给从HTML启动的Java小程序   java如何从网页中获取值并在主类中使用它?安卓应用   java在春天,advisor和aspect之间有什么区别?   java如何检测文件是否已重命名?   java消息驱动Bean何时使用