网络攻击检测方法、装置、电子设备和可读存储介质与流程

文档序号:19951020发布日期:2020-02-18 10:30阅读:127来源:国知局
网络攻击检测方法、装置、电子设备和可读存储介质与流程

本公开涉及互联网技术领域,具体而言,涉及一种网络攻击检测方法、装置、电子设备和可读存储介质。



背景技术:

随着互联网的快速发展,基于网络的商业业务快速扩张,使得人们的生活处处依赖于web应用,如金融商业方面延伸出网络银行,教娱乐方面延伸出学习软件,交通出行方面延伸出电子乘车二维码等。在这种背景下,web应用的发展与应用也使得安全风险成倍增加,陆续出现了例如sql(structuredquerylanguage,结构化查询语句)注入攻击、xss(crosssitescripting,跨站脚本)攻击等多种web攻击。目前,针对该类web网络攻击,采用的攻击防御方法主要通过正则匹配的方式或者是通过新增装置来进行攻击检测。

但是,上述传统方式中,例如采用修改前端代码并利用正则匹配来进行检测的方式,依赖于所建立的黑名单检测机制进行匹配。虽然能够检测到绝大部分的攻击,但是其规则库维护困难,且若规则编写的太宽泛容易产生误报,若编写的太细致容易被攻击者绕过。而采用新增装置的方式来进行攻击检测,在针对不同的web攻击时,需要部署不同的装置和应用不同的规则来检测攻击,而且针对新出现的攻击类型,难以识别,需要重新开发防御系统。



技术实现要素:

本公开的目的包括,例如,提供了一种网络攻击检测方法、装置、电子设备和可读存储介质,其能够提高网络攻击检测的自适应性以及准确率。

本公开的实施例可以这样实现:

第一方面,本公开实施例提供一种网络攻击检测方法,应用于攻击检测服务器,所述方法包括:

接收网站访问请求,所述网站访问请求中携带有待访问页面的统一资源定位符;

提取获得所述统一资源定位符的特征信息;

将提取到的所述特征信息导入至预先建立并训练好的分类模型进行分类检测,根据分类检测结果确定所述网站访问请求是否为网络攻击请求,其中,所述分类模型为预先基于支持向量机并分别根据不同的训练子样本进行训练获得的满足预设条件的分类模型,各组训练子样本分别包含正常网络访问请求的训练统一资源定位符以及网络攻击请求的训练统一资源定位符,各组训练子样本中的样本数量不超过预设值。

在可选的实施方式中,所述分类模型通过以下方式预先建立并训练获得:

采集训练样本和测试样本,其中,所述训练样本和所述测试样本分别包含正常网络访问请求的训练统一资源定位符以及网络攻击请求的训练统一资源定位符;

将所述训练样本划分为多组不同的训练子样本,其中,各组训练子样本中样本数量不超过预设值;

构建支持向量机,利用各组训练子样本分别对所述支持向量机进行训练,获得多个训练得到的分类器;

分别利用各所述分类器,对所述测试样本进行分类判别,根据各所述分类器分类判别的准确率获得满足预设条件的分类器,作为所述分类模型。

在可选的实施方式中,所述测试样本中各样本标记有样本标签,所述分别利用各所述分类器对所述测试样本进行分类判别,根据各所述分类器的分类判别的准确率获得满足预设条件的分类器,作为所述分类模型的步骤,包括:

针对各所述分类器,利用所述分类器对所述测试样本进行分类判别,将所述测试样本中各样本的分类判别结果与各所述样本的样本标签进行比对,若样本的分类判别结果与该样本的样本标签一致,则确定所述分类器对该样本的分类判别结果正确;

将分类判别准确率高于预设阈值的分类器作为所述分类模型。

在可选的实施方式中,所述将分类判别准确率高于预设阈值的分类器作为所述分类模型的步骤,包括:

检测多个分类器中是否存在分类判别准确率高于预设阈值的分类器;

若不存在,则重新获得各个分类器的分类判别准确率,所述重新获得各个分类器的分类判别准确率的过程包括:

重新将所述训练样本随机划分为多组不同的训练子样本,并利用重新划分得到的各组训练子样本对得到的分类器进行继续训练;

