賴 粵, 黃河濤, 謝勝利
(華南理工大學(xué)電子與信息學(xué)院,廣東廣州510640)
異常流量檢測是網(wǎng)絡(luò)流量工程的一個(gè)重要課題。它通過對網(wǎng)絡(luò)流量特征的提取和分析,從而發(fā)現(xiàn)其中的行為偏離,為系統(tǒng)對已經(jīng)發(fā)生或者即將發(fā)生的非法行為做出反應(yīng)提供依據(jù)和預(yù)警,可以防止網(wǎng)絡(luò)設(shè)施(如路由器、服務(wù)器、交換機(jī)和網(wǎng)絡(luò)帶寬)遭受蠕蟲病毒、拒絕服務(wù)攻擊和一些網(wǎng)絡(luò)濫用行為的襲擾[1]。近幾年,融合網(wǎng)絡(luò)和視頻、語音型服務(wù)的不斷普及,使得互聯(lián)網(wǎng)的規(guī)模不斷擴(kuò)大,復(fù)雜性不斷增加,隨著而來的網(wǎng)絡(luò)安全問題也愈發(fā)的突出與復(fù)雜。非法網(wǎng)絡(luò)行為往往隱藏在越來越龐大的網(wǎng)絡(luò)流量行為中,其突發(fā)性和隱秘性讓異常流量檢測面臨極大的挑戰(zhàn)。
網(wǎng)絡(luò)處理器(network processor,NP)是一種針對若干類通信領(lǐng)域任務(wù)而開發(fā)設(shè)計(jì)的可編程器件,比如路由查找、QOS、安全網(wǎng)管等,與其他同類器件相比,其具有更強(qiáng)的針對性和更高的靈活性[2]。目前提供網(wǎng)絡(luò)處理器的廠商有很多,比較有代表性的是Intel的IXP系列和IBM的PowerNP,而前者在國內(nèi)得到比較廣泛的研究和應(yīng)用。隨著網(wǎng)絡(luò)處理器的推廣,基于這類器件的安全應(yīng)用也逐漸受到國內(nèi)外研究人員的關(guān)注。
本文提出了一種基于Intel第二代網(wǎng)絡(luò)處理器IXP2850的異常流量檢測模塊的設(shè)計(jì)和實(shí)現(xiàn)方案。該模塊主要分為兩大部分:流量信息的采集和流量信息的分析,利用IXP2850系統(tǒng)結(jié)構(gòu)多層并發(fā)的特點(diǎn),實(shí)現(xiàn)在千兆線速的網(wǎng)絡(luò)環(huán)境下對流信息的實(shí)時(shí)監(jiān)控。該設(shè)計(jì)解決了線程交叉復(fù)雜而造成的資源沖突問題,并通過實(shí)驗(yàn)探討距離運(yùn)算結(jié)合本地資源監(jiān)控的異常流量分析方法,對于網(wǎng)絡(luò)處理器在安全領(lǐng)域的運(yùn)用推廣有積極的促進(jìn)作用。
網(wǎng)絡(luò)流量異常檢測要解決的核心問題之一是獲得流量信息的全面性和流量信息描述的準(zhǔn)確性[3]。目前使用最為廣泛的網(wǎng)絡(luò)安全檢測的采集方法是基于網(wǎng)絡(luò)探針的采集方法,通過在總線安插探針,監(jiān)聽并接收經(jīng)過監(jiān)測點(diǎn)的每一次通信,數(shù)據(jù)收集范圍可從數(shù)據(jù)鏈路層到應(yīng)用層。但是這種方法采集數(shù)據(jù)量龐大,無論對采集還是分析系統(tǒng)的要求都比較高,并不適和高速設(shè)備的實(shí)時(shí)檢測。另外一種較為常用的方法是基于網(wǎng)絡(luò)流的數(shù)據(jù)采集方法,通過抓取流經(jīng)路由的網(wǎng)絡(luò)數(shù)據(jù)包的TCP/IP信息,整理成流信息,不涉及網(wǎng)絡(luò)高層,這樣雖然影響了全面檢測,但是卻極大的降低了對系統(tǒng)的要求而不失對網(wǎng)絡(luò)流量的直觀分析。
數(shù)據(jù)分析方面,近幾年,研究人員對網(wǎng)絡(luò)異常流量及其分析方法進(jìn)行了廣泛的研究,提出了基于不同方法的檢測方案和構(gòu)架,主要有以下幾種[4]:基于統(tǒng)計(jì)學(xué)的異常檢測、基于數(shù)據(jù)挖掘的異常檢測和基于機(jī)器學(xué)習(xí)的異常檢測等。其中,文獻(xiàn)[5]提出通過改進(jìn)型的CUSUM算法實(shí)現(xiàn)實(shí)時(shí)監(jiān)控端口流量,并通過均值的比對檢驗(yàn)異常情況;文獻(xiàn)[6]提出利用熵對網(wǎng)絡(luò)流量的數(shù)據(jù)包報(bào)文進(jìn)行特征分析,能夠獲得較好的大流量異常檢測效果和無監(jiān)督學(xué)習(xí)分類;文獻(xiàn)[7]提出通過對用戶網(wǎng)絡(luò)流量進(jìn)行統(tǒng)計(jì),獲得用戶的行為模式,利用這種模式進(jìn)行行為識別,為入侵檢測提供一種新思路。
IXP2850是Intel公司IXP系列的第二代網(wǎng)絡(luò)處理器,功能強(qiáng)大設(shè)計(jì)靈活而受到國內(nèi)外研發(fā)人員的青睞。它具有16個(gè)1.4GHz的微引擎(ME),1個(gè)700MHz的32位嵌入式處理核心(XScale),并且集成了哈希、加解密、原子操作等硬件功能。每個(gè)ME內(nèi)部可支持8個(gè)硬件線程,多個(gè)ME之間可并行操作,這可使系統(tǒng)設(shè)計(jì)者在硬件資源和軟件構(gòu)架之間更靈活的搭配。主要存儲資源包括便箋寄存器(Scratchpad)、DRAM、SRAM,如表1所示[8]。
表1 存儲資源
表1中,Scratchpad屬于芯片內(nèi)部資源,容量最小,訪問時(shí)延短,支持原子操作,適用于各ME之間或者M(jìn)E與XScale之間的同步協(xié)作。SRAM和DRAM屬于芯片外部資源。通過網(wǎng)絡(luò)處理器提供的接口實(shí)現(xiàn)資源共享。SRAM訪問時(shí)延介乎中間,支持原子操作。DRAM訪問時(shí)延較大,不支持原子操作,但是能夠不通過ME直接與MSF進(jìn)行數(shù)據(jù)交換,以提高數(shù)據(jù)的吞吐量。
結(jié)合IXP2850批處理能力強(qiáng)的特性,本異常流量檢測模塊采取基于網(wǎng)絡(luò)流的數(shù)據(jù)采集方法,采用行為距離運(yùn)算和本地資源監(jiān)控相結(jié)合的分析方法,在以IXP2850為核心的路由平臺上實(shí)現(xiàn)對網(wǎng)絡(luò)流進(jìn)行分析檢測。如何保證模塊的融入既不影響系統(tǒng)的線速,又能提供有效的檢測是設(shè)計(jì)和實(shí)現(xiàn)的重點(diǎn)。
利用Intel提供的互聯(lián)網(wǎng)交換可移植構(gòu)架(IXAsoftwareportability framework),可以構(gòu)建以 IXP28XX為核心的適用于OC-3~OC-192多種線速下的路由、安全網(wǎng)關(guān)等網(wǎng)絡(luò)節(jié)點(diǎn)系統(tǒng)。異常流量檢測模塊將建立在上述的路由系統(tǒng)中,整體構(gòu)架與路由系統(tǒng)相一致,分3層:管理層、控制層和數(shù)據(jù)層。管理層負(fù)責(zé)人機(jī)交互、策略管理;控制層負(fù)責(zé)異常檢測以及分析、策略管理、數(shù)據(jù)結(jié)構(gòu)管理;數(shù)據(jù)層負(fù)責(zé)數(shù)據(jù)采集和策略的執(zhí)行。其中控制層和數(shù)據(jù)層部署于網(wǎng)絡(luò)處理器,而管理層部署于遠(yuǎn)程主機(jī),如圖1所示,兩者通過socket進(jìn)行信息交換。
圖1 系統(tǒng)構(gòu)架
本文異常檢測模塊的核心集中在控制層和數(shù)據(jù)層,數(shù)據(jù)層面需要進(jìn)行大量的讀寫和查找操作,部署于ME;控制層需要進(jìn)行靈活控制和深度計(jì)算,部署于 XScale,兩者通過Scratchpad進(jìn)行控制命令交換、通過SRAM進(jìn)行數(shù)據(jù)交換。其中,控制層主要包括異常檢測構(gòu)件、安全策略管理構(gòu)件、特征庫管理構(gòu)件和數(shù)據(jù)庫管理構(gòu)件,統(tǒng)稱異常檢測內(nèi)核組件。數(shù)據(jù)層的主要構(gòu)件為流量采集整理微模塊(Microblock),由2個(gè)ME并行執(zhí)行。模塊涉及的主要數(shù)據(jù)結(jié)構(gòu)有:
(1)流計(jì)量數(shù)據(jù)庫:每個(gè)存儲條目記錄一條正在傳輸?shù)木W(wǎng)絡(luò)流的信息,包括時(shí)間戳、IP層源/目的地址、端口號、協(xié)議類型、流量、傳輸狀態(tài)、數(shù)據(jù)包數(shù)量、網(wǎng)絡(luò)層開銷、傳輸層開銷,應(yīng)用層協(xié)議狀態(tài)記錄。數(shù)據(jù)庫表的頭部為每個(gè)線程預(yù)留空間存放已更新條目的地址和狀態(tài),提高XScale讀取信息效率。
(2)統(tǒng)計(jì)數(shù)據(jù)庫:每個(gè)存儲條目記錄一個(gè)終端的一定周期內(nèi)作為源地址和作為目的的地址的網(wǎng)絡(luò)流統(tǒng)計(jì),包括計(jì)時(shí)、總字節(jié)數(shù)、網(wǎng)絡(luò)層速率、網(wǎng)絡(luò)包數(shù)、TCP連接數(shù)、TCP半連接數(shù)、端口數(shù)、IP數(shù)、危險(xiǎn)端口數(shù)、TCP協(xié)議數(shù)、UDP協(xié)議數(shù)、ICMP協(xié)議數(shù)以及TOPN統(tǒng)計(jì)數(shù),XScale通過對流計(jì)量數(shù)據(jù)庫中流信息進(jìn)行周期性整理,并存儲于統(tǒng)計(jì)數(shù)據(jù)庫中,以進(jìn)行運(yùn)算分析。
(3)特征數(shù)據(jù)庫:每個(gè)存儲條目記錄已知的用戶不同時(shí)段的行為特征,管理員可以對其進(jìn)行修改。
這3個(gè)數(shù)據(jù)庫都由XScale創(chuàng)建和維護(hù),其中 (1)存放于SRAM,(2)、(3)存放于 DRAM。
可移植框架的實(shí)現(xiàn)方式是在微引擎上和XScale上開發(fā)的代碼模型?;贛E上開發(fā)的代碼模塊為微模塊,使用Intel公司提供的Developer Workbench開發(fā)環(huán)境,使用微代碼來進(jìn)行編程;而XScale上的為核心組件,使用基于ARM平臺嵌入式操作系統(tǒng)開發(fā)工具,使用C語言進(jìn)行編程。
當(dāng)一個(gè)數(shù)據(jù)包抵達(dá)網(wǎng)絡(luò)處理器時(shí),異常檢測模塊對數(shù)據(jù)的處理流程如圖2所示。接收微模塊將抵達(dá)的數(shù)據(jù)包從MSF轉(zhuǎn)入DRAM后,并通過在SRAM生成數(shù)據(jù)描述符(Metadata)定位和傳遞數(shù)據(jù)包。圖2中,系統(tǒng)通過設(shè)定全局參數(shù)使每個(gè)ME執(zhí)行相應(yīng)的微模塊,并以一定的順序組織起來,而XScale上執(zhí)行著與微模塊相對應(yīng)的內(nèi)核組件(圖2中并未標(biāo)示其他內(nèi)核組件),在接收數(shù)據(jù)包后經(jīng)過分類、采集、整理、路由、隊(duì)列等處理,由發(fā)送微模塊將數(shù)據(jù)包封裝轉(zhuǎn)發(fā)。
圖2 異常檢測處理流程
流量采集整理微模塊由兩個(gè)相鄰ME0:2和ME0:3并行執(zhí)行,16個(gè)線程以循環(huán)的方式進(jìn)行數(shù)據(jù)操作,并通過Scratchpad2與 XScale完成計(jì)時(shí)同步。圖2中,①當(dāng)數(shù)據(jù)包到達(dá)時(shí),該微模塊通過Metadata中的定位信息,前往DRAM讀取網(wǎng)絡(luò)封裝信息。②進(jìn)行協(xié)議分析之后,基于網(wǎng)絡(luò)地址、端口號、協(xié)議類型中的某些元素進(jìn)行哈希尋址,記錄包信息。每個(gè)線程記錄數(shù)據(jù)包信息的同時(shí),區(qū)分3種情況:(a)通過同步計(jì)時(shí)確定當(dāng)前流是否超時(shí);(b)通過記錄的狀態(tài)信息確定當(dāng)前流是否已經(jīng)結(jié)束;(c)是否覆蓋原有的流信息,對3種情況加以標(biāo)記,最后將更新條目的地址和標(biāo)記存放于表頭中該線程對應(yīng)的存儲空間 (更新空間);當(dāng)某線程存滿自有更新空間時(shí),通過Scratchpad1發(fā)送中斷通知XScale讀取。提高該微模塊的效率是提高整個(gè)流量檢測系統(tǒng)吞吐量的關(guān)鍵所在。以64B的以太包(全文以下均用以太包做實(shí)驗(yàn)分析)為例,流量采集整理微模塊處理每個(gè)包所占的最大工作周期T為
式中:n——并行執(zhí)行程序的ME數(shù)。而實(shí)際程序執(zhí)行過程中,每個(gè)線程不可能達(dá)到硬件資源的100%利用,所以實(shí)際最大工作周期小于。流量采集整理微模塊處理一個(gè)64B數(shù)據(jù)包最差情況消耗大約4500時(shí)鐘周期。
異常流量內(nèi)核組件在專有的執(zhí)行引擎上運(yùn)行,以軟件多線程的形式執(zhí)行數(shù)據(jù)庫的管理、安全策略的執(zhí)行、數(shù)據(jù)的分析檢測以及與管理界面的交互。圖2中③根據(jù)Scratchpad1發(fā)送的中斷請求到指定地址讀取指定線程的更新空間,進(jìn)而根據(jù)更新空間地址讀取對應(yīng)的流計(jì)量信息,當(dāng)固定周期內(nèi)未收到中斷請求時(shí),內(nèi)核組件順序讀取每個(gè)更新空間;通過計(jì)時(shí)獲取每次讀取更新空間的時(shí)間 m,m是整個(gè)系統(tǒng)資源的集中體現(xiàn)。④按照管理指令對特征庫的數(shù)據(jù)進(jìn)行刪除、添加或者修改;通過統(tǒng)計(jì)數(shù)據(jù)庫內(nèi)的信息進(jìn)行統(tǒng)計(jì)分析,生成用戶行為特征,或者對原有特征進(jìn)行修正,同時(shí)保持特征數(shù)據(jù)庫與管理界面特征表的同步更新。⑤將流計(jì)量信息整理存入統(tǒng)計(jì)數(shù)據(jù)庫,獲得一段時(shí)間內(nèi)兩通信終端基于網(wǎng)絡(luò)層和傳輸層的網(wǎng)絡(luò)行為記錄;對存入信息進(jìn)行橫向分析,并與特征數(shù)據(jù)庫進(jìn)行比對。如果把 ME上運(yùn)行的微模塊看成數(shù)據(jù)處理的快通道,那么XScale上運(yùn)行的異常流量內(nèi)核組件就是數(shù)據(jù)處理的慢通道,信息數(shù)據(jù)從收集到分析完畢是整個(gè)系統(tǒng)的反應(yīng)時(shí)間。針對信息收集,我們的設(shè)計(jì)形成了一個(gè)從ME到XScale的動態(tài)通道:以流計(jì)量數(shù)據(jù)庫為信息中轉(zhuǎn)中心,ME與XScale分段統(tǒng)計(jì),利用快慢通道的特性,當(dāng)流量異常時(shí),更新空間的更新速度加快,通過Scratchpad1進(jìn)而增加XScale訪問更新空間的頻率,當(dāng)流量趨于平緩時(shí),XScale愈趨于平緩,如此非常有利于數(shù)據(jù)庫的維護(hù)和減少線程的訪問沖突。
內(nèi)核組件在數(shù)據(jù)庫生成基于用戶IP的統(tǒng)計(jì)集合,每一個(gè)IP所關(guān)聯(lián)的統(tǒng)計(jì)集合為I(S,D),其中S={}是該IP為源地址時(shí)的統(tǒng)計(jì)集,D={}為目的地址時(shí)的統(tǒng)計(jì)集。S和D有獨(dú)立的計(jì)時(shí)空間,則每一次訪問該統(tǒng)計(jì)集合時(shí)可以計(jì)算時(shí)間周期P',當(dāng)P'≥P的時(shí)候,對該條目進(jìn)行一次距離運(yùn)算。以統(tǒng)計(jì)集S為例,定義有
式中: ——t時(shí)段的用戶某類特征參數(shù),于是定義的距離運(yùn)算為
表2 S統(tǒng)計(jì)集
距離d越大,采樣時(shí)間內(nèi)用戶行為與正常行為差異越大,源地址偏差一般是攻擊行為異常,而目的地址偏差一般是承受攻擊異常。目前網(wǎng)絡(luò)充斥的蠕蟲、DDOS等攻擊在傳輸層會形成一定的表征,與用戶的正常行為有較大的偏差,但是僅依靠一兩個(gè)統(tǒng)計(jì)參數(shù)進(jìn)行判定準(zhǔn)確率太低、針對性過強(qiáng),因此采用類似均方差運(yùn)算來判別,加入權(quán)值函數(shù),一方面通過加入系統(tǒng)資源參數(shù)來優(yōu)化系統(tǒng)檢測率,另一方面加大一些特征函數(shù)的權(quán)重以提高系統(tǒng)對DDOS和蠕蟲攻擊的檢測靈敏度。當(dāng)異常流量出現(xiàn)時(shí),內(nèi)核組件對異常用戶進(jìn)行標(biāo)記,并通過socket向管理層發(fā)出警報(bào)信息,等待管理層返回的安全策略加以執(zhí)行。
通過控制終端,我們分別將未整合和整合了異常流量檢測模塊的基于IXP2850的路由系統(tǒng)裝載于硬件并運(yùn)行,使用Spirient公司生產(chǎn)的TestCenter依次對系統(tǒng)進(jìn)行測試,分析系統(tǒng)性能。測試主要集中于系統(tǒng)的吞吐量變化、時(shí)延、異常流量檢測的反應(yīng)和精確度。
對系統(tǒng)的吞吐量測試是通過TestCenter模擬一個(gè)局域網(wǎng)的結(jié)構(gòu),在10Gbit/s的理論線速下,從最小以太包開始逐級加大流量和加大包長直到系統(tǒng)丟包為止,得到系統(tǒng)在各種環(huán)境下的最大處理數(shù)據(jù)包能力以及數(shù)據(jù)包處理時(shí)延。測試結(jié)果吞吐量如圖3所示,時(shí)延如表3所示。
圖3中灰色方柱表示理論速率,黑色方柱表示實(shí)際測速率。在系統(tǒng)整合異常檢測模塊之前,吞吐量性能的主要瓶頸有數(shù)據(jù)包的接收、路由查找、數(shù)據(jù)包發(fā)送3處,小數(shù)據(jù)包增加路由查找的消耗,大數(shù)據(jù)包則增加接收和發(fā)送的消耗,所以整合前系統(tǒng)最高速率大約在8.4Gbit/s(約4M個(gè)256B數(shù)據(jù)包)。整合之后,增加的瓶頸在于數(shù)據(jù)包封裝的解析和信息收集,數(shù)據(jù)包越多對系統(tǒng)影響越大,所以當(dāng)數(shù)據(jù)包大小集中在64B的時(shí),檢測模塊對系統(tǒng)有影響,最高速率約6Gbit/s(約9.6M個(gè)64B數(shù)據(jù)包),而隨著數(shù)據(jù)包的增大,異常檢測模塊對系統(tǒng)吞吐量影響消失。
圖3 吞吐量測試
表3 最小時(shí)延測試
如表3所示,隨著流量的增大,最小時(shí)延和最大時(shí)延微量遞增,而平均時(shí)延在最大流量是有明顯增大,主要原因存在于查表沖突的增加和隊(duì)列開銷增大。時(shí)延大小是網(wǎng)絡(luò)系統(tǒng)的重要指標(biāo),直接影響著接入網(wǎng)絡(luò)的性能,另一方面也影響著系統(tǒng)存儲資源的規(guī)劃。
圖4 模擬蠕蟲攻擊
圖4為TestCenter模擬蠕蟲攻擊的實(shí)時(shí)統(tǒng)計(jì),其中圖中上部分曲線為包含各類應(yīng)用層協(xié)議的流量統(tǒng)計(jì),下部分曲線為參與蠕蟲攻擊的用戶統(tǒng)計(jì)。將系統(tǒng)接入模擬攻擊網(wǎng)絡(luò)中,對攻擊行為進(jìn)行檢測,通過比對IP的方法,在其余參數(shù)值不變的情況下,考察時(shí)間粒度P的變化規(guī)律,結(jié)果如圖5所示。
圖5 關(guān)于時(shí)間粒度P的實(shí)驗(yàn)結(jié)果
時(shí)間粒度P是系統(tǒng)對攻擊反應(yīng)時(shí)間的主要影響因素,突發(fā)性的流量攻擊是本系統(tǒng)的主要檢測對象,此時(shí)要求時(shí)間P越小越好,但是另一方面P值越小,系統(tǒng)的計(jì)算壓力就越大,反而會影響系統(tǒng)的性能,所以可以通過調(diào)整參數(shù),在檢測精確度允許的情況下,獲得盡可能小的P。
本文結(jié)合網(wǎng)絡(luò)處理器IXP2850設(shè)計(jì)實(shí)現(xiàn)了一種基于用戶行為距離運(yùn)算和本地資源監(jiān)控相結(jié)合的異常流量檢測模塊。采用多線程并行的方式提高系統(tǒng)采集流量信息的效率,設(shè)計(jì)了一種分級統(tǒng)計(jì)的方法,解決因多線程引起的資源沖突和實(shí)現(xiàn)復(fù)雜的問題,在系統(tǒng)吞吐量、最小時(shí)延、反應(yīng)速率上比一般的采集-分析雙系統(tǒng)的結(jié)構(gòu)方式有較大的優(yōu)勢。嵌入到路由系統(tǒng)后,對蠕蟲、泛洪攻擊的檢測反應(yīng)快,準(zhǔn)確度高,提高了整個(gè)路由系統(tǒng)的安全性。優(yōu)化分析算法,進(jìn)行多分類的研究和實(shí)現(xiàn)是筆者下一階段的工作方向。
[1]顧榮杰,晏蒲柳,鄒濤.基于統(tǒng)計(jì)方法的骨干網(wǎng)異常流量建模與預(yù)警方法研究[J].計(jì)算機(jī)科學(xué),2006,33(2):92-96.
[2]張宏科,蘇偉,武勇.網(wǎng)絡(luò)處理器原理和技術(shù)[M].北京:北京郵電大學(xué)出版社,2004:22-30.
[3]周穎杰,胡光岷,賀偉淞.基于時(shí)間序列圖挖掘的網(wǎng)絡(luò)流量異常檢測[J].計(jì)算機(jī)科學(xué),2009,36(1):46-50.
[4]Patcha A,Park J M.An overview of anomaly detection techniques:existing solutions and latest technological trends[C].Elsevier Computer Networks,2007,51(12):3448-3470.
[5]孫知信,唐益慰,程媛.基于改進(jìn)CUSUM算法的路由器異常流量檢測[J].軟件學(xué)報(bào),2005,16(12):2117-2123.
[6]Lakhina A,Crovella M,Diot C.Mining anomalies using traffic feature distributions[C].Philadelphia,Pennsylvania,USA:Proc of ACM SIGCOMM,2005:9-20.
[7]繆紅保,李衛(wèi).基于數(shù)據(jù)挖掘的用戶安全行為分析[J].計(jì)算機(jī)應(yīng)用研究,2005,22(2):105-107.
[8]Intel Crop.Intel IXP2850 Network Processor Hardware Reference Manual[Z].2004:1-3.