朱龍隆,陳翰澤,程靈飛,周政演,張棟
(福州大學計算機與大數據學院,福建 福州 350108)
隨著云計算、大數據等新型服務模式的興起,數據中心規模與日俱增,成為互聯網發展的重要基礎設施.與此同時,數據中心網絡亦成為黑客攻擊主要目標,通過注入大量垃圾流量,癱瘓數據中心,導致網絡業務中斷.檢測和防御大規模異常流量,成為數據中心網絡安全的重要課題.在網絡流量異常檢測中,重流(heavy hitter)[1]是意義深遠的測量目標,體現為數量巨大且無用的數據包集合,占用大量網絡帶寬和計算資源,導致服務器癱瘓.重流隱含重要網絡狀態信息,通過識別重流,網絡運營商可以快速發現性能異常和潛在的DDoS攻擊.
目前,在數據中心廣泛部署網絡流量異常檢測方案,包括基于每流測量、基于抽樣技術和基于Sketch[1-3],周期性報告重流以期及時發現網絡安全威脅.但面對數據中心網絡和大規模并發流量的網絡部署,基于每流測量的異常檢測統計所有數據包原始信息,具有極高空間復雜度;基于抽樣技術的異常檢測因數據包處理速度要求與交換機內存限制,難以在精度和開銷之間取得較好權衡.基于Sketch的異常檢測方案為重流檢測提供一種新思路,作為一種緊湊的用于流量數據統計亞線性數據結構,Sketch以線性速度壓縮并記錄所有數據包信息,通過查詢操作獲取流量統計數據,在保證可接受精度的同時極大減小內存開銷.
基于Sketch的異常檢測因其高效、準確、內存開銷低等優勢受到廣泛關注,但也存在不足:首先,承載網絡流量異常檢測功能的設備(如數據中心內交換機、控制器等)受攻擊時,基于Sketch的異常檢測往往無法適應流量分布,檢測精度降低;其次,基于Sketch的設計缺陷導致的漏洞難以避免,對Sketch網絡流量異常檢測的魯棒性、穩定性提出更高要求.例如,算法的數據結構簡單且動態性不足,在其檢測機制、參數泄漏后易被針對攻擊,設計缺陷被放大,導致占用過高內存或過多計算資源,無法進行準確檢測,導致安全性下降.
面對多樣化的網絡安全問題和日新月異的攻擊手段,鄔江興院士提出擬態防御理念[4].不同于靜態防御、聯動式防御等傳統技術,擬態防御從異構、冗余思想出發,通過動態改變防御策略或更換組件,實現防御體系多樣性、隨機性和動態性.通過基于多模裁決的策略分發和多維動態重構負反饋控制構造,擬態防御可有效防御網絡空間中的“已知風險”與“未知風險”.眾多依據擬態防御技術構建的安全網絡設備陸續出現,驗證擬態防御有效性.將擬態防御思想引入Sketch檢測,以提高異常檢測魯棒性.此外,由于不同Sketch間的差異較大,針對不同場景,通過設計相應的裁決反饋機制,實現執行體間的互補,增強Sketch異常檢測方案的適應性.實驗結果表明,所提架構有效增強異常檢測魯棒性.
基于Sketch的異常檢測使用哈希函數將數據映射到數據結構中,以犧牲微小精度為代價,將大量網絡流量信息壓縮到較小的存儲空間.Sketch實時存儲流量特征信息,并支持查詢流量統計信息,包括Count-Min-Sketch[2]、LD-Sketch[1]、Elastic-Sketch[3]等.
Count-Min-Sketch數據結構如圖1,通過多個相互獨立的哈希函數,將數據包映射到不同行的不同桶內,記錄數據包信息.查詢流量大小時,返回所有相關桶內計數器值最小值.

