• 沒有找到結果。

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

第五節、 失誤樹分析

5.1 簡介

失誤樹(fault tree)是 1962 年由貝爾實驗室(Bell Telephone Laboratories)發表,

從系統的失效現象做出發,根據這些失效現象,分析失效發生的原因及造成系統 失效的可能部位。而為了使失誤樹能順利運作,我們需要輸入精確的錯誤資料和 適當的模型(model),才能計算出失誤發生的風險。圖 73 為一失誤樹的範例,用 來表示 Top event 發生的風險,其中每一個圓形的節點都代表一個事件,而失誤 樹則透過一些邏輯的組合來描述這些事件對 Top event 的影響。例如圖 73 的失誤 樹告訴我們:「當 X2 和 X3 同時發生或 X1 發生時,top event 變會發生」。

127

圖 73、Example of fault tree

我們也可以透過下面的式子來計算 top event 的風險值:

5.2 應用 Fault Tree Analysis 進行違反資安規則之風險量化分析

我們利用失誤樹分析法(fault tree analysis)來為特殊的環境設定進行風險量 化,並且應用在這次的計畫當中。

128

圖 74、更新頻率異常之失誤樹

2. 回報頻率異常

和更新頻率異常類似,回報頻率異常的評估方式以回報的連線數和該主機本 身的一般連線數比較,若太高或太低都將會被視為異常,詳細的失誤樹顯示在圖 75 中。

圖 75、回報頻率異常之失誤樹

3. 不安全的服務組合

由於不安全的服務組合需要由資安專家來定制,因此我們在這裡只列出兩種 可能的不安全服務組合,分別為 DNS+任何服務及 HTTP 服務+FTP 服務,而當 主機存在的不安全服務組合愈多,其存在的風險就愈高,圖 76 為使用不安全服 務組合之失誤樹。其中,左子樹為 DNS 和其他服務共存的機率,計算方式為出 現 DNS 連線的機率乘上其他服務連線的機率,當兩者機率愈高時,該項異常發 生的機率也愈高。

129

圖 76、不安全的服務組合之失誤樹

4. 使用未申請的服務

為了找出主機是否開設了某種不在申請內的服務,我們會檢查該主機各個 port 的 in-link 是否超出所有 port 的平均 in-link 太多,以及該 port 是否為 well-known port,若該 port 為 well-known port 則背後存在服務的風險則較高,圖 77 為使用未申請服務之失誤樹。其中右子樹的計算方式為:沒有在伺服器清單 的連線數/連進所有 well-known port 的連線數,即為發生連進不在伺服器清單中 的非 well-know port 連線的機率。

圖 77、使用未申請服務之失誤樹

5. 使用未申請的 port

使用未申請 port 的風險計算方式和使用未申請服務類似,但因為使用的 port 都必需經過申請,因此只要有不該開設的 port 出現,即會被視為異常,圖 78 為 使用未申請 port 之失誤樹。和未申請服務不同的是,其右子樹的計算方式為:

非 well-known port 的連線數/所有連線數,即為發生非 well-known port 連線的機 率。

130

圖 78、使用未申請 port 之失誤樹

5.3 應用防火牆日至計算失誤樹風險

透過防火牆日誌(firewall log)我們可以得到主機的連線履歷(profile),並且針 對失誤樹的每一 leaf node 計算出其機率,例如:假設有 A、b 兩主機,其的 outlink 連線數分別為 100 及 200,其中 A 主機有 20 個 outlink 為連往 update server 的連 線 ; 而 B 主 機 則 為 30 個 , 則 主 機 A 存 在 未 更 新 異 常 的 風 險 為 : 1-(1-(20/100)*(100/300))(1-(1-20/100)*(1-100/300))=0.564;而主機 B 存在未更新 異常的風險則為:

1-(1-(30/200)*(200/300))(1-(1-(30/200))*(1-(200/300)))=0.355,因此,我們可以判 斷 A 主機的風險較高。由於風險計算的結果和失誤樹的結構有密切的關系,我 們必需考慮所有可能影響的因素,並且將這些因素正確的組織起來,如此才能避 免計算出錯誤的風險。

