應用流量識別的難度及對策
摘要: 在網絡的入口處對應用程序的識別是非常重要的,無論是網絡安全產品,還是專業的流量分析引擎,應用流量的準確識別不但可洞悉整個網絡的運行情況,而且可針對具體需求做用戶行為的準確管控,這在一定程度上既可保證業務流的高效運行,也可預防由于內網中毒引起的斷網事件。
Abstract:
Key words :
在網絡的入口處對應用程序的識別是非常重要的,無論是網絡安全產品,還是專業的流量分析引擎,應用流量的準確識別不但可洞悉整個網絡的運行情況,而且可針對具體需求做用戶行為的準確管控,這在一定程度上既可保證業務流的高效運行,也可預防由于內網中毒引起的斷網事件。
然而,要準確識別應用流量,從技術實現上講并不簡單,難度主要體現在識別的算法及檢測深度。算法不但要解決流量的分類,而且要負責在多個分類中查找特征,所以最好的算法往往帶來的是精確的識別;另一個就是檢查數據的深度,深度總是和性能關聯,檢查的越多,消耗的系統資源越多。因此,檢查一個流的前20個包所付出的性能代價往往是超乎想象的,這就是我們提到的識別難度。
對于識別方法來說,從技術角度看,檢查一個應用特征主要有三種方法。第一種方法稱為標準檢測,主要靠識別報頭信息的地址和端口,這種方法常見于做QoS的網關設備。第二種方法稱為DPI(深度包檢測),這是業界常用的術語,絕大多數設備聲稱具有這樣的技術,常見于“下一代內容檢測系統”及UTM類設備。從理論上,數據流中每個報文的任意字段或數據流傳輸過程中的任何特征都可以作為應用協議識別的依據,但實際上,如何快速選擇最有效的數據流特征信息的難度遠遠超過了您的想象。第三種方法稱為解密檢測方法,就是將數據流送入一個分類器,數據流被分類之后,將加密數據流送入一個解密引擎,解密引擎通過預置的解密算法對數據解密,解密后再次返回分類器進行檢查。如天融信TopFlow就采用這種技術來識別加密數據,通過這種獨有的技術,使得精確識別率能達到99%以上。
當然,在我們介紹應用流量識別時有幾個概念需要介紹:
數據流:基于應用層協議識別的對象不能只是簡單的檢查單個報文,而是要將數據流作為一個整體來檢測。因此,數據流是指在某個會話生命周期內,通過網絡上一個檢測節點的IP數據報文的集合。實際上,一個節點發送的數據流的所有屬性是相同的。
數據流分類:利用數據流以及數據流中報文的某些信息,可將網絡上的數據流進行分類,這種分類可加速應用流量的分類,如游戲應用數據流通常是小報文,而P2P流一般稱為大報文。
數據流類別:數據流類別是一個大型網狀結構的分類器,按照行為特征及簽名進行歸類。在數據流分類問題中,每個類別可能包含某些屬性類似的多種協議,典型的如IE下載即包括了多個類別,有分塊下載,有偽IE下載等,有另存單線程下載等,而協議識別必須對流進行更精細的分類,使得每個類別中的流只使用一種應用層協議。
協議識別:協議識別是指檢測引擎根據協議特征,識別出網絡數據流使用的應用層協議。
應用協議特征字符串:特征字符串是協議歸類的關鍵依據,字符串特征舉例協議特征字符串
ftp特征字符串acct、cwd、smnt、port;
smtp特征字符串HELO、EHLO、MAIL FROM:、RCPT TO:、VRFY、EXPN;
pop3特征字符串+OK、-ERR、APOP、TOP、UIDL;
msn 特征字符串包括msg、nln、out、qng、ver、msnp;
OICQ特征字符串開頭第一個字節:0x02,第四、五字節:協議號;
sip特征字符串REGISTER、INVITE、ACK、BYE、CANCEL、SIP;
eMule特征字符串開頭第一個字節:0xe3 或 0xc5 或 0xd4;
應用流量協議特征檢測方法
數據流檢測方法主要分為四個層次,讓我們描述一下從最簡單到最復雜的檢測過程。
首先,互聯網眾所周知的網絡應用都是建立在固定網絡協議或端口上,如http、ftp等等常用協議,這些協議的特征非常明顯,在一定程度上幾乎不使用檢測引擎就可識別。