圖1 Count-Min-Sketch的數據結構Fig.1 Data-structure of Count-Min-Sketch
LD-Sketch以關聯數組在桶內存儲多個重流候選,動態控制關聯數組長度,在盡可能小的內存開銷下有效應對多重流哈希到同一個桶內的極端情況,增強魯棒性,但易造成過高內存依賴.
Elastic-Sketch使用基于主票選算法的數組(heavy part)記錄重流,Count-Min-Sketch(light part)記錄其他流量信息.heavy part保留重流具體信息,light part記錄的信息較簡略,在可接受的空間開銷下篩選出重流.heavy part采用票選算法,易出現重流候選頻繁更替,導致性能抖動.
SET-CM-Sketch(Soft-Error-Tolerant-Count-Min-Sketch)[5]考慮軟錯誤對于異常檢測的影響,然而所提設計通用性較弱.SA-Sketch[6]考慮高速網絡環境下Sketch的自適應能力,但對于發生不明故障、遭受攻擊的情況考慮較少.
擬態防御主要用于網絡領域,如擬態路由器、擬態交換機等.擬態防御架構由輸入代理器、可重構異構執行體集、反饋控制器、輸出裁決器四部分組成.可重構異構執行體集、輸入代理器和反饋控制器組成擬態防御架構的多維動態重構支撐環節.執行體集由異構構件池隨機抽取,受反饋控制器控制[4].在反饋控制器調度下,輸入代理器將更改執行體.
輸出裁決器收集各執行體輸出矢量,疊加得到最終輸出與裁決信息.反饋控制器根據裁決信息決定是否變更輸入代理器內調度策略或插入當前執行體集.文獻[7]中將異構冗余的執行體引入路由器體系架構中,并設計相應的動態調度機制,增強路由系統的魯棒性.文獻[8]設計基于擬態防御的SDN控制層安全機制,對比流表項檢測惡意行為.文獻[9]采用廣義隨機Petri網建模,通過反饋控制有效控制服務器解析時延差值.文獻[10]分析多余度裁決模型的防御能力、運行效率、系統恢復,給出模型不足及改進方向.文獻[11]基于動態異構冗余架構,提出適用擬態防御架構的Web服務器.
Sketch分為:1) 基于Count-Min-Sketch衍生的[12-13];2) 基于分組測試的[14];3) 基于枚舉的[15-16].
通過理論與實驗,考量不同Sketch在不同異常場景下的魯棒性,并將此作為異構性量化標準之一.結合數據結構、性能誤差等因素,量化Sketch異構性,篩選足夠異構執行體,組建異構執行體集.如表1所示,選取常見的七種Sketch,分析不同方案魯棒性,量化異構性.

表1 基于Sketch方法的異構性與魯棒性分析Tab.1 Heterogeneity and robustness analysis of Sketch-based methods
在包速率過快場景下,CM-Heap[2]和MV-Sketch[12]依靠高效插入操作保持較高性能;Space-Saving[17]因大量指針操作,運行速率低;Group-Testing[14]進行常數次哈希操作,但插入時需二進制轉換與插入,查詢時遍歷桶中的每一位,速度較慢;LD-Sketch[1]插入需遍歷關聯數組,在流量分布超出人工預先配置模型時關聯數組過長,整體插入速率較慢;Rev-Sketch[16]采取“分組-合并”策略,涉及大量矩陣分量運算,運行速度較低.
在流量嚴重傾斜場景下,Space-Saving基于有序雙向鏈表結構,完整保留多重流;LD-Sketch關聯數組保持多候選重流;Rev-Sketch通過可逆的運算得到哈希值對應的所有流量集合并篩選可疑流量.MV-Sketch每桶只保存單重流,難以應對流量嚴重傾斜;CM-Heap插入累加桶內計數器,假陽性高.
在哈希不均勻場景下,Space-Saving沒有使用哈希函數不受影響;Rev-Sketch對流量進行混淆預處理和分組哈希,降低哈希碰撞概率.MV-Sketch、CM-Heap嚴重依賴哈希函數,當哈希不均勻時帶來的更多的哈希碰撞,導致性能下降;LD-Sketch使用關聯數組減少哈希碰撞影響,但控制機制存在缺陷.
構建基于擬態防御思想的網絡流量異常檢測,主要包括:
1) 異構執行體集的構建與魯棒性量化.執行體異構性的量化是執行體集構建的基礎,設計適應于當前場景下執行體集結構的基礎.對基于Sketch的評估與實驗在較為理想化場景下進行,缺乏極端條件下的結論作為魯棒性評估的依據和參考.
2) 擬態化構造的開銷.異構冗余構造帶來多倍的內存開銷;輸出裁決、反饋控制環節帶來額外的時間開銷;擬態化構造給異常檢測查詢操作增加時空開銷,影響實時性和小內存下的表現.
3) Sketch裁決反饋機制.由于Sketch的缺陷,各執行體的輸出結果存在一定的誤差.同時,反饋調節是一個復雜的過程,尤其在可能不準確的檢測結果基礎上準確判斷各執行體運行效果,并避免過多更換引起性能抖動;反饋調節是一個快速反應的過程,因為網絡流量的高速性,反饋調節的時間開銷過大導致實際用于異常檢測的時間過少.因此,設計一種高效、準確的Sketch裁決反饋機制是一個重大的挑戰.
借鑒擬態防御思想,結合多種異常檢測方案特點及魯棒性,設計了基于擬態防御的網絡流量異常檢測架構.如圖2所示,主要由待機異構執行體池、輸出裁決器、索引Sketch、反饋控制器等模塊組成.