再次利用继续训练后的各个分类器对所述测试样本进行分类判别,将所述测试样本中各样本的分类判别结果与各所述样本的样本标签进行比对,根据比对结果得到训练后的各个分类器的分类判别准确率;

若不存在分类判别准确率高于预设阈值的分类器,则重复执行所述重新获得各个分类器的分类判别准确率的过程,直至存在训练后的分类器的分类判别准确率高于所述预设阈值为止,并将分类判别准确率高于所述预设阈值的训练后的分类器作为所述分类模型。

在可选的实施方式中,在分类模型为多个时,所述将提取到的所述特征信息导入至预先建立并训练好的分类模型进行分类检测,根据分类检测结果确定所述网站访问请求是否为网络攻击请求的步骤,包括:

将提取到的所述特征信息分别导入至预先建立并训练好的各个分类模型进行分类检测,获得各所述分类模型输出的分类检测结果;

若各所述分类模型输出的分类检测结果一致,则根据所述分类检测结果确定所述网站访问请求是否为网络攻击请求。

在可选的实施方式中,所述构建的所述支持向量机中包含有用于确定所述支持向量机的最优超平面的目标函数;所述目标函数中添加有包含位移信息的约束项,以减小所述最优超平面的位移量。

在可选的实施方式中,提取获得的特征信息包括所述统一资源定位符的长度、外部链接、预设符号、预设字符、特征关键字、大写字母字符频率、数字字符频率和空格字符频率中的至少任意两种。

第二方面,本公开实施例提供一种网络攻击检测装置,应用于攻击检测服务器,所述装置包括:

接收模块,用于接收网站访问请求,所述网站访问请求中携带有待访问页面的统一资源定位符;

提取模块,用于提取获得所述统一资源定位符的特征信息;

分类检测模块,用于将提取到的所述特征信息导入至预先建立并训练好的分类模型进行分类检测,根据分类检测结果确定所述网站访问请求是否为网络攻击请求,其中,所述分类模型为预先基于支持向量机并分别根据不同的训练子样本进行训练获得的满足预设条件的分类模型,各组训练子样本分别包含正常网络访问请求的训练统一资源定位符以及网络攻击请求的训练统一资源定位符,各组训练子样本中的样本数量不超过预设值。

第三方面,本公开实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述前述实施方式中任一项所述的网络攻击检测方法。

第四方面,本公开实施例提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式中任一项所述的网络攻击检测方法。

本公开实施例的有益效果包括,例如:

本公开实施例提供的网络攻击检测方法、装置、电子设备和可读存储介质,通过预先基于支持向量机建立并训练得到分类模型,在进行网络攻击检测时,提取获得接收到的网站访问请求中待访问页面的统一资源定位符的特征信息,并将获得的特征信息导入至训练获得的分类模型进行分类检测。再根据分类检测结果确定网站访问请求是否为网络攻击请求。其中,该分类模型为预先基于支持向量机并分别根据不同的训练子样本进行训练获得的满足预设条件的分类模型,各组训练子样本中的样本数量不超过预设值。如此,在不增加硬件成本的基础上,利用支持向量机的自学习能力有效提高了网络攻击检测的自适应性以及准确率,并且,基于各组样本数量不超过预设值的训练子样本进行训练,在保障了模型精确度的同时提高了模型的训练效率、缩短模型训练时间。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本公开实施例提供的网络攻击检测方法的应用场景的网络架构示意图;

图2为本公开实施例提供的网络攻击检测方法的流程图;

图3为本公开实施例提供的建立并训练获得分类模型的方法的流程图;

图4为本公开实施例提供的从多个分类器中确定获得分类模型的方法的流程图;

图5为图2中步骤s230包含的子步骤的流程图;

图6为本公开实施例提供的电子设备的结构框图;

图7为本公开实施例提供的网络攻击检测装置的功能模块框图。

图标:100-服务器;110-处理器;120-存储器;130-通信单元;140-网络攻击检测装置;141-接收模块;142-提取模块;143-分类检测模块;200-客户端。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。需要说明的是,在不冲突的情况下,本公开的实施例中的特征可以相互结合。

