论文部分内容阅读
随着互联网技术的兴起,Web应用已经渗透到了我们生活的方方面面。随之而来的的也会出现很多的Web漏洞,其中跨站脚本攻击(XSS)是该应用中常常出现的一种计算机安全漏洞,它通过注入恶意的脚本和链接到正常的网页来窃取用户的敏感数据。如何来检测这些跨站脚本攻击,是Web安全研究的热点。传统的方法中往往需要花费大量的时间和精力来提取这些攻击数据的特征,而且还需要一定的经验相结合才能取得很好的效果。最近几年已经有研究人员提出了使用机器学习的方式来检测,但是在当前的大数据时代,数据量是越来越大,采用这种浅层的学习已经不能满足我们检测效果的要求。于是本文就提出了一种基于深度学习的方法来检测,首先采用了最简单的词袋模型、无监督的Word2vec模型和Glove模型将我们挖掘到的数据转换成词向量,这些词向量将会替代人工的提取特征,这种方式大大节省了人力,接着使用深度学习模型来学习这些词向量的特征来区分出有攻击和正常的数据,最后再通过对比验证了深度学习模型在跨站脚本攻击检测取得了非常好的效果。在本文中,采集网页数据包含了URL,Javascript脚本和HTML标签这三种类别的20多万条的正反实例,然后通过词袋模型、Word2vec模型和Glove模型把这些数据生成三种不同的词向量分别输入到深度学习模型LSTM(长短时记忆网络)、CNN(卷积神经网络)和CNN+LSTM进行训练学习,目的是将我们的数据集分为XSS和non-XSS。通过多次实验选取CNN+LSTM模型合适的超参数,最终依据实验结果统计出这三种模型的召回率和准确率等指标。结果表明本文提出的CNN+LSTM模型不仅比深度学习中常用的LSTM和CNN模型获得的性能好,而且Word2vec模型得到的词向量训练出来的效果要好于其它两种模型,同时相比一般浅层的机器学习能获得更好的性能,最高的准确率为99.87%,误检率低至 0.08%。