参考:
因为毕业论文涉及到网络安全,需要对DARPA 1999这类数据进行分析,过程中发现Snort
安装、使用相关的中文教程实在罕见,且安装配置过程较复杂,自己也踩了不少坑,为了以后方便,在这里对国外的一些实用教程进行汇总。
如果觉得文字不好理解可直接看参考中的视频教程。
1. Snort
在Windows
上的安装过程
这里仅介绍在Windows上的安装教程,centOS教程在参考中列出了
1.1 下载
官网下载两个文件:
- snort安装文件
Snort_x_x_x_Installer.exe
- 版本号对应的规则文件
snortrules-snapshot-xxxxx.tar.gz
(注意检查版本号,要与安装文件匹配)
1.2 安装
安装snort
后,将snortrules-snapshot-xxxxx.tar.gz
中的rules
和preproc_rules
文件夹解压并覆盖到snort
安装根目录
1.3 编辑snort.conf
文件
由于简书不支持diff语法,不在这里贴出修改后的文件了,请移步github参考diff示例对Snort\etc\snort.conf
进行修改。
1.4 规则文件
Snort
官网免费提供的规则文件对于DARPA2000这类比较久远的数据集而言十分鸡肋(比如针对DDoS
的规则文件直接就是一个空文件,而DARPA2000
的主要内容就是DDoS
)。原因很简单,时代变了,很多在十几年前有效的规则不再适用于当前的网络环境,所以被删除了。即使你去使用付费订阅的规则集也未必对DARPA数据集有效。
snort在版本迭代过程中删除的所有规则都可以在官网规则中的deleted.rules
里面找到。但可惜的是,我找不到一个完整的修改日志,也就是说无法通过deleted.rules
将规则还原到指定年代。我们用DARPA2000做研究又必须依赖那些比较老的规则集,而Snort
官网已经不再提供这些老版本的下载途径。下面给出我自己搜集的Snort老版本规则
以及一些第三方规则
资源。
snort老版本规则:
链接: https://pan.baidu.com/s/1IhN7fxq6Zjo0qGRKU2Urvw 提取码: qw1q
- 针对DDoS规则文件
- 综合性规则文件(缺少DDoS检测)
- Emerging Threats rule (这个规则集亲测有效,但也不全面)
关于DARPA2000
针对DARPA2000
需要特别说明一下,这个数据集的DDoS
攻击是内网主机被黑客控制向外网地址发出攻击,并且攻击过程中会随机地生成IP地址来隐藏源IP。要想检测到这个DDoS攻击,规则中的ip和端口必须是any any -> any any
,而不是$EXTERNAL_NET any -> $HOME_NET any
。
1.5 修改告警存储方式
默认存储的xxx.ids
文件便于阅读,但不便于用程序分析。通过修改snort.conf
可以将Snort
告警的存储格式修改为csv
,添加如下配置:
output alert_csv: alert.csv default
详细配置参数说明参照文档
需要注意:当配置了csv输出时,不会输出威胁等级。目前没有找到解决方法
2. DARPA数据处理
2.1 示例
在很多文献中,使用Snort
进行实验的步骤是
- 以IDS模式运行
Snort
:
snort -x 100 -i ens33 -c D:\Snort\etc\snort.conf -l D:\Snort\log -A full
使用
tcpreplay
对数据进行重放Snort
检测到攻击并生成日志由于在重播时使用了倍速重播,还要解决时间间隔与原始数据不一致的问题。
2.2 的做法
上面这种做法在你确实需要仿真环境做其它一些事情的时候,可能是一个很好的方案。但大多数情况下我们只是想要获取Snort
的告警日志,其实用下面这一行代码就够了:
snort -c D:\Snort\etc\snort.conf -r D:\data\DARPA1999\inside.tcpdump -l D:\Snort\log
Snort
会自动地处理所有数据并生成告警日志,这种方式可以节省很多时间。生成的日志文件位于D:\Snort\log
,且时间与inside.tcpdump
完全一致。