图1示出了本公开实施例提供的网络攻击检测的实施环境的网络架构。该网络架构的系统可以包括客户端200、服务器100,其中,客户端200可以是web客户端,可以包含web浏览器,用户可以通过web浏览器页面上的链接与服务器100之间进行信息交互。该服务器100可以是web服务器,为本公开实施例提供的用于检测及防御网络攻击的攻击检测服务器。该web服务器可以利用基于支持向量机训练获得的分类模型进行网络攻击检测。此外,本领域技术人员可以理解,图1仅为示意图,其并不对本实施例提供的网络攻击检测的网络架构进行具体限定。

需要说明的是,本公开实施例提供的网络攻击检测方法可以适用于检测防御sql注入攻击、xss攻击等,也可以适用于其他的防御病毒、命令注入等类型的攻击,本公开实施例对此不作具体限定,本公开实施例后续以攻击类型为sql注入攻击、xss攻击为例进行说明。

web应用程序通常利用数据库来存储数据信息,且一般由数据库系统提供。sql注入攻击是黑客对数据库进行攻击的常用手段之一。sql语句由用户提供的数据动态创建,因此,通过sql语句可以直接与数据库进行交互。sql注入攻击是一类将sql命令注入到输入的攻击技术,即将非法数据注入到输入字段中,一旦恶意脚本执行,会发生未经授权的访问,从而威胁到服务器上的数据安全。

而xss攻击是指跨站脚本攻击,攻击者一般通过使用特殊的符号将数据内容转换为代码内容,或者使用可以包括可调用javascript解释器的脚本进行攻击。利用,通过将恶意脚本隐藏在统一资源定位符(uniformresourcelocator,url)后或者是web页面中。当用户浏览该页时,嵌入其中的恶意脚本被执行,从而达到恶意攻击用户的目的。在xss攻击中,攻击者可以操纵html(hypertextmarkuplanguage,超文本标记语言)表、cookie、url以及外部文件。利用这种攻击技术,攻击者可以将恶意代码注入到其他人的浏览器中,并执行恶意非法的javascript代码,一旦恶意脚本在受害者用户浏览器被成功执行,则攻击者将能够获取到受害者的一些隐私信息,例如cookies、会话id、信号卡号等隐私信息。

而本公开涉及到的支持向量机,其基于vc维(衡量函数复杂度的一种方式)理论和结构风险最小化原则。支持向量机可以通过利用有限的样本进行学习,从而找到模型复杂度与学习能力的平衡点,并且拥有较好的泛化能力。支持向量机可将难以在低维空间中实现分类的数据通过非线性映射将其按照一定的方法映射到更高维的特征空间中去,并在其中找到可以使数据中正反例这两者之间的间隔边缘最大化的一个超平面。结合本公开实施例中的方案,即可找到可以区分出正常的网络访问以及网络攻击访问的超平面。从而,通过对支持向量机的训练,可以很好地实现网络攻击的检测判别。

请参阅图2,图2为应用于图1所示的服务器100的一种网络攻击检测方法的流程图,以下将对所述网络攻击检测方法的各个步骤进行详细阐述。

步骤s210,接收网站访问请求,所述网站访问请求中携带有待访问页面的统一资源定位符。

步骤s220,提取获得所述统一资源定位符的特征信息。

步骤s230,将提取到的所述特征信息导入至预先建立并训练好的分类模型进行分类检测,根据分类检测结果确定所述网站访问请求是否为网络攻击请求,其中,所述分类模型为预先基于支持向量机训练获得。

用户在对网页进行访问时,会输入待访问页面的统一资源定位符,以获取用户想要得到的资源。当该统一资源定位符中携带有sql攻击代码或者是xss攻击代码时,会对将要访问的网站进行攻击,进而对网站中用户的数据的安全性造成威胁。

黑客利用url进行攻击的主要手段就是在url的参数中添加非法字段,因此,可通过对获得的统一资源定位符进行分析,获得其中的特征信息,再利用建立并训练好的分类模型,基于提取到的特征信息进行分类检测,以确定获得的统一资源定位符中是否包含非法字段。若包含非法字段,则分类模型输出的结果将判定该统一资源定位符的类型为对应的非法类型,即,该网站访问请求为网络攻击请求。若获得的统一资源定位符未包含非法字段,则分类模型输出的结果将判定该统一资源定位符的类型为正常类型,即,该网站访问请求为正常网站访问请求。