5.4 系統實作說明

在實作上,可以分為三個部份,失誤樹編輯器(fault tree editor)、失誤樹分析 器(fault tree analysis)及風險瀏覽器(risk browser)。

131

圖 79、回報數異常之 XML

<?xml version="1.0" encoding="UTF-8"?>

<Fault-Tree>

132

1. 失誤樹編輯器

圖 80 為一編輯回報數異常之畫面,此編輯器修改自 faultCat,我們提供十一 種 events 做為將失誤樹的節點。並將編輯完成之失誤樹存成 XML 格式,如圖 80 為回報數異常之 XML 檔案(請參考圖 75 之失誤樹),以做為分析時用。其中十一 種 events 分別為:

a. 所有連線數 b. 更新連線數 c. HTTP 連線數 d. DNS 連線數 e. FTP 連線數 f. 回報連線數

g. Well-known port inlink h. Well-known port outlink i. 全域 well-known port inlink j. 全域 well-known port outlink k. 全域總連線數

圖 80、回報數異常之編輯畫面

133

2. 失誤樹風險分析

讀取 XML 格式之失誤樹,並由資料倉儲中取得對應之資料進行分析,以下 為十一種 events 的資料取得方式。

a. 所有連線數

select [Measures].[Count] on 0, [ips].Children on 1, [hostgroupD].[3] on 2 from [log]

b. 更新連線數

select [Measures].[Count] on 0, [ips].Children on 1, [hostgroupD].[7] on 2 from [log]

c. HTTP 連線數

select [Measures].[Count] on 0, [ips].Children on 1, [portD].[80] on 2 from [log]

d. DNS 連線數

select [Measures].[Count] on 0, [ips].Children on 1, [portD].[53] on 2 from [log]

e. FTP 連線數

select [Measures].[Count] on 0, [ips].Children on 1, [portD].[21] on 2 from [log]

f. 回報連線數

select [Measures].[Count] on 0, [ips].Children on 1, [hostgroupD].[7] on 2 from [log]

g. Well-known port inlink

with Set [port] As [wellknownportD].FirstChild : [wellknownportD].LastChild Member [Measures].[AG] As Aggregate([port]) select {[Measures].[AG], [Measures].[Count]} on 0 , [ipd].Children on 1 from [log]

h. Well-known port outlink

with Set [port] As [wellknownportS].FirstChild: [wellknownportS].LastChild Member [Measures].[AG] As Aggregate([port]) select {[Measures].[AG], [Measures].[Count]} on 0 , [ips].Children on 1 from [log]

134

i. 全域 well-known port inlink

with Set [port] As [wellknownportD].FirstChild : [wellknownportD].LastChild Member [Measures].[AG] As Aggregate([port]) select {[Measures].[AG], [Measures].[Count]} on 0 , [ipd].[All ipds] on 1 from [log]

j. 全域 well-known port outlink

with Set [port] As [wellknownportS].FirstChild : [wellknownportS].LastChild Member [Measures].[AG] As Aggregate([port]) select [Measures].[AG] on 0 , [ips].[All ipss] on 1 from [log]

k. 全域總連線數

select [Measures].[Count] on 0, [ips].Children on 1 from [log]

3. 風險瀏覽器

圖 81 為一風險瀏覽器,其中可以選擇日期、IP 位置、fault tree 種類及機率 值進行篩選,瀏覽計算出之失誤樹風險值。

圖 81、風險瀏覽器

135

5.5 結論

失誤樹分析(Fault tree analysis)可以根據使用者不同的需求制定不同的計算 模型,使分析更貼近實際狀況,但在模型的建立上則需要花費較多的工夫,必需 仰賴資訊安全領域的專家來分析、拆解出各種交互影響的因素,並且為各種因素 之間定義關聯,而模型的建立則大大的影響了分析的準確度。在我們的計畫中,

因為資安規則為特殊的客制化規則;因此,我們必需以 fault tree 來實現風險量化 分析,才能計算出各種違反規定的風險值,將異常狀況分級,並且利用此技術來 對異常行為進行深入的風險量化評估及分析。

136