通过ZAT结合机器学习进行威胁检测

系列文章

通过ZAT结合机器学习进行威胁检测(二)

通过ZAT结合机器学习进行威胁检测(三)

机器学习概述

在机器学习中我们针对安全数据的处理显得异常重要,针对不同的攻击类型数据我们需要选择合适的算法但是大体过程都是分为以下几个步骤:

获取数据 特征抽取 特征预处理 特征降维 模型训练 模型评估

通过zat处理zeek全流量日志数据

今天这篇文章主要是介绍通过zat处理zeek的全流量数据的分析方法。 zeek是开源NIDS入侵检测引擎,目前使用较多的是互联网公司的风控业务。zeek中提供了一种供zeek分析的工具zat。 zat工具包处理zeek输出具备了多种的方法其中如下:

处理日志数据动态轮询

Zeek记录到Pandas数据框和Scikit-Learn

动态监视files.log并进行VirusTotal查询

动态监控http.log并显示“不常见”的用户代理

在提取的文件上运行Yara签名

检查x509证书

异常检测

处理zeek的dhcp.log日志数据

通过ZAT结合机器学习进行威胁检测 输出带有时间戳的字典
通过ZAT结合机器学习进行威胁检测1 处理zeek的dns.log日志数据,并使用 Pandas 将dns.log文件输出

通过ZAT结合机器学习进行威胁检测2

通过ZAT结合机器学习进行威胁检测3

接下来我们用sklearn进行数据集划分,这里展示部分代码
通过ZAT结合机器学习进行威胁检测4 输出结果:
通过ZAT结合机器学习进行威胁检测5 对zeek的file.log日志进行病毒文件查询,这里展示部分代码 。vt_query是查询VirusTotal的相关库
通过ZAT结合机器学习进行威胁检测6 针对VirusTotal服务查询每个文件sha256 / sha1 值
通过ZAT结合机器学习进行威胁检测7 针对zeek的http.log日志进行查询,这里主要是针对UA头的数据进行
通过ZAT结合机器学习进行威胁检测8输出结果
通过ZAT结合机器学习进行威胁检测9 用Yara 动态监视 extract_files目录,当Zeek删除文件时,代码将对该文件运行一组Yara规则
通过ZAT结合机器学习进行威胁检测10

输出结果

通过ZAT结合机器学习进行威胁检测11

对域名进行检测,并对这些url进行“病毒总数的查询”

通过ZAT结合机器学习进行威胁检测12

当你的机器访问 uni10.tk 时输出效果如下通过ZAT结合机器学习进行威胁检测13

针对x509.log的数据,因为有些钓鱼或者恶意网站流量是加密的。这个我们可以通过证书来进行判断

通过ZAT结合机器学习进行威胁检测14

运行后输出如下效果

通过ZAT结合机器学习进行威胁检测15

针对异常检测我们可以使用孤立森林算法进行异常处理。一旦发现异常,我们便可以使用聚类算法将异常分组为有组织的部分,从而使分析师可以浏览输出组,而不用一行行去看。

通过ZAT结合机器学习进行威胁检测16

输出异常分组

通过ZAT结合机器学习进行威胁检测17

检测tor和计算端口号。通过遍历zeek的ssl.log文件来确定tor流量这里贴出部分代码

通过ZAT结合机器学习进行威胁检测18

输出结果如下:

通过ZAT结合机器学习进行威胁检测19
通过ZAT结合机器学习进行威胁检测20

下一篇文章将会单独以zeek的dns.log日志为例介绍将dns.log数据进行sklearn特征工程并使用numpy进行矩阵运算和pca降维等等。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
大佬不来一句? 抢沙发

请登录后发表评论