一种网络攻击预测方法及装置
技术领域
本发明涉及网络安全技术领域,具体涉及一种网络攻击预测方法及装置。
背景技术
随着计算机技术的不断发展和互联网的不断普及,网络攻击形式层出不穷,网络安全问题日益突出,造成的社会影响和经济损失越来越大,对网络威胁检测与防御提出了新的需求和挑战。对网络攻击的研究不能仅从攻击的个体出发,还需要对整个网路攻击过程有整体的认识。
然而,现有大部分关于网络攻击的检测集中于归纳、分类漏洞和攻击方法上。比如利用攻击树模型的描述方法,使用树来表示攻击行为之间的关联,树的每个节点表示攻击的最终目标。攻击树模型直观、易于理解,但是它不区分攻击行为和攻击结果,难以利用攻击树模型进行攻击预测。
发明内容
本发明所要解决的是现有的网络攻击检测方法不区分攻击行为和攻击结果而无法进行攻击预测的问题。
本发明通过下述技术方案实现:
一种网络攻击预测方法,包括:
根据已公开的网络攻击事件确定一条以上攻击链,所述攻击链包括两个以上按序排列的攻击阶段;
根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段;
将所述一条以上攻击链中与所述当前攻击阶段相邻且位于所述当前攻击阶段之后的攻击阶段确定为下一个攻击阶段。
可选的,所述根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段包括:
根据所述告警信息的告警内容,从预先建立的标签库中确定与所述告警信息对应的攻击链标签,其中,所述标签库中的每个攻击链标签对应表征一个攻击阶段;
将与所述告警信息对应的攻击链标签表征的攻击阶段确定为所述当前攻击阶段。
可选的,所述攻击链包括M级子攻击链,每级子攻击链包括两个以上按序排列的攻击阶段,且第m+1级子攻击链中的每个攻击阶段对应属于第m级子攻击链中的一个攻击阶段,其中,M为不小于2的整数,1≤m≤M-1;所述根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段包括:
根据所述告警信息的告警内容,从预先建立的标签库中确定与所述告警信息对应的攻击链标签,其中,所述标签库包括M级子标签库,每级子标签库存储两个以上攻击链标签,且第m+1级子标签库中的每个攻击链标签对应属于第m级子标签库中的一个攻击链标签,所述标签库中的每个攻击链标签对应表征一个攻击阶段;
将与所述告警信息对应的攻击链标签表征的攻击阶段确定为所述当前攻击阶段。
可选的,在所述将所述一条以上攻击链中与所述当前攻击阶段相邻且位于所述当前攻击阶段之后的攻击阶段确定为下一个攻击阶段之后,还包括:
生成攻击预测信息,所述攻击预测信息包括所述下一个攻击阶段;
通过邮件、短信、对话框以及即时通信中的一种或多种组合将所述攻击预测信息发送给网络管理人员。
可选的,所述告警信息为用于表征所述网络攻击成功的第一告警子信息或者为用于表征所述网络攻击无效的第二告警子信息;
所述第一告警子信息的告警内容包括所述网络攻击的攻击类型和所述网络攻击的攻击动作,所述第二告警子信息的告警内容包括所述网络攻击的攻击类型。
可选的,在所述根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段之前,还包括:
检测所述目标主机是否受到所述网络攻击并确定所述网络攻击的攻击类型;
若所述目标主机受到所述网络攻击,则检测所述网络攻击是否成功并确定成功的网络攻击的攻击动作;
若所述网络攻击成功,则生成所述第一告警子信息,否则生成所述第二告警子信息。
可选的,所述检测所述目标主机是否受到所述网络攻击并确定所述网络攻击的攻击类型包括:
采集所述目标主机的网络数据;
从所述网络数据中提取待检测特征;
将所述待检测特征导入预先建立的人工智能模型,通过所述人工智能模型对所述待检测特征进行归类,根据归类结果确定所述目标主机是否受到网络攻击以及所述网络攻击的攻击类型。
可选的,所述从所述网络数据中提取待检测特征包括:
从所述网络数据中提取请求数据,其中,所述请求数据用于向所述目标主机发起请求服务;
从所述请求数据中提取所述待检测特征。
可选的,在所述将所述待检测特征导入预先建立的人工智能模型之前,还包括:
建立所述人工智能模型。
可选的,所述建立所述人工智能模型包括:
收集模型训练数据;
从所述模型训练数据中提取已知网络攻击的特征,获得攻击特征数据;
对所述攻击特征数据进行分类,获得训练样本;
根据所述训练样本进行模型训练,获得所述人工智能模型。
可选的,所述根据所述训练样本进行模型训练包括:
根据所述训练样本,采用朴素贝叶斯算法进行模型训练。
可选的,所述检测所述网络攻击是否成功包括:
从所述网络攻击对应的网络数据中提取待比对特征;
将所述待比对特征与一个以上攻击响应规则进行比对,其中,所述攻击响应规则根据第一响应数据形成,所述第一响应数据用于受攻击主机对成功攻击请求的应答;
若所述待比对特征与所述攻击响应规则相匹配,则判定所述网络攻击成功。
可选的,所述从所述网络攻击对应的网络数据中提取待比对特征包括:
从所述网络数据中提取第二响应数据,其中,所述第二响应数据用于所述目标主机应答请求服务;
从所述第二响应数据中提取所述待比对特征。
可选的,所述从所述网络攻击对应的网络数据中提取待比对特征包括:
从所述网络数据中提取请求数据和第二响应数据,其中,所述请求数据用于向所述目标主机发起请求服务,所述第二响应数据用于所述目标主机应答请求服务;
从所述请求数据和所述第二响应数据中提取所述待比对特征。
可选的,在所述将所述待比对特征与一个以上攻击响应规则进行比对之前,还包括:
建立包含所述一个以上攻击响应规则的特征库。
可选的,所述建立包含所述一个以上攻击响应规则的特征库包括:
创建数据库;
从一个以上第一响应数据中对应提取一个以上攻击响应特征;
对每个攻击响应特征进行确定性描述,形成一个以上攻击响应规则;
将所述一个以上攻击响应规则存储到所述数据库中,获得所述特征库。
可选的,所述特征库包括N个子特征库,N为不小于2的整数,所述建立包含所述一个以上攻击响应规则的特征库包括:
创建N个数据库;
从两个以上第一响应数据中对应提取两个以上攻击响应特征;
对每个攻击响应特征进行确定性描述,形成两个以上攻击响应规则;
将所述两个以上攻击响应规则中属于同种攻击类型的攻击响应规则存储到相同的数据库中,获得所述子特征库。
可选的,所述将所述待比对特征与一个以上攻击响应规则进行比对包括:
将所述待比对特征与和所述网络攻击的攻击类型对应的子特征库中一个以上攻击响应规则进行比对。
可选的,所述对每个攻击响应特征进行确定性描述包括:
采用正则表达式对每个攻击响应特征进行确定性描述。
可选的,在所述将所述待比对特征与一个以上攻击响应规则进行比对之前,还包括:
建立每个所述攻击响应规则与攻击动作之间的关联关系;
所述确定成功的网络攻击的攻击动作包括:
根据每个所述攻击响应规则与攻击动作之间的关联关系,将与所述待比对特征匹配的攻击响应规则所对应的攻击动作,确定为所述成功的网络攻击的攻击动作。
基于同样的发明构思,本发明还提供一种网络攻击预测装置,包括:
第一确定模块,用于根据已公开的网络攻击事件确定一条以上攻击链,所述攻击链包括两个以上按序排列的攻击阶段;
第二确定模块,用于根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段;
第三确定模块,用于将所述一条以上攻击链中与所述当前攻击阶段相邻且位于所述当前攻击阶段之后的攻击阶段确定为下一个攻击阶段。
可选的,所述第二确定模块包括:
第一确定单元,用于根据所述告警信息的告警内容,从预先建立的标签库中确定与所述告警信息对应的攻击链标签,其中,所述标签库中的每个攻击链标签对应表征一个攻击阶段;
第二确定单元,用于将与所述告警信息对应的攻击链标签表征的攻击阶段确定为所述当前攻击阶段。
可选的,所述攻击链包括M级子攻击链,每级子攻击链包括两个以上按序排列的攻击阶段,且第m+1级子攻击链中的每个攻击阶段对应属于第m级子攻击链中的一个攻击阶段,其中,M为不小于2的整数,1≤m≤M-1;所述第二确定模块包括:
第三确定单元,用于根据所述告警信息的告警内容,从预先建立的标签库中确定与所述告警信息对应的攻击链标签,其中,所述标签库包括M级子标签库,每级子标签库存储两个以上攻击链标签,且第m+1级子标签库中的每个攻击链标签对应属于第m级子标签库中的一个攻击链标签,所述标签库中的每个攻击链标签对应表征一个攻击阶段;
第四确定单元,用于将与所述告警信息对应的攻击链标签表征的攻击阶段确定为所述当前攻击阶段。
可选的,所述网络攻击预测装置,还包括:
预测信息生成模块,用于生成攻击预测信息,所述攻击预测信息包括所述下一个攻击阶段;
发送模块,用于通过邮件、短信、对话框以及即时通信中的一种或多种组合将所述攻击预测信息发送给网络管理人员。
可选的,所述告警信息为用于表征所述网络攻击成功的第一告警子信息或者为用于表征所述网络攻击无效的第二告警子信息;
所述第一告警子信息的告警内容包括所述网络攻击的攻击类型和所述网络攻击的攻击动作,所述第二告警子信息的告警内容包括所述网络攻击的攻击类型。
可选的,所述网络攻击预测装置,还包括:
第一检测模块,用于检测所述目标主机是否受到所述网络攻击并确定所述网络攻击的攻击类型;
第二检测模块,用于在所述目标主机受到所述网络攻击时,检测所述网络攻击是否成功并确定成功的网络攻击的攻击动作;
告警信息生成模块,用于在所述网络攻击成功时,生成所述第一告警子信息,否则生成所述第二告警子信息。
可选的,所述第一检测模块包括:
采集模块,用于采集所述目标主机的网络数据;
第一提取模块,用于从所述网络数据中提取待检测特征;
导入模块,用于将所述待检测特征导入预先建立的人工智能模型,通过所述人工智能模型对所述待检测特征进行归类,根据归类结果确定所述目标主机是否受到网络攻击以及所述网络攻击的攻击类型。
可选的,所述第一提取模块包括:
第一提取单元,用于从所述网络数据中提取请求数据,其中,所述请求数据用于向所述目标主机发起请求服务;
第二提取单元,用于从所述请求数据中提取所述待检测特征。
可选的,所述网络攻击预测装置,还包括:
模型创建模块,用于在所述将所述待检测特征导入预先建立的人工智能模型之前,建立所述人工智能模型。
可选的,所述模型创建模块包括:
收集模块,用于收集模型训练数据;
第二提取模块,用于从所述模型训练数据中提取已知网络攻击的特征,获得攻击特征数据;
分类模块,用于对所述攻击特征数据进行分类,获得训练样本;
训练模块,用于根据所述训练样本进行模型训练,获得所述人工智能模型。
可选的,所述训练模块为朴素贝叶斯算法模块。
可选的,所述第二检测模块包括:
第三提取模块,用于从所述网络攻击对应的网络数据中提取待比对特征;
比对模块,用于将所述待比对特征与一个以上攻击响应规则进行比对,其中,所述攻击响应规则根据第一响应数据形成,所述第一响应数据用于受攻击主机对成功攻击请求的应答;
判定模块,用于在所述待比对特征与所述攻击响应规则相匹配时,判定所述网络攻击成功;
攻击动作确定模块,用于确定成功的网络攻击的攻击动作。
可选的,所述第三提取模块包括:
第三提取单元,用于从所述网络数据中提取第二响应数据,其中,所述第二响应数据用于所述目标主机应答请求服务;
第四提取单元,用于从所述第二响应数据中提取所述待比对特征。
可选的,所述第三提取模块包括:
第五提取单元,用于从所述网络数据中提取请求数据和第二响应数据,其中,所述请求数据用于向所述目标主机发起请求服务,所述第二响应数据用于所述目标主机应答请求服务;
第六提取单元,用于从所述请求数据和所述第二响应数据中提取所述待比对特征。
可选的,所述网络攻击预测装置,还包括:
特征库创建模块,用于在所述将所述待比对特征与一个以上攻击响应规则进行比对之前,建立包含所述一个以上攻击响应规则的特征库。
可选的,所述特征库创建模块包括:
数据库创建模块,用于创建数据库;
第四提取模块,用于从一个以上第一响应数据中对应提取一个以上攻击响应特征;
规则形成模块,用于对每个攻击响应特征进行确定性描述,形成一个以上攻击响应规则;
存储模块,用于将所述一个以上攻击响应规则存储到所述数据库中,获得所述特征库。
可选的,所述特征库包括N个子特征库,N为不小于2的整数,所述特征库创建模块包括:
数据库创建模块,用于创建N个数据库;
第四提取模块,用于从两个以上第一响应数据中对应提取两个以上攻击响应特征;
规则形成模块,用于对每个攻击响应特征进行确定性描述,形成两个以上攻击响应规则;
存储模块,用于将所述两个以上攻击响应规则中属于同种攻击类型的攻击响应规则存储到相同的数据库中,获得所述子特征库。
可选的,所述比对模块用于将所述待比对特征与和所述网络攻击的攻击类型对应的子特征库中一个以上攻击响应规则进行比对。
可选的,所述规则形成模块为正则表达式编写模块。
可选的,所述网络攻击预测装置,还包括:
关联关系创建模块,用于在所述将所述待比对特征与一个以上攻击响应规则进行比对之前,建立每个所述攻击响应规则与攻击动作之间的关联关系;
所述攻击动作确定模块用于根据每个所述攻击响应规则与攻击动作之间的关联关系,将与所述待比对特征匹配的攻击响应规则所对应的攻击动作,确定为所述成功的网络攻击的攻击动作。
基于同样的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述网络攻击预测方法。
基于同样的发明构思,本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述网络攻击预测方法。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明提供的网络攻击预测方法及装置,通过已公开的网络攻击事件确定出一条以上攻击链,即确定已公开的网络攻击事件包括哪些攻击阶段,并根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段,从而将所述一条以上攻击链中与所述当前攻击阶段相邻且位于所述当前攻击阶段之后的攻击阶段确定为下一个攻击阶段。通过本发明提供的网络攻击预测方法及装置,可以预测下一个攻击阶段,从而预测攻击者即将发起的网络攻击行为,以提醒防御方对未被发现的网络漏洞及时进行修复。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1是本发明实施例的网络攻击预测方法的流程示意图;
图2是本发明实施例的攻击链的示意图;
图3是本发明实施例的标签库的示意图;
图4是本发明实施例的获得告警信息的流程示意图;
图5是本发明实施例的检测目标主机是否受到网络攻击的流程示意图;
图6是本发明实施例的建立人工智能模型的流程示意图;
图7是本发明实施例的检测网络攻击是否成功的流程示意图;
图8是本发明一种实施例的建立特征库的流程示意图;
图9是本发明另一种实施例的建立特征库的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
本实施例提供一种网络攻击预测方法,图1是所述网络攻击预测方法的流程示意图,所述网络攻击预测方法包括:
步骤S11,根据已公开的网络攻击事件确定一条以上攻击链,所述攻击链包括两个以上按序排列的攻击阶段;
步骤S12,根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段;
步骤S13,将所述一条以上攻击链中与所述当前攻击阶段相邻且位于所述当前攻击阶段之后的攻击阶段确定为下一个攻击阶段。
具体地,所述攻击链是指攻击者对被攻击主机从探测到破坏的一系列循环处理过程,通常由几个不同攻击阶段构成,每个攻击阶段实现不同的攻击目的。根据已公开的网络攻击事件的应用场景,将属于相同应用场景的网络攻击事件归为一类。针对同一类网络攻击事件,通过逐一分析每个网络攻击事件中每次网络攻击的攻击类型和攻击动作等行为,可以知晓每个网络攻击事件中每次网络攻击实现的攻击目的,将实现相同攻击目的的网络攻击划分为同一攻击阶段,从而将每个网络攻击事件划分为不同的攻击阶段。通过对同一类网络攻击事件的攻击阶段进行概括总结,对应可以获得一条攻击链,即属于相同应用场景的网络攻击事件对应可以确定一条攻击链。图2是根据常见的一种应用场景的网络攻击事件确定的攻击链示意图,所述攻击链包括六个按序排列的攻击阶段,具体为侦察阶段、入侵阶段、命令控制阶段、横向渗透阶段、数据外泄阶段以及痕迹清理阶段。
所述目标主机可以是提供各种服务的服务器,也可以是能够实现特定功能的个人计算机,还可以是其他能够提供网络服务的网络设备。所述目标主机可以接收终端设备发送过来的用于向所述目标主机发起请求服务的请求数据,根据所述请求数据进行相应的数据处理以获得第二响应数据,即所述第二响应数据用于所述目标主机应答请求服务,并将所述第二响应数据反馈给所述终端设备。所述终端设备可以是具有显示功能并且支持交互功能的各种电子设备,包括但不限于智能手机、平板电脑、个人计算机以及台式计算机等。在本发明检测网络攻击这一具体的应用场景中,发起网络攻击的攻击者通常为恶意发送大量数据请求的用户。攻击者所利用的终端设备可以是具有强大计算功能的电子设备,甚至还可以是服务器。
在所述目标主机受到网络攻击时,网络攻击检测会针对每次网络攻击对应产生一个告警信息。根据所述目标主机受到的网络攻击的攻击阶段不同,所述告警信息的告警内容也不一样,即所述告警信息的告警内容揭示了所述告警信息对应的网络攻击想要实现的攻击目的,不同告警内容的告警信息对应不同攻击阶段。因此,根据目标主机当前遭受的网络攻击对应的告警信息的告警内容可以确定当前攻击阶段。
在本实施例中,预先建立存储攻击链标签的标签库,所述标签库中的每个攻击链标签对应表征一个攻击阶段。以图2所示的攻击链为例,所述标签库中存储的攻击链标签为侦察标签、入侵标签、命令控制标签、横向渗透标签、数据外泄标签以及痕迹清理标签。如前所述,不同告警内容的告警信息对应不同攻击阶段,而每个攻击链标签对应表征一个攻击阶段,因而可以根据已公开的网络攻击事件,预先建立不同告警内容的告警信息与不同攻击链标签之间的关联关系。根据所述告警信息的告警内容,可以从预先建立的标签库中确定与所述告警信息对应的攻击链标签,将与所述告警信息对应的攻击链标签表征的攻击阶段确定为所述当前攻击阶段。例如,若与所述告警信息对应的攻击链标签为入侵标签,则所述当前攻击阶段为入侵阶段。作为一具体实现方式,所述攻击链标签可以作为所述告警信息的属性进行添加。
进一步,所述攻击链中的攻击阶段还可以进行细分,将所述攻击链确定为包括M级子攻击链,每级子攻击链包括两个以上按序排列的攻击阶段,且第m+1级子攻击链中的每个攻击阶段对应,属于第m级子攻击链中的一个攻击阶段,其中,M为不小于2的整数,1≤m≤M-1。仍以图2所示的攻击链为例,若侦察阶段还可以细分为端口扫描阶段、信息泄露阶段、IP扫描阶段以及子域名收集阶段,入侵阶段还可以细分为漏洞探测阶段、漏洞利用阶段、拒绝服务阶段、暴力破解阶段以及高危操作阶段,高危操作阶段还可以细分为数据库操作阶段和弱口令成功登陆阶段,命令控制阶段还可以细分为主机受控阶段、黑客工具上传阶段、服务器中转行为阶段、提权阶段、关闭杀毒软件阶段以及主机信息获取阶段,横向渗透阶段还可以细分为内网侦查阶段、嗅探攻击阶段、内网漏洞探测阶段以及内网漏洞利用阶段,数据外泄阶段还可以细分为文件下载阶段和拖库行为阶段,痕迹清理阶段还可以细分为后门删除阶段、关闭攻击服务阶段以及清除日志阶段,则所述攻击链包括三级子攻击链:第一级子攻击链包括按序排列的侦察阶段、入侵阶段、命令控制阶段、横向渗透阶段、数据外泄阶段以及痕迹清理阶段,第二级子攻击链包括按序排列的端口扫描阶段、信息泄露阶段、IP扫描阶段、子域名收集阶段、漏洞探测阶段、漏洞利用阶段、拒绝服务阶段、暴力破解阶段、高危操作阶段、主机受控阶段、黑客工具上传阶段、服务器中转行为阶段、提权阶段、关闭杀毒软件阶段、主机信息获取阶段、内网侦查阶段、嗅探攻击阶段、内网漏洞探测阶段、内网漏洞利用阶段、文件下载阶段、拖库行为阶段、后门删除阶段、关闭攻击服务阶段以及清除日志阶段,第三级子攻击链包括按序排列的数据库操作阶段和弱口令成功登陆阶段。
相应地,将所述标签库确定为包括M级子标签库,每级子标签库存储两个以上攻击链标签,且第m+1级子标签库中的每个攻击链标签对应属于第m级子标签库中的一个攻击链标签,所述标签库中的每个攻击链标签对应表征一个攻击阶段。图3是本实施例的标签库的示意图,所述标签库包括三级子标签库:第一级子标签库存储侦察标签、入侵标签、命令控制标签、横向渗透标签、数据外泄标签以及痕迹清理标签,第二级子标签库存储端口扫描标签、信息泄露标签、IP扫描标签、子域名收集标签、漏洞探测标签、漏洞利用标签、拒绝服务标签、暴力破解标签、高危操作标签、主机受控标签、黑客工具上传标签、服务器中转行为标签、提权标签、关闭杀毒软件标签、主机信息获取标签、内网侦查标签、嗅探攻击标签、内网漏洞探测标签、内网漏洞利用标签、文件下载标签、拖库行为标签、后门删除标签、关闭攻击服务标签以及清除日志标签,第三级子标签库存储数据库操作标签和弱口令成功登陆标签。
对于多级子攻击链确定所述当前攻击阶段的方法,与前述单级子攻击链确定所述当前攻击阶段的方法相同。例如,若与所述告警信息对应的攻击链标签为入侵标签和漏洞探测标签,则所述当前攻击阶段为入侵阶段中的漏洞探测阶段。通过将所述攻击链确定为多级子攻击链,可以更详细地描述所述攻击链中的攻击阶段,获得的所述当前攻击阶段更为具体。需要说明的是,所述标签库可以由所述目标主机创建,也可以由其他主机创建,所述目标主机需要确定对应的攻击链标签时直接从其他主机调用所述标签库即可。并且,也可以直接为所述告警信息确定对应的攻击链标签,而不需要创建所述标签库。
确定所述当前攻击阶段后,在所述一条以上攻击链中查找所述攻击阶段,将所述一条以上攻击链中与所述当前攻击阶段相邻且位于所述当前攻击阶段之后的攻击阶段确定为下一个攻击阶段。以图2所示的攻击链为例,若所述当前攻击阶段为入侵阶段,则下一个攻击阶段为命令控制阶段。通过本实施例提供的网络攻击预测方法,可以预测下一个攻击阶段,明确下一个攻击阶段的攻击目的,从而可以预测攻击者即将发起的网络攻击行为,以提醒防御方对未被发现的网络漏洞及时进行修复。
进一步,在确定所述下一个攻击阶段之后,还可以生成攻击预测信息,所述攻击预测信息包括所述下一个攻击阶段,并将所述攻击预测信息发送给网络管理人员。例如,可以通过邮件的方式将所述攻击预测信息发送至指定的邮箱地址,还可以通过短信的方式将所述攻击预测信息发送至指定的移动终端,还可以通过对话框的形式直接在所述目标主机显示所述攻击预测信息,还可以通过即时通信的方式将所述攻击预测信息发送给网络管理人员。当然,可以采用上述任意一种方式将所述攻击预测信息发送给网络管理人员,也可以采用任意几种方式的组合将所述攻击预测信息发送给网络管理人员。
进一步,传统的网络攻击检测只检测是否存在网络攻击,而不识别成功的网络攻击,因而产生的告警信息的告警内容通常只包括所述网络攻击的攻击类型,只根据所述网络攻击的攻击类型确定所述当前攻击阶段的准确性不高。基于此,本发明不仅检测是否存在网络攻击,还检测所述网络攻击是否成功,获得成功的网络攻击的攻击动作。具体地,若所述目标主机受到网络攻击且所述网络攻击成功,则所述告警信息为用于表征所述目标主机受到成功网络攻击的第一告警子信息,所述第一告警子信息的告警内容包括所述网络攻击的攻击类型和所述网络攻击的具体攻击动作;若所述目标主机受到网络攻击但所述网络攻击不成功,则所述告警信息为用于表征所述目标主机受到无效网络攻击的第二告警子信息,所述第二告警子信息的告警内容包括所述网络攻击的攻击类型。
实施例2
本实施例提供另一种网络攻击预测方法,与实施例1提供的网络攻击预测方法相比,本实施例在所述根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段之前,还获得所述告警信息。图4是本实施例获得所述告警信息的流程示意图,所述获得所述告警信息包括:
步骤S41,检测所述目标主机是否受到所述网络攻击并确定所述网络攻击的攻击类型;
步骤S42,若所述目标主机受到所述网络攻击,则检测所述网络攻击是否成功并确定成功的网络攻击的攻击动作;
步骤S43,若所述网络攻击成功,则生成所述第一告警子信息,否则生成所述第二告警子信息。
具体地,检测所述目标主机是否受到网络攻击,可以采用传统的网络攻击检测方法。考虑到传统的网络攻击检测方法存在漏报率高、灵活性差的缺陷,本实施例提供一种检测所述目标主机是否受到网络攻击的具体方法。图5是检测所述目标主机是否受到网络攻击的流程示意图,所述检测所述目标主机是否受到网络攻击包括:
步骤S51,采集所述目标主机的网络数据;
步骤S52,从所述网络数据中提取待检测特征;
步骤S53,将所述待检测特征导入预先建立的人工智能模型,通过所述人工智能模型对所述待检测特征进行归类,根据归类结果确定所述目标主机是否受到网络攻击以及所述网络攻击的攻击类型。
具体地,对于所述目标主机的网络数据的采集,可以采用网络嗅探方式获取,也可以通过网络端口镜像方式获取。所述网络嗅探方式是指将所述目标主机的网卡设置为混杂模式,通过调用网络截包工具来捕获所述目标主机的网路数据。所述网络端口镜像方式是指将所述目标主机的采集端口映射到另一端口,对数据进行实时拷贝,从而获得所述目标主机的网络数据。当然,采集所述目标主机的网络数据的具体实现方式并不限于上述两种方式,本实施例对此不作限定。
采集到所述网络数据之后,从所述网络数据中提取所述待检测特征。所述网络数据包括所述请求数据和所述第二响应数据,如前所述,所述请求数据用于向所述目标主机发起请求服务,是由终端设备发送给所述目标主机的数据;所述第二响应数据用于所述目标主机应答请求服务,是由所述目标主机发送给终端设备的数据。所述待检测特征的提取,可以是直接从所述网络数据中提取所述请求数据的特征来获得所述待检测特征,也可以是先从所述网络数据中提取所述请求数据,再从所述请求数据中提取所述待检测特征,本实施例对此不作限定。所述待检测特征可以包括请求时间、IP信息、端口信息、协议类型、发包频度、邮件地址、文件名称以及目标URL地址中的一项或多项组合。需要说明的是,所述待检测特征可根据实际情况进行灵活设定,本实施例对此不作限制。
根据所述目标主机与终端设备之间采用的传输协议的不同,例如包括但不限于超文本传输协议(HTTP,Hyper Text Transfer Protocol)、文件传输协议(FTP,FileTransfer Protocol)、简单邮件传输协议(SMTP,Simple Mail Transfer Protocol),所述请求数据的结构也不相同。以HTTP类型的网络请求为例,所述请求数据包括以下三个部分:请求行,由方法(例如,POST)、统一资源标识符(URI,Uniform Resource Identifier)以及协议版本(例如,HTTP 1.1)三个部分构成;请求头部,用于通知所述目标主机有关终端设备请求的信息,包括但不限于产生请求的浏览器类型、终端设备可识别的内容类型列表以及请求的网络站点的域名;请求主体。在采集到所述网络数据后,进行HTTP请求头部中各个字段的解析,查找出需要进行检测的字段内容,即提取到所述待检测特征。
获得所述待检测特征之后,将所述待检测特征导入预先建立的人工智能模型,通过所述人工智能模型对所述待检测特征进行归类,获得归类结果。所述人工智能模型可以为机器学习分类模型,例如朴素贝叶斯分类模型,还可以为深度学习分类模型。若所述归类结果为所述待检测特征不属于任何一种已知攻击类型的网络攻击,也不属于未知攻击类型的网络攻击,则确定所述目标主机未受到网络攻击;若所述归类结果为所述待检测特征属于某种已知攻击类型的网络攻击,则确定所述目标主机受到该种攻击类型的网络攻击;若所述归类结果为所述待检测特征属于某种未知攻击类型的网络攻击,则确定所述目标主机受到未知攻击类型的网络攻击。
本实施例提供的检测所述目标主机是否受到网络攻击的方法,由于所述人工智能模型是利用人工智能技术的分类模型,具有自学习、自组织、自适应等能力,所以可有效地发现新型或变种的网络攻击,有效地弥补传统的网络攻击检测方法不能检测未知网络攻击的缺点,提高整体网络攻击检测能力,能够降低漏报率,并能够根据所述归类结果确定所述网络攻击的攻击类型。
进一步,在将所述待检测特征导入预先建立的人工智能模型之前,还需要建立所述人工智能模型。图6是建立所述人工智能模型的流程示意图,所述建立所述人工智能模型包括:
步骤S61,收集模型训练数据;
步骤S62,从所述模型训练数据中提取已知网络攻击的特征,获得攻击特征数据;
步骤S63,对所述攻击特征数据进行分类,获得训练样本;
步骤S64,根据所述训练样本进行模型训练,获得所述人工智能模型。
具体地,所述模型训练数据包括互联网已公开的攻击数据、互联网已公开的漏洞数据、所述目标主机已采集的攻击数据以及所述目标主机已采集的漏洞数据中的一种或多种组合。所述攻击数据为从已有的网络攻击案例中提取出的数据,所述漏洞数据为从已有的漏洞案例中提取出的数据。所述攻击数据和所述漏洞数据可以是互联网公开的,也可以是所述目标主机根据以往遭受的网络攻击事件进行分析和提炼而来。
获得所述模型训练数据之后,从所述模型训练数据中提取已知网络攻击的特征,获得攻击特征数据。进一步,提取的攻击特征数据可以包括请求时间、IP信息、端口信息、协议类型、发包频度、邮件地址、文件名称以及目标URL地址中的一项或多项组合。需要说明的是,所述攻击特征数据可根据实际情况进行灵活设定,本实施例对此不作限制。获得所述攻击特征数据之后,按照其所属网络攻击的攻击类型进行分类以形成训练样本,所述网络攻击的攻击类型包括但不限于SQL注入攻击和XSS攻击。
根据所述训练样本进行模型训练,即计算每种攻击类型的网络攻击在所述训练样本中的出现频率以及每个攻击特征数据划分对每种攻击类型的网络攻击的条件概率估计,并将计算结果进行记录就获得所述人工智能模型。在本实施例中,进行模型训练采用的算法为朴素贝叶斯算法。朴素贝叶斯算法对小规模的数据表现很好,适合多分类任务,适合增量式训练。当然,也可以采用其他机器学习分类算法或者深度学习分类算法进行模型训练,例如,还可以采用决策树算法进行模型训练,本实施例对此不作限定。
在检测到所述目标主机受到所述网络攻击后,在本实施例中采用规则匹配的方式检测所述网络攻击是否成功。图7是检测所述网络攻击是否成功的流程示意图,所述检测所述网络攻击是否成功包括:
步骤S71,从所述网络攻击对应的网络数据中提取待比对特征;
步骤S72,将所述待比对特征与一个以上攻击响应规则进行比对,其中,所述攻击响应规则根据第一响应数据形成,所述第一响应数据用于受攻击主机对成功攻击请求的应答;
步骤S73,若所述待比对特征与所述攻击响应规则相匹配,则判定所述网络攻击成功。
具体地,每种成功的网络攻击都有其独特性,这种独特性主要通过受攻击主机对成功攻击请求的应答体现。因此,所述待比对特征的提取即是提取所述第二响应数据的特征。提取所述待比对特征可以是直接从所述网络数据中提取所述第二响应数据的特征,也可以是先从所述网络数据中提取所述第二响应数据,再从所述第二响应数据中提取所述待比对特征,本实施例对此不作限定。
仍以HTTP类型的网络响应为例,所述第二响应数据包括以下三个部分:状态行,由协议版本(例如,HTTP 1.1)、状态码以及状态码描述三个部分组成;响应头部,包括但不限于应用程序的名称、应用程序的版本、响应正文类型、响应正文长度以及响应正文所采用的编码;响应主体。在采集到所述网络数据后,进行HTTP响应头部中各个字段的解析,查找出需要进行比对的字段内容,即提取到所述待比对特征。
进一步,要判断一个网络攻击是否成功,还可以从攻击者的角度进行逆向推导,通过响应内容反推攻击请求应具备的特征,以提高识别网络攻击是否成功的准确性。因此,所述待比对特征的提取还可以是从所述第二响应数据和所述请求数据中共同提取。具体地,可以从所述网络数据中提取所述请求数据和所述第二响应数据,再从所述请求数据和所述第二响应数据中提取所述待比对特征。仍以HTTP类型的网络请求和HTTP类型的网络响应为例,在采集到所述网络数据后,进行HTTP请求头部和HTTP响应头部中各个字段的解析,查找出需要进行比对的字段内容,即提取到所述待比对特征。
获得所述待比对特征之后,将所述待比对特征与一个以上攻击响应规则进行比对。仍以HTTP类型的传输协议为例,若所述待比对特征与某个攻击响应规则相匹配,则判定HTTP请求为恶意攻击,所述目标主机受到的网络攻击成功;若所述待比对特征不能与任意一个攻击响应规则相匹配,则判定HTTP请求为无效网络攻击,可以直接忽略该HTTP请求。
进一步,还可以预先建立特征库,所述特征库用于存储所述一个以上攻击响应规则。所述特征库存储的攻击响应规则是根据所述第一响应数据形成,所述第一响应数据用于受攻击主机对成功攻击请求的应答,即所述攻击响应规则是根据已经存在的成功攻击请求对应的攻击响应的响应特性预先生成的。图8是本实施例提供的一种建立所述特征库的流程示意图,所述建立所述特征库包括:
步骤S81,创建数据库;
步骤S82,从一个以上第一响应数据中对应提取一个以上攻击响应特征;
步骤S83,对每个攻击响应特征进行确定性描述,形成一个以上攻击响应规则;
步骤S84,将所述一个以上攻击响应规则存储到所述数据库中,获得所述特征库。
具体地,所述创建数据库即是创建空白的存储空间。所述第一响应数据用于受攻击主机对成功攻击请求的应答,可以从互联网已公开的攻击数据和/或所述目标主机已采集的攻击数据中进行收集。例如,攻击者向被攻击主机发送了floor()函数报错注入攻击请求,且所述floor()函数报错注入攻击请求获得了成功,所述被攻击主机对所述floor()函数报错注入攻击请求的应答即为所述第一响应数据。对于同一种攻击类型的网络攻击,根据具体攻击动作的不同还可以进行划分。例如,对于SQL注入攻击,还包括count()函数报错注入、rand()函数报错注入以及floor()函数报错注入等。对于每种攻击动作的网络攻击,对应可以收集一个第一响应数据,因而从一个以上第一响应数据中可以对应提取一个以上攻击响应特征,即每个第一响应数据可以对应提取到一个攻击响应特征。与所述攻击特征数据类似,所述攻击响应特征可以包括请求时间、IP信息、端口信息、协议类型、发包频度、邮件地址、文件名称以及目标URL地址中的一项或多项组合。需要说明的是,所述攻击响应特征也可根据实际情况进行灵活设定,本实施例对此不作限制。
获得所述攻击响应特征之后,对每个攻击响应特征进行确定性描述,所述确定性描述是按照预设的规则进行描述。在本实施例中,可以采用传统的正则表达式对每个攻击响应特征进行确定性描述,也可以在所述正则表达式中加入运算逻辑、匹配逻辑等复杂逻辑,以提高匹配结果的准确性。获得所述攻击响应规则之后,将所有攻击响应规则存储到所述数据库中,即在所述空白的存储空间中写入相应的数据,就获得所述特征库。
进一步,所述特征库还可以包括N个子特征库,每个子特征库对应存储同一种攻击类型的所有攻击响应规则,其中,N为不小于2的整数。基于此,图9是本实施例提供的另一种建立所述特征库的流程示意图,所述建立所述特征库包括:
步骤S91,创建N个数据库;
步骤S92,从两个以上第一响应数据中对应提取两个以上攻击响应特征;
步骤S93,对每个攻击响应特征进行确定性描述,形成两个以上攻击响应规则;
步骤S94,将所述两个以上攻击响应规则中属于同种攻击类型的攻击响应规则存储到相同的数据库中,获得所述子特征库。
具体地,步骤S91~步骤S93可参考前述对步骤S81~步骤S83的描述,在此不再赘述。在获得两个以上攻击响应规则之后,按照每个攻击响应规则所属的攻击类型,将属于同种攻击类型的攻击响应规则存储到相同的数据库中,获得所述子特征库。在本实施例中,所述子特征库可以为基础特征库、SQL注入特征库、XSS动态特征库以及工具指纹库,其中,所述基础特征库存储的是命令特征和文件特征,所述SQL注入特征库存储的是SQL注入攻击的特征,所述XSS动态特征库存储的是XSS动态攻击的特征,所述工具指纹库存储的是大马连接指纹的特征和菜刀指纹的特征。需要说明的是,所述子特征库可根据实际情况进行灵活设定,本实施例对此不作限制。
针对采用图9所示流程建立的特征库,所述将所述待比对特征与一个以上攻击响应规则进行比对具体包括:将所述待比对特征与和所述网络攻击的攻击类型对应的子特征库中的一个以上攻击响应规则进行比对。例如,若所述网络攻击的攻击类型为SQL注入攻击,则将所述待比对特征与SQL注入特征库中的一个以上攻击响应规则进行比对;若所述网络攻击的攻击类型为XSS动态攻击,则将所述待比对特征与XSS动态特征库中的一个以上攻击响应规则进行比对。通过将所述特征库设置为多个子特征库,可以减少与所述待比对特征进行比对的攻击响应规则数量,只需与某个子特征库中的攻击响应规则进行匹配即可,因而能够提高所述待比对特征与所述攻击响应规则的比对效率。
对于每种攻击动作的网络攻击,对应得到一个攻击响应规则,因而可以通过建立所述每个攻击响应规则与攻击动作之间的关联关系,根据所述每个攻击响应规则与攻击动作之间的关联关系,将与所述待比对特征匹配的攻击响应规则所对应的攻击动作,确定为所述成功的网络攻击的攻击动作。例如,与所述待比对特征相匹配的攻击响应规则对应的攻击动作为floor()函数报错注入,则成功的网络攻击的攻击动作为floor()函数报错注入。
在检测所述网络攻击是否成功之后,就可以根据检测结果生成所述第一告警子信息或者生成所述第二告警子信息。例如,当所述目标主机受到SQL注入攻击但攻击不成功时,生成所述第二告警子信息,其告警内容可以为“受到SQL注入攻击”;当所述目标主机受到SQL注入攻击并且攻击成功,具体的攻击动作是利用floor()函数报错注入,生成所述第一告警子信息,其告警内容可以为“受到SQL注入攻击,floor()函数报错注入”。
进一步,在生成所述第一告警子信息或者所述第二告警子信息之后,还可以将所述第一告警子信息或者所述第二告警子信息发送给网络管理人员。例如,可以通过邮件的方式将所述告警信息发送至指定的邮箱地址,还可以通过短信的方式将所述第一告警子信息或者所述第二告警子信息发送至指定的移动终端,还可以通过对话框的形式直接在所述目标主机显示所述第一告警子信息或者所述第二告警子信息,还可以通过即时通信的方式将所述第一告警子信息或者所述第二告警子信息发送给网络管理人员。当然,可以采用上述任意一种方式将所述第一告警子信息或者所述第二告警子信息发送给网络管理人员,也可以采用任意几种方式的组合将所述第一告警子信息或者所述第二告警子信息发送给网络管理人员。
实施例3
本实施例提供一种网络攻击预测系统,所述网络攻击预测系统包括:第一确定模块,用于根据已公开的网络攻击事件确定一条以上攻击链,所述攻击链包括两个以上按序排列的攻击阶段;第二确定模块,用于根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段;第三确定模块,用于将所述一条以上攻击链中与所述当前攻击阶段相邻且位于所述当前攻击阶段之后的攻击阶段确定为下一个攻击阶段。
进一步,所述第二确定模块包括:第一确定单元,用于根据所述告警信息的告警内容,从预先建立的标签库中确定与所述告警信息对应的攻击链标签,其中,所述标签库中的每个攻击链标签对应表征一个攻击阶段;第二确定单元,用于将与所述告警信息对应的攻击链标签表征的攻击阶段确定为所述当前攻击阶段。
进一步,所述攻击链包括M级子攻击链,每级子攻击链包括两个以上按序排列的攻击阶段,且第m+1级子攻击链中的每个攻击阶段对应属于第m级子攻击链中的一个攻击阶段,其中,M为不小于2的整数,1≤m≤M-1;所述第二确定模块包括:第三确定单元,用于根据所述告警信息的告警内容,从预先建立的标签库中确定与所述告警信息对应的攻击链标签,其中,所述标签库包括M级子标签库,每级子标签库存储两个以上攻击链标签,且第m+1级子标签库中的每个攻击链标签对应属于第m级子标签库中的一个攻击链标签,所述标签库中的每个攻击链标签对应表征一个攻击阶段;第四确定单元,用于将与所述告警信息对应的攻击链标签表征的攻击阶段确定为所述当前攻击阶段。
进一步,所述网络攻击预测系统还可以包括:预测信息生成模块,用于生成攻击预测信息,所述攻击预测信息包括所述下一个攻击阶段;发送模块,用于通过邮件、短信、对话框以及即时通信中的一种或多种组合将所述攻击预测信息发送给网络管理人员。
所述网络攻击预测装置的具体工作原理可参考实施例1中对各个步骤的描述,本实施例在此不再赘述。
实施例4
本实施例提供另一种网络攻击预测装置,与实施例3提供的网络攻击预测装置相比,所述网络攻击预测装置还包括:第一检测模块,用于检测所述目标主机是否受到所述网络攻击并确定所述网络攻击的攻击类型;第二检测模块,用于在所述目标主机受到所述网络攻击时,检测所述网络攻击是否成功并确定成功的网络攻击的攻击动作;告警信息生成模块,用于在所述网络攻击成功时,生成所述第一告警子信息,否则生成所述第二告警子信息。
进一步,所述第一检测模块包括:采集模块,用于采集所述目标主机的网络数据;第一提取模块,用于从所述网络数据中提取待检测特征;导入模块,用于将所述待检测特征导入预先建立的人工智能模型,通过所述人工智能模型对所述待检测特征进行归类,根据归类结果确定所述目标主机是否受到网络攻击以及所述网络攻击的攻击类型。
进一步,所述第一提取模块包括:第一提取单元,用于从所述网络数据中提取请求数据,其中,所述请求数据用于向所述目标主机发起请求服务;第二提取单元,用于从所述请求数据中提取所述待检测特征。
进一步,所述网络攻击预测系统还包括:模型创建模块,用于在所述将所述待检测特征导入预先建立的人工智能模型之前,建立所述人工智能模型。具体地,所述模型创建模块包括:收集模块,用于收集模型训练数据;第二提取模块,用于从所述模型训练数据中提取已知网络攻击的特征,获得攻击特征数据;分类模块,用于对所述攻击特征数据进行分类,获得训练样本;训练模块,用于根据所述训练样本进行模型训练,获得所述人工智能模型。
进一步,所述第二检测模块包括:第三提取模块,用于从所述网络攻击对应的网络数据中提取待比对特征;比对模块,用于将所述待比对特征与一个以上攻击响应规则进行比对,其中,所述攻击响应规则根据第一响应数据形成,所述第一响应数据用于受攻击主机对成功攻击请求的应答;判定模块,用于在所述待比对特征与所述攻击响应规则相匹配时,判定所述网络攻击成功;攻击动作确定模块,用于确定成功的网络攻击的攻击动作。
进一步,所述第三提取模块可以包括:第三提取单元,用于从所述网络数据中提取第二响应数据,其中,所述第二响应数据用于所述目标主机应答请求服务;第四提取单元,用于从所述第二响应数据中提取所述待比对特征。
进一步,所述第三提取模块也可以包括:第五提取单元,用于从所述网络数据中提取请求数据和第二响应数据,其中,所述请求数据用于向所述目标主机发起请求服务,所述第二响应数据用于所述目标主机应答请求服务;第六提取单元,用于从所述请求数据和所述第二响应数据中提取所述待比对特征。
进一步,所述网络攻击预测装置还包括:特征库创建模块,用于在所述将所述待比对特征与一个以上攻击响应规则进行比对之前,建立包含所述一个以上攻击响应规则的特征库。具体地,所述特征库创建模块可以包括:数据库创建模块,用于创建数据库;第四提取模块,用于从一个以上第一响应数据中对应提取一个以上攻击响应特征;规则形成模块,用于对每个攻击响应特征进行确定性描述,形成一个以上攻击响应规则;存储模块,用于将所述一个以上攻击响应规则存储到所述数据库中,获得所述特征库。
所述特征库可以包括N个子特征库,N为不小于2的整数,基于此,所述特征库创建模块也可以包括:数据库创建模块,用于创建N个数据库;第四提取模块,用于从两个以上第一响应数据中对应提取两个以上攻击响应特征;规则形成模块,用于对每个攻击响应特征进行确定性描述,形成两个以上攻击响应规则;存储模块,用于将所述两个以上攻击响应规则中属于同种攻击类型的攻击响应规则存储到相同的数据库中,获得所述子特征库。
进一步,所述网络攻击预测装置还包括:关联关系创建模块,用于在所述将所述待比对特征与一个以上攻击响应规则进行比对之前,建立每个所述攻击响应规则与攻击动作之间的关联关系;所述攻击动作确定模块用于根据每个所述攻击响应规则与攻击动作之间的关联关系,将与所述待比对特征匹配的攻击响应规则所对应的攻击动作,确定为所述成功的网络攻击的攻击动作。
所述网络攻击预测装置的具体工作原理可参考实施例2中对各个步骤的描述,本实施例在此不再赘述。
实施例5
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,本发明实施例1或实施例2提供的任一种网络攻击预测方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现实施例1或实施例2提供的任一种网络攻击预测方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成。所述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本发明公开A 1、一种网络攻击预测方法,包括:
根据已公开的网络攻击事件确定一条以上攻击链,所述攻击链包括两个以上按序排列的攻击阶段;
根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段;
将所述一条以上攻击链中与所述当前攻击阶段相邻且位于所述当前攻击阶段之后的攻击阶段确定为下一个攻击阶段。
A2、根据A1所述的一种网络攻击预测方法,所述根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段包括:
根据所述告警信息的告警内容,从预先建立的标签库中确定与所述告警信息对应的攻击链标签,其中,所述标签库中的每个攻击链标签对应表征一个攻击阶段;
将与所述告警信息对应的攻击链标签表征的攻击阶段确定为所述当前攻击阶段。
A3、根据A1所述的一种网络攻击预测方法,所述攻击链包括M级子攻击链,每级子攻击链包括两个以上按序排列的攻击阶段,且第m+1级子攻击链中的每个攻击阶段对应属于第m级子攻击链中的一个攻击阶段,其中,M为不小于2的整数,1≤m≤M-1;所述根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段包括:
根据所述告警信息的告警内容,从预先建立的标签库中确定与所述告警信息对应的攻击链标签,其中,所述标签库包括M级子标签库,每级子标签库存储两个以上攻击链标签,且第m+1级子标签库中的每个攻击链标签对应属于第m级子标签库中的一个攻击链标签,所述标签库中的每个攻击链标签对应表征一个攻击阶段;
将与所述告警信息对应的攻击链标签表征的攻击阶段确定为所述当前攻击阶段。
A4、根据A1所述的一种网络攻击预测方法,在所述将所述一条以上攻击链中与所述当前攻击阶段相邻且位于所述当前攻击阶段之后的攻击阶段确定为下一个攻击阶段之后,还包括:
生成攻击预测信息,所述攻击预测信息包括所述下一个攻击阶段;
通过邮件、短信、对话框以及即时通信中的一种或多种组合将所述攻击预测信息发送给网络管理人员。
A5、根据A1所述的一种网络攻击预测方法,所述告警信息为用于表征所述网络攻击成功的第一告警子信息或者为用于表征所述网络攻击无效的第二告警子信息;
所述第一告警子信息的告警内容包括所述网络攻击的攻击类型和所述网络攻击的攻击动作,所述第二告警子信息的告警内容包括所述网络攻击的攻击类型。
A6、根据A5所述的一种网络攻击预测方法,在所述根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段之前,还包括:
检测所述目标主机是否受到所述网络攻击并确定所述网络攻击的攻击类型;
若所述目标主机受到所述网络攻击,则检测所述网络攻击是否成功并确定成功的网络攻击的攻击动作;
若所述网络攻击成功,则生成所述第一告警子信息,否则生成所述第二告警子信息。
A7、根据A6所述的一种网络攻击预测方法,所述检测所述目标主机是否受到所述网络攻击并确定所述网络攻击的攻击类型包括:
采集所述目标主机的网络数据;
从所述网络数据中提取待检测特征;
将所述待检测特征导入预先建立的人工智能模型,通过所述人工智能模型对所述待检测特征进行归类,根据归类结果确定所述目标主机是否受到网络攻击以及所述网络攻击的攻击类型。
A8、根据A7所述的一种网络攻击预测方法,所述从所述网络数据中提取待检测特征包括:
从所述网络数据中提取请求数据,其中,所述请求数据用于向所述目标主机发起请求服务;
从所述请求数据中提取所述待检测特征。
A9、根据A7所述的一种网络攻击预测方法,在所述将所述待检测特征导入预先建立的人工智能模型之前,还包括:
建立所述人工智能模型。
A10、根据A9所述的一种网络攻击预测方法,所述建立所述人工智能模型包括:
收集模型训练数据;
从所述模型训练数据中提取已知网络攻击的特征,获得攻击特征数据;
对所述攻击特征数据进行分类,获得训练样本;
根据所述训练样本进行模型训练,获得所述人工智能模型。
A11、根据A10所述的一种网络攻击预测方法,所述根据所述训练样本进行模型训练包括:
根据所述训练样本,采用朴素贝叶斯算法进行模型训练。
A12、根据A6所述的一种网络攻击预测方法,所述检测所述网络攻击是否成功包括:
从所述网络攻击对应的网络数据中提取待比对特征;
将所述待比对特征与一个以上攻击响应规则进行比对,其中,所述攻击响应规则根据第一响应数据形成,所述第一响应数据用于受攻击主机对成功攻击请求的应答;
若所述待比对特征与所述攻击响应规则相匹配,则判定所述网络攻击成功。
A13、根据A12所述的一种网络攻击预测方法,所述从所述网络攻击对应的网络数据中提取待比对特征包括:
从所述网络数据中提取第二响应数据,其中,所述第二响应数据用于所述目标主机应答请求服务;
从所述第二响应数据中提取所述待比对特征。
A14、根据A12所述的一种网络攻击预测方法,所述从所述网络攻击对应的网络数据中提取待比对特征包括:
从所述网络数据中提取请求数据和第二响应数据,其中,所述请求数据用于向所述目标主机发起请求服务,所述第二响应数据用于所述目标主机应答请求服务;
从所述请求数据和所述第二响应数据中提取所述待比对特征。
A15、根据A12所述的一种网络攻击预测方法,在所述将所述待比对特征与一个以上攻击响应规则进行比对之前,还包括:
建立包含所述一个以上攻击响应规则的特征库。
A16、根据A15所述的一种网络攻击预测方法,所述建立包含所述一个以上攻击响应规则的特征库包括:
创建数据库;
从一个以上第一响应数据中对应提取一个以上攻击响应特征;
对每个攻击响应特征进行确定性描述,形成一个以上攻击响应规则;
将所述一个以上攻击响应规则存储到所述数据库中,获得所述特征库。
A17、根据A15所述的一种网络攻击预测方法,所述特征库包括N个子特征库,N为不小于2的整数,所述建立包含所述一个以上攻击响应规则的特征库包括:
创建N个数据库;
从两个以上第一响应数据中对应提取两个以上攻击响应特征;
对每个攻击响应特征进行确定性描述,形成两个以上攻击响应规则;
将所述两个以上攻击响应规则中属于同种攻击类型的攻击响应规则存储到相同的数据库中,获得所述子特征库。
A18、根据A17所述的一种网络攻击预测方法,所述将所述待比对特征与一个以上攻击响应规则进行比对包括:
将所述待比对特征与和所述网络攻击的攻击类型对应的子特征库中一个以上攻击响应规则进行比对。
A19、根据A16或A17所述的一种网络攻击预测方法,所述对每个攻击响应特征进行确定性描述包括:
采用正则表达式对每个攻击响应特征进行确定性描述。
A20、根据A16或A17所述的一种网络攻击预测方法,在所述将所述待比对特征与一个以上攻击响应规则进行比对之前,还包括:
建立每个所述攻击响应规则与攻击动作之间的关联关系;
所述确定成功的网络攻击的攻击动作包括:
根据每个所述攻击响应规则与攻击动作之间的关联关系,将与所述待比对特征匹配的攻击响应规则所对应的攻击动作,确定为所述成功的网络攻击的攻击动作。
本发明还公开了B 21、一种网络攻击预测装置,包括:
第一确定模块,用于根据已公开的网络攻击事件确定一条以上攻击链,所述攻击链包括两个以上按序排列的攻击阶段;
第二确定模块,用于根据目标主机当前遭受的网络攻击对应的告警信息的告警内容确定当前攻击阶段;
第三确定模块,用于将所述一条以上攻击链中与所述当前攻击阶段相邻且位于所述当前攻击阶段之后的攻击阶段确定为下一个攻击阶段。
B22、根据B21所述的一种网络攻击预测装置,所述第二确定模块包括:
第一确定单元,用于根据所述告警信息的告警内容,从预先建立的标签库中确定与所述告警信息对应的攻击链标签,其中,所述标签库中的每个攻击链标签对应表征一个攻击阶段;
第二确定单元,用于将与所述告警信息对应的攻击链标签表征的攻击阶段确定为所述当前攻击阶段。
B23、根据B21所述的一种网络攻击预测装置,所述攻击链包括M级子攻击链,每级子攻击链包括两个以上按序排列的攻击阶段,且第m+1级子攻击链中的每个攻击阶段对应属于第m级子攻击链中的一个攻击阶段,其中,M为不小于2的整数,1≤m≤M-1;所述第二确定模块包括:
第三确定单元,用于根据所述告警信息的告警内容,从预先建立的标签库中确定与所述告警信息对应的攻击链标签,其中,所述标签库包括M级子标签库,每级子标签库存储两个以上攻击链标签,且第m+1级子标签库中的每个攻击链标签对应属于第m级子标签库中的一个攻击链标签,所述标签库中的每个攻击链标签对应表征一个攻击阶段;
第四确定单元,用于将与所述告警信息对应的攻击链标签表征的攻击阶段确定为所述当前攻击阶段。
B24、根据B21所述的一种网络攻击预测装置,还包括:
预测信息生成模块,用于生成攻击预测信息,所述攻击预测信息包括所述下一个攻击阶段;
发送模块,用于通过邮件、短信、对话框以及即时通信中的一种或多种组合将所述攻击预测信息发送给网络管理人员。
B25、根据B21所述的一种网络攻击预测装置,所述告警信息为用于表征所述网络攻击成功的第一告警子信息或者为用于表征所述网络攻击无效的第二告警子信息;
所述第一告警子信息的告警内容包括所述网络攻击的攻击类型和所述网络攻击的攻击动作,所述第二告警子信息的告警内容包括所述网络攻击的攻击类型。
B26、根据B25所述的一种网络攻击预测装置,还包括:
第一检测模块,用于检测所述目标主机是否受到所述网络攻击并确定所述网络攻击的攻击类型;
第二检测模块,用于在所述目标主机受到所述网络攻击时,检测所述网络攻击是否成功并确定成功的网络攻击的攻击动作;
告警信息生成模块,用于在所述网络攻击成功时,生成所述第一告警子信息,否则生成所述第二告警子信息。
B27、根据B26所述的一种网络攻击预测装置,所述第一检测模块包括:
采集模块,用于采集所述目标主机的网络数据;
第一提取模块,用于从所述网络数据中提取待检测特征;
导入模块,用于将所述待检测特征导入预先建立的人工智能模型,通过所述人工智能模型对所述待检测特征进行归类,根据归类结果确定所述目标主机是否受到网络攻击以及所述网络攻击的攻击类型。
B28、根据B27所述的一种网络攻击预测装置,所述第一提取模块包括:
第一提取单元,用于从所述网络数据中提取请求数据,其中,所述请求数据用于向所述目标主机发起请求服务;
第二提取单元,用于从所述请求数据中提取所述待检测特征。
B29、根据B27所述的一种网络攻击预测装置,还包括:
模型创建模块,用于在所述将所述待检测特征导入预先建立的人工智能模型之前,建立所述人工智能模型。
B30、根据B29所述的一种网络攻击预测装置,所述模型创建模块包括:
收集模块,用于收集模型训练数据;
第二提取模块,用于从所述模型训练数据中提取已知网络攻击的特征,获得攻击特征数据;
分类模块,用于对所述攻击特征数据进行分类,获得训练样本;
训练模块,用于根据所述训练样本进行模型训练,获得所述人工智能模型。
B31、根据B30所述的一种网络攻击预测装置,所述训练模块为朴素贝叶斯算法模块。
B32、根据B26所述的一种网络攻击预测装置,所述第二检测模块包括:
第三提取模块,用于从所述网络攻击对应的网络数据中提取待比对特征;
比对模块,用于将所述待比对特征与一个以上攻击响应规则进行比对,其中,所述攻击响应规则根据第一响应数据形成,所述第一响应数据用于受攻击主机对成功攻击请求的应答;
判定模块,用于在所述待比对特征与所述攻击响应规则相匹配时,判定所述网络攻击成功;
攻击动作确定模块,用于确定成功的网络攻击的攻击动作。
B33、根据B32所述的一种网络攻击预测装置,所述第三提取模块包括:
第三提取单元,用于从所述网络数据中提取第二响应数据,其中,所述第二响应数据用于所述目标主机应答请求服务;
第四提取单元,用于从所述第二响应数据中提取所述待比对特征。
B34、根据B32所述的一种网络攻击预测装置,所述第三提取模块包括:
第五提取单元,用于从所述网络数据中提取请求数据和第二响应数据,其中,所述请求数据用于向所述目标主机发起请求服务,所述第二响应数据用于所述目标主机应答请求服务;
第六提取单元,用于从所述请求数据和所述第二响应数据中提取所述待比对特征。
B35、根据B32所述的一种网络攻击预测装置,还包括:
特征库创建模块,用于在所述将所述待比对特征与一个以上攻击响应规则进行比对之前,建立包含所述一个以上攻击响应规则的特征库。
B36、根据B35所述的一种网络攻击预测装置,所述特征库创建模块包括:
数据库创建模块,用于创建数据库;
第四提取模块,用于从一个以上第一响应数据中对应提取一个以上攻击响应特征;
规则形成模块,用于对每个攻击响应特征进行确定性描述,形成一个以上攻击响应规则;
存储模块,用于将所述一个以上攻击响应规则存储到所述数据库中,获得所述特征库。
B37、根据B35所述的一种网络攻击预测装置,所述特征库包括N个子特征库,N为不小于2的整数,所述特征库创建模块包括:
数据库创建模块,用于创建N个数据库;
第四提取模块,用于从两个以上第一响应数据中对应提取两个以上攻击响应特征;
规则形成模块,用于对每个攻击响应特征进行确定性描述,形成两个以上攻击响应规则;
存储模块,用于将所述两个以上攻击响应规则中属于同种攻击类型的攻击响应规则存储到相同的数据库中,获得所述子特征库。
B38、根据B37所述的一种网络攻击预测装置,所述比对模块用于将所述待比对特征与和所述网络攻击的攻击类型对应的子特征库中一个以上攻击响应规则进行比对。
B39、根据B36或B37所述的一种网络攻击预测装置,所述规则形成模块为正则表达式编写模块。
B40、根据B36或B37所述的一种网络攻击预测装置,还包括:
关联关系创建模块,用于在所述将所述待比对特征与一个以上攻击响应规则进行比对之前,建立每个所述攻击响应规则与攻击动作之间的关联关系;
所述攻击动作确定模块用于根据每个所述攻击响应规则与攻击动作之间的关联关系,将与所述待比对特征匹配的攻击响应规则所对应的攻击动作,确定为所述成功的网络攻击的攻击动作。
本发明还公开了C 41、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现A1至A20任一项所述的一种网络攻击预测方法。
本发明还公开了D42、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现A1至A20任一项所述的一种网络攻击预测方法。