一种告警预测方法及系统与流程

文档序号:21695930发布日期:2020-07-31 22:35阅读:455来源:国知局
一种告警预测方法及系统与流程

本申请涉及网络安全技术领域,尤其涉及一种告警预测方法及系统。



背景技术:

入侵检测系统(intrusion-detectionsystem,ids)是一种对网络传输进行即时监视,在发现可疑传输时发出警报或采取主动反应措施的网络安全设备。与其他网络安全设备的不同之处在于,ids使用的是一种积极主动的安全防护技术。

威胁发现系统(threatdetectionsystem,tda)是一种用于威胁检测的网络安全设备,通过分析所有端口及多种通讯协议的应用来解析出定向性攻击、高级威胁以及勒索软件的攻击行为,能快速发掘并分析恶意文档、恶意软件、恶意网页、违规外连、勒索软件以及传统防护无法侦测到的内网攻击以及定向式攻击活动。

以ids、tda为代表的网络安全设备通过分析网络流量,针对可能的异常流量产生告警信息。通过对网络安全设备产生的告警信息记录进行分析,可以帮助运维人员判断是否有需要处理的异常事件发生、了解设备运行状况等。由于在相对复杂的网络场景下,网络安全设备会持续产生大量的告警信息,其中包含了很多的无效甚至错误告警,给运维人员及时发现、处理异常事件带来了困难,仅依靠人工分析还容易产生遗漏、误判等问题。同时,从告警信息产生到运维人员作出处理有时间差,对异常事件的处理往往是事后查证,很难做到实时响应甚至提前预防。

目前许多企业的it运维管理任务需要耗费大量人力资源。传统的运维管理方式会等到终端设备故障出现后再由运维人员采取相应措施补救,经常让it部门疲惫不堪,而且设备的故障经常给企业带来经济损失。

现有方法往往使用告警记录关联规则的告警信息分析方法,基于人工定义或频繁模式挖掘算法对告警信息的事件名称进行处理,得到告警记录关联序列,帮助运维人员发现需要关注的记录序列。首先,从历史告警信息中,找到运维人员发现的真实高危告警信息;之后,对每一种真实高危告警,用频繁模式挖掘算法,从真实高危告警信息前的若干条记录组成的样本集合中,找出频繁出现的告警事件序列;在告警信息的实时处理中,对最近产生的若干条告警信息使用频繁模式挖掘,得到当前频繁告警事件序列。将当前频繁告警事件序列与真实高危告警的频繁告警事件序列进行比照,辅以根据人工经验确定的阈值,判定是否需要通报可能出现的真实高危告警。

此类方法虽然能够有效整理告警记录序列,能够给出对真实高危告警的预测,但是不能做到对运维人员关注的异常事件的预报。此外,频繁模式挖掘算法效率低,难以处理海量告警信息,当安全设备误报率较高时,在信息记录中存在大量的误报,基于频繁模式挖掘算法会自动忽略出现频次低的告警信息,导致一些重要告警信息被忽略,无法找到真正有价值的,有实际意义的告警序列,且人工定义的规则无法主动发现新出现攻击或威胁类型对应的告警记录序列。

因此,需要提供一种能够处理海量告警信息,对高危告警进行实时预测,且对安全设备的误报有鲁棒性的告警预测方法及系统。



技术实现要素:

为解决以上问题,本申请提出了一种告警预测方法及系统。

一方面,本申请提出一种告警预测方法,包括:

对历史告警信息进行预处理和数据集划分处理,得到样本特征向量集合;

使用样本特征向量集合训练集成学习模型,得到训练好的预测模型;

使用训练好的预测模型对网络安全设备发送的告警信息进行实时预测和告警;

若实时预测结果中的误判数量超过更新阈值,则使用增量学习的方式更新预测模型,得到新的预测模型。

优选地,所述对历史告警信息进行预处理和数据集划分处理,得到样本特征向量集合,包括:

将历史告警信息依据源ip分类,得到源ip告警信息集合;

将源ip告警信息集合处理为多个等长时间段的段告警信息集合;

对各段告警信息集合依次进行数据采样和时序特征提取,得到对应各源ip历史告警信息集合的特征向量集合;

对特征向量集合进行数据集划分处理,得到样本特征向量集合。

