?

基于Actor-Critic框架的滲透測試路徑技術研究

2022-10-30 03:03陸燕楊秋芬
科技資訊 2022年21期
關鍵詞:分層算法測試

陸燕 楊秋芬

(湖南開放大學 湖南長沙 410004)

滲透測試是一種主要依靠人工操作的網絡安全測試和評估方法,自動滲透測試可以通過對目標網絡和主機的自動分析來檢測目標網絡和主機的潛在漏洞,并調用攻擊負載來檢查漏洞,消除隱患,提高系統安全性。

分層強化訓練是一種將復雜的強化訓練問題分解為一些易于求解的子問題,并通過相應地求解這些子問題最終解決初始強化學問題的方法。這項工作將分層強化學習與透明度測試相結合,將透明度測試過程建模為半弧的決策模型,訓練代理在模擬網絡環境中發現透明度測試的路徑,并提出了一種基于Actor-Critic 框架改進的自動分層記憶AHM-DQN 算法(Automatic Hierarchical Memory Deep Q Networks,AHM-DQN)。采用AHM-DQN 算法自動尋找滲透測試路徑,解決了滲透測試主要依靠人工進行的問題,節省了時間和人力的成本,具有一定的研究和實際意義。

1 分層強化學習和滲透測試國內外研究現狀

1.1 分層強化學習的國內外研究現狀分析

分層強化訓練算法是強化訓練的一個重要分支,在強化訓練面臨復雜任務和多維災難時非常有效。然而,如果一個Agent 的范圍很復雜,它就無法取得好的效果,這就是為什么強化訓練的發展再次遇到瓶頸的原因。國內外許多研究人員提出了多種層次強化學習算法,主要從兩個方面進行描述:第一,層次強化學習的經典算法主要包括基于選項Option 的分層強化學習、基于MAXQ 值函數分解的分層強分化學習;第二,最新的分層強化學習算法主要包括無監督層方法、子策略分層方法、自動分層方法和多層結構分層方法。

1.1.1 經典分層強化學習算法

SUTTON R S 等人[1]提出,SMDP 原則上是一種固定選項MDP。選項是時間序列的一個有意義的決策過程,也可以理解為在一定時間段內發生的行動。BACON P L 等人[2]將此選項與Actor-Critic 相結合,并提出了Option-Critic 框架;PARR R 等人[3]提出了一種分層MDP策略,稱為HAMs分層抽象機,它通過限制應用的策略類別來簡化復雜的MDP;DIETTERICH T G[4]提出了一種新的分層強化學習方法,該方法將目標MDP 分解為更小的MDP 值函數組合。雖然這3 種方法相對獨立,但它們是相同的觀點,為SMDP提供了理論基礎。經典分層強化學習算法匯總如表1所示。

表1 經典分層強化學習算法匯總

1.1.2 最新分層強化學習算法

ANDREAS J 等人[5]提出了基于策略草圖的多任務深度強化框架的建立,并建立了將每個子任務與模塊化子策略相結合的模型。子策略培訓采用AC方法,通過約束子策略的參數,最大限度地發揮整體任務特定策略的優勢;RAFATI J 等人[6]提出了一種新的無模型子目標檢測的分層增強方法,使用額外的無監督學習來創建符合Agent 最近軌跡的適當子目標。Levy 提出了一個三級遞階強化學習框架,即層次角色批評HAC。在這個層次結構框架中,在常見的多層層次上克服了Agent的穩定性問題,同時它也是第一個成功學習三層層次結構與任務的連續狀態和操作空間并行的框架;OpenAI 實驗室的Frans 提出了端到端算法MLSH,該算法實現了自動分層結構,無需太多手動配置即可與環境通信,并且能夠快速學習未知任務的子策略。最新的分層強化算法如表2所示。

表2 最新分層強化學習算法匯總

表3 算法參數設置

在總結了經典和最新的分層強化學習算法的優缺點后,不難發現,當不同的算法面臨大規模復雜環境和低成本問題時,Agent 面臨學習效率、算法穩定性和收斂速度等問題。目前,分層強化學習的主要算法通常采用兩層結構,一層為頂層結構,另一層為底層結構。例如:KULKARNI T D等人[7]提出了一種h-DQN算法。

1.2 國內外自動滲透測試的現狀分析

滲透測試通過對目標網絡環境的智能分析,將找到攻擊路徑和測試手段,滲透計劃執行目標網絡漏洞測試。目前,自動突破測試路徑檢測的研究主要集中在以下兩個方面。

1.2.1 層強化學習是自動化滲透測試路徑檢測的主要研究領域