圖2 基于擬態防御的網絡流量異常檢測架構Fig.2 Anomaly detection architecture for network traffic flow based on mimic defense
執行體集由索引Sketch、運行集、待機異構執行體池組成,索引Sketch由運行集中執行體構建而成,待機異構執行體池存放當前未運行執行體.輸出裁決器對各異構執行體的輸出矢量疊加得到最終輸出,將為反饋控制器提供裁決信息.反饋控制器依據裁決信息決定對索引Sketch、運行集和待機異構執行體池進行動態調整.
本架構的動態、異構、冗余特性體現在:動態性.在反饋控制器的策略調度下,運行集內執行體由異構執行體池內組件動態替換,索引Sketch結構也將動態插入;異構性.多維度考量Sketch異構性,篩選充分異構執行體,構建執行體集,在索引Sketch不同粒度、交換機設備、操作系統等方面增加系統異構性;冗余性.對同一輸入,可采用多執行體處理、分布式設備同時處理,并依據事先定義好的策略集,對結果多模裁決,實現多余度操作.
基于傳統擬態模型的網絡流量異常檢測將可重構異構執行體集定義為多種異構Sketch集合.插入數據包時,輸入代理器選擇性轉發輸入激勵至某些執行體,多執行體處理相同輸入激勵.查詢異常流量時,遍歷所有執行體,將各輸出矢量(即重流候選)發送至輸出裁決器.輸出裁決器進行裁決得到最終輸出.
然而,多執行體帶來多倍內存開銷,重復處理同一輸入降低插入效率,遍歷執行體降低查詢效率,總吞吐量受吞吐量最小執行體影響.為此,提出索引Sketch與迷你執行體,減小擬態化構造帶來的弊端.
如圖3所示,執行體集由運行集、待機異構執行體池、索引Sketch組成.在初始化時,從待機異構執行體池隨機剝離執行體,生成運行集.根據運行集內執行體,構建索引Sketch與迷你執行體.

圖3 執行體集結構Fig.3 Structure of actuator set
本研究在分析不同基于Sketch的異常檢測方案的數據結構、理論保證的基礎上,決定不同算法在索引Sketch中體現的粒度,實現各執行體間粒度的異構,增加系統的異構性.
索引Sketch中每個桶存儲一個索引值,對應一種迷你執行體.插入數據包時,根據桶內索引值確定迷你執行體,調用相應插入函數.通過另一哈希函數將索引Sketch分流至多迷你執行體,由哈希函數定位,相較于傳統擬態模型下的測量架構,提高檢測效率,定理1中給出理論證明.
定理1在實際部署中,執行體數量n滿足:

(1)


