27
從 AlphaGo 從從從 從從從從從從從從從從從從從 Raymond

從AlphaGo的設計淺談資安領域的異常分析流程

Embed Size (px)

Citation preview

Page 1: 從AlphaGo的設計淺談資安領域的異常分析流程

從 AlphaGo 的設計淺談資安領域的異常分析流程Raymond

Page 2: 從AlphaGo的設計淺談資安領域的異常分析流程

2

• Raymond– 平常維護個人網站 systw.net ( 牛的大腦 )– 管理過整個學校的系統與網路– 開發過一些和資料分析有關的系統– 曾參與資安事件調查、資安健診、 DDoS 演練等– 當過兼任講師與資安教育訓練講師– 興趣是網路安全,系統開發,異常偵測

Page 3: 從AlphaGo的設計淺談資安領域的異常分析流程

3

AlphaGo2016 最強的 AI 圍棋系統,曾打敗多位世界知名的棋王其中使用的分析流程,值得我們思考如何應用在資安上

資安挑戰越來越劇烈自動化異常分析需求日益俱增駭客越來越聰明,總是能想到很多怪招入侵系統,我們需要很多有智慧的工具幫助我們抵禦資安攻擊,快速解決資安事件

Page 4: 從AlphaGo的設計淺談資安領域的異常分析流程

4

Decision Method

Model1:Policy Network

Model2:Value Network

MCTS

Best Action(Decision Result)

根據盤面狀況選擇要下那一步棋 計算盤面的分數 , 可得到整個盤面的勝率

結合了蒙地卡羅樹狀搜尋找出最好的棋步

AlphaGo combines the policy and value networks in an MCTS algorithm that selects actions by lookahead search.

Page 5: 從AlphaGo的設計淺談資安領域的異常分析流程

5

Training pipeline

Reinforcement learning by Policy gradient method

Regression by 15 layer deep neural layer

Supervised learning by 13 layer deep neural layer

Model1:Policy Network

Model2:Value Network

Policy Network(SL)

Policy Data

Page 6: 從AlphaGo的設計淺談資安領域的異常分析流程

6

Supervised Learning讀進來的資料需要有 label 的,要明確告訢演算法這筆資料的分類

Unsupervised Learning讀進來的資料沒有 label 的,餵給演算法後會得到一些資訊

Reinforcement Learning類似訓練寵物的方式,針對輸出結果加分或扣分來學習什麼是好或不好

Page 7: 從AlphaGo的設計淺談資安領域的異常分析流程

7

Unsupervised Learning

Supervised Learning

Supervised Learning

By http://scikit-learn.org

Page 8: 從AlphaGo的設計淺談資安領域的異常分析流程

8

Supervised LearningFor the first stage of the training pipeline, we build on prior work on predicting expert moves in the game of Go using supervised learning

透過監督式學習將圍棋專家的棋步學習起來

Model1:Policy Network

Model2:Value Network

Policy Network(SL)

Reinforcement Learning

Regression

Supervised Learning

Policy Data

下棋模型(可以想像是一個大腦,這個大腦已經可以去下棋了)

圍棋專家的棋步

Page 9: 從AlphaGo的設計淺談資安領域的異常分析流程

9

Reinforcement LearningThe second stage of the training pipeline aims at improving the policy network by policy gradient reinforcement learning (RL)

Model1:Policy Network

Model2:Value Network

Policy Network(SL)

Regression

Supervised Learning

Policy Data

Reinforcement Learning

下棋模型(可以想像是一個大腦,這個大腦已經可以去下棋了)

有實戰經驗的下棋模型(可以想像這個大腦,經過實戰後更有經驗)

不斷和自己下棋,訓練自己的模型利用所學到的圍棋技巧,不斷和自己對戰,訓練自己的模型

Page 10: 從AlphaGo的設計淺談資安領域的異常分析流程

10

RegressionThe final stage of the training pipeline focuses on position evaluation

Model1:Policy Network

Model2:Value Network

Policy Network(SL)

Regression

Supervised Learning

Policy Data

Reinforcement Learning

有實戰經驗的下棋模型

判斷勝率的模型(可以想像是第二顆大腦,會計算每個盤面的價值,以協助計算勝率)

根據實戰的過程和結果,透過迴歸推導出另一個模型

Page 11: 從AlphaGo的設計淺談資安領域的異常分析流程

11

• 由成熟的演算法所構成• 特別的學習與決策流程

如果應用在資訊安全系統的分析流程,可能會長怎樣呢 ?

Page 12: 從AlphaGo的設計淺談資安領域的異常分析流程

12

Binary Analysis

malware goodware

Static model

就像給電腦看很多圖片一樣,電腦會知道那些圖代表什麼意思給電腦看很多好的和不好的執行檔,電腦就會有辦法判斷

根據程式碼 ,String, 使用那些 DLL,…etc做成 dataset, 類似靜態分析

dataset

丟進沙箱記錄其行為 , 類似動態分析

Dynamic model

dataset

參考靜態分析的資訊,填入相關參數,解決程式無參數不執行的問題

透過 SL產生 model

malware or goodware

透過 SL產生 model

判斷是否為惡意程式

不過這種應用方式應該滿常見的,我猜 binary 分析被做到爛掉,市面上也有很成熟的產品,或許你會覺得研究這塊發展不大

Training

Testing有些程式執行後才會露出真面目,所以單靠靜態分析不夠,還需要其他 model 的輔助

Page 13: 從AlphaGo的設計淺談資安領域的異常分析流程

13

DDoS Analysis

Simulated Attack

Policy Model(SL)

