基于权重优化LSTM网络跨站脚本攻击检测的研究

2019-03-18 01:13李鲁群徐孟达
网络空间安全 2019年7期
关键词:自然语言处理

李鲁群 徐孟达

摘   要:随着互联网世界Web2.0时代的到来,网络空间的开放程度在逐渐地提高,随之而来的是PC端网络交互的安全性受到极大的威胁。在开放式Web应用安全项目基金会(OWASP)历年发布的十大最关键Web应用安全风险中,跨站脚本攻击和注入漏洞一直高居前十位。文章在跨站脚本攻击语句的文本特性描述和分词基础上,将 Word2Vec和LSTM相结合,并在LSTM输入前端,对词向量引入权重优化处理,对跨站脚本攻击检测的方法进行了研究。

关键词:跨站脚本攻击;Word2vec;长短时记忆神经网络;自然语言处理;Web安全

中图分类号:TP391          文献标识码:A

Abstract: With the advent of the era of Web2.0, the openness of cyberspace has been greatly improved. While the security of PC terminal network interaction has been greatly threatened. Among the most critical Web application security risks published over the years by the open Web application security project foundation (OWASP), cross-site scripting attacks and injection vulnerabilities have been among the top ten. Articles in cross-site scripting statements based on text characterization and participles, combining Word2Vec and LSTM, and, therefore, in LSTM input front weight vector is introduced into the optimization, the method to detect a cross-site scripting attack is studied.

Key words: cross-site scripting; Word2vec; long-short term memory network; natural language process; web security

1 引言

在互联网快速发展的今天,人们生活的便利性空前提升,随之而来的网络安全问题却日益严重。其中,跨站脚本攻击(Cross-site Scripting, XSS)对网络应用以及用户的隐私安全带来极大威胁。攻击者利用网站没有对用户提交数据进行充分处理或过滤不足的缺陷,将恶意脚本代码嵌入到 Web 页面中,使访问过该页面的其他用户,会被执行相应的嵌入代码,最终使得攻击者能盗窃用户的重要资料,窃取用户的隐私信息[1]。

根据创宇云防御平台的网络攻防数据显示,2018年网络安全(云安全)态势中严重及高危漏洞中,跨站脚本占比达到27.24%,对互联网用户造成了持续威胁。因此,需要通過新的防御方法快速、准确识别恶意的跨站脚本,减少其对网页带来的危害。

2 跨站脚本攻击

跨站脚本攻击类型主要分为三类:反射型、存储型和文档对象型[2]。

(1)反射型攻击。攻击者嵌入恶意脚本至统一资源定位器,则恶意信息存储于URL内。当用户访问该URL链接时,后端服务器响应用户的请求并返回脚本,当信息返回到用户浏览器界面时,恶意脚本开始执行,收集受害者的敏感信息,并发送给攻击者。

(2)存储型攻击。存储型攻击也称为持久性攻击。该攻击类型持续的时间长,危害大。攻击者会事先将恶意脚本保存到有漏洞的服务器或者数据库中,由于没有仔细过滤,使得恶意脚本可以长期存储在其中,等到用户浏览含有此恶意脚本代码的Web页面并进行内容交互时,恶意代码极容易被触发,随后执行恶意攻击。

(3)文档对象型攻击。这是一个平台中立和语言中立的接口,使得程序和脚本可以动态访问和更新文档的内容、结构以及样式。它在用户浏览器内完成恶意代码的提取操作并执行恶意攻击行为。

3 相关工作

大多数学者对跨站脚本的自然语言处理研究分为两方面:跨站脚本语义词向量分析模型构建和词向量处理结合深度学习技术。

Bengio等人[3]通过网络的分布式学习优势,借助分布式方法加快递归神经网络语言模型的计算速度。该模型可以根据本文的上下文关系信息进行分析,提高了语言的处理能力和分析能力。Piotr等人[4]在Mikolov发明的Word2vec词向量模型的基础上,提出了字符级向量融合的词向量构建方法,在保证效果的同时提升了训练及预测效率。

