牛月坤,曹 慧,田晨雨,李 濤,吳昊天
(國能信息技術有限公司,北京 100011)
當前許多公司和企業(yè)將開發(fā)出的應用程序架設在Web平臺上,但更多地關注網(wǎng)絡和服務器硬件性能,對應用安全的方面關注較少,可能導致Web站點存在安全漏洞,容易受到惡意攻擊[1]。自動化滲透測試平臺(DAS-APENTEST)在很多廠家,通過用自己的規(guī)則方法和程序等方式去解釋安全問題,通過構建滲透測試平臺,實現(xiàn)自動化、立體化的滲透測試系統(tǒng)?,F(xiàn)有技術研究背景還基于應用學角度,一切從實際應用出發(fā),通過應用程序提高了滲透測試對系統(tǒng)的邏輯缺陷和技術漏洞分析能力。比如通過發(fā)明漏洞檢測程序,或者人為在不用位置檢測,提高應用能力。但這種技術現(xiàn)狀通過非法入侵的調度攻擊目標主機獲取目標系統(tǒng)的權限,在測試過程中評估系統(tǒng)的網(wǎng)絡安全性能,最大限度地探測出系統(tǒng)存在的安全漏洞。但當前的滲透測試的測量效率不高,現(xiàn)有的Fuzzing測試漏洞搜索范圍不大,且人工分析成本過高[2]。
針對上述存在的問題,文獻[3]系統(tǒng)開發(fā)出基于DJANGO的網(wǎng)絡滲透測試實驗平臺,結合了網(wǎng)絡爬蟲計技術,對獲取的資產(chǎn)數(shù)據(jù)進行掃描和滲透測試。文獻[4]系統(tǒng)使用Java語言編寫出多方協(xié)同的滲透攻擊框架,集成了端口轉發(fā)、socket代理和遠程控制木馬等功能,包含了攻擊鏈中所需的各種功能模塊。文獻[5]系統(tǒng)提出基于PENET理論的滲透測試模型,將動態(tài)分析法應用到測試中,提高目標設備和系統(tǒng)的安全性。文獻[6]系統(tǒng)利用綜合分析法建立判斷矩陣,對滲透測試的各工具和平臺進行分析,具有多個漏洞利用程序和輔助測試模塊,實時更新最新漏洞的利用插件。
上述技術中仍舊存在一些不足,大部分滲透測試工具只能對外網(wǎng)系統(tǒng)的漏洞進行掃描,無法構成自動化的流量信道,因此就需要一種新型的自動化滲透測試系統(tǒng)實現(xiàn)內(nèi)網(wǎng)及其他主機的安全測試,提高第三方插件測試的自動化程度。
為全方位檢測出系統(tǒng)中存在的安全漏洞和網(wǎng)絡脆弱性節(jié)點,保證目標系統(tǒng)的網(wǎng)絡安全性能,本研究加入機器學習技術建立自動化滲透測試系統(tǒng),從不同的角度出發(fā),利用各類非法入侵方法對目標系統(tǒng)進行滲透測試,最終輸出滲透測試報告。滲透測試原理為通過非法入侵和調度攻擊目標主機,獲取系統(tǒng)的權限和篡改數(shù)據(jù)庫的數(shù)據(jù),在測試過程中對目標系統(tǒng)的網(wǎng)絡安全性進行評估,從非法入侵的角度對系統(tǒng)中存在的邏輯缺陷、網(wǎng)路漏洞和系統(tǒng)脆弱節(jié)點進行分析,利用各類攻擊手段對系統(tǒng)內(nèi)網(wǎng)和外網(wǎng)進行滲透測試,盡可能的發(fā)現(xiàn)系統(tǒng)匯總存在的全部漏洞,最終生成滲透測試報告。本研究基于機器學習的自動化滲透測試系統(tǒng)架構如圖1所示。
圖1 基于機器學習的自動化滲透測試系統(tǒng)架構
系統(tǒng)原理可以描述為:系統(tǒng)首先根據(jù)測試工具和用戶需求制定合理的測試方案,確定測試周期、測試權限、測試的業(yè)務范圍和執(zhí)行流程,避免對目標系統(tǒng)網(wǎng)絡的正常運營造成影響[7]。系統(tǒng)對目標系統(tǒng)進行滲透攻擊,利用系統(tǒng)漏洞和部署在系統(tǒng)的攻擊載荷獲取目標系統(tǒng)的權限和服務器的ROOT權限,破壞系統(tǒng)內(nèi)部邏輯結構,惡意修改系統(tǒng)數(shù)據(jù)庫數(shù)據(jù),并避免IPS、IDS、WAF等網(wǎng)絡安全設備的檢測[8]。系統(tǒng)中機器學習模塊主要分為攻擊負載標注部分和訓練學習部分,將攻擊測試語句分解為最小分片的測試語句,將繞過WAF的攻擊測試的標簽進行標記,生產(chǎn)具有標簽的攻擊測試訓練集。
本研究系統(tǒng)使用Metasploit開源的滲透測試框架,包含了大量針對應用程序、協(xié)議、服務和操作系統(tǒng)的漏洞利用代碼,當系統(tǒng)確認目標系統(tǒng)存在漏洞時,滲透測試人員可以利用與漏洞相匹配的模塊進行攻擊。系統(tǒng)包含有多個有效載荷,為測試人員提供一個反彈形SHELL接口,可以連接到目標計算機運行測試人員在目標系統(tǒng)上執(zhí)行操作和指令[9]。系統(tǒng)在進行攻擊前,漏洞利用模塊對有效載荷進行配置,使用合適的腳本Metasploit可以自動化完成整個配置過程,基于msfconsole、msfgui和msfapi接口完成用戶與框架之間的交互[10]。
系統(tǒng)由OPENVAS開放漏洞評估提供全面的漏洞掃描和漏洞管理方案,OpenVAS掃描器定期更新一個網(wǎng)絡漏洞測試NVTs,通過OpenVAS NVT feed掃描引擎執(zhí)行漏洞掃描,將漏洞掃描結果全部整合到漏洞管理器中[11]。系統(tǒng)使用AUXiliary輔助模塊,包含了對目標系統(tǒng)的攻擊場景中的各種腳本,assistantscanner模塊用來破解SSH證書,打開一個msfcon,RHOSTS 選項可以設置掃描器的目標地址。經(jīng)過機器學習對目標服務器進行分析后得到最佳攻擊路徑,使用自動化生成攻擊腳本進行滲透攻擊,將目標系統(tǒng)的反饋消息存儲在數(shù)據(jù)庫中。數(shù)據(jù)庫使用HBase開源data管理模塊,為列存儲Nosql數(shù)據(jù)庫,在HDFS上實時讀寫和快速隨機訪問數(shù)據(jù)層的結構化數(shù)據(jù)。系統(tǒng)客戶端包含Zookeeper存儲HBase的元數(shù)據(jù),客戶端進行讀取和寫入操作時在Zookeeper中訪問meta元數(shù)據(jù)。對目標系統(tǒng)完成全面掃描和漏洞檢測后,量化滲透攻擊的成功率,對于相應的目標服務器和網(wǎng)絡系統(tǒng)生成滲透測試報告。系統(tǒng)通過接入第三方用戶圖表繪制庫ANTV為用戶提供可視化的應用,在圖表核心庫使用ANV作為構建圖表的核心部分,應用基于海量圖形應用的底層數(shù)據(jù)引擎,以大量圖形數(shù)據(jù)分析為驅動,提供多種圖形應用語義和交互方案,將系統(tǒng)的網(wǎng)絡漏洞數(shù)、漏洞位置和脆弱節(jié)點數(shù)量等數(shù)據(jù)以可視化圖形的形式展示。
系統(tǒng)的前端利用JAVAScript框架VUE構件的web用戶界面,系統(tǒng)界面具有相應的用戶管理模塊、情報收集模塊、漏洞探測模塊、攻擊模塊和生成報告模塊等,用戶根據(jù)需求進行相應的模塊完整測試工作。metasploit測試工具提供了滲透攻擊所需的編碼器模塊、輔助模塊、攻擊模塊和空指令模塊。在獲取到目標系統(tǒng)的權限后,對系統(tǒng)進行各種攻擊行為,比如降低權限、修改日志文件、刪除用戶數(shù)據(jù)、植入后門和運行其他程序等,滲透模塊通過metasploit接口對接到系統(tǒng)中,通過后滲透攻擊腳本Meterpreter與目標系統(tǒng)進行會話,執(zhí)行Meterpreter服務端提供的API。
一般的攻擊圖生成過程由滲透測試人員分析得到的,沒有實現(xiàn)完全的自動化生成,基于狀態(tài)轉移的攻擊圖生成方式可能會出現(xiàn)生成環(huán),增加了對攻擊路徑分析的難度。本研究根據(jù)目標系統(tǒng)的各個網(wǎng)路節(jié)點的脆弱性和連接關系,利用攻擊圖生成最優(yōu)攻擊路徑。基于攻擊圖的最優(yōu)攻擊路徑自動化生成流程如圖2所示。
圖2 基于攻擊圖的最優(yōu)攻擊路徑自動化生成流程
生成攻擊路徑前首先需要獲取目標系統(tǒng)的信息,通過網(wǎng)路基掃描工具采集目標系統(tǒng)節(jié)點之間的連接關系,獲取系統(tǒng)節(jié)點的IP信息、ARP表。完成目標系統(tǒng)的信息采集后結合漏洞數(shù)據(jù)庫,根據(jù)節(jié)點的連接關系分析目標系統(tǒng)的網(wǎng)絡架構和拓撲結構,分析出目標系統(tǒng)中節(jié)點的脆弱信息。綜合目標系統(tǒng)的脆弱節(jié)點和連接關系,生成漏洞利用關系,得到目標系統(tǒng)節(jié)點之間的原子攻擊,原子攻擊包括攻擊的前提條件、攻擊結果和漏洞信息。一次原子攻擊作為攻擊圖的邊生成全局攻擊圖。
對生成的全局攻擊圖進行分析,生成對目標系統(tǒng)中目標節(jié)點的對應攻擊路徑。為防止生成的全局攻擊圖存在節(jié)點過多、生成攻擊環(huán)、攻擊路徑分析難度較大的問題,本研究設計的攻擊圖模塊,網(wǎng)絡設備為最小粒度,簡化了攻擊圖,在生成的所有攻擊路徑中,以網(wǎng)絡設備和主機構成攻擊節(jié)點,使攻擊圖不會出現(xiàn)環(huán)形結構。目標系統(tǒng)中的脆弱節(jié)點可以根據(jù)攻擊路徑到下一個目標節(jié)點,在復雜的網(wǎng)絡結構中不會因為節(jié)點數(shù)據(jù)的增加,導致攻擊性能的下降。
在攻擊圖中,一次實際漏洞利用形成了攻擊圖中的一條邊,表示發(fā)生了一次原子攻擊:
atomicAttack=(vul,peoC,result)
(1)
其中:vul表示原子攻擊利用的漏洞,peoC表示攻擊的前提條件,result表示原子攻擊產(chǎn)生的后果[12]。
通過公式(1)可以通過數(shù)據(jù)量化方式表示實際漏洞所形成了攻擊圖,并將攻擊內(nèi)容通過數(shù)據(jù)量化的方式表示出來。
原子攻擊的前提條件可表示為:
peoC=(applyWay,Authoritysrc,Authoritydst)
(2)
其中:applyWay表示漏洞利用難度,Authoritysrc表示發(fā)起攻擊的主機需要獲取的最低權限,Authoritydst表示被攻擊的主機的最低權限[13]。目標系統(tǒng)網(wǎng)絡節(jié)點的脆弱性與漏洞利用難度applyWay有關,通過原子攻擊量化計算,將漏洞和applyWay存儲在VulProbility中。從Host中任意取出有關主機節(jié)點作為TempHost,直到所有網(wǎng)絡可訪問節(jié)點遍歷完畢[14]。從HostLink中獲取所有與TempHost相關的連接作為TempLink,從Hostvul中獲取到所有連接中的節(jié)點的漏洞信息,并判斷漏洞是否為可達性漏洞。獲取漏洞利用難度applyWay并生成一個原子攻擊,并表示為攻擊圖中的有向邊,重復以上過程直到生成可視化的全局攻擊圖。
通過上述描述,能夠將多種數(shù)據(jù)信息生成最優(yōu)攻擊路徑,在具體應用中,還需考慮到攻擊的有效性和可以得到的最大利益,將從漏洞中獲取到目標系統(tǒng)的節(jié)點信息進行量化,表示為該節(jié)點的資產(chǎn)價值assetValue。第j個原子攻擊的價值可表示為:
attackVj=(assetValue+Threatvalue)/D
(3)
其中:attackVj為原子攻擊的價值,assetValue為節(jié)點的資產(chǎn)價值,Threatvalue為節(jié)點的威脅價值,D為原子攻擊難度。通過式(3)能夠實現(xiàn)威脅價值數(shù)據(jù)信息的計算。
在一次滲透攻擊當中攻擊路徑的攻擊價值可表示為:
(4)
式(4)中,attackWVj表示攻擊路徑的攻擊價值,N表示攻擊路徑總數(shù),j表示原子攻擊次數(shù)。根據(jù)全局攻擊圖轉換為攻擊矩陣,矩陣中的值表示節(jié)點的原子攻擊價值,采用深度優(yōu)先搜索算法,對走過的攻擊路徑進行編碼。對于新的攻擊路徑判斷是否已經(jīng)到達目標節(jié)點,如果達到則更新攻擊價值attackVj,對目標系統(tǒng)中的節(jié)點依次嘗試,并標記已經(jīng)走過的路徑。路徑探索完畢時,選取其中攻擊價值attackWVj最大值作為最優(yōu)路徑。通過最優(yōu)路徑,能夠實現(xiàn)威脅信息的獲取與計量。從目標系統(tǒng)的初始節(jié)點到目標節(jié)點的攻擊路徑生成核心代碼如下所示:
# 保存最大攻擊價值
MaxAttackValue = 0
Book = [0]
def dfs(Cur, Dis, n, AttackMatrix):
"""
:param Cur:當前所在位置
:param Dis:走過的路徑
:param n:總節(jié)點數(shù)
:param AttackMatrix:攻擊矩陣
:return:攻擊路徑信息,包括最大攻擊價值和攻擊路徑
"""
if Cur == n:
if Dis["Val"] >MaxAttackValue:
return Dis
for i in range(1, n + 1):
if AttackMatrix[Cur][i] != -1 and Book[i] == 0:
Book[i] = 1
# 繼續(xù)搜索
Dis["Val"] += AttackMatrix[Cur][i]
Dis["Way"] += "->" + str(i)
dfs(i, Dis)
# 路徑探索完畢,取消標記
Book[i] = 0
隨著目標系統(tǒng)的網(wǎng)絡節(jié)點數(shù)和網(wǎng)絡結構的復雜程度的提高,進行滲透攻擊很難直接與設定的攻擊目標直接獲取連接。本研究提出威脅驅動的多階段滲透攻擊方法,從外部網(wǎng)絡發(fā)動緊密的單步攻擊不斷接近目標系統(tǒng),最終攻破攻擊目標,這種攻擊方法持續(xù)時間較長且具有明顯的階段性。
滲透攻擊者對目標網(wǎng)絡進行掃描,對可利用的主機進行定位,使用攻擊武器將該主機攻破后在目標網(wǎng)絡中占據(jù)據(jù)點,利用據(jù)點對網(wǎng)絡內(nèi)部進行持續(xù)探測,進而利用目標網(wǎng)絡中的漏洞不斷接近并攻擊目標。當攻擊者具有主機H1的User權限時,目標網(wǎng)絡中主機H1與H2通過Http連接,當主機H2上存在遠程攻擊漏洞CVE,攻擊者能夠發(fā)動原子攻擊V,攻擊后獲取主機H2的Root權限[15]。多階段滲透攻擊如圖3所示。
圖3 多階段滲透攻擊
多階段滲透攻擊可分為3個階段,準備階段、利用階段和攻擊階段。準備階段作為攻擊者的初始節(jié)點,攻擊者在目標網(wǎng)絡中建立節(jié)點,為后續(xù)的攻擊提供基礎,對目標網(wǎng)絡進行掃描并將可利用的主機標記出來。在準備階段中定制為該主機的攻擊武器,準備完成后將攻擊武器投到進行攻擊的主機上,攻擊目的為完成該主機的入侵控制,控制完成后在目標網(wǎng)絡中建立據(jù)點。利用階段利用攻擊者在目標網(wǎng)絡中占據(jù)的節(jié)點,接著在目標網(wǎng)絡內(nèi)部進行探測,利用目標網(wǎng)絡中的漏洞,不斷橫向移動以逼近攻擊目標。攻擊階段為滲透攻擊的最后階段,攻擊者距離目標節(jié)點更近,對攻擊目標發(fā)起攻擊,當攻擊成功后,目標系統(tǒng)表現(xiàn)為無法進行正常工作,業(yè)務數(shù)據(jù)被修改,系統(tǒng)無法正常訪問,敏感數(shù)據(jù)被竊取。攻擊圖用來描述多階段滲透攻擊,多階段滲透攻擊圖可表示為:
AG=(N,E,K)=(S∪V,S×V∪V×S,K)
(5)
式(5)中,N表示為目標系統(tǒng)的節(jié)點集合,E表示有向邊集合,K表示狀態(tài)轉移概率集合,S表示狀態(tài)節(jié)點集合,V表示原子攻擊集合[16]。
由圖3中的攻擊鏈模型可知,多段滲透攻擊從目標系統(tǒng)的外部發(fā)起,攻擊者逐漸向系統(tǒng)內(nèi)部靠近攻擊目標,攻擊者與攻擊目標的距離越小,則表示攻擊者對目標網(wǎng)絡的威脅越大。目標網(wǎng)絡節(jié)點集合為NC=O∩I∩G,由外部網(wǎng)絡O、內(nèi)部網(wǎng)絡I和攻擊目標G組成。能夠通過外網(wǎng)直接連接的外部節(jié)點構成外部網(wǎng)絡,外部節(jié)點被攻擊后成為據(jù)點,攻擊目標G為攻擊的最終目的,一般為系統(tǒng)的控制主機、服務器和數(shù)據(jù)庫等。攻擊者在T0發(fā)動攻擊,并在T1、T2、T3、T4、T5時刻攻破外部節(jié)點和內(nèi)部節(jié)點HostA、HostB、HostC、HostD、HostE。已攻破的節(jié)點集合為AS,攻擊者不斷利用節(jié)點漏洞對其他節(jié)點進行攻擊,在T5時刻,攻擊者已攻破的節(jié)點集合為AST5={HostA,HostB,HostC,HostD,HostE}。攻擊者在不同時刻在目標網(wǎng)絡中所在的位置也不同,對攻擊目標的威脅大小也將動態(tài)改變,攻破目標節(jié)點的數(shù)量越多對目標網(wǎng)絡的威脅也越大。威脅驅動的攻擊階段動態(tài)劃分模型可表示為:
(6)
其中:THt表示攻擊者對目標網(wǎng)絡的威脅,THthsh表示防御者設定的威脅閾值,API表示滲透攻擊初期,APM表示滲透攻擊中期,APE表示滲透攻擊后期[18]。攻擊圖模型能夠很好反映攻擊進程的問題,當前目標網(wǎng)絡中的攻擊行為有相對宏觀的了解,將攻擊者對目標網(wǎng)絡的威脅融入攻擊階段劃分中,能夠更好地表示攻擊階段的動態(tài)變化。
威脅驅動的攻擊階段動態(tài)劃分模型能夠更好地分析滲透攻擊過程中目標系統(tǒng)的漏洞利用關系,和漏洞對目標節(jié)點的威脅,使用戶可根據(jù)攻擊特點和攻擊進程防御自身網(wǎng)絡,可根據(jù)實際攻擊情況設定威脅閾值THthsh,更有利于用戶設定靈活的網(wǎng)絡安全防御措施。如果防御者修復了受到攻擊系統(tǒng)中的所有節(jié)點,攻擊者將失去占有的據(jù)點,返回滲透攻擊初期階段API。防御者可通過威脅值THt的變化,直觀顯示防御手段的效果。
本研究系統(tǒng)采用前端通用框架實現(xiàn)展示效果,系統(tǒng)界面主要有IP、端口、掃描方式3種參數(shù)配置,為滲透攻擊提供必要的配置信息。掃描任務指令通過AJAX傳輸方式,獲取到界面命令后封裝為固定接口格式,將命令傳輸?shù)椒斩说拿罱馕瞿K執(zhí)行。對目標系統(tǒng)完成一次掃描后,在系統(tǒng)界面上顯示出目標IP和IP端多個目標的端口開發(fā)情況、Mac地質和操作系統(tǒng)等信息。系統(tǒng)界面如圖4所示。
圖4 系統(tǒng)界面
為驗證本研究自動化滲透測試系統(tǒng)的可用性,本研究搭建實驗環(huán)境模擬企業(yè)網(wǎng)絡架構,并部署存在漏洞的網(wǎng)絡節(jié)點。實驗滲透測試平臺采用Win10操作系統(tǒng),利用虛擬機裝載kali-linux-2020-4系統(tǒng),在系統(tǒng)上的metasploit6.0.15環(huán)境下運行。搭建的實驗網(wǎng)絡結構分為核心區(qū)、業(yè)務區(qū)和開發(fā)區(qū),業(yè)務區(qū)可以通過外網(wǎng)直接進行訪問,部分關鍵業(yè)務通過核心交換機進行NAT網(wǎng)絡轉換,開發(fā)區(qū)主要模擬網(wǎng)絡的開發(fā)環(huán)境,并部署了3臺虛擬服務器。實驗目標系統(tǒng)網(wǎng)絡結構如圖5所示。
圖5 實驗目標系統(tǒng)網(wǎng)絡結構
實驗環(huán)境中各測試機器軟硬件配置參數(shù)如表2所示。
表2 軟硬件配置參數(shù)
進行實驗前對目標系統(tǒng)網(wǎng)絡的各個主機進行掃描,使用metasploit框架集成的nmap掃描工具,針對主機的IP地址常用的端口號執(zhí)行信息收集任務,得到目標系統(tǒng)的主機信息如表3所示。
表3 主機信息表
為驗證本研究系統(tǒng)的滲透成功率,在實驗環(huán)境下攻擊者對目標系統(tǒng)進行攻擊。目標系統(tǒng)中網(wǎng)絡節(jié)點交換滲透信息的時間間隔設定為1分鐘,主機更新滲透信息表。使用本研究系統(tǒng)對目標系統(tǒng)中的網(wǎng)絡節(jié)點進行滲透攻擊,文獻[3]系統(tǒng)和文獻[4]系統(tǒng)作為對比實驗進行測試,滲透測試時間設定為10分鐘,得到各系統(tǒng)的滲透成功率如圖6所示,具體數(shù)據(jù)如表4所示。
圖6 各系統(tǒng)的滲透成功率
表4 滲透成功率
在對目標系統(tǒng)網(wǎng)絡進行滲透攻擊過程中,網(wǎng)絡節(jié)點之間的滲透路徑具有多樣性,兩個網(wǎng)絡節(jié)點的直接滲透并不一定為最優(yōu)滲透路徑,造成網(wǎng)絡節(jié)點滲透成功率不一致。本研究滲透測試系統(tǒng)發(fā)起滲透攻擊的成功率較高,能夠將目標系統(tǒng)的網(wǎng)絡節(jié)點攻破,并利用占據(jù)的節(jié)點繼續(xù)對其他網(wǎng)絡節(jié)點發(fā)動攻擊,對目標系統(tǒng)各節(jié)點的滲透成功率都高于80%,其中4號網(wǎng)絡節(jié)點的滲透成功率最高達到95.4%。
文獻[3]系統(tǒng)對各網(wǎng)絡節(jié)點發(fā)起滲透攻擊,滲透成功率較低,其中3號網(wǎng)絡節(jié)點的滲透成功率最低為68.7%,對6號網(wǎng)絡節(jié)點的滲透成功率最高達到81.1%.文獻[4]系統(tǒng)的滲透成功率普遍高于70%,其中4號網(wǎng)絡節(jié)點的滲透成功率最高達到85.1%,仍與本研究系統(tǒng)的成功率存在較大的差異。由于存在防火墻等防護設備的原因,識別到目標系統(tǒng)的端口數(shù)比實際數(shù)量要少,導致滲透攻擊過程耗時較長,文獻[3]系統(tǒng)和文獻[4]系統(tǒng)的滲透成功率較低。
由于攻擊節(jié)點的不同和與攻擊目標的距離不同,導致進行滲透攻擊的攻擊價值存在一定的差異。使用本研究系統(tǒng)生成全局攻擊圖,對攻擊目標進行滲透攻擊,使用公司(4)計算攻擊價值,3種系統(tǒng)對不同目標主機的攻擊價值如圖7所示,具體數(shù)據(jù)如表5所示。
圖7 攻擊價值
表5 攻擊價值
由于生成的全局攻擊圖規(guī)模較小,對同一目標主機攻擊路徑可能出現(xiàn)相同的情況,得到的攻擊價值相差不大。本研究系統(tǒng)根據(jù)目標系統(tǒng)網(wǎng)絡結構生成的攻擊路徑,發(fā)起滲透攻擊的攻擊價值較高,最高達到27.3,對4號目標主機的攻擊價值較低為23.4。文獻[3]系統(tǒng)對6號目標主機發(fā)起滲透攻擊的攻擊價值最小為20.3,相對于其他系統(tǒng)的攻擊價值較低,文獻[3]系統(tǒng)的攻擊路徑并非為最優(yōu)攻擊路徑。文獻[4]系統(tǒng)對4號、5號、6號目標主機的攻擊價值與本研究接近,最高達到24.9,但1號、2號目標主機的攻擊價值最低,攻擊節(jié)點的前置屬性節(jié)點存在冗余的信息。
本研究基于機器學習技術設計出自動化滲透測試系統(tǒng),利用網(wǎng)絡工具和端口掃描工具收集目標系統(tǒng)網(wǎng)絡信息,對目標系統(tǒng)發(fā)起滲透攻擊,輸出滲透測試報告對測試全過程進行總結。本研究的創(chuàng)新點在于:
1)為提出有效的攻擊策略,采集目標系統(tǒng)網(wǎng)路的節(jié)點脆弱性和連接關系,通過生成全局攻擊圖得到最優(yōu)的攻擊路徑。將目標系統(tǒng)節(jié)點的資產(chǎn)和信息進行量化,計算節(jié)點的攻擊難度和攻擊價值,采用深度優(yōu)先搜索獲取最優(yōu)攻擊路徑。
2)提出威脅驅動的多階段滲透攻擊方法,建立滲透攻擊的動態(tài)劃分模型,更好地反應攻擊進程及攻擊者對目標網(wǎng)絡的威脅,攻擊者反復利用目標網(wǎng)絡中多個漏洞,攻破多個網(wǎng)絡節(jié)點最終實現(xiàn)對網(wǎng)絡目標的攻擊。
當前網(wǎng)絡環(huán)境下,系統(tǒng)的威脅和漏洞在不斷的演變,在以后研究中還需完善和發(fā)展?jié)B透測試方法和測試工具。