优选地,所述使用样本特征向量集合训练集成学习模型,得到训练好的预测模型,包括:

将所述特征向量集合输入至所述集成学习模型;

使用分类算法,对所述特征向量集合中的各时序特征向量进行预测分类;

根据预测分类结果与各时序特征向量对应的源ip的标签,计算损失函数,对集成学习模型进行训练,得到训练好的预测模型。

优选地,所述使用训练好的预测模型对网络安全设备发送的告警信息进行实时预测和告警,包括:

对网络安全设备发送的实时告警信息集合进行预处理,得到对应各源ip的实时特征向量集合;

对实时特征向量集合进行预测分类,得到预测分类结果;

根据预测分类结果进行告警。

优选地,在所述若实时预测结果中的误判数量超过更新阈值之前,还包括:

获取各源ip的确认标签;

将确认标签与预测分类结果不同的源ip作为误判样本;

记录误判样本数量,得到误判数量

根据预测分类结果与各时序特征向量对应的源ip的标签。

优选地,所述使用增量学习的方式更新预测模型,得到新的预测模型,包括:

更新历史告警信息,得到新的训练样本;

使用新的训练样本训练预测模型,更新预测模型中的模型参数,得到新的预测模型。

优选地,所述数据集划分包括:聚类检测和离群点检测。

优选地,所述离群点检测包括单分类支持向量机,robust协方差,孤立森林算法和局部异常因子算法中的全部四种离群点检测算法。

第二方面,本申请提出一种告警预测系统,包括:

样本管理模块,用于获取网络安全设备发送的历史告警信息,对历史告警信息进行预处理和数据集划分处理,得到样本特征向量集合;

训练与更新模块,用于使用样本特征向量集合训练集成学习模型,得到训练好的预测模型;当实时预测结果中的误判数量超过更新阈值时,使用增量学习的方式更新预测模型,得到新的预测模型;

告警预测模块,用于使用训练好的预测模型对网络安全设备发送的告警信息进行实时预测和告警。

优选地,所述样本管理模块包括:

预处理单元,用于将历史告警信息依据源ip分类,得到源ip告警信息集合;将源ip告警信息集合处理为多个等长时间段的段告警信息集合;对各段告警信息集合依次进行数据采样和时序特征提取,得到对应各源ip历史告警信息集合的特征向量集合;

划分单元,用于对特征向量集合进行数据集划分处理,得到样本特征向量集合。

本申请的优点在于:基于集成学习模型的预测模型能够处理海量告警信息,并对高危告警进行实时预测;使用增量学习的方式更新预测模型,对安全设备的误报有鲁棒性。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选事实方案的目的,而并不认为是对本申请的限制。而且在整个附图中,用同样的参考符号表示相同的部件。在附图中:

图1是本申请提供的一种告警预测方法的步骤示意图;

图2是本申请提供的一种告警预测方法的示意图;

图3是本申请提供的一种告警预测系统的系统示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

根据本申请的实施方式,提出一种告警预测方法,如图1所示,该方法包括:

s101,对历史告警信息进行预处理和数据集划分处理,得到样本特征向量集合;

s102,使用样本特征向量集合训练集成学习模型,得到训练好的预测模型;

s103,使用训练好的预测模型对网络安全设备发送的告警信息进行实时预测和告警;

s104,若实时预测结果中的误判数量超过更新阈值,则使用增量学习的方式更新预测模型,得到新的预测模型。

对历史告警信息进行预处理和数据集划分处理,得到样本特征向量集合,包括:

将历史告警信息依据源ip分类,得到源ip告警信息集合;

将源ip告警信息集合处理为多个等长时间段的段告警信息集合;

对各段告警信息集合依次进行数据采样和时序特征提取,得到对应各源ip历史告警信息集合的特征向量集合;

对特征向量集合进行数据集划分处理,得到样本特征向量集合。

样本特征向量集合中的数据包括二分类标签集c。

使用样本特征向量集合训练集成学习模型,得到训练好的预测模型,包括:

将特征向量集合输入至集成学习模型;

使用分类算法,对特征向量集合中的各时序特征向量进行预测分类;

根据预测分类结果与各时序特征向量对应的源ip的标签,计算损失函数,对集成学习模型进行训练,得到训练好的预测模型。

使用训练好的预测模型对网络安全设备发送的告警信息进行实时预测和告警,包括:

