基于LSTM-AutoEncoder的水平越权漏洞检测

2020年12月10日第4卷第23期
现代信息科技
Modern Information Technology
Dec.2020 Vol.4 No.23
153
2020.12收稿日期:2020-11-15
基于LSTM-AutoEncoder的水平越权漏洞检测
李帅华,孙庆贺,赵明宇
(国网电动汽车服务有限公司,北京  100053)
摘  要:针对水平越权检测过程中,因无法识别越权场景页面带来的检测误报问题,提出了一种基于深度学习的LSTM-AutoEncoder 无监督预测模型。该模型利用长短时记忆网络构建自动编码器,提取水平越权场景页面响应数据的文本特征并将其重建还原,统计还原结果与原始页面响应的误差,并根据未知页
面的误差阈值判断水平越权的检测结果是否为误报。通过与One-Class SVM 和AutoEncoder 两种算法的比较,在真实业务数据下进行模型效果测试其有效性,为企业网络业务安全提供了保障。
关键词:LSTM-AutoEncoder 模型;水平越权;深度学习;网络安全;漏洞检测中图分类号:TP393.08
文献标识码:A
文章编号:2096-4706(2020)23-0153-07
Horizontal Privilege Escalation Vulnerability Detection Based on
LSTM-AutoEncoder
LI Shuaihua ,SUN Qinghe ,ZHAO Mingyu
(State Grid Electric Vehicle Service Co.,Ltd.,Beijing  100053,China )
Abstract :Aiming at the problem of detecting false positives caused by one ’s inability to identify the page of the unauthorized
scene in the horizon privilege escalation detection process ,an unsupervised prediction model of LSTM-AutoEncoder based on deep
learning is proposed. This model uses LSTM (Long Short-Term Memory )to construct an autoencoder ,which extracts the response data ’s text features of the horizontal privilege escalation scene page and reconstructs it. Then calculates the error between the restored result and the original page response ,and judges whether the horizontal privilege escalation detection result is a false positive based on the error threshold of the unknown page. By comparing the two algorithms of One-Class SVM and AutoEncoder ,the effectiveness of the model is tested under real business data ,which provides a guarantee for the security of corporate network services.
Keywords :LSTM-AutoEncoder model ;horizontal privilege escalation ;deep learning ;cyber security ;vulnerability detection
0  引  言
越权漏洞属于业务逻辑漏洞中的一种,在目前的Web 应用中十分常见。水平越权是越权漏洞中的一种,它是指相同权限的用户可以通过修改参数变量等方式查询、修改、删除、添加他人信息,以实现非法行为。当黑客对越权漏洞进行利用时,由于其攻击行为与正常用户请求无异,且不包含敏感字符
与特殊字符,很难被防御软件监控处理。因此,如何能够对水平越权漏洞进行检测,及时修复缺陷漏洞以避免损失显得尤为重要。
近年来,在针对权限提升的防御控制方法上,已经有很多研究工作开展实施[1-5]。在企业实际业务生产过程中,不仅要增强代码开发人员的安全开发意识和代码规范,还需要对即将上线的Web 应用有着良好的安全检测。对于特权提升漏洞的检测有如下相关研究:Sun 等人提出了利用静态检查的方法来检测Web 应用中的逻辑漏洞,通过源码构建不同权限访问者的站点地图,来判断是否存在越权行为[6]。Monshizadeh 等人提出了MACE 工具,在大型代码库上检测特权提升漏洞,发现了很多严重及未知的漏洞,取得了良好
的效果[7]。Deepa 等采用黑盒方法,通过对预期行为建模构建有限状态机的方式识别逻辑缺陷漏洞[8]。Song 等人通过URL 链接爬取的方式获取目标网站可访问链接,利用不同用户权限访问链接页面并解析网页响应的方式判断是否存在水平、垂直越权漏洞[9]。Ma 等人提出了一种新的权限控制漏洞检测方法,通过建立一种五层模型结合授权上下文信息,检测目标系统是否存在权限控制漏洞[10]。
虽然目前对于越权检测的方法种类繁多,但在真实业务场景中却存在以下问题。首先,通过源代码审计的方法成本极高,需要比较强能力的安全知识人员耗费大量时间进行检测。同时,因为迭代周期短暂,产品代码量庞大的问题,安全专家也很难兼顾到Web 应用中的所有漏洞点。其次,目前的自动化
水平越权检测工具以及方法往往存在误报问题,给检测结果的校验增大了成本。针对这个问题,本文提出了以下解决办法:水平越权的产生场景大部分在类似于历史订单查询、投诉与建议、消息推送、订单支付、个人信息等页面,而无用户直接数据交互的页面则不会产生越权行为。因此识别越权页面是否为越权场景页面,能够大幅度提升水平越权检测准确率,降低人工复核的工作成本。目前人工智能与网络安全已经有着很多结合应用[11-13],利用深度学习技术
DOI:10.19850/jki.2096-4706.2020.23.042
第23期现代信息科技
1542020.12
可以实现对水平越权场景页面的识别。国网电动车业务系统中,水平越权漏洞占据总漏洞数量的70%,将深度学习越权场景页面的识别应用到自动化水平越权检测中,很好地解决了水平越权检测的误报问题,进而保证了水平越权漏洞的及时检测与修复。
1  基于LSMT-AutoEncoder 的水平越权检测
1.1  LSTM
长短时记忆网络(Long Short-Term Memory ,LSTM )由Hochreiter 等人提出[14],采用控制门的机制,LSTM 结构如图1所示,由多个单元共同组成,目前长短时记忆网络已被应用在较多领域。
f t O t
C t i t
C t
C t
C t -1h t
tanh
~X t h t -1X t h t -1
X t h t -1
X t h t -1
图1  LSTM 结构图
LSMT 结构图中,h t 为t 时刻网络的状态输出,X t 为t 时刻的输入向量。LSTM 模型的状态流程公式为:
首先是忘记阶段,会选择历史信息进行忘记,f t 为t 时刻忘记门的输出状态,σ为logistic sigmoid 函数,W f 代表权重矩阵,b c 为偏置向量:
f t =δ(W f •(X t ,h t -1)+b c )f                    (1)
然后输入门进行状态更新,i t 为t 时刻输入门的输出状态,b i 为偏置向量, 为tanh 创建的一个新的候选值向量,W c 为权重矩阵,C t 为t 时刻的记忆单元状态:
i t =δ(W i •(X t ,h t -1)+b i )                (2)
=tanh (W c •(X t ,h t -1)+b c )              (3)
C t =i t •
+f t •C t -1                            (4)
最后由输出门输出当前状态的结果,o t 为输出门的输出状态,W o ,U o 为权重矩阵,b o 为偏置向量:
o t =σ(W o X t +U o h t -1+b o )                      (5)
h t =O t • tanh (C t )                            (6)
利用LSTM 对长序数据的处理能力,将越权场景网页响应数据进行训练处理,能够很好地保证越权场景数据的上下文有效性。
1.2  自编码器
自编码器(AutoEncoder )通常由编码器与解码器两部分组成。Hinton 等人为测试其玻尔兹曼机的学习算法,提
出了自动编码的雏形[15]。首先,输入网页响应数据x ,编码阶段通过映射函数f :h =f (x ),将输入的响应数据编码到隐藏层h ,解码阶段通过解码阶段的映射函数g :x ’=g (h 将隐藏层的h 解码为新的网页响应数据。编码器的重建误差为:
-( )(
)                            (7)通过尝试利用自编码器,将转换为文本向量的网页响应
数据转换为新的响应文本向量,通过对比原始文本向量与新生成文本向量之间的差异,判断网页响应数据的类别。
1.3  LSTM-AutoEncoder
LSTM-AutoEncoder 由Srivastava 等首次提出,用以学习视频序列的表示[16]。目前LSTM-AutoEncoder 广泛用于极端时间预测以及文本序列异常检测问题。水平越权场景页面的网页响应为文本序列,其中越权相关场景页面可以认为是正
常页面,非越权相关页面可以认为是异常页面,以此为设计思想进行建模,能够实现越权场景页面的检测。
LSTM-AutoEncoder 模型的评估指标采用均方误差(Mean Squared Error ,MSE ),平均绝对误差(Mean Absolute Error ,
MAE ),以及机器学习常用评估指标:精确率(Precision )、
准确率(Accuracy )、召回率(Recall )、F 1分数(F 1-Score )。MAE 、MSE 的计算公式如下,其中X prediction 为每次预测值,X real 为真实值,N 为总次数,t 、i 为当前次数:
MSE =(X prediction ,t -X real ,t )2            (8)MAE =
(X prediction ,i -X real ,i )            (9)
精确率、准确率、召回率、F 1分数的计算公式如下,其中TP 为真正例,FP 为假正例,TN 为真反例,FN 为假反例:
Precision =+
(10)Recall =+                              (11)
Accuracy =++
++
(12)F 1-Score =2•
+•                  (13)
LSTM-AutoEncoder 模型的输入为向量化的水平越权场景页面文本,使用Keras 框架的Tokenizer 模块进行文本预处理。首先构建Tokenizer 实例对象,通过filters 参数传入停用符,并设置最大保留词组为20 000。然后利用训练数据进行拟合,获取能够将文本转换为序列的数据集文本字典,当新数据需要
进行预测时,可以使用该字典进行转换。最后将转换后的文本序列变形为LSTM 层输入所需要的三维数组,作为训练数据输入模型。
图2展示了LSTM-AutoEncoder 的架构代码,编码器与解码器分别由两个LSTM 单元组成,使用RepeatVector 层改变数据维数,使用TimeDistributed 层与Dense 层结合处理数据解码维度多对多情况。
第23期
155
2020.12
Inputs = in-put(shape=(train_data.shape[1]),train_data.shape[2])# ENCODER
L 1=LSTM(64, activations=relu)(inputs)L 2=RepeatVector(train_data.shape[1])(L 1)# DECODER
L 3=LSTM(64, activations=relu, re-turn_sequences=True)(L 2)Out-puts=TimeDistributed(Dense(train_data.shape[2]))(L 3)
LSTM-AE=Model(inputs=inputs, outputs=outputs)
图2  LSTM-AutoEncoder 代码架构图
1.4  基于LSTM-AutoEncoder 的水平越权检测
在Web 应用程序中,水平越权发生在相同权限的用户中。其主要特征为相同权限用户可以通过在本用户权限下修改参数等伪造其他用户的行为,能够查看、利用其他用户的数据。目前大部分Web 站点使用Cookie 、Token 等认证方式,自动化的水平越权检测可以实现配置Cookie 后通过交叉访问不同用户的页面,再通过页面相似度对比的方式,检测是否存在越权行为。具体检测方式如图3所示。
输入Web 站点
开始
结束
输出水平越权结果
A 用户Cookie
A 用户页面
页面去重
爬虫爬取A 用户
页面集合
爬虫爬取B 用户
页面集合
B 用户页面
B 用户Cookie
相互请求
相似度比对
输出水平越权检测结果
是否为越权场景页面?
越权页面的网页响应
LSTM-AutoEncoder 模型
自动化检测输出水平越权结果误报
图3  基于LSMT-AutoEncoder 水平越权检测流程图基于LSTM-AutoEncoder 的水平越权检测流程详细说明为:
第一步,利用A 用户的Cookie 与B 用户的Cookie 分别访问目标Web 站点。使用爬虫技术,通过携带用户Cookie 的方式,自动化的爬取目标的页面链接及网页响应,构建A 、B 用户的响应页面集合。
第二步,根据URL 链接、页面响应进行A 、B 用户的页面去重。页面去重主要去除访问中的网页静态页面、网页共享页面等同权限下A 、B 用户都可以访问的页面。通过对比A 、B 用户的URL 链接、请求体相似度以及网页相似度,将相同URL 链接且页面相似度、请求体相似度为100%的页面认定为重复页面。通过上述方法,获取A 、B 用户的去重页面集合。
第三步,利用A 、B 用户的去重页面集合进行相互请求。首先利用A 用户的Cookie 去请求B 用户页面集合中的URL 链接,同时将URL 中的参数替换为B 用户的请求参数,得到A 用户请求B 用户的页面响应。将相同链接下A 用户的页面响应与B 用户的页面响应进行相似度比对,当相似度大于设定的阈值(实际测试过程中根据多次测试结果该阈值设定为98.4%),即认为该链接存在越权行为。同理,利用B 用户的Cookie 去请求A 用户的URL 链接,得到另一组越权链接。两组链接去重后的链接集合即为初步判断存在越权漏洞的链接集合。
在自动化水平越权检测过程中,因网页中常常存在大量噪声数据(如UUID 、时间戳等由JS 动态生成的数据),这类网站在进行A 、B 页面去重时,因噪声数据导致的相似度小于100%而未被去重,以至于在第三步进行相互请求时的检测中,该类页面因A 、B 用户请求后响应页面相似度高于阈值导致水平越权检测结果误报。水平越权漏洞只发生在水平越权场景页面中,因此通过构造深度学习模型检测结果页面是否为越权场景页面能够解决水平越权误报问题。第四步,将水平越权的检测结果中的响应页面数据进行数据预处理后,经过LSTM-AutoEncoder 模型进行越权场景页面检测。当模型判定页面类型为越权场景页,认定该页面为存在水平越权漏洞,否则认为第三步判定的水平越权链接
不属于水平越权场景页面,存在误报。
2  实验结果及分析
2.1  实验数据和实验环境
LSTM-AutoEncoder 属于无监督模型单分类模型,因此在模型训练阶段只需要收集越权场景页面。Web 应用网站中无业务数据交互的页面数量远远大于存在用户业务数据交互的页面数量,因此在模型测试阶段,用于测试模型性能的非越权场景页面随机取自训练集网站中无业务交互的网站页面。为贴合真实业务场景,本文收集的实验数据来自互联网论坛类、电商类大量的Web 应用网站,包含个人信息、订单支付、查询、发票、投诉建议等类型的越权场景页面。首先通过电商索引网站、论坛索引网站查对应类型网站目录并进行链接爬取。然后进行网站注册并结合selenium 自动化测试工具设置的脚本获取注册后经过浏览器渲染的越权场景页面网页响应,其中对于越权场景页面的识别标注由安全服务人员进行,数据收集过程共消耗60人天。将收集好的网
李帅华,等:基于LSTM-AutoEncoder 的水平越权漏洞检测
第23期现代信息科技
1562020.12
页响应使用jieba 进行分词,考虑到现有的主流Web 开发框架如React 、Vue 等利用JavaScript 动态生成的网页源代码中,英文字符标签往往是随机生成的且包含数据特征极少,因此分词时舍弃英文数据,
并根据中文停用词表以及地名信息表去除停用词。经清洗后共收集用于模型训练的越权场景页面数据12 000条,测试模型性能的非越权场景页面数据1 200条,利用Scikit-learn 框架中的数据切割函数train_test_split 将数据按照0.8:0.1:0.1的比例切分为训练集、测试集和验证集,通过Keras 模块的pad_sequence 函数将每个样本数据的序列长度统一至1 000。数据集统计信息如表1所示。
表1  数据集统计信息
数据类型(个数)训练集测试集验证集统计越权场景页面9 6001 2001 20012 000非越权场景页面
1 200
1 200
由于网页响应文本过长,表2列举了训练集中部分数据集样例的前15个文本。
表2  训练集数据集样例
序号示例
1连接海报二维码登录使用微博帐号访问海报帐号密码验证码一换动态提示保障必须
2截取客户端精彩下载观看视频首页频道专题活动提醒主页账号设置推荐
3租车全球租车首页租车门店活动租车登录注册你好订单资产账户退出
4输入手机号回用户名首页会员登录服务回用户名手机号码验证码现在可以使用
5免费注册完善信息遇到登录问题拨打客服热线用户名字母数字密码确认公司
6用户登录极速漫画首页更新排行搜索看过清除记录登录同步阅读点击
7账户个人中心首页互动首页话题问答中心指数市场市场数据公告主页
8
商家中心返回首页欢迎来到设置菜单发布开通店铺设置个人资料账户名称联系人
实验过程与图3给出的检测流程图相同。首先利用自动化水平越权检测对目标Web 站点进行水平越权检测,然后将判断为越权的检测结果所对应目标链接的网页响应输入至LSTM-AutoEncoder 模型,进行越权场景页面的检测。如果LSTM-AutoEncoder 模型输出为是,则链接所对应的网页为越权场景页面,判定该链接存在为水平越权;如果检测结果为否,说明该链接不是越权场景页面,则越权结果为误报。
实验的环境如下:LSTM-AutoEncoder 模型使用Python 3.6作为开发语言,利用Keras==2.1.2作为高层封装框架,tensorflow-gpu==1.10.0作为深度学习框架,在CPU 为Intel i 7-7700K 、GPU 为NVIDIA 2080 Ti 的Windows 机器进行模型训练。
2.2  实验方法
对于如何利用LSTM-AtuoEncoder 模型进行水平越权场景页面的判断使用了以下方法:
首先,使用MSE 和MSE 分别作为损失函数,进行模型
训练。经过不断调整单元units 大小、批次batchsize 、激活函数与轮次Epoch 后,得到units =64、batchsize =32、激活函数为ReLU 、Epoch 为50的最佳模型,图4、图5分别为MSE 与MAE 作为损失函数的最佳模型LOSS 下降图
其次,分别用MSE 与MAE 最佳模型对原训练集进行预测,利用MSE 与MAE 的计算公式(式(8)、式(9))得到获取预测值与原值的MSE 、MAE 分布区间,通过分布区间确定还原误差的阈值。MSE 与MAE 的分布区间如图6、7所示,MSE 的阈值为1.75,MAE 的阈值为0.65。
0              10            20            30            40            50
1.00.80.60.40.2
均方误差
轮次(次)
train
test
图4  模型均方误差损失下降图
train
test
0.170.160.150.140.130.120.11
0              10            20            30            40            50
轮次(次)
均方误差
图5  模型平均绝对误差损失下降图
0              1              2              3              4              5
均方误差
800
600
400
200
数量(个)
图6  均方误差分布图
第23期
157
2020.12
0.0      0.2      0.4      0.6      0.8      1.0      1.2      1.4
平均绝对误差
7006005004003002001000
数量(个)
图7  平均绝对误差分布图
最后,计算验证集、负样本的MSE 、MAE 分布,两种情况下的重建数据散点分布图如图8、图9所示。
0          100          200        300        400          500        600
索引
300250200150100500
重建平均绝对误差
Error
True
图8  平均绝对误差重建数据散点图
5432
10
重建均方误差
1e 6
0          100          200        300        400          500        600
索引Error True 图9  均方误差重建数据散点图
并根据阈值可以计算模型在MSE 、MAE 情况下的TP 、TN 、FP 、FN 值。设阈值为k ,test 为测试数据,error 为错
误数据,sum 为数据求和,计算方法如下:
TP =sum (test <k )                      (14)TN =sum (error >k )                    (15)FP =sum (error <k )                    (16)FN =sum (test >k )                      (17)
ROC 曲线通常用于评价一个分类器的好坏,其横坐标为TPR ,纵坐标为FPR ,分别表示分类器将正例分对的概率以及将负例分错的概率。其中AUC 代表ROC 曲线下的面积,AUC 越接近于1表示预测的价值越高。通过TP 、TN 、FP 、FN 值可以得出图像的Precision 曲线,如图10、图11所示,以及ROC 曲线,如图12、图13所示。
0.0            0.2            0.4            0.6            0.8            1.0
召回率
1.00.90.80.70.6
精度
图10  均方误差精度-召回率曲线图
0.0            0.2            0.4            0.6            0.8            1.0
召回率
1.00.90.80.70.6
精度
图11  平均绝对误差精度-召回率曲线图
0.0            0.2            0.4            0.6            0.8            1.0
假正例率
1.00.80.60.40.20.0
真正例率
图12  平均绝对误差受试者特征曲线图
李帅华,等:基于LSTM-AutoEncoder 的水平越权漏洞检测

本文发布于:2024-09-25 12:26:33,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/363049.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:页面   数据   检测   水平   场景   进行   模型   响应
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议