在确定当前请求为网络攻击请求时,可对该请求进行拦截,以避免攻击带来的影响。若确定当前请求为正常网络访问请求,则可允许对待访问页面的正常访问。

本实施例中,通过基于支持向量机所建立的分类模型来对网站访问请求中的统一资源定位符进行分类检测,从而实现网络攻击检测。该分类模型为预先基于支持向量机并分别根据不同的训练子样本进行训练获得的满足预设条件的分类模型。其中,各组训练子样本分别包含正常网络访问请求的训练统一资源定位符以及网络攻击请求的训练统一资源定位符,并且,各组训练子样本中的样本数据不超过预设值。如此,在无需新增设备来进行网络攻击的检测的基础上,利用支持向量机的自学习能力及泛化能力,能够有效提高网络攻击检测的自适应性及准确率。并且,分别利用样本数量较少的各组训练子样本进行单独训练,从而选择出训练得到的满足预设条件的分类模型,在保障了得到的分类模型的精确度的同时,提高了模型的训练效率、缩短模型训练时间。

请参阅图3,上述步骤中所采用的分类模型可预先通过以下方式建立并训练获得。

步骤s310,采集训练样本和测试样本,其中,所述训练样本和所述测试样本分别包含正常网络访问请求的训练统一资源定位符以及网络攻击请求的训练统一资源定位符。

步骤s320,将所述训练样本划分为多组不同的训练子样本,其中,各组训练子样本中样本数量不超过预设值。

步骤s330,构建支持向量机,利用各组训练子样本分别对所述支持向量机进行训练,获得多个训练得到的分类器。

步骤s340,分别利用各所述分类器,对所述测试样本进行分类判别,根据各所述分类器分类判别的准确率获得满足预设条件的分类器,作为所述分类模型。

本实施例中,可利用采集器获取用户正常访问的统一资源定位符、从sql规则库中获取sql注入攻击的统一资源定位符及从xss规则库中获取xss攻击的统一资源定位符。也可以采用渗透测试工具,如xssed爬取获得xss攻击的统一资源定位符,也可以从开源代码库,如github中检索获得xss攻击的统一资源定位符。此外,也可以通过使用sqlmap脚本获得sql注入攻击的统一资源定位符。将分别包含上述三类统一资源定位符的数据集作为训练样本和测试样本。

考虑到若训练样本的数据量过大,将导致分类模型的训练时间过长、收敛速度较慢,不利于分类模型的获取。但是若训练样本的数据量过小,又可能存在样本的特征信息学习不充分,导致得到的分类模型的分类准确率不够高的问题。

为了解决上述问题,在本实施例中,将采集获得的训练样本划分为多组不同的训练子样本,在划分时注意每组训练子样本中的样本数不超过预设值。如此,利用划分出的数据量较小的训练子样本独立地对支持向量机进行训练获得对应的分类器,将大大加速训练的收敛速度,提高分类器的训练效率。并且,利用多组不同的训练子样本进行同步训练获得对应的分类器,也不会造成整体训练时长增加的问题。

在获得的多个分类器中,利用测试样本来对各个分类器的分类准确率进行检测,从而得到满足预设条件的分类器,作为最终用于网络攻击检测应用的分类模型。如此,可以从多个分类器中获得分类准确率满足一定要求的分类器,避免只唯一训练得到一个分类器,可能存在的该分类器分类检测准确率不够高的问题。

利用分类模型对web网络攻击进行检测主要需要对访问请求中的统一资源定位符进行分析,例如包括数字处理、字母处理、字符处理及文本结构分析等。sql注入攻击和xss攻击一般具有关键词、数字占比较高等显著特征,因此,在模型训练的过程中,需要将较为明显的特征信息提取出来作为模型训练的信息依据。

本实施例中,在基于支持向量机训练获得分类器时,需要对训练样本中各样本的信息进行分析,即对正常统一资源定位符、sql注入攻击的统一资源定位符以及xss攻击的统一资源定位符进行特征提取。以提取的特征信息作为支持向量机的输入,从而对支持向量机进行训练得到分类器。以下示例性示出了正常网络访问的统一资源定位符、sql注入攻击的统一资源定位符以及xss攻击的统一资源定位符可能的数据形式:

正常统一资源定位符:

/auction/inclcdes/converter.inc.php?include_path=http://192.168.202.118:8080/tzhfyzkbomspvm??

