星于Ml器学习伺趣取漏洞艦测方法■文/国网电动汽车服务有限公司李帅华孙庆贺赵明宇
摘要:为解决Web,App应用越权逻辑漏洞造成的信息泄露、财产损失等问题,可以采用基于Isolation Forest、XGBoostfExtreme Gradient Boosting)x余弦相似度相结合方法实现越权逻辑漏洞检测。本文针对漏洞应用响应内容相似度相同的问题,提出了一种新的解决方法。该方法通过获取A、B两个用户对某页面的响应内容并采用Isolation Forest x XGBoost算法相结合的方式判断漏洞的具体场景,最后使用余弦相似度算法判断响应内容相似度,以检测应用存在的越权逻辑漏洞,提高了企业内部Web、App应用的安全性。通过对企业内部相关应用进行实例测试分析,验证了该方法的有效性。
关键字:Isolation Forest XGBoost余弦相似度辑漏洞
1引言
随着社会经济和互联网的快速发展及"互联网+"概念的提出,车联网全面提速发展,车联网行业网络业务不断扩大,Web、App应用在成为支撑车联网业务重要方式的同时,其应用安全问题也与日俱增。Web、App应用已经成为被攻击的的主要目标,由此引发的各种安全问题值得我们重视。在众多攻击漏洞中,业务越权逻辑漏洞攻击逐年增长,给互联网厂商和使用者带来巨大经济损失。
目前针对Web和App应用的业务越权逻辑漏洞研究主要集中在人工检测、半自动化越权逻辑漏洞检测工具
、黑盒测试等方面。主要研究如何使用基于传统的拦截数据包,提取URL中的关键参数进行替换,再次发送请求,判断是否存在漏洞。业务逻辑漏洞产生的相关原因主要包括个人信息未经合法性校验、绕过相对简单、未限制登录失败次数、相关有价值参数随意修改。这种业务越权逻辑漏洞检测没有很好的自动化工具,一般使用人工测试、黑盒测试、白盒测试等相关方法。由于黑盒、白盒测试效果不理想,安全人员经常使用人工测试,对传统手动替换多账户间多身份参数的检测方法进行改进,优化为采用爬虫技术爬取数据后替换多账户请求中head标签下的cookie 参数,然后针对请求返回内容进行比对,进而发现是否存在越权漏洞。但这些方法存在识别效率低、性能差、误报多、辨识率低、部分场景不支持等问题。
本文以车联网企业Web和App应用的业务越权逻辑漏洞为研究对象开展越权漏洞检测研究,提出基于机器学习的越权场景识别和相似度对比的方法。通过获取不同用户对同一操作的响应数据识别响应内容是否为越权场景,并进一步识别具体的越权漏洞场景,如修改密码、订单信息、积分信息、个人信息等,最后根据识别出的具体越权漏洞场景做文本相似度计算,并分析计算结果,完成对车联网企业Web和App应用越权访问漏洞的全部测试。该方法通过三种机器学习算法组合模型,建立车联网企业Web和App应用越权漏洞检测模型,用于内部应用的安全检测,可及时发现企业内部应用的安全隐患,极大提高
企业内部应用的安全性。选择车联网企业Web和App应用进行实验,验证了方法的有效性。
2相关方法
本文提出了使用机器学习相关算法检测越权逻辑漏洞的方法,主要使用了Isolation Forest算法、XGBoost算法与余弦相似度算法相结合实现越权逻辑漏洞检测,其主要算法说明如下。
2.1Isolation Forest算法
孤立森林(Isolation Forest)是一种高效异常检测算法,由周志华教授于2008年在第八届IEEE数据挖掘国际会议上提出,属于无监督算法。在包含越权场景的训练集中,对数据进行递归划分,直至iTree将每个样本数据与其他非趣权数据区分开来,用少量样本数据的特征条件即可检测出异常的非越权场景数据。
孤立森林(Isolation Forest)算法分为两个阶段:第一阶段需要训练出棵孤立树,组成孤立森林;第二阶段将每个样本点带入孤立森林中的每棵树,计算平均高度,最后计算出每个样本点分数,判断是否为异常值。
第一阶段:
Step1:X=(x lf x2>为给定的数据集,
G X,Xi=(Xii,Xi2,...,Xid),从X中随机抽取0个样本点构成的子集放入根节点;
Step2:从d个维度中随机指定一个维度q,在当前数据中随机产生一个切点P,切点p的计算公式如下所示:
min二q,旬e X)<p
<max(切J=q,x tj e X)(1) Step3:此切割点p生成了一个超平面,将当前数据空间划分为两个子空间:确定维度小于p的样本点放入左子节点;大于或等于p的放入右子节点;
Step4:递归Step2和Step3,直到所有叶子节点都只有一个样本点或者孤立树已经达到指定的高度;
Step5:循环Step1至Step4,直至生成t棵孤立树。
第二阶段:
对于每一个数据点刃,令其遍历每一棵孤立树,计算点也在森林中的平均高度怡(捡),对所有点的平均
高度做归一化处理。异常值分数计算公式如下所示:
E“(刃)
s(E0)=2心)⑵公式(2)中s(x,0表示记录兀在有卩个样本的训练数据构成孤立森林的异常得分,㈤)表示记录尤在每棵树的高度均值。其中
"2H((p_1)(p>2
c(<P)=1,(p=2⑶
、0,ot/i erwise
2.2XGBoost算法
XGBoost是2016年开发的Boosting库,具备线性规模求解器和树学习算法。XGBoost是Boosting算法的其中一种,Boosting算法的思想是将许多弱分类器集成在—起形成一个强分类器。XGBoost算法思想就是不断地添加树,不断地进行特征分裂来生长一棵树,每次添加一个树,其实是学习一个新函数,去拟合上次预测的残差。与传统的GBDT方法不同,为了提高训练速度、更好的拟合损失函数,XGBoost对损失函数做了二阶泰勒展开。为了防止模型过拟合,XGBoost在目标函数之外又加入了正则项,对整体目标函数求最优解,用于衡量目标函数的梯度下降和模型的复杂度。大致流程如下:
Stepl:X=((x i(y-j):i=1,2,3,.....m,Xj G R p,yj G R},其中m为样本个数,p为每个样本的特征数,如果给定
k(k=123,…,K)个树,看表示第Z个样本点的特征向量,fk是一个树,F是树的集合空间,算法模型可表示为:
刃驚仇(兀)fk^F(4)
Step2:目标函数定义如下:
V"——K
Obj=2J._1L(y”yd+2Jk x Q(仇}(5)
目标函数Obj由两项组成:第一项为损失函数,主要
作用是来判断模型预测值和真实值之间的损失,该函数必须是可微分的凸函数,式中%为真实值,力为预测值;第二项为正则化项,用来控制模型的复杂度,正则化项倾向于选择简单的模型,避免过拟合。正则化项的定义如下:
(/)=Y T+|X||co||2⑹正则化项中第一项yT通过叶子节点数及其系数控制树的复杂度,值越大则目标函数越大,从而抑制模型的复杂程度,7为叶子树惩罚系数,第二项为L2,正则项3用于控制叶子节点的权重分数,X为叶子权重惩罚系数。
Step3:XGBoost使用的是梯度提升策略,会保留原有模型,每次添加一个新树到模型中,假设第i个样本在第t次迭代的预测结果为%:几(竝)是新加入的树,可以得到以下推导过程:
y,=o
A(1)A(0)
yt=几3)=於+几3)
(2)A(1)
y<=fi(召)+f23)=y,+/2(Xi)
小)
Z_。2匕加1))
Il I—~
Jy(t-l)
2.3余弦相僦算法
(11)
(12)
余弦相似度是众多计算相似度算法中的一种算法,最常应用于文本相似度的计算。余弦相似度是通过计算两个向量的夹角的余弦值来度量它们之间的相似性。该算法将不同用户响应内容根据相关算法转化为向量,通过计算两个向量的空间夹角余弦来度量不同用户响应内容的相似值。余弦值越接近于1,表示两个向量的夹角越接近0度,即两个向量越相似,反之亦然。两个向量的余弦相似度计算公式如下:
cos(e丿=丄—=琅1營----
"AIII|B"库而7x尽両(13)余弦相似度通过计算两个向量夹角的余弦值来评估其相似度。与欧式距离相比,余弦相似度主要计算两个向量在方向上的差异。
A(0A(f-1)
Vi=x k=1fk(^')=Vi+(7) Step4:将公式⑺到结果代入(6)中可得到:
o切⑴=y n心“孙7+几(切)+心長)(8) Step5:泰勒公式是用函数某点的信息描述其附近取值的公式,如果函数曲线足够平滑,则可通过某一点的各阶导数值构建一个多项式来近似表示函数在该点邻域的值,此处只取泰勒展开式的两阶,定义如下:
f(x+Ax)=f(x)+f'(x)Ax+jf"(x)Ax2(9)将ft(xj看作即可对目标函数(8)进行泰勒展开:0泸三++卜用对]+。(几)(10)公式(10)中,6为损失函数的一阶梯度统计;力I为二阶梯度统计,分别如下:
2.4越权漏洞检
测建模预测分析滿呈
本文提出使用机器
学习相关算法检测越权
逻辑漏洞的方法主要分
为两个阶段,即训练阶
段和预测阶段。整体流
程如图1所示,其中训
练阶段主要包括训练数
据预处理、特征工程、
算法选择、模型参数调
优、训练模型和保存模
正则化项是如何缓解过拟合的型等过程。预测阶段包
括获取A、B两个用户
对同一接口请求的响应
数据、数据预处理、特
包戕姻斓洞场景数据I用户脯应姗用户陋应姗
!用用户晌量
XGBoost模型|Isolation Forest模型
1
XGBoost模型
具啊景
用户A®景用户嘶
计鼻余孩值
图4整体彌呈
征工程、孤立森林(Isolation Forest)模型预测、判断是否包含漏洞场景、XGBoos模型预测、余弦相似度计算和判断是否越权等过程。
3设计与实证分析
3.1数据描述与预处理
鉴于目前互联网上没有针对包含越权逻辑漏洞场景的样本数据集,且在未授权情况下私自对应用进行漏洞检测和数据收集涉嫌违法,所以通过授权某电动汽车服务有限去操、缺失值和异常值处理、向量化等。在实际工作中不同数据集会有不同特征,所以数据预处理也会有不同的方法。
1)数据清洗。在收集到的数据集中,有一些特殊字符、数字还有一些与业务无关的数据,以及词频特别高或特别低的词语,数据清洗就是删除这些数据。
2)特征选择。根据不同类别,数据特征也明显不同,为此我们制作了词云图用于查看各类别特征,分布情况如图3所示,根据词云中的词频分布可以进行特征选择。
公司Web、App应用的包含越权逻辑漏洞场景数据进行收集,其中场景类别修改密码、订单信息、个人信息、积分信息等为输出标签,其它数据基本信息为特征数据,收集到的数据信息以及场景详细如图2所示。=圭W甲K£
rl时间,…
!氮-«
:益优患脚
个人估息
至•会员『机号码:昵称飞
选旷'
刪瞬感J
£d™5••邮箱
公开V*个人说科.,::.JJ.,?,
各类别数据分布
500-]I lllllll
订单信息个人信息余额信息优惠券修改密码积分信息
图2各删训练数据劭布
:
&
■■•.
».
!?
復*
U;
由于各类别数据量不均衡,导致模型在预测时,结果更多偏向于数据量多的那一类,所以本文采用了SMO-TE(Synthetic Minority Oversampling Technique)技术对不均衡数据进行采样,SMO-TE是合成少数类过采样技术,基于随机过采样算法的一种改进方案,通过添加生成的少数类样本改变不平衡数据集的数据分布,使用线性插值的方法在两个少数类样本间合成新的样本,从而有效缓解了由随机过采样引起的过拟合问题。后续把数据集按照7:3划分训练集和测试集。
数据预处理是模型训练前的首要工作,包括数据清洗、
修A itsn
•J?;!::确认密码即
■>■•'富
:确认’新密码—陶
葺獰码新鞭蕊
:◎亟芬
图3各类别征分布
3)文本转向量。模型输入数据应该为向量形式,常用的方法有0ne-hot、N-Gram等,经过对比文本采用TF-IDF算法把数据集中文本数据转化为向量。
3.2模型评价标准
实验采用Precision K RecalK F1-score指标对模型结果进行评估及可视化展示。查准率(Precision)表示预测为正例的样本中有多少是真的正例,Precision越高,模型预测负面样本的能力就越好。查全率(Recall)表示样本中的正例有多少被预测为正例,Recall越高,模型对正样本的预测能力越强。准确率(Accuracy)表示在预测结果中,正确预测的数量/样本总数。为了评估不同算法的优缺点,评估指标添加了基于Precision和Recall的Fl­score的概念公式,对Precision和Recall进行综合评价,
F1-score 越高,表示模型越稳定。
3.3训融程与结果分析
越权逻辑漏洞模型训练及预测采用PC 配置3.70GHz
的 Intel  (R) Core  (TlM) i9-10900K 处理器,32GB  内存, 64位centos7操作系统,使用python3.6.3作为分析、训
练、预测的编程语言。
使用Isolation  Forest x  XGBoost 算法建模分析时,模
型算法会有很多参数,参数的初始化及选择对模型的最终 结果会有较大影响,因此训练时需要对算法中的若干参数
进行调优。对于Isolation  Forest 模型,本文主要从产生孤
立森林树的数量、子采样的数量、从总样本中抽取来训练 每棵树的属性的数量这三个参数进行调优;对于XGBoost  模型本文主要从最大树的深度、迭代次数、树上叶子节点
数、最小叶子节点权重这四个参数进行调优,本文使用网 格搜索方法对上述模型的参数进行自动寻优。同时为了提
高模型的泛化能力,模型在训练时采用5折交叉验证的方 式自动选择最优参数O
结合3.2节中模型评估指标以及通过网格搜索进行 参数寻优方法,综合评估上述Isolation  Forest 、XGBoost  模型的相关性能,从中选出最优模型。为便于查看各场
景的识别准确率,本文制作了针对不同算法测试结果的
precisionx  recalk  f1-score  情况。如下表所示。
表4 XGBoost 评估指标
表2决策树评估指标
表3 SVM 评估指标
表4 OneClass 评估指标
表 5 Isolation  Forest  评估指标
表6多分类各模型准确率情况
针对上述表中的评估指标情况,计算出不同模型的分 类准确率对比情况如表7、表8所示:
表7单分类各艷准确率情況
OneClass 0.47Isolation  Forest
0.98
表8各工具检测出漏洞情况
本文方法4漏洞详细信息见表9
Weblnspect 0本方法未检测出漏洞AppScan
2
本方法检测出2个漏洞
综合上述图表结果可以看出,Isolation  Forest 模型和 XGBoost 模型结合,预测能力最优,说明模型Isolation
Forest 和XGBoost 范化能力和预测能力最强,能够最大
程度地准并全包含越权逻辑漏洞场景的数据。
4踽
由于互联网上没有越权相关数据集,因此本文选择某
电动汽车服务有限公司内部Web 、App 应用进行实验。

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