邵嘉煒,范磊
?
云環境下一種基于動態網絡結構的拒絕服務防御技術
邵嘉煒,范磊
摘 要:介紹了一種在云環境下通過動態改變網絡結構抵御拒絕服務攻擊的防御方案,利用云環境下資源配置彈性化的特點,將合法用戶重新分配到擁有新地址,但地址對外保密的備份主機上,以避開攻擊流量。攻擊者通常控制著部分合法賬戶以收集系統信息,他可以通過追蹤這些賬戶的重分配以獲取新主機的網絡地址。注意到重分配結果與受攻擊者控制的用戶分布之間存在關系,并以此設計了用戶分配算法,通過提高正常用戶在參與每輪重分配的所有用戶中的比例,使更多的正常用戶與攻擊者控制的賬戶分離而免受攻擊。實驗證明,與現有研究相比,在資源受限的情況下,其方案能在更少的重分配輪數內保護絕大多數用戶,使系統在更短的時間內恢復正常。
關鍵詞:云計算;拒絕服務;彈性配置;動態防御;用戶重分配
范 磊(1975-),男,上海交通大學,電子信息與電氣工程學院,副教授,博士,研究方向:內容安全、網絡安全管理,上海,200240
拒絕服務攻擊是一種危害性極強的網絡攻擊,攻擊者往往能以較低的成本使受害網絡應用停止服務,給受害者造成極大的損失。對于拒絕服務攻擊,傳統的防御方法包括包過濾、應用層異常行為檢測和流量限制等。這些基于特定攻擊特征的靜態防御方法在當前日益復雜多變的復合式攻擊面前往往因為其靈活性不足而不能發揮理想的效果。
本文介紹了一種云環境下基于動態網絡結構的拒絕服務攻擊防御方法。與傳統方法不同的是,該方案利用了云環境資源動態分配的能力,通過動態改變網絡結構將受認證的合法用戶重新分配到擁有新網絡地址的服務器上,從而避開攻擊流量,避免受到攻擊的影響。針對攻擊者通過控制部分合法賬號以追蹤新服務器創建的行為,在現有研究的基礎上,本文利用重分配結果與受攻擊者控制的惡意賬戶在全部用戶中的分布之間的關系,通過提高參加重分配的用戶中正常用戶的比例使盡可能多的正常用戶在重新分配到新服務器后與惡意賬戶隔離而免受攻擊。
對于拒絕服務攻擊,傳統防御方法包括:根據源地址和協議等流量特征動態配置防火墻過濾規則[1];給來自合法用戶的報文加上標記,使這些報文優先獲得足夠的帶寬[2];使流量先通過具備檢測和防御能力的重疊網絡,從而在攻擊發生時進行基于全網的響應[3]等。這些防御方法本質上都屬于基于報文和流量特征的靜態防御,面對當前復雜多變的復合式拒絕服務攻擊往往暴露出靈活性不足的問題,而且基于全局的防御方法對網絡基礎設施有很高的要求,實現成本較高。
面對傳統方法存在的缺陷,H. Wang等人設計了基于動態防御的MOTAG系統[4]。該系統使用網絡代理保護目標服務器,每個代理具有獨立的秘密地址,用戶只能通過訪問系統分配的代理獲得服務。系統受到攻擊時,代理將被若干離線代理代替以避開攻擊流量。由于攻擊者可通過其控制的合法賬戶追蹤到新代理的網絡地址并發起新一輪攻擊,論文基于概率模型設計了用戶隨機分配算法,使每輪分配后與攻擊者控制的賬戶隔離而免于受害的正常用戶數的期望達到最大。近年來云計算技術得到了快速發展,云平臺具備資源分配彈性化的特點,能顯著降低動態防御的實現難度。Q.Jia等人在云平臺上構建MOTAG系統,在攻擊發生時啟動云服務器的備份替代受害服務器,并直接回收受害服務器資源,使資源利用更經濟[5]。
文獻[4]和文獻[5]中的MOTAG系統僅根據當前系統的受害情況計算新一輪用戶重分配方案,本文注意到重分配結果與受攻擊者控制的惡意用戶在全部用戶中的分布之間存在聯系,并結合現有研究成果設計了用戶重分配算法,以提高參加分配的所有用戶中正常用戶的比例,使每輪分配后有更多的正常用戶得到保護。
2.1 研究模型
本文研究模型基于以下假設:
1)本系統利用云平臺資源分配彈性化的特點,通過動態改變系統和網絡配置降低拒絕服務攻擊對系統造成的損害。云平臺有足夠的資源和能力及時執行系統所需的網絡配置的改變和用戶數據遷移等工作。
2)本系統中用戶必須通過認證才能得到服務。認證服務器可通過驗證碼等基于驗證性工作(Proof-of-Work)方法對抗拒絕服務攻擊。本文假設認證服務器不會因受到攻擊而停止服務。
3)攻擊者有能力對網絡服務中若干臺特定主機發動攻擊并使其癱瘓,但不能使整個云平臺停止服務。
4)攻擊者能夠通過控制部分合法賬戶收集服務器信息,但這些惡意用戶數遠小于所有合法賬戶總數。
5)檢測到攻擊的發生后,系統根據當前受害情況對受害用戶執行用戶重分配算法,并進行新服務器創建和用戶遷移。未受攻擊的用戶不參與重分配。攻擊者控制的惡意用戶與部分正常用戶一起遷移到新服務器上,攻擊者發現新服務器后即可發起新一輪攻擊。本文假設惡意用戶所在的服務器一定會受到攻擊,而不含惡意用戶的服務器一定不會受到攻擊。
2.2 系統結構
在已有研究基礎上,本文設計了基于動態網絡結構的拒絕服務防御模型,如圖1所示:

圖1 系統結構示意圖
認證服務器是系統的入口。用戶通過認證后,中心控制器為該用戶分配一臺服務器,把該用戶的信息注冊到該服務器的訪問控制列表中,同時將網絡地址以秘密的方式告知該用戶。用戶發起網絡連接并獲取服務。
系統檢測到拒絕服務攻擊的發生后,執行用戶分配算法,啟用若干備份服務器以取代受害服務器,并將受害用戶遷移到新服務器上。新服務器擁有全新的網絡地址,只對分配到該服務器的用戶公開,不會被以原服務器地址為目標的攻擊所影響。
攻擊者通常控制部分合法賬戶以收集信息,這些賬戶同樣會參與用戶重分配,攻擊者可通過追蹤這些賬戶的重分配過程發現新服務器。如圖2所示:

圖2 利用用戶重分配保護正常用戶
當正常用戶被重分配到不含惡意用戶的服務器上時,他們不會受到新一輪攻擊的影響。
攻擊響應系統的工作流程如下:
檢測到攻擊發生時,控制器對系統受害情況進行評估,如果高于門限值,則執行下一步驟,否則不需要執行重分配;
根據資源和當前受害情況執行重分配算法;
根據分配結果啟動備份服務器并執行用戶重分配,其地址只向對應的用戶公開;
用戶分配完畢后,系統回收受害服務器資源,繼續對服務進行定時檢測;
不含惡意賬戶的服務器不會被攻擊者知曉,因而不會受到攻擊。系統將一段時間后未受攻擊的用戶視為正常用戶,可將他們遷移到一起以節約資源。而攻擊者通過其控制的惡意賬戶追蹤到服務器的新地址并發動新一輪攻擊。系統檢測到攻擊發生后,執行步驟1以重新激活攻擊響應系統。
3.1 基本原理
設N為受到攻擊的合法用戶總數,Ni為惡意用戶數,假定Ni遠小于N。設每次重分配能同時使用的備份服務器數最多為S,ai為第i臺服務器上用戶的總數,在所有用戶中取ai名用戶共有種取法,而使這臺服務器上全部都是正常用戶共有種取法,則這臺服務器上沒有惡意用戶的概率是,由此可得正常用戶數的期望為公式(1):
鄱陽湖區圩堤管理單位與堤防管理人員在以往的堤防管理工作中,特別是在在歷次的抗洪搶險工作中,在各級水行政主管部門的領導下,發揮了極大的作用,為防洪減災、為當地的工農業生產和購買經濟建設作出了很大貢獻。鄱陽湖生態經濟區重要圩堤管理單位基本分為縣、鄉管理模式。如廿四聯圩長90km,由新建縣廿四聯圩管理局管理,屬事業單位,管理員6人,年均投入維護資金10萬元。這種管理性質的差異體現在管理工作中的結果是職能不清,責任不明,有事無人管,經費無保證。