sql注入攻击的统一资源定位符:

/wp-login.php?action=lostpassword%25%27%29%20limit%201%2c1%20untion#20all%20select%20null%2c%20null%2c%20null%2c%20null%2c%20null%2c%20null%2c%20null%2c%20null%2c%20null%2c%20null%2c%20null%23#

xss攻击的统一资源定位符:

test.addeventlistener(‘click’,function()){

varnode=window.eval(txt.value)

window.alert(node)

},false

获取到的统一资源定位符一般是经过编码后的,因此,需要对统一资源定位符进行预处理,以使不同的统一资源定位符解码为统一的格式。例如,一般的url信息是一串字符串,而且字符串的内容因网站设计的不同差异性较大,可对url进行分词处理。由于url字符只能是ascii码,而且不同的应用对数据进行了不同的封装和显示处理。可采用设置的规则进行分词处理,例如采用空格、“/”、“%”、“&”等进行分词处理。

以下示意性示出上述sql注入攻击的统一资源定位符在经过解码处理之后的一种可能的形式:

/wp-login.php?action=lostpassword%’limit1,1untionallselectnull,null,null,null,null,null,null,null,null,null,null#

sql注入攻击的形式,主要包括:通过对统一资源定位符中的部分字符的大小写进行转化,从而避开攻击检测;或者通过空字符以改变空格字符在字符串中所占的比例来造成空字符攻击;又或者改变特殊字符在字符串中所占的比例,例如闭合截断字符,来造成攻击;又或者是改变数字字符在字符串中所占的比例,针对动态查询变形攻击,等等。

因此,对统一资源定位符进行特征信息提取时,可依据sql注入攻击及xss攻击常见的对信息的修改形式进行对应的特征信息的提取。例如,提取获得的特征信息可以包括统一资源定位符的长度、外部链接、预设符号、预设字符、特征关键字、大写字母字符频率、数字字符频率和空格字符频率等八类信息项中的至少任意两种。实施时,为了获得较好的训练效果,一般采用至少5类信息项以构成特征信息进行分类器训练。当然,提取的特征信息也可以包含其他的信息项,具体地在本实施例中不作限制。

本实施例中,假设以上述八类信息项作为提取的特征信息,可将训练样本的特征信息表示为:

相应地,各组训练子样本的特征信息可以表示如下:

其中,n=n0+n1+n2,n0、n1、n2分别表示每组训练子样本中正常url、sql注入攻击url及xss攻击url的数目,d为8,即表示提取的特征信息中包含上述八类信息项。

测试样本中,同样可以上述八类信息项作为其提取的特征信息,表示如下:

其中,c=c0+c1+c2,c0、c1、c2分别表示测试样本中正常url、sql注入攻击url及xss攻击url的数目,d为8。

对支持向量机进行训练的过程,实质上就是基于训练样本在样本空间中寻找一个最优超平面的过程,以将不同类别的样本划分开。而最优超平面为训练样本中不同类别的样本未被该最优超平面错误分开,且距离该最优超平面最近的样本数据与该最优超平面之间的距离最大的超平面。即训练支持向量机的过程,就是优化获得最优超平面的过程,可转换为目标函数的最小化问题,构建的目标函数可如下:

其中,w表示法向量,决定了超平面的方向,b表示位移量,决定了超平面与原点之间的距离,c’为常数,ξi表示松弛变量。若要确定得到最优超平面,则需要确定出决定该最优超平面的参数w以及b。

为了减小获得的最优超平面的位移量,以减小具有如特征不明显或不良的特征信息等噪声样本对分类器的干扰,因此,可在上述目标函数中添加包含位移信息的约束项,本实施例中,该约束项可为b2/2,在其他可能的实施方式中,也可以是包含位移信息的其他形式的约束项,对此本实施例不作具体限制。添加约束项之后的目标函数如下:

借助二次松弛变量算法将上述目标函数转换如下的对偶问题:

其中,αi为拉格朗日乘子。

令:

得到如下形式的优化问题:

其中:

本实施例中,针对各组训练子样本,可由该组训练子样本来构造其对应的支持向量机的法平面w,令:

其中,γ包含一组训练子样本中所有样本的序号,将w代入上述优化公式,得到如下优化公式:

通过上述转换过程,可将优化w和b的问题,转换为拉格朗日乘子αi和b的优化问题。

基于上述最小化的优化问题,通过对训练子样本中各样本的特征信息的学习,不断对超平面的参数进行优化,从而得到可以很好地区别出不同类别的url的最优超平面。

利用划分得到的多组不同的训练子样本分别对构建的支持向量机进行训练,可得到多个训练后的分类器。再利用测试样本对得到的各个分类器进行测试,可以从中选择出性能较好的分类器。可选地,请参阅图4,可通过以下方式从多个分类器中选择出满足预设条件的分类器:

步骤s341,针对各所述分类器,利用所述分类器对所述测试样本进行分类判别,将所述测试样本中各样本的分类判别结果与各所述样本的样本标签进行比对。

步骤s342,若样本的分类判别结果与该样本的样本标签一致,则确定所述分类器对该样本的分类判别结果正确。

步骤s343,若样本的分类判别结构与该样本的样本标签不一致,则确定所述分类器对该样本的分类判别结果错误。

步骤s344,将分类判别准确率高于预设阈值的分类器作为所述分类模型。

测试样本中包含的各个样本标记为样本标签,该样本标签用于标识各样本的类型,例如,正常网络访问的统一资源定位符的样本标签可为0,sql攻击的统一资源定位符的样本标签可为1,xss攻击的统一资源定位符的样本标签可为2。

通过训练后的分类器,可以实现对测试样本中各个样本的类别判别。若分类器测试样本的分类判别准确,则该分类器对测试样本的输出结果应当与该测试样本的样本标签一致,例如,若测试样本的样本标签为1,则分类器输出的该测试样本的输出结果也应当为1。针对各个分类器,可以根据该分类器对测试样本中多个样本的分类判别的情况,得到该分类器的分类判别准确率。

从而可以将分类判别准确率高于预设阈值的分类器作为最终用于网络检测应用的分类模型。其中,该预设阈值可为95%或者97%等,具体在本实施例中不作限制,可根据实际需求对其具体数值进行设置。

当然,在其他可能的实施方式中,也可以是从多个分类器中,将分类判别准确率最高的分类器作为分类模型,具体地确定方式在本实施例中不作限制,可以根据实际需求进行相应设置。

本实施例中为了保障得到的分类模型的分类判别准确率能够达到一定要求,可在分类器的分类判别准确率高于预设阈值时,才将其作为分类模型。若通过一次循环迭代训练得到的多个分类器中不存在分类判别准确率高于预设阈值的分类器,则可执行重新获得各个分类器的分类判别准确率的步骤,直至能够得到分类判别准确率高于预设阈值的分类器为止,其中,该步骤可以通过以下方式实现:

重新将训练样本随机划分为多组不同的训练子样本,再利用重新划分得到的各组训练子样本对得到的分类器进行继续训练。再次利用继续训练后的各个分类器对测试样本进行分类判别,将测试样本中各样本的分类判别结果与各样本的样本标签进行比对,根据比对结果得到训练后的各个分类器的分类判别准确率。

若再次训练后还是不存在分类判别准确率高于预设阈值的分类器,则再重复执行上述重新获得各个分类器的分类判别准确率的过程,直至存在训练后的分类器的分类判别准确率高于预设阈值为止,并将分类判别准确率高于预设阈值的训练后的分类器作为分类模型。

如此,通过多次训练及测试的方式,可以进一步提高得到的分类模型的分类判别准确率。

实际实施时,可能存在获得的分类模型为多个的情形,即存在多个分类器的分类判别准确率高于预设阈值。在这种情形下,请结合参阅图5,在进行网络攻击检测应用时,具体可以通过以下方式进行:

步骤s231,将提取到的所述特征信息分别导入至预先建立并训练好的各个分类模型进行分类检测,获得各所述分类模型输出的分类检测结果。

步骤s232,若各所述分类模型输出的分类检测结果一致,则根据所述分类检测结果确定所述网站访问请求是否为网络攻击请求。

在获得的分类模型为多个的情况下,为了进一步保障对网络攻击检测的准确性,可结合该多个分类模型的分类检测结果来确定接收到的网站访问请求是否为网络攻击请求。

