一种xss攻击检测方法、装置及电子设备
技术领域
1.本发明涉及网络安全技术领域,具体涉及一种xss攻击检测方法、装置及电子设备。
背景技术:2.xss攻击通常指的是通过利用网页开发时留下的漏洞,这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的,如劫持用户会话,插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖xss蠕虫,甚至破坏网站、修改路由器配置信息等。
3.传统的xss防御在进行攻击鉴别时多采用特征匹配方式,主要是针对“javascript”这个关键字进行检索,但是这种鉴别不够灵活,凡是提交的信息中各有“javascript”时,就被硬性的被判定为xss攻击,这种方式容易造成误判,且仅通过此方式进行检测不够准确,安全性低。
技术实现要素:4.有鉴于此,本发明实施例提供了一种xss攻击检测方法,以解决现有技术中xss攻击检测准确率低的问题。
5.为达到上述目的,本发明提供如下技术方案:
6.本发明实施例提供了一种xss攻击检测方法,包括:
7.获取多条样本数据和目标网站的待检测语句,所述样本数据包括正常语句和xss语句;
8.对所述样本数据进行特征提取,得到每个样本的特征维度;
9.根据所述特征维度构建攻击检测模型;
10.对所述待检测语句进行特征提取得到待检测特征维度;
11.将所述待检测特征维度输入所述攻击检测模型,得到攻击检测结果。
12.可选的,所述对所述样本数据进行特征提取,得到每个样本的特征维度,包括:
13.从所述样本数据中提取函数关键字,并将每个函数关键字作为第一特征维度;
14.从所述样本数据中提取符号,并将每个符号作为第二特征维度。
15.可选的,所述对所述样本数据进行特征提取,得到每个样本的特征维度,还包括:
16.将所述样本数据中的剩余字符进行泛化处理,得到第三特征维度。
17.可选的,所述根据所述样本特征构建攻击检测模型,包括:
18.将各个样本的特征维度划分为训练集和测试集;
19.基于所述训练集训练攻击分类模型;
20.通过所述测试集对所述攻击分类模型进行优化得到攻击检测模型。
21.可选的,所述通过所述测试集对所述攻击分类模型进行优化得到攻击检测模型,
包括:
22.将所述训练集中的多个样本的特征维度分别输入所述攻击分类模型,得到多个攻击分类结果;
23.基于所述多个攻击分类结果验证所述攻击分类模型的准确率;
24.将所述准确率与预设阈值进行对比;
25.若所述准确率达到所述预设阈值,则将所述攻击分类模型作为攻击检测模型;
26.若所述准确率未达到所述预设阈值,则增加所述样本数据的获取数量,并返回对所述样本数据进行特征提取的步骤,直至所述准确率达到所述预设阈值得到攻击检测模型。
27.可选的,所述方法还包括:
28.若所述攻击检测结果为xss攻击,发送防御指令至所述目标网站,并获取所述待检测语句的攻击方账号进行攻击时间和攻击次数的统计。
29.可选的,所述方法还包括:
30.根据所述攻击时间和攻击次数得到所述攻击方账号的攻击频率;
31.判断所述攻击频率是否超出预设频率阈值;
32.若所述攻击频率超出预设频率阈值,对所述攻击方账号进行封禁。
33.本发明实施例还提供了一种xss攻击检测装置,包括:
34.获取模块,用于获取多条样本数据和目标网站的待检测语句,所述样本数据包括正常语句和xss语句;
35.第一特征提取模块,用于对所述样本数据进行特征提取,得到每个样本的特征维度;
36.模型构建模块,用于根据所述特征维度构建攻击检测模型;
37.第二特征提取模块,用于对所述待检测语句进行特征提取得到待检测特征维度;
38.检测模块,用于将所述待检测特征维度输入所述攻击检测模型,得到攻击检测结果。
39.本发明实施例还提供了一种电子设备,包括:
40.存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行本发明实施例提供的xss攻击检测方法。
41.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行本发明实施例提供的xss攻击检测方法。
42.本发明技术方案,具有如下优点:
43.本发明提供了一种xss攻击检测方法,通过获取多条样本数据和目标网站的待检测语句,样本数据包括正常语句和xss语句;对样本数据进行特征提取,得到每个样本的特征维度;根据特征维度构建攻击检测模型;对待检测语句进行特征提取得到待检测特征维度;将待检测特征维度输入攻击检测模型,得到攻击检测结果。本发明通过提取每个样本的特征维度建立具有高检测精度的攻击检测模型,可以有效提高检测效率和准确性,从而便于检测到攻击后进行安全防护,提高安全性能。
附图说明
44.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1为本发明实施例中的xss攻击检测方法的流程图;
46.图2为根据本发明实施例中对样本数据进行特征提取的流程图;
47.图3为根据本发明实施例中构建攻击检测模型的流程图;
48.图4为根据本发明实施例中攻击检测模型的分类平面示意图;
49.图5为根据本发明实施例中对攻击分类模型进行优化得到攻击检测模型的流程图;
50.图6为根据本发明实施例中对攻击方账号进行封禁的流程图;
51.图7为本发明实施例中的xss攻击检测装置的结构示意图;
52.图8为本发明实施例中的电子设备的结构示意图。
具体实施方式
53.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
54.根据本发明实施例,提供了一种xss攻击检测方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
55.在本实施例中提供了一种xss攻击检测方法,可用于上述的终端设备,如电脑等,如图1所示,该xss攻击检测方法包括如下步骤:
56.步骤s1:获取多条样本数据和目标网站的待检测语句,样本数据包括正常语句和xss语句。具体的,常见的xss攻击有3种,分别是反射性xss:用户点击攻击链接,服务器解析后响应,在返回的响应内容中出现攻击者的xss代码,被浏览器执行;持久型xss:xss恶意代码存储在服务器中,每一个访问特定网页的用户,都会被攻击;dom型xss:一种特殊类型的反射型xss,它是基于dom文档对象模型的一种漏洞。测试数据集中的正常语句可以选取secrepo网站日志请求得到,xss攻击语句可以通过xss-npm库获取。
57.步骤s2:对样本数据进行特征提取,得到每个样本的特征维度。具体的,通过将xss的常见关键字和常见符号作为攻击的特征维度,可以避免特征遗漏,相较于现有技术中直接匹配或通过支持度和置信度查找关联的方式,具有更高的精确度。
58.步骤s3:根据特征维度构建攻击检测模型。具体的,通过构建攻击检测模型,可以有效提升攻击检测速度,提高攻击分类的准确度。
59.步骤s4:对待检测语句进行特征提取得到待检测特征维度。
60.步骤s5:将待检测特征维度输入攻击检测模型,得到攻击检测结果。具体的,待检
测语句为目标网站的服务器接收到的大量语句,在检测过程中,通过攻击检测模型对语句进行检测过滤,可以快速过滤出存在攻击的语句,精确度高且速度快。
61.通过上述步骤s1至步骤s5,本发明实施例提供的xss攻击检测方法,通过提取每个样本的特征维度建立具有高检测精度的攻击检测模型,可以有效提高检测效率和准确性,从而便于检测到攻击后进行安全防护,提高安全性能。
62.具体地,在一实施例中,上述的步骤s2,如图2所示,具体包括如下步骤:
63.步骤s21:从样本数据中提取函数关键字,并将每个函数关键字作为第一特征维度。具体的,关键字如:alert,script,print,print_r,echo,printf,sprintf,die,var_dump,var_export等函数关键字。
64.步骤s22:从样本数据中提取符号,并将每个符号作为第二特征维度。具体的,符号如:%,-,`,~,!,@,#,$,^,&等常见符号。通过将xss的常见关键字和常见符号作为攻击的特征维度,可以避免特征遗漏,相较于现有技术中直接匹配或通过支持度和置信度查找关联的方式,具有更高的精确度。
65.具体地,在一实施例中,上述的步骤s2,还包括如下步骤:
66.将样本数据中的剩余字符进行泛化处理,得到第三特征维度。具体的,由于剩余字符在xss攻击中出现的频率比函数关键字和符号低,需要对这些字符进行泛化处理,包括大小写字母,数字,特殊字符在内的字符共同组成第三特征维度特征维度,此过程可以在一定程度上减少维度的复杂性。
67.具体地,在一实施例中,上述的步骤s3,如图3所示,具体包括如下步骤:
68.步骤s31:将各个样本的特征维度划分为训练集和测试集。具体的,将特征维度按预设比例拆分成测试数据和训练数据,例如:预设比例为3:7。
69.步骤s32:基于训练集训练攻击分类模型。具体的,可以通过例如svm算法训练攻击分类模型,支持向量机svm是一种二分类模型,目的是寻找一个超平面来对数据样本进行分割,分割的原则是超平面与样本点的间隔最大化。如图4所示,圆圈代表正常语句,三角形代表xss攻击语句,存在一个超平面w.x+b=0使得正常语句样本和xss攻击语句样本距离超平面距离最大,其中w是超平面的法向量,b是模型的参数。将训练集中的特征维度作为参数,通过python中sklearn的svm算法构建攻击分类模型,若结果输出在超平面以上,则检测语句为正常语句,若结果输出在超平面以下,则检测语句为xss攻击。
70.步骤s33:通过测试集对攻击分类模型进行优化得到攻击检测模型。具体的,将测试数据作为参数,通过构建的攻击分类模型检测攻击分类模型的准确性,并在未达到精度要求的情况下对攻击检测模型进行优化,从而得到高精度的攻击检测模型。
71.具体地,在一实施例中,上述的步骤s33,如图5所示,具体包括如下步骤:
72.步骤s331:将训练集中的多个样本的特征维度分别输入攻击分类模型,得到多个攻击分类结果。
73.步骤s332:基于多个攻击分类结果验证攻击分类模型的准确率。
74.步骤s333:将准确率与预设阈值进行对比。
75.步骤s334:若准确率达到预设阈值,则将攻击分类模型作为攻击检测模型。
76.步骤s335:若准确率未达到预设阈值,则增加样本数据的获取数量,并返回对样本数据进行特征提取的步骤,直至准确率达到预设阈值得到攻击检测模型。
77.具体的,通过将测试集中的特征维度作为参数对攻击分类模型的准确性进行检验,并在检验结果未达到预期标准时通过增加语句条数、特征的重新选取的方式重新进行优化训练,以提高最终得到的攻击检测模型的预测准确性。
78.具体地,在一实施例中,上述的xss攻击检测方法,还包括如下步骤:
79.若攻击检测结果为xss攻击,发送防御指令至目标网站,并获取待检测语句的攻击方账号进行攻击时间和攻击次数的统计。具体的,当检测到攻击语句时,通过发送防御指令至目标网站,可以使网站及时进行防御;还可以将训练好的攻击检测模型直接发送到目标网站的服务器进行存储,在目标网站的运行过程中直接对xss攻击进行过滤,提高网站的安全。
80.具体地,在一实施例中,上述的xss攻击检测方法,如图6所示,还包括如下步骤:
81.步骤s51:根据攻击时间和攻击次数得到攻击方账号的攻击频率。
82.步骤s52:判断攻击频率是否超出预设频率阈值。
83.步骤s53:若攻击频率超出预设频率阈值,对攻击方账号进行封禁。
84.具体的,还可以通过统计分析将一些攻击频繁的攻击限制其为黑名单,并将攻击方账号进行封禁处理,进一步对xss攻击进行防御,提高网站的安全性。
85.在本实施例中还提供了一种xss攻击检测装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
86.本实施例提供一种xss攻击检测装置,如图7所示,包括:
87.获取模块101,用于获取多条样本数据和目标网站的待检测语句,样本数据包括正常语句和xss语句,详细内容参见上述方法实施例中步骤s1的相关描述,在此不再进行赘述。
88.第一特征提取模块102,用于对样本数据进行特征提取,得到每个样本的特征维度,详细内容参见上述方法实施例中步骤s2的相关描述,在此不再进行赘述。
89.模型构建模块103,用于根据特征维度构建攻击检测模型,详细内容参见上述方法实施例中步骤s3的相关描述,在此不再进行赘述。
90.第二特征提取模块104,用于对待检测语句进行特征提取得到待检测特征维度,详细内容参见上述方法实施例中步骤s4的相关描述,在此不再进行赘述。
91.检测模块105,用于将待检测特征维度输入攻击检测模型,得到攻击检测结果,详细内容参见上述方法实施例中步骤s5的相关描述,在此不再进行赘述。
92.本实施例中的xss攻击检测装置是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
93.上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
94.根据本发明实施例还提供了一种电子设备,如图8所示,该电子设备可以包括处理器901和存储器902,其中处理器901和存储器902可以通过总线或者其他方式连接,图8中以通过总线连接为例。
95.处理器901可以为中央处理器(central processing unit,cpu)。处理器901还可
以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
96.存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明方法实施例中的方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
97.存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
98.一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
99.上述电子设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
100.本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
101.虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。