对网络安全设备发送的实时告警信息集合进行预处理,得到对应各源ip的实时特征向量集合;

对实时特征向量集合进行预测分类,得到预测分类结果;

根据预测分类结果进行告警。

在若实时预测结果中的误判数量超过更新阈值之前,还包括:

获取各源ip的确认标签;

将确认标签与预测分类结果不同的源ip作为误判样本;

记录误判样本数量,得到误判数量

根据预测分类结果与各时序特征向量对应的源ip的标签。

则使用增量学习的方式更新预测模型,得到新的预测模型,包括:

更新历史告警信息,得到新的训练样本;

使用新的训练样本训练预测模型,更新预测模型中的模型参数,得到新的预测模型。

数据集划分包括:聚类检测和离群点检测。

离群点检测包括单分类支持向量机(oneclasssvm),robust协方差(covariance),孤立森林(isolateforest)算法和局部异常因子(localoutlierfactor)算法中的全部四种离群点检测算法。

特征向量集合基于源ip时序。

训练预测模型用的特征向量集合包括标签,用于标记特征向量集合中的数据是否产生真实高危告警。

实时告警信息集合包括一段时间的告警信息数据,此时间可以按秒、分钟等为时间单位进行设置。

源ip告警信息集合r包含的历史告警记录中出现的所有源ip,并且根据源ip,分类存储历史告警信息,即r源ip_1,…,r源ip_n分别表示源ip_1,源ip_2,…,源ip_n相应的历史告警记录。每一个r源ip_n代表一个源ip地址对应的告警信息记录集合。

下面,对本申请的实施方式进行进一步说明。

保存历史时间(如两年)内产生的告警信息的策略,得到历史告警信息,此阶段的历史告警信息数据用于对集成学习模型进行训练,得到预测模型。

历史告警信息依据源ip分类存储,得到源ip告警信息集合r。以源ip为观察对象,第i个源ip(即源ip_i)按时间顺序汇总的历史告警信息数据r源ip_1,…,r源ip_n,n表示样本管理中历史告警信息所涉及的源ip个数。假设源ip_i在两周内有q条历史告警信息,则历史告警信息数据按时序可以形式化地表示为r源ip_i:([时间1、事件名称1、规则编号1、源ip_i、目的ip_1],…,[时间q、事件名称q、规则编号q、源ip_i、目的ip_q])。

将源ip告警信息集合r处理为多个等长时间段,得到段告警信息集合tr。

对段告警信息集合tr中源ip依次进行数据采样、时序特征向量提取操作。

由于发生网络攻击行为时,极短时间内源ip设备频繁向同一个目的ip地址发出同种网络攻击,所产生的频繁告警信息实质上是关于同一攻击行为的告警信息。这导致ids、tda产生大量关于这个网络攻击的冗余源ip告警信息,并且源ip的各类告警事件的频次分布差距大,影响后续的告警预测结果。因此,数据采样处理能够降低冗余告警信息带来的影响,均衡各类告警事件的发生频次分布。

具体地,对源ip告警信息集r中每个源ip的告警信息r源ip_i(1≤i≤n)进行采样,选择r源ip_i中部分的告警信息记录序列。采样处理依据告警事件发生频次越高采样概率越低,且告警事件发生时序不变的原则,令各个告警事件采样概率与频次之积相等,保证每组源ip维持告警信息样本时序关系的情况下,尽可能排除冗余事件类型,样本事件类型多样化。经过采样处理,得到经过采样处理后的源ip告警信息样本集r′。

对每个源ip,对其告警信息集合按照告警信息出现的时间顺序,构造源ip对应告警事件名称序列e和事件名称发生对应频次序列f。e=[e1,e2,…,eq],q表示源ip的历史告警信息个数(告警事件数量)。

计算源ip历史告警信息序列的采样频率序列p。对于r源ip_i,ei∈e,其中表示对历史告警信息中告警事件ei的采样概率,计算公式为:

根据相应的源ip_i采样频率序列p,以及设定的采样个数q′,对历史告警信息集r源ip_i进行不放回采简单随机采样。若源ip_i告警信息包含的信息个数不足q′,则对源ip_i的告警信息补零,至告警信息个数达到q′,以此获得相应的告警信息样本,其他情况,抽样过程如下:

根据采样频率序列p,计算序列对应的累计分布概率cdf,根据需要抽样的个数,生成[0,1]的随机数数组x,x=[x1,x2,…,xq′]。依次将x中的随机数按照cdf值升序找到插入位置的索引号,形成索引数组new,new=[index1,…,indexq′],indexi表示xi在cdf中排在第indexi位。new中不重复的位置索引作为本次抽样的位置索引,设不重复位置索引个数为z,对相应源ip_i采集告警信息中相同位置索引的告警信息,并保证告警信息时序关系不变,本次采集样本个数为z。在采样频率序列p中,将已经抽样的索引位置的采样概率置0,还待采样个数为q′,令q′=q′-z。重复上述步骤,直到q′=0,输出源ip_i采集的所有样本,得到相应源ip的告警信息样本集。

r中源ip经过采样,得到源ip告警信息样本集r′,r′={r′源ip_1,…,r′源ip_n},其中|r′源ip_i|=q′,表示每个源ip采样保留q′条告警信息。

经过采样后得到源ip告警信息样本集r′。

告警预测系统以源ip为研究对象,分析告警事件对真实告警信息的预测能力,因此,对源ip提取关于告警事件的时序特征向量,用于实时预测。提取源ip告警信息集r′中每组源ip的告警事件作为时序特征向量v源ip,得到源ip告警信息集合的时序特征向量集v,v=(v源ip_1,…,v源ip_n),其中,源ip_i的时序特征向量v源ip_i=(e1′,…,em′,…,eq′),其中,em′表示源ip_i在当前时间段内发生的一个告警事件名称,q′表示源ip_i采样后保留的告警信息记录数。

提取源ip告警信息集r′中的源ip告警事件的时序特征向量,得到源ip特征向量集合v。

数据集划分处理包括使用聚类以及离群点检测对特征向量集合中的各特征向量v源ip_i进行处理。聚类为以kmeans++算法为核心算法,离群点检测,优选地,集成了单分类支持向量机,robust协方差,孤立森林算法以及局部异常因子算法四种离群点检测算法,共同投票得到数据集中的离群点。离群点检测中的四个算法会分别对每个样本进行检测,并给出一个该样本是否是离群点的判断结果,最终结果会根据四个算法共同投票给出,当过半算法将该样本判断为离群点时,该样本被归纳入离群点集合。去除各特征向量v源ip_i中的离群点后,对非离群点进行聚类,根据聚类的结果得到相应的类别;离群点类别与聚类结果类别结合,作为所有的分类结果。在数据集划分处理中,历史的源ip时序特征向量vhis通过聚类模型以及离群点检测模型,被分成了多个类别,得到带分类标签的特征向量集合vhis(样本特征向量集合)。样本特征向量集合中的数据还包括二分类标签集c。二分类标签集c是基于运维人员的经验判断,为这些不同类别的源ip时序特征向量vhis设置标签,从而获得的相对应的二分类标签集。该标签集将真实高危告警事件存在的前一个时间段信息的源ip时序特征向量vhis的标签设置为1,其余时间段信息的源ip时序特征向量vhis的标签被设置为0。

历史的源ip时序特征向量为用于训练用集成学习模型的特征向量集合中的特征向量。

离群点检测的具体过程为,加载历史的源ip时序特征向量集(样本集)vhis,调用单分类支持向量机,robust协方差,孤立森林算法以及局部异常因子算法四种离群点检测算法,分别对样本集vhis中的每个样本v源ip_i进行离群点判断。综合四个离群点检测算法的判断结果,投票得出样本v源ip_i的离群点检测结果。

聚类的具体过程为,加载历史的源ip时序特征向量集(样本集)vhis和预设聚类数量k,在样本集vhis中随机选取k个彼此相对距离最远的点作为k个聚类的初始中心c={c1,c2,…,ck}。针对样本集vhis中的每个样本v源ip_i,计算它到每个聚类中心的距离并将其分到距离最小的聚类中心所属的类中。针对每个类别ci,重新计算它的聚类中心重复上述过程,直至所有聚类中心ci不再发生变化,输出所有样本v源ip_i及其对应的聚类中心i。

