李帥華 孫慶賀 趙明宇



摘 ?要:針對水平越權檢測過程中,因無法識別越權場景頁面帶來的檢測誤報問題,提出了一種基于深度學習的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 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 ?引 ?言
越權漏洞屬于業務邏輯漏洞中的一種,在目前的Web應用中十分常見。水平越權是越權漏洞中的一種,它是指相同權限的用戶可以通過修改參數變量等方式查詢、修改、刪除、添加他人信息,以實現非法行為。當黑客對越權漏洞進行利用時,由于其攻擊行為與正常用戶請求無異,且不包含敏感字符與特殊字符,很難被防御軟件監控處理。因此,如何能夠對水平越權漏洞進行檢測,及時修復缺陷漏洞以避免損失顯得尤為重要。
近年來,在針對權限提升的防御控制方法上,已經有很多研究工作開展實施[1-5]。在企業實際業務生產過程中,不僅要增強代碼開發人員的安全開發意識和代碼規范,還需要對即將上線的Web應用有著良好的安全檢測。對于特權提升漏洞的檢測有如下相關研究:Sun等人提出了利用靜態檢查的方法來檢測Web應用中的邏輯漏洞,通過源碼構建不同權限訪問者的站點地圖,來判斷是否存在越權行為[6]。Monshizadeh等人提出了MACE工具,在大型代碼庫上檢測特權提升漏洞,發現了很多嚴重及未知的漏洞,取得了良好的效果[7]。Deepa等采用黑盒方法,通過對預期行為建模構建有限狀態機的方式識別邏輯缺陷漏洞[8]。Song等人通過URL鏈接爬取的方式獲取目標網站可訪問鏈接,利用不同用戶權限訪問鏈接頁面并解析網頁響應的方式判斷是否存在水平、垂直越權漏洞[9]。Ma等人提出了一種新的權限控制漏洞檢測方法,通過建立一種五層模型結合授權上下文信息,檢測目標系統是否存在權限控制漏洞[10]。
雖然目前對于越權檢測的方法種類繁多,但在真實業務場景中卻存在以下問題。首先,通過源代碼審計的方法成本極高,需要比較強能力的安全知識人員耗費大量時間進行檢測。同時,因為迭代周期短暫,產品代碼量龐大的問題,安全專家也很難兼顧到Web應用中的所有漏洞點。其次,目前的自動化水平越權檢測工具以及方法往往存在誤報問題,給檢測結果的校驗增大了成本。針對這個問題,本文提出了以下解決辦法:水平越權的產生場景大部分在類似于歷史訂單查詢、投訴與建議、消息推送、訂單支付、個人信息等頁面,而無用戶直接數據交互的頁面則不會產生越權行為。因此識別越權頁面是否為越權場景頁面,能夠大幅度提升水平越權檢測準確率,降低人工復核的工作成本。目前人工智能與網絡安全已經有著很多結合應用[11-13],利用深度學習技術可以實現對水平越權場景頁面的識別。國網電動車業務系統中,水平越權漏洞占據總漏洞數量的70%,將深度學習越權場景頁面的識別應用到自動化水平越權檢測中,很好地解決了水平越權檢測的誤報問題,進而保證了水平越權漏洞的及時檢測與修復。
1 ?基于LSMT-AutoEncoder的水平越權檢測
1.1 ?LSTM
長短時記憶網絡(Long Short-Term Memory,LSTM)由Hochreiter等人提出[14],采用控制門的機制,LSTM結構如圖1所示,由多個單元共同組成,目前長短時記憶網絡已被應用在較多領域。
LSMT結構圖中,ht為t時刻網絡的狀態輸出,Xt為t時刻的輸入向量。LSTM模型的狀態流程公式為:
首先是忘記階段,會選擇歷史信息進行忘記,ft為t時刻忘記門的輸出狀態,σ為logistic sigmoid函數,Wf代表權重矩陣,bc為偏置向量:
ft=δ(Wf ·(Xt,ht-1)+bc)f ? ? ? ? ? ? ? ? ? ?(1)
然后輸入門進行狀態更新,it為t時刻輸入門的輸出狀態,bi為偏置向量, 為tanh創建的一個新的候選值向量,Wc為權重矩陣,Ct為t時刻的記憶單元狀態:
it=δ(Wi·(Xt,ht-1)+bi) ? ? ? ? ? ? ? ? (2)
=tanh(Wc ·(Xt,ht-1)+bc) ? ? ? ? ? ? ?(3)
Ct=it ·+ft·Ct-1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4)
最后由輸出門輸出當前狀態的結果,ot為輸出門的輸出狀態,Wo,Uo為權重矩陣,bo為偏置向量:
ot=σ(Wo Xt+Uoht-1+bo) ? ? ? ? ? ? ? ? ? ? ? (5)
ht=Ot · tanh(Ct) ? ? ? ? ? ? ? ? ? ? ? ? ? ?(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)、F1分數(F1-Score)。MAE、MSE的計算公式如下,其中Xprediction為每次預測值,Xreal為真實值,N為總次數,t、i為當前次數:
MSE=(Xprediction,t-Xreal,t)2 ? ? ? ? ? ? (8)
MAE=(Xprediction,i-Xreal,i) ? ? ? ? ? ? (9)
精確率、準確率、召回率、F1分數的計算公式如下,其中TP為真正例,FP為假正例,TN為真反例,FN為假反例:
Precision= ? ? ? ? ? ? ? ? ? ? ? ? ? (10)
Recall= ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(11)
Accuracy= ? ? ? ? ? ? ? ? ? (12)
F1-Score=2· ? ? ? ? ? ? ? ? ? (13)
LSTM-AutoEncoder模型的輸入為向量化的水平越權場景頁面文本,使用Keras框架的Tokenizer模塊進行文本預處理。首先構建Tokenizer實例對象,通過filters參數傳入停用符,并設置最大保留詞組為20 000。然后利用訓練數據進行擬合,獲取能夠將文本轉換為序列的數據集文本字典,當新數據需要進行預測時,可以使用該字典進行轉換。最后將轉換后的文本序列變形為LSTM層輸入所需要的三維數組,作為訓練數據輸入模型。
圖2展示了LSTM-AutoEncoder的架構代碼,編碼器與解碼器分別由兩個LSTM單元組成,使用RepeatVector層改變數據維數,使用TimeDistributed層與Dense層結合處理數據解碼維度多對多情況。
1.4 ?基于LSTM-AutoEncoder的水平越權檢測
在Web應用程序中,水平越權發生在相同權限的用戶中。其主要特征為相同權限用戶可以通過在本用戶權限下修改參數等偽造其他用戶的行為,能夠查看、利用其他用戶的數據。目前大部分Web站點使用Cookie、Token等認證方式,自動化的水平越權檢測可以實現配置Cookie后通過交叉訪問不同用戶的頁面,再通過頁面相似度對比的方式,檢測是否存在越權行為。具體檢測方式如圖3所示。
基于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人天。將收集好的網頁響應使用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所示。
由于網頁響應文本過長,表2列舉了訓練集中部分數據集樣例的前15個文本。
實驗過程與圖3給出的檢測流程圖相同。首先利用自動化水平越權檢測對目標Web站點進行水平越權檢測,然后將判斷為越權的檢測結果所對應目標鏈接的網頁響應輸入至LSTM-AutoEncoder模型,進行越權場景頁面的檢測。如果LSTM-AutoEncoder模型輸出為是,則鏈接所對應的網頁為越權場景頁面,判定該鏈接存在為水平越權;如果檢測結果為否,說明該鏈接不是越權場景頁面,則越權結果為誤報。
實驗的環境如下:LSTM-AutoEncoder模型使用Python 3.6作為開發語言,利用Keras==2.1.2作為高層封裝框架,tensorflow-gpu==1.10.0作為深度學習框架,在CPU為Intel i7-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。
最后,計算驗證集、負樣本的MSE、MAE分布,兩種情況下的重建數據散點分布圖如圖8、圖9所示。
并根據閾值可以計算模型在MSE、MAE情況下的TP、TN、FP、FN值。設閾值為k,test為測試數據,error為錯誤數據,sum為數據求和,計算方法如下:
TP=sum(test TN=sum(error>k) ? ? ? ? ? ? ? ? ? ? (15) FP=sum(error FN=sum(test>k) ? ? ? ? ? ? ? ? ? ? ? (17) ROC曲線通常用于評價一個分類器的好壞,其橫坐標為TPR,縱坐標為FPR,分別表示分類器將正例分對的概率以及將負例分錯的概率。其中AUC代表ROC曲線下的面積,AUC越接近于1表示預測的價值越高。通過TP、TN、FP、FN值可以得出圖像的Precision曲線,如圖10、圖11所示,以及ROC曲線,如圖12、圖13所示。 2.3 ?實驗結果及結論 為了驗證本文的有效性,以同樣數據預處理方法以及同樣的訓練數據對One-class SVM模型和AutoEncoder模型進行訓練及對比。其中,One-class SVM模型使用Scikit-learn模塊中的預置模型及默認參數進行訓練,AutoEncoder模型使用雙層全連接層作為編碼器與解碼器,units參數為32的架構進行訓練,經過訓練后的三種模型對于驗證集的對比結果如表3~表5所示。 通過實驗結果可知,在One-Class模型中,模型的精確率Precision達到了極高的0.974,說明One-class模型對于數據集中的越權場景頁面有著很高的識別率。但是模型的召回率只有0.473,說明對于很多非越權場景網頁,模型將其識別成了越權場景頁面。因此,在實際業務過程中,One-Class SVM模型不能解決水平越權的誤報問題。 AutoEncoder模型在MAE以及MSE的情況下的召回率為0.988及0.994,說明正確判為水平越權場景頁面的案例在全部水平越權樣本中占據一個很高的比例,然而其精確率相比于LSTM-AutoEncoder模型低了約3%,表明被模型預測為水平越權場景頁面中真正的越權場景頁面占比只有0.89%。因此相較于LSTM-AutoEncoder模型,AutoEncoder模型的整體性能偏弱。F1分數往往表示精確率與召回率的調和平均,該指標對于水平越權場景頁面的檢測業務需求相吻合。由表3可以看出,LSTM-AutoEncoder模型在MAE的情況下精確率、準確率、召回率、F1分數達到了一個較為均衡的指標,相較于MSE的情況下,其中F1分數多了0.3%,準確率多了0.2%,更符合真實的業務需求。因此以MAE作為損失函數訓練的LSTM-AutoEncoder模型作為線上環境的檢測模型,實現對水平越權場景頁面的檢測。 根據LSTM網絡的特性,其對于有著上下文關系的網頁響應文本序列的特征提取能力更強,使得模型的綜合表現更加優異。此外,實驗中還曾試過多層LSTM編解碼器,但對于模型的準確率只提升0.001%,甚至在四層網絡時出現了準確率下降的現象,由此可見多層網絡未能給越權場景頁面的識別帶來更好的效果。在實際業務檢查場景中,模型的效率是檢測系統能夠快速運行的關鍵,一味追求準確率而舍棄性能參數是開發過程中必須要避免的。在經過預測模塊耗時測試,模型的預測時間為0.04 s,滿足大量調用模型預測的業務需求。權衡利弊后,選取如圖2簡單的模型架構,能夠降低模型的復雜度,加速模型在應用階段的預測時間,提升檢測軟件的性能。 由以上分析可以得出,LSTM-AutoEncoder模型在識別水平越權場景頁面中有著良好的效果。在國網電動車內部測試過程中,LSTM-AutoEncoder模型發現了11個水平越權檢測結果中的7個誤報,后經人工復核確認有效。 3 ?結 ?論 水平越權漏洞對公司及用戶的業務數據安全極為重要。本文利用Web應用越權場景樣本數據,通過訓練LSTM-AutoEncoder模型,實現了越權場景頁面的識別,解決了傳統自動化越權檢測中的誤報問題,提升了越權檢測的準確性。實驗數據表明,LSTM-AutoEncoder模型在一定量數據規模情況下比傳統的One-Class SVM模型以及AutoEncoder模型具有一定準確率的優勢,在處理擁有上下文關系的網頁文本序列也有很大的優勢。目前AI和網絡安全的應用處于較為初期的發展階段,本文提供了較好的應用案例。然而,本文的實驗數據也存在一定的不足。在今后的研究中,需要將訓練數據的收集擴展到互聯網上大量的Web應用中更多的越權場景頁面的種類,以此提升模型的泛化能力,使得模型能夠檢驗更多的越權場景。
參考文獻:
[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.
作者簡介:李帥華(1983—),男,漢族,山西朔州人,高級工程師,碩士,研究方向:網絡與信息安全、人工智能與網絡安全;通訊作者:孫慶賀(1995—),男,漢族,安徽宿州人,工程師,學士學位,研究方向:網絡與信息安全;趙明宇(1997—),男,漢族,山西臨汾人,學士學位,工程師,研究方向:網絡與信息安全。