關聯法則(Association Rule)演算法[24-25]是資料探勘上常運用的方法之一,最常使 用關聯法則的地方是在分析大量交易資料(Transaction Data)來找出商品項目間的相關 性。當商家把一段時間內每個顧客的購買資訊記錄下來後會產生大量的購物資料內容,
在使用關聯法則分析時,會把顧客一次性購物的購物內容視為一筆交易資料,這一筆交 易資料包含了顧客在該次放在購物車裡來結帳的所有商品項目清單。所以購物資料是由 每一筆交易資料所集合而成,也可以說是由每一次的購物車內容集合而成。當區分出每 一個購物車後,可以清楚地知道每一次的購物交易資料當中有哪些商品項目。關聯法則 演算法所要做的運算就是找出在這些購物車當中,有哪些商品項目是在所有購物車當中 比較頻繁出現的規律性,代表這些被找出來的商品是經常被購買的、是比較熱門的。接 著分析在這些熱門的商品項目中有哪些商品是存在有相互關係,例如可以在關聯法則運 算後發現有熱門商品 A、B、C,並發現當商品 A 被購買時商品 C 也常常同時被購買,
那就可能可以產生一個商品 A 在被購買時會影響到商品 C 被購買機率的關聯法則。從 多筆交易資料或多個購物車當中找出經常共同出現的商品項目,並分析這些被找出的項 目之間可能存在的交互影響,使用關聯法則能分析出大量資料中項目之間原本沒被發現 的潛在相互關聯性。
13
在 Agrawal et al. [24-25]所提出的關聯法則中,在進行運算前會先把每筆資料內的 項目做整理,確認在所有資料當中項目種類的總數,並以代號來取代對應的項目,藉此 把每筆資料內項目的名稱簡化,有利於運算時效能的提升,依此假設目前全部有 n 筆的 資料,當中總共有 m 種項目,那麼每一筆資料的內容將被整理成如表 2-1 的格式化數 據,其中 Ci代表的是第 i 筆的交易資料,而在每一筆資料中因包含的項目不同而在數量 上也不盡相同。
表 2- 1 項目格式化數據 C1={X1, X2, X3, X6, X8, X11, ……}
C2={X2, X4, X5, X6, X9, X10, ……, Xm} C3={X1, X4, X7, X15}
⋮
⋮
⋮
⋮
Cn={X1, X4, X7, X15, ……, Xm-1}
此外也同時會整理出如表 2-2 由所有商品項目集合而成的項目集合 C,在每筆資料 中的項目一定是此項目集合的子集合。
表 2- 2 項目集合
C={X1, X2, X3, X4, X5, X6, ……, Xm}
在本研究中,我們將把關聯法則運用在分析網際網路的流量資料上,使用關聯法則 中的 Apriori 演算法找出在流量資料中可能相關的連線,再判斷其中是否存有可能的潛 藏跳板,接下來將介紹關聯法則的概念及 Apriori 演算法的步驟。
14
關聯法則
當假設 D 為網際網路流量的資料庫,Ι 為所有連線項目(Items)所集合而成的連線項 目集合(Itemset),D 由所有的流量資料 C 所集合而成,每一筆流量資料 C 是由一段時間 內的相異連線項目所集合而成,所以 C⊆Ι。當有兩個連線項目集合 X 及 Y 在關聯法則 中表示成:
X⇒Y,當 X⊆ Ι、Y⊆ Ι 且 X∩Y≠𝜙
在關聯法則中,支持度(Support)及信賴度(Confidence)是兩項重要的參數,找出的 法則必頇通過支持度及信賴度的門檻(Threshold)才算是有效的關聯法則。支持度用來判 斷項目集合共同出現的次數是否有超過預先所設定的門檻,意即最小支持度(Minimum Support):
Support(X⋃Y) = (X⋃Y 出現的流量筆數)/(總流量筆數)
而信賴度則代表連線項目集合 X 對於 X⇒Y 這個法則信賴的程度,也就是所當連 線項目集合 X 出現在一筆流量資料時,X⋃Y 也同時出現的機率多寡,信賴度用來檢測 連線項目集合 X⋃Y 是否通過預先設定的信賴度門檻:
Confidence(X⇒Y) = ( X⋃Y 出現的流量筆數)/ (X 出現的流量筆數) = Support(X⋃Y)/Support(X)
在關聯法則裡,找出通過支持度的項目集合是重要的。在定義裡,唯有通過支持度 的項目集合所產生的關聯法則才有可能是有效的法則,這些通過支持度的項目集合被稱 作大項目集合(Large Itemset),而從項目裡找出項目集合並通過支持度成為大項目集合
15
的步驟如下:
1. 選定候選的項目集合。
2. 檢視資料庫中所有資料中存在有候選項目集合的資料筆數。
3. 把找出存在有候選項目集合的資料筆數除以總資料筆數作支持度運算。
4. 判斷候選的項目集合支持度是否有超越最小支持度,若有,則列入大項目集合。
Apriori 演算法
本研究使用關聯法則中運算速度較快的 Apriori 演算法來進行運算,原因在於關聯 法則在找尋可能的大項目集合時,挑選的項目集合的組成所耗費的時間會隨著資料庫的 增長而拉長,進而影響到整體運算的效能及時間,但 Apriori 演算法則是先考慮候選項 目集合內的所有子集合是否有達到大項目集合再來做運算。如果整體的運算從小筆的項 目集合依序計算到大筆的項目集合,在運算過程中直接淘汰不是大項目集合的候選項目 集合,那麼將可以省下大量的運算時間及效能。以下將解釋 Apriori 演算法的步驟,當 項目集合中有 k 個項目時,我們將以 k-項目集合來表示:
16
表 2- 3 關聯法則 Apriori 演算法
在 Apriori 演算法用在運算網路流量連線時,我們視 1 對 IP 位址的連線(IP Pair)為 1 個項目,先找出各項目在流量資料裡的筆數有超過支持度的連線,再依演算法的步驟 用 1 個連線項目找出 2 個以上連線項目的集合,並驗證支持度及信賴度來產生關聯法 則,以及找出相互有關聯性的連線。
Apriori 演算法步驟
1) k=2,找出在(k-1)-項目集合時,有通過支持度的所有(k-1)-項目集合。
2) 從所有(k-1)-項目集合裡找出有 k-2 個項目相同的兩個集合,並由相同的 k-2 個集合與其他相異的 2 個項目組成 k-項目集合。
3) 檢視在所有(k-1)-項目集合裡,是否有 k-項目集合所能包含的所有(k-1)-項目 集合的子集合,若有全部包含,進行步驟 4;若無,則刪除 k-項目集合重新 進行步驟 2 找出新的 k-項目集合。
4) 驗證 k-項目集合在所有資料筆數中的支持度是否大於最低支持度,若有超 過,則進行第 5 步驟;若沒有超過,則刪除 k-項目集合重新進行步驟 2 找出 新的 k-項目集合。
5) 計算 k-集合項目內所包含的關聯法則的信賴度,若信賴度有超越門檻值,
則關聯法則成立。
6) 重複步驟 2 到步驟 5,直到沒有新的 k-項目集合為止。
7) 當 k-項目集合還有大項目集合時,回到步驟 2 進行(k+1)-項目集合的下一輪 運算。
17
第 3 章 跳板偵測系統架構
圖 3- 1 跳板偵測系統架構圖
本研究將蒐集包含跳板主機與一般使用者主機的網路流量來進行關聯法則的運算 及分析,從網路流量中找出有關聯性的連線進而找出潛藏跳板主機,並在實證評估的過 程中探討本研究所提出的偵測系統在何種參數設定下能最有效率地找出跳板主機。本研 究的偵測系統架構如圖 3-1 所示,在監控的網路環境下,使用網路設備的 Port Mirror
18
功能,把所有通過網路設備的傳輸封包都複製一份到蒐集資料所在的伺服主機,再由負 責分析的主機,把選取的網路流量擷取進行彙整,將流量資料轉換出可進行運算的資料 型態,然後才使用關聯法則的 Apriori 演算法來進行進一步運算,最後再經由設定支持 度及信賴度產生最有可能的潛藏跳板主機列表。偵測結果的評估將在本研究第 4 章做為 更詳細的探討。