训练集成学习模型所需要的样本特征向量集合包括源ip时序特征向量集vhis和其特征向量相对应的二分类标签c。集成学习模型,优选地,选用xgboost分类模型,用k折交叉验证法进行训练。训练结束后,保存模型,得到训练好的预测模型,用于后续预测。

集成学习模型的训练过程,具体为,打乱由源ip历史时序特征向量集vhis和样本标签集c这两者合并构成的样本特征向量集合,使用k折交叉验证法训练集成学习模型。将乱序后的样本特征向量集合中的样本特征向量分成k份,依次留出其中1份用于模型验证,其余k-1份用于模型训练。迭代轮次自增1,计算模型指标auc(areaundercurve,auc),若达到要求,如auc超过0.9,则停止训练,并保存模型m,否则重复上述步骤,直至模型指标auc达到要求,得到训练好的预测模型m。

xgboost分类模型以xgboost算法为核心算法。xgboost算法通过构建并结合多个决策树来预测源ip真实高危告警事件的发生。在模型初始化(训练)或者增量更新时训练得到模型参数。训练后的xgboost分类模型实时预测源ip真实高危告警事件的发生。

使用训练好的预测模型对网络安全设备发送的告警信息进行实时预测和告警。

对网络安全设备发送的实时告警信息进行预处理(数据采样和时序特征提取)后,得到对应各源ip的实时特征向量集合(待测的源ip时序特征向量集合)v,输入至预测模型。

预测模型对实时特征向量集合v进行实时预测。对于输入的实时特征向量集合v,xgboost分类模型给出相应的预测标签作为预测分类结果。

在模型的预测分类结果中,将判定可能发生真实高危事件(即预测标签值为1)的源ip与其相关告警信息一起在向运维人员展示。将实时特征向量集合v作为未获得确认标签的时序特征向量保存。此外,实时预测过程与模型的增量更新同步进行。

预测模型的具体预测过程为,用xgboost模型m,对实时特征向量集合中的每个样本v进行预测,得到预测分类结果。对被判定可能发生真实高危事件进行告警。同时,保存得到预测分类结果的实时特征向量集合v。

实时判断是否需要更新预测模型,并更新训练样本集。

增量更新用于确保预测模型不断学习新的样本,同时不遗忘过去的样本信息。对预测模型进行更新,按增量学习的方式进行,当前样本信息达到更新要求后,通过更新训练样本,重新训练预测模型,更新模型参数。

分类模型的增量更新需要预先设置更新阈值。此参数可灵活设置,优选地,可以设置为新增误判样本个数。如将更新阈值设定为2,从上一次预测模型更新(或训练完成)开始计数,累积产生2个误判样本时,进行模型增量更新训练。进行模型更新时,样本管理模块利用带有标签的特征向量(包括历史特征向量和新获取的特征向量)构造模型更新的训练数据集v,该训练数据集v用于模型更新训练。

误判样本为确认标签与预测分类结果不同的源ip。

确认标签为,在一段时间内,源ip对应的实际发生的事件的标签。

增量更新训练时,加载上一阶段的模型参数作为新模型的初始参数,在此基础上使用新的训练数据集(训练样本)进行模型训练,更新模型参数。

预测模型的更新过程,具体为,根据更新阈值判断是否需要更新模型,如果需要,则从样本管理模块中加载训练数据集(新的训练样本),使用k折交叉验证方式,加载上一时间阶段训练的模型m的参数,作为新模型初始参数,在此基础上使用新的训练数据集进行训练,保存更新之后的预测模型m′,用于后续的实时预测。

在实时预测阶段,采取保存指定时间范围(如两周)内产生的历史告警信息的策略,随时间推移删除过时历史记录,更新保留的历史告警信息。

本申请实施方式中的预测模型基于机器学习,能够提高企业运维工作效率。通过xgboost集成学习算法来进行告警信息预测,为运维人员准确预报即将发生真实高危告警的源ip设备。根据ids、tda设备产生的告警记录,学习高危告警事件之间的时序逻辑关系,进行告警预测。通过增量学习,不断更新模型参数,能够应对告警记录剧增的情景,并且更加适用于符合实际变化中的告警信息时序数据,模型的预测能力不断提高。对ids、tda实时产生的告警信息数据有良好处理能力,实时进行源ip攻击行为预测。

根据本申请的实施方式,还提出一种告警预测系统,如图2所示,包括:

