应用遗传算法自动生成xss跨站点脚本漏洞检测参数的方法

文档序号:6606952阅读:206来源:国知局
专利名称:应用遗传算法自动生成xss跨站点脚本漏洞检测参数的方法
应用遗传算法自动生成XSS跨站点脚本漏洞检测参数的方

技术领域
本发明属于漏洞检测和测试数据自动生成技术领域,具体涉及一种应用遗传算法 自动生成XSS跨站点脚本漏洞检测参数的方法。
背景技术
随着Web技术的发展,各类型Web应用层出不穷,而由此带来的Web应用漏洞 也日益增多,其中危害最为严重的漏洞之一就是跨站点脚本攻击漏洞。跨站点脚本攻击 (CrossSite Script, XSS)指的是黑客在Web页面中植入恶意代码,当用户浏览该页面时, 攻击者嵌入其中的HTML代码将会执行,从而达到恶意盗取用户信息的目的。目前针对于Web漏洞的检测技术有两个方向,一种是入侵检测机制,另一种是针 对系统本身的检测以使系统更加完善。针对后一种方法目前以针对系统的安全扫描和漏洞 检测为主。然而该方法主要针对于系统中存在的漏洞进行检测,对于Web应用中存在的漏 洞则无效,因此针对于Web应用漏洞的检查不能再停留在以往的被动式检查上,而应采取 主动式的漏洞检测方法。主动式的漏洞检测方法即是从黑客的角度出发模拟黑客的攻击来 检测出网站中可能存在的问题。在主动攻击式检测网站漏洞的模式中存在两个需要解决的 问题一方面是如何在信息量浩如烟海的Web页面中寻找到最有可能被攻击的页面,即页 面遍历方法;另一方面是在这些页面中如何模拟黑客攻击手法来发现潜在的漏洞点,即攻 击数据的设计。但随着Web应用越来越复杂庞大,以往人工指定漏洞测试数据的方法,无论 从覆盖程度还是效率方面,都已经无法满足Web应用漏洞检测的需要。因此,漏洞检测参数 的自动生成已经成为一种重要的参数生成手段。遗传算法是一类借鉴生物界的进化规律演化而来的随机化搜索方法,是模拟达尔 文的遗传选择和自然淘汰的生物进化过程的计算模型,是具有“生存+检测”的迭代过程的 搜索算法。它由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象 进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力; 采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需 要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处 理、自适应控制和人工生命等领域。遗传算法中,选择、交叉和变异构成了遗传算法的遗传 操作;参数编码、初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定五个要 素组成了遗传算法的核心内容。遗传算法是现代有关智能计算中的关键技术之一,其特点 使其在软件测试所需的参数生成中同样有良好的使用性。

