一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种检测攻击告警的方法、装置、检测设备及存储介质与流程

2022-04-16 13:31:59 来源:中国专利 TAG:


1.本技术涉及网络安全技术领域,尤其涉及一种检测攻击告警的方法、装置、检测设备及存储介质。


背景技术:

2.在网络攻击检测中,检测系统或者防护系统每天产生海量的告警数据,运维人员需要对告警数据进行排查,来确定哪些告警数据是有价值的告警,进而对有价值的告警进行分析,以维护网络安全。但是,海量的告警数据远远超出了运维人员的排查能力,而实际上,海量的告警数据中只有极少数是有价值的、需要人工介入排查的,其余绝大多数告警数据的实际价值都很低。
3.为了排除低价值的告警数据,通常是应用一套基线规则来对告警数据进行筛选,符合该基线规则的告警先验的认定为不重要,从而减轻运维人员的工作量。
4.相关技术中,生成该基线规则主要有以下几种方式:一、通关长期监控值守,人工梳理得到基线规则,但是,该方式依赖人的专业知识且效率低下;二、部分安全检测和防护产品提供一些预置且可以快速组装的规则组,作为基线规则,但是,这种方式得到的基线规则应用范围比较窄,无法深入适配具体网络和业务环境;三、基于异常检测的攻击识别方案,依赖于具体业务,如果应用在各种网络协议和业务类型混合的常规网络攻击中,效果差。


技术实现要素:

5.本技术实施例提供一种检测攻击告警的方法、装置、检测设备及存储介质,用以提高检测攻击告警的效率,降低误报率。
6.第一方面,本技术一实施例提供了一种检测攻击告警的方法,包括:
7.提取目标时间段内的各个告警信息中的共有可识别的特征字段;
8.基于每个告警信息中的每个所述特征字段的特征值对各个告警信息进行初始分组,确定各个组对应的描述信息;其中,所述各个组对应的描述信息包括对应组中各个告警信息的特征字段以及每个特征字段对应的特征值,且,不同告警信息的同一特征字段对应的特征值相同;
9.基于每个组的描述信息中的各个特征字段的特征值,对各个告警信息进行至少一次重新分组,直到重新分组后的每个组的描述信息中包括的特征字段的数量不大于第一预设数量阈值;
10.在初始分组以及重新分组后得到的各个组中,根据各个组的描述信息筛选出至少一个目标组,并根据所述至少一个目标组各自对应的目标描述信息确定至少一个基线规则;其中,每个所述基线规则为对应目标组的所述目标描述信息中的特征字段的特征值与对应的特征字段的组合;
11.将待检测的告警信息与所述至少一个基线规则进行匹配,根据匹配结果确定所述
待检测的告警信息是否为非关键告警。
12.本技术实施例中,通过提取目标时间段内的各个告警信息中的共有可识别的特征值字段,再基于每个告警信息中的每个特征字段的特征值对各个告警信息进行初始分组,由于初始分组中的不同告警信息的同一特征字段对应的特征值相同,因此,初始分组是一个细分组的过程。为了区分各个组,每个组对应一个描述信息,每个描述信息包括对应组中各个告警信息的特征字段和每个特征字段对应的特征值。接下来,再基于每个组的描述信息中的各个特征字段的特征值对各个告警信息进行至少一次重分组过程,与初始分组相比,该重新分组的过程为粗分组过程,直到重新分组后的每个组的描述信息中包括的特征字段的数量不大于第一预设数量阈值。这样,初始分组和至少一次重分组过程结束后,得到多个组,再根据各个组的描述信息筛选出来至少一个目标组,将每个目标组中的目标描述信息中的特征字段的特征值与对应的特征字段的组合为一个基线规则,再用得到的至少一个基线规则去匹配待检测的告警信息来确定待检测的告警信息是否为非关键告警。与现有技术相比,提高了检测攻击告警的效率,降低了误报率。
13.在一些示例性的实施方式中,所述基于每个组的描述信息中的各个特征字段的特征值,对各个告警信息进行至少一次重新分组,包括:
14.确定各个描述信息构成的描述信息集合;
15.依次删除所述描述信息集合中的每个特征字段,并将其他特征字段的特征值相同的告警信息合并为一组进行重新分组,并对重新分组得到的各个组的描述信息进行更新,得到更新后的描述信息集合;
16.根据更新后的描述信息集合确定目标特征字段;其中,所述目标特征字段为下一次需要删除的特征字段;
17.删除所述更新后的描述信息集合中的所述目标特征字段,对所述更新后的描述信息集合更新,直到得到的描述信息集合中包括的每个组的描述信息中的特征字段的数量不大于第一预设数量阈值。
18.上述实施例,在重新分组的过程中,是通过依次删除各个描述信息构成的描述信息集合中的特征字段来实现的,这样,每删除一个特征字段后,将其他特征字段的特征值相同的告警信息合并为一组来实现重新分组,再对重新分组后的各个组的描述信息进行更新。重新分组的过程,会得到多个组,且每个组的特征字段会越来越少。
19.在一些示例性的实施方式中,所述各个组对应的描述信息还包括对应组中告警信息的数量和对应组的异常状态;
20.所述并将其他特征字段的特征值相同的告警信息合并为一组进行重新分组,并对重新分组得到的各个组的描述信息进行更新,包括:
21.在上一次分组得到的各个组中,若存在至少两个组,且所述至少两个组中的告警信息的其他特征字段中,同一特征字段的特征相同,则通过将所述至少两个组的告警信息合并为一组进行重新分组,并对重新分组得到的各个组的描述信息进行更新;
22.其中,合并至少两个组的告警信息得到的一个组的描述信息中,告警信息的数量为所述至少两个组的告警信息的数量的和,所述组的异常状态为所述至少两个组的异常状态重新确定的异常状态。
23.上述实施例,合并至少两个组后,对得到的组的描述信息进行更新时,还考虑了告
警信息的数量和组的异常状态,使重新分组的过程更符合各个告警信息的特点,以便重新分组过程更精准。
24.在一些示例性的实施方式中,所述在初始分组以及重新分组后得到的各个组中,根据各个组的描述信息和第二预设数量阈值筛选出目标组集合,包括:
25.在初始分组以及重新分组后得到的各个组中,删除异常的组;其中,异常的组为通过对应组描述信息中的组的异常状态确定;
26.在得到的各个组中,按照各个组的描述信息中告警信息的数量和特征字段的数量,筛选出至少一个目标组。
27.上述实施例,确定的至少一个目标组中,一方面不包括异常的告警信息,另一方面还考虑了各个组中的描述信息中的告警信息的数量和特征字段的数量。这样确定的至少一个目标组中的特征字段的特征值构成的基线规则更准确。
28.在一些示例性的实施方式中,通过如下方式确定每个告警信息的异常状态:
29.确定所述告警信息对应的告警载荷的哈希值;
30.根据所述哈希值和目标神经网络模型确定所述哈希值对应的重构误差;其中,所述目标神经网络模型的训练样本为多个待训练的哈希值,一个待训练的告警载荷确定一个待训练的哈希值;所述目标神经网络模型的训练为自监督学习的训练;
31.若所述重构误差大于预设重构误差阈值,则确定所述告警载荷对应的告警信息为异常的告警信息。
32.上述实施例,通过将告警信息对应的告警载荷的哈希值输入至训练好的目标神经网络,并将得到的重构误差作为评判标准,来确定哪些告警信息为异常。与直接应用告警信息来判断异常状态相比,降低了对告警信息是否异常的误识别率。
33.在一些示例性的实施方式中,所述目标神经网络模型是通过如下方式得到的:
34.构建包括自编码器的初始神经网络模型,并确定每个待训练的告警载荷的待训练的哈希值;
35.将各个待训练的哈希值进行分组,每组中包括的待训练的哈希值的个数的对数作为训练权重;
36.应用所述训练权重和各个待训练的哈希值构成的训练样本集合,对所述初始神经网络模型进行重构训练,直到得到的目标神经网络模型收敛;其中,每次训练过程中,应用上一次训练得到的重构误差更新所述训练样本集合。
37.上述实施例,由于实际的告警载荷并不均匀,少数常见的告警载荷会产生大部分的告警信息,因此,如果直接进行自监督学习,则很难学习到低频告警载荷的分布规律,导致性能下降。而通过本身中的训练过程得到的目标模型,可以克服该问题,能学习到低频告警载荷的分布规律。
38.在一些示例性的实施方式中,所述将待检测的告警信息与所述至少一个基线规则进行匹配,根据匹配结果确定所述待检测的告警信息是否为非关键告警之前,还包括:
39.在所述目标时间段内的各个告警信息中,确定所述至少一个基线规则匹配的告警信息;
40.对所述至少一个基线规则匹配的告警信息执行去重操作,并确定去重后的所述告警信息的目标数量,以及去重后的所述告警信息对应的告警载荷的哈希值构成的哈希值集
合;
41.所述将待检测的告警信息与所述至少一个基线规则进行匹配,根据匹配结果确定所述待检测的告警信息是否为非关键告警,包括:
42.若所述待检测的告警信息与所述基线规则匹配成功,且所述目标数量小于第二预设数量阈值,则在所述待检测的告警信息对应的待检测的告警载荷的哈希值属于所述哈希值集合时,确定所述待检测的告警信息为非关键告警;
43.若所述待检测的告警信息与所述至少一个基线规则匹配成功,且所述目标数量大于或等于所述第二预设数量阈值,则在应用目标支持向量机模型确定所述待检测的告警信息对应的待检测的告警载荷的哈希值为正例时,确定所述待检测的告警信息的检测状态为非关键告警;其中,所述目标支持向量机模型是将所述哈希值集合中的各个的目哈希值作为训练样本训练得到的。
44.上述实施例,确定了待检测的告警信息为非关键信息时,不仅要依赖基线规则,还需根据匹配结果与其他手段结合来准确确定待检测的告警信息是否为非关键告警,进而在确认待检测的告警信息为非关键告警后,则表明其实正常业务行为产生的告警信息,可以进行其他流程的处理,其对应的告警载荷不是攻击行为产生的。因此,由于真实攻击告警的告警载荷与正常业务告警的告警载荷存在差异,根据正常业务告警生成的基线规则就不会匹配真实的攻击告警,从而避免遗漏。
45.在一些示例性的实施方式中,通过如下方式确定每个告警载荷的哈希值,包括:
46.确定rsync窗口大小和平均切片大小;
47.根据所述rsync窗口大小和平均切片大小确定所述告警载荷的切片位置,并根据所述切片位置对所述告警载荷进行切片;
48.对每两个相邻切片合并确定crc32校验和;
49.根据所述校验和对应的展开向量确定所述告警载荷的哈希值。
50.上述实施例,确定哈希值的过程融合了rsync校验和算法和crc32校验和算法,这样得到的告警载荷的哈希值用来评估告警载荷的相似性更准确。
51.在一些示例性的实施方式中,所述提取目标时间段内的各个告警信息中的共有可识别的特征字段之前,还包括:
52.获取目标时间段内的原始告警信息和每个原始告警信息对应的告警载荷;
53.根据所述原始告警信息中的告警类型的特征字段对所述原始告警信息进行清洗,得到各个告警信息;
54.其中,对每个清洗后的告警信息对应的告警载荷执行如下操作:
55.删除原始告警载荷中为空的告警载荷,以及原始告警载荷中的osi传输层以及以下的协议包装。
56.上述实施例,对告警信息和告警载荷进行清洗,一方面降低了数据处理量,提高处理速度;另一方面,清洗掉某些告警类型的告警信息,提高后续得到基线规则的准确性。
57.第二方面,本技术一实施例提供了一种检测攻击告警的装置,包括:
58.特征字段提取模块,用于提取目标时间段内的各个告警信息中的共有可识别的特征字段;
59.第一分组模块,用于基于每个告警信息中的每个所述特征字段的特征值对各个告
警信息进行初始分组,确定各个组对应的描述信息;其中,所述各个组对应的描述信息包括对应组中各个告警信息的特征字段以及每个特征字段对应的特征值,且,不同告警信息的同一特征字段对应的特征值相同;
60.第二分组模块,用于基于每个组的描述信息中的各个特征字段的特征值,对各个告警信息进行至少一次重新分组,直到重新分组后的每个组的描述信息中包括的特征字段的数量不大于第一预设数量阈值;
61.基线规则确定模块,用于在初始分组以及重新分组后得到的各个组中,根据各个组的描述信息筛选出至少一个目标组,并根据所述至少一个目标组各自对应的目标描述信息确定至少一个基线规则;其中,每个所述基线规则为对应目标组的所述目标描述信息中的特征字段的特征值与对应的特征字段的组合;
62.匹配模块,用于将待检测的告警信息与所述至少一个基线规则进行匹配,根据匹配结果确定所述待检测的告警信息是否为非关键告警。
63.在一些示例性的实施方式中,所述第二分组模块具体用于:
64.确定各个描述信息构成的描述信息集合;
65.依次删除所述描述信息集合中的每个特征字段,并将其他特征字段的特征值相同的告警信息合并为一组进行重新分组,并对重新分组得到的各个组的描述信息进行更新,得到更新后的描述信息集合;
66.根据更新后的描述信息集合确定目标特征字段;其中,所述目标特征字段为下一次需要删除的特征字段;
67.删除所述更新后的描述信息集合中的所述目标特征字段,对所述更新后的描述信息集合更新,直到得到的描述信息集合中包括的每个组的描述信息中的特征字段的数量不大于第一预设数量阈值。
68.在一些示例性的实施方式中,所述各个组对应的描述信息还包括对应组中告警信息的数量和对应组的异常状态;所述对应组的异常状态是根据所述对应组中的各个告警信息的异常状态确定的;
69.所述第二分组模块具体用于:
70.在上一次分组得到的各个组中,若存在至少两个组,且所述至少两个组中的告警信息的其他特征字段中,同一特征字段的特征相同,则通过将所述至少两个组的告警信息合并为一组进行重新分组,并对重新分组得到的各个组的描述信息进行更新;
71.其中,合并至少两个组的告警信息得到的一个组的描述信息中,告警信息的数量为所述至少两个组的告警信息的数量的和,所述组的异常状态为所述至少两个组的异常状态重新确定的异常状态。
72.在一些示例性的实施方式中,所述基线规则确定模块具体用于:
73.在初始分组以及重新分组后得到的各个组中,删除异常的组;其中,异常的组为通过对应组描述信息中的组的异常状态确定;
74.在得到的各个组中,按照各个组的描述信息中告警信息的数量和特征字段的数量,筛选出至少一个目标组。
75.在一些示例性的实施方式中,还包括异常状态确定模块,用于通过如下方式确定每个告警信息的异常状态:
76.确定所述告警信息对应的告警载荷的哈希值;
77.根据所述哈希值和目标神经网络模型确定所述哈希值对应的重构误差;其中,所述目标神经网络模型的训练样本为多个待训练的哈希值,一个待训练的告警载荷确定一个待训练的哈希值;所述目标神经网络模型的训练为自监督学习的训练;
78.若所述重构误差大于预设重构误差阈值,则确定所述告警载荷对应的告警信息为异常的告警信息。
79.在一些示例性的实施方式中,还包括模型训练模块,用于通过如下方式得到所述目标神经网络模型:
80.构建包括自编码器的初始神经网络模型,并确定每个待训练的告警载荷的待训练的哈希值;
81.将各个待训练的哈希值进行分组,每组中包括的待训练的哈希值的个数的对数作为训练权重;
82.应用所述训练权重和各个待训练的哈希值构成的训练样本集合,对所述初始神经网络模型进行重构训练,直到得到的目标神经网络模型收敛;其中,每次训练过程中,应用上一次训练得到的重构误差更新所述训练样本集合。
83.在一些示例性的实施方式中,还包括去重模块,用于在所述将待检测的告警信息与所述至少一个基线规则进行匹配,根据匹配结果确定所述待检测的告警信息是否为非关键告警之前:
84.在所述目标时间段内的各个告警信息中,确定所述至少一个基线规则匹配的告警信息;
85.对所述至少一个基线规则匹配的告警信息执行去重操作,并确定去重后的所述告警信息的目标数量,以及去重后的所述告警信息对应的告警载荷的哈希值构成的哈希值集合;
86.所述匹配模块具体用于:
87.若所述待检测的告警信息与所述至少一个基线规则匹配成功,且所述目标数量小于第二预设数量阈值,则在所述待检测的告警信息对应的待检测的告警载荷的哈希值属于所述哈希值集合时,确定所述待检测的告警信息为非关键告警;
88.若所述待检测的告警信息与所述至少一个基线规则匹配成功,且所述目标数量大于或等于所述第二预设数量阈值,则在应用目标支持向量机模型确定所述待检测的告警信息对应的待检测的告警载荷的哈希值为正例时,确定所述待检测的告警信息的检测状态为非关键告警;其中,所述目标支持向量机模型是将所述哈希值集合中的各个的目哈希值作为训练样本训练得到的。
89.在一些示例性的实施方式中,还包括哈希值确定模块,用于通过如下方式确定每个告警载荷的哈希值,包括:
90.确定rsync窗口大小和平均切片大小;
91.根据所述rsync窗口大小和平均切片大小确定所述告警载荷的切片位置,并根据所述切片位置对所述告警载荷进行切片;
92.对每两个相邻切片合并确定crc32校验和;
93.根据所述校验和对应的展开向量确定所述告警载荷的哈希值。
94.在一些示例性的实施方式中,还包括数据清洗模块,用于在所述提取目标时间段内的各个告警信息中的共有可识别的特征字段之前:
95.获取目标时间段内的原始告警信息和每个原始告警信息对应的告警载荷;
96.根据所述原始告警信息中的告警类型的特征字段对所述原始告警信息进行清洗,得到各个告警信息;
97.还用于对每个清洗后的告警信息对应的告警载荷执行如下操作:
98.删除原始告警载荷中为空的告警载荷,以及原始告警载荷中的osi传输层以及以下的协议包装。
99.第三方面,本技术一实施例提供了一种检测设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述任一种方法的步骤。
100.第四方面,本技术一实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任一种方法的步骤。
附图说明
101.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
102.图1为本技术实施例提供的一种检测攻击告警的方法的应用场景示意图;
103.图2为本技术一实施例提供的一种检测攻击告警的方法的流程示意图;
104.图3为本技术一实施例提供的一种重分组过程的示意图;
105.图4为本技术一实施例提供的另一种重分组过程的示意图;
106.图5为本技术一实施例提供的一种确定告警信息的异常状态的流程示意图;
107.图6为本技术一实施例提供的一种目标神经网路的训练过程的流程示意图;
108.图7为本技术一实施例提供的一种检测攻击告警的装置的结构示意图;
109.图8为本技术一实施例提供的一种检测设备的结构示意图。
具体实施方式
110.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
111.为了方便理解,下面对本技术实施例中涉及的名词进行解释:
112.(1)攻击告警:由检测或防护系统产生的、指示可能发生的攻击行为的告警。示例性的,本技术实施例中的告警均指攻击告警。
113.(2)告警信息:告警的呈现形式,包括告警的特征等。
114.(3)告警载荷:直接导致检测/防护系统产生攻击告警的原始输入。对于大部分网络攻击检测系统而言,告警载荷通常是网络流量的片段。
115.(4)告警源:是指能够产生告警的系统或设备,通常情况下是ids(intrusion detection system,入侵检测系统)、ips(intrusion prevention system,入侵防御系统)
或waf(web application firewall,网站应用防护系统)等网络攻击检测或防护系统。
116.(5)基线规则:一组预定义规则,根据该规则可以判断告警的重要性。可以认为所有符合该规则的告警都是不重要的。示例性的,本技术实施例中的基线规则均指告警基线规则。
117.(6)特征字段:用来描述告警的信息字段,通常情况下,可识别的特征字段为结构化特征字段,例如源地址、目的地址、源端口、目的端口、告警规则标识和告警风险等级等。
118.(7)rsync(rolling synchronization,滚动同步)校验和算法:一种滚动校验和算法,可以在线性复杂度内,对持续输入的数据流持续计算校验和,且该校验和只与最后输入的1到w个字节有关,其中w为窗口大小。
119.(8)crc32(cyclic redundancy check 32,32位循环冗余校验)校验和算法:一种校验和算法,目前通用的crc32由iso 3309标准制定,计算速度快。
120.附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
121.海量告警筛选问题多年来一直困扰着安全行业。大部分现有的网络攻击检测系统或者防护系统每天产生的告警数量非常多,远远超出了运维人员的排查能力。但实际上,这些海量告警中只有极少数关键告警(需要人工介入处置的)是被运维人员所关心的,其余绝大多数告警信息的实际价值都很低,最多只是需要留存一段时间以供排查参考。
122.以往,为了排除低价值告警,运维人员通常会在长期的监控值守工作中,会逐渐梳理并形成一套基线(或作用相似的其它机制,实际形式可能是代码或配置,也可能是操作文档或流程等),将符合该规则的告警先验地认定为“不重要”,从而减轻运维工作量。
123.建立基线规则的核心是对企业正常业务特征的识别,人工梳理基线规则需要具备高度专业知识,且花费很长时间才能完成。在较为紧迫的安全应急事件或攻防对抗中,如果未能提前建立基线规则,就不得不对全量告警进行分析,导致攻击检出率和响应速度的降低。
124.在具体实践过程中,为了排除低价值的告警数据,通常是应用一套基线规则来对告警数据进行筛选,符合该基线规则的告警先验的认定为不重要,从而减轻运维人员的工作量。
125.相关技术中,生成该基线规则主要有以下几种方式:一、通关长期监控值守,人工梳理得到基线规则,但是,该方式依赖人的专业知识且效率低下;二、部分安全检测和防护产品提供一些预置且可以快速组装的规则组,作为基线规则,但是,这种方式得到的基线规则应用范围比较窄,无法深入适配具体网络和业务环境;三、基于异常检测的攻击识别方案,依赖于具体业务,如果应用在各种网络协议和业务类型混合的常规网络攻击中,效果差。
126.为此,本技术提供了一种检测攻击告警的方法,该方法中,首先提取目标时间段内的各个告警信息中的共有可识别的特征字段,再对各个告警信息进行一次初始分组和多次重新分组。其中,一次初始分组为细分组过程,该分组是将同一特征字段对应的特征值相同的不同告警信息分为一组,而每组中对应一个描述信息,每个描述信息包括对应组中的各个告警信息的特征字段以及每个特征字段对应的特征值。在完成一次初始分组过程后,再基于每个组的描述信息中的各个特征字段的特征值对各个告警信息进行多次重新分组,该
分组过程为粗分过程,这样,直到每个组的描述信息中包括的特征字段的数量不大于第一预设数量阈值。在初始分组和重新分组得到的各个组中,再筛选出至少一个目标组,对每个目标组,将该目标组中的目标描述信息中的特征字段的特征值与对应的特征字段的组合确定为一个基线规则,进而应用得到的至少一个基线规则去对新的告警信息进行检测,来确定新的告警信息是否为有价值的告警信息。与现有技术相比,提高了检测攻击告警的效率,降低了误报率。
127.在介绍完本技术实施例的设计思想之后,下面对本技术实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本技术实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本技术实施例提供的技术方案。
128.参考图1,其为本技术实施例提供的一种检测攻击告警的方法的应用场景示意图。其中,告警载荷1、告警载荷2