王海紅等人[8]總結了當前自動化滲透測試攻擊路徑檢測的研究現狀,提出了一種基于網絡信息增益的攻擊路徑規劃算法,該算法將滲透測試形式化為馬爾可夫決策過程,利用網絡信息進行獎勵,并指導Agent選擇最佳響應動作。LI T 等人[9]提出了一種基于QLearning 的最優攻擊路徑生成方法,該方法受Agent 需要事先獲取網絡拓撲的限制。為了適用于大規模的網絡場景,將分層強化學習應用到智能體的訓練中,目標和措施的選擇可以分層,以提高訓練的有效性?;趶娀瘜W習的方法是基于馬爾可夫決策模型的。這項研究只在簡單網絡場景的實驗中得到了驗證,算法的速度和可擴展性還有很長的路要走。

1.2.2 處理稀疏值獎勵問題的處理可以促進自動化滲透測試路徑發現的實際應用與落地

在自動化滲透測試路徑發現任務中,稀疏獎勵問題是分層強化學習的核心問題,解決稀疏獎勵問題有利于提升樣本使用效率和優化策略水平。楊惟軼等人[10]介紹了稀疏獎勵問題的5種解決方案,包括經驗回放機制、獎勵設計與學習、多目標學習、探索與利用和輔助任務。楊瑞等人[11]發現,使用外部引導信息的算法平均性能優于無外部引導信息的算法,但后者對數據的依賴性較小。

2 算法設計

AHM-DQN 算法是對h-DQN 算法進行改進和優化,按照分層強化學習的思想將更復雜的任務分解,自動將大問題分解為更簡單的子任務,并首先得到子任務的求解策略,得到求解總體任務的優化策略,提高Agent 訓練的效率;融入記憶因子,解決獎勵值稀疏問題,加快了算法收斂速度;根據Q 函數的最優值,找到滲透測試的最優路徑。

其研究內容包括網絡安全、滲透測試、分層強化學習等學科,具有一定的理論和應用價值,具體研究內容如下。

2.1 任務會自動分層,以提高Agent的訓練效率

當前的分層強化學習中,分層劃分和任務配置通常在相對復雜的環境中手動進行,這使算法面臨不穩定性和附加超參數等挑戰。例如:h-DQN算法采用手動預置的雙層網絡結構,如圖1 所示。Controller 層級設置了一個可以通過預定義的外部獎勵實現的小目標,Controller 層級根據預定義的內部獎勵進行action。隨著環境規模的擴大,Meta Controller 層級創建了無數子目標,h-DQN 算法的效率降低。換句話說,只有當所有狀態都是離散的、有限的和已知時,該算法才適用。因此,在自動分層的基礎上,按照半馬爾科夫決策過程進行自動分層,通過Agent 與網絡環境的交互,根據任務目標和措施的選擇,減少勞動力,使Agent 具有更好的自主學習能力,提高Agent訓練的效率。

圖1 h-DQN分層結構圖

2.2 融入記憶因子,增強解決稀疏獎勵問題的能力

在稀疏獎勵環境中,Agent很難學習獲得獎勵所要的動作,因此在計算獎勵值時,融入遺忘系數λ和折扣因子γ模型定義為公式(1),表示初始訓練狀態下的記憶因子為0;如果相應的行為系數為1,在其他情況下,當在某種狀態下做出的決定的影響隨著時間的推移繼續減弱時,記憶會以指數形式逐漸分解為零。記憶因子可以幫助Agent 有效地記憶和學習,提高Agent 的學習效率。

在h-DQN算法中,Controller層級負責接收子任務和Meta Controller 層級的當前狀態,然后選擇可能操作,其目的是最大化人工預設的內部獎勵之和,如公式2所示,通過計算Q函數的值來連續逼近最佳值。

Meta Controller 層級負責獲取當前狀態,然后從Meta Controller 層級執行的任何子任務中選擇子任務。其目的是最大限度地增加實際的外部獎勵之和。在迭代過程中,通過計算Q 函數值,不斷逼近最優值,如公式(3)。

雖然h-DQN算法是一種較好的無監督學習方法,但當獎勵值稀疏時,存在著收斂速度較慢的問題,當融入記憶因子時,每次達到最優Q函數值時,存儲相應的狀態信息,并為存儲的信息提供一個記憶因子。最后,選擇獎勵值較大的那條鏈路作為較優鏈路,路徑代價與獎勵值成反比,算法能夠調整學習程度,更好地平衡當前和未來收益,使算法能夠更快地收斂,進一步縮短計算時間。

2.3 根據最優Q值,發現最優滲透測試路徑