发明内容本发明的目的是弥补人工生成跨站点脚本漏洞检测参数的不足,提出一种应用遗 传算法自动生成XSS跨站点脚本漏洞检测参数的方法。该方法覆盖程度和效率都比较高, 且实现了算法的系统结构。
4
本发明提供的应用遗传算法自动生成XSS跨站点脚本漏洞检测参数的方法包括 以下步骤步骤1、根据XSS跨站点脚本漏洞的产生规则,定义本发明所述方法的基础参数 集;步骤2、定义生成XSS跨站点脚本漏洞检测参数的遗传算法的基因编码策略,该基 因编码策略用于生成基因编码;步骤3、定义生成XSS跨站点脚本漏洞检测参数的遗传算法的交叉操作和变异操 作,对父代基因编码执行交叉、变异操作生成子代基因编码;步骤4、定义生成XSS跨站点脚本漏洞检测参数的遗传算法的模拟攻击操作;步骤5、定义生成XSS跨站点脚本漏洞检测参数的遗传算法的选择操作;步骤6、对于应用遗传算法自动生成XSS跨站点脚本漏洞检测参数的方法,定义该 方法的迭代算法,至迭代算法终止即可获得XSS跨站点脚本漏洞检测参数。本发明方法的具体操作过程如下1.定义漏洞检测参数集本发明定义了跨站点脚本漏洞的检测参数集,其中包括在Web页面中的三处 注入点,即Text,TextArea和Password三个HTML内部控件,以及四个漏洞产生位置, 即Web页面的HTML注释中,INPUT元素中,<script></script>块结构中及<body></ body)块结构中,标记点有 “<html>”,“</html>”、“〈script〉”,“〈/script〉”、“〈input”, “ </form> ”、“ <TextAre> ”,“ </TextArea> ”。本发明定义了参数中插入的恶意代码主要 是JavaScript代码,其中主要包括可产生跨站点脚本漏洞特殊字符“’”、“〈”和“;”;定 义了跨站点脚本漏洞参数的通用形式为{C} {A}alert ( iXSS attack !,) {B},其中集合 {A} {B}代表跨站点脚本插入点的标记对,主要包括“〈script〉”,“</SCript>”、“Style = "background url (javascript ”,“) ””、“</TextAreaXscript>”,“〈/script〉”和“ ”,“,,;集 合{C}代表可选的特殊符号集合,在<html></html>块中的特殊符号集合为Cl = {“-->”、 “>,>,,、“> “>,,、“> “,>”},在〈script〉块中的特殊符号集合为 C2 = { “,;,,、““ ;”}。2.定义基因编码策略本发明定义了该生成漏洞检测参数遗传算法的实现,首先需要实现从表现到基因 型的映射,即编码工作。而后遗传算法工作于参数的编码而非参数本身。本发明根据跨 站点脚本漏洞的检测参数集和通用参数拼接形式进行编码,其中每个基因包括14位,前2 位代表可能出现在Web页面中的位置,00,01,10,11分别代表页面的HTML注释,INPUT元 素,<script></script>块结构及〈bodyX/body〉块结构;中间2位代表脚本注入点,其中 脚本注入点仅有三处,故假设只使用00,01,10代表Text,TextArea和Password三个可 注入控件,编码11则代表不使用控件;后10位代表攻击所需的特殊符号形式,不同组合 分别对应可能采取的不同特殊符号组合,位数设定为10位为了方便的后续扩展。如编码 11000000000001代表在<body>块中的Text控件中使用“一>”符号作为参数形成跨站点脚 本攻击,即插入 “一><script>alert( ‘XSS Attack !,)〈/script〉” 代码。编码后 10 位组
合所对应的符号参数形式如表1所示。 表1基因编码后10位组合对应的符号参数形式3.交叉操作本发明定义了针对二进制基因编码的交叉操作。将被选中的两个个体的基因编码 进行交叉操作,生成两个新的个体。根据对XSS跨站点脚本参数编码方式的研究,本发明采 用的交叉算子为均勻交叉,即在该编码方式的三个参数段上,对每个参数位串进行单点交 叉,可以在增加交叉点的同时保证交叉点可以均勻地落在每个参数的位串上,如图1所示。4.变异操作本发明定义了针对二进制基因编码的变异操作,通过使用变异算子将新个体的基 因编码的各位按概率Pm进行变异,对于二进制表示的基因编码是对基因编码的变异位的 值取反。考虑到在XSS跨站点脚本攻击所使用的参数集大小适中,并且参数相对确定的特 点,本发明采用的变异概率为Pm = 0. 9%。5.定义模拟攻击操作本发明对于自动生成跨站点脚本漏洞检测参数的方法实现,定义了其模拟攻击操 作。通过对本发明的步骤1、步骤2、步骤3定义的方法得到了 XSS跨站点脚本攻击所需要 的基因编码后,利用本发明步骤2定义的编码策略对该基因编码符合HTML语法规则并且可 以在实际操作中使用的基因编码进行解码,可以得出XSS攻击位置及具体攻击内容,并拼 接得到攻击参数,利用该攻击参数进行模拟攻击操作,保存模拟攻击反馈结果作以供步骤5 定义的选择操作使用。6.选择操作本发明定义了针对基因编码的选择操作,方法是将每次模拟攻击的反馈结果保 存,并判断其攻击是否有效果,选择在模拟攻击操作中有效果的基因编码中作为新的父代 基因编码,淘汰攻击无效果的基因编码。7.迭代算法本发明步骤6所述的迭代算法的实现方法是,首先需要根据实际应用的需要人工 设定迭代算法的迭代次数,还需要根据实际需要和基础参数集设定初代数据,并通过编码 策略将其转化为二进制表示的基因编码,将该基因编码作为第一次迭代的父代基因编码; 每次迭代的过程为,对父代基因编码执行步骤4定义的交叉操作和变异操作生成的其子代 基因编码,并通将这些基因编码中符合HTML语法规则并且能够在实际操作中使用的基因 编码进行解码并拼接成攻击参数,然后对目标站点进行由步骤4定义的模拟攻击操作,保
6存模拟攻击的反馈结果,根据反馈结果判断模拟攻击是否有效,再通过步骤5所定义的选 择操作将模拟攻击有效果的基因编码作为下一次迭代的父代基因编码;通过上述迭代过程 循环生成新的父代和新的子代,当算法迭代的次数达到程序开始时人工设定的值时,算法 终止;至迭代算法终止时,在每次迭代过程中获得的所有的子代基因编码经过解码和拼接 得到的攻击参数,即为本发明方法所获得的XSS跨站点脚本漏洞检测参数。本发明的优点和积极效果本发明提出一种应用遗传算法自动生成XSS跨站点脚本漏洞检测参数的方法,该 方法以遗传算法为基础,对于跨站点脚本漏洞检测参数的自动生成,设计了其参数集和编 码解码策略、攻击参数数据库,以及交叉造作、变异操作、模拟攻击操作和选择操作。通过 遗传算法可能生成出更多的可用数据,改变了以往人为指定测试数据效率低覆盖面小的缺 点,可以使得数据生成得更快,并且覆盖面更广。因此,通过使用遗传算法生成的测试数据 可以使得检测范围更大效率更高。