样本管理模块101,用于获取网络安全设备发送的历史告警信息,对历史告警信息进行预处理和数据集划分处理,得到样本特征向量集合;

训练与更新模块102,用于使用样本特征向量集合训练集成学习模型,得到训练好的预测模型;当实时预测结果中的误判数量超过更新阈值时,使用增量学习的方式更新预测模型,得到新的预测模型;

告警预测模块103,用于使用训练好的预测模型对网络安全设备发送的告警信息进行实时预测和告警。

样本管理模块包括:

预处理单元,用于将历史告警信息依据源ip分类,得到源ip告警信息集合;将源ip告警信息集合处理为多个等长时间段的段告警信息集合;对各段告警信息集合依次进行数据采样和时序特征提取,得到对应各源ip历史告警信息集合的特征向量集合;

划分单元,用于对特征向量集合进行数据集划分处理,得到样本特征向量集合。

训练与更新模块具体地,包括:

训练单元,用于使用样本特征向量集合训练集成学习模型,得到训练好的预测模型;

更新单元,用于当实时预测结果中的误判数量超过更新阈值时,使用增量学习的方式更新预测模型,得到新的预测模型。

样本管理模块还用于管理网络安全设备发送的实时告警信息。根据实时预测时间粒度参数(一个时间单位长度,如5分钟、15分钟或1小时等),将ids、tda最近一个时间单位内产生的告警信息合并入历史告警记录(历史告警信息)。对历史告警记录进行预处理后,得到对应各源ip历史告警信息集合的特征向量集合。此特征向量集合不经过划分单元,直接输入至告警预测模块进行实时预测和告警。

实时告警信息被系统接收,输入到样本管理模块中,样本管理模块主要负责两种数据的管理:历史告警信息、对应到源ip的实时时序特征向量。

样本管理模块利用自身管理的数据,可以支持系统的实时预测和模型的增量更新。样本管理模块根据源ip,将接收的实时告警信息归并入存储的相应源ip的历史告警信息,这些历史告警信息通过输入数据采样、时序特征提取等步骤,最终被用于系统的实时预测。在样本管理模块中,还包括存储单元,存储的历史告警信息(历史告警记录)和确认标签的特征向量被用于构造分类模型更新所需的样本特征向量集合,作为分类模型更新的输入,用于分类模型的增量更新。系统的实时预测和模型的增量更新同时进行。

更新阈值的计数由样本管理模块负责。进行模型更新时,样本管理模块利用带有标签的特征向量(包括历史特征向量和新获取的特征向量)构造模型更新的训练数据集v,该训练数据集v用于模型更新训练。

样本管理模块对源ip的特征向量,根据是否有确认标签,分别进行处理。保存确认标签为1的特征向量(属于正样本,即对应源ip在产生特征向量后指定时间段内确实产生了真实高危告警),删除标签为0的特征向量(属于负样本,即对应源ip在产生特征向量后指定时间段内并未产生真实高危告警)。对于没有确认标签的特征向量,暂时保留直到获得其确认标签,尚未获得确认标签的时序特征向量来自实时预测过程中的预测样本。在这种方式下,标签为1的正样本数量极少,所以其存储开销可以忽略;虽然指定时间范围内的历史告警信息和未确认标签的时序特征向量存储开销较大,但由于时间限制的存在,这部分信息所占的存储空间大小在可接受范围内。

历史告警信息被样本管理模块处理为历史源ip告警信息集合r,然后历史源ip告警信息集合r被样本管理模块依据最小时间粒度(如15分钟)进一步分割为若干个等长时间段的信息,得到段告警信息集合tr。这些等长时间段的信息被依次输入至预处理单元,进行数据采样和时序特征提取。

被处理为历史的源ip时序特征向量vhis。在数据集划分模块中,历史的源ip时序特征向量vhis通过聚类模型以及离群点检测模型,被分成了多个类别。接着根据运维人员的经验判断,为这些不同类别的源ip时序特征向量vhis设置标签,获得相应的二分类标签集c。该标签集将真实高危告警事件存在的前一个时间段信息的源ip时序特征向量vhis的标签设置为1,其余时间段信息的源ip时序特征向量vhis的标签被设置为0。

下面,如图3所示,对本申请的实施方式进行进一步说明。

ids、tda安全设备实时检测it设备,将it设备受到网络攻击的告警信息发送至告警预测系统。