所以,s臺服務器上正常用戶總數的期望為公式(2):

重分配算法的目標是使盡可能多的正常用戶分配到不含惡意用戶的服務器上,即求出使E(Ans)最大。
文獻[4]使用了一種基于貪心策略的用戶重分配算法。該算法通過遍歷ai的所有可能值,得到使公式(1)中E (Ai)最大的ai,并直接使用該值進行用戶分配。文獻[4]將斯特林公式得公式(3):


3.2 惡意用戶數估計
3.1節中的算法把惡意用戶數作為計算用戶分配方案的重要參數,因此準確估計惡意用戶總數對算法效率影響很大。文獻[4]和[5]通過建立惡意用戶數Ni與未受害的服務器數為X的概率 之間的關系式,取使該值最大的Ni作為惡意用戶數的估計值。該算法涉及大量的大整數組合數計算,計算量很大。
本文設計了基于統計模擬的惡意用戶數Ni最大似然估計算法,主要思路是根據每個可能的Ni值,構造與樣本中用戶總數相同且惡意用戶數為Ni的測試樣本,根據當前分配方案重復進行用戶分配實驗,分別統計實驗結果中未受攻擊的服務器分布與實際情況相同的次數,取次數最多的Ni 為當前樣本中惡意用戶的估計值。完整的算法如算法1 所示:

輸入: AllocList :上一輪重分配的分配方案SafeList : 上一輪重分配后未受攻擊的服務器列表TotalUser:當前受害用戶總數輸出: 系統中受攻擊者控制的惡意用戶總數的估計值function Estimate (AllocList, SafeList, TotalUser ): 1: MinInsider = AllocList.length - SafeList.length 2:MaxInsider = AllocList.users - SafeList.users 3: TotalClients = AllocList.users 4: MaxOccurTimes = 0 5: InsiderEstimate = -1 6: for CurInsider ← MinInsider to MaxInsider: 7: AllList= MakeList(TotalClients, CurInsider) 8: OccurTimes = 0 9: for i← 1 to Times: 10: random.shuffle(AllList) 11: Reallocate clients in AllList by AllocList 12: Get servers not under attack NewSafeList 13:if NewSafeList.equals ( SafeList ): 14:OccurTimes = OccurTimes +1 15: endif 16: endfor 17:if OccurTimes>MaxOccurTimes: 18:MaxOccurTimes = OccurTimes 19:InsiderEstimate = CurrentInsider 20:endif 21: endfor 22: return InsiderEstimate * TotalClients / TotalUser
本算法不涉及大數的組合數計算,實現難度較小,但算法運行時間隨用戶總數增長,實際應用中可通過查表實時獲取惡意用戶的估計值。
3.3 用戶分配算法
由4.1節可知,在參與重分配的用戶全部由全局隨機選取的情況下,重分配后獲得保護的正常用戶數的期望只與惡意用戶占總用戶的比例N/Ni有關,因此降低惡意用戶在參與重分配用戶中的比例能提高重分配效率。若可同時使用的網絡資源足夠多,則所有用戶都能參加重分配。本節討論網絡地址資源受限時,如何優化重分配中用戶的選取提高重分配的效率。
當一臺服務器受到攻擊時,該服務器上所有用戶受攻擊者控制的嫌疑是相同的。系統執行用戶重分配算法并對用戶進行重分配,一段時間后,存在惡意用戶的服務器會重新受到攻擊。如果使用貪心算法,且用戶以隨機均勻的方式分配,則每臺服務器上惡意用戶數的總期望值為1,設有S1臺服務器參與本輪重分配,則參與本輪重分配的惡意用戶數期望為S1,而沒有分配到惡意用戶的服務器數均值為公式(5):

則每臺受害服務器上惡意用戶數的均值為公式(6):

公式(6)表明每臺受害服務器上惡意用戶數的均值是常數1.58,由此可知受害服務器上惡意用戶的比例有極大的概率高于惡意用戶在全部用戶中的比例,同時一臺受害服務器上惡意用戶的比例可用該服務器上用戶總數衡量。隨著受害服務器上用戶數不斷減少,受害服務器上惡意用戶的比例隨之增加。因此,本文將前一次重分配后受害服務器上的用戶放入一個隊列的尾部,并從隊首獲取參加本輪重分配的用戶,使參與重分配的用戶中正常用戶的比例提高。
但是,由于從隊首得到的用戶中惡意用戶的比例低于全局,無法通過這些用戶的受害情況估計全局惡意用戶數。本文將用戶分配過程分為兩部分,先從全局隨機抽取一定比例的用戶,再從隊列的隊首獲取剩下的用戶,用戶重分配在兩部分用戶中分別進行,因此下一輪用戶分配時能通過前一輪從全局隨機抽取用戶的受害情況估計全局惡意用戶數,同時又能利用隊首用戶中惡意用戶比例小于全局的性質使更多的正常用戶與惡意用戶分離。
完整的用戶分配算法如算法2所示:

算法 2:用戶重分配算法輸入: AllocList : 上輪重分配方案SafeList :上輪重分配后未受攻擊的服務器列表Queue: 一個隊列,保存所有受害用戶的信息RandRate: 隨機抽取用戶組成的服務器占全部服務器的比例AllServer: 本輪重分配中可用的服務器數最大值輸出: 本輪重分配方案function Reallocation (AllocList, SafeList, Queue, RandRate, MaxServer ): 1: Estimate Insiders by sampled users in AllocList 2: Plan = Greedy (Queue, Insiders, AllServer ) 3: RandServer = AllServer * RandRate 4: RandPlan = Plan.subList (0, RandServer ) 5: QueuePlan=Plan.subList (RandServer, AllServer) 6: Shuffle attacked users and let them enqueue Queue 7: Randomly pick users from Queue to make up RList by RandPlan 8: Dequeue users to make up QList by QueuePlan 9: return combineList ( RList, QList )
本文使用貪心算法計算用戶分配方案,根據事先確定的比例以全局隨機和隊列隊首兩種方式選取參加重分配的用戶,并將分配方案分別應用于這兩部分用戶。系統當前惡意用戶數的估計值由上一輪全局隨機獲得的用戶的受害情況而得。初次運行用戶重分配時,使用默認的重分配方案,所有參加重分配的用戶都從全局隨機獲得。
本章以系統正常用戶數、惡意賬戶數和可用的服務器數最大值為參數,對MOTAG算法和3.3節中基于隊列的用戶分配算法進行仿真實驗,通過比較在不同惡意用戶數下保護80%或95%的正常用戶所需的重分配輪數評估兩個算法的性能。實驗中每個數據點都經過30次重復實驗取均值而得,所有算法的第一輪分配都相同,全局隨機獲取的用戶占全部參與重分配的所有用戶之比為0.3,結果如圖3至圖6所示:

圖3 正常用戶數為10K,可用服務器數為100

圖4 正常用戶數為100K,可用服務器數為100

圖5 正常用戶數為10K,可用服務器數為50

圖6 正常用戶數為100K,可用服務器數為50
由圖3至圖6可知,本文算法與MOTAG性質相近,重分配輪數與惡意用戶數呈線性相關性。惡意用戶數小于或接近于可用服務器數時,兩種算法性能相近,這是由于此時系統中絕大部分用戶都能參加每一輪重分配,使本文
算法的用戶分配策略失效。惡意用戶數大于可用服務器數時,本文算法可節約10%重分配次數,且兩者比值越大,優勢越明顯。
為測試算法2中兩種用戶選取方法的性能,本文改變參加重分配的服務器數和惡意用戶數,保持其它參數不變進行30次實驗,比較兩種方法使正常用戶獲得保護的概率。實驗結果如表1所示:

表1 算法2中兩種用戶選取算法性能比較
由表1可知,從隊首獲取的用戶受到保護的可能性普遍高于從全局隨機獲取的用戶,由此說明了該方法能使重分配算法的效率得到提高。
本文討論了一種基于動態網絡結構的拒絕服務防御方案。與基于靜態防御的傳統方法不同的是,本文通過主動改變系統本身網絡結構使攻擊者失去有效目標,從而保護了系統內的合法用戶免受攻擊。隨著云計算技術的不斷發展,其資源配置彈性化的特點極大地降低了動態網絡結構的實現難度,使云平臺成為實現本方案的最理想平臺。
對于攻擊者可控制部分合法賬戶,通過跟蹤這些賬戶的分配過程獲取新服務器地址,本文在已有研究的基礎上,利用重分配結果與惡意用戶分布之間的關系提高參與重分配的用戶中正常用戶的比例,使更多的用戶在重分配后獲得保護。實驗證明,與現有研究相比,在資源受限的情況下,本方案能在更少的重分配輪數內使絕大多數用戶與惡意賬戶隔離,使系統在更短的時間內恢復正常服務,從而論證了本方案的有效性。
參考文獻
[1] Chen,Qi,Wenmin Lin,Wanchun Dou,et al.CBF: a packet filtering method for DDoS attack defense in cloud environment[C].Sydney:IEEE,2011:427-434.
[2] Natu,Maitreya,Jelena Mirkovic.Fine-grained capabilities for flooding DDoS defense using client reputations[C]. New York:ACM,2007:105-112.
[3] Shi,Elaine,Ion Stoica,David G.Andersen,et al.OverDoSe: A generic DDoS protection service using an overlay network[R].Pittsburgh:Computer Science Department, Carnegie Mellon University,2006:76.
[4] Huangxin Wang,Quan Jia,Dan Fleck,et al.A moving target DDoS defense mechanism[J].Computer Commun ications,2014,46(2014):10-21.
[5] Jia,Quan,Huangxin Wang,et al.Catch Me if You Can: A Cloud-EnabledDDoSDefense[C].Atlanda:IEEE,2014: 264-275.
Dynamic-network-structure Based on Defense Technology against Denial of Service Attacks in Cloud Environment
Shao Jiawei, Fan Lei
(Department of Electronic Information and Electrical Engineering, Shanghai Jiaotong University, Shanghai 200240, China)
Abstract:The paper introduces a dynamic-network-structure-based network defense mechanism against Denial-of-Service attacks. On the basis of the elastic of configurations and resource allocations in cloud platforms, the system reallocates the affected clients to newly initialized backup servers with new secret network addresses, which makes them avoid being attacked. Since attackers may trace the migration of the clients under their control (insiders) to discover these new servers, the paper notices the relation between the shuffling results and the distribution of the insiders and introduces a client-shuffle-and-reallocation algorithm based on the results of every previous shuffle to isolate as many benign clients as possible from attackers. Simulations show that when resources are limited, the algorithm uses fewer shuffles to protect most of the benign clients than those of current researches, which proves the higher effectiveness of this algorithm.
Key words:Cloud Computing; Denial of Service; Elastic Configuration; Dynamic Protection; Clients Shuffling
(收稿日期:2015.06.27)
作者簡介:邵嘉煒(1991-),男,上海交通大學,電子信息與電氣工程學院,碩士研究生,研究方向:云計算安全,上海,200240
基金項目:上海市基礎研究重大重點項目(13JC1403500)
文章編號:1007-757X(2016)02-0010-04
中圖分類號:TP309
文獻標志碼:A