淺談基于云網關的深度報文檢測技術
1、系統架構
DPI系統架構采用轉控分離的思想進行設計,主要包括數據轉發面和控制管理面,控制管理面主要完成對規則的配置管理工作,數據轉發面主要完成對報文應用層協議的解析和轉發等工作。通過將數據轉發面和控制管理面分離開來,對業務進行更好地維護和管理,從而提高系統的可維護性和可擴展性。
從控制管理層面上看,DPI各個業務模塊的需求都可以抽象化成“規則”,基于這些規則定義可以生成不同的“分類”對象;規則同時具有“使能狀態、報文動作”等屬性,內部還設置有特征、選項等關鍵字部件。 控制管理層面的工作在用戶態完成,主要工作包括:
- 統一開放格式的規則管理;
- 統一開放格式的特征庫加載和文件解析;
- 配置變更和下發流程管理,包括引擎的編譯和下發、規則的下發,以及它們的板間同步。
從數據轉發層面上看,DPI各個業務需求都需要對應用層協議進行解析、解碼和搜索。為了保證高效轉發和單次報文處理,有別于傳統防火墻的設計思路,在新一代安全產品的實現過程中必須有并行的檢測引擎,盡可能保證只對報文進行一次處理。數據轉發層面的需求主要在內核態進行處理,涉及到的幾個功能模塊如下:
- 協議解析器;
- 搜索算法引擎;
- 檢測結果處理模塊(又稱報文動作處理模塊),一般是在I/O 接口的處理流程中。
圖1 DPI系統框架
DPI系統架構如圖1所示,這種將控制管理層和數據轉發層相互獨立的設計模型,使得CPU密集型的引擎預處理(編譯和下發)和高性能的搜索算法過程分離在用戶態和內核態,也可以使得我們的預處理和匹配在不同的單板甚至不同的設備上進行,易于保證轉發流程的檢測持續性和穩定性,匹配也易于由軟件查表擴展成硬件處理器來完成。
2、報文檢測
DPI即深度包檢測,所謂的“深度”是相對于傳統的IP數據包檢測技術而言的,如圖2所示,傳統的IP數據包檢測僅僅分析IP報文應用層以下的內容,例如,根據接收到的IP報文的五元組信息(包括源地址、目的地址、源端口、目的端口以及協議類型)對數據報文進行分類處理,而DPI則對報文進行更深層次的檢測,包括對報文進行應用層的分析或基于流量特征的檢測,識別出報文對應的應用層業務類型或提取其中的應用層關鍵信息用于后續業務處理。
普通報文檢測是通過端口號來識別應用類型的,比如:當檢測到端口號為80時,就默認此應用協議為HTTP協議;當檢測到端口號為443時,則默認此應用協議為HTTPS協議。但實際上,出于對應用安全性的考慮,通常不會使用默認端口來暴露業務能力,此時采用L2~L4層的傳統檢測方法就無能為力了。而DPI 技術能高效識別出網絡上的各種應用類型,前提是后臺需要維護一個龐大的應用特征數據庫,當流量經過時,DPI通過將解包后得到的應用信息與后臺的特征數據庫進行匹配來確定應用類型。因此,當有新的應用出現時,后臺的應用特征數據庫也需要更新才能對具有新型應用的識別和控制能力。
3、特征識別
基于特征字的識別技術是現網DPI 解析中命中流量最主要的DPI 技術,其原理就是不同的業務或應用通常有特殊的“指紋”,這些指紋可能是特定的字符串或者比特流,例如URL就是典型的特征字。基于這些特征字,通過對數據流中特定數據報文中的“指紋”信息進行檢測來確定業務流承載的應用類型。此外,還可以基于荷載的特征進行識別,通過對應用層協議交互過程中報文的內容進行分析,找出不同于其他協議的模式特征,根據各種協議特有的模式特征來確定所屬協議類型。基于負載的協議識別一般采用固定字符串和正則表達式來表示特征,正則表達式比固定字符串具有更強的表達能力和更好的靈活性,已成為研究DPI技術的熱點。本文介紹的基于云網關的深度報文檢測系統也是基于正則表達式來實現的,由正則表達式組成的應用特征庫如圖3所示。
DPI根據自身的應用特征庫與數據報文進行匹配,當DPI接收到數據報文時,先對數據報文進行解析,提取報文的五元組信息和特征字信息。 如圖4所示,從報文應用層提取的特征字信息為Host信息,根據此Host信息依次與應用特征庫中的特征信息進行匹配,并獲取相應的標記結果。
如若從報文應用層獲取的特征字信息與應用特征庫中的特征信息成功匹配,則可在應用特征庫中查找到該特征信息對應的業務類型,并給該報文流打上相應的業務標記;如若未能成功匹配,就給報文打上一個未知標記,并將報文特征字信息及其標記結果更新到特征表中,后續云網關將根據特征表對報文流進行策略分流處理,特征表部分特征信息如表1所示。
表1 特征表
4、策略分流
特征匹配完成后,業務報文都會被打上一層應用類型的標記結果,云網關根據標記結果對報文進行策略路由選路,打上未知標記的報文都統一被送到公網服務器進行卸載,而打上其他標記結果的業務報文被分別送往不同的業務服務器進行分流處理。報文內部轉發過程如圖5所示,上述QQ業務類型的報文經過特征識別后會打上標記tag8,云網關根據標記結果配置相應的策略路由指定下一跳轉發,這樣QQ業務報文就被送到IP為192.168.2.10的業務服務器進行業務處理了。
5、總結
基于云網關的深度報文檢測系統通過對報文的應用信息進行感知和識別,實現了對網絡中各項具體業務運行情況的有效管理,主要包括業務識別、業務控制以及業務統計功能。
1) 業務識別:主要分為對運營商開通的合法業務和運營商需要進行監管的業務進行識別,第一類業務可以通過IP五元組來進行識別,第二類業務需要通過DPI技術來進行深度檢測,通過解析數據包來確定業務具體內容和信息。
2)業務控制:可以根據既定的策略對網絡進行配置,從而對業務流實現控制,主要包括轉發流向、限制帶寬、阻斷、整形、丟棄等處理。
3)業務統計:根據DPI的識別結果對一定時間內的流量行為進行統計,包括:流量流向、業務占比、訪問網站TOPN等。統計應用類型的使用比率調整該業務的服務優先級,統計用戶正在使用哪種業務進行視頻播放、即時通訊、購物支付以及游戲娛樂,也可以統計出消耗網絡帶寬的非法P2P、VOIP等業務。