图1为均勻交叉操作示意图。图2为系统流程图。
具体实施方式图2给出了本发明的算法流程,现结合本发明进一步提供以下实施例根据本发明方法,实现通过遗传算法自动生成XSS跨站点脚本漏洞检测参数的算 法还需要包括模拟攻击系统、攻击参数数据库以及模拟攻击的目标系统,并根据最终需要 人工设定迭代次数为30次,即循环的代数为30代。其迭代算法的一次迭代过程如下所示。一、本发明方法的实现方法的迭代算法的一次迭代过程的第一部分为通过遗传算 法生成检测参数集。首先对父代基因进行二进制编码,对表2所示父代基因数据进行二进制编码,根 据步骤1定义的在Web页面中跨站点脚本漏洞检测参数集和步骤2定义的编码策略进行编 码,得到父代基因编码。 表2对参数进行编码编码后,父代基因数据的二进制编码如表3所示。: 表3对参数进行编码接下来,选择父代基因编码集合中适当个体作为父个体以产生下一代,T2和T3数 据在实际中无法使用,不符合编码规则,所以在选择操作中将其淘汰。对父代基因编码集合进行交叉操作。使用Tl和T4作为父代,将Tl和T4均勻交 叉生成T5和T6,表4所示为Tl与T4交叉操作后的二进制编码T5和T6。 表4均勻交叉生成二代群体
父代基因编码集合进行概率为0. 009的变异操作。将Tl和T4变异生成T7和T8, 表5所示的为Tl和T4经过变 表格5变异生成二代结果二、本发明方法的实现方法的迭代算法的一次迭代过程的第二部分为模拟XSS跨 站点脚本攻击。对生成的后代参数进行解码操作,判断出第二代基因编码生成的测试数据的可用 性。根据编码策略、HTML语法规则和实际可用性确定生成的测试数据T5、T6、T7、T8均可使用。根据可用测试数据Τ5、Τ6、Τ7、Τ8,从攻击参数数据库中选择出具体的攻击数据, 得到XSS跨站点脚步攻击所需的内容,HTML注入点及注入内容,将这些参数按照{C} {A} alert ( “XSS”){B}的形式、编码策略以及表1的参数对应形式进行拼接,拼接后的形式如 表6所示。 表6攻击参数拼接结果将拼接后的攻击参数通过模拟攻击系统,对目标系统进行模拟XSS跨站点脚本攻
击ο将模拟攻击的结果返回,如表7所示,作为选择操作的筛选条件,从二代群体中选 出优良个体作为新的父代。 表7模拟攻击反馈结果对本实施例的反馈结果进行判断,并进行选择操作,T5、T7和T8为模拟攻击有效 个体,作为新的父代基因编码。本次迭代过程至此结束。将新的父代基因编码T5、T7和Τ8作为下一次迭代过程的父代基因编码,重复执行 本迭代算法的一次迭代过程的第一部分及第二部分,循环生成更多测试数据。当迭代的次 数达到30次时,应用遗传算法自动生成XSS跨站点脚本漏洞检测参数的迭代算法停止。至 迭代算法终止时,在每次迭代过程中获得的所有的子代基因编码经过解码和拼接得到的攻 击参数,如表6所示,即为本发明方法所获得的XSS跨站点脚本漏洞检测参数。
权利要求
一种应用遗传算法自动生成XSS跨站点脚本漏洞检测参数的方法,其特征在于包括以下步骤步骤1、根据XSS跨站点脚本漏洞的产生规则,定义本发明所述方法的基础参数集;步骤2、定义生成XSS跨站点脚本漏洞检测参数的遗传算法的基因编码策略,该基因编码策略用于生成基因编码;步骤3、定义生成XSS跨站点脚本漏洞检测参数的遗传算法的交叉操作和变异操作,对父代基因编码执行交叉、变异操作生成子代基因编码;步骤4、定义生成XSS跨站点脚本漏洞检测参数的遗传算法的模拟攻击操作;步骤5、定义生成XSS跨站点脚本漏洞检测参数的遗传算法的选择操作,用于选择出新的父代基因编码;步骤6、对于应用遗传算法自动生成XSS跨站点脚本漏洞检测参数的方法,定义该方法的迭代算法,至迭代算法终止即可获得XSS跨站点脚本漏洞检测参数。
2.根据权利要求1所述的方法,其特征在于步骤1所定义的本发明所述方法的基础参 数集,其包括(1)、三处Web页面注入点,即Text,TextArea和Password三个HTML内部控件;(2)、本方法扫描漏洞的四个位置,即Web页面的HTML注释中,INPUT元素中, <scriptX/script>块结构中及<body></body>块结构中,其标记点包括“<html>”,“</ html>”、“〈script〉”,“〈/script〉,,、“〈input”,“</form>,,、“<TextAre>”,“</TextArea>,,;(3)、参数中插入的恶意代码,主要是JavaScript代码,其中主要包括可产生跨站点脚 本漏洞的特殊字符“ ’”、“〉”和“;”;(4)、跨站点脚本漏洞参数的通用形式,为{C}{A} alert ( iXSS attack !,) {B},其中集 合{A} {B}代表跨站点脚本插入点的标记对,主要包括“<SCript>”,“</SCript>”、“Style = "background url (javascript ”,“) ””、“</TextAreaXscript>”,“〈/script〉”和“ ”,“,,;集 合{C}代表可选的特殊符号集合,在<html></html>块中的特殊符号集合为Cl = {“-->”、 “>,>,,、“> “>,,、“> “,>”},在〈script〉块中的特殊符号集合为 C2 = { “,;,,、““ ;,,}。
3.根据权利要求1所述的方法,其特征在于步骤2定义的跨站点脚本漏洞检测参数遗 传算法的基因编码策略,其中每个基因编码分为三个参数段,包括14位;前2位是第一个 参数段,代表漏洞可能出现在Web页面中的位置,00,01,10,11分别代表页面的HTML注释, INPUT元素,<script></script>块结构及<body></body>块结构;第3位和第4位是第二 个参数段,代表脚本注入点,使用00,01,10代表Text,TextArea和Password三个可注入控 件,编码11则代表不使用控件;后10位是第三个参数段,代表攻击所需的特殊符号形式,不 同组合分别对应可能采取的不同特殊符号组合,位数设定为10位为了方便的后续扩展;使 用步骤2定义的跨站点脚本漏洞检测参数遗传算法基因编码策略对步骤1定义的跨站点漏 洞检测参数集进行编码得到生成XSS跨站点脚本漏洞检测参数的遗传算法的基因编码。
4.根据权利要求1所述的方法,其特征在于步骤3所述的交叉操作,该操作采用的交叉 算子为均勻交叉,即在步骤2所述的该基因编码的三个参数段上,对每个参数位串进行单 点交叉,可以在增加交叉点的同时保证交叉点可以均勻地落在每个参数的位串上;所述的 基因编码的变异操作通过使用变异算子,将父代基因编码的各位按P = 0.9%的概率进行 变异,变异是指对这种用二进制表示的基因编码需的变异位数值取反;对父代基因编码进行交叉操作和变异操作得到子代基因编码。
5.根据权利要求1所述的方法,其特征在于步骤4所定义的模拟攻击操作,该操作是将 步骤3所述的经过对父代基因进行交叉操作和变异操作得到的子代基因编码中符合HTML 语法规则并且能够在实际操作中使用的基因编码按照步骤2所定义的编码规则进行解码, 将解码得到的数据拼接为攻击参数,使用拼接的攻击参数对目标网站进行实际的跨站点脚 本攻击,并保存反馈结果,通过反馈结果判断攻击是否有效果。
6.根据权利要求1所述的方法,其特征在于步骤5所述的选择操作,该操作是通过步 骤4所述的模拟攻击操作的反馈结果判断出模拟攻击是否有效果,保留在模拟攻击中有攻 击效果的基因编码作为新的父代基因编码,淘汰无攻击效果的基因编码。
7.根据权利要求1所述的方法,其特征在于步骤6定义的本发明所述方法的迭代算法, 首先需要根据实际应用的需要人工设定迭代算法的迭代次数,还需要根据实际需要和基础 参数集设定初代数据,并通过编码策略将其转化为二进制表示的基因编码,将该基因编码 作为第一次迭代的父代基因编码;每次迭代的过程为,对父代基因编码执行步骤4定义的 交叉操作和变异操作生成的其子代基因编码,并通将这些基因编码中符合HTML语法规则 并且能够在实际操作中使用的基因编码进行解码并拼接成攻击参数,然后对目标站点进行 由步骤4定义的模拟攻击操作,保存模拟攻击的反馈结果,根据反馈结果判断模拟攻击是 否有效,再通过步骤5所定义的选择操作将模拟攻击有效果的基因编码作为下一次迭代的 父代基因编码;通过上述迭代过程循环生成新的父代和新的子代,当算法迭代的次数达到 程序开始时人工设定的值时,算法终止;至迭代算法终止时,在每次迭代过程中获得的所有 的子代基因编码经过解码和拼接得到的攻击参数,即为本发明方法所获得的XSS跨站点脚 本漏洞检测参数。
全文摘要
一种应用遗传算法自动生成XSS跨站点脚本漏洞检测参数的方法,该方法设计了一套检测参数集、编码解码策略和攻击参数数据库,使用了遗传算法的交叉、变异、选择操作,以及设计了其模拟攻击操作,并按照跨站点脚本漏洞的参数规则和遗传算法的原理实现其算法。再通过模拟攻击操作的反馈结果和基因编码策略不断生成新的父代与子代,循环执行算法直到达到预期的代数。本发明的这种应用遗传算法自动生成XSS跨站点脚本漏洞检测参数的方法是可信和完备的,它覆盖面广,执行速度块,可用于自动生成跨站点脚本漏洞检测参数领域。
文档编号G06N3/12GK101894237SQ20101024279
公开日2010年11月24日 申请日期2010年8月3日 优先权日2010年8月3日
发明者刘磊, 张莹, 田伟, 练坤梅, 许静 申请人:南开大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1