安全设备持续产生海量告警信息,样本管理模块能够解决历史告警信息难以存储导致的问题,实现系统的实时预测和模型的增量更新。样本管理模块实时接收来自ids、tda安全设备检测的告警信息。每条告警信息都记录关于受保护的在线终端设备被网络攻击的相关日志信息,告警信息的字段特征为:告警时间、攻击事件名称、攻击规则编号、发生攻击的源设备ip、受到攻击的目的设备ip,简写为时间、事件名称、规则编号、源ip、目的ip。

警预测系统将这些实时告警信息输入样本管理模块,经过数据转换(如预处理)、更新、存储等操作,得到历史告警信息和对应到源ip的时序特征向量,这两种数据在模型训练阶段,被用于训练集成学习模型,而在实时运行(预测)阶段,被用于系统的实时预测和模型的增量更新,实时预测与增量更新同步进行。

在初始化阶段(待训练模型的训练阶段),系统需要对待训练模型进行训练,得到训练好的预测模型。样本管理模块在初始化阶段,为训练与更新模块中的待训练模型的训练提供原始的训练数据集。样本管理模块中的历史告警信息依据源ip被分类存储,从而获得历史的源ip告警信息集合r,r={r源ip_1,…,r源ip_n},n表示历史时间单位内涉及的源ip的个数。预处理单元将所有历史告警信息处理为若干等长时间段的段告警信息集合tr,tr依次经过数据采样和时序特征提取后,发送至划分单元,进行数据集划分处理,得到样本特征向量集合。在待训练模型完成训练后,样本管理模块只提取最近指定范围(如两周)内的历史告警信息,用于系统的实时预测过程。

对于待训练模型的训练,样本管理模块将历史告警信息依据源ip分类存储,获得源ip告警信息集合。样本管理模块再将源ip告警信息集合处理为若干等长时间段的告警信息集合tr,tr依次经过数据采样、时序特征提取、数据集划分模块处理,得到历史的源ip时序特征向量集,再藉由运维人员的经验为这些历史的源ip时序特征向量设置相应标签。这些带有标签的历史的源ip时序特征向量组成了初始化样本特征向量集合,该初始化样本特征向量集合输入至训练与更新模块中的训练单元,用于系统的分类模型的初始化训练。

样本管理模块输出历史或实时的源ip告警信息集合r,带有确认标签的时序特征向量,其具体处理流程为,在待训练模型的训练阶段,样本管理模块保留历史指定范围(两年)内的历史告警信息,并将所有历史告警信息处理为若干等长时间段的段告警信息集合tr,tr依次经过数据采样、时序特征提取、数据集划分模块处理,结合运维人员的经验判定,获得带有标签的初始化训练样本集,该初始化训练样本集用于分类模型的初始化训练过程。

在训练与更新模块中的训练单元完成待训练模型的训练过程后,进行实时运行阶段,样本管理模块只保留指定范围(最近两周)内的历史告警信息,并根据实时预测时间粒度参数(一个时间单位长度),将ids、tda最近一个时间单位内产生的告警信息合并入历史告警记录。方式为从历史告警记录中,提取最新告警信息列表中所有ip地址的相关记录,并基于ip地址组合生成新的实时源ip告警信息集合r,用于实时分类预测。

在标签判定时间(如5天)长度内,给尚未获得确定标签的告警信息设置确认标签,更新历史告警记录和时序特征向量的存储,将带有确认标签的时序特征向量集进行增量更新判断,在满足增量更新条件的情况下,准备训练数据集(新的训练样本),输入至训练与更新模块,对预测模型进行更新训练,否则,不对分类模型进行更新。

对于系统的实时预测,样本管理模块将实时告警信息根据源ip归并入相应源ip的历史告警信息中,并逐一提取实时告警信息中出现的源ip的相关历史告警信息记录。以源ip为研究对象,将所选源ip的告警信息依次进行数据采样、时序特征提取,获得时序特征向量,将这些时序特征向量输入至告警预测模块,作为xgboost分类模型的输入数据,实时预测这些源ip后续是否会产生真实高危告警。

告警预测模块的实时预测需要预先设置两个时间段参数:实时预测时间粒度和标签判定时间。实时预测时间粒度用于确定每次实时预测的一个时间单位长度,如设定为15分钟时,每15分钟进行一次实时预测,每次先将最近15分钟内产生的告警记录合并入历史告警记录集合,即15分钟告警记录根据所涉及源ip,结合样本管理中相同源ip的历史告警记录,得到实时的源ip告警信息集合r,r={r源ip_1,…,r源ip_n},n表示最近一个时间单位内涉及的源ip的个数。对集合r中源ip依次进行数据采样、时序特征向量提取操作,得到特征向量。

将这些时序特征向量作为告警预测模块的输入,告警预测模块中的预测模型预测其后续是否会产生真实高危告警。标签判定时间用于限制每个特征向量确认标签判定的时间范围,例如设置为5天,如果某个时序特征向量的源ip在特征向量产生后5天内产生了真实高危告警,则认为其标签为1,反之标签为0。样本管理模块根据实时预测时间粒度参数确定实时预测的频繁度,在标签判定时间内给尚未获得确定标签的时序特征向量设置标签。

样本管理模块在每轮实时预测后,将对于已经有标签的特征向量输入至训练与更新模块中的更新单元。模型更新过程中的更新阈值,被用于判断误判样本数量是否满足增量更新条件,误判样本被定义为预测标签与确认标签不同的样本。当满足增量更新条件时,样本管理模块准备训练数据集,输入至训练与更新模块中的更新单元,对预测模型进行增量更新训练,否则,不更新分类模型。

对于模型的增量更新,从上一轮模型的增量更新(或模型训练)开始,样本管理模块重新累计误判样本个数,当误判样本个数达到预先设置的更新阈值时,满足更新要求,在样本管理模块中选择涉及源ip的历史告警信息依次进行数据采样和时序特征提取,获得历史数据的时序特征向量,同时与已保存的所有时序特征向量一起构成更新训练集,输入训练与更新模块中的更新单元,在原有的xgboost分类模型参数的基础上,增量训练模型,更新模型参数。

告警预测模块还能够根据预测模型的预测结果,显示预测即将发生真实高危告警的源ip和源ip相应的告警信息。运维人员通过系统界面查看预测结果和源ip相关告警信息,决定是否需要进行查验,可以及时处理相关告警信息。

增量学习是指学习系统模拟人类自身的学习模型,不断地从新样本中学习新的知识,并且能够保存大部分以前已经学习到的知识。增量学习对历史训练数据有遗忘机制,对新的训练数据有更新机制,从而减少空间存储。同时,增量学习在当前训练中充分利用历史的训练结果,显著减少后续训练的时间,因此增量学习十分适用于大规模数据库的场景。

集成学习通过构建并结合多个学习器来完成学习任务,以达到减小方差、偏差或改进预测的效果,比单一学习器获得显著优越的泛化性能。xgboost是集成学习的一种,全名叫(extremegradientboosting)极端梯度提升,属于个体学习器之间有依赖关系,必须串行生成的序列方法。具体来说,xgboost是一个树集成模型,可应用于分类预测场景,xgboost将树模型的复杂度加入到正则项中,有效避免过拟合,提高泛化能力。

本申请的实施方式由于其样本管理模块提供了历史样本特征,且用于增量更新的训练数据集包含了最新提取的样本特征,使得预测模型的训练和更新能够借鉴上一时间阶段的历史模型参数,在保留对历史样本特征的学习的前提下,通过现有误判的样本以及保存历史告警日志的数据信息学习到新的样本特征,能够处理实时产生的告警信息数据,对ids、tda产生的告警信息的数据处理能力更强,能够实时进行告警日志预测,为运维人员及时预报即将发生真实高危告警的源ip。本申请实施方式的预测模型的泛化能力更强,能够适应不断改变的告警信息数据,预测效率更高。

本申请的方法中,通过基于集成学习模型的预测模型能够处理海量告警信息,并对高危告警进行实时预测;使用增量学习的方式更新预测模型,能够对预测模型进行动态更新模型,效率高,对安全设备的误报有鲁棒性。对告警事件进行时间序列分析,能够更充分的利用告警信息。使用集成学习模型对告警信息进行时间序列分析,通过增量学习的方式动态更新模型,能够对源ip发生真实高危事件的情况做出及时准确预报,并将相关告警信息通报给运维人员,帮助运维人员提前判断处理。

以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1