告警载荷n经由网络攻击防护系统后,产生告警信息1、告警信息2

告警信息m,检测攻击告警的设备通过利用告警信息中的共有可识别字段对告警信息进行分组,最后在各个组中筛选出目标组和集合,确定目标组集合对应的各个目标描述信息中的特征字段的特征值与对应的特征字段的组合为告警基线。待检测的告警信息1、待检测的告警信息2

待检测的告警信息d与基线规则进行匹配,确定待检测的告警信息1-3、5-8、10-d为非关键告警。运维人员可以对告警信息4和9进行分析,以维护网络安全。其中,n、m和d均为整数。
129.当然,本技术实施例提供的方法并不限用于图1所示的应用场景中,还可以用于其它可能的应用场景,本技术实施例并不进行限制。对于图1所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
130.为进一步说明本技术实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本技术实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本技术实施例提供的执行顺序。
131.下面结合图1所示的应用场景,对本技术实施例提供的技术方案进行说明。
132.参考图2,本技术实施例提供一种检测攻击告警的方法,包括以下步骤:
133.s201、提取目标时间段内的各个告警信息中的共有可识别的特征字段。
134.s202、基于每个告警信息中的每个特征字段的特征值对各个告警信息进行初始分组,确定各个组对应的描述信息;其中,各个组对应的描述信息包括对应组中各个告警信息的特征字段以及每个特征字段对应的特征值,且,不同告警信息的同一特征字段对应的特征值相同。
135.s203、基于每个组的描述信息中的各个特征字段的特征值,对各个告警信息进行至少一次重新分组,直到重新分组后的每个组的描述信息中包括的特征字段的数量不大于第一预设数量阈值。
136.s204、在初始分组以及重新分组后得到的各个组中,根据各个组的描述信息和筛选出至少一个目标组,并根据至少一个目标组各自对应的目标描述信息确定至少一个基线规则;其中,每个基线规则为对应目标组的目标描述信息中的特征字段的特征值与对应的
特征字段的组合。
137.s205、将待检测的告警信息与至少一个基线规则进行匹配,根据匹配结果确定待检测的告警信息是否为非关键告警。
138.本技术实施例中,通过提取目标时间段内的各个告警信息中的共有可识别的特征值字段,再基于每个告警信息中的每个特征字段的特征值对各个告警信息进行初始分组,由于初始分组中的不同告警信息的同一特征字段对应的特征值相同,因此,初始分组是一个细分组的过程。为了区分各个组,每个组对应一个描述信息,每个描述信息包括对应组中各个告警信息的特征字段和每个特征字段对应的特征值。接下来,再基于每个组的描述信息中的各个特征字段的特征值对各个告警信息进行至少一次重分组过程,与初始分组相比,该重新分组的过程为粗分组过程,直到重新分组后的每个组的描述信息中包括的特征字段的数量不大于第一预设数量阈值。这样,初始分组和至少一次重分组过程结束后,得到多个组,再根据各个组的描述信息筛选出来至少一个目标组,将每个目标组中的目标描述信息中的特征字段的特征值与对应的特征字段的组合为一个基线规则,再用得到的至少一个基线规则去匹配待检测的告警信息来确定待检测的告警信息是否为非关键告警。与现有技术相比,提高了检测攻击告警的效率,降低了误报率。
139.涉及到s201,为了降低检测过程的计算量以及提高检测效率,在提取目标时间段内的各个告警信息中的共有可识别的特征字段之前,先对获取到的原始告警信息以及原始告警载荷进行清洗。
140.其中,目标时间段比如是一天,在对原始告警信息进行清洗时,根据原始告警信息中的告警类型的特征字段对原始告警信息进行清洗,进而得到各个告警信息。示例性的,由于每个告警信息中包括多个可识别的特征字段,比如包括源地址、目的地址、源端口、目的端口、告警规则标识、告警风险等级和告警类型等。并且,根据实际情况可知,告警类型可明确判断告警信息是否为有价值的告警信息,比如,日志类型的告警和故障类型的告警为正常业务行为产生的,不指示任何攻击行为,因此,在该清洗过程中,可以根据告警类型,去除部分告警信息,以减少对海量告警数据进行分析时的计算量。
141.另外,还有一些告警信息无需基线规则即可被确定为关键告警,比如,只需花费运维人员极少的时间即可判断出为非关键告警。在告警信息清洗的过程中,还可以将此类告警信息移除。
142.上述为对告警信息的清洗过程,接下来说明对告警载荷的清洗过程。
143.由于告警载荷为空时也可能产生告警信息,但是,此类告警信息对确定基线规则无实际意义,因此,将原始告警载荷中为空的告警载荷删除,另外,osi(open system interconnection reference model,开放式系统互联通信参考模型)传输层以及以下的协议包装为每个告警载荷中固有数据,对基线规则确定无实际意义,还会增加计算量,因此,删除原始告警载荷中的osi传输层以及以下的协议包装。
144.上述对原始告警信息和原始告警载荷的数据清洗过程,一方面降低了确定基线规则过程中的计算量,提高处理速度;另一方面还保证正常业务正常开展(比如日志类型的告警被移除后,执行日志分析的正常业务操作)。如此,针对在数据清洗结束后得到的告警信息和告警载荷进行处理,来确定基线规则。
145.由于每个告警信息中包括的可识别的特征字段有相同的,也有不同,因此,首先提
取目标时间段内采集的各个告警信息中的共有可识别的特征字段。在一个具体的例子中,共有可识别的特征字段比如是源地址、目的地址、目的端口和告警规则标识。
146.涉及到s202,基于每个告警信息中的每个特征字段的特征值对各个告警信息进行初始分组,确定各个组对应的描述信息。
147.其中,各个组对应的描述信息包括对应组中各个告警信息的特征字段以及每个特征字段对应的特征值,且,不同告警信息的同一特征字段对应的特征值相同。
148.示例性的,初始分组是按照每个特征字段的特征值进行的,分组结果为,每个组的各个特征信息的不同告警信息的同一特征字段相同。比如,a1组中包括的10个告警信息的源地址均为s1、目的地址均为d1、源端口均为p1、目的端口均为p1,告警规则标识均为r1。另外,每个组对应一个描述信息,该描述信息包括该组中的各个告警信息的特征字段以及每个特征字段对应的特征值,比如,a1组的描述信息为:源地址s1、目的地址d1、源端口p1、目的端口p1、告警规则标识r1。另外,为了准确确定每个组的特点,每个组的描述信息中,还可以包括对应组中告警信息的数量和对应组中告警信息的异常状态。
149.由于初始分组得到的每个分组中,不同告警信息的同一特征字段对应的特征值相同,因此,该初始分组为细分组过程。
150.涉及到s203,为了提高确定的基线规则的准确性,接下来对各个告警载荷进行至少一次的粗分组过程,该粗分组过程可以称为重新分组过程。需要说明的是,无论是初始分组还是重新分组,参与分组的均为目标时间段内的各个告警信息,而每次分组变动后,相应组的描述信息也发生变化。初始分组的依据是每个告警信息中的每个特征字段的特征值,重新分组的依据则是初始分组后的每个组的描述信息中各个特征字段的特征值。
151.由于粗分组过程次数越多,每个组的描述信息中包括的特征字段越少,因此,当粗分组后的每个组的描述信息中包括的特征字段不大于第一预设数量阈值时,停止粗分组过程。在一个具体的例子中,共有可识别的特征字段为4,则第一预设数量阈值是一个预先设置的小于4的数,比如是2。
152.接下来对重新分组(粗分组)的过程进行说明:
153.第一步,确定初始分组后得到的各个描述信息构成的描述信息集合,比如,初始分组为10个组,则会对应10个描述信息,这10个描述信息构成了描述信息集合。示例性的,描述信息还可以包括对应组中的告警信息的数量和对应组中的异常状态。在一个具体里的例子中,若该组内的告警信息中有至少一个为异常,则该组的描异常状态为1;若该组的告警信息中的全部告警信息均无异常,则该组的异常状态为0。
154.表1初始分组后得到的各个描述信息
[0155][0156]
接下来说明第一次粗分组过程:依次删除描述信息集合中的每个特征字段,并将其他特征字段的特征值相同的告警信息合并为一组进行重新分组,并对重新分组得到的各个组的描述信息进行更新,得到更新后的描述信息集合。
[0157]
比如,删除源地址s特征字段,则a1组、a3组和a5中的剩余特征字段的特征值相同,将a1组、a3组和a5组合并为一组b1,告警数取5 5 6之和为16,异常状态为a1组、a3组和a5组的异常状态进行逻辑或操作为1得到表2。
[0158]
表2第一次重新分组时删除s特征字段得到的各个描述信息
[0159][0160]
同理,删除源地址d特征字段,则a1组和a6中的剩余特征字段的特征值相同,将a1
组和a6组合并为一组b9,告警数取5 23之和为28,异常状态为a1组和a6组的异常状态进行逻辑或操作为1,得到表3。
[0161]
表3第一次重新分组时删除d特征字段得到的各个描述信息
[0162][0163][0164]
同理,删除源地址p特征字段,没有需要合并的组,得到表4。
[0165]
表4第一次重新分组时删除p特征字段得到的各个描述信息
[0166]
[0167]
同理,删除源地址r特征字段,没有需要合并的组,得到表5。
[0168]
表5第一次重新分组时删除r特征字段得到的各个描述信息
[0169][0170][0171]
综上,完成第一次重新分组的过程,也即,得到了3个特征字段的全部分组,特征字段dpr为b1-b8共8个分组;特征字段spr为b9-b17共8个分组;特征字段sdr为b18-b27共10个分组;特征字段sdp为b28-b37共10个分组。这样,3个特征字段的全部分组数为36组。
[0172]
接下来进行第二次重新分组:
[0173]
首先基于表2,针对特征字段dpr对应的b1-b8共8个分组,确定本次分组过程中本阶段需要删除的特征字段依次为d、p、r。
[0174]
删除特征字段d,b1组、b4组和b5组的剩余特征字段的特征值相同,将b1组、b4组和b5组合并为一组c1,告警数取16 23 10之和为49,异常状态为b1组、b4组和b5组的异常状态进行逻辑或操作为1;b2组和b3组的剩余特征字段的特征值相同,将b2组和b3组合并为一组c2,告警数取12 7之和为19,异常状态为b2组和b3组的异常状态进行逻辑或操作为0,得到表6。
[0175]
表6基于表2的第二次重新分组时删除d特征字段得到的各个描述信息
[0176]
[0177][0178]
删除p特征字段,b2组和b6组的剩余特征字段的特征值相同,将b2组和b6组合并为一组c6,告警数取12 20之和为32,异常状态为b2组和b6组的异常状态进行逻辑或操作为0;b5组和b7组的剩余特征字段的特征值相同,将b5组和b7组合并为一组c7,告警数取10 4之和为14,异常状态为b5组和b7组的异常状态进行逻辑或操作为0,得到表7。
[0179]
表7基于表2的第二次重新分组时删除p特征字段得到的各个描述信息
[0180][0181]
删除r特征字段,没有需要合并的组,得到表8。
[0182]
表8基于表2的第二次重新分组时删除p特征字段得到的各个描述信息
[0183][0184][0185]
综上,得到了基于表2的2个特征字段的全部分组,特征字段pr为c1-c5共5个分组;
特征字段dr为c6-c11共6个分组;特征字段dp为c12-c19共8个分组。这样,基于表2在第二次重新分组时得到2个特征字段的全部分组数为19组。
[0186]
其次,基于表3,针对特征字段spr对应的b9-b17共9个分组,确定本次分组过程中本阶段需要删除的特征字段依次为p、r(由于删除s后剩余pr特征字段和表5的情况相同,因此,这里确定的需要删除的字段只有p、r)。
[0187]
删除p特征字段,没有需要合并的组,得到表9。
[0188]
表9基于表3的第二次重新分组时删除p特征字段得到的各个描述信息
[0189][0190]
删除r特征字段,没有需要合并的组,得到表10。
[0191]
表10基于表3的第二次重新分组时删除r特征字段得到的各个描述信息
[0192][0193]
综上,得到了基于表3的2个特征字段的全部分组,特征字段sr为c20-c28共9个分组;特征字段sp为c29-c37共9个分组这样,基于表3在第二次重新分组时得到2个特征字段的全部分组数为18组。
[0194]
最后,基于表4,针对特征字段sdr对应的b18-b26共9个分组,确定本次分组过程中本阶段需要删除的特征字段为r(由于删除s后剩余pr特征字段和表5的情况相同,删除s后剩余的dr和表6的情况相同,因此,这里确定的需要删除的字段只有r)。
[0195]
删除r特征字段,b19和b20的剩余特征字段的特征值相同,将b19和b20合并为一组c38,告警数取12 5=17,异常状态为b19和b20的异常状态进行逻辑或操作为1,得到表11。
[0196]
表11基于表4的第二次重新分组时删除r特征字段得到的各个描述信息
[0197]
[0198][0199]
综上,得到了基于表4的2个特征字段的全部分组,特征字段sd为c38-c45共8个分组。
[0200]
另外,基于表5的2个特征字段的全部分组,与表7、表9和表10相同,因此不会产生新的分组。
[0201]
至此,得到了全部的4个特征字段的分组一共是10组;得到了全部的3个特征的分组一共是8 9 10 10=37组;得到了全部的2个特征的分组一共是19 18 8=45组。总分组数是92组。
[0202]
若第一预设数量阈值为2,则结合上述表格,确定重新分组过程结束。在重新分组的过程中,各个组的描述信息随之更新。
[0203]
为了使本技术的重新分组的过程更清晰,结合图3进行说明,其中,分组的中间过程和得到的各个表格的对应关系参考图3。
[0204]
另外,上述重新分组过程和图3均是以设定的分组结束条件为第一预设数量阈值为2(也即每个组的描述信息中包括的特征字段为2个)来进行说明的。在这个例子中,如果第一预设数量阈值为1,则重新分组过程的示意图参见图4,具体过程不展开论述,可参见前述对重新分组过程的描述。
[0205]
涉及到s204,在初始分组以及重新分组后得到的各个组中,根据各个组的描述信息和第二预设数量阈值筛选出目标组集合,并根据目标组集合对应的各个目标描述信息确定基线规则;其中,基线规则为各个目标描述信息中的特征字段的特征值与对应的特征字段的组合。
[0206]
具体的,该过程中,为了提高确定的基线规则的准确性,将得到的各个组中,删除异常的组,这里的异常的组是指,描述信息中的组的异常状态为1的组,也即,组中包括至少一个异常的告警信息的组。
[0207]
仍以上述示例进行说明,参考表1到表11,一次初始分组和两个重新分组过程,一共得到92个组,异常的组为36个,将这36个组删除,得到的56个组。由于组数较多,这里不用
表格的形式示出。
[0208]
按照各个组的描述信息中告警信息的数量和特征字段的数量,筛选出至少一个目标组。其中,筛选出来的目标组的个数可以是根据实际需求确定的,比如为5,筛选过程中,比如是按照告警信息的数量降序、再按照包括的特征数降序,得到5个组,c6、a6、b4、b23和b33为各个目标组。对于每个目标组,其对应的目标描述信息中的特征字段的特征值与对应的特征字段的组合为基线规则。
[0209]
在给定的例子中,得到的5个基线规则如下:
[0210]
基线规则1:源地址s1、目的地址d3、目的端口p1;
[0211]
基线规则2:源地址s1、目的地址d3、告警规则标识r1;
[0212]
基线规则3:源地址s1、目的地址d3、目的端口p1、告警规则标识r1;
[0213]
基线规则4:目的地址d2、告警规则标识r2;
[0214]
基线规则5:目的地址d3、目的端口p1、告警规则标识r1。标识r标识r。
[0215]
上述示例中,共有可识别字段为4,第一数量阈值为2。由于第一预设数量阈值是预先设定的,比如根据对准确率(或误报率)和效率的需求进行设定。因此,在实际的应用过程中,第一预设数量阈值还可以取1、3或4,在取4时,表明不进行重新分组,虽然不进行重新分组时的准确率较高,但是其效率略低。通常情况下,为了在保证准确率且提高效率的同时,可以根据实际情况确定是否需要重新分组以及重新分组的次数,也即,确定第一预设数量阈值为多少。这里只是举例说明,不形成具体的限定。
[0216]
涉及到s205,符合基线规则的不一定是非关键告警,不符合基线规则的也不一定是关键告警。如果直接将与基线规则匹配成功的告警信息确定为非关键告警,则有可能漏掉真实攻击者发起的攻击。在一个具体的例子中,部分开发不规范的web(world wide web,全球广域网)应用可能会在正常业务的请求参数中包含形似sql(structured query language,结构化查询语言)代码的内容,并不断引起ids的sql注入告警。此种情况下,如果基线规则将该web应用相关的sql注入告警全部认定为非关键告警,也即,认定为“不重要”,则有可能导致真实攻击者发起的sql注入攻击被运维人员所遗漏。
[0217]
因此,为了提高检测攻击告警的准确率,在确定待检测的告警信息是否为非关键告警的过程中,不仅要依赖基线规则,还续根据匹配结果与其他手段结合来准确确定待检测的告警信息是否为非关键告警。
[0218]
在这个过程中,需要依赖目标数量和哈希值集合两个概念,因此,先对这两个概念进行说明。
[0219]
在得到基线规则后,将确定该基线规则的过程中应用到的目标时间段内的各个告警信息与基线规则进行匹配,确定匹配成功的告警信息。在上述示例中,比如目标时间段内的告警信息为100条,匹配成功的为80条。接下来对这80条告警信息进行去重操作,比如去重后得到70条告警信息,则目标数量为70。这70条告警信息对应的告警载荷的哈希值构成哈希值集合。
[0220]
这样,在将待检测的告警信息与至少一个基线规则进行匹配,根据匹配结果确定待检测的告警信息是否为非关键告警,具体可以通过如下方式实现:
[0221]
第一种情况,若待检测的告警信息与至少一个基线规则匹配成功,且目标数量小于第二预设数量阈值,则在待检测的告警信息对应的待检测的告警载荷的哈希值属于哈希
值集合时,确定待检测的告警信息为非关键告警。
[0222]
在这种情况中,目标数量过小,小于第三预设阈值,不仅需要待检测的告警信息与至少一个基线规则匹配成功,还需要在待检测的告警信息对应的待检测的告警载荷的哈希值属于哈希值集合时,才可以确定待检测的告警信息为非关键告警。
[0223]
第二种情况,若待检测的告警信息与至少一个基线规则匹配成功,且目标数量大于或等于第二预设数量阈值,则在应用目标支持向量机模型确定待检测的告警信息对应的待检测的告警载荷的哈希值为正例时,确定待检测的告警信息的检测状态为非关键告警;其中,目标支持向量机模型是将哈希值集合中的各个的目哈希值作为训练样本训练得到的。
[0224]
在这种情况中,目标数量大于第三预设阈值,不仅需要待检测的告警信息与至少一个基线规则匹配成功,还需要应用目标支持向量机模型确定待检测的告警信息对应的待检测的告警载荷的哈希值为正例,才可以确定待检测的告警信息为非关键告警。由于目标支持向量机模型是将哈希值集合中的各个的目哈希值作为训练样本训练得到的,保证了该检测过程的准确性。
[0225]
比如,上述得到5个基线规则,与其中任意一个基线规则匹配成功,则确定为匹配成功。
[0226]
这样,确定了待检测的告警信息为非关键信息时,不仅要依赖基线规则,还需根据匹配结果与其他手段结合来准确确定待检测的告警信息是否为非关键告警,进而在确认待检测的告警信息为非关键告警后,则表明其实正常业务行为产生的告警信息,可以进行其他流程的处理,其对应的告警载荷不是攻击行为产生的。因此,由于真实攻击告警的告警载荷与正常业务告警的告警载荷存在差异,根据正常业务告警生成的基线规则就不会匹配真实的攻击告警,从而避免遗漏。
[0227]
另外,需要说明的是,应用基线规则并不能确定哪些是关键告警,而是确定一些非关键告警,并在实际应用过程中,忽略非关键告警,这样,剩余需要人工去判断的告警就越少,有利于对告警的进一步处理。
[0228]
为了使本身申请的技术方案更完善,结合图5,针对任一个告警信息,对如何确定告警信息的异常状态的过程进行说明。
[0229]
s501、确定告警信息对应的告警载荷的哈希值。
[0230]
s502、根据哈希值和目标神经网络模型确定哈希值对应的重构误差。
[0231]
s503、若重构误差大于预设重构误差阈值,则确定告警载荷对应的告警信息为异常的告警信息。
[0232]
涉及到s501,由于告警信息和告警载荷之间存在对应关系,因此,可以针对每一个告警信息,都可以确定其对应的告警载荷。在本技术实施例中,确定告警载荷的哈希值的过程可以通过改进的simhash算法来实现:
[0233]
由于标准的simhash算法是通过在输入数据上的滑动窗口片段求常规哈希值并叠加,得到最终的哈希值输出来评估数据的相似性。但是,标准simhash算法中,滑动窗口步长为1,设告警载荷长度为l,滑动窗口大小为w,则每个simhash内含l-w 1次常规hash计算。但在本技术实施例中,输入数据为告警数据,而告警数量庞大且l》》w,因此,标准的simhash算法无法应用在对告警数据的实时处理上。进一步的,如果滑动窗口步长大于1,设步长为s(s
》1),虽然能够提升计算效率,但当输入数据中插入或移除n个字节时,只要n不是s的倍数,就可能会导致变更点之后的所有常规哈希值发生变化,最终失去simhash评估数据相似性的效用。另外,在标准simhash算法的最后一步中,将常规哈希值叠加后,只保留每个分量的符号而丢弃其绝对值,这个步骤对告警载荷的处理来说不是必要的。因此,本技术实施例提出了融合rsync校验和算法和crc32校验和算法的改进的simhash算法,应用该改进的simhash算法确定告警载荷的哈希值的过程如下:
[0234]
确定rsync窗口大小和平均切片大小;根据rsync窗口大小和平均切片大小确定告警载荷的切片位置,并根据切片位置对告警载荷进行切片;对每两个相邻切片合并确定crc32校验和;根据校验和对应的展开向量确定告警载荷的哈希值。
[0235]
具体的,rsync窗口大小,在告警载荷上运行rsync校验和算法,当某个位置的rsync校验和除以p的余数为零时,在该位置进行切片。对每两个相邻切片合并计算crc32校验和,对每个校验和按位展开为32维向量,并将其中的0替换为-1,得到的结果相加后即为改进的simhash算法的输出,也即为告警载荷的哈希值。由于该哈希值是应用改进的simhash算法得到的,因此,本技术实施例中的哈希值均可以称为相似哈希值。另外,改进的simhash算法拥有更高的计算速度,适应实时处理的场景。
[0236]
需要说明的是,平均切片大小为预设的,其值越大,计算速度越快,但计算出来的哈希值的精度越低,具体设定值可在实际应用环境中测试调整。
[0237]
涉及到s502,得到告警载荷的哈希值后,根据哈希值和目标神经网络模型确定哈希值对应的重构误差。
[0238]
其中,目标神经网络模型的训练样本为多个待训练的哈希值,一个待训练的告警载荷确定一个待训练的哈希值;目标神经网络模型的训练为自监督学习的训练。
[0239]
由于利用包括自编码器的神经网络模型可以得到重构误差,因此,在本技术实施例中,根据告警载荷的哈希值和训练好的目标神经网络模型,可以确定该哈希值对应的重构误差。接下来结合图6,对得到目标神经网络的训练过程进行说明:
[0240]
s601、构建包括自编码器的初始神经网络模型,并确定每个待训练的告警载荷的待训练的哈希值。
[0241]
其中,确定哈希值的方式可参见前述应用改进的simhash算法计算哈希值的过程,这里不赘述。
[0242]
s602、将各个待训练的哈希值进行分组,每组中包括的待训练的哈希值的个数的对数作为训练权重。
[0243]
实际的告警信息中,告警载荷的分布并不均匀,少数常见的告警载荷产生的告警信息会占据总的告警信息的大部分。如果直接进行自监督学习,模型将很难学习到低频告警载荷的分布规律,导致性能下降。因此,根据待训练的哈希值进行分组,统计每组中哈希值出现的次数,将该次数的对数作为权重,形成自监督学习样本。其中,将相同的待训练的哈希值分为一组,比如该组中包括15个待训练的哈希值,则该组的训练权重为lg15。
[0244]
s603、应用训练权重和各个待训练的哈希值构成的训练样本集合,对初始神经网络模型进行重构训练,直到得到的目标神经网络模型收敛。
[0245]
其中,每次训练过程中,应用上一次训练得到的重构误差更新训练样本集合。通常,由于告警载荷的分布非常复杂,小型自编码器可能会在少数极端离群的样本上出现欠
拟合而误差无法收敛,此时应及时暂停训练,对训练样本集合进行更新,然后再继续训练,直到模型收敛为止。
[0246]
示例性的,每次训练过程中,应用上一次训练得到的重构误差对训练样本集合进行更新。比如,将一定比例的重构误差较大的训练样本移除,来更新训练样本集合。
[0247]
如上,应用目标神经网络模型得到告警载荷的重构误差。
[0248]
另外,需要说明的是,参与目标模型训练的训练样本集合中使用的待训练的告警载荷,可以是其他时间内获取到的多个告警载荷,目的是参与模型训练。还可以是本技术实施例中的目标时间段内获取的告警信息对应的各个告警载荷,这里不形成限定。
[0249]
涉及到s503、若重构误差大于预设重构误差阈值,则确定告警载荷对应的告警信息为异常的告警信息。
[0250]
因此,为了确定目标时间段内的告警信息哪些是异常的,计算这些告警信息对应的全部告警载荷的哈希值的重构误差,将大于预设重构误差阈值的告警载荷对应的告警信息标记为异常的告警信息。还可以是选取一定比例的重构误差最大的哈希值匹配的告警信息确定为异常的告警信息。而选取的异常比例越大,基线规则生成越严格,其具体设定应在实际环境中测试调整。
[0251]
如图7所示,基于与上述一种检测攻击告警的方法相同的发明构思,本技术实施例还提供了一种检测攻击告警的装置,包括特征字段提取模块71、第一分组模块72、第二分组模块73、基线规则确定模块74和匹配模块75。
[0252]
特征字段提取模块71,用于提取目标时间段内的各个告警信息中的共有可识别的特征字段;
[0253]
第一分组模块72,用于基于每个告警信息中的每个特征字段的特征值对各个告警信息进行初始分组,确定各个组对应的描述信息;其中,各个组对应的描述信息包括对应组中各个告警信息的特征字段以及每个特征字段对应的特征值,且,不同告警信息的同一特征字段对应的特征值相同;
[0254]
第二分组模块73,用于基于每个组的描述信息中的各个特征字段的特征值,对各个告警信息进行至少一次重新分组,直到重新分组后的每个组的描述信息中包括的特征字段的数量不大于第一预设数量阈值;
[0255]
基线规则确定模块74,用于在初始分组以及重新分组后得到的各个组中,根据各个组的描述信息筛选出至少一个目标组,并根据所述至少一个目标组各自对应的目标描述信息确定至少一个基线规则;其中,每个所述基线规则为对应目标组的所述目标描述信息中的特征字段的特征值与对应的特征字段的组合;
[0256]
匹配模块75,用于将待检测的告警信息与至少一个基线规则进行匹配,根据匹配结果确定待检测的告警信息是否为非关键告警。
[0257]
在一些示例性的实施方式中,第二分组模块73具体用于:
[0258]
确定各个描述信息构成的描述信息集合;
[0259]
依次删除所述描述信息集合中的每个特征字段,并将其他特征字段的特征值相同的告警信息合并为一组进行重新分组,并对重新分组得到的各个组的描述信息进行更新,得到更新后的描述信息集合;
[0260]
根据更新后的描述信息集合确定目标特征字段;其中,所述目标特征字段为下一
次需要删除的特征字段;
[0261]
删除所述更新后的描述信息集合中的所述目标特征字段,对更新后的描述信息集合更新,直到得到的描述信息集合中包括的每个组的描述信息中的特征字段的数量不大于第一预设数量阈值。
[0262]
在一些示例性的实施方式中,各个组对应的描述信息还包括对应组中告警信息的数量和对应组的异常状态;对应组的异常状态是根据对应组中的各个告警信息的异常状态确定的;
[0263]
第二分组模块73具体用于:
[0264]
在上一次分组得到的各个组中,若存在至少两个组,且至少两个组中的告警信息的其他特征字段中,同一特征字段的特征相同,则通过将至少两个组的告警信息合并为一组进行重新分组,并对重新分组得到的各个组的描述信息进行更新;
[0265]
其中,合并至少两个组的告警信息得到的一个组的描述信息中,告警信息的数量为至少两个组的告警信息的数量的和,组的异常状态为至少两个组的异常状态重新确定的异常状态。
[0266]
在一些示例性的实施方式中,基线规则确定模块74具体用于:
[0267]
在初始分组以及重新分组后得到的各个组中,删除异常的组;其中,异常的组为通过对应组描述信息中的组的异常状态确定;
[0268]
在得到的各个组中,按照各个组的描述信息中告警信息的数量和特征字段的数量,筛选出至少一个目标组。
[0269]
在一些示例性的实施方式中,还包括异常状态确定模块,用于通过如下方式确定每个告警信息的异常状态:
[0270]
确定告警信息对应的告警载荷的哈希值;
[0271]
根据哈希值和目标神经网络模型确定哈希值对应的重构误差;其中,目标神经网络模型的训练样本为多个待训练的哈希值,一个待训练的告警载荷确定一个待训练的哈希值;目标神经网络模型的训练为自监督学习的训练;
[0272]
若重构误差大于预设重构误差阈值,则确定告警载荷对应的告警信息为异常的告警信息。
[0273]
在一些示例性的实施方式中,还包括模型训练模块,用于通过如下方式得到目标神经网络模型:
[0274]
构建包括自编码器的初始神经网络模型,并确定每个待训练的告警载荷的待训练的哈希值;
[0275]
将各个待训练的哈希值进行分组,每组中包括的待训练的哈希值的个数的对数作为训练权重;
[0276]
应用训练权重和各个待训练的哈希值构成的训练样本集合,对初始神经网络模型进行重构训练,直到得到的目标神经网络模型收敛;其中,每次训练过程中,应用上一次训练得到的重构误差更新训练样本集合。
[0277]
在一些示例性的实施方式中,还包括去重模块,用于在将待检测的告警信息与至少一个基线规则进行匹配,根据匹配结果确定待检测的告警信息是否为非关键告警之前:
[0278]
在目标时间段内的各个告警信息中,确定至少一个基线规则匹配的告警信息;
[0279]
对至少一个基线规则匹配的告警信息执行去重操作,并确定去重后的告警信息的目标数量,以及去重后的告警信息对应的告警载荷的哈希值构成的哈希值集合;
[0280]
匹配模块75具体用于:
[0281]
若待检测的告警信息与至少一个基线规则匹配成功,且目标数量小于第二预设数量阈值,则在待检测的告警信息对应的待检测的告警载荷的哈希值属于哈希值集合时,确定待检测的告警信息为非关键告警;
[0282]
若待检测的告警信息与至少一个基线规则匹配成功,且目标数量大于或等于第二预设数量阈值,则在应用目标支持向量机模型确定待检测的告警信息对应的待检测的告警载荷的哈希值为正例时,确定待检测的告警信息的检测状态为非关键告警;其中,目标支持向量机模型是将哈希值集合中的各个的目哈希值作为训练样本训练得到的。
[0283]
在一些示例性的实施方式中,还包括哈希值确定模块,用于通过如下方式确定每个告警载荷的哈希值,包括:
[0284]
确定rsync窗口大小和平均切片大小;
[0285]
根据rsync窗口大小和平均切片大小确定告警载荷的切片位置,并根据切片位置对告警载荷进行切片;
[0286]
对每两个相邻切片合并确定crc32校验和;
[0287]
根据校验和对应的展开向量确定告警载荷的哈希值。
[0288]
在一些示例性的实施方式中,还包括数据清洗模块,用于在提取目标时间段内的各个告警信息中的共有可识别的特征字段之前:
[0289]
获取目标时间段内的原始告警信息和每个原始告警信息对应的告警载荷;
[0290]
根据原始告警信息中的告警类型的特征字段对原始告警信息进行清洗,得到各个告警信息;
[0291]
还用于对每个清洗后的告警信息对应的告警载荷执行如下操作:
[0292]
删除原始告警载荷中为空的告警载荷,以及原始告警载荷中的osi传输层以及以下的协议包装。
[0293]
本技术实施例提的一种检测攻击告警的装置与上述一种检测攻击告警的方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。
[0294]
基于与上述一种检测攻击告警的方法相同的发明构思,本技术实施例还提供了一种检测设备,该检测设备具体(可以为智能设备内部的控制设备或控制系统,也可以是与智能设备通信的外部设备)可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(personal digital assistant,pda)、服务器等。如图8所示,该检测设备可以包括处理器801和存储器802。
[0295]
处理器801可以是通用处理器,例如中央处理器(cpu)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0296]
存储器802作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器802还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0297]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于:移动存储设备、随机存取存储器(ram,random access memory)、磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等各种可以存储程序代码的介质。
[0298]
或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例方法的全部或部分。而前述的存储介质包括:移动存储设备、随机存取存储器(ram,random access memory)、磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等各种可以存储程序代码的介质。
[0299]
以上实施例仅用以对本技术的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本技术实施例的方法,不应理解为对本技术实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本技术实施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献