中 華 大 學 碩 士 論 文
防禦 DDoS 攻擊之異質性追蹤器布署
Heterogeneous Tracers Deployment against DDoS Attack
系 所 別:資訊工程學系碩士班 學號姓名:M10102026 林紹驊 指導教授:王俊鑫博士
中 華 民 國 103 年 8 月
i
摘要
為了有效減緩 DoS/DDoS 的攻擊,我們強化傳統的路由器,讓路由器具有追蹤攻 擊來源與即時過濾異常封包的功能。在先前的研究中,我們稱這些擁有不同能力的路 由器為追蹤器,且將這些追蹤器分為三種類型,分別為穿隧追蹤器、標記追蹤器及過 濾追蹤器。穿隧追蹤器可輕易地將封包轉送至其他兩種追蹤器,以提升標記封包或是 過濾攻擊封包的機率,但是在隨機布署追蹤器的環境下,過濾攻擊封包的結果及轉送 封包所帶來的負擔皆不夠理想。
在本篇論文中,我們致力於研究如何布署異質性的追蹤器來改善先前的研究,基 本上,我們將網路切割成數個保護區域,每個保護區域的直徑可控制在一定的封包轉 送次數,進而穿隧追蹤器將會布署於這些保護區域的外圍,而其它的追蹤器將依本篇 論文提出的核心布署法及環繞布署法,分別布署於保護區域的核心及保護區域的外圍。
由模擬結果,可得知在大型的網路拓撲結構中,論文所提出的核心布署法相較於無布 署任何追蹤器的網路結構,可提升 31%的效益,比隨機布署法多出了 11%的效益;
而論文所提出的環繞布署法,相較於無布署任何追蹤器的網路結構,可提升 42%的效 益,比隨機布署法多出了 20%的效益。
關鍵字:分散式阻斷服務攻擊;保護區域;追蹤器
ii
Abstract
To mitigate the DoS/DDoS attacks efficiently, traditional routers are supposed to enhance with different capabilities for tracing attacks origins and filtering abnormal packets in time. In previous work, the enhanced routers are referred to as tracers and classified into three categories, namely tunneling-enabled tracers, marking-enabled tracers and filtering-enabled tracers. The tunneling-enabled tracers can easily reroute packets to the other two kinds of tracers and then the probability of marking and filtering attack packets can be increased. In the environment of random tracers deployment, the performance of filtering abnormal packets is not good enough compared to optimal situation, and the overhead of rerouting packets is not ideal.
In this thesis, we focus on heterogeneous tracers deployment problem to improve the previous work. Basically, network topology is divided into many protection areas, which the diameter of each one is limited to a number of hop counts. The tunneling-enabled tracers are deployed on the surrounds of protection areas. Two methods, namely “Core Deployment” and “Surround Deployment”, are proposed to deploy the other tracers on the cores and surrounds of protection areas respectively. The simulation results show the performance of core deployment can be improved 31% better than it of no tracer deployment, and 11% better than it of random deployment in large scaled networks. The performance of surround deployment can be improved 42% better than it of no tracer deployment, and 20% better than random deployment in large scaled network.
Keywords: DDoS; Protection areas; Tracers
iii
致謝
在研究所兩年的生活中,能夠與 王俊鑫博士一起研究及實作有趣又有實用價值 的系統,真的是非常的感謝 王博士兩年來的提拔,也感謝 王博士不吝指導學生完成 本篇論文。同時也感謝一路支持我的家人,不斷的勉勵我並給與我正面向上的信念,
使我在人生中又提升了一個階段。
能夠完成這份研究論文,我也要感謝實驗室的連嘉俊同學及他的愛戀對象佳珊,
因為嘉俊同學曾與佳珊一同研究過 Excel 的數據圖表功能,使得我在後期整理模擬數 據不需花費太多的時間就可以輕易上手,真的是非常的感謝他們的付出。除了感謝在 研究室一同努力的嘉俊同學外,我也要感謝吳老師的研究生維晟同學,在研究所兩年 來一同的修課、玩耍,互相扶持至今,我必當銘記在心。
最後感謝曾經幫助我學習最多的中華大學資工系計算機中心所有學長、POMES 所有前輩、ISSRC 的葉老師、寶哥及所有同仁,感謝寶哥就算在業界打滾後,依然會 不時的關心我們的學業及健康!
林紹驊 謹致 中華民國一○三年七月
iv
目錄
摘要 ... i
Abstract ... ii
致謝 ... iii
目錄 ... iv
表目錄 ... vi
圖目錄 ... vii
第一章、 序論 ... 1
1.1 背景簡介 ... 1
1.2 研究動機 ... 4
1.3 研究貢獻 ... 5
1.4 論文架構 ... 6
第二章、 相關研究 ... 7
2.1 封包記錄儲存法(Packet Logging) ... 8
2.2 封包標記法(Packet Marking) ... 10
2.3 混合法(Hybrid) ... 13
2.4 過濾器(Filter) ... 15
2.5 穿隧協定(Tunneling Protocol) ... 16
第三章、 論文方法 ... 17
3.1 方法大鋼 ... 17
3.2 穿隧方法 ... 18
3.2.1 固定機率穿隧法(Static Probabilistic Tunneling) ... 20
3.2.2 動態機率穿隧法(Dynamic Probabilistic Tunneling) ... 21
3.2.3 距離估算穿隧法(Consider-Distance Tunneling) ... 22
v
3.2.4 標記協助法(Marking Assistance) ... 24
3.3 標記方法 ... 26
3.4 布署方法 ... 27
3.4.1 核心布署法(Core Deployment) ... 28
3.4.2 環繞布署法(Surround Deployment)... 32
第四章、 模擬結果 ... 36
4.1 模擬工具 ... 37
4.2 模擬討探與參數設定 ... 39
4.3 模擬結果 ... 41
4.3.1 模擬 1:固定機率穿隧法 ... 44
4.3.2 模擬 2:動態機率穿隧法 ... 49
4.3.3 模擬 3:距離估算法配合固定機率 ... 52
4.3.4 模擬 4:距離估算法配合動態機率 ... 55
4.3.5 模擬 5:標記協助法配合固定機率 ... 58
4.3.6 模擬 6:標記協助法配合動態機率 ... 63
4.3.7 模擬 7:標記協助法配合距離估算 ... 67
4.3.8 模擬 8:追蹤成本 ... 71
4.4 模擬結果總結 ... 72
第五章、 穿隧迴圈之避免 ... 74
5.1 穿隧迴圈的可能 ... 74
5.2 重複標記或重複穿隧至過濾追蹤器的問題 ... 74
5.3 標記的安全性 ... 75
第六章、 結論 ... 76
參考文獻 ... 77
vi
表目錄
Table 1 符號定義表 ... 18
Table 2 核心布署法-搜尋最佳化布署結果 ... 29
Table 3 核心布署法-布署過濾追蹤器 ... 30
Table 4 核心布署法-布署標記追蹤器 ... 30
Table 5 核心布署法-布署穿隧追蹤器 ... 31
Table 6 環繞布署法-搜尋布署最佳化結果 ... 33
Table 7 環繞布署法-布署過濾追蹤器 ... 33
Table 8 環繞布署法-布署標記追蹤器 ... 34
Table 9 環繞布署法-布署穿隧追蹤器 ... 34
Table 10 Brite Output format: Nodes section ... 38
Table 11 Brite Output format: Edges section... 38
Table 12 模擬程式參數說明 ... 40
Table 13 數學符號基本定義 ... 41
Table 14 核心布署法在各種穿隧方法比較 ... 72
Table 15 環繞布署法在各種穿隧方法比較 ... 73
vii
圖目錄
Figure 1 網域名稱反射/放大攻擊法之示意圖 ... 2
Figure 2 IP 詐欺之示意圖 ... 3
Figure 3 穿隧協定封包格式 ... 16
Figure 4 封包穿隧示意圖 ... 18
Figure 5 動態機率穿隧法示意圖 ... 21
Figure 6 穿隧距離過於遙遠的影響 ... 22
Figure 7 標記追蹤器配合穿隧追蹤器 ... 24
Figure 8 標記產生過程示意圖 ... 26
Figure 9 布署方法之概念圖 ... 27
Figure 10 未布署之網路拓撲結構 ... 27
Figure 11 核心布署法之概念圖 ... 28
Figure 12 經核心布署法布署後的網路拓撲結構結果 ... 31
Figure 13 環繞布署法之概念圖 ... 32
Figure 14 經環繞布署法布署後的網路拓撲結構結果 ... 35
Figure 15 實作模擬器操作介面 ... 37
Figure 16 Brite 實際輸出範例 ... 38
Figure 17 固定機率穿隧法-布署方法在路徑成本上比較圖 ... 44
Figure 18 固定機率穿隧法-核心布署法在總路徑上與未布署及最佳化的比較 ... 45
Figure 19 固定機率穿隧法-環繞布署法在總路徑上與未布署及最佳化的比較 ... 46
Figure 20 固定機率穿隧法-布署方法在過濾比之比較圖 ... 47
Figure 21 固定機率穿隧法-布署方法在穿隧比之比較圖 ... 48
Figure 22 動態機率穿隧法-布署方法在路徑成本上比較圖 ... 49
Figure 23 動態機率穿隧法-核心布署法在總路徑上與未布署及最佳化的比較 ... 50
viii
Figure 24 動態機率穿隧法-環繞布署法在總路徑上與未布署及最佳化的比較 ... 50
Figure 25 動態機率穿隧法-布署方法在過濾比之比較圖 ... 51
Figure 26 動態機率穿隧法-布署方法在穿隧比之比較圖 ... 51
Figure 27 距離估算法配合固定機率-布署方法在路徑成本上比較圖 ... 52
Figure 28 距離估算法配合固定機率-核心布署法在總路徑上與未布署及最佳化的比較 ... 53
Figure 29 距離估算法配合固定機率-環繞布署法在總路徑上與未布署及最佳化的比較 ... 53
Figure 30 距離估算法配合固定機率-布署方法在過濾比之比較圖 ... 54
Figure 31 距離估算法配合固定機率-布署方法在穿隧比之比較圖 ... 54
Figure 32 距離估算法配合動態機率-布署方法在路徑成本上比較圖 ... 55
Figure 33 距離估算法配合動態機率-核心布署法在總路徑上與未布署及最佳化的比較 ... 56
Figure 34 距離估算法配合動態機率-環繞布署法在總路徑上與未布署及最佳化的比較 ... 56
Figure 35 距離估算法配合動態機率-布署方法在過濾比之比較圖 ... 57
Figure 36 距離估算法配合動態機率-布署方法在穿隧比之比較圖 ... 57
Figure 37 標記協助法配合固定機率-布署方法在路徑成本上比較圖 ... 58
Figure 38 標記協助法配合固定機率-核心布署法在總路徑上與未布署及最佳化的比較 ... 59
Figure 39 標記協助法配合固定機率-環繞布署法在總路徑上與未布署及最佳化的比較 ... 59
Figure 40 標記協助法配合固定機率-布署方法在過濾比之比較圖 ... 60
Figure 41 標記協助法配合固定機率-布署方法在穿隧比之比較圖 ... 60
Figure 42 標記協助法配合固定機率-布署方法在標記比之比較圖 ... 61
ix
Figure 43 標記協助法配合固定機率-布署方法在穿隧追蹤器啟動率之比較圖 ... 61
Figure 44 標記協助法配合動態機率-布署方法在路徑成本上比較圖 ... 63
Figure 45 標記協助法配合動態機率-核心布署法在總路徑上與未布署及最佳化的比較 ... 64
Figure 46 標記協助法配合動態機率-環繞布署法在總路徑上與未布署及最佳化的比較 ... 64
Figure 47 標記協助法配合動態機率-布署方法在過濾比之比較圖 ... 65
Figure 48 標記協助法配合動態機率-布署方法在穿隧比之比較圖 ... 65
Figure 49 標記協助法配合動態機率-布署方法在標記比之比較圖 ... 66
Figure 50 標記協助法配合動態機率-布署方法在穿隧追蹤器啟動率之比較圖 ... 66
Figure 51 標記協助法配合距離估算-布署方法在路徑成本上比較圖 ... 67
Figure 52 標記協助法配合距離估算-核心布署法在總路徑上與未布署及最佳化的比較 ... 68
Figure 53 標記協助法配合距離估算-環繞布署法在總路徑上與未布署及最佳化的比較 ... 68
Figure 54 標記協助法配合距離估算-布署方法在過濾比之比較圖 ... 69
Figure 55 標記協助法配合距離估算-布署方法在穿隧比之比較圖 ... 69
Figure 56 標記協助法配合距離估算-布署方法在標記比之比較圖 ... 70
Figure 57 標記協助法配合距離估算-布署方法在穿隧追蹤器啟動率之比較圖 ... 70
Figure 58 追蹤成本-布署方法在路徑成本上比較圖 ... 71
Figure 59 追蹤成本-布署方法在時間成本上比較圖 ... 71
Figure 60 穿隧標記示意圖 ... 74
Figure 61 標記加密示意圖 ... 75
1
第一章、序論
1.1 背景簡介
在資訊爆炸的近十年,網際網路(Internet)扮演著一個不可或缺的角色,在 1990 年代,網際網路向公眾開放使用後,TimBL [1]開始宣揚全球資訊網的計畫(World wide web) [2],促使全世界的人們大規模的交流,消弭了人與人之間的距離感,即使不 同年代的人都可以透過網際網路上的資訊而產生關聯,將彼此的思想達到昇華,網際 網路不只提供人們在網路上溝通交流、學習新知外,更提供了各種企業及組織在網路 上架設伺服器(Server)以便提供各種收費及不收費的網路服務(Network service)。
由於網際網路成為了一個無形的虛擬社會,因此網際網路中也充滿了各式各樣的人,
除了正常的使用者外,同時也存在著惡意的使用者在網路上利用電腦系統的漏洞
(System vulnerabilities)、網際網路通訊協定上的缺陷(Internet protocol weaknesses)、
傳送大量無意義的封包來進行阻斷式的服務(Denial of Service, DoS)…等攻擊。
在這麼多類型的攻擊手法之中,又以阻斷式服務的攻擊對網路的影響最大。
Prolexic 在 2014 年第一季度提出的全球分散式阻斷服務(Distributed Denial of Service, DDoS)攻擊季度報告 [3]中顯示 2014 年第一季 DDoS 的攻擊總量比 2013 年第一季 增加了 47%,而增加的最大因素為 2014 年殭屍網路與日俱增及阻斷式服務的攻擊工 具包容易取得,在資料中也同時說明這些攻擊工具包使用反射和放大技術來攻擊網際 網路通訊協定的弱點。而這些攻擊者多半利用基於使用者資料包網路協定(User Datagram Protocol, UDP)的網路服務來進行攻擊,如:網域名稱系統(Domain Name System, DNS),並利用此通訊協定間接的將送出的封包來源位址欺騙來躲避識別,在 ALTAS 的每日全球 DoS 總結報告 [4]中,說明了 DoS 的攻擊類型一直都是以 UDP 型態為多數,而送出這些攻擊的來源多半為美國及中國。而台灣近期發動最為知名的 DoS 攻擊 [5]則是在 2013 年中,因為不滿菲律賓掃射台灣漁船使一名台灣漁民身亡,
2
而發起鍵盤戰爭以 DDoS 攻擊菲律賓政府網站。
Figure 1 網域名稱反射/放大攻擊法之示意圖
以目前最為流行的 DDoS 攻擊手法「網域名稱反射/放大攻擊法(DNS amplification attack)」為例 [6],其攻擊架構之示意圖如 Figure 1 所示,攻擊者控制一群早已被入 侵且成為攻擊者的殭屍電腦(Bot),使這些殭屍電腦假冒受害端發送 DNS 查詢給數 萬台 DNS 伺服器進行查詢工作,若這些 DNS 伺服器設定可對外開放遞迴查詢的服務,
則這次的 DNS 查詢將會產生大量的查詢結果,然後再將這些大量的查詢結果回覆給 受害端。
除了上述的 DDoS 攻擊手法,還有一些較為經典的,如:Internet Control Message Protocol flood(ICMP flood) [7]、SYN flood [8]、Teardrop attacks [9]、R-U-Dead-Yet?
(RUDY) [10]…等,而這些攻擊手法為了規避被識別成攻擊者,或是想要將這些攻 擊的來源位置隱匿,都會利用網際網路協定版本 4(Internet Protocol version 4, IPv4)
[11]的設計缺陷,將修改封包送出的位址來模糊追緝的工作,而這樣的攻擊手段又稱 IP 詐騙(IP spoofing) [12],如 Figure 2 所示。
3
Figure 2 IP 詐欺之示意圖
為了使這些隱匿攻擊來源的惡意封包被定位出送出的位置,因而開始有學者提出 了 IP 追蹤(IP Traceback)的方法,有些方法利用改良後的路由器,使路由器可以將 路由器的資訊記錄於封包中,使封包到達目的端後可得知此封包曾經經過的路由器 [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25];而有些方法則截取出經過 的封包中的片段資訊,如:IP 位置,並將這些資訊儲存於路由器的儲存設備中,待 目的端送出追蹤請求時,則再由這些路由器一一追回 [26] [27] [28] [29] [30],但多數 的方法都較少討論到這些改良後的路由器將布署於哪些位置可以提升追蹤的效率。
4
1.2 研究動機
先前的研究所提出的方法大多數都是以追蹤出惡意封包送出的位址,或是還原惡 意封包行走的完整路徑,而受害端若要解決被攻擊的行為都需要靠自己架設防火牆
(Firewalls) [31]來對惡意封包進行防禦的動作,但是這些大量的惡意封包不止損害 了受害端的運算資源外,也佔用了網際網路上其他使用者的頻寬,使其他的使用者也 深陷其害。
若要解決這樣的問題,先前的研究 [32]提出將這些惡意封包在抵達受害端時就 進行過濾的工作,使網路中其他的使用者也能夠避免這些惡意封包所帶來的影響,因 此先前的研究將過濾器的功能附加在路由器上,並稱之為過濾追蹤器,但因為在網路 中只布署高成本、數量少的過濾器能達到的效果不佳,所以過去的研究同時也賦予一 般路由器能夠穿隧封包的功能,即轉送封包的功能,使多數的封包經過這些擁有穿隧 功能的路由器時,可以將封包穿隧至過濾追蹤器進行檢查的工作,幸運的是多數的路 由器都有穿隧功能,因此成本也相對來的低,最後並稱這些擁有穿隧功能的路由器為 穿隧追蹤器。不過在過去的研究中是利用隨機的方式布署這些異質性的追蹤器,因此 無法保證封包能夠在一定的範圍內遇上追蹤器並採取相應的策略,所以我們要解決的 問題為:
「如何利用一個理想的布署方法,將不同性質的追蹤器設置於能夠發揮其功能最 大效果的位置,並且能夠保證封包能夠在一定的範圍內遇上一個穿隧追蹤器,最後使 惡意的封包能夠即早的在抵達目的端前被過濾掉,而正常的封包可以盡量不要被穿隧 至過於遙遠的過濾追蹤器進行過濾檢查的工作?」
5
1.3 研究貢獻
本篇論文提出利用不同性質的追蹤器分工,利用擁有穿隧功能的路由器將封包依 照穿隧的機制穿隧至過濾追蹤器進行過濾檢查的工作,同時也利用標記追蹤器找出最 靠近送出惡意封包的節點,和協助系統找出上游無惡意節點的穿隧追蹤器並關閉之,
而本篇論文主要的研究為提出兩種布署方法,核心布署法將整個網路切割成數個保護 區域,每個保護區域間皆以穿隧追蹤器間隔,而保護區域的中心位置則布署過濾追蹤 器或標記追蹤器;環繞布署法同樣將整個網路切割成數個保護區域,但每個保護區域 是以穿隧追蹤器、標記追蹤器及過濾追蹤器間隔,與核心布署法不同的是過濾追蹤器 及標記追蹤器並非設置在保護區域的中心位置,而是設置在封包最常經過之處;而這 兩種方法可以有效的將不同性質的追蹤器布署於適當的位置,並使其發揮最大的效 益。
期望惡意封包能夠在尚未抵達目的端就被過濾掉,而正常的封包不要多繞路行走 不必要的路徑,造成網路中眾多路由器的負擔及影響眾多的正常使用者;依照第四章 的模擬結果可發現本篇論文提出的布署方法及過去學者所利用的隨機布署方法皆配 合最理想的穿隧機制(章節 3.2.4.2,標記協助法配合動態機率),本篇論文提出的核 心布署法相較於無布署的情況下,在小型網路拓撲結構中可提升 23%的效益,在大型 網路拓撲結構中可提升 31%的效益,而相較於隨機布署的情況下,分別可提升 5%及 11%的效益;而本篇提出的環繞布署法相較於無布署的情況下,在小型網路拓撲結構 中可提升 22%的效益,在大型網路拓撲結構中可提升 42%的效益,而相較於隨機布 署的情況下,分別可提升 4%及 20%的效益。
6
1.4 論文架構
本篇論文分為六個章節,第二個章節相關研究將介紹已被提出的 DDoS 防禦方法、
惡意封包追蹤方法及如何有效的過濾惡意封包等,第三章節為本論文提出的研究方法 將詳細說明如何有效的布署追蹤器於重要的位置、各追蹤器的運作方式、穿隧的決策 機制等,第四章節為本論文提出的研究模擬結果,將會擬真的模擬封包在有無布署的 情況下及各種穿隧機制的網路環境中的傳送狀況,第五章節將討論整個方法上可能在 實作於網路中,可能會遇上的問題及解決的對策,第六章節為本論文的結論。
7
第二章、相關研究
為了有效的防制阻斷服務攻擊(Denial-of-Service attack),已有不少學者提出了 相關研究,而這些研究可大致上分為三種類型為大宗。第一種類型為封包記錄儲存法
(Packet Logging) [26] [27] [28] [29] [30],其概念為封包所經過的路由器將會儲存 封包的資訊在自己的儲存空間中,最後受害端可再將以上資訊從所有路由器蒐集回來 並加以整理,即可獲得封包的轉送路徑。第二種為封包標記法(Packet Marking) [13]
[14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25],同時也是目前最為流行的方法,
其方法的概念為將封包所經過的路由器資訊標記在封包中,最後受害端只需截取封包 中的路由器資訊,就可以整理出封包的轉送路徑。第三種為混合法(Hybrid) [33] [34]
[35] [36],即將第一種方法及第二種方法混合使用,互相彌補缺點。以上三種方法就 算攻擊者修改了攻擊封包的來源位址,依然能追蹤出攻擊者的位置,但尚需要靠網路 管理員協助處理,才能夠真正的達到防制的效果。為了即時的將攻擊封包過濾掉,已 有學者提出將過濾器(Filter)的功能加強於路由器中,使經過的攻擊封包被過濾掉 [32]
[37]。除此之外,過濾器所需要的成本較高,因此也有相關的論文 [38]提出應考慮到 如何布署這類的路由器也是相當的重要,以下將詳述各類型較具代表性及近年的相關 研究論文及其優缺點。
8
2.1 封包記錄儲存法(Packet Logging)
封包記錄儲存法是利用路由器記錄經過的封包資訊在路由器中的儲存空間,最後 受害端再將路由器中所記錄的資訊全部蒐集回來加以整理後,即可得到完整的攻擊路 徑,但是這種方法所造成最大的問題就是路由器上的儲存空間不足。
其中較為出名的封包記錄儲存概念在 2001 及 2002 年被 Snoeren 與 Sanchez 等人 提出 [26] [27] [28], 其系統架構被命名為 SPIE(Source Path Isolation Engine),SPIE 系統架構中包含了三個主要的元件,分別為 Data Generation Agent(DGA)、SPIE Collection and Reduction agent(SCAR)及 SPIE Traceback Manager(STM)。擁有 SPIE 功能的路由器都會設置 DGA,而這個元件可被軟體或是硬體所實作,DGA 將會記錄 經過的封包中小單位的摘要資訊(Digest),其摘要資訊將會保存在路由器一段足夠讓 受害端蒐集回去的時間;若是保存摘要資訊的時間超過預期的設定,DGA 就會把摘 要資訊傳送給 SCAR 進行長時間的保存與分析,而 SCARs 會分佈在各個 ISPs 所提供 的網路拓撲結構中,當 SCARs 收到請求後,就會產生各個 ISPs 中的攻擊路徑,最後 將這些零散的攻擊路徑傳送到 STM 進行整合;而 STM 可控制整個 SPIE 系統,為偵 測入侵系統(Intrusion Detection System)或是其他實體可發出請求追蹤的溝通介面,
STM 將會驗證所有追蹤請求並分配追蹤請求給 SCARs,最後將 SCARs 傳回的結果整 理出完整的攻擊路徑後,回覆給發出請求的 IDS。雖然 Snoeren 提出的方法只記錄封 包小部分的摘要資訊並利用 Bloom Filter [39]將摘要資訊記錄於資料結構中,但是依 然需要大量的記憶體及大量的儲存空間,且在實際上存取速度也會因為儲存單元的種 類而被影響。
Tian 等人在 2012 年所提出的方法 [29]與 Snoeren 等人的方法有很大的不同,Tian 等人對流量(Flow)進行採樣的工作,將流量的資訊儲存在路由器的儲存空間中,而 不是封包的摘要資訊,因為相較於對封包進行採樣的工作,對流量進行採樣,只需要 採樣幾個封包即可滿足追蹤攻擊節點的最低需求;標記的資訊也不是封包的摘要資訊,
9
而是以來源位址、來源埠號、目的位址、目的埠號及封包的協定來定義流量並做為標 記的資訊。除此之外,Tian 等人所提出的方法則是架設在自治系統(Autonomous System, AS)中,並利用現有的路由器功能來傳送追蹤請求,如:sFlow、NetFlow 及 IPFIX,這樣的設計可以做到漸進布署的能力。
10
2.2 封包標記法(Packet Marking)
封包標記法是利用路由器去標記經過的封包,而標記的內容為封包所經過的路由 器資訊,當受害端將標記過的封包蒐集一段時間後,就可以組成一個完整的封包行經 路徑,其最大的優點就是不需要特殊或是特製的通訊協定,也不需要集中式的管理系 統就可以運作,除此之外也不會造成額外的流量。根據先前的研究所提出的封包標記 法,大致上可再分類成兩種,第一種類型是以機率的型式去標記封包(Probabilistic Packet Marking, PPM ) [13] [14] , 第 二 種 類 型 是 以 決 策 的 型 式 去 標 記 封 包
(Deterministic Packet Marking, DPM) [15]。
在第一種以機率型式的標記法(PPM),以 Savage 等人所提出的方法 [13]最為經 典,其方法的概念是在部分路由器上設置可標記封包的功能元件,使封包經過這類型 的路由器都有機率被標記上路由器資訊;而標記的資訊(Mark)為路由器的 IP 位址 及經雜湊(Hash)函式處理過後的 IP 位址,共 64 位元;但因為一個 IPv4 的封包格 式中,可標記的空間有限,因此將標記分割成 8 等分,並標記 3 位元的標記索引碼、
5 位元的距離及 8 位元的區段標記(Fragment of mark)於 Identification 欄位(16 位元)
中,其中 5 位元的距離是標記此封包的路由器至目的地的距離。當被標記的封包抵達 下一個路由器時,則會將此路由器的資訊和上一個路由器的資訊進行 XOR 運算後得 到的值再重新標記於封包中;當受害端蒐集足夠量的標記封包後,就可以利用這些標 記封包中的距離值依序排列,並利用 XOR 再次運算,取得原本的標記資訊,同時也 可以得知封包的行經路徑。Savage 的方法最後得到的結論為「當每一個路由器的機 率設定為 0.04 時,可以得到較佳的解」。但此方法最大的問題就是標記可能會被其他 的擁有標記功能的路由器所覆寫,而造成誤判率提升,使得需要更多的標記封包才能 夠還原出封包的行經路徑,除此之外,只要攻擊封包行走的路徑越長,誤判率就會越 來越高,需要的標記封包也會越來越多,因此就較難找到攻擊來源的源頭。
Song 等人在研究中 [14]指出 Savage 提出的方法是利用片斷標記設計(Fragment
11
Marking Scheme, FMS),而這樣的設計將會消耗大量的運算資源來處理這些片斷標記,
也因為過多的片斷標記,使得路徑在還原時造成的誤判率大大的提升。因此 Song 提 出了二種設計來彌補 FMS 的不足,第一種設計是利用兩組雜湊的集合,兩組雜湊函 式都會產生 11 位元的標記;Song 將 11 位元的標記與 5 位元的距離值,標記於 IPv4 封包中的 Identification 欄位(16 位元),而第一組雜湊函式用在路由器第一次對封包 進行標記的動作,而第二組雜湊函式為下一個路由器接收到上一個路由器標記的封包 後,將運算後得到的結果與上一個路由器標記做 XOR 運算,最後再將結果標記於封 包中,如此一來就不需要過多的片斷標記,也就不會造成誤判率過高的問題。第二種 設計是加強了標記的不可偽造性,Song 設計了訊息驗證碼(Message Authentication Codes, MAC),路由器與路由器之間必需要有時效性的共享金鑰(Secret key),經過 比對標記封包中所夾帶的金鑰後,若是驗證成功才會進行下一步動作;反之,則會被 認為是偽造的標記封包,不採任何處理的行為。但是加強了標記封包的不可偽造性,
必須要有集中式的管理系統負責管理路由器之間的金鑰及保證金錀的時效性外,還要 再利用 IPv4 封包的其他 16 位元的空間來存放金鑰,這樣的設計對於位在核心的路由 器(Core router)在運算資源上有很大的壓力。
第二種以決策型式的標記法(DPM),以 Belenky 等人提出的方法 [15]最為經典,
其方法的概念是在邊界路由器(Edge router)上設置可標記封包的功能元件,當封包 由外部進入到邊界路由器上的入口介面卡(Ingress Interface)時,才會啟動標記封包 的功能,而標記的資訊即為入口介面卡的 IP 位址資訊,共 32 位元;同樣地,因為 IPv4 封包可標記的欄位有限,而將標記資訊分割成 2 等分,並標記於 Identification(16 位 元)欄位中,除此之外,尚標記了 1 位元於 IPv4 封包中的保留欄位(Reserved flag),
0 表示此標記為 IP 的前半段,而 1 表示此標記為 IP 的後半段;在理想的情況下,受 害端只需要蒐集到 2 個標記封包,就可以得知此封包是從哪一個邊界路由器進來。
Belenky 的方法最大的優點就是可以盡可能的找到攻擊來源的源頭,也較不易發生封 包標記的資訊被其他路由器所覆寫的情形,雖然 DPM 可以妥善的處理 DoS 的攻擊,
12
但是面臨 DDoS 的攻擊下,將得到很高的誤判率,且只要是從外部進入的封包都會進 行標記的動作,這將消耗路由器上過多的運算資源。
Bhavani 等人提出的修改版的機率型封包標記法(Modified Probabilistic Packet Marking) [16],說明 Savage 的方法有兩大缺失,第一大缺失因為標記被其他路由器 所覆蓋,使較遠的路由器被找到的機率過低,而這個缺失將會對重建攻擊路線造成很 大的問題;而第二大缺失指出 Savage 的方法在標記邊的資訊(Mark of edge)時,可 能會因為標記資訊被下一個路由器覆蓋,使實際上的攻擊路徑變為反方向。因此,
Bhavani 提出應利用封包中的其一位元作為旗標,使已標記的封包不被其他路由器再 次標記,造成標記覆蓋的問題,而模擬出來的數據說明了「當封包標記不被其他路由 器重覆標記的情況下,有較低的誤判率」。
對於 Savage 的方法,Okada 等人認為應該利用額外的硬體裝置架設於路由器與 路由器之間 [17],除此之外,Okada 設計的硬體裝置同時可以處理多個路由器與路由 器之間的標記,標記的資訊即為兩路由器的標記做 XOR 運算,這樣的方法最大的好 處就是不需要升級路由器的功能或是更換路由器。
13
2.3 混合法(Hybrid)
混合法通常都是將封包記錄儲存法及封包標記法合併使用,同時得到兩者的優點。
在 AI-Duwairi 等人的研究論文中 [33],他提出了兩種方法,第一種方法稱分散式鏈 結串列追蹤法(Distributed Link List Traceback)及第二種稱管線化機率封包標記法
(Probabilistic Pipelined Packet Marking)。第一種方法是屬於決策式封包標記法(DPM) 及封包記錄儲存法的結合運用,其概念相當簡單,當封包經過布署的路由器時,若封 包尚未被標記,則會進行初始化的動作,即進行第一次的標記工作;一旦已被標記過 的封包經過布署的路由器時,路由器會將封包中的標記取出並記錄儲存於自身的空間 中,再標記目前路由器的資訊於封包中,然後再繼續將封包送往下一個節點,不斷的 重複以上的工作直至封包抵達目的地;當受害端請求追蹤時,即可一層一層的向上游 查詢,直到最靠近封包來源處的路由器。而第二種方法同樣是決策式封包標記法及封 包記錄儲存法,其方法較為複雜,當封包送達已布署的路由器時,可能會發生三類情 形,第一類是封包進行標記路由器資訊於封包中,第二類是查看本地端的儲存空間是 否尚有儲存的標記資訊未被處理,若有尚未被處理的標記資訊則會將儲存空間中的標 記資訊與已標記在封包中的標記資訊互換,並將舊的封包標記資訊記錄在路由器上的 儲存空間,而最後一類則是不對封包進行任何動作;當受害端請求追蹤時,只需要蒐 集足夠的標記封包,即可進行組合攻擊路徑的運算。以 AI-Duwairi 等人提出的方法,
得到了封包標記法及封包記錄儲存法的兩大好處,只需要少量的標記封包就可以找出 最接近攻擊者的路由器,若是分散式鏈結串列追蹤法要得到完整的追蹤結果,就需要 再另外的設計追蹤的通訊協定,耗時費力還會造成網路多餘的流量,而管線化機率封 包標記法雖然較不易因為攻擊距離拉的越長而造成無法追蹤出封包送出的來源,但是 運算過於繁複,可能會使路由器的負擔過於沉重。
Choa 等人提出的方法(Hybrid IP Traceback, HIT) [34],主張應將較新的路由器 標記資訊記錄於封包中,而較上游的標記資訊記錄在上游的路由器中,即路由器會根
14
據封包中可用的標記欄位來標記路由器資訊,若是沒有空間可以存放路由器資訊,則 將封包中的路由器資訊存放在路由器的儲存空間中,並將封包中原本的標記資訊清空,
再標記目前的路由器資訊。而受害端發出追蹤請求時,則依收到的標記封包依序往上 游查詢,即可找到最靠近攻擊來源的路由器。Choa 的方法可降低路由器上空間的使 用率,但需設有一台追蹤伺服器(Traceback Server)協助,方可完成執行追蹤的任務。
Wang 等人提出基於決策型標記法與記錄儲存法的 IP 追蹤技術(LDPM) [35],
其概念是架設兩種路由器於自治系統(Autonomous System, AS)中,第一種路由器(𝑅𝑠) 是架設在 AS 的內部,負責標記來自內部的攻擊,第二種路由器(𝑅𝑑)是架設在 AS 的邊界,負責記錄儲存經過的標記封包所承載的標記資訊;在𝑅𝑠標記的過程中,除了 標記上自治系統編號(Autonomous System Number, ASN)及路由器編號(ID number of 𝑅𝑠)外,還標記了Don’t fragment(DF)欄位和 More Fragment(MF)欄位,使再 次收到標記封包的路由器可以分辨此封包是否曾被標記;而在𝑅𝑑的工作除了記錄儲 存追蹤資訊外,還須將累積一段時間的追蹤資訊轉傳到追蹤伺服器提供者(Traceback Server Provider, TSP),而當𝑅𝑑接收到追蹤請求時,就會開始檢查目前累積的追蹤資 訊。當受害者需要請求追蹤服務時,需向 TSP 送出請求,TSP 會開始分析攻擊封包 的特徵,之後就會向隸屬於同一個 AS 的其他𝑅𝑑送出追蹤查詢,待𝑅𝑑回傳結果後,
即命𝑅𝑑開始進行過濾(Filter)此類攻擊封包的工作。以 Wang 的設計而言,因為 DF 及 MF 的欄位,使得封包不會有覆寫的問題,但是在追蹤方面需要請求 TSP 協助,
而在每個 AS 中架設 TSP 相當不容易。
15
2.4 過濾器(Filter)
Saurabh 等人在 2012 年提出的方法 [37],利用標記法將經過有布署的路由器的 封包進行標記的動作,待已標記得封包抵達靠近受害端的布署路由器時,路由器將會 統計標記的封包數量,持續一段時間後,即可知道哪一個標記資訊的封包量的超過標 準值,則可能為惡意封包,最後再利用統計的資訊配合當地的網路管理員或是網際網 路提供商的入侵偵測器將惡意封包過濾掉。雖然 Suarabh 的方法需要當地的網路管理 員協助處理且可以將惡意封包過濾掉,但惡意封包從來源端到受害端時,已造成整體 網路的負擔,未能即時的將惡意封包提早過濾掉,將會間接的影響其他的網路使用 者。
依據 Wang 提出的方法 [32],將追蹤器的功能分為三種,並實作在路由器的功能 上,依追蹤器的成本由低到高,分別為穿隧追蹤器(Tunneling tracer)、標記追蹤器
(Marking tracer)及過濾追蹤器(Filtering tracer),為了即時的過濾掉惡意的封包,
因此將穿隧追蹤器廣為布署,取代大量的布署高成本的過濾器。但因為利用穿隧的方 式將封包轉傳至過濾追蹤器,可能使正常的封包多繞路且造成不必要的額外流量,所 以論文中提出可調整穿隧追蹤器的轉傳機率,使多繞路的情況降低。
16
2.5 穿隧協定(Tunneling Protocol)
穿隧通訊協定 [40]為一種網路通訊協定,被設計出來的主要原因是要使封包能 夠在不相容的網路環境下傳送數據,或是在一個不可信任的網路中建立一個安全的通 道來保護資料的傳送。而穿隧協定的主要想法是將封包再封裝(Encapsulation)上一 層的標頭(Header) [41],如下圖所示,淡藍色的部分為封包原本的資料及標頭,而 橙色的部分為新封裝上的標頭。
Figure 3 穿隧協定封包格式
穿隧協定的封包可分為四個部分,分別為穿隧網路標頭(Tunnel Network Header)、
穿隧標頭(Tunnel Header)、原始網路標頭(Original Network Header)及資料(Data)。
穿隧網路標頭主要是新封裝在原始封包上,其中包含了來源端及目的端的資訊,可為 一 層 或 是 多 層 的 開 放 式 系 統 互 聯 通 訊 參 考 模 型 (
Open System Interconnection Reference Model, OSI Model)
;穿隧標頭則依穿隧協定而擁有各自的格式,如:GRE、IPSec、L2TP…等。
17
第三章、論文方法
3.1 方法大鋼
本文將根據 Wang 提出的方法 [32]進行改良,將隨機布署的方式改為有技巧性的 布署方式(Deployment)並增加新方法。依照追蹤器的成本而言,過濾追蹤器的成本 最高,標記追蹤器的成本次之,其後為穿隧追蹤器,所以考量到追蹤器的成本關係,
將依各追蹤器的布建量由多到少進行有規劃的布署;除此之外,本文同時也利用 Lien 提出的方法 [42],其方法可保證封包能夠在經過一定數量的路由器時,可遇上一個 追蹤器,方法的概念是將整個網路利用追蹤器切割成數個區域,並稱這些區域為保護 區域,且每個保護區域皆以追蹤器作為間隔。因 Lien 的方法可根據保護區域的大小,
而得到一種布建結果,所以本文嘗試了所有可能的保護區域大小,也得到了各種布建 結果,最後再從這些布建結果中,選出第一個所建議的布建節點數量小於等於我們所 持有的追蹤器數量的布建結果來進行異質性追蹤器的布建工作,而實際布署三種追蹤 器的方式,將在接續的章節詳述。
當封包經過穿隧追蹤器時,將依其所設定的機率將封包轉送(Tunneling)至標記 追蹤器,使受害者可以蒐集到足夠的標記封包後,即可定位出上游無惡意節點的穿隧 追蹤器並令其關閉,最後令剩餘的穿隧追蹤器將封包轉傳至過濾追蹤器進行過濾的工 作,而轉送的機率及方式將會在接續的章節詳述;若封包直接經過標記追蹤器時,就 如同穿隧追蹤器一般,將依其設定的機率將封包進行標記的工作(Marking),反之,
封包若是經由穿隧追蹤器轉傳,則將直接進行標記的工作,但與先前的研究 [32]較 為不同的地方是本文提出使標記追蹤器同時也有穿隧的能力,當封包經過標記追蹤器 時,最後也一樣會依穿隧的方法執行穿隧的工作;而封包不論是否直接或是間接的經 過過濾追蹤器,都會被檢查封包是否為正常的封包,若是封包俱有惡意封包的特徵,
將會直接被過濾掉(Filtering),反之,則會將封包繼續轉送至目的地。
18
3.2 穿隧方法
利用穿隧追蹤器來協助標記追蹤器或是過濾追蹤器運作,可以使標記或是過濾 的範圍增加,若是網路中充滿著大量的惡意封包,則可提升標記或過濾的效益;但若 是正常封包的數量多於惡意封包,則會造成正常的封包多繞路,為了使這樣的情況降 低,而提出了固定機率隧法(Static Probability Tunneling)、動態機率穿隧法(Dynamic Probability Tunneling)及距離估算穿隧法(Consider-Distance Tunneling),而以下為穿 隧法的評估公式。
Figure 4 封包穿隧示意圖
符號定義
𝑹𝒕 穿隧追蹤器/穿隧路由器(Tunneling tracer/Tunneling router)
𝑹𝒇 過濾追蹤器/過濾路由器(Filtering tracer/Filtering router)
𝒑 穿隧追蹤器轉傳機率(Probability of tunneling)
α 正常封包量 β 惡意封包量
𝒅(𝑨, 𝑩) A 路由器與 B 路由器的最短路徑
*備註:α+β為封包總量,即正常封包量與惡意封包量總合
Table 1 符號定義表
根據以上的封包穿隧示意圖及符號定義,可推得以下公式:
𝑑(𝑅𝑡, 𝑅𝑓)
𝑑(𝑅𝑡, 𝑉)
𝑑(𝑅𝑓, 𝑉)
19
封包由穿隧追蹤器至受害端的成本如下:
α ∙ 𝑑(𝑅𝑡, 𝑉) + 𝛽 ∙ 𝑑(𝑅𝑡, 𝑉) ( 1 ) 封包依照穿隧追蹤器的轉傳機率得到的封包路徑成本如下:
Α ∙ {𝑝 ∙ [𝑑(𝑅𝑡, 𝑅𝑓) + 𝑑(𝑅𝑓, 𝑉)] + (1 − 𝑝) ∙ 𝑑(𝑅𝑡, 𝑉)} +
β ∙ [𝑝 ∙ 𝑑(𝑅𝑡, 𝑅𝑓) + (1 − 𝑝) ∙ 𝑑(𝑅𝑡, 𝑉)] ( 2 ) 當( 2 )-( 1 )後,可得到“經穿隧到過濾追蹤器後的路徑成本增加量”,如下:
𝑝 ∙ [𝛼 ∙ (𝑑(𝑅𝑡, 𝑅𝑓) + 𝑑(𝑅𝑓, 𝑉) − 𝑑(𝑅𝑡, 𝑉)) + 𝛽 ∙ (𝑑(𝑅𝑡, 𝑅𝑓) − 𝑑(𝑅𝑡, 𝑉))] ( 3 ) 若( 3 )得到的值小於零,即表示利用穿隧追蹤器來增加可過濾的範圍,確實可成功的 改善整體網路的負擔;反之,則增加了整體網路的負擔。
20
3.2.1 固定機率穿隧法(Static Probabilistic Tunneling)
為了降低設置穿隧追蹤器功能(Tunneling-enabled)的路由器的負擔,本文提出 以固定的機率將封包進行穿隧的工作,使路由器不會將所有經過的封包都進行轉傳;
若是正常封包的比例多於惡意封包,設置過高的機率,將會使整體的路徑成本過高,
加重網路負擔。例如:在整體網路拓撲結構中,攻擊節點送出的惡意封包比正常節點 送出的正常封包多時,若是穿隧機率設定高於 50%,理論上將會有一半的封包被轉傳 至過濾追蹤器,因此就會過濾掉大多數的惡意封包,使得網路整體負擔減緩;反之,
若是正常封包比惡意封包多時,則可能會使過多的正常封包被檢查,再傳回正確的目 的地,如此一來,將會使整體的網路負擔加重,並且過度消耗過濾追蹤器的運算資源 在正常封包上。
假設𝑑(𝑅𝑡, 𝑅𝑓) < 𝑑(𝑅𝑡, 𝑉), 𝑑(𝑅𝑓, 𝑉) < 𝑑(𝑅𝑡, 𝑉), 𝑑(𝑅𝑡, 𝑅𝑓) + 𝑑(𝑅𝑓, 𝑉) > 𝑑(𝑅𝑡, 𝑉),
在這樣的情況下,可由( 4 )得知穿隧的機率越高,將會使得路徑成本增加,且若是正 常封包量比惡意封包量多時,也會使得路徑成本提高。因此本文假設在不清楚網路中 充滿多少比例的惡意封包的情況下,在模擬實驗中設置 50%的穿隧機率,而實驗的結 果可見後續的模擬結果章節。
21
3.2.2 動態機率穿隧法(Dynamic Probabilistic Tunneling)
由於固定機率穿隧法,使每一個穿隧追蹤器都有機率將封包轉傳,而這樣的設定 可能使無惡意節點的子網路也不斷的轉傳正常封包,所以穿隧追蹤器統計最近 10 個 封包的類型,來調整穿隧追蹤器的穿隧機率。如下圖所示,在無惡意節點的子網路中 所送出的封包被穿隧追蹤器轉傳至過濾追蹤器時,經過濾追蹤器檢查後,若是正常封 包,則會發送回饋(Feedback)資訊給該穿隧追蹤器,令該穿隧追蹤器降低穿隧機率;
反之,若是惡意封包,則會令該穿隧追蹤器提升穿隧機率。
Figure 5 動態機率穿隧法示意圖
根據歷史資訊調整穿隧的機率,可以使無攻擊節點的子網路降低封包轉傳的機率,
並使得封包傳送的路徑成本降低,不會造成整體網路的負擔。而在後續的模擬結果一 章中,將會顯示出動態機率穿隧法的優勢。
22
3.2.3 距離估算穿隧法(Consider-Distance Tunneling)
封包在傳送的路徑成本可能會因為穿隧追蹤器與過濾追蹤器的距離過長,使得路 徑成本也相對的提升,除此之外,也會間接的影響到更多的使用者,如下圖 Figure 6 所示,當大量的惡意封包經由穿隧追蹤器轉傳至過於遙遠的過濾追蹤器時,途中所經 過的路由器都會被原本不會經過的大量轉傳封包所影響,進而影響到正常的使用者的 頻寬,若轉傳大量的正常封包至過濾追蹤器,則經過濾追蹤器檢查完後,正常封包將 會再轉傳至目的地,如此一來又影響了更多的使用者。
Figure 6 穿隧距離過於遙遠的影響
因此本文提出距離估算穿隧法配合固定機率的方法,若是封包由穿隧追蹤器轉傳 至過濾追蹤器後,再由過濾追蹤器轉傳至目的地的距離比原路徑長時,就不進行穿隧 的工作。
{𝑑(𝑅𝑡, 𝑅𝑓) + 𝑑(𝑅𝑓, 𝑉) > 𝑑(𝑅𝑡, 𝑉), 直接將封包傳送至目的地。
𝑑(𝑅𝑡, 𝑅𝑓) + 𝑑(𝑅𝑓, 𝑉) ≤ 𝑑(𝑅𝑡, 𝑉), 將封包轉傳至過濾追蹤器。
而這樣的設定同樣的可以使封包傳送的路徑成本降低,但是可能無法過濾掉部分 惡意節點所送出的惡意封包,不過因本文所提出的節點布署方式相較於隨機布署的方 式而言,可減少無法過濾掉部分惡意節點所送出的惡意封包的情形,因為本文的布署 方法可保證在一個封包經過 K 個路由器時,將會經過一個追蹤器。
23
3.2.3.1 距離估算穿隧法配合固定機率
配合章節 3.2.1 提出的固定機率穿隧法,期望距離估算能夠配合固定的機率,將 封包進行穿隧的工作,如此一來就不需要估算每一個封包的距離,則可大大的減少擁 有穿隧追蹤器的運算資源,同時也不會因為大量的距離估算而造成其他正常的封包延 遲。舉例說明,假設封包經過穿隧追蹤器時,需要滿足兩個條件才會將封包進行穿隧 的工作,第一個條件為需先滿足穿隧機率,第二個條件為試算穿隧的距離比原始路徑 的距離短,則將執行穿隧的工作;若是兩個條件有一項不成立時,則不做穿隧的工作。
3.2.3.2 距離估算穿隧法配合動態機率
除了配合固定機率穿隧法以外,若也能夠配合在章節 3.2.2 提出的動態機率穿隧 法的話,應該可以得到一個更為理想的結果。因此本文利用距離估算穿隧法配合動態 機率的方式,將封包進行穿隧的工作,而這樣的好處就如同配合固定機率穿隧法一般,
可以節省穿隧追蹤器的上的運算資源,甚至因為動態機率穿隧法會根據過去的資訊調 整穿隧機率,所以能夠更加的節省穿隧追蹤器的運算資源。
24
3.2.4 標記協助法(Marking Assistance)
穿隧追蹤器在執行穿隧的工作時,可能會因為上游並沒有送出攻擊封包的節點,
而不斷的在執行封包穿隧的工作,而這樣的穿隧方法無疑會造成更多的正常封包在繞 路做穿隧的運算及浪費過濾追蹤器檢查是否為惡意封包的時間及資源。因此本文提出 利用標記追蹤器協助找出不斷在穿隧上游沒有送出攻擊封包的穿隧追蹤器,並使這類 型的穿隧追蹤器暫時關閉其穿隧的能力。
Figure 7 標記追蹤器配合穿隧追蹤器
如上圖所示,假設當受害者遭受到攻擊後,並在已知惡意封包的特徵下,但未知 攻擊者所在位置的情況,所有的穿隧追蹤器都會正常的將封包依機率轉傳至標記追蹤 器,待受害端得到足夠的標記封包,即可得知惡意封包曾經過穿隧追蹤器 3 號及 4 號,而穿隧追蹤器 1 號及 2 號上游並無攻擊節點,因此系統就會關閉 1 號及 2 號的穿 隧功能。
與先前的研究較為不同的地方,本文使標記追蹤器也能夠擁有穿隧的能力,使封 包能夠達到更佳的穿隧效益,如此一來除了能夠關閉不必要的穿隧追蹤器外,還可以
25
保有擁有穿隧功能的追蹤器一定的數量,不會因為增加了標記追蹤器的數量,而損失 穿隧追蹤器的數量,也損失了穿隧功能所帶來的效益。
3.2.4.1 標記協助法配合固定機率
在整體上的追蹤呈序中,增加了標記追蹤器來協助系統關閉不必要的穿隧追蹤器,
但標記追蹤器是否能夠標記到足夠的封包,以達到足夠讓系統找出不必要的穿隧追蹤 器,一開始還是需要全體的穿隧追蹤器將封包轉送至標記追蹤器。因此穿隧追蹤器的 穿隧機率依然是關鍵,所以本文提出標記協助法配合在章節 3.2.1 中提出的固定機率 穿隧法來將封包轉送至標記追蹤器。
3.2.4.2 標記協助法配合動態機率
同時也利用章節 3.2.2 提出的動態機率穿隧法來調整穿隧的機率,系統在尚未關 閉不必要的穿隧追蹤器時,動態調整穿隧機率對於標記追蹤器完全沒有影響;但一旦 將不必要的穿隧追蹤器關閉後,動態調整穿隧機率則會因過濾追蹤器的啟動而開始回 饋資訊給穿隧追蹤器進行統計的工作,進而開始動態的調整穿隧機率,使上游較多惡 意節點的穿隧追蹤器提升穿隧機率,反之,使上游較少惡意節點的穿隧追蹤器降低穿 隧機率。
3.2.4.3 標記協助法配合距離估算
除了利用機率的方式來調整穿隧的機率外,同時也利用章節 3.2.3 提出的距離估 算方式也可以使穿隧追蹤器不會傳送封包給過於遙遠的標記追蹤器及過濾追蹤器,如 此一來就不會造成穿隧過於遙遠的目標追蹤器,使得途中的正常使用者受到頻寬上的 影響;雖然可能會使被關閉的穿隧追蹤器減少,但就如章節 3.2.3 後續的補充說明,
因本文提出的布署方法可保證在封包經過 K 路由器時將會遇到一個追蹤器,不會因 為距離估算的方式而造成大量的惡意封包沒被過濾掉的情形。
26
3.3 標記方法
標記追蹤器的使用有兩個目的,第一個目的是為了定位出攻擊者的位址,在標記 的工作上,本文採不覆蓋標記的方式,利用 IPv4 的封包格式中的保留欄位(1 bit)
作為旗標,若旗標為 1,則表示此封包已被標記過,不得再進行標記的工作,造成標 記覆蓋的問題,若旗標為 0,則表示封包尚未被標記過,可進行標記的初始工作。因 此只需要一個標記封包就可以得知封包是經過哪一個最靠近來源端的路由器,如此一 來就可以間接的請求當地的網路管理員協助處理,或是直接將惡意封包轉傳至附近的 過濾追蹤器過濾。
第二個目的是為了使不必要的穿隧追蹤器關閉穿隧的功能(如 3.2.3 提到的情況,
穿隧追蹤器上游無惡意節點,因此不需啟動穿隧功能),本文利用標記追蹤器先行運 作,使上游無惡意攻擊的穿隧追蹤器被定位出來,然後關閉該穿隧追蹤器的穿隧功能,
再令其餘的穿隧追蹤器將封包轉傳至過濾追蹤器。
假設封包是由穿隧追蹤器轉傳至標記追蹤器,標記追蹤器可從封包中穿隧標頭的 資訊得知此封包是由穿隧追蹤器傳送而來,所以就能夠對此封包的穿隧標頭進行解封 裝(Decapsulation)的工作,取得穿隧追蹤器的 IP 位址資訊後,再將其經過編碼處理 並標記於封包中,換言之,標記追蹤器是標記上穿隧追蹤器的資訊,協助系統定位出 上游無惡意節點的穿隧追蹤器。
本文提出利用封包中的 Identification 欄位(16 位元)作為標記的空間,而標記 的內容即為穿隧追蹤器或標記追蹤器經過編碼(Hash)的 IP 位址資訊(32 位元),
如下圖。
Figure 8 標記產生過程示意圖
27
3.4 布署方法
本文提出了兩種布署方式,在布署的流程上將利用 Lien 提出的方法 [42]先找出 最佳的布署結果,其方法找出的最佳布署結果可保證封包由任一節點送出後,可在 K 個路由器內經過一個布署節點,爾後再依追蹤器的成本,依高到低分別布署過濾追蹤 器、標記追蹤器及穿隧追蹤器。舉例來說,下圖為根據追蹤器的數量及成本考量下得 到的最佳布署結果,紅色的圓圈所框住的範圍表示是由數個路由器所組成的網路區塊,
剩餘的青色路由器為建議的布署節點,若是追蹤器的數量越多,則更有機會使圈住的 範圍內的路由器越少,如此一來,封包更有機會經過追蹤器;反之,若是追蹤器的數 量越少,則圈住範圍內的路由器越多,將會造成封包越不容易經過追蹤器。
Figure 9 布署方法之概念圖
以下圖網路拓撲結構為例,後續的方法一及方法二將會以此圖為例作為說明。
Figure 10 未布署之網路拓撲結構
28
3.4.1 核心布署法(Core Deployment)
核心布署法的想法就是將建議布署的節點(Deploy node)所圍住的範圍作為保 護的區域(Scope),圈外的路由器設置穿隧追蹤器,而各圈內的中心節點設置過濾追 蹤器及標記追蹤器,如下圖所示。當圈內的攻擊節點送出惡意封包至其他圈內的節點,
將會被圈外的穿隧追蹤器所轉傳至圈內的中心追蹤器,依系統的程序送給標記追蹤器 或是過濾追蹤器。
Figure 11 核心布署法之概念圖
根據 Algorithm 1 的虛擬程式碼,在搜尋最佳的建議布署節點的開始,我們計算 各種保護區域的大小,並取得各種保護區域大小的布建結果(Algorithm 1, Line 2~11), 最後我們依照這些布建結果的建議布建節點的數量作為考量,若是建議的布建節點數 量小於等於「穿隧追蹤器的數量」,則加入建議布署節點資格符合的串列(Algorithm 1, Line 7~9),最後我們會在將布署節點資訊符合的串列進行數量多到小的排序
(Algorithm 1, Line 12),並選出一種布署結果的節點數量最貼近於我們所擁有的穿隧 追蹤器的數量的布署結果作為最終確定的布署結果(Algorithm 1, Line 13)。
Algorithm 1: Searching optimal deployment
1 2 3 4 5
List<Deployment> dList
for K = 1 to networkTopology.Diameter do int N = 0
do
last_deploy = try_deploy
29
6 7 8 9 10 11 12 13
try_deploy.Deploy(N++)
if try_deploy.DeployNode.Count <= numberOfTunnelingTracers do dList.Add(try_deploy)
end if
while try_deploy.Except(last_deploy).Count() == 0 end for
dList.OrderBy(DeployNodes.Count) Final_Deployment = dList.Last()
Table 2 核心布署法-搜尋最佳化布署結果
根據 Algorithm 2 及 Algorithm 3 的虛擬程式碼,首先將從所有的保護區塊中找出 其中心節點,並加入中心節點串列(Algorithm 2, Line 2~4),最後再將中心節點串列 中的節點再依其所在的網路拓撲結構位置,以網路拓撲結構之中心至外圍進行排序,
得到一個越靠近中心位置的節點至離中心節點越遠的節點序列(Algorithm 2, Line 5)。
排序過後的中心節點串列,將先依過濾追蹤器的數量進行布署,(Algorithm 2, Line 8~10)若是過濾追蹤器的數量超過已排序的中心節點數量,則會開始重複的向 其他圈內節點進行布署,直至過濾追蹤器布署完畢(Algorithm 2, Line 10~17)。
當過濾追蹤器布署完畢後,則會開始布署標記追蹤器(Algorithm 3, Line 3~5),
標記追蹤器的布署方式就如同過濾追蹤器,將會布署在中心節點上,若是中心節點都 布署完畢後,則會開始布署於其他保護區塊內的節點(Algorithm 3, Line 5~12)。
Algorithm 2: Deploy filtering tracers
1 2 3 4 5 6 7
List centerNode
foreach scope in Final_Deployment.AllRoundScope do centerNode.Add(scope.FindCenterNode())
end foreach
centerNode.OrderBy(Eccentricity) for i = 0 to numberOfFilteringTracer do
node = centerNode.Find(node.Tracer== TracerType.None)
30
8 9 10 11 12 13
14 15 16 17 18
if node != null do
node.Tracer = TracerType.Filtering else
int j = i do
scope =
Final_Deployment.AllRoundScope.Find(tmp_scope.Exist(centerNode[j+
+]))
node = scope.Find(node.Tracer == TracerType.None) while node == null
node.Tracer = TracerType.Filtering end if
end for
Table 3 核心布署法-布署過濾追蹤器
Algorithm 3: Deploy marking tracers
1 2 3 4 5 6 7 8
9 10 11 12 13
for i = 0 to numberOfMarkingTracer do
node = centerNode.Find(node.Tracer== TracerType.None) if node != null do
node.Tracer = TracerType. Marking else
int j = i do
scope =
Final_Deployment.AllRoundScope.Find(tmp_scope.Exist(centerNode[j+
+]))
node = scope.Find(node.Tracer == TracerType.None) while node == null
node.Tracer = TracerType. Marking end if
end for
Table 4 核心布署法-布署標記追蹤器
31
根據 Algorithm 4 的虛擬程式碼,當過濾追蹤器及標記追蹤器都布署完畢後,就 會開始布署穿隧追蹤器,布署的位置即為建議的布署節點位置(Algorithm 4, Line 1~3)。
Algorithm 4: Deploy tunneling tracers
1 2 3
foreach node in Final_Deployment.DeployNodes do node.Tracer = TracerType.Tunneling
end foreach
Table 5 核心布署法-布署穿隧追蹤器
以下圖為例,布署的追蹤器數量即為網路拓撲中的路由器數量之 50%(9 個追蹤 器),再由此 9 個追蹤器上選擇 50%的穿隧追蹤器(5 個穿隧追蹤器)、20%的標記追 蹤器(2 個標記追蹤器)及 10%的過濾追蹤器進行(1 個過濾追蹤器)布署,粉紅色 的節點為穿隧追蹤器、橙色的節點為標記追蹤器、藍色的過濾追蹤器。
Figure 12 經核心布署法布署後的網路拓撲結構結果
32
3.4.2 環繞布署法(Surround Deployment)
因核心布署法是參考穿隧追蹤器的數量作為依據,使得被圈住的保護區塊(Scope)
數量受到限制,若是將「所有的追蹤器數量」作為參考依據,將會使得被圈住的保護 區塊範圍縮小且被圈住的保護區塊(Scope)越多,而這樣的效果可能會使封包更容 易遇到外圍的追蹤器,下圖為環繞布署法之概念圖。
Figure 13 環繞布署法之概念圖
根據 Algorithm 5 的虛擬程式碼,同樣先計算各種保護區域的大小,並取得各種 保護區域大小的布建結果(Algorithm 5, Line 2~11),最後我們依照這些布建結果的建 議布建節點的數量作為考量,若是建議的布建節點數量小於等於「所有追蹤器的數量」, 則加入建議布署節點資格符合的串列(Algorithm 5, Line 7~9),最後我們會在將布署 節點資訊符合的串列進行數量多到小的排序(Algorithm 5, Line 12),並選出一種布署 結果的節點數量最貼近於我們所擁有的穿隧追蹤器的數量的布署結果作為最終確定 的布署結果(Algorithm 5, Line 13)。
Algorithm 5: Searching optimal deployment
1 2 3 4 5 6
List<Deployment> dList
for K = 1 to networkTopology.Diameter do int N = 0
do
last_deploy = try_deploy
try_deploy.Deploy(N++)
33
7 8 9 10 11 12 13 14
if try_deploy.DeployNode.Count < numberOfAllTracers do dList.Add(try_deploy)
end if
while try_deploy.Except(last_deploy).Count() == 0 end for
dList.OrderBy(DeployNodes.Count) Final_Deployment = dList.Last()
Final_Deployment.DeployNodes.OrderBy(DeployNodes.PassCount)
Table 6 環繞布署法-搜尋布署最佳化結果
根據 Algorithm 6、Algorithm 7 及 Algorithm 8 的虛擬程式碼,經 Algorithm 5 得 到最終確定的布署結果後,再將布署結果的建議布建節點依封包點到點之間經過次數 最多至最少的方式進行排序(Algorithm 5, Line 14)。最後再依排序後的建議布建節點 先布署過濾追蹤器(Algorithm 6, Line 1~8),其次布署標記追蹤後(Algorithm 7, Line 1~8),最後再布署穿隧追蹤器(Algorithm 8, Line 1~6)。
若是建議的布署節點都已布署完畢且有剩餘的追蹤器未布署,則會將這些剩餘的 追蹤器布署在建議布署節點所圍起的保護區塊中,直至所有的追蹤器都布署完畢。
Algorithm 6: Deploy filtering tracers
1 2
3 4
5 6 7 8
for i = 1 to numberOfFilteringTracer do
node = Final_Deployment.DeployNodes.Find(node.Tracer ==
TracerType.None) if node == null do
scope = Final_Deployment.AllRoundScopt.Find(Exist(node.Type ==
null))
node = scope.Find(node.Type == null) end if
node.Tracer = TracerType.Filtering end for
Table 7 環繞布署法-布署過濾追蹤器
34
Algorithm 7: Deploy Marking tracers
1 2
3 4
5 6 7 8
for i = 1 to numberOfMarkingTracer do
node = Final_Deployment.DeployNodes.Find(node.Tracer ==
TracerType.None) if node == null do
scope = Final_Deployment.AllRoundScopt.Find(Exist(node.Type ==
null))
node = scope.Find(node.Type == null) end if
node.Tracer = TracerType.Marking end for
Table 8 環繞布署法-布署標記追蹤器
Algorithm 8: Deploy tunneling tracers
1 2 4 5 6
foreach node in Final_Deployment.DeployNodes do if node.Tracer == TracerType.None do
node.Tracer = TracerType.Tunneling end if
end foreach
Table 9 環繞布署法-布署穿隧追蹤器
以下圖為例,布署的追蹤器數量即為網路拓撲中的路由器數量之 50%(9 個追蹤 器),再由此 9 個追蹤器上選擇 50%的穿隧追蹤器(5 個穿隧追蹤器)、20%的標記追 蹤器(2 個標記追蹤器)及 10%的過濾追蹤器進行(1 個過濾追蹤器)布署,粉紅色 的節點為穿隧追蹤器、橙色的節點為標記追蹤器、藍色的過濾追蹤器。
圖中可以發現到方法二的布署方式可以得到 9 個保護區塊,比起方法一的布署方 式多了 3 個保護區塊,而且保護區塊內的節點也相對的少過於方法一的布署方式,如 此一來,可能就會使得封包更容易通過追蹤器再抵達目的地。
35
Figure 14 經環繞布署法布署後的網路拓撲結構結果
36
第四章、模擬結果
本章節利用自行設計及實作的模擬器配合 Boston University 所設計的 Brite 網路 拓撲結構產生器 [43]進行模擬,模擬第三章第四節所提及的兩種布署的方法(章節 3.4.1 至 3.4.2)與隨機布署的方式,得到的結果可以比較出何種布署方式較為優良,
其中再利用第三章第二節所提及的所有穿隧方法(章節 3.2.1 至 3.2.5)來進行多項的 模擬。
在模擬的過程中,將會擬真的記錄下封包在網路上所經過的路由器及追蹤器所引 發的所有事件,包含封包送出事件、封包抵達事件、封包過濾事件、封包穿隧事件、
封包標記事件及封包基本資訊(來源位址、目的位址、是否俱有惡意行為等)。 在模擬各種穿隧方法配合各種布署方法所得到的數據項目,可分為所有封包所經 過的路由器數量(Total number of hops)、惡意封包被過濾的事件次數(Total number of filtering events)、封包被穿隧的事件次數(Total number of tunneling events)、封包被 標記的事件次數(Total number of marking events)及受害端通知各追蹤器所耗費的時 間(Tracing cost - Time)及所需的路徑總長(Tracing cost - Total number of hops)。而 在模擬的數據圖中將呈現未布署任何追蹤器的數據、布署後理想的數據及實際上布署 後得到的數據,同時也可以在數據圖中觀察小型的網路拓撲結構與大型的網路拓撲結 構的差異性。
37
4.1 模擬工具
本文利用 Boston University 編寫的 Brite 網路拓撲結構產生器 [43],依模擬的需 求隨機產生相應的節點數及邊數的網路拓撲結構,為了得到較完整的模擬結果,不只 模擬較小的網路拓撲結構(100 點至 500 點)同時也會模擬較大的網路拓撲結構(1000 點至 5000 點),並從這兩種大小的網路拓撲結構中觀察出本文提出的布署方法是否會 因為網路拓撲結構的大小而相對被影響。節點的輸出格式可參考 Table 10,邊的輸出 格式可參考 Table 11,實際的輸出範例可參考 Figure 16。
而本文主要的模擬器為自行設計與實作的程式(Figure 15),可以批次的方式讀 入 Brite 產生的網路拓撲結構,並依設定的各追蹤器比例布署於網路拓撲結構中後,
再根據模擬所設定的穿隧方法模擬封包在網路拓撲結構中所經過的所有路由器,並記 錄封包經過的事件、封包穿隧的事件、封包標記的事件及封包過濾的事件,而以上模 擬結果的資訊儲存於輕量化的 SQLite 資料庫 [44],最後再由資料庫中彙整出數據圖。
Figure 15 實作模擬器操作介面