可将接收到的网站访问请求中的待访问页面的统一资源定位符的特征信息分别导入至各个分类模型中。若提取到的特征信息包括多个信息项,则导入至各个分类模型中的特征信息应包含该多个信息项。

若各个分类模型对待检测的统一资源定位符的分类检测结果均一致,则可基于该分类检测结果来确定该网站访问请求是否为网络攻击请求。例如,若各个分类模型的分类检测结果均为正常网站访问请求的统一资源定位符,则可确定该网站访问请求为正常网络访问请求,可允许该请求进行后续正常访问。

若多个分类模型中,存在某个或某几个分类模型的分类检测结果表明该网站访问请求为网络攻击请求,则可对该网站访问请求进行拦截,再借助其他的方式来最终确定是否为网络攻击请求。

该其他的方式例如可以是提交到后台管理员进行检测判别,或者是再对分类模型进行训练后进行分类检测,或者是检测将该网站访问请求判别为正常访问请求的分类模型与判别为网络攻击请求的分类模型之间的比值情况来判断。

例如,若将判别为正常访问请求的分类模型的数量远远大于判别为网络攻击请求的分类模型的数量,则可判定该网站访问请求为正常网络访问请求。此外,在其他可能的实施方式中,也可以采用其他的判定方式进行判断,本实施例中对此不作具体限制。

通过以上方式,在对支持向量机进行训练阶段,可通过将训练样本划分为一组组样本数量不超过预设值的训练子样本,利于各个训练子样本单独对支持向量机进行训练。如此,避免支持向量机在训练样本数量较大的情况下,存在训练时间过长、收敛速度较慢、训练效率过低的问题。并且,通过从得到的多个分类器中选择出满足预设条件的分类器作为最终进行网络攻击检测应用的分类模型,一定程度上避免了由于各个分类器的训练样本数量的减少所带来的特征信息学习不充分,分类器判别准确率下降的问题。

进一步地,在网络攻击检测应用阶段,在得到的分类模型为多个时,可结合多个分类模型对网站访问请求进行检测判别。结合多个分类模型的检测判别结果来最终确定网站访问请求是否为网络攻击请求,进一步提高了检测判别的准确性,避免应用单个分类模型进行判别时存在的误判、漏判的现象。

请参阅图6,为本公开另一较佳实施例提供的电子设备的方框示意图。所述电子设备可以为上述的服务器100。所述电子设备包括网络攻击检测装置140、存储器120、处理器110以及通信单元130。

所述存储器120、处理器110以及通信单元130各元件相互之间直接或间接地电性连接,以实现信息的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器120中存储有以软件或固件(firmware)的形式存储于所述存储器120中的软件功能模块,所述处理器110通过运行存储在存储器120内的软件程序以及模块,如本公开实施例中的网络攻击检测装置140,从而执行各种功能应用以及数据处理,即实现本公开实施例中的网络攻击检测方法。

其中,所述存储器120可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器120用于存储程序,所述处理器110在接收到执行指令后,执行所述程序。所述通信单元130用于建立与客户端200之间的通信。

所述处理器110可能是一种集成电路芯片,具有信号的处理能力。上述的处理器110可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等。还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规处理器等。

请参阅图7,为本公开另一较佳实施例提供的网络攻击检测装置140的功能模块框图,该网络攻击检测装置140包括接收模块141、提取模块142及分类检测模块143。

其中,所述接收模块141,用于接收网站访问请求,所述网站访问请求中携带有待访问页面的统一资源定位符。所述接收模块141可用于执行图2中所示的步骤s210,具体的操作方法可参考步骤s210的详细描述。

提取模块142,用于提取获得所述统一资源定位符的特征信息。所述提取模块142可用于执行图2中所示的步骤s220,具体的操作方法可参考步骤s220的详细描述。

分类检测模块143,用于将提取到的所述特征信息导入至预先建立并训练好的分类模型进行分类检测,根据分类检测结果确定所述网站访问请求是否为网络攻击请求,其中,所述分类模型为预先基于支持向量机并分别根据不同的训练子样本进行训练获得的满足预设条件的分类模型,各组训练子样本分别包含正常网络访问请求的训练统一资源定位符以及网络攻击请求的训练统一资源定位符,各组训练子样本中的样本数量不超过预设值。所述分类检测模块143可用于执行图2中所示的步骤s230,具体的操作方法可参考步骤s230的详细描述。