在大規模網絡環境下,實驗比較了h-DQN算法和本項目優化的分層強化學習算法的性能,再改變網絡規模,比較算法在不同網絡場景下的學習效率和收斂速度。這意味著,在滲透測試時選擇漏洞的過程變成了選擇分層強化學習的動作。該算法不需要利用攻擊圖生成狀態-漏洞信息,而是通過分層強化訓練,使Agent 通過多次使用、探索與獎勵輪次形成完整的狀態-漏洞,這樣訓練完成后,可以根據每個狀態選擇相應的最佳漏洞,并根據該算法獲得最佳Q值,達到推薦最佳滲透路徑的效果。

3 實驗

該項目采用了pytorch算法框架,由于現實世界中Agent交互和訓練的成本較高,模擬了大中型網絡和局域網網絡環境,并控制了所提出的深度強化算法的總體效率。

3.1 實驗場景

該項目實驗場景如圖2所示,它由核心層、聚合層和接入層三層網絡結構組成,即由核心層交換機、匯聚層交換機、接入層交換機設備組成。兩個核心層交換機是匯聚層交換機上行鏈路設備,采用快速收斂路由協議來實現故障切換和負載均衡。如果鏈接意外,也可以從備份鏈接合并該鏈接。每個匯聚層交換機應放置在一層的設備間,上部應設置兩個核心交換機,下部應設置接入層交換機。接入層交換機應放置在各層的管理空間內,要求最上面一行是匯聚交換機,最下面一行是每個接入層交換機。

圖2 滲透測試路徑模擬環境拓撲圖

3.2 實驗設置

該文設定Agent 在訓練與事實過程中不斷地掌握網絡拓撲信息以及網絡路由轉發信息。為了對該文所提出的AHM-DQN 算法進行評價,選擇h-DQN算法和MLSH算法對該文提出的算法學習效率和收斂速度進行了檢驗,可以有效降低導航策略的學習難度。同時,設置合適的算法參數。

3.3 實驗結果

Agent可以快速學習未知任務的子策略,訓練主策略以自動找到合適的子策略,克服手動設置限制,并允許他們獨立學習。在添加記憶因子后,算法具有一定的記憶,關于某個狀態的未來決策會影響當前。每次達到Q函數的最優值時,都會記錄相應的狀態信息,并為記錄的信息提供一個記憶因子。最后,通過訓練選擇一個較優鏈路作為更好的環節,可以進一步縮短計算時間,加快稀疏值獎勵問題的處理速度。

在圖3中,我們可以看到使用不同方法的Agent在復雜的在線環境中學習滲透路徑策略,例如:h-DQN算法和MLSH算法的訓練曲線增長緩慢,表明Agent在復雜的網絡環境中難以學習和接受滲透測試路徑,但AHM-DQN算法的訓練曲線在整個學習和訓練階段不斷增加。在訓練的初始時刻,由于行為選擇模型沒有學習到有效的行為選擇策略,Agent積累的內部和外部獎勵值沒有助于找到最佳滲透測試策略。隨著訓練的進行,AHM-DQN 算法行為選擇算法逐漸學習到一種有效的采樣策略,因此該算法滲透測試的路徑檢測成功率在最高水平上非常穩定,明顯優于其他方法。以上結果表明,該文提出的AHM-DQN 算法可以有效降低復雜網絡環境下入侵檢測策略學習的難度,讓Agent更好地學習滲透測試路徑發現策略。該算法在學習效率和收斂速度方面優于其他分層強化學習算法,解決了滲透測試主要依賴于人工的問題。

圖3 任務的平均成功率

4 結論

AHM-DQN算法是將分層強化學習與自動化滲透測試相結合,優化和改進了h-DQN算法,提高Agent的訓練效率,加快算法的收斂速度,適應動態網絡環境的變化。(1)根據半馬爾科夫決策過程,通過Agent與網絡環境的交互,自動放置任務目標和動作的選擇,以提高算法的效率;(2)融入記憶因子,幫助Agent有效記憶和學習,解決獎勵值稀疏性問題,提升算法的準確定;(3)在較大的網絡環境下測試算法的效率和收斂性,并找到最優滲透測試路徑。該文尚未解決復雜的真實網絡測試環境的問題,并將在將來對其進行探索和改進。

猜你喜歡
分層算法測試
基于分層教學下的高中數學“讓學”策略
哪種算法簡便
高中語文分層教學的有效性探索
高中分層走班教學模式探究
Travellng thg World Full—time for Rree
心理測試
算法框圖的補全
算法初步知識盤點
心理小測試
測試
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合