数据处理:巧用Excel去重IDS规则

技巧分享 技巧 分享 IDS

近期在IDS-suricata规则整理工作中,遇到规则对比去重的问题,特此记录一下我的解决之法,以供参考。

前述

众所周知,开源IDS-suricata是一款开源高性能的入侵检测系统,并支持ips(入侵防御)与nsm(网络安全监控)模式,用来替代原有的snort入侵检测系统,完全兼容snort规则语法和支持lua脚本。具体入门知识,参考安全脉搏上的文章:Suricata IDS 入门 — 规则详解
在此,先列举一个典型规则

(msg:"INDICATOR-SHELLCODE  heapspray characters detected - ASCII     "; flow:to_client,established; file_data; content:"0d0d0d0d";  fast_pattern:only; metadata:service ftp-data, service http,service imap, service  pop3;  reference:url,sf-freedom.blogspot.com/2006/07/heap-spraying-internet-exploiter.html;  classtype:attempted-user; sid:33339; rev:1;)

去重准备

去重最重要的就是找唯一对比值
从上述文章中可知在每条规则的特定字段

sid:用于唯一性规则标识,sid不能重复

因此,去重就要先提取出每一条规则的sid
贴上python脚本代码:

# coding=utf-8
import re

f_rule = open('.\\scan+trojan+worm.rules','r')#需要提取的规则文件
f_rule_readlines = f_rule.readlines()#读取所有行,返回列表

for i in range(0,5584):#文件总行数
    #print f_rule_readlines[i]
    p=re.search(r'sid:[\d]+',f_rule_readlines[i])#从每一行内容匹配特定字符

    if p==None:
        newRule='null'
    else:
        newRule=p.group()

    print (newRule)


print之后,再替换sid:为空,就获得每一行的sid
再用同样的脚本,对base.rules进行提取sid,复制到excel表中

EXCEL去重技巧

众所周知,EXCEL是一款神器,内置无数技巧,处理数据一流,我们接下来不用写Python代码,直接利用EXCEL自带功能进行数据去重(现成的好用,何必再造轮子呢?)

我用的是WPS,依次点击数据-数据对比-标记两区域中重复值

如上图,对应填好需要对比的区域,点击确定即可

此时,可见重复的sid值所在的单元格已经有了标记颜色

但是,如何把重复的sid对应到每一条rule中??然后再把重复的rules删除,而且我还不想写Python代码

???怎么办???

我是这样解决的:把之前的rules数据也一同复制到excel列中,这样,每一行的sid都能与rules对应上,不会混乱

下面就是展现真正的技术了

Ctrl+F,进入替换功能,点击选项

点击格式,选定 背景颜色

然后点击到被颜色标记的单元格,选定查找全部

然后Ctrl+A,选择所有被查找到的单元格

然后鼠标移动到单元格(此时,所有被标记的单元格都已经被选中),右键-删除

然后选择-删除整行即可

新评论

称呼不能为空
邮箱格式不合法
网站格式不合法
内容不能为空