翟繼強+郭鵬姣+唐遠新



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