近期在IDS-suricata规则整理工作中,遇到规则对比去重的问题,特此记录一下我的解决之法,以供参考。
前述众所周知,开源IDS-suricata是一款开源高性能的入侵检测系统,并支持ips(入侵防御)与nsm(网络安全监控)模式,用来替代原有的snort入侵检测系统,完全兼容snort规则语法和支持lua脚本。具体入门知识,参考安全脉搏上的文章:Suricata IDS 入门 — 规则详解
在此,先列举一个典型规则
去重最重要的就是找唯一对比值
从上述文章中可知在每条规则的特定字段
sid:用于唯一性规则标识,sid不能重复
因此,去重就要先提取出每一条规则的sid值
贴上python脚本代码:
print之后,再替换 sid:为空,就获得每一行的 sid了
再用同样的脚本,对 base.rules进行提取 sid,复制到excel表中 EXCEL去重技巧
众所周知,EXCEL是一款神器,内置无数技巧,处理数据一流,我们接下来不用写Python代码,直接利用EXCEL自带功能进行数据去重(现成的好用,何必再造轮子呢?)
我用的是WPS,依次点击 数据-数据对比-标记两区域中重复值
如上图,对应填好需要对比的区域,点击确定即可
此时,可见重复的sid值所在的brdxc已经有了标记颜色
但是,如何把重复的sid对应到每一条rule中??然后再把重复的rules删除,而且我还不想写Python代码
???怎么办???
我是这样解决的:把之前的rules数据也一同复制到excel列中,这样,每一行的sid都能与rules对应上,不会混乱
下面就是展现真正的技术了
按Ctrl+F,进入替换功能,点击选项
点击 格式,选定 背景颜色
然后点击到被颜色标记的brdxc,选定查找全部
然后 Ctrl+A,选择所有被查找到的brdxc
然后鼠标移动到brdxc(此时,所有被标记的brdxc都已经被选中),右键-删除
然后选择- 删除整行即可