1.一种基于角标随机读取的Snort报警数据聚合方法,其特征在于,该方法包括以下步骤:S1.采集原始Snort报警数据;
S2.对原始Snort报警数据进行标准化得到的标准化Snort报警数据;
S3.对原始Snort报警数据进行预处理操作;
S4.以随机生成角标的方式对步骤S2获得的标准化Snort报警数据进行随机打散排列;
S5.计算打散后的标准化Snort报警数据的各属性的相似度;
S6.计算各打散后的Snort报警数据之间的全局相似度并计算每条Snort报警数据中各属性的权重值;
S7.根据步骤S5得到的各属性的相似度以及步骤S6得到的各属性的权重值计算每条Snort报警数据的全局相似度;并计聚合结果。
2.根据权利要求1所述的一种基于角标随机读取的Snort报警数据聚合方法,其特征在于,所述Snort报警数据包括由规则号、规则名称、优先级别、时间戳、原始IP、目的IP、协议类型、源端口、目的端口和报警类别10种属性构成的十元组。
3.根据权利要求1所述的一种基于角标随机读取的Snort报警数据聚合方法,其特征在于,所述步骤S3包括以下子步骤;
S31.对需预处理的原始Snort报警数据进行集合封装;
S32.从本地MySQL数据库的相关Snort表进行join操作生成所需的报警数据表;对整个Snort报警数据文本按每两条顺序读取加载,若读取到最后一行则直接跳出循环,否则一一加载到集合;
S33.将Snort报警数据按照指定的时间属性升序排序,在排序后的数据集上移动一个的固定大小时间窗口,每次只检测时间间隔小于固定大小时间窗口内的报警数据,判定它们是否匹配;
步骤S34.以计数迭代不断循环比较取最精简记录的方式使得重复率达到最低。
4.根据权利要求1所述的一种基于角标随机读取的Snort报警数据聚合方法,其特征在于,所述步骤S4包括以下子步骤:S41.对精简后的Snort报警数据进行集合封装;
S42.对整个Snort报警数据文本进行逐条顺序读取加载,若读取到最后一行则直接跳出循环,否则将加载到集合;
S43.对Snort报警数据按照时间属性进行升序排序和分月份划段处理,再对每个月内的数据进行随机打散排列。
5.根据权利要求1所述的一种基于角标随机读取的Snort报警数据聚合方法,其特征在于,在所述步骤S5中,所述各属性的相似度包括报警名称属性相似度、报警标识属性的相似度、报警名称属性的相似度、报警时间戳相似度和IP地址相似度。
6.根据权利要求1所述的一种基于角标随机读取的Snort报警数据聚合方法,其特征在于,在所述步骤S6中,采用熵值法来确定各个指标的权重计算。
7.根据权利要求1所述的一种基于角标随机计取的Snort报警数据聚合方法,其特征在于,所述步骤S7包括以下子步骤:S71.计算每条报警数据的全局相似度;
S72.对计算全局相似度后的Snort报警数据进行集合封装;
S73.对整个Snort报警数据文件进行逐条顺序读取加载,若读取到最后一行则直接跳出循环,否则加载到集合;
S74.读取指定的每条报警数据总相似度属性列的内容分别与期望阈值集合进行比较,并统计满足条件的报警条数;
S75.若全局相似度小于期望阈值,则该条报警数据为聚合所得到的报警数据结果;否则,则表明此条报警数据不是所期望的聚合范围。
8.根据权利要求5所述的一种基于角标随机计取的Snort报警数据聚合方法,其特征在于,在计算Snort报警数据名称属性相似度时,使用Tableau Desktop进行统计分析,Snort报警数据名称属性相似度计算公式设置如下:其中,Simname(Alerti,Alertj)是报警数据的名称相似度值,Alerti和Alerti分别表示第i条和第j条报警数据,Alert_signame是报警数据的名称属性。
9.根据权利要求5所述的一种基于角标随机计取的Snort报警数据聚合方法,其特征在于,所述时间戳相似度通过以下方法计算获得:将时间间隔Tinternal和预设的最小阈值tmin及最大阈值tmax进行比较,当时间间隔Tinternal小于tmin则相似度为0,当时间间隔Tinternal大于tmax则相似度为1,如果时间间隔Tinternal在tmin和tmax之间,计算公式设置如下:其中,Simtimestamp(Alerti,Alertj)是报警数据时间戳的相似度值,Alerti和Alerti分别表示第i条和第j条报警数据;
所述IP地址相似度通过以下方法计算获得,
采用无类别域间路由的格式对于IP地址的比较,将每两条报警数据相同的二进制位个数r除以IP地址二进制位长度的值作为两个IP地址的相似度;
计算公式设置如下:
其中,Simip(Alerti,Alertj)是报警数据的IP相似度值,Alerti和Alerti分别表示第i条和第j条报警数据。
10.根据权利要求4所述的一种基于角标随机读取的Snort报警数据聚合方法,在所述步骤S43中,先将每个月内随机打散后的中间报警数据用M集合存储,再统一用R集合重新存储得到最后的报警数据;其中,每遍历一次取两条报警数据所在行号得到生成的随机数与角标标记区进行比较,如果第一次出现,则将其存入并退出当层循坏,否则重新生成随机数取值再进行比较。