Shanly等人[5]提出了改进的Skip-gram算法,将XSS攻击词向量形成表格的形式进行检测,提高了XSS漏洞检测的准确率。张思聪等人[6]建立了基于最大熵模型的XSS攻击检测模型,但仅对于反射型XSS攻击的检测效果较好。Liu等人[8]在恶意网页分类中对数据进行清洗填补等操作,并使用机器学习方法预测恶意样本信息,获得了较好的结果,但样本数据较少,容易产生误差。

4 跨站脚本文本特点分析

本文分析数据集当中的恶意跨站脚本语句,为了保证数据安全,去除了URL链接中的Host、Path等信息,只保留了恶意脚本的主要部分。经过分析发现,恶意脚本攻击语句的攻击形式复杂多样。本文从文本特点的角度,来阐述跨站脚本代码的注入与绕过等恶意方法。

4.1 恶意脚本代码注入

(1)使用含脚本标签的直接注入

浏览器网页引用最多的就是“<”“>”标记,用于操作符合HTML语法规则的标签。其中,最具代表性的是"。对于对跨站脚本数据敏感的人来说,第一时间想到的恶意脚本语句就是""。

在嵌入式词向量过程中,考虑到处理的词数量较大,所以本文采用词向量窗口大小为5进行计算。随后为了获得更好的词表示效果,结合样本数据特征,采用128维的向量来表示每一个单词。同时,避免维度太大造成过拟合问题,需要对数据进行降维操作,本文采用随机梯度下降算法,优化计算结果。

6 长短时记忆网络

长短时记忆网络(Long-Short Term Memory, LSTM)是循环神经网络(Recurrent Neural Networks, RNN)的改进,增加了网络的短期记忆能力,对于时间及状态序列要求高的模型具有很好的计算效果。

6.1 LSTM的基本结构

如图7所示是改进的LSTM模型。

模型中符号×代表前一网络状态记忆数据与当前网络状态遗忘门矩阵的运算;符号+代表当前的输入数据进行求和运算;符号σ代表非线性函数Sigmoid,用于控制门控单元[9]。

基本的LSTM单元包含三个输入信号,前一个LSTM单元的输出结果h(t-1),前一个LSTM单元的记忆状态c(t-1)以及当前时刻的输入值Xt。LSTM单元中的3个门,分别决定3个输出状态。其中,遗忘门将词编码集合计算的权重与前一个时刻的状态c(t-1)的乘积,来确定保留到当前状态c(t)的数据量,输入门 可以确定当前时刻的输入值Xt,可以保存到当前状态c(t)的数据量,输出门 决定当前状态c(t)可以输出到当前结果值ht的数据量[9]。

6.2 LSTM模型分析

长短时记忆网络按照词集状态和时间序进行连续运算,得到如图8所示的运算模型。该模型在连续运算过程的输入状态中增加了状态权重的优化步骤。

在前一个状态数据输出以后,当前时刻的输入值为Xt。计算同Xt距离相近的若干词编码及词距离均值。将作为状态权重优化与遗忘门、前一个时刻状态c(t-1)进行计算。以此得到权重优化后的单元输出状态。

权重优化步骤对LSTM的输入数据进行验证,得到高相关度的输入值,有利于LSTM神经网络的计算。

7 实验与分析

7.1 实验数据集

本文使用的数据集是从网站中收集到的关于恶意跨站脚本的数据。其中为了保证实验的安全以及数据优化,从中删除了影响恶意脚本表示的Host、Path等无效数据,保留了能代表恶意脚本形式和效果的数据。

本文收集到正常脚本数据498条,包含正常的URL链接请求、页面跳转等样本;恶意脚本数据639条,包含脚本标签直接注入、恶意HTML标签属性值、层叠样式表(Cascading Style Sheets)注入、恶意大小写转换、关键字拆分、标签嵌套绕过等恶意信息,如表4所示。本文采用70%的数据作为训练集样本,30%的数据作为测试集样本。

7.2 评价指标

本文LSTM的分析属于二分类问题,对于输出的二分类结果表示使用如表5所示的评价类型。

