当前位置:首页 期刊杂志

基于深度网络模型的网络XSS攻击入侵检测方法

时间:2024-12-29

刘国辉

(沈阳大学 教务处现代教育技术中心,辽宁 沈阳 110044)

0 引言

跨站脚本攻击(Cross Site Scripting,XSS)是由于Web应用的普及,尤其是在客户端应用Ajax和JavaScript等技术而产生大量的交互而产生的漏洞.该漏洞通过盗取用户Cookie、会话劫持、网络钓鱼以及拒绝服务攻击等盗取资料和破坏用户行为,已经严重影响了Web的安全性问题[1-3].目前该攻击已在Web应用项目的漏洞总量中排名前三.

传统的针对XSS攻击进行处理的方法是采用XSS过滤器,过滤器中存储了黑名单备份,当网络中截取到含有黑名单的数据就进行拦截.尽管XSS过滤器能过滤黑名单,但对于进行加密的一些数据无法有效被检测,从而导致检测效率较低.近年来,在XSS攻击的检测上开始运用人工智能的相关方法,如文献[4]等建立了一种基于SVM支持向量机的XSS攻击技术,该方法能提取最有辨识力的5维特征作为特征向量,然后采用支持向量机SVM进行训练,利用SVM最终对攻击进行检测.文献[5]提出了一种XSS漏洞检测模型来降低漏报率并提高检测效率,该模型主要包含5个部分:载荷单元生成、绕过规则选择、试探载荷测试、试探单元组合测试以及载荷单元单独测试.该模型能通过探针判断检测点是否发生漏洞,并根据测试结果来生成针对性的完整攻击载荷.文献[6]为了提高检测精度,将攻击检测模型转换为二分类问题,提出最大熵模型的XSS攻击检测模型,并利用预处理模块对原始数据进线规范化处理.

为了进一步提高攻击检测的精度,本文提出了一种基于深度模型的XSS攻击入侵检测模型,利用Resnet来作为入侵检测模型,将用户的输入作为Resnet的输入,并将是否攻击的结果作为网络的输出,从而实现端到端的输出,避免手工设计特征而带来的诊断精度降低的问题。

1 XSS攻击概述

XSS的攻击类型可以分为反射型XSS、存储型XSS和DOM-Based XSS,其中,反射型XSS也称为非持久性XSS,攻击者通过在URL上添加恶意的JavaScript代码,当用户点击该URL时,会导致脚本代码的发生;存储型XSS是一种持久性XSS攻击,攻击者将恶意代码附加在服务器上,当用户访问服务器上的数据时候就会导致JavaScript代码的发生,这类攻击主要出现在BBS的网站评论上.Dom-Based XSS是一种基于DOM文档对象模型的漏洞类型,通常该类攻击也是存在于服务器上.

2 基于Resnet模型的XSS攻击模型设计

2.1 Resnet

Resnet是一种通过最小化输入和输出之间的损失来学习模型的方法,该方法1*1和3*3的卷积核,由于参数较少,因此网络的层数可以很多.该网络获得了2015年的ImageNet比赛的冠军,将图像识别的错误率降低到了3.57%,但其仅仅需要100M的存储空间,整个网络都由残差模块堆叠而成,每个残余结构如图1所示.

在图1所示的残差模块中,主要包含了两个3*3的卷积模块,σ表示Relu激活函数,该残余模块的第一层中,其输出为:

F(X)=W2σ(W1X).

(1)

其中,W1和W2分别表示第一层和第二层的权值矩阵,X为相应的输入.

网络的最终输出为:

F(X)=F(X,{Wi})+WsX.

(2)

2.2 基于Resnet的XSS攻击入侵检测方法

