翟繼強(qiáng)+郭鵬姣+唐遠(yuǎn)新
摘要:針對(duì)目前網(wǎng)絡(luò)流量中飛速增長(zhǎng)的多媒體數(shù)據(jù),設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)多媒體分類器,作為可選的Snort預(yù)處理插件,通過(guò)解析多媒體文件格式和協(xié)議的特定信息,來(lái)增強(qiáng)Snort檢測(cè)引擎針對(duì)多媒體類型網(wǎng)絡(luò)攻擊的識(shí)別處理能力。通過(guò)實(shí)驗(yàn)測(cè)試了下載流量和流媒體網(wǎng)絡(luò)數(shù)據(jù),實(shí)驗(yàn)結(jié)果表明,本方法可以有效提高入侵檢測(cè)系統(tǒng)的性能,同時(shí)降低了高速網(wǎng)絡(luò)中進(jìn)行詳細(xì)流量分析的計(jì)算成本。
關(guān)鍵詞:入侵檢測(cè);Snort;多媒體;流量分類器;流
DOI:10.15938/j.jhust.2016.03.009
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1007—2683(2016)03—0043—06
0引言
網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)通過(guò)掃描進(jìn)出網(wǎng)絡(luò)流量搜索特定格式和特征的數(shù)據(jù)來(lái)檢測(cè)惡意或未授權(quán)的網(wǎng)絡(luò)活動(dòng),目前面臨的一個(gè)重要問(wèn)題是實(shí)時(shí)分析海量網(wǎng)絡(luò)數(shù)據(jù)的高額計(jì)算開(kāi)銷,使得檢測(cè)引擎有時(shí)不得不跳過(guò)、忽略甚至漏掉一些數(shù)據(jù)包。而隨著互聯(lián)網(wǎng)的急劇闊容,寬帶家庭用戶和移動(dòng)終端大量接人,網(wǎng)絡(luò)流量中包括視頻、音頻、圖像的多媒體流量激增,使這個(gè)問(wèn)題更加復(fù)雜和突出。
另一方面以往有關(guān)多媒體安全漏洞和攻擊的報(bào)告相對(duì)較少,網(wǎng)絡(luò)中的多媒體流量相對(duì)于其他類型的數(shù)據(jù)通常被認(rèn)為是良性的,并不被看成是一個(gè)可以影響入侵檢測(cè)系統(tǒng)性能或檢測(cè)率的特別因素,然而隨著多媒體格式和算法變得越來(lái)越復(fù)雜,也存在一些安全漏洞被黑客利用。
因此,本文提出借助多媒體文件格式和協(xié)議的特定信息對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行分類,使用附加的頭信息分類多媒體數(shù)據(jù),檢查進(jìn)向和出向的數(shù)據(jù)流內(nèi)容,尋找已知的多媒體特性,如JPEG、RTSP標(biāo)記,如果多媒體流量符合標(biāo)準(zhǔn)格式,則被標(biāo)記為可信任數(shù)據(jù),余下的同類型流量可被檢測(cè)引擎忽略,否則會(huì)被作為異常數(shù)據(jù)而報(bào)警,同時(shí)這些附加的多媒體分類信息可以幫助系統(tǒng)檢測(cè)針對(duì)多媒體漏洞的攻擊。這樣就可以有效降低檢測(cè)引擎的處理開(kāi)銷,提高入侵檢測(cè)系統(tǒng)的工作效率。
1多媒體數(shù)據(jù)流分類器
1.1分類器的設(shè)計(jì)
本文開(kāi)發(fā)了一個(gè)多媒體分類器作為snon預(yù)處理插件來(lái)對(duì)數(shù)據(jù)包進(jìn)行預(yù)處理和分析。當(dāng)網(wǎng)絡(luò)流量被捕獲時(shí),分類器將進(jìn)向和出向的數(shù)據(jù)流劃分為多媒體流或非多媒體流。一旦發(fā)現(xiàn)一個(gè)會(huì)話包含多媒體流量,入侵檢測(cè)系統(tǒng)IDS會(huì)對(duì)數(shù)據(jù)流或會(huì)話進(jìn)行多重檢測(cè)來(lái)確定內(nèi)容是否是授權(quán)的有效數(shù)據(jù)流,如果數(shù)據(jù)流被認(rèn)定為是非授權(quán)的,入侵檢測(cè)系統(tǒng)將根據(jù)規(guī)則集繼續(xù)運(yùn)行分析和檢測(cè),通過(guò)預(yù)處理和授權(quán)檢查的數(shù)據(jù),則利用Snort的全局檢測(cè)標(biāo)識(shí)(do-de-tect)告之Snort跳過(guò)對(duì)已標(biāo)記數(shù)據(jù)包的檢測(cè)和規(guī)則集比較。因?yàn)槎嗝襟w文件通常是非常大的,使用前幾個(gè)數(shù)據(jù)包來(lái)分類和標(biāo)記多媒體數(shù)據(jù)所花費(fèi)的時(shí)間開(kāi)銷遠(yuǎn)遠(yuǎn)小于對(duì)數(shù)據(jù)流中所有剩余數(shù)據(jù)包檢查所需的時(shí)間,而讓檢測(cè)引擎專注于分析潛在更大威脅的流量。
多媒體分類器的數(shù)據(jù)處理流程如圖1所示。多媒體分類器在檢測(cè)引擎之前,每個(gè)進(jìn)入多媒體分類器的數(shù)據(jù)包首先要檢查它是否屬于一個(gè)已授權(quán)的流或會(huì)話。然后逐字節(jié)檢查該數(shù)據(jù)包,以確定是否包含已知的多媒體標(biāo)識(shí)符。如果這樣的標(biāo)識(shí)符被定位,就可以使用特定的規(guī)則集來(lái)提取參數(shù)并檢查已知漏洞攻擊。如果數(shù)據(jù)包通過(guò)了參數(shù)提取和漏洞攻擊檢測(cè)階段,則被授權(quán)為可信的多媒體流,并指派一個(gè)標(biāo)識(shí),來(lái)告知檢測(cè)引擎無(wú)須對(duì)它進(jìn)一步分析。
多媒體分類器的處理結(jié)果有3種:
1)數(shù)據(jù)被認(rèn)為是可信多媒體流的一部分而被授權(quán)。屬于相同流的余下數(shù)據(jù)包則可以繞過(guò)檢測(cè)引擎的進(jìn)一步分析。
2)數(shù)據(jù)被識(shí)別為多媒體漏洞攻擊而生成報(bào)警。因?yàn)橐呀?jīng)把數(shù)據(jù)標(biāo)記為惡意的內(nèi)容,數(shù)據(jù)流的其余部分就可以繞過(guò)檢測(cè)引擎。
3)如果數(shù)據(jù)本質(zhì)上不是多媒體類型數(shù)據(jù),則正常通過(guò)檢測(cè)引擎進(jìn)行處理。
1.2應(yīng)用分析
網(wǎng)絡(luò)中多媒體數(shù)據(jù)可以分為Non-Streaming和Streaming兩大類:
1.2.1非流式(non-streaming)
非流式的多媒體流量具有以下屬性:
1)所有內(nèi)容必須完全下載之后才能開(kāi)始播放。
2)無(wú)需為傳輸playback播放控制信息或內(nèi)容建立臨時(shí)性回話。
3)文件可以被劃分為文件頭和壓縮內(nèi)容。
圖2顯示了所提出的分類器對(duì)非流式網(wǎng)絡(luò)流量的影響分析。沒(méi)有多媒體分類器的情況下,所有的多媒體數(shù)據(jù)包都將通過(guò)檢測(cè)引擎進(jìn)行詳盡的檢查和匹配以查找可能的惡意攻擊。當(dāng)使用分類器時(shí),網(wǎng)絡(luò)流首先通過(guò)檢驗(yàn)文件頭來(lái)確認(rèn)它符合已知的標(biāo)準(zhǔn)。當(dāng)數(shù)據(jù)包被標(biāo)記為含有可信的多媒體內(nèi)容之后,要繼續(xù)查找是否含有已知多媒體漏洞的攻擊特征。確定沒(méi)有危險(xiǎn)數(shù)據(jù),多媒體數(shù)據(jù)流才會(huì)被授權(quán),之后任何屬于相同流的數(shù)據(jù)包將繞過(guò)檢測(cè)引擎,從而大大減少了檢測(cè)引擎的工作負(fù)荷。
1.2.2流式(Streaming)
流式的多媒體流量具有以下屬性:
1)使用包含握手機(jī)制的初始化會(huì)話,用于建立類似傳輸端口的流參數(shù)。
2)一個(gè)緩沖區(qū)收到足夠數(shù)量的數(shù)據(jù),內(nèi)容重放才可以開(kāi)始。
3)會(huì)話中包含有重放的操作控制信息,如暫停的功能。
流式多媒體流量一旦被授權(quán),和非流的方式一樣,這個(gè)流的所有剩余數(shù)據(jù)包都將被分類器標(biāo)識(shí)授權(quán)直到這個(gè)流結(jié)束。圖3給出了所提出的分類器對(duì)流式網(wǎng)絡(luò)流量的影響分析。
1.3相關(guān)多媒體文件頭和協(xié)議
多媒體分類器通過(guò)檢查已知的多媒體格式文件頭來(lái)處理非流的多媒體流量。所檢查的格式和使用的技術(shù)主要包括:
1.3.1 JPEG
JPEG頭由標(biāo)示頭部各部分的標(biāo)記共同組成。標(biāo)記包括兩個(gè)字節(jié)序列:FF+表示標(biāo)記功能的字節(jié)。像許多其他的文件格式一樣,JPEG包含必需的和可選的標(biāo)記和字段。表1列出了我們所要分析和使用的這些JPEG標(biāo)記信息。
多媒體分類預(yù)處理器分幾步來(lái)分析JPEG文件。首先定位幀標(biāo)記開(kāi)始處,讀取SOFO字段的長(zhǎng)度。然后從這一點(diǎn)開(kāi)始,向前移動(dòng)到文件內(nèi),定位到Huffman表所在的位置。如果這兩個(gè)條件都滿足,就可以確定這是包含文件頭的JPEG文件的第一個(gè)數(shù)據(jù)包。一旦JPEG文件被識(shí)別,就可以開(kāi)始尋找文件的攻擊特征。
1.3.2 PNG
PNG格式是基于GIF格式的,可以通過(guò)尋找包含文件組織結(jié)構(gòu)信息的PNG塊來(lái)分析。有四個(gè)主要的PNG塊,其中IHDR、IDAT和IEND是每一個(gè)PNG圖像所必需的。
1)IHDR文件頭塊:PNG圖像的第一個(gè)數(shù)據(jù)塊,包含了圖像的基本信息。
2)PLTE調(diào)色板塊:存儲(chǔ)與圖像數(shù)據(jù)相關(guān)聯(lián)的彩色圖像,只有使用調(diào)色板的時(shí)候才存在。
3)IDAT圖像塊:包含圖像數(shù)據(jù),在一個(gè)文件中可以出現(xiàn)多個(gè)連續(xù)的數(shù)據(jù)塊。
4)IEND圖像尾塊:標(biāo)記圖像文件的結(jié)束。
圖4顯示了一個(gè)PNG圖像的PNG塊信息??梢钥吹轿募^塊IHDR(0x49484452)之后圖像的高度(0x0000001E)和寬度(0x00000019),圖像塊ID-TA(Ox49444154)緊隨的就是壓縮圖像數(shù)據(jù)。
1.3.3實(shí)時(shí)流協(xié)議
實(shí)時(shí)流協(xié)議RTSP(RealTime streaming protocol)是一種廣泛使用的流媒體協(xié)議,已經(jīng)在windows Media Services、Helix(RealPlayer)和Quicktime/Dar-win Streaming等服務(wù)中廣泛實(shí)現(xiàn)。實(shí)時(shí)流協(xié)議用來(lái)協(xié)商客戶機(jī)/服務(wù)器的流媒體會(huì)話,對(duì)有效載荷沒(méi)有任何要求。從入侵測(cè)系統(tǒng)的角度,我們分離會(huì)話處理和傳輸規(guī)范,著重分析會(huì)話,忽略不需要分析的有效載荷。
入侵檢測(cè)系統(tǒng)在實(shí)時(shí)流協(xié)議會(huì)話啟動(dòng)時(shí),從SETUP方法中提取會(huì)話數(shù)據(jù)端口號(hào)。一旦一個(gè)RTSP的SETUP被識(shí)別并存儲(chǔ)相應(yīng)端口號(hào),就會(huì)尋找RTSP PLAY播放請(qǐng)求,檢測(cè)到播放請(qǐng)求,則標(biāo)記通過(guò)該指定端口的所有數(shù)據(jù)包,跳過(guò)后續(xù)檢查。直到檢測(cè)出TEARDOWN請(qǐng)求時(shí),把該端口從端口列表中刪除。在預(yù)處理分類器中,其他的RTSP消息被忽略,因?yàn)樗鼈儾话魏芜M(jìn)一步提高會(huì)話監(jiān)控的有效性或準(zhǔn)確性的信息。
1.4多媒體漏洞分析
近年來(lái),隨著新多媒體格式的不斷出現(xiàn)和多媒體軟件工具的大量發(fā)行,針對(duì)多媒體協(xié)議和格式的攻擊也隨之增加。本文所提出的多媒體分類只檢查文件頭相關(guān)的字節(jié),主要有三個(gè)原因:
1)由多媒體預(yù)處理器引入的計(jì)算開(kāi)銷要盡可能小。
2)本節(jié)描述的所有相關(guān)的多媒體特定漏洞都可以通過(guò)文件頭成功檢測(cè)。
3)多媒體文件數(shù)據(jù)區(qū)中一個(gè)或多個(gè)字節(jié)的改變往往對(duì)媒體質(zhì)量影響有限,終端用戶也很難檢測(cè)和察覺(jué)。檢查多媒體傳輸惡意內(nèi)容的操作不是入侵檢測(cè)的范疇,最好采用數(shù)字水印和其它認(rèn)證技術(shù)。
1.4.1 JPEG
JPEG漏洞使得攻擊者可以獲取對(duì)漏洞系統(tǒng)的控制權(quán),JPEG規(guī)范允許在JPEG文件中嵌入注釋,注釋區(qū)以O(shè)xFFFE開(kāi)始,后面跟著一個(gè)兩字節(jié)的值,指定注釋長(zhǎng)度(包括該字段本身的兩個(gè)字節(jié)),注釋數(shù)據(jù)在文件JPEG顯示時(shí)是不可見(jiàn)的。理論上允許65 535個(gè)字節(jié)的注釋數(shù)據(jù),即使注釋內(nèi)容為空,注釋長(zhǎng)度值最小也等于2。如果一個(gè)惡意特制的JPEG文件設(shè)置該長(zhǎng)度為0或1等非法值,就會(huì)導(dǎo)致緩沖區(qū)溢出。
多媒體分類器通過(guò)讀取注釋論區(qū)可以很容易地檢測(cè)到這類漏洞攻擊,進(jìn)而提醒管理員阻塞該文件。圖5顯示了JPEG圖片中嵌入文件頭的注釋區(qū)信息,注解字段標(biāo)識(shí)符(0xFFFE)后跟一個(gè)有效的字段長(zhǎng)度OxOOOF。簡(jiǎn)單地把這個(gè)值改為Ox0000或0x0001,就可以將有效的圖像轉(zhuǎn)換為含有漏洞的圖像。
1.4.2 PNG
PNG也存在緩沖區(qū)溢出漏洞使得攻擊者通過(guò)定制PNG塊造成緩沖區(qū)溢出而獲取對(duì)目標(biāo)系統(tǒng)的控制權(quán)。類似于JPEG漏洞,用戶可能沒(méi)有意識(shí)到自己的系統(tǒng)已經(jīng)被攻擊,因?yàn)閳D像仍會(huì)正確顯示,即使文件頭有畸形的部分。當(dāng)結(jié)合MSN Messenger時(shí),這個(gè)漏洞特別危險(xiǎn),因?yàn)橛脩舨槐刂苯诱?qǐng)求或接受一個(gè)使系統(tǒng)受到損害的圖像。攻擊者可以使用一個(gè)PNG文件作為一個(gè)好友圖標(biāo),聊天會(huì)話時(shí),這個(gè)圖標(biāo)會(huì)自動(dòng)傳輸,從而獲得對(duì)目標(biāo)系統(tǒng)的控制。
MSN Messenger PNG漏洞是由圖像的文件頭塊和頭像透明塊tRNS的數(shù)據(jù)共同組成。在顏色類型字段必須設(shè)置使用的顏色和調(diào)色板,使用標(biāo)識(shí)的α信道不必設(shè)置。顏色類型字段必須有0x03,且tRNS的內(nèi)容必須超過(guò)256,達(dá)到一個(gè)函數(shù)指針地址。
1.4.3 RTSP
多媒體分類器能夠檢測(cè)RTSP緩沖區(qū)溢出問(wèn)題,例如利用RTSP DESCRIBE方法的Darwin Streaming服務(wù)器漏洞,允許攻擊者執(zhí)行惡意代碼。以下是針對(duì)該漏洞的Snort檢測(cè)規(guī)則:
該規(guī)則表示對(duì)于來(lái)自任何外部網(wǎng)絡(luò)的任何端口訪問(wèn)HTFP服務(wù)器554端口(端口554是RTSP通信的默認(rèn)端口)的TCP鏈接,Snort使用PCRE(Perl兼容正則表達(dá)式)查找明文字符串“DESCRIBE”,然后檢查“DESCRIBE”后面的內(nèi)容的長(zhǎng)度。如果這些內(nèi)容大到足以導(dǎo)致緩沖區(qū)溢出,則生成警報(bào)。
2實(shí)驗(yàn)結(jié)果與分析
我們做了大量的測(cè)試,通過(guò)使用Snon檢測(cè)多媒體和非多媒體文件的FTP傳輸,測(cè)量處理器的使用情況,分析所提出的多媒體分類預(yù)處理器對(duì)入侵檢測(cè)系統(tǒng)整體性能的影響。
2.1非流式流量測(cè)試
所有的Snort實(shí)驗(yàn)都在Windows環(huán)境下進(jìn)行,利用WinPcap的數(shù)據(jù)包捕獲函數(shù)庫(kù)。使用FTP傳輸用來(lái)確保數(shù)據(jù)沒(méi)有被本地緩存,同時(shí)為了便于重復(fù)測(cè)試以及確保測(cè)試的準(zhǔn)確性,F(xiàn)TP傳輸還允許批處理作業(yè)調(diào)度。時(shí)間測(cè)定在Snon中使用clockQ函數(shù)完成,通過(guò)常量CLOCK_PRE_SEC返回。
2.1.1單個(gè)文件傳輸
在這個(gè)系列實(shí)驗(yàn)中,一次只分析一個(gè)特定文件類型(PNG和JPEG),文件大小在417KB和67MB之間。處理器節(jié)省的相應(yīng)時(shí)間在某種程度上與文件的大小成反比,對(duì)于小文件,預(yù)處理器只需要不使用分類器時(shí)的15%的時(shí)間開(kāi)銷,而對(duì)于非常大的文件,這一數(shù)字將下降到低于1%。表2給出了樣本采集數(shù)據(jù),可以看出當(dāng)多媒體分類器啟用的時(shí)候,大幅度減少了總體CPU使用情況。
2.1.2混合流量
混合流量的實(shí)驗(yàn)是把多媒體和非多媒體文件結(jié)合到一批FTP下載中,多媒體流量的百分比以每次20%的步長(zhǎng)從0%遞增到100%。下圖6顯示處理器的使用情況與批處理下載文件中的多媒體數(shù)據(jù)量成反比,從而證明了隨著多媒體流量的增加,CPU節(jié)省的時(shí)間也是增加的。表3給出了混合流量實(shí)驗(yàn)收集的原始數(shù)據(jù),再次說(shuō)明了當(dāng)有多媒體流量時(shí),整體的CPU使用情況大幅減少。
2.2流媒體數(shù)據(jù)測(cè)試
流媒體測(cè)試使用RealPlayer、QuickTime和Win-dows Media Player作為客戶端,服務(wù)器端軟件采用分別Darwin Streaming服務(wù)器、Windows Media Serv-ices和Helix RealPlayer服務(wù)器。數(shù)據(jù)采集方式和非流式類似。
表4列出了測(cè)試中有代表性的原始數(shù)據(jù)。圖7則給出了使用QuickTime和Danwin Streaming服務(wù)器傳送流媒體時(shí),對(duì)于不同持續(xù)時(shí)間的流,使用和不使用預(yù)處理分類器時(shí)處理器使用情況。使用其他服務(wù)器/客戶端的組合也得到了類似的結(jié)果。說(shuō)明處理器所節(jié)省的開(kāi)銷隨著播放時(shí)間的增加而增大,沒(méi)有多媒體分類器時(shí),處理器使用隨著時(shí)間線性增加,但當(dāng)分類器啟用時(shí)總使用量的增加是極小的。
3結(jié)論
本文主要提出了一個(gè)多媒體分類器,通過(guò)將多媒體特定知識(shí)封裝到Snon預(yù)處理器中,這樣經(jīng)過(guò)分類后的可信的多媒體數(shù)據(jù)可以被標(biāo)識(shí)而允許繞過(guò)檢測(cè)引擎,從而使入侵檢測(cè)系統(tǒng)能夠?qū)W⒂谄渌髁?,同時(shí)人侵檢測(cè)系統(tǒng)能夠檢測(cè)到特定的多媒體漏洞攻擊,通過(guò)實(shí)驗(yàn)證明對(duì)于存在多媒體流量的網(wǎng)絡(luò)數(shù)據(jù),使用多媒體分類器可以顯著節(jié)省處理時(shí)間,提高入侵檢測(cè)系統(tǒng)的整體效率。
同時(shí)本文所提出的架構(gòu)是模塊化和可擴(kuò)展的,可以覆蓋不同的文件格式和流媒體協(xié)議,用戶很容易編寫新規(guī)則來(lái)檢測(cè)和防范針對(duì)多媒體特定漏洞的攻擊。