其中,TN表示正常脚本被分类为正常脚本的情况;FN表示恶意脚本被分类为正常脚本的情况;TP表示恶意脚本被分类到恶意脚本的情况;FP表示正常脚本被分类到恶意脚本的情况[10]。

7.3 实验结果

本文使用LSTM神经网络计算方法计算了数据分类的准确率、召回率以及F1值,并使用本文数据结合常规的机器学习检测方法、人工神经网络检测方法进行对比,得到如表6所示的实验结果。

绘制结果曲线,如图9所示。

从表6及图9可以发现,长短时记忆神经网络和人工神经网络的实验结果,明显地优于机器学习的决策树检测方法。这得益于神经网络检测方法拥有较好的非线性计算能力以及状态跟踪能力,能够跟随数据状态和时序状态及时调整网络的运算结构,因此能得到较好的实验结果。而本文方法在召回率和F1值方面,明显地优于常规的人工神经网络检测方法,在于本文对LSTM方法的改进,增加了输入阶段状态权重优化计算,对数据的输入严格把控,起到了明显的效果。

8 结束语

本文针对Web网页的恶意跨站脚本攻击进行分析,阐述了恶意脚本攻击的形式有恶意脚本代码注入和恶意脚本代码绕过两种。其中的漏洞攻击方式,结合具体的实例进行分析,然后本文从跨站脚本攻击语句的文本特性出发,结合Word2Vec词向量方法对跨站脚本的主要信息(Payload)進行分析和处理,将收集到的数据进行筛选整理,并用Skip-gram词向量处理方法将数据转换成词向量的形式,保证了恶意脚本语句的语义信息,具有上下文的可解释性。再利用改进的LSTM神经网络技术,验证恶意脚本和正常脚本的分类效果,最终获得了较高的召回率和F1值。由此,证明了本文使用的检测方法的有效性。

本文所统计到的数据量较小,恶意脚本格式统计不足,导致神经网络计算所需数据量不足。如果后续增加恶意脚本数据的统计和分析,在词向量基础上使用神经网络检测算法,对于分类结果的统计可能会有更好的效果。

参考文献

[1] Category: OWASP Top Ten Project.[EB/OL].https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project,2017.

[2] 曹黎波,曹天杰.基于动态测试的XSS漏洞检测方法研究[J].计算机应用与软件,2015,32(08):272-275.

[3] Bengio Y, Ducharme R, Vincent P, etal. A neural probabilitics language model[J]. Journal of Machine Learning Research, 2016, 3(6):1137-1155.

[4] Piotr B, Edouard G, Armand J, etal. Enriching Word Vectors with Subword Information[J].2016.

[5] Shanly C, Cui J, Mhagama R. A XSS attack detection method based on skip list[J]. International Journal of Security and Its Applications, 2016(6):95-106.

[6] 张思聪,谢晓尧,景凤宣,徐洋.基于最大熵模型的XSS攻击检测模型[J].武汉大学学报(理学版),2016,62(02):177-182.

[7] 张昊祎.基于语义分析和神经网络的WebShell检测方法[J].网络空间安全,2019,10(02):17-23.

[8] Jianhua Liu, Mengda Xu, Xin Wang, etal. A Markov Detection Tree-Based Centralized Scheme to Automatically Identify Malicious Webpages on Cloud Platforms[J].IEEE Access,2018,6(1):74025-74038.

[9] 余万里,韦玉梅,李鲁群.基于多模型融合的人体行为识别模型[J].计算机工程与设计,2019,40(10):3030-3036.

[10] 乔珂岩.基于深度学习Webshell检测方法研究与应用[D].上海:上海师范大学,2019.

猜你喜欢
自然语言处理
基于LSTM自动编码机的短文本聚类方法
自然语言处理与司法案例
国外基于知识库的问答系统相关研究进展及其启示
基于依存句法的实体关系抽取
基于组合分类算法的源代码注释质量评估方法
面向机器人导航的汉语路径自然语言组块分析方法研究
词向量的语义学规范化
汉哈机器翻译中的文字转换技术研究
HowNet在自然语言处理领域的研究现状与分析