# CyberBattleSim ### Reinforcement Learning 簡介 強化學習(RL)為機器學習的分支,適合用於連貫性決策的問題上,以CyberBattleSim專案來說,最終目標是需要找到主機上的Flag,過程中需要持續搜索網路節點中的電腦,這些節點中的電腦都運行不同的OS、服務,並且預設存在指定的漏洞,攻擊者會選擇一種攻擊方式對主機進行掃描、攻擊,以拿下節點中的電腦作為小目標,並給予適當的獎勵。 **名詞** Agent:演算法 Enviroment:接收,輸出資訊,並包含資訊與獎勵reward 重點在於agent 和 enviroment 之間的互動 ### 安裝成功畫面   ### Chain network CyberBattle Gym played by a random agent  **參數說明** ==OpenAI Gym== OpenAI開源RL套件,具有許多enviroment模組 ==logging== 紀錄以及將執行時產生的output輸出,設定初始level 為Error級別 ==gym.make()== 呼叫建置好的環境,微軟使用自行定義的CyberbattleChain,-v0是為了符合gym的格式  環境訊息 包含: 1. network 這邊定義為一個class 2. vulnerability_library 3. identifiers 主機服務 e.g. : Windows、Linux、SQLserver...FLAG:Linux 4. local_vulnerabilites e.g. :ScanBashHistory 、 ScanExplorerRecentFiles 5. remote_vulnerabilites e.g. :ProbeLinux、ProbeWindows 6. creationTime 7. LastModified  列出網路內的主機  攻擊方法矩陣 action space   模擬環境並進行訓練,設定10000 iterations ### 結果  > 圖1 : 在第9回合探測到一台Linux主機,並發現一個本地漏洞,獲得reward 49分  >圖2 :第10回合發現到Linux上一個遠端漏洞,並從start節點發起攻擊 獲得reward 45分  >圖3 : 第19回合,再次發現一個遠端漏洞,一樣嘗試發起攻擊,獲得reward 45 分  >圖4 :第73回合,攻擊者進行橫向移動,成功拿下Linux主機,記錄下主機服務Mysql 、Ubuntu等資訊,獲得reward 100。  >圖5: 第83回合,start節點再次探測到一台Windows主機和一個本地漏洞,獲得reward 49。  >圖6:第89回合,發現到Windows上遠端漏洞, 獲得reward 49。  >圖7:第90回合,發現到本地漏洞,並嘗試進行攻擊,獲得reward 40。  >圖8:第92回合,發現Windows上遠端漏洞,並嘗試進行攻擊,獲得reward 49。  >圖9:第237回合,成功和Windows連線,拿下該主機,並獲得reward 100。  >圖10:第247回合,探測到新的Linux主機,獲得reward 49。  >圖11:第253回合,發現Linux上具有一個遠端漏洞,由Windows節點向該主機上發起遠端攻擊,reward 45。  >圖12:第 256回合,再次發現一個本地漏洞,reward 49。  >圖13:再次發現Linux上的遠端漏洞,reward 45  >圖14:成功連線並拿下該Linux主機,reward 100 **說明:後續階段為 agent不停反覆進行探測、漏洞利用、移動的過程,因此先省略並在下方說明最終結果。** --- ### 最終結果  >圖14 >最終結果可以看見經歷了6080回合後結束Simulation,右圖呈現攻擊者探測完所有主機及發現漏洞後進行橫向移動的路徑(參照紅線),也可看出攻擊者在某個目標主機發現漏洞後,有嘗試在不同主機上發起遠端攻擊(參照橘線),因此會在發現主機後出現重複數個階段中看見連續出現local vulnerability 和 remote vulnerability,最終在各個節點上確實發現各自存在的漏洞以及這些漏洞影響攻擊者進行橫向移動的關聯。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up