CN109886018A - 一种基于遗传算法的存储型xss攻击向量优化方法 - Google Patents
一种基于遗传算法的存储型xss攻击向量优化方法 Download PDFInfo
- Publication number
- CN109886018A CN109886018A CN201910071167.XA CN201910071167A CN109886018A CN 109886018 A CN109886018 A CN 109886018A CN 201910071167 A CN201910071167 A CN 201910071167A CN 109886018 A CN109886018 A CN 109886018A
- Authority
- CN
- China
- Prior art keywords
- attack
- vector
- storage
- type
- xss
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Document Processing Apparatus (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于遗传算法的存储型XSS攻击向量优化方法。本方法涉及了遗传算法过程中的编码、适应度函数设计、选择、交叉、变异。首先采用OWASP中收录的存储型的跨站脚本攻击向量作为基本攻击向量库,结合漏洞的相关特征,采用机器学习中常用的数据编码方式——one‑hot编码作为遗传算法中染色体的编码方式。设计遗传算法的适应度函数时将多路径覆盖率的因素考虑进去。其次,针对one‑hot编码方式,设计了单点交叉和变异操作。本发明总体使用python语言开发,具有可移植性强、运算速度快等优点,对存储型跨站脚本漏洞的研究具有重要意义。
Description
技术领域
本发明涉及一种采用遗传算法用于优化存储型XSS攻击向量的方法,属于计算机软件领域。
背景技术
随着网站开发技术的发展,WEB应用的交互方式也更加多样化,随之而来,WEB安全的问题层出不穷。例如某些Web应用遭受到机密信息泄露、财产损失、账户被盗等严重的安全问题。2011年6月28日,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超多3万的微博用户受到该蠕虫的攻击。2014年,使用3.0至3.9.2版本的WordPress平台的网站遭受跨站脚本漏洞的影响。2017年,微信被爆跨站脚本漏洞,在朋友圈分享相关代码,即可出现弹框。2018年3月,知名代码托管网站GitHub遭遇了有史以来最严重的DDoS网络攻击,峰值流量达到了1.35Tbps。而根据非盈利组织OWASP(the Open Web Application SecurityProject)公布的2017年的十大应用安全风险中,跨站脚本攻击XSS名列第7名,并且XSS漏洞广泛存在于Web应用中。而针对我国的互联网安全的报告——由360互联网安全中心发布的《2016年中国互联网安全报告》中显示,网站卫士拦截的漏洞中XSS攻击位列第五,XSS漏洞也广泛存在于我国的Web应用中。
存储型跨站脚本是一种攻击者通过页面将恶意代码提前存入后台数据库,当正常用户访问到需要从数据库中抽取数据的网页时,若该网页不能过滤掉这些恶意代码,那么恶意代码将会在该网页执行,造成信息泄露等安全问题。但是随着网页技术的发展,WEB应用与用户交互方式的更加多样化,针对Stored-XSS的检测也急需更新。在检测Stored-XSS的过程中,用于检测的攻击向量大多数通过模糊测试的方法生成攻击向量,这会造成一定的冗余。
遗传算法是模仿自然界进化机制--“物竞天择,适者生存”而发展起来的随机全局搜索和优化算法,借鉴了达尔文的进化论学说。它主要通过群体中个体之间的信息交换,直接操作目标全体,对函数可导和定义域内处处连续没有限定,能够自动调整搜索方向,具有很好的自适应能力。遗传算法通过对初始种群的设定、编码方式的选择、适应度函数的设计、选择算子的选择与变异算子的设计,完成选择、交叉和变异操作,实现对目标全体的搜索。现在,遗传算法已经成为人工智能技术的重要组成部分,在函数优化、机器学习、自适应等方面具有很好的应用前景。
综上所述,针对动态网页的Stored-XSS漏洞检测过程中,鉴于使用模糊测试的方式会增大攻击向量的冗余度,所以本专利提出采用遗传算法优化攻击向量——针对已有的基本攻击向量库,根据Stored-XSS漏洞特征,采用one-hot编码方式,利用包含多路径覆盖率的适应度函数,执行遗传算法,优化得到最终的攻击向量库。
发明内容
本发明的内容:
1)提出了一种基于存储型跨站脚本漏洞特征将基本攻击向量标准化的方法,该方法可以将海量基本攻击向量处理为便于后期遗传算法执行的攻击向量。
2)采用机器学习领域的one-hot编码方式进行染色体的编码将字符串的攻击向量0-1字符串,可以提高攻击向量的可解释性,避免无法执行的攻击向量生成。
3)将多路径覆盖率考虑进遗传算法的适应度函数的设计中。
本发明通过采用遗传算法优化基本攻击向量库,希望生成有效的攻击向量。
为达到以上发明目的,针对遗传算法的执行流程,经过研究讨论和反复实践,本方法确定最终方案如下:
采用OWASP中收录的存储型的跨站脚本攻击向量作为基本攻击向量库,结合漏洞的相关特征,采用机器学习中常用的数据编码方式——one-hot编码作为遗传算法中染色体的编码方式。设计遗传算法的适应度函数时将多路径覆盖率的因素考虑进去。
1)基本攻击向量库:将OWASP中XSS Filter Evasion Cheat Sheet收录的Stored-XSS攻击向量存为文档形式,然后按照攻击向量特征将其规范化。
2)编码方式:one-hot编码是一种机器学习领域中的一种编码方式,可以将非连续值变为0-1值,这样既可以扩充特征,也便于运算。相对于二进制编码来说,one-hot编码可解释性高,可以避免二进制进行变异之后产生无效的攻击向量。
3)选择算子:采用回放式的随机抽样方法,按照每个个体的适应度与种群所有适应度和的比例,然后选择出比例高的个体,使之进行竞争,计算出适应度高的个体将进入下一代的竞争中。
4)遗传算子:在两个父代中,选择一个交叉点,采用单点交叉方式实现两个父代的交叉操作,获得两个不同的子代。
5)变异算子:使用独热编码方式编码的攻击向量,变异时将一类特征控制在只有一个1,其余都是0,避免优化过后的攻击向量不能执行。
6)模拟攻击:在计算个体适应度的过程中,为得到多路径覆盖率,需进行模拟攻击。针对每个注入点,循环选取处于父代地位的攻击向量填充表单数据,将提交的表单数据的反馈结果保存,以便于计算多路径覆盖率,从而计算各个个体的适应度值。
附图说明
图1攻击向量优化架构图
图2遗传算法流程图
具体实施方式
本发明使用python语言实现遗传算法来达到优化攻击向量,获得适合具体WEB网站的攻击向量。将从OWASP中XSS Filter Evasion Cheat Sheet收集的Stored-XSS攻击向量,根据其特征形式化,并按照其特征存储为便于python处理的csv文件。采用机器学习领域的one-hot编码方式实现基因编码。任意两个父代采用单点交叉的方式实现父代交叉操作,获得两个不同的子代。所有的子代按照一定概率进行基因变异。采用包含个体攻击向量的适应度函数来评价个体的竞争能力,适应度值大的子代补充攻击向量库。上述过程的图形化描述如图1所示。
详细的基于遗传算法优化攻击向量的算法描述如下:
根据本发明在优化攻击向量时,还需要同时实现模拟攻击操作,需要实时进行后台交互,故本发明将最高迭代次数设为100,
遗传算法整体流程如图2所示。
1)基因编码
通过Stored-XSS的攻击原理,我们可以发现,Stored-XSS漏洞大多数发生在Form表单中的Input中,故将Stored-XSS攻击向量的特征定义为{L,P,S,K}四元组的形式,其中L表示注入点的位置,常见的位置有type值为Text,Image,Password,email,url类型的input元素,以及textarea域,P表示插入攻击向量的方式(以script,src属性方式插入),S为常见的特殊关键字符(有”、“、!、&、:、;、<、>、?、@、=十一种),K为攻击向量中出现的关键字,如script,javascript。通过Stored-XSS攻击向量特征将其设计为{T}{P}{S}{K}alert(‘XSS’)的形式。
结合上述提到的攻击向量形式,本发明中遗传算法的染色体一共表示为21位,第1-5位表示input元素中type值,第6位表示为textarea域,第7-8位表示插入攻击向量的方式,第9-19位表示常见的特殊关键字符,最后两位表示攻击向量中出现的关键字。通过one-hot编码后,一个特征将会扩展为n个特征,其中n为特征对应属性值的个数,扩展后的每个特征值都为0或1。比如特征L将会扩展为特征
T=text,t=image,t=password,t=email,t=url,t=textarea 6个特征。
2)适应度函数设计
适应度函数是攻击向量竞争力的评价标准。为了提高攻击向量的普遍性,减少攻击向量的生成,在设计适应度函数时将攻击向量的多路径覆盖率考虑进去,提高能够同时覆盖多条路径的攻击向量的竞争力。
f=(branch%+cpath%)*xssp*db% (1)
其中,branch指在当前的一个path中,成功的分支数;cpath指该攻击向量成功覆盖的路径,xssp指所有的路径总数,db指覆盖当前路径的攻击向量数。
为了得到适应度的阀值,本发明将上述公式最大化,即将branch%、cpath%、db%记为1,统计所有可能注入点的路径总数,然后将上述公式得到的结果50%作为阀值。
3)交叉操作
本发明定义了针对独热编码的交叉操作。在本发明中采用单点交叉方式进行交叉操作。在选择交叉点时,以同一类型的特征进行交叉,并且考虑到网页源码中input元素的type值应尽量和攻击向量中的T特征对应,故可选择的交叉点可以在第8-18,和19位中随机选择进行交叉。具体例子如下:
父1:10000001|1100000010001
父2:01000001|1000001000010
通过交叉点交叉得到:
子1:10000001|1000001000010
子2:01000001|1100000010001
4)变异操作
由于通过one-hot方式进行编码的攻击向量,可以看做是一组二进制数,故在变异时,每个位按照一定的概率进行按位取反。考虑到初始数据集的大小适中,本发明采用的变异概率为0.01。具体例子如下:
子1:010000|0|11100000010001
按位变异得到:
子2:010000 1 11100000010001
5)模拟攻击
由于python语言相对于java对数据处理具有速度快的优势,故选择python语言实现遗传算法优化攻击向量。故在计算个体适应度时,采用由python语言开发的开源工具XSSer可以实现模拟攻击。针对注入点列表中的注入点,借助XSSer向其提交攻击向量,并保存响应结果。
Claims (6)
1.一种基于遗传算法的存储型XSS攻击向量优化方法,其特征在于:采用机器学习领域的one-hot编码方式对基本向量库实现基因编码。任意两个父代采用单点交叉的方式实现父代交叉操作,获得两个不同的子代。所有的子代按照进行基因变异。采用包含个体攻击向量的适应度函数来评价个体的竞争能力,适应度值大的子代补充攻击向量库。
算法具体如下:
输入:注入点列表和基本向量库
输出:攻击向量库
步骤1:选择种群t,对种群t中的攻击向量计算适应度f;
步骤2:若适应度f达到阀值maxf,将攻击向量加入种群t,否则,不加入种群t;
步骤3:随机选择没有达到阀值的攻击向量,进行单点交叉,变异,得到新的攻击向量;
步骤4:统计迭代次数c;
步骤5:对步骤3所得到的攻击向量,重新计算适应度f;
步骤6:若c到最高迭代次数,跳到步骤7,否则跳至步骤2;
步骤7:结束。
2.根据权利要求1所述的存储型XSS攻击向量优化方法,其特征在于:
最高迭代次数c设为100。
3.根据权利要求1所述的存储型XSS攻击向量优化方法,其特征在于:
将Stored-XSS攻击向量的特征定义为{L,P,S,K}四元组的形式,其中L表示注入点的位置,常见的位置有type值为Text,Image,Password,email,url类型的input元素,以及textarea域,P表示插入攻击向量的方式,S为常见的特殊关键字符,K为攻击向量中出现的关键字,通过Stored-XSS攻击向量特征将其设计为{T}{P}{S}{K}alert(‘XSS’)的形式。
遗传算法的染色体一共表示为21位,第1-5位表示input元素中type值,第6位表示为textarea域,第7-8位表示插入攻击向量的方式,第9-19位表示常见的特殊关键字符,最后两位表示攻击向量中出现的关键字。通过one-hot编码后,一个特征将会扩展为n个特征,其中n为特征对应属性值的个数,扩展后的每个特征值都为0或1。比如特征L将会扩展为特征T=text,t=image,t=password,t=email,t=url,t=textarea 6个特征。
4.根据权利要求1所述的存储型XSS攻击向量优化方法,其特征在于:
适应度函数f是攻击向量竞争力的评价标准。
f=(branch%+cpath%)*xssp*db% (1)
其中,branch指在当前的一个path中,成功的分支数;cpath指该攻击向量成功覆盖的路径,xssp指所有的路径总数,db指覆盖当前路径的攻击向量数。
将branch%、cpath%、db%记为1,统计所有可能注入点的路径总数,然后将上述公式得到的结果50%作为阀值maxf。
5.根据权利要求1所述的存储型XSS攻击向量优化方法,其特征在于:
采用单点交叉方式进行交叉操作。在选择交叉点时,以同一类型的特征进行交叉,并且选择的交叉点在第8-18,和19位中随机选择进行交叉。变异操作采用的变异概率为0.01。
6.根据权利要求1所述的存储型XSS攻击向量优化方法,其特征在于:
选择python语言实现遗传算法优化攻击向量。故在计算个体适应度时,采用由python语言开发的开源工具XSSer实现模拟攻击。针对注入点列表中的注入点,借助XSSer向其提交攻击向量,并保存响应结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910071167.XA CN109886018B (zh) | 2019-01-25 | 2019-01-25 | 一种基于遗传算法的存储型xss攻击向量优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910071167.XA CN109886018B (zh) | 2019-01-25 | 2019-01-25 | 一种基于遗传算法的存储型xss攻击向量优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109886018A true CN109886018A (zh) | 2019-06-14 |
CN109886018B CN109886018B (zh) | 2021-01-05 |
Family
ID=66926791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910071167.XA Active CN109886018B (zh) | 2019-01-25 | 2019-01-25 | 一种基于遗传算法的存储型xss攻击向量优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109886018B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488585A (zh) * | 2020-04-17 | 2020-08-04 | 北京墨云科技有限公司 | 一种基于深度学习的攻击向量生成方法 |
CN111797407A (zh) * | 2020-09-08 | 2020-10-20 | 江苏开博科技有限公司 | 一种基于深度学习模型优化的xss漏洞检测方法 |
CN111818007A (zh) * | 2020-05-13 | 2020-10-23 | 中国科学院软件研究所 | 一种基于量子遗传算法的漏洞修复收益优先级评估方法及电子装置 |
CN112487493A (zh) * | 2020-11-25 | 2021-03-12 | 电子科技大学 | 一种基于遗传算法的安全策略调度优化方法 |
CN114448660A (zh) * | 2021-12-16 | 2022-05-06 | 国网江苏省电力有限公司电力科学研究院 | 一种物联网数据接入方法 |
CN114448660B (zh) * | 2021-12-16 | 2024-06-04 | 国网江苏省电力有限公司电力科学研究院 | 一种物联网数据接入方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006034832A2 (en) * | 2004-09-27 | 2006-04-06 | Univ Muenchen L Maximilians | Use of igfbp-2 in senescence diseases and for the maintenance of organ functions |
CN101894237A (zh) * | 2010-08-03 | 2010-11-24 | 南开大学 | 应用遗传算法自动生成xss跨站点脚本漏洞检测参数的方法 |
CN102123062A (zh) * | 2011-04-22 | 2011-07-13 | 西安电子科技大学 | 基于树突细胞算法的网络数据异常检测方法 |
CN102999723A (zh) * | 2012-11-20 | 2013-03-27 | 焦点科技股份有限公司 | 主动防御xss攻击的数据防御组件生成方法及其装置 |
CN103886375A (zh) * | 2014-04-17 | 2014-06-25 | 张黎明 | 一种基于二叉空间分割树的资源调度优化方法 |
CN107046533A (zh) * | 2017-03-15 | 2017-08-15 | 广西科技大学 | 一种存储型xss攻击向量的自动生成方法 |
CN109257393A (zh) * | 2018-12-05 | 2019-01-22 | 四川长虹电器股份有限公司 | 基于机器学习的xss攻击防御方法及装置 |
-
2019
- 2019-01-25 CN CN201910071167.XA patent/CN109886018B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006034832A2 (en) * | 2004-09-27 | 2006-04-06 | Univ Muenchen L Maximilians | Use of igfbp-2 in senescence diseases and for the maintenance of organ functions |
CN101894237A (zh) * | 2010-08-03 | 2010-11-24 | 南开大学 | 应用遗传算法自动生成xss跨站点脚本漏洞检测参数的方法 |
CN102123062A (zh) * | 2011-04-22 | 2011-07-13 | 西安电子科技大学 | 基于树突细胞算法的网络数据异常检测方法 |
CN102999723A (zh) * | 2012-11-20 | 2013-03-27 | 焦点科技股份有限公司 | 主动防御xss攻击的数据防御组件生成方法及其装置 |
CN103886375A (zh) * | 2014-04-17 | 2014-06-25 | 张黎明 | 一种基于二叉空间分割树的资源调度优化方法 |
CN107046533A (zh) * | 2017-03-15 | 2017-08-15 | 广西科技大学 | 一种存储型xss攻击向量的自动生成方法 |
CN109257393A (zh) * | 2018-12-05 | 2019-01-22 | 四川长虹电器股份有限公司 | 基于机器学习的xss攻击防御方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488585A (zh) * | 2020-04-17 | 2020-08-04 | 北京墨云科技有限公司 | 一种基于深度学习的攻击向量生成方法 |
CN111488585B (zh) * | 2020-04-17 | 2023-06-27 | 北京墨云科技有限公司 | 一种用于漏洞检测的基于深度学习的攻击向量生成方法 |
CN111818007A (zh) * | 2020-05-13 | 2020-10-23 | 中国科学院软件研究所 | 一种基于量子遗传算法的漏洞修复收益优先级评估方法及电子装置 |
CN111818007B (zh) * | 2020-05-13 | 2021-08-31 | 中国科学院软件研究所 | 一种基于量子遗传算法的漏洞修复收益优先级评估方法及电子装置 |
CN111797407A (zh) * | 2020-09-08 | 2020-10-20 | 江苏开博科技有限公司 | 一种基于深度学习模型优化的xss漏洞检测方法 |
CN111797407B (zh) * | 2020-09-08 | 2021-05-07 | 江苏开博科技有限公司 | 一种基于深度学习模型优化的xss漏洞检测方法 |
CN112487493A (zh) * | 2020-11-25 | 2021-03-12 | 电子科技大学 | 一种基于遗传算法的安全策略调度优化方法 |
CN114448660A (zh) * | 2021-12-16 | 2022-05-06 | 国网江苏省电力有限公司电力科学研究院 | 一种物联网数据接入方法 |
CN114448660B (zh) * | 2021-12-16 | 2024-06-04 | 国网江苏省电力有限公司电力科学研究院 | 一种物联网数据接入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109886018B (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109886018A (zh) | 一种基于遗传算法的存储型xss攻击向量优化方法 | |
US10944789B2 (en) | Phishing detection enhanced through machine learning techniques | |
Tariq et al. | Resolving cross-site scripting attacks through genetic algorithm and reinforcement learning | |
Nunan et al. | Automatic classification of cross-site scripting in web pages using document-based and URL-based features | |
CN111552971B (zh) | 基于深度强化学习的恶意软件家族分类规避方法 | |
CN102999723B (zh) | 主动防御xss攻击的数据防御组件生成方法及其装置 | |
CN113158190A (zh) | 一种基于生成式对抗网络的恶意代码对抗样本自动生成方法 | |
Hydara et al. | An approach for cross-site scripting detection and removal based on genetic algorithms | |
Zhou et al. | Web application vulnerability fuzzing based on improved genetic algorithm | |
Li et al. | Automatic XSS detection and automatic anti-anti-virus payload generation | |
Lu et al. | A GAN-based method for generating SQL injection attack samples | |
Hemmati et al. | Bypassing Web Application Firewalls Using Deep Reinforcement Learning. | |
CN117079053A (zh) | 基于梯度平均的人工智能图像识别对抗攻击方法及系统 | |
CN107943754B (zh) | 一种基于遗传算法的异构冗余系统优化方法 | |
Note et al. | Comparative analysis of intrusion detection system using machine learning and deep learning algorithms | |
Pastrana et al. | Anomalous web payload detection: evaluating the resilience of 1-grams based classifiers | |
Choudhary et al. | A Machine Learning Approach for Phishing Attack Detection | |
Barakat et al. | Modeling and simulation of IoT botnet behaviors using DEVS | |
Barabas et al. | Automated malware detection based on novel network behavioral signatures | |
Archbold et al. | Limiting concept spread in environments with interacting concepts | |
Lüdtke et al. | Attack-based automation of security testing for iot applications with genetic algorithms and fuzzing | |
CN110213262B (zh) | 一种基于深度q网络的全自动高级逃逸技术检测方法 | |
CN117081855B (zh) | 蜜罐优化方法、蜜罐防护方法以及蜜罐优化系统 | |
Qiu et al. | BELT: Old-School Backdoor Attacks can Evade the State-of-the-Art Defense with Backdoor Exclusivity Lifting | |
Zhang et al. | Steganographic Capacity of Deep Learning Models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |