Upload
raymond0820
View
35
Download
2
Embed Size (px)
Citation preview
從 AlphaGo 的設計淺談資安領域的異常分析流程Raymond
2
• Raymond– 平常維護個人網站 systw.net ( 牛的大腦 )– 管理過整個學校的系統與網路– 開發過一些和資料分析有關的系統– 曾參與資安事件調查、資安健診、 DDoS 演練等– 當過兼任講師與資安教育訓練講師– 興趣是網路安全,系統開發,異常偵測
3
AlphaGo2016 最強的 AI 圍棋系統,曾打敗多位世界知名的棋王其中使用的分析流程,值得我們思考如何應用在資安上
資安挑戰越來越劇烈自動化異常分析需求日益俱增駭客越來越聰明,總是能想到很多怪招入侵系統,我們需要很多有智慧的工具幫助我們抵禦資安攻擊,快速解決資安事件
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.
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
6
Supervised Learning讀進來的資料需要有 label 的,要明確告訢演算法這筆資料的分類
Unsupervised Learning讀進來的資料沒有 label 的,餵給演算法後會得到一些資訊
Reinforcement Learning類似訓練寵物的方式,針對輸出結果加分或扣分來學習什麼是好或不好
7
Unsupervised Learning
Supervised Learning
Supervised Learning
By http://scikit-learn.org
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
下棋模型(可以想像是一個大腦,這個大腦已經可以去下棋了)
圍棋專家的棋步
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
下棋模型(可以想像是一個大腦,這個大腦已經可以去下棋了)
有實戰經驗的下棋模型(可以想像這個大腦,經過實戰後更有經驗)
不斷和自己下棋,訓練自己的模型利用所學到的圍棋技巧,不斷和自己對戰,訓練自己的模型
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
有實戰經驗的下棋模型
判斷勝率的模型(可以想像是第二顆大腦,會計算每個盤面的價值,以協助計算勝率)
根據實戰的過程和結果,透過迴歸推導出另一個模型
11
• 由成熟的演算法所構成• 特別的學習與決策流程
如果應用在資訊安全系統的分析流程,可能會長怎樣呢 ?
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 的輔助
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
14
你的電腦被駭了嗎?上述提到的對你應該不痛不養,我們來一點和生活有關的
15
你有發現奇怪的 Process嗎 ?
16
奇怪的 Process
17
更多奇怪的 Process
用心的駭客,連名稱,描述,簽章都準備好了,但還是有個地方沒改到
18
事後分析沒有無法入侵的組織,但有走過留下的痕跡
你已經被駭了,但防毒軟體不會告訢你因為你中的是最新的病毒,因為你中的是客製化的病毒
SOLUTION
19
我們來研究一下為什麼我們知道這個 process 異常
1. 參數和路徑不對此行程的參數不對,檔案不在 system32 下( domain knowledge )
2. 不一樣和所有電腦的指令格式不同,檔案位置不同(統計資訊)
20
Information Database
Information of process,file,…etc
所有電腦的行程資訊 (指令參數 , 使用的 dll) 和檔案資訊等
行程資訊資料庫 ( 針對已知狀況做判斷 )
Basic statistics method
node model
但我不知道未知狀況,所以這邊以 DB為基礎,用非監督學習建立一個 model ,以支援 Outlier detection
我們不可能知道每個檔案的實際位置,每個行程的參數應該怎樣所以要收集每台電腦的檔案與行程等相關資訊,建立成一個資料庫,判斷檔案位置是否異常,是否應該有數位簽章,和他的檔案大小是否異常
Basic Rule
鐵則與經驗
21
node model
這個 model 用來分析個體本身的異常行為 (File 資訊 ,process 資訊 ) ,可計算被滲透的機率
已被滲透
當我把資料餵給此模型時,可以知道此結點是否已被滲透
99%1% ~沒被滲透
22
我們都知道一個 model 是不夠的Alphago 有選子和整體盤面評估 2 個 model我們只有個體被感染的 model ,但不知道誰來感染或去感染誰?
23
電腦A
電腦B
電腦C
電腦D
從 Windows Event Log 發現,帳號 Gnir 從電腦 A登入到電腦 B 和電腦 C ,在從電腦 C登入到電腦 D
帳號 Gnir 的登入軌跡
24
Attacker move log User move log
Connection model
透過 SL 學習 2種move 方法,產生model
當我把資料餵給此模型時,可以知道那些連結方式是有問題的
Anomaly Map
異常路徑 正常路徑
單一帳號會不會突然連這麼多設備 ?正常情況下我不知道?但我們可以用 SL 學習,讓機器告訢我就好了
25
node model
分析個體本身的異常行為 (File 資訊 ,process 資訊 ) ,可計算被滲透的機率
connection model
透過節點之間的連結找出可能被入侵的來源
DecisionTree
透過 2 個 Model 事後分析,追蹤駭客活動
透過決策樹了解來龍去脈,得到人類可理解的資訊
算出被滲透的電腦與攻擊路徑,並找到 Source ,管理者可直接修補入侵點Attack Source
Anomaly map Infected % ?
Source
26
node model
分析個體本身的異常行為 (File 資訊 ,process 資訊 ) ,可計算被滲透的機率
connection model
透過節點之間的連結找出可能被入侵的來源
DecisionTree
透過 2 個 Model 事後分析,追蹤駭客活動 ++
透過決策樹了解來龍去脈,得到人類可理解的資訊
算出被滲透的電腦與攻擊路徑,並找到 Source ,管理者可直接修補入侵點Attack Source
Anomaly map Infected % ?
Source
policy model
或許也可以在增加一個 model ,協同評估組織的安全政策是否強健,判斷軟體版本是否過舊,帳號密碼是否定期更新,評估風險等級
27
• 從 AlphaGo 的設計,啟發了很多分析流程的靈感• 面對複雜問題時,要透過不同 model 的優勢合力解決