趙海妮,焦健*
基于強化學習的滲透路徑推薦模型
趙海妮1,2,焦健1,2*
(1.北京信息科技大學 計算機學院,北京 100101; 2.網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點實驗室(北京信息科技大學),北京 100101)(*通信作者電子郵箱jiaojian@bistu.edu.cn)
滲透測試的核心問題是滲透測試路徑的規(guī)劃,手動規(guī)劃依賴測試人員的經(jīng)驗,而自動生成滲透路徑主要基于網(wǎng)絡(luò)安全的先驗知識和特定的漏洞或網(wǎng)絡(luò)場景,所需成本高且缺乏靈活性。針對這些問題,提出一種基于強化學習的滲透路徑推薦模型QLPT,通過多回合的漏洞選擇和獎勵反饋,最終給出針對滲透對象的最佳滲透路徑。在開源靶場的滲透實驗結(jié)果表明,與手動測試的滲透路徑相比,所提模型推薦的路徑具有較高一致性,驗證了該模型的可行性與準確性;與自動化滲透測試框架Metasploit相比,該模型在適應(yīng)所有滲透場景方面也更具靈活性。
滲透測試;強化學習;Q學習;策略規(guī)劃
滲透測試是一種通過執(zhí)行受控攻擊來評估計算機系統(tǒng)或網(wǎng)絡(luò)安全性的方法,是安全測試的最常用形式之一。該過程涉及對系統(tǒng)的任何潛在漏洞的主動分析,這些漏洞可能是由不良或不正確的系統(tǒng)配置、已知和未知的硬件或軟件缺陷、過程中的操作弱點或技術(shù)對策引起的。這種分析是從潛在攻擊者的角度進行的,涉及主動利用安全漏洞[1]。
目前的滲透測試主要是通過人工分析判斷來組合各個滲透活動,從而達到滲透的目的。因此,滲透測試的結(jié)果往往取決于執(zhí)行者的個人能力和經(jīng)驗,人工的方法也使得整個滲透過程的時間周期過長,成本較高。滲透測試自動化能夠有效降低人工成本[2],其中如何實現(xiàn)自動化生成滲透路徑是整個測試自動化過程迫切需要解決的問題。
文獻[3]中提出了一種技術(shù)用于攻擊圖生成與分析;文獻[4]中通過前向廣度優(yōu)先搜索策略產(chǎn)生滲透攻擊圖,然后深度優(yōu)先遍歷滲透攻擊圖生成滲透測試方案;文獻[5]中通過使用攻擊圖尋找漏洞之間的關(guān)聯(lián),從而挖掘潛在攻擊路徑;文獻[6-7]中提出了一個基于邏輯的網(wǎng)絡(luò)安全分析器MulVAL,它是一個多層次的推理系統(tǒng),能將安全因素轉(zhuǎn)換為網(wǎng)絡(luò)模型,違反安全策略時會給出攻擊路徑。
隨著網(wǎng)絡(luò)規(guī)模的增大,攻擊圖中會存在大量冗余節(jié)點,不利于測試人員與系統(tǒng)管理人員進行安全分析[4],近年來機器學習的興起為解決滲透測試問題提供了新的思路。文獻[8]中設(shè)計和實現(xiàn)了基于機器學習算法對SQL注入流程檢測的系統(tǒng);文獻[9]中設(shè)計了基于XGBoost(eXtreme Gradient Boosting)算法和C-GRU(Convolutional neural network-Gated Recurrent Unit)深度學習模型的跨站腳本攻擊檢測方法;文獻[10]中從Web文檔和URL中提取特征,使用樸素貝葉斯算法及支持向量機(Support Vector Machine, SVM)算法對跨站腳本攻擊進行分類。上述研究的對象是具體漏洞,因此無法解決整個滲透測試過程中存在的動態(tài)和不確定性問題。
近年來,有研究將滲透測試過程形式化為部分可觀測的馬爾可夫決策過程(Partially Observable Markov Decision Processes, POMDP)。文獻[11]中通過知識推理減少測試過程中掃描動作的使用,依靠POMDP實現(xiàn)對單個機器的有效攻擊,通過攻擊組合實現(xiàn)對整個網(wǎng)絡(luò)的攻擊。
馬爾可夫決策過程的研究為強化學習奠定了基礎(chǔ)。如圖1強化學習的過程,其核心是學習“做什么才能使數(shù)值化的收益信號最大化”[12]。為了獲得最大的收益,強化學習智能體更加傾向于選擇在過去有效產(chǎn)生過收益的動作;但是為了發(fā)現(xiàn)這些動作,往往需要嘗試從未選擇過的動作,因此智能體必須開發(fā)已有的經(jīng)驗來獲取收益,同時也要進行試探,使得未來可以獲得更好的動作選擇空間。在實際滲透測試過程中,針對特定服務(wù)中漏洞的利用和技術(shù)的選擇通常需要反復(fù)的嘗試,并以此不斷積累滲透經(jīng)驗,所以滲透測試的過程比較適合轉(zhuǎn)化為強化學習的過程。
圖1 強化學習過程
近幾年也有不少學者將強化學習應(yīng)用到滲透測試過程中。文獻[13]中提出了一個自主的安全分析和滲透測試框架,將生成的攻擊圖轉(zhuǎn)換為攻擊狀態(tài)與分析日志數(shù)據(jù)得到的威脅信息一并輸入到強化學習計劃生成器,生成器使用DQN(Deep Q Network)算法確定執(zhí)行測試的最佳計劃,但是需要首先生成網(wǎng)絡(luò)的攻擊圖。文獻[14]中使用強化學習訓練智能體,以使其可以發(fā)現(xiàn)系統(tǒng)中的敏感文件和網(wǎng)絡(luò)缺陷。文獻[15]中將滲透測試過程轉(zhuǎn)換為POMDP,并將其中的漏洞利用過程建立為強化學習模型,認為將其嵌入自動化滲透測試框架或系統(tǒng)中,比如Metasploit[16],將提高測試質(zhì)量與持久性;但是POMDP計算復(fù)雜度高,只適用于中小型網(wǎng)絡(luò)。文獻[17]中提出了一種基于網(wǎng)絡(luò)信息增益的攻擊規(guī)劃算法,并利用網(wǎng)絡(luò)信息構(gòu)建回報函數(shù),指導智能體從入侵者角度發(fā)現(xiàn)隱藏的攻擊路徑,選擇最佳響應(yīng)操作;但是由于追求每次操作的最大信息增益,將會出現(xiàn)一系列局部最優(yōu)的路徑組合并不是全局最優(yōu)滲透路徑的情況。
綜上所述,使用強化學習解決滲透測試問題仍處于研究初級階段,針對當前研究存在的問題,本文基于強化學習提出了QLPT(Q Learning Penetration Test)模型,將滲透測試中的漏洞選擇過程轉(zhuǎn)換為強化學習的動作選擇過程。該模型不需要借助攻擊圖生成狀態(tài)-漏洞信息,而是利用Q學習使模型通過多回合的利用、探索與獎勵形成完備的狀態(tài)-漏洞Q表,在訓練完成之后可以根據(jù)每個狀態(tài)選擇對應(yīng)最佳漏洞從而達到推薦最佳滲透路徑的效果。
為構(gòu)建模型,首先定義建模涉及的元素,如表1所示。
表1 主要符號及其含義
表2 系統(tǒng)訪問權(quán)限說明
QLPT模型主要由漏洞選擇、漏洞利用、獎勵值轉(zhuǎn)換、Q學習、狀態(tài)-漏洞Q表和狀態(tài)更新等模塊組成(表3),模型訓練過程如圖2所示。
表3 QLPT內(nèi)部模塊功能說明
圖2 QLPT訓練流程
Q學習[19-20]是一種無模型強化學習的形式,其目標是學習如何將狀態(tài)映射到行動,以便在未知環(huán)境中最大化數(shù)字獎勵信號。在Q學習中,待學習的動作價值函數(shù)采用了對最優(yōu)動作價值函數(shù)*的直接近似作為學習目標,而與用于生成智能體決策序列軌跡的行動策略無關(guān)。
式(3)可以表達狀態(tài)-動作對的值與其后繼狀態(tài)-動作對之間的關(guān)系,Q學習使用式(3)來估計每個狀態(tài)-動作對:
由于滲透過程中出現(xiàn)的狀態(tài)及動作是離散和有限的,這些狀態(tài)-動作對可以用表格形式表示,所以將其放在表格中形成了Q表。其中所有狀態(tài)-動作對在初始化時都被賦予一個初始值,在學習過程中每次收到一個獎勵時,相關(guān)的狀態(tài)-動作值將被依據(jù)貝爾曼方程(4)更新:
在模型開始學習之前,根據(jù)模型輸入的滲透對象狀態(tài)集與可利用漏洞集對狀態(tài)-漏洞Q表進行初始化,此時表中的狀態(tài)-漏洞期望收益值都為0;在模型開始學習之后,每個回合的學習過程中,Q學習模塊將根據(jù)獎勵值更新Q表中的相應(yīng)期望收益值;經(jīng)過多個回合的選擇與獎勵,Q表中的值將會趨于穩(wěn)定,意味著此時的漏洞選擇是利用先前的經(jīng)驗信息得到的。
本文根據(jù)Q學習理論提出了QLPT模型的訓練算法,如下:
為驗證本文模型,構(gòu)建實驗場景如圖3所示,本實驗的滲透對象是OWASP BWA提供的可公開訪問的Web應(yīng)用缺陷測試系統(tǒng),該環(huán)境涵蓋了注入類、XSS、管理配置錯誤、弱口令等常見的Web漏洞類型,具有較強的代表性。測試人員需要使用漏洞掃描工具對滲透對象進行漏洞掃描,將得到的可利用漏洞集(詳見表4)、規(guī)定的滲透對象狀態(tài)集(詳見表5)及最大學習回合數(shù)()800輸入模型進行模型初始化;開始學習后,模型不斷產(chǎn)生具體漏洞利用動作,測試人員通過使用工具對滲透對象執(zhí)行漏洞利用,并將得到的利用結(jié)果返回給模型,模型將結(jié)果轉(zhuǎn)換化為獎勵值對Q表進行更新;在經(jīng)過多回合學習之后,最終產(chǎn)生推薦的一條或多條滲透路徑。
表4是使用漏洞掃描工具Acunetix對滲透對象(OWASP BWA Web應(yīng)用缺陷測試系統(tǒng))進行漏洞掃描得到的漏洞信息,將其作為可利用漏洞集輸入到滲透路徑推薦模型中。設(shè)置最大學習回合數(shù)為800,并啟動模型開始學習。學習過程中測試人員依據(jù)模型輸出的漏洞與工具信息,使用工具對滲透對象進行漏洞利用,并將得到的結(jié)果輸入到模型中。
圖3 實驗場景
表4 漏洞信息說明
表5 狀態(tài)集索引
QLPT模型通過800回合的學習,得到穩(wěn)定的狀態(tài)-漏洞Q表,分別選取各狀態(tài)下期望收益值最大的對應(yīng)漏洞進行利用,即構(gòu)成滲透路徑,如圖4所示,其中箭頭代表的是狀態(tài)轉(zhuǎn)換,例如由狀態(tài)(web,access,漏洞信息)到達狀態(tài)(web,user,后臺URL)Q表中記錄的可利用漏洞有多個,其中利用漏洞CWE-22的概率為91%。經(jīng)過與手動測試的滲透路徑進行對比,發(fā)現(xiàn)本文模型推薦的滲透路徑與其一致,滲透路徑都為:目錄掃描漏洞利用→SQL注入漏洞利用→文件上傳漏洞利用→暴力破解漏洞利用。
圖4 滲透路徑
圖5 漏洞利用期望收益值隨學習回合數(shù)的變化
通過將QLPT和滲透測試自動化框架Metasploit[16]的優(yōu)劣勢對比,得出結(jié)果如表6所示。Metasploit滲透測試成功率比較高的場景是其框架所包含的場景,由于QLPT是根據(jù)滲透目標進行學習訓練,所以沒有攻擊場景限制;在Metasploit框架中,負責滲透路徑規(guī)劃的是威脅建模階段和漏洞分析階段,每個漏洞在被利用之后產(chǎn)生的結(jié)果對后續(xù)此漏洞的利用沒有反饋更新作用,而QLPT模型的核心是漏洞利用的反饋更新機制;在使用模型的先驗知識層面,QLPT和Metasploit一樣不需要使用者具備滲透測試漏洞的利用經(jīng)驗。
統(tǒng)計為達到滲透目標每回合學習所進行的漏洞利用嘗試次數(shù)如圖6所示,發(fā)現(xiàn)隨著模型學習地不斷深入,每回合進行漏洞利用嘗試的次數(shù)大幅降低。原因是獎勵值為漏洞選擇提供了導向作用,學習經(jīng)驗以獎勵值形式累積,使后續(xù)學習中動作選擇步驟越來越少,而學習過程中嘗試次數(shù)偶爾的增加是因為動作選擇過程中的隨機參數(shù)。
表6 QLPT和Metasploit的對比
圖6 為達到滲透目標每回合學習的漏洞利用嘗試次數(shù)
本文采用強化學習進行Web滲透測試的路徑規(guī)劃,與以往的研究不同,本文模型不需要事先具備大量的滲透測試知識,而是通過模型不斷地試錯與接受獎勵,以更新狀態(tài)-漏洞Q表,最終依據(jù)Q表輸出針對當前滲透對象的推薦滲透路徑。本文通過實驗驗證了使用強化學習進行滲透測試路徑規(guī)劃的可行性。未來的研究可以將漏洞信息和知識圖譜相結(jié)合,引入深度學習繼續(xù)提升強化學習的學習效率。
)
[1] SARRAUTE C. Automated attack planning[D]. Buenos Aires: Instituto Tecnológico de Buenos Aires, 2012:23-24.
[2] SINGH N, MEHERHOMJI V, CHANDAVARKAR B R. Automated versus manual approach of web application penetration testing[C]// Proceedings of the 11th International Conference on Computing, Communication and Networking Technologies. Piscataway: IEEE, 2020: 1-6.
[3] SHEYNER O, HAINES J, JHA S, et al. Automated generation and analysis of attack graphs[C]// Proceedings 2002 IEEE Symposium on Security and Privacy. Piscataway: IEEE, 2002: 273-284.
[4] SWILER L P, PHILLIPS C, GAYLOR T. A graph-based network-vulnerability analysis system: SAND-97-3010C; CONF-980534ON: DE98001486; BR: YN0100000; TRN: AHC2DT03%%16[R]. Albuquerque, NM: Sandia National Lab, 1998:8.
[5] YU X H, JIANG J H, SHUAI C Y. Approach to attack path generation based on vulnerability correlation[M]// KOPCHO J, KURZAWA C, MACPHERSON G. IEEE Conference Anthology. Piscataway: IEEE, 2013: 1-6.
[6] OU X M, GOVINDAVAJHALA S, APPEL A W. MulVAL: a logic-based network security analyzer[C]// Proceedings of the 14th USENIX Security Symposium. Berkeley: USENIX Association, 2005: 113-128.
[7] OU X M, BOYER W F, McQUEEN M A. A scalable approach to attack graph generation[C]// Proceedings of the 13th ACM Conference on Computer and Communications Security. New York: ACM, 2006: 336-345.
[8] 張登峰. 基于機器學習的SQL注入檢測[D]. 重慶:重慶郵電大學, 2017:1-69.(ZHANG D F. SQL injection detection based on machine learning[D]. Chongqing: Chongqing University of Posts and Telecommunications, 2017:1-69)
[9] 洪鎮(zhèn)宇. 基于機器學習的跨站腳本攻擊檢測研究[D]. 廈門:廈門大學, 2018:1-77.(HONG Z U. Research on detection of cross-site scripting attacks based on machine learning[D]. Xiamen: Xiamen University, 2018:1-77.)
[10] NUNAN A E, SOUTO E, DOS SANTOS E M, et al. Automatic classification of cross-site scripting in web pages using document-based and URL-based features[C]// Proceedings of the 2012 IEEE Symposium on Computers and Communications. Piscataway: IEEE, 2012: 702-707.
[11] SARRAUTE C, BUFFET O, HOFFMANN J. POMDPs make better hackers: accounting for uncertainty in penetration testing[C]// Proceedings of the 26th AAAI Conference on Artificial Intelligence. Palo Alto, CA: AAAI Press, 2012: 1816-1824.
[12] RICHARD S S, BARTO A G. Reinforcement Learning: An Introduction[M]. Cambridge: MIT Press, 1998: 313-314.
[13] CHOWDHARY A, HUANG D J, MAHENDRAN J S, et al. Autonomous security analysis and penetration testing[C]// Proceedings of the 16th International Conference on Mobility, Sensing and Networking. Piscataway: IEEE, 2020: 508-515.
[14] CHAUDHARY S, O’BRIEN A, XU S. Automated post-breach penetration testing through reinforcement learning[C]// Proceedings of the 2020 IEEE Conference on Communications and Network Security. Piscataway: IEEE, 2020: 1-2.
[15] GHANEM M C, CHEN T M. Reinforcement learning for intelligent penetration testing[C]// Proceedings of the 2nd World Conference on Smart Trends in Systems, Security and Sustainability. Piscataway: IEEE, 2018: 185-192.
[16] Rapid7. Metasploit[DB/OL]. [2021-06-17]. https://www.rapid7.com/products/metasploit/.
[17] ZHOU T Y, ZANG Y C, ZHU J H, et al. NIG-AP: a new method for automated penetration testing[J]. Frontiers of Information Technology and Electronic Engineering, 2019, 20(9): 1277-1288.
[18] Invicti. Acunetix[DB/OL]. [2021-06-17].https://www.acunetix.com/.
[19] WATKINS C J C H. Learning from delayed rewards[D]. Cambridge: King’s College of University of Cambridge, 1989:1-142.
[20] WATKINS C J C H, DAYAN P.-learning[J]. Machine Learning, 1992, 8(3/4):279-292.
Recommendation model of penetration path based on reinforcement learning
ZHAO Haini1,2, JIAO Jian1,2*
(1,,100101,;2(),100101,)
The core problem of penetration test is the planning of penetration test paths. Manual planning relies on the experience of testers, while automated generation of penetration paths is mainly based on the priori knowledge of network security and specific vulnerabilities or network scenarios, which requires high cost and lacks flexibility. To address these problems, a reinforcement learning-based penetration path recommendation model named Q Learning Penetration Test (QLPT) was proposed to finally give the optimal penetration path for the penetration object through multiple rounds of vulnerability selection and reward feedback. It is found that the recommended path of QLPT has a high consistency with the path of manual penetration test by implementing penetration experiments at open source cyber range, verifying the feasibility and accuracy of this model; compared with the automated penetration test framework Metasploit, QLPT is more flexible in adapting to all penetration scenarios.
penetration test; reinforcement learning; Q learning; strategic planning
This work is partially supported by Opening Project of Beijing Key Laboratory of Internet Culture and Digital Dissemination Research (ICDDXN006).
ZHAO Haini, born in 1997, M. S. candidate. Her research interests include network security, penetration test.
JIAO Jian, born in 1978, Ph. D., associate professor. His research interests include network security, blockchain.
TP393.08
A
1001-9081(2022)06-1689-06
10.11772/j.issn.1001-9081.2021061424
2021?08?09;
2021?10?16;
2021?10?29。
網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點實驗室開放課題(ICDDXN006)。
趙海妮(1997—),女,安徽阜陽人,碩士研究生,CCF會員,主要研究方向:網(wǎng)絡(luò)安全、滲透測試;焦健(1978—),男,河北滄州人,副教授,博士,CCF會員,主要研究方向:網(wǎng)絡(luò)安全、區(qū)塊鏈。