在很多的场景下,会需要根据数据包判断数据包中存在的威胁。针对已有的数据包,如何判断数据包是何种攻击呢?
方法一可以根据经验,对于常见的WEB类型的攻击,比如SQL注入,命令执行等攻击,是比较容易判断的。但是威胁的变化千变万化,比如挖矿的流量特征,特定工具的特定特征,往往没有深入的研究对比,很难第一时间做出判断。
方法二将数据包导入特定的网络安全厂商设备,但是这些设备往往是商用设备,一方面需要收费,另一方面商业的设别往往会兼顾误报和告警的平衡,所应对的场景考虑比较的复杂,也难免出现漏保。
这个时候安全分析师如果构建本地的流量分析工具,在次基础上不断的积累,则能够按照自己的需求形成得心应手的兵器。目前安全行业针对流量威胁发现主要包含三个引擎,分别为suricata,snort以及zeek。其中suricata和snort偏向于已知威胁的发现,包括已知漏洞,已知的WEB攻击手段,黑客工具,恶意软件等等。ZEEK通过关键行为的记录,偏向于通过威胁狩猎发现未知的威胁。
针对这是三个流量检测引擎,可以分别到对应的github上下载,在Linux系统进行安装,将pcap分别送到三个引擎回放验证即可。但是同一个数据包需要在三个引擎中分别操作,需要三次还是比较的繁琐。此时可以借助dalton开源项目,dalton 通过一个控制器对于suricata,snort,zeek三个流量探针引擎进行集中管理,将结果统一的呈现。
dalton开源的地址见这里,由于dalton以docker的形式提供服务,使用起来还是非常的方便,因此需要把docker的版本更新到最新。根据dalton中的说明,如下:
docker service docker start
./start-dalton.sh
这个时候安装脚本会去下载多个docker容器,其中包括dalton服务相关的容器,例如controller,nginx,redis,suricata,snort,zeek等多个容器,dalton 安装成功之后,如下图1:
图1
其中snort,suricata,zeek为流量侧的探针容器,dalton_controller为流量探针调度控制容器,dalton_web为WEB UI容器,dalton_redis消息队列存储容器。可以看到UI开放的端口为80端口,因此直接访问对应的IP地址,如下图2:
图2
选择指定的引擎引擎版本(一般选择教新的版本)和规则集回放pcap,以suricata为例如下图3:
图3
如上图3,选择的为6.0版本的suricata,规则集合为suricata自带的规则集合,输出的日志为suricata自带的eve格式的日志。这其中比较的关键的是规则集的选择,由于suricata自带的规则比较少,因此建议丰富suricata的规则集,这也是安全分析师需要积累的方面。收集符合自身要求的规则集合,对于安全分析师的工作非常的重要,如下连接是github上常见的规则集合
https://github.com/klingerko/nids-rule-library
https://github.com/al0ne/suricata-rules
https://github.com/travisbgreen/hunting-rules
https://github.com/xNymia/Suricata-Signatures
其中nids-rule-library涉及的规则集合比较的丰富,如下图4:
图4
可以看到一些安全大厂像proofpoint提供了et open的规则集,以及et pro付费的规则集(每年的费用在5000元人民币左右),改规则主要倾向于是和攻击手段相关的规则。Talos实验室也给snort维护了一份漏洞的规则集(每年的费用在300元人民币左右,相对非常的便宜),改规则集主要倾向于知名漏洞相关的规则。除此之外还有abuse,osint等诸多的开源情报可以,包括数字证书的情报,恶意IP的情报,恶意域名的硬包。建议将讲这些规则集进行收录,作为个人的分析分析库使用。将上述定期更新的规则集,放到dalton目录下的rulesets目录下,则可以在页面上进行选择。如上图的3 rulesets中。
dalton提供了多种形式的告警,运行的结果如下图5所示:
图5
通常来说只要看alert中的告警即可,如果想要看更多的内容,进行诸如威胁狩猎相关的工作,则可以看一下eve json中的内容,如下图6:
图6
可以看到eve json中的内容除了alert告警之外,还提供了像anomaly异常事件,多种协议例如,smb,decrpc等协议的meta源信息记录的能力,可以从异常行为发现的角度分析更多的可以内容。
上述只是针对dalton中的suricata部分做了介绍,针对snort和zeek同理。值得注意的是,无论哪一种流量检测引擎,规则集都是极为重要的。由于个人安全分析师的场景无需考虑性能的影响,所面对的流量场景也非常的简单,因此建议可以针对snort,suricata,zeek可以收集github上所有的规则集合,并定期的更新,让本地工具检测能力达到极致。在后续的我的专栏中安全分析师中,这里,会做如下内容的介绍:
- 如何基于github打造个人的本地检测规则集合。
- 基于dalton的分析日志,进行攻击技术点的关联,打造安全事件检测工具,完成规则告警到安全事件的升级。
本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。