其次,但當應用變得復雜時,很多應用都會啟用隨機端口進行通信,因此,新啟用的端口我們事先無法預知,此時DPI必須實時監控會話,通過監測數以千計的并發會話來判斷其應用特征。
很多新的網絡應用偽裝使用已知的固定端口,如使用80、8080、443等知名端口,特別像使用80端口的偽裝,偽裝的目的首先是被防火墻認可,不至于在防火墻上被阻斷,被作為正常的web訪問而通行。這種應用如P2P偽裝、視頻偽裝,都使用這些知名端口。此時設備需要在多個會話中開始尋找所謂的簽名,通常這是一個復雜的字符串,是檢測引擎預先定義好的,而且是唯一一個應用。隨著應用的增加,DPI特征庫需要不斷更新。如下圖迅雷采用偽IE下載就屬于典型的偽裝。

第三,對于完全加密的應用,我們稱為加密流,對于加密數據流,去尋求一個端口或簽名是毫無意義的。因此,檢測引擎需要開發出一種新方法,著眼于數據包長度和它們的順序排序。而實際上,其中的一些加密應用總是使用同一系列的包長度、在同一位置、在同一順序,這就是所謂的行為特征。通常,檢測引擎能夠這些加密流進行行為分析,而實際上,這里存在兩個難度,一個是加密流特征字符串的獲取本身需要扎實的獨特的算法,另外,單單對于位置的檢測還遠遠不夠,如加密傳輸的應用協議的加密方法幾乎每周都在變換位置,而天融信TopFlow獨特的算法不但能對加密數據流的位置進行檢查,而且能對加密數據流進行解密,這使得他對應用的識別率可高達99%以上。

如何評價應用識別引擎:
應用識別引擎是應用流量管理系統的核心,所以下面五點則能較好的評價產品。
第一、應用程序的識別數量多少,特別對復雜協議及新協議的識別數量成為產品的核心,而不是單單用端口號來標識的簡單應用或標準應用。
第二、應用協議識別的準確性。一個好的引擎或好的算法才能保證低的誤報和漏報。
第三、應用檢測的時間消耗。一個好的引擎能夠花費很少的時間即可檢查出特征。
第四、對高性能和高帶寬處理。一個好的引擎才能部署到大的網絡環境中,如高校、大集團用戶、運營商網絡。
第五、協議庫更新的頻率及協議庫庫更新的難易程度。一個好的引擎才能保證協議庫的更新有驗證、計算、校對,使系統不斷網、不重啟,即使出現升級失敗,也能保證原有特征庫不被損壞,正常運行。
天融信TopFlow應用流量管理系統通過天融信公司近17年的技術積累,對多達數萬用戶應用的分析、歸納,并在天融信自主操作系統TOS基礎上開發的基于用戶應用分析及管控的系統。TopFlow依靠自主知識產權的 TOS (Topsec Operating System) 安全操作系統,采用全模塊化設計,使用中間層理念,減少系統對硬件的依賴性,使得內核更為精簡和優化,特別在天融信多核處理硬件平臺上,通過大量的協議棧優化,針對高性能處理需求進行了中斷處理和驅動優化,保證系統在天融信專有多核處理平臺上,數據以最快速度執行、以較高優先級運行、以超高速放行。

通過完善的應用協議特征庫檢測和偽裝探測技術,并采用(DPI)深度包檢測技術來識別各種用戶應用,應用識別率超過99%。特別對采用逃避技術的加密協議進行精準識別,如采用加密傳輸的迅雷協議族、QVOD視頻等等加密類協議進行及時而精準識別,這是其他產品技術所不能比擬的。
此內容為AET網站原創,未經授權禁止轉載。