• 沒有找到結果。

第五章、 網路風險分析與預警系統

第二節、 系統架構

本系統之目標為製作一套輔助管理者決策暨制定資安規則之系統,並且 利用視覺化的顯示介面來達成網路威脅分析及風險量化,將防火牆日誌分解 成包括 Source、Destination、Port、Time 等欄位,系統根據給定之規則防護 並監測主機的安全。使用者可利用查詢工具和網路連結履歷(Profile)將詳細 連線資料取出分析,配合時序資料之輔助來找出難以發現的攻擊,判斷是否 有異常行為發生。

圖 49 為本系統的整體架構圖,其中包含:資料來源擷取系統、資安法 則定義與編輯系統、資料庫與資料探勘系統以及資安法則驗証系統。以下將 分項逐一說明介紹。

圖 49、系統架構圖

105

2.1 資料來源擷取系統

為了減少在傳輸防火牆日誌時所需花費的成本(cost),包含網路頻寬、傳送 時間及磁碟空間,我們利用 2-tier 的方式來進行達到較高的效能(performance) 圖 50 為此架構之示意圖,各營區(battalion)有自已的 SIM 伺服器,收集各自營區的 防火牆日誌,再將分析後的異常資料,包含主機及連線清單,上傳至 master SIM 伺服器,並且我們在上傳的過程中加入壓縮及加密的機制,一方面可以進一步減 少資料量,另一方面可以防止資料在傳送過程中被惡意的攻擊者竄改。

圖 50、2-tier 之系統架構

資 料 擷 取 後 將 存 入 Log DB , 並 且 進 一 步 利 用 資 料 倉 儲 (data warehouse) 將 連 線 依 各 種 不 同 維 度 ( 如 : 時 間 、 IP 、 Port) 進 行 整 合 (aggregation),以利未來查詢時能更快速的回應。

2.2 資安法則定義與編輯器

資安法則定義及編輯器提供一圖形化的介面讓使用者可以輸入及設定自行 定義之資安規則。我們將規則拆解成各種子規則的組合,如表 21 為一利用兩項 子法則(S1 及 S2)組合而成的法則(R1),S1 及 S2 利用 Union 的方式組合。而相對 的,

106

max min Un safe port

Src_ip _gid

dst_ip _gid

s1 Null Null Null 100 2 Null 1 Null

s2 Null Null Null 1000 1 Null null 5 s3 Null 80 Null null null null null Null s4 Null Null Null Null Null 100 null null

107

Rule Root Left Right Operator Comment

R1 Yes S1 Null Null 列管主機規則

max min Un safe port

Src_ip _gid

dst_ip _gid

s1 Null Null Null 100 2 Null 1 Null

s2 Null Null Null 1000 1 Null null 5 s3 Null 80 Null null null null null Null s4 Null Null Null Null Null 100 null null

108

圖 53、更新頻率異常法則之 XML 文件

2.3 資料倉儲與履歷系統

為了替每一台主機建立個別的網路連結履歷(profile),並利用這份履歷來偵 測該台主機是否出現異常的行為並提出警告,我們將利用資料倉儲來計算各維度 及不同解析程度資料,使未來在資料的存取上能更加快速。而使用者便能由 profile 來判定主機異常的可能性,在後續小節中會說明網路連結履歷(profile)的 設計與設計流程並且介紹如何利用資料探勘中分群(clustering)技術來為網路中 的主機進行分群,以輔助資安專家在系統參數上的設定。

1. 資料倉儲

由於 Log DB 僅存放各別的連線記錄,當我們要查詢某一主機在某段時間內 的連線總數時,資料庫需要針對不同的需求來進行查詢,對於程式的效率性較 差,因此,我們利用資料倉儲來預先將可能會用到的數值計算出來,我們將計算 各別維度,如:IP、Port 及時間在不同解析程度,如:日、週、季、月、年,的連 線總數,將來需要用到這些資料時,便能即時取用,而不需要再額外進行計算。

2. 網路連結履歷(Profile)

我們所建立的履歷為一階層式的結構,初始的網路連接履歷為空,接著從防 火牆日誌(firewall log)中取得每個主機的 IP 位置和網際網路服務後,會先建立出

109

如圖 54 之樣示,並在 others 紀錄此 IP 所有連線數目和連線型態(如 Http、Ftp)。

圖 54、網路連結履歷初始圖

然而當某項服務的連線數值(count)大於使用者所定義的門檻時(Count

Threshold),會在網路連結履歷(profile)新增一項個別的節點(node)如圖 55 所示,

將 FTP 服務從 others 分離出來。經過一段使用者所定義的時間(Time window size) 後,整體的網路連結履歷(profile)會變成如

圖 55、連結履歷連結

其中因為排版空間的限制,我們只顯示 In link 的分支,另外在 Out link 的分 支其結構和 In link 是相同的,而每一層的定義將一一說明如下:

第一層:針對該主機所有的連結建立履歷。

 格式: (IP, Pattern)

 範例: (140.113.6.2, Pattern)

第二層:針對該主機的連出連結及連入連結分別建立履歷。

110

 格式: (IP, Direction, Pattern)

 範例: (140.113.6.2, IN, Pattern)

圖 56、新增個別服務項目

第三層:除了連結方向外,還會根據服務類別建立各自的履歷。

 格式: (IP, Direction, Service, Pattern)

 範例: (140.113.6.2, IN, http, Pattern)

第四層:除了連結方向及服務類別外,則會根據對方的 IP 位址建立個別履歷。

 格式: (IP, Direction, Service, Domain, IP, Pattern)

 範例: (140.113.6.2, IN, http, 140.112.*.*, 140.112.172.46, Pattern)

圖 57、主機履歷格式

111

圖 58、時間序列樣式

在每一層的履歷中,我們都會利用資料倉儲的技術來建立時間序列式的樣式 (time series pattern),如圖 58。

2.4 風險分析及預警

在風險分析方面,我們將針對各別主機利用失誤樹分析(Fault tree analysis) 來進行風險量化分析,而另一方面,我們也將利用資料探勘中的分群法(clustering) 來將連線行為相似的主機進行分群,再依各群體中主機異常數量,來判斷該群組 的風險程度。

首先是失誤樹的部份,同樣的我們將每天利用失誤樹計算一次風險值,並將 結果上傳至 master SIM,以供未來 MCC 查詢,因此,每台主機每天會有不同的 失誤樹的風險值。由於對於使用者新增的規則,其相對應的失誤樹並無法完全由 資料倉儲中取得所需的資料,亦即,無法完全得知每個節點的機率值,因為,我 們僅針對五項已知的資安規則進行計算,將這五棵失誤樹內進在程式中。

在群組風險上,我們將取各主機當日之履歷,做為資料物件(data object),進 行分群。主要可以分為兩部份,其一為特徵選擇(feature section),其二為相似度 比對(similarity measurement)。在特徵選擇方面,初步我們將利用後序排列(post order)的方式將樹狀結構的 profile 轉成序列(sequence),而此 post order sequence 即為該 profile 的特徵;而在相似度比對方面,我們將利用 editor distance 的方式 來計算兩個 sequence 的相似度,editor distance 為一利用 dynamic programming 的 概念設計的 pseudo-polynomial algorithm,在效率上有較好的表現。

當為各主機進行分群後,如圖 59 所示,當群組內的主機發生異常,我們便 能計算其異常的比例,做為群組的風險程度,當愈多的主機發生異常,其風險程

112

度也愈高。

圖 59、主機分群圖

113