在本实施例的一种可能的实施方式中,若得到的分类模型为多个,分类检测模块143可以用于通过以下方式确定所述网站访问请求是否为网络攻击请求:

将提取到的所述特征信息分别导入至预先建立并训练好的各个分类模型进行分类检测,获得各所述分类模型输出的分类检测结果;

若各所述分类模型输出的分类检测结果一致,则根据所述分类检测结果确定所述网站访问请求是否为网络攻击请求。

作为一种可能的实施方式,上述提取获得的特征信息包括所述统一资源定位符的长度、外部链接、预设符号、预设字符、特征关键字、大写字母字符频率、数字字符频率和空格字符频率中的至少任意两种。

在本实施例一种可能的实施方式中,上述的分类模型可通过以下方式预先建立并训练获得:

采集训练样本和测试样本,其中,所述训练样本和所述测试样本分别包含正常网络访问请求的训练统一资源定位符以及网络攻击请求的训练统一资源定位符;

将所述训练样本划分为多组不同的训练子样本,其中,各组训练子样本中样本数量不超过预设值;

构建支持向量机,利用各组训练子样本分别对所述支持向量机进行训练,获得多个训练得到的分类器;

分别利用各所述分类器,对所述测试样本进行分类判别,根据各所述分类器分类判别的准确率获得满足预设条件的分类器,作为所述分类模型。

作为一种可能的实施方式,上述构建的所述支持向量机中包含有用于确定所述支持向量机的最优超平面的目标函数;所述目标函数中添加有包含位移信息的约束项,以减小所述最优超平面的位移量。

在一种可能的实施方式中,测试样本中各样本标记有样本标签,分类模型具体可以通过以下方式获得:

针对各所述分类器,利用所述分类器对所述测试样本进行分类判别,将所述测试样本中各样本的分类判别结果与各所述样本的样本标签进行比对,若样本的分类判别结果与该样本的样本标签一致,则确定所述分类器对该样本的分类判别结果正确;

将分类判别准确率高于预设阈值的分类器作为所述分类模型。

在一种可能的实施方式中,在将分类判别准确率高于预设阈值的分类器作为所述分类模型时,具体可以通过以下步骤实现:

检测多个分类器中是否存在分类判别准确率高于预设阈值的分类器;

若不存在,则重新获得各个分类器的分类判别准确率,所述重新获得各个分类器的分类判别准确率的过程包括:

重新将所述训练样本随机划分为多组不同的训练子样本,并利用重新划分得到的各组训练子样本对得到的分类器进行继续训练;

再次利用继续训练后的各个分类器对所述测试样本进行分类判别,将所述测试样本中各样本的分类判别结果与各所述样本的样本标签进行比对,根据比对结果得到训练后的各个分类器的分类判别准确率;

若不存在分类判别准确率高于预设阈值的分类器,则重复执行所述重新获得各个分类器的分类判别准确率的过程,直至存在训练后的分类器的分类判别准确率高于所述预设阈值为止,并将分类判别准确率高于所述预设阈值的训练后的分类器作为所述分类模型。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本公开实施例可以通过硬件实现,也可以借助软件加必要通用硬件平台的方式来实现。基于这样的理解,本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)执行本公开各个实施场景所述的方法。

综上所述,本公开实施例提供的网络攻击检测方法、装置、电子设备和可读存储介质,通过预先基于支持向量机建立并训练得到分类模型,在进行网络攻击检测时,提取获得接收到的网站访问请求中待访问页面的统一资源定位符的特征信息,并将获得的特征信息导入至训练获得的分类模型进行分类检测。再根据分类检测结果确定网站访问请求是否为网络攻击请求。其中,该分类模型为预先基于支持向量机并分别根据不同的训练子样本进行训练获得的满足预设条件的分类模型,各组训练子样本中的样本数量不超过预设值。

如此,在不增加硬件成本的基础上,利用支持向量机的自学习能力有效提高了网络攻击检测的自适应性以及准确率。并且,基于各组样本数量不超过预设值的训练子样本进行训练,在保障了模型精确度的同时提高了模型的训练效率、缩短模型训练时间。

在本公开所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,在本文中,诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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

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