本文提出用于XSS攻击的检测模型,就是采用图1所示的残差模块堆叠而成,形成Resnet50,2个全连接层的神经元数量分别为4 096.由于网络模型的输出仅需要判断XSS类攻击类型,因此输出端神经元的数量为1,即输出端为0时表示不发生任何攻击,当输出端为1时表示发生攻击,为所有需要检测的数据进行预处理,即首先对数据进行标记,从而使得数据是有标签的,然后对数据的所有维度进行格式化处理,使得所有数据均带有一定的噪声,从而提高模型的泛化能力.然后对整个数据集进行划分,分为训练样本集和测试样本集.

图1 残余模块图2 基于Resnet的结构描述

2.3 改进的池化方法

由于Relu函数输出的最小值为0,因此,输出值均值往往大于0,当激活值大于0时,会传播一个偏置给下一层,如果激活值之间不相互抵消的话,会导致下一层有较大的偏置变换.因此,当层数越多时,偏置变换越大.Elu函数则允许负数值,从而使得让单元激活均值接近1,从而保证在状态未激活的情况下,对噪声具有较大的鲁棒性.Elu函数的表达式如下所示:

(3)

Elu的函数的微分可以表示为:

(4)

从公式(3)可以看出,当自变量大于0时,就输入自变量x本身,当自变量x小于0时,激活值为负数,而且导数不为0.Elu函数具有两个优点:即将输入的自变量的激活值控制在0,同时使得激活函数的负数值也可以被使用.

3 仿真实验

为了验证本文方法的优越性,采用不同的XSS漏洞平台进行测试,即IBM AltoroMutual、Cenzic CrackMeBank和DVWA.其中,IBM AltoroMutual是一种为了测试IBM APPSCAN的WEB应用程序,采C++语言进行编写,用于测试黑盒扫描器,其访问链接为http://demo.testfire.net/.Cenzic CrackMeBank是一个采用PHP语言的包含漏洞的网络银行应用程序,专门用于对安全进行测试,其访问链接为http://crackme.cenzic.com/.DVWA是一个采用PHP语言编写的用于对安全脆弱性进行检测的项目.

首先手收集样本,对各漏洞平台各选1 000个攻击样本,正常样本则从Web服务器日志中选取.其中攻击样本为正样本,而日志样本则为负样本.在1 000个攻击样本和1 000个日志样本中各选出60%作为训练样本,剩余的40%的样本为测试样本.

模型训练完后得到的损失如图3所示:

为了评价本文提出模型对攻击进行检测的检测率,从准确度、召回率2个指标上对提出的方法进行比较,这三个指标的计算如下所示:

1)准确率ACC表示预测正确的正样本和负样本占总的样本数量.

(5)

2)召回率REC表示预测为正确的样本占总的正样本的比例:

(6)

其中,TN表示被判断为负样本的负样本的数量,TP表示被判定为正样本的正样本的数量,FN表示被错误判定为负样本的正样本的数量;FP表示被错误判定为正样本的负样本的数量.

将文中所提出的方法与传统的XSS-Filter和经典的Resnet进行比较,从图4可以看出,文中所提出的方法具有较高的准确率和召回率,较经典的Resnet和XSS-Filter两种方法在准确率上分别提高0.86%和3.12%,而在召回率上则分别提高了0.38%和1.02%.相对于另外两种方法,本文所提出的方法由于利用了深度模型,能学习到一个更好的参数,因此,具有更好的表示能力.

图3 模型训练结果图4 准确率和召回率进行比较

4 结语

为了实现XSS网络攻击的检测,本文提出了一种基于改进Resnet模型的XSS攻击入侵模型,该模型在Resnet的基础上加入了新的池化方法,使得整个网络具有了更好的特征表示能力,从而在经过全连接层后,能更好地对网络攻击进行检测.为了验证所提出的方法的优越性,将其应用于IBM AltoroMutual、Cenzic CrackMeBank和DVWA漏洞程序进行检测,并与经典的方法XSS-Filter以及Resnet进行比较,结果表明本文所提出的方法具有较高的准确率和召回率,具有较大的优越性.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!