兼顧流量大小與執行體性能決定運行集各執行體實際內存分配,生成迷你執行體.最簡情況下,執行體均分內存,實現流量均勻分流,減少多執行體帶來的內存開銷,并在定理2中給出理論證明.在實際部署中,根據執行體的性能差異、當前場景的具體要求,差異化分配流量至不同執行體,以達到更高靈活性.
定理2在實際部署中,執行體數量n滿足:

(2)

檢測到異常時,反饋控制器從待機異構構件池中選擇互補執行體替換問題執行體,更新索引Sketch.基于閉環控制,運行集將動態適應當前網絡環境,實現強魯棒性.預先分析多種基于Sketch的異常檢測方案的異構性、魯棒性,并為每個執行體配置足夠的互補執行體,防止替換時互補待機執行體不足.
較傳統異常檢測,基于擬態防御增加系統不確定性,增大攻擊者攻擊難度.較基于傳統擬態架構,結合了不同執行體的魯棒性分析與互補關系,增強異常檢測的適應性.
5.1.1 多模裁決
異構系統中執行體間存在許多差異,因而往往采用多模裁決策略.輸出裁決器內包含可定義的裁決策略集.從理論、實驗多層面,綜合分析不同基于Sketch的異常檢測方案的特征及異同,設計適合當前執行體集結構的裁決策略集.具體包含:基于權重的疊加表決、行間表決,基于可信度的多數表決等.
5.1.2 可控裁決策略集
輸出裁決器疊加各執行體輸出,基于裁決策略得到Heavy Hitter List與裁決信息.輸出裁決器通過多模裁決的方式,可以針對不同場景、需求,選擇、調整裁決策略,入侵容忍能力強、靈活性高、準確性高.設策略集共k種策略,為S1,S2,…,Sk;Si.threshold為策略Si對應閾值.下為裁決算法示例:
算法1裁決算法

輸入:各執行體輸出(HeavyHitterCandidateList)OUTPUT={OP1,OP2,…,OPn}輸出:HeavyHitterList1)Heavy_List[n]={}2)FORi=1tonDO3) FORiteminOPiDO4) FORj=1tokDO5) IFitem.value≥Sj.thresholdTHEN6) InsertitemtoHeavy_List[i]7) break8)RETURNFinal_List=Intersection(allHeavy_List)
如第5~6行所示,將執行體輸出中滿足條件元素寫入當前策略對應輸出集合.所有策略執行完畢時,如第8行所示,對比裁決結果,取并集作為最終輸出.實際場景下,可根據檢測敏感性要求,配置參數w(1≤w≤k)采用“滿足w種策略”的裁決標準,或采用基于單策略的迭代裁決,以提高裁決效率.
5.2.1 反饋控制
反饋控制器判斷并處理異常情況.接收裁決信息,依據預定策略調度運行集和待機異構執行體池.達到調度要求時,終止異常執行體,在待機異構執行體池中選擇并啟動互補執行體.
反饋控制器中維護一反饋計數器組,數組下標對應執行體,計數器值記錄執行體狀態.系統在初始化時,將運行集執行體對應計數器值初始化為1,其余初始化為0.在系統運行過程中,反饋控制器根據裁決信息更新計數器值.計數器值達到反饋標準時,執行反饋策略并重新初始化反饋計數器組.
5.2.2 反饋策略與算法
依據“可信度q為執行體表決正確次數與本周期總表決次數之比”,計算可信度序列Q= {q1,q2,…,qn}.取其中值最小者qmin,若qmin<φ(φ為預先設定的閾值),則將qmin對應執行體判定為“疑似問題執行體”,計數器值增1,并判斷是否達到反饋標準:某執行體計數器值大于其余計數器值總和,判定為問題執行體.為保證反饋信息數組最貼近當前網絡環境,經過若干周期,初始化反饋信息數組.
當達到反饋標準時,反饋控制器終止該問題執行體.在反饋控制器調度下,互補執行體將替換問題執行體.反饋控制算法如下所示:
算法2反饋控制算法

輸入:Q={q1,q2,…,qk}1)qmin=min{q1,q2,…,qk}2)i=argmin{q1,q2,…,qk}3)IFqmin<ΦTHEN4) counter[i]++5)sum=∑counter[j]ifj!=i6)IFcounter[i]>sumTHEN7) Replace_MimicSketch(i)
反饋控制器接收裁決信息,當滿足條件時,累加對應計數器值(第4行).判斷是否需要執行反饋控制操作(第6行),若需要,啟動互補待機執行體,替代相應的舊執行體(第7行).重新初始化索引Sketch和反饋信息數組.
為驗證系統魯棒性和裁決機制有效性,建立可持續運行型仿真擬態防御網絡測量系統.實驗1采用13份異構數據集以模擬具有不同數據量、數據特征的網絡環境.設閾值0.1%,分13個周期分別檢測重
流.每周期讀取數據包量3萬至21萬不等,以測試不同數據量下不同異常檢測方案性能.
在實驗1中,設置3個異構Sketch執行體(Saving-Space、Count-Min-Sketch、MV-Sketch),構建索引Sketch.采用概率比例裁決、多票裁決等裁決策略.如圖4所示,所提架構平均準確率達90%以上,高于傳統異常檢測方案.如圖5所示,所提架構召回率平均達97.5%,與傳統異常檢測方案相近,可滿足大多數場景下的要求.如圖6,觀察裁決前后執行體檢測重流數量和最終輸出重流數量,發現在內存壓縮后迷你執行體假陽性或假陰性大幅提高.經過裁決,及時剔除假陽性重流,說明裁決策略是有效的.更重要是通過裁決反饋,實時獲取執行體的性能變化,有助于后續Sketch的合理替換,這個是傳統方案所難以達到的.

圖4 重流檢測精確度Fig.4 Precision for heavy hitter detection

圖5 重流檢測召回率Fig.5 Recall for heavy hitter detection

圖6 迷你執行體(微執行體)輸出重流數Fig.6 Number of heavy hitter outputted by mini actuator
在實驗2中,基于上述條件不變,在內存變化下測試異常檢測性能,分析索引Sketch的執行體在不同內存條件下魯棒性.在實驗1的基礎上,不斷變化內存,測出準確度和召回率的平均值,并繪出折線圖,如圖7和圖8所示,在2~4 kB 到2~9 kB 的內存場景下,準確率和召回率都由于內存不足而大幅下降.這說明1 MB內存是目前作為索引Sketch精度的最低下限保證,也是實驗1選取1 MB內存的依據.

圖7 隨內存變化的重流檢測精確度Fig.7 Precision for heavy hitter detection under varies memory

圖8 隨內存變化的重流檢測召回率Fig.8 Recall for heavy hitter detection under varies memory
在其他內存條件下,雖然同樣受到內存影響,所提架構精度依然高于其他Sketch單獨執行,以及1 MB內存下迷你執行體僅有1/3 MB內存時不到40%的平均準確率和不到85%的平均召回率,在實驗1的多模裁決方案下,依然將其均值提升到90%和95%以上,多模裁決在未知環境和未知攻擊下,具有比其他傳統網絡測量手段更強的魯棒性和有效性.保證運行時不過多占用內存空間,以及高準確率和召回率.
隨網絡空間復雜化與數據量爆發式增長,網絡流量異常檢測越發重要.提出一種基于擬態防御的網絡流量異常檢測架構.深入研究基于Sketch的異常檢測方案,分析并量化其魯棒性、異構性,在擬態防御的基礎上引入互補思想進一步提高防御有效性.提出索引Sketch與迷你執行體,通過索引Sketch定位迷你執行體,達到流量分流、加速查詢的效果.迷你執行體有效降低擬態化構造帶來的額外空間開銷.根據網絡流量異常檢測場景的特點以及基于Sketch的異常檢測方案的特性,設計裁決反饋機制,通過實驗驗證準確性、強魯棒.在未來的工作中,將對架構進一步優化,以更好滿足網絡流量異常檢測高效、準確的要求,并部署到實際網絡中進行可靠性測試,設計更成熟的裁決反饋策略,進一步降低假陽性.