李帥華 孫慶賀 趙明宇
摘 ?要:針對(duì)水平越權(quán)檢測(cè)過(guò)程中,因無(wú)法識(shí)別越權(quán)場(chǎng)景頁(yè)面帶來(lái)的檢測(cè)誤報(bào)問(wèn)題,提出了一種基于深度學(xué)習(xí)的LSTM-AutoEncoder無(wú)監(jiān)督預(yù)測(cè)模型。該模型利用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)構(gòu)建自動(dòng)編碼器,提取水平越權(quán)場(chǎng)景頁(yè)面響應(yīng)數(shù)據(jù)的文本特征并將其重建還原,統(tǒng)計(jì)還原結(jié)果與原始頁(yè)面響應(yīng)的誤差,并根據(jù)未知頁(yè)面的誤差閾值判斷水平越權(quán)的檢測(cè)結(jié)果是否為誤報(bào)。通過(guò)與One-Class SVM和AutoEncoder兩種算法的比較,在真實(shí)業(yè)務(wù)數(shù)據(jù)下進(jìn)行模型效果測(cè)試其有效性,為企業(yè)網(wǎng)絡(luò)業(yè)務(wù)安全提供了保障。
關(guān)鍵詞:LSTM-AutoEncoder模型;水平越權(quán);深度學(xué)習(xí);網(wǎng)絡(luò)安全;漏洞檢測(cè)
中圖分類(lèi)號(hào):TP393.08 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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 ones 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 datas 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 ?引 ?言
越權(quán)漏洞屬于業(yè)務(wù)邏輯漏洞中的一種,在目前的Web應(yīng)用中十分常見(jiàn)。水平越權(quán)是越權(quán)漏洞中的一種,它是指相同權(quán)限的用戶(hù)可以通過(guò)修改參數(shù)變量等方式查詢(xún)、修改、刪除、添加他人信息,以實(shí)現(xiàn)非法行為。當(dāng)黑客對(duì)越權(quán)漏洞進(jìn)行利用時(shí),由于其攻擊行為與正常用戶(hù)請(qǐng)求無(wú)異,且不包含敏感字符與特殊字符,很難被防御軟件監(jiān)控處理。因此,如何能夠?qū)λ皆綑?quán)漏洞進(jìn)行檢測(cè),及時(shí)修復(fù)缺陷漏洞以避免損失顯得尤為重要。
近年來(lái),在針對(duì)權(quán)限提升的防御控制方法上,已經(jīng)有很多研究工作開(kāi)展實(shí)施[1-5]。在企業(yè)實(shí)際業(yè)務(wù)生產(chǎn)過(guò)程中,不僅要增強(qiáng)代碼開(kāi)發(fā)人員的安全開(kāi)發(fā)意識(shí)和代碼規(guī)范,還需要對(duì)即將上線(xiàn)的Web應(yīng)用有著良好的安全檢測(cè)。對(duì)于特權(quán)提升漏洞的檢測(cè)有如下相關(guān)研究:Sun等人提出了利用靜態(tài)檢查的方法來(lái)檢測(cè)Web應(yīng)用中的邏輯漏洞,通過(guò)源碼構(gòu)建不同權(quán)限訪(fǎng)問(wèn)者的站點(diǎn)地圖,來(lái)判斷是否存在越權(quán)行為[6]。Monshizadeh等人提出了MACE工具,在大型代碼庫(kù)上檢測(cè)特權(quán)提升漏洞,發(fā)現(xiàn)了很多嚴(yán)重及未知的漏洞,取得了良好的效果[7]。Deepa等采用黑盒方法,通過(guò)對(duì)預(yù)期行為建模構(gòu)建有限狀態(tài)機(jī)的方式識(shí)別邏輯缺陷漏洞[8]。Song等人通過(guò)URL鏈接爬取的方式獲取目標(biāo)網(wǎng)站可訪(fǎng)問(wèn)鏈接,利用不同用戶(hù)權(quán)限訪(fǎng)問(wèn)鏈接頁(yè)面并解析網(wǎng)頁(yè)響應(yīng)的方式判斷是否存在水平、垂直越權(quán)漏洞[9]。Ma等人提出了一種新的權(quán)限控制漏洞檢測(cè)方法,通過(guò)建立一種五層模型結(jié)合授權(quán)上下文信息,檢測(cè)目標(biāo)系統(tǒng)是否存在權(quán)限控制漏洞[10]。
雖然目前對(duì)于越權(quán)檢測(cè)的方法種類(lèi)繁多,但在真實(shí)業(yè)務(wù)場(chǎng)景中卻存在以下問(wèn)題。首先,通過(guò)源代碼審計(jì)的方法成本極高,需要比較強(qiáng)能力的安全知識(shí)人員耗費(fèi)大量時(shí)間進(jìn)行檢測(cè)。同時(shí),因?yàn)榈芷诙虝?,產(chǎn)品代碼量龐大的問(wèn)題,安全專(zhuān)家也很難兼顧到Web應(yīng)用中的所有漏洞點(diǎn)。其次,目前的自動(dòng)化水平越權(quán)檢測(cè)工具以及方法往往存在誤報(bào)問(wèn)題,給檢測(cè)結(jié)果的校驗(yàn)增大了成本。針對(duì)這個(gè)問(wèn)題,本文提出了以下解決辦法:水平越權(quán)的產(chǎn)生場(chǎng)景大部分在類(lèi)似于歷史訂單查詢(xún)、投訴與建議、消息推送、訂單支付、個(gè)人信息等頁(yè)面,而無(wú)用戶(hù)直接數(shù)據(jù)交互的頁(yè)面則不會(huì)產(chǎn)生越權(quán)行為。因此識(shí)別越權(quán)頁(yè)面是否為越權(quán)場(chǎng)景頁(yè)面,能夠大幅度提升水平越權(quán)檢測(cè)準(zhǔn)確率,降低人工復(fù)核的工作成本。目前人工智能與網(wǎng)絡(luò)安全已經(jīng)有著很多結(jié)合應(yīng)用[11-13],利用深度學(xué)習(xí)技術(shù)可以實(shí)現(xiàn)對(duì)水平越權(quán)場(chǎng)景頁(yè)面的識(shí)別。國(guó)網(wǎng)電動(dòng)車(chē)業(yè)務(wù)系統(tǒng)中,水平越權(quán)漏洞占據(jù)總漏洞數(shù)量的70%,將深度學(xué)習(xí)越權(quán)場(chǎng)景頁(yè)面的識(shí)別應(yīng)用到自動(dòng)化水平越權(quán)檢測(cè)中,很好地解決了水平越權(quán)檢測(cè)的誤報(bào)問(wèn)題,進(jìn)而保證了水平越權(quán)漏洞的及時(shí)檢測(cè)與修復(fù)。
1 ?基于LSMT-AutoEncoder的水平越權(quán)檢測(cè)
1.1 ?LSTM
長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)由Hochreiter等人提出[14],采用控制門(mén)的機(jī)制,LSTM結(jié)構(gòu)如圖1所示,由多個(gè)單元共同組成,目前長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)已被應(yīng)用在較多領(lǐng)域。
LSMT結(jié)構(gòu)圖中,ht為t時(shí)刻網(wǎng)絡(luò)的狀態(tài)輸出,Xt為t時(shí)刻的輸入向量。LSTM模型的狀態(tài)流程公式為:
首先是忘記階段,會(huì)選擇歷史信息進(jìn)行忘記,ft為t時(shí)刻忘記門(mén)的輸出狀態(tài),σ為logistic sigmoid函數(shù),Wf代表權(quán)重矩陣,bc為偏置向量:
ft=δ(Wf ·(Xt,ht-1)+bc)f ? ? ? ? ? ? ? ? ? ?(1)
然后輸入門(mén)進(jìn)行狀態(tài)更新,it為t時(shí)刻輸入門(mén)的輸出狀態(tài),bi為偏置向量, 為tanh創(chuàng)建的一個(gè)新的候選值向量,Wc為權(quán)重矩陣,Ct為t時(shí)刻的記憶單元狀態(tài):
it=δ(Wi·(Xt,ht-1)+bi) ? ? ? ? ? ? ? ? (2)
=tanh(Wc ·(Xt,ht-1)+bc) ? ? ? ? ? ? ?(3)
Ct=it ·+ft·Ct-1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4)
最后由輸出門(mén)輸出當(dāng)前狀態(tài)的結(jié)果,ot為輸出門(mén)的輸出狀態(tài),Wo,Uo為權(quán)重矩陣,bo為偏置向量:
ot=σ(Wo Xt+Uoht-1+bo) ? ? ? ? ? ? ? ? ? ? ? (5)
ht=Ot · tanh(Ct) ? ? ? ? ? ? ? ? ? ? ? ? ? ?(6)
利用LSTM對(duì)長(zhǎng)序數(shù)據(jù)的處理能力,將越權(quán)場(chǎng)景網(wǎng)頁(yè)響應(yīng)數(shù)據(jù)進(jìn)行訓(xùn)練處理,能夠很好地保證越權(quán)場(chǎng)景數(shù)據(jù)的上下文有效性。
1.2 ?自編碼器
自編碼器(AutoEncoder)通常由編碼器與解碼器兩部分組成。Hinton等人為測(cè)試其玻爾茲曼機(jī)的學(xué)習(xí)算法,提出了自動(dòng)編碼的雛形[15]。首先,輸入網(wǎng)頁(yè)響應(yīng)數(shù)據(jù)x,編碼階段通過(guò)映射函數(shù)f:h=f(x),將輸入的響應(yīng)數(shù)據(jù)編碼到隱藏層h,解碼階段通過(guò)解碼階段的映射函數(shù)g:x=g(h將隱藏層的h解碼為新的網(wǎng)頁(yè)響應(yīng)數(shù)據(jù)。編碼器的重建誤差為:
(7)
通過(guò)嘗試?yán)米跃幋a器,將轉(zhuǎn)換為文本向量的網(wǎng)頁(yè)響應(yīng)數(shù)據(jù)轉(zhuǎn)換為新的響應(yīng)文本向量,通過(guò)對(duì)比原始文本向量與新生成文本向量之間的差異,判斷網(wǎng)頁(yè)響應(yīng)數(shù)據(jù)的類(lèi)別。
1.3 ?LSTM-AutoEncoder
LSTM-AutoEncoder由Srivastava等首次提出,用以學(xué)習(xí)視頻序列的表示[16]。目前LSTM-AutoEncoder廣泛用于極端時(shí)間預(yù)測(cè)以及文本序列異常檢測(cè)問(wèn)題。水平越權(quán)場(chǎng)景頁(yè)面的網(wǎng)頁(yè)響應(yīng)為文本序列,其中越權(quán)相關(guān)場(chǎng)景頁(yè)面可以認(rèn)為是正常頁(yè)面,非越權(quán)相關(guān)頁(yè)面可以認(rèn)為是異常頁(yè)面,以此為設(shè)計(jì)思想進(jìn)行建模,能夠?qū)崿F(xiàn)越權(quán)場(chǎng)景頁(yè)面的檢測(cè)。
LSTM-AutoEncoder模型的評(píng)估指標(biāo)采用均方誤差(Mean Squared Error,MSE),平均絕對(duì)誤差(Mean Absolute Error,MAE),以及機(jī)器學(xué)習(xí)常用評(píng)估指標(biāo):精確率(Precision)、準(zhǔn)確率(Accuracy)、召回率(Recall)、F1分?jǐn)?shù)(F1-Score)。MAE、MSE的計(jì)算公式如下,其中Xprediction為每次預(yù)測(cè)值,Xreal為真實(shí)值,N為總次數(shù),t、i為當(dāng)前次數(shù):
MSE=(Xprediction,t-Xreal,t)2 ? ? ? ? ? ? (8)
MAE=(Xprediction,i-Xreal,i) ? ? ? ? ? ? (9)
精確率、準(zhǔn)確率、召回率、F1分?jǐn)?shù)的計(jì)算公式如下,其中TP為真正例,F(xiàn)P為假正例,TN為真反例,F(xiàn)N為假反例:
Precision= ? ? ? ? ? ? ? ? ? ? ? ? ? (10)
Recall= ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(11)
Accuracy= ? ? ? ? ? ? ? ? ? (12)
F1-Score=2· ? ? ? ? ? ? ? ? ? (13)
LSTM-AutoEncoder模型的輸入為向量化的水平越權(quán)場(chǎng)景頁(yè)面文本,使用Keras框架的Tokenizer模塊進(jìn)行文本預(yù)處理。首先構(gòu)建Tokenizer實(shí)例對(duì)象,通過(guò)filters參數(shù)傳入停用符,并設(shè)置最大保留詞組為20 000。然后利用訓(xùn)練數(shù)據(jù)進(jìn)行擬合,獲取能夠?qū)⑽谋巨D(zhuǎn)換為序列的數(shù)據(jù)集文本字典,當(dāng)新數(shù)據(jù)需要進(jìn)行預(yù)測(cè)時(shí),可以使用該字典進(jìn)行轉(zhuǎn)換。最后將轉(zhuǎn)換后的文本序列變形為L(zhǎng)STM層輸入所需要的三維數(shù)組,作為訓(xùn)練數(shù)據(jù)輸入模型。
圖2展示了LSTM-AutoEncoder的架構(gòu)代碼,編碼器與解碼器分別由兩個(gè)LSTM單元組成,使用RepeatVector層改變數(shù)據(jù)維數(shù),使用TimeDistributed層與Dense層結(jié)合處理數(shù)據(jù)解碼維度多對(duì)多情況。
1.4 ?基于LSTM-AutoEncoder的水平越權(quán)檢測(cè)
在Web應(yīng)用程序中,水平越權(quán)發(fā)生在相同權(quán)限的用戶(hù)中。其主要特征為相同權(quán)限用戶(hù)可以通過(guò)在本用戶(hù)權(quán)限下修改參數(shù)等偽造其他用戶(hù)的行為,能夠查看、利用其他用戶(hù)的數(shù)據(jù)。目前大部分Web站點(diǎn)使用Cookie、Token等認(rèn)證方式,自動(dòng)化的水平越權(quán)檢測(cè)可以實(shí)現(xiàn)配置Cookie后通過(guò)交叉訪(fǎng)問(wèn)不同用戶(hù)的頁(yè)面,再通過(guò)頁(yè)面相似度對(duì)比的方式,檢測(cè)是否存在越權(quán)行為。具體檢測(cè)方式如圖3所示。
基于LSTM-AutoEncoder的水平越權(quán)檢測(cè)流程詳細(xì)說(shuō)明為:
第一步,利用A用戶(hù)的Cookie與B用戶(hù)的Cookie分別訪(fǎng)問(wèn)目標(biāo)Web站點(diǎn)。使用爬蟲(chóng)技術(shù),通過(guò)攜帶用戶(hù)Cookie的方式,自動(dòng)化的爬取目標(biāo)的頁(yè)面鏈接及網(wǎng)頁(yè)響應(yīng),構(gòu)建A、B用戶(hù)的響應(yīng)頁(yè)面集合。
第二步,根據(jù)URL鏈接、頁(yè)面響應(yīng)進(jìn)行A、B用戶(hù)的頁(yè)面去重。頁(yè)面去重主要去除訪(fǎng)問(wèn)中的網(wǎng)頁(yè)靜態(tài)頁(yè)面、網(wǎng)頁(yè)共享頁(yè)面等同權(quán)限下A、B用戶(hù)都可以訪(fǎng)問(wèn)的頁(yè)面。通過(guò)對(duì)比A、B用戶(hù)的URL鏈接、請(qǐng)求體相似度以及網(wǎng)頁(yè)相似度,將相同URL鏈接且頁(yè)面相似度、請(qǐng)求體相似度為100%的頁(yè)面認(rèn)定為重復(fù)頁(yè)面。通過(guò)上述方法,獲取A、B用戶(hù)的去重頁(yè)面集合。
第三步,利用A、B用戶(hù)的去重頁(yè)面集合進(jìn)行相互請(qǐng)求。首先利用A用戶(hù)的Cookie去請(qǐng)求B用戶(hù)頁(yè)面集合中的URL鏈接,同時(shí)將URL中的參數(shù)替換為B用戶(hù)的請(qǐng)求參數(shù),得到A用戶(hù)請(qǐng)求B用戶(hù)的頁(yè)面響應(yīng)。將相同鏈接下A用戶(hù)的頁(yè)面響應(yīng)與B用戶(hù)的頁(yè)面響應(yīng)進(jìn)行相似度比對(duì),當(dāng)相似度大于設(shè)定的閾值(實(shí)際測(cè)試過(guò)程中根據(jù)多次測(cè)試結(jié)果該閾值設(shè)定為98.4%),即認(rèn)為該鏈接存在越權(quán)行為。同理,利用B用戶(hù)的Cookie去請(qǐng)求A用戶(hù)的URL鏈接,得到另一組越權(quán)鏈接。兩組鏈接去重后的鏈接集合即為初步判斷存在越權(quán)漏洞的鏈接集合。
在自動(dòng)化水平越權(quán)檢測(cè)過(guò)程中,因網(wǎng)頁(yè)中常常存在大量噪聲數(shù)據(jù)(如UUID、時(shí)間戳等由JS動(dòng)態(tài)生成的數(shù)據(jù)),這類(lèi)網(wǎng)站在進(jìn)行A、B頁(yè)面去重時(shí),因噪聲數(shù)據(jù)導(dǎo)致的相似度小于100%而未被去重,以至于在第三步進(jìn)行相互請(qǐng)求時(shí)的檢測(cè)中,該類(lèi)頁(yè)面因A、B用戶(hù)請(qǐng)求后響應(yīng)頁(yè)面相似度高于閾值導(dǎo)致水平越權(quán)檢測(cè)結(jié)果誤報(bào)。水平越權(quán)漏洞只發(fā)生在水平越權(quán)場(chǎng)景頁(yè)面中,因此通過(guò)構(gòu)造深度學(xué)習(xí)模型檢測(cè)結(jié)果頁(yè)面是否為越權(quán)場(chǎng)景頁(yè)面能夠解決水平越權(quán)誤報(bào)問(wèn)題。
第四步,將水平越權(quán)的檢測(cè)結(jié)果中的響應(yīng)頁(yè)面數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理后,經(jīng)過(guò)LSTM-AutoEncoder模型進(jìn)行越權(quán)場(chǎng)景頁(yè)面檢測(cè)。當(dāng)模型判定頁(yè)面類(lèi)型為越權(quán)場(chǎng)景頁(yè),認(rèn)定該頁(yè)面為存在水平越權(quán)漏洞,否則認(rèn)為第三步判定的水平越權(quán)鏈接不屬于水平越權(quán)場(chǎng)景頁(yè)面,存在誤報(bào)。
2 ?實(shí)驗(yàn)結(jié)果及分析
2.1 ?實(shí)驗(yàn)數(shù)據(jù)和實(shí)驗(yàn)環(huán)境
LSTM-AutoEncoder屬于無(wú)監(jiān)督模型單分類(lèi)模型,因此在模型訓(xùn)練階段只需要收集越權(quán)場(chǎng)景頁(yè)面。Web應(yīng)用網(wǎng)站中無(wú)業(yè)務(wù)數(shù)據(jù)交互的頁(yè)面數(shù)量遠(yuǎn)遠(yuǎn)大于存在用戶(hù)業(yè)務(wù)數(shù)據(jù)交互的頁(yè)面數(shù)量,因此在模型測(cè)試階段,用于測(cè)試模型性能的非越權(quán)場(chǎng)景頁(yè)面隨機(jī)取自訓(xùn)練集網(wǎng)站中無(wú)業(yè)務(wù)交互的網(wǎng)站頁(yè)面。為貼合真實(shí)業(yè)務(wù)場(chǎng)景,本文收集的實(shí)驗(yàn)數(shù)據(jù)來(lái)自互聯(lián)網(wǎng)論壇類(lèi)、電商類(lèi)大量的Web應(yīng)用網(wǎng)站,包含個(gè)人信息、訂單支付、查詢(xún)、發(fā)票、投訴建議等類(lèi)型的越權(quán)場(chǎng)景頁(yè)面。首先通過(guò)電商索引網(wǎng)站、論壇索引網(wǎng)站查找對(duì)應(yīng)類(lèi)型網(wǎng)站目錄并進(jìn)行鏈接爬取。然后進(jìn)行網(wǎng)站注冊(cè)并結(jié)合selenium自動(dòng)化測(cè)試工具設(shè)置的腳本獲取注冊(cè)后經(jīng)過(guò)瀏覽器渲染的越權(quán)場(chǎng)景頁(yè)面網(wǎng)頁(yè)響應(yīng),其中對(duì)于越權(quán)場(chǎng)景頁(yè)面的識(shí)別標(biāo)注由安全服務(wù)人員進(jìn)行,數(shù)據(jù)收集過(guò)程共消耗60人天。將收集好的網(wǎng)頁(yè)響應(yīng)使用jieba進(jìn)行分詞,考慮到現(xiàn)有的主流Web開(kāi)發(fā)框架如React、Vue等利用JavaScript動(dòng)態(tài)生成的網(wǎng)頁(yè)源代碼中,英文字符標(biāo)簽往往是隨機(jī)生成的且包含數(shù)據(jù)特征極少,因此分詞時(shí)舍棄英文數(shù)據(jù),并根據(jù)中文停用詞表以及地名信息表去除停用詞。經(jīng)清洗后共收集用于模型訓(xùn)練的越權(quán)場(chǎng)景頁(yè)面數(shù)據(jù)12 000條,測(cè)試模型性能的非越權(quán)場(chǎng)景頁(yè)面數(shù)據(jù)1 200條,利用Scikit-learn框架中的數(shù)據(jù)切割函數(shù)train_test_split將數(shù)據(jù)按照0.8:0.1:0.1的比例切分為訓(xùn)練集、測(cè)試集和驗(yàn)證集,通過(guò)Keras模塊的pad_sequence函數(shù)將每個(gè)樣本數(shù)據(jù)的序列長(zhǎng)度統(tǒng)一至1 000。數(shù)據(jù)集統(tǒng)計(jì)信息如表1所示。
由于網(wǎng)頁(yè)響應(yīng)文本過(guò)長(zhǎng),表2列舉了訓(xùn)練集中部分?jǐn)?shù)據(jù)集樣例的前15個(gè)文本。
實(shí)驗(yàn)過(guò)程與圖3給出的檢測(cè)流程圖相同。首先利用自動(dòng)化水平越權(quán)檢測(cè)對(duì)目標(biāo)Web站點(diǎn)進(jìn)行水平越權(quán)檢測(cè),然后將判斷為越權(quán)的檢測(cè)結(jié)果所對(duì)應(yīng)目標(biāo)鏈接的網(wǎng)頁(yè)響應(yīng)輸入至LSTM-AutoEncoder模型,進(jìn)行越權(quán)場(chǎng)景頁(yè)面的檢測(cè)。如果LSTM-AutoEncoder模型輸出為是,則鏈接所對(duì)應(yīng)的網(wǎng)頁(yè)為越權(quán)場(chǎng)景頁(yè)面,判定該鏈接存在為水平越權(quán);如果檢測(cè)結(jié)果為否,說(shuō)明該鏈接不是越權(quán)場(chǎng)景頁(yè)面,則越權(quán)結(jié)果為誤報(bào)。
實(shí)驗(yàn)的環(huán)境如下:LSTM-AutoEncoder模型使用Python 3.6作為開(kāi)發(fā)語(yǔ)言,利用Keras==2.1.2作為高層封裝框架,tensorflow-gpu==1.10.0作為深度學(xué)習(xí)框架,在CPU為Intel i7-7700K、GPU為NVIDIA 2080 Ti的Windows機(jī)器進(jìn)行模型訓(xùn)練。
2.2 ?實(shí)驗(yàn)方法
對(duì)于如何利用LSTM-AtuoEncoder模型進(jìn)行水平越權(quán)場(chǎng)景頁(yè)面的判斷使用了以下方法:
首先,使用MSE和MSE分別作為損失函數(shù),進(jìn)行模型訓(xùn)練。經(jīng)過(guò)不斷調(diào)整單元units大小、批次batchsize、激活函數(shù)與輪次Epoch后,得到units=64、batchsize=32、激活函數(shù)為ReLU、Epoch為50的最佳模型,圖4、圖5分別為MSE與MAE作為損失函數(shù)的最佳模型LOSS下降圖
其次,分別用MSE與MAE最佳模型對(duì)原訓(xùn)練集進(jìn)行預(yù)測(cè),利用MSE與MAE的計(jì)算公式(式(8)、式(9))得到獲取預(yù)測(cè)值與原值的MSE、MAE分布區(qū)間,通過(guò)分布區(qū)間確定還原誤差的閾值。MSE與MAE的分布區(qū)間如圖6、7所示,MSE的閾值為1.75,MAE的閾值為0.65。
最后,計(jì)算驗(yàn)證集、負(fù)樣本的MSE、MAE分布,兩種情況下的重建數(shù)據(jù)散點(diǎn)分布圖如圖8、圖9所示。
并根據(jù)閾值可以計(jì)算模型在MSE、MAE情況下的TP、TN、FP、FN值。設(shè)閾值為k,test為測(cè)試數(shù)據(jù),error為錯(cuò)誤數(shù)據(jù),sum為數(shù)據(jù)求和,計(jì)算方法如下:
TP=sum(test TN=sum(error>k) ? ? ? ? ? ? ? ? ? ? (15) FP=sum(error FN=sum(test>k) ? ? ? ? ? ? ? ? ? ? ? (17) ROC曲線(xiàn)通常用于評(píng)價(jià)一個(gè)分類(lèi)器的好壞,其橫坐標(biāo)為T(mén)PR,縱坐標(biāo)為FPR,分別表示分類(lèi)器將正例分對(duì)的概率以及將負(fù)例分錯(cuò)的概率。其中AUC代表ROC曲線(xiàn)下的面積,AUC越接近于1表示預(yù)測(cè)的價(jià)值越高。通過(guò)TP、TN、FP、FN值可以得出圖像的Precision曲線(xiàn),如圖10、圖11所示,以及ROC曲線(xiàn),如圖12、圖13所示。 2.3 ?實(shí)驗(yàn)結(jié)果及結(jié)論 為了驗(yàn)證本文的有效性,以同樣數(shù)據(jù)預(yù)處理方法以及同樣的訓(xùn)練數(shù)據(jù)對(duì)One-class SVM模型和AutoEncoder模型進(jìn)行訓(xùn)練及對(duì)比。其中,One-class SVM模型使用Scikit-learn模塊中的預(yù)置模型及默認(rèn)參數(shù)進(jìn)行訓(xùn)練,AutoEncoder模型使用雙層全連接層作為編碼器與解碼器,units參數(shù)為32的架構(gòu)進(jìn)行訓(xùn)練,經(jīng)過(guò)訓(xùn)練后的三種模型對(duì)于驗(yàn)證集的對(duì)比結(jié)果如表3~表5所示。 通過(guò)實(shí)驗(yàn)結(jié)果可知,在One-Class模型中,模型的精確率Precision達(dá)到了極高的0.974,說(shuō)明One-class模型對(duì)于數(shù)據(jù)集中的越權(quán)場(chǎng)景頁(yè)面有著很高的識(shí)別率。但是模型的召回率只有0.473,說(shuō)明對(duì)于很多非越權(quán)場(chǎng)景網(wǎng)頁(yè),模型將其識(shí)別成了越權(quán)場(chǎng)景頁(yè)面。因此,在實(shí)際業(yè)務(wù)過(guò)程中,One-Class SVM模型不能解決水平越權(quán)的誤報(bào)問(wèn)題。 AutoEncoder模型在MAE以及MSE的情況下的召回率為0.988及0.994,說(shuō)明正確判為水平越權(quán)場(chǎng)景頁(yè)面的案例在全部水平越權(quán)樣本中占據(jù)一個(gè)很高的比例,然而其精確率相比于LSTM-AutoEncoder模型低了約3%,表明被模型預(yù)測(cè)為水平越權(quán)場(chǎng)景頁(yè)面中真正的越權(quán)場(chǎng)景頁(yè)面占比只有0.89%。因此相較于LSTM-AutoEncoder模型,AutoEncoder模型的整體性能偏弱。F1分?jǐn)?shù)往往表示精確率與召回率的調(diào)和平均,該指標(biāo)對(duì)于水平越權(quán)場(chǎng)景頁(yè)面的檢測(cè)業(yè)務(wù)需求相吻合。由表3可以看出,LSTM-AutoEncoder模型在MAE的情況下精確率、準(zhǔn)確率、召回率、F1分?jǐn)?shù)達(dá)到了一個(gè)較為均衡的指標(biāo),相較于MSE的情況下,其中F1分?jǐn)?shù)多了0.3%,準(zhǔn)確率多了0.2%,更符合真實(shí)的業(yè)務(wù)需求。因此以MAE作為損失函數(shù)訓(xùn)練的LSTM-AutoEncoder模型作為線(xiàn)上環(huán)境的檢測(cè)模型,實(shí)現(xiàn)對(duì)水平越權(quán)場(chǎng)景頁(yè)面的檢測(cè)。 根據(jù)LSTM網(wǎng)絡(luò)的特性,其對(duì)于有著上下文關(guān)系的網(wǎng)頁(yè)響應(yīng)文本序列的特征提取能力更強(qiáng),使得模型的綜合表現(xiàn)更加優(yōu)異。此外,實(shí)驗(yàn)中還曾試過(guò)多層LSTM編解碼器,但對(duì)于模型的準(zhǔn)確率只提升0.001%,甚至在四層網(wǎng)絡(luò)時(shí)出現(xiàn)了準(zhǔn)確率下降的現(xiàn)象,由此可見(jiàn)多層網(wǎng)絡(luò)未能給越權(quán)場(chǎng)景頁(yè)面的識(shí)別帶來(lái)更好的效果。在實(shí)際業(yè)務(wù)檢查場(chǎng)景中,模型的效率是檢測(cè)系統(tǒng)能夠快速運(yùn)行的關(guān)鍵,一味追求準(zhǔn)確率而舍棄性能參數(shù)是開(kāi)發(fā)過(guò)程中必須要避免的。在經(jīng)過(guò)預(yù)測(cè)模塊耗時(shí)測(cè)試,模型的預(yù)測(cè)時(shí)間為0.04 s,滿(mǎn)足大量調(diào)用模型預(yù)測(cè)的業(yè)務(wù)需求。權(quán)衡利弊后,選取如圖2簡(jiǎn)單的模型架構(gòu),能夠降低模型的復(fù)雜度,加速模型在應(yīng)用階段的預(yù)測(cè)時(shí)間,提升檢測(cè)軟件的性能。 由以上分析可以得出,LSTM-AutoEncoder模型在識(shí)別水平越權(quán)場(chǎng)景頁(yè)面中有著良好的效果。在國(guó)網(wǎng)電動(dòng)車(chē)內(nèi)部測(cè)試過(guò)程中,LSTM-AutoEncoder模型發(fā)現(xiàn)了11個(gè)水平越權(quán)檢測(cè)結(jié)果中的7個(gè)誤報(bào),后經(jīng)人工復(fù)核確認(rèn)有效。 3 ?結(jié) ?論 水平越權(quán)漏洞對(duì)公司及用戶(hù)的業(yè)務(wù)數(shù)據(jù)安全極為重要。本文利用Web應(yīng)用越權(quán)場(chǎng)景樣本數(shù)據(jù),通過(guò)訓(xùn)練LSTM-AutoEncoder模型,實(shí)現(xiàn)了越權(quán)場(chǎng)景頁(yè)面的識(shí)別,解決了傳統(tǒng)自動(dòng)化越權(quán)檢測(cè)中的誤報(bào)問(wèn)題,提升了越權(quán)檢測(cè)的準(zhǔn)確性。實(shí)驗(yàn)數(shù)據(jù)表明,LSTM-AutoEncoder模型在一定量數(shù)據(jù)規(guī)模情況下比傳統(tǒng)的One-Class SVM模型以及AutoEncoder模型具有一定準(zhǔn)確率的優(yōu)勢(shì),在處理?yè)碛猩舷挛年P(guān)系的網(wǎng)頁(yè)文本序列也有很大的優(yōu)勢(shì)。目前AI和網(wǎng)絡(luò)安全的應(yīng)用處于較為初期的發(fā)展階段,本文提供了較好的應(yīng)用案例。然而,本文的實(shí)驗(yàn)數(shù)據(jù)也存在一定的不足。在今后的研究中,需要將訓(xùn)練數(shù)據(jù)的收集擴(kuò)展到互聯(lián)網(wǎng)上大量的Web應(yīng)用中更多的越權(quán)場(chǎng)景頁(yè)面的種類(lèi),以此提升模型的泛化能力,使得模型能夠檢驗(yàn)更多的越權(quán)場(chǎng)景。
參考文獻(xiàn):
[1] MARKMANN T,GESSNER D,WESTHOFF D. QuantDroid:Quantitative approach towards mitigating privilege escalation on Android [C]//2013 IEEE International Conference on Communications (ICC).Budapest:IEEE,2013:2144-2149.
[2] MOLLUS K,WESTHOFF D,MARKMANN T. Curtailing privilege escalation attacks over asynchronous channels on Android [C]//2014 14th International Conference on Innovations for Community Services (I4CS).Reims:IEEE,2014:87-94.
[3] SUCIU D,MCLAUGHLIN S,SIMON L,et al. Horizontal Privilege Escalation in Trusted Applications [C]// Proceedings of the 29th USENIX Security Symposium.USENIX Association,2020:825-840.
[4] KRISHNAMURTHY A,METTLER A,WAGNER D. Fine-grained privilege separation for web applications [C]//Proceedings of the 19th international conference on World wide web.Raleigh:Association for Computing Machinery,2010:551-560.
[5] NAGPURE S,KURKURE S. Vulnerability assessment and penetration testing of Web application [C]//2017 International Conference on Computing,Communication,Control and Automation (ICCUBEA).Pune:IEEE,2017:1-6.
[6] SUN F Q,XU L,SU Z D. Static Detection of Access Control Vulnerabilities in Web Applications [C]// Proceedings of the 20th USENIX conference on Security.Berkeley:USENIX Association,2011:64.
[7] MONSHIZADEH M,NALDURG P,VENKATAKRISHNAN V N. Mace:Detecting privilege escalation vulnerabilities in web applications [C]//Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security.Scottsdale:Association for Computing Machinery,2014:690-701.
[8] DEEPA G,THILAGAM P S,PRASEED A,et al. DetLogic:A black-box approach for detecting logic vulnerabilities in web applications [J].Journal of Network and Computer Applications,2018,109:89-109.
[9] SONG H G,KIM Y,DOH K G. Automatic Detection of Access Control Vulnerabilities in Web Applications by URL Crawling and Forced Browsing [EB/OL].[2020-11-10]. https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.469.5880&rep=rep1&type=pdf.
[10] MA L,YAN Y J,XIE H. A New Approach for Detecting Access Control Vulnerabilities [C]//2019 7th International Conference on Information,Communication and Networks (ICICN).Macao:IEEE,2019:109-113.
[11] BUCZAK A L,GUVEN E. A survey of data mining and machine learning methods for cyber security intrusion detection [J].IEEE Communications surveys & Tutorials,2015,18(2):1153-1176.
[12] TSAI C F,HSU Y F,LIN C Y,et al. Intrusion detection by machine learning:A review [J].expert systems with applications,2009,36(10):11994-12000.
[13] YAVANOGLU O,AYDOS M. A review on cyber security datasets for machine learning algorithms [C]//2017 IEEE International Conference on Big Data (Big Data).Boston:IEEE,2017:2186-2193.
[14] HOCHREITER S,SCHMIDHUBER J. Long short-term memory [J].Neural computation,1997,9(8):1735-1780.
[15] ACKLEY D H,HINTON G E,SEJNOWSKI T J. A learning algorithm for Boltzmann machines [J].Cognitive science,1985,9(1):147-169.
[16] SRIVASTAVA N,MANSIMOV E,SALAKHUDINOV R. Unsupervised learning of video representations using lstms [C]// Proceedings of the 32nd International Conference on International Conference on Machine Learning.2015:843-852.
作者簡(jiǎn)介:李帥華(1983—),男,漢族,山西朔州人,高級(jí)工程師,碩士,研究方向:網(wǎng)絡(luò)與信息安全、人工智能與網(wǎng)絡(luò)安全;通訊作者:孫慶賀(1995—),男,漢族,安徽宿州人,工程師,學(xué)士學(xué)位,研究方向:網(wǎng)絡(luò)與信息安全;趙明宇(1997—),男,漢族,山西臨汾人,學(xué)士學(xué)位,工程師,研究方向:網(wǎng)絡(luò)與信息安全。