實際攻防演練,發動 Syn 、 ack 、 slow attack 、放大等各種攻擊,並創造正常存取行為,讓目標學習建立模型

Real Network Traffic

Policy Model

Supervised Learning

初始權重

Reinforcement Learning

Statistic Model

Statistic method

系統上線直接面對真實流量,這些流量包括有害和無害的存取

若此存取導致目標受衝擊,將此存取設為負評若此存取不會影響目標,將此存取設為正評透過此方法不斷訓練防禦模型

學到基本防禦模型

2015匿名者反課綱 DDoS 攻擊, 2016爆發 IoT 發動大規模 DDoS 攻擊, 2017年券商被 DDoS勒索, DDoS 攻擊事件頻傳

不過 DDoS 可能離各位太遠,因為大家沒有網站,比較沒 feel ,因為你不會被 DDoS

Page 14: 從AlphaGo的設計淺談資安領域的異常分析流程

14

你的電腦被駭了嗎?上述提到的對你應該不痛不養,我們來一點和生活有關的

Page 15: 從AlphaGo的設計淺談資安領域的異常分析流程

15

你有發現奇怪的 Process嗎 ?

Page 16: 從AlphaGo的設計淺談資安領域的異常分析流程

16

奇怪的 Process

Page 17: 從AlphaGo的設計淺談資安領域的異常分析流程

17

更多奇怪的 Process

用心的駭客,連名稱,描述,簽章都準備好了,但還是有個地方沒改到

Page 18: 從AlphaGo的設計淺談資安領域的異常分析流程

18

事後分析沒有無法入侵的組織,但有走過留下的痕跡

你已經被駭了,但防毒軟體不會告訢你因為你中的是最新的病毒,因為你中的是客製化的病毒

SOLUTION

Page 19: 從AlphaGo的設計淺談資安領域的異常分析流程

19

我們來研究一下為什麼我們知道這個 process 異常

1. 參數和路徑不對此行程的參數不對,檔案不在 system32 下( domain knowledge )

2. 不一樣和所有電腦的指令格式不同,檔案位置不同(統計資訊)

Page 20: 從AlphaGo的設計淺談資安領域的異常分析流程

20

Information Database

Information of process,file,…etc

所有電腦的行程資訊 (指令參數 , 使用的 dll) 和檔案資訊等

行程資訊資料庫 ( 針對已知狀況做判斷 )

Basic statistics method

node model

但我不知道未知狀況,所以這邊以 DB為基礎,用非監督學習建立一個 model ,以支援 Outlier detection

我們不可能知道每個檔案的實際位置,每個行程的參數應該怎樣所以要收集每台電腦的檔案與行程等相關資訊,建立成一個資料庫,判斷檔案位置是否異常,是否應該有數位簽章,和他的檔案大小是否異常

Basic Rule

鐵則與經驗

Page 21: 從AlphaGo的設計淺談資安領域的異常分析流程

21

node model

這個 model 用來分析個體本身的異常行為 (File 資訊 ,process 資訊 ) ,可計算被滲透的機率

已被滲透

當我把資料餵給此模型時,可以知道此結點是否已被滲透

99%1% ~沒被滲透

Page 22: 從AlphaGo的設計淺談資安領域的異常分析流程

22

我們都知道一個 model 是不夠的Alphago 有選子和整體盤面評估 2 個 model我們只有個體被感染的 model ,但不知道誰來感染或去感染誰?

Page 23: 從AlphaGo的設計淺談資安領域的異常分析流程

23

電腦A

電腦B

電腦C

電腦D

從 Windows Event Log 發現,帳號 Gnir 從電腦 A登入到電腦 B 和電腦 C ,在從電腦 C登入到電腦 D

帳號 Gnir 的登入軌跡 

Page 24: 從AlphaGo的設計淺談資安領域的異常分析流程

24

Attacker move log User move log

Connection model

透過 SL 學習 2種move 方法,產生model

當我把資料餵給此模型時,可以知道那些連結方式是有問題的

Anomaly Map

異常路徑 正常路徑

單一帳號會不會突然連這麼多設備 ?正常情況下我不知道?但我們可以用 SL 學習,讓機器告訢我就好了

Page 25: 從AlphaGo的設計淺談資安領域的異常分析流程

25

node model

分析個體本身的異常行為 (File 資訊 ,process 資訊 ) ,可計算被滲透的機率

connection model

透過節點之間的連結找出可能被入侵的來源

DecisionTree

透過 2 個 Model 事後分析,追蹤駭客活動

透過決策樹了解來龍去脈,得到人類可理解的資訊

算出被滲透的電腦與攻擊路徑,並找到 Source ,管理者可直接修補入侵點Attack Source

Anomaly map Infected % ?

Source

Page 26: 從AlphaGo的設計淺談資安領域的異常分析流程

26

node model

分析個體本身的異常行為 (File 資訊 ,process 資訊 ) ,可計算被滲透的機率

connection model

透過節點之間的連結找出可能被入侵的來源

DecisionTree

透過 2 個 Model 事後分析,追蹤駭客活動 ++

透過決策樹了解來龍去脈,得到人類可理解的資訊

算出被滲透的電腦與攻擊路徑,並找到 Source ,管理者可直接修補入侵點Attack Source

Anomaly map Infected % ?

Source

policy model

或許也可以在增加一個 model ,協同評估組織的安全政策是否強健,判斷軟體版本是否過舊,帳號密碼是否定期更新,評估風險等級

Page 27: 從AlphaGo的設計淺談資安領域的異常分析流程

27

• 從 AlphaGo 的設計,啟發了很多分析流程的靈感• 面對複雜問題時,要透過不同 model 的優勢合力解決