簡介
- DPI(Deep Packet Inspection)深度包檢測技術是在傳統IP數據包檢測技術(OSI L2-L4之間包含的數據包元素的檢測分析)之上增加了對應用層數據的應用協議識別,數據包內容檢測與深度解碼。
- 既可以檢測2~4層,又可以檢測應用層。
背景
安全問題、流量識別、大數據(海量數據挖掘),推動網絡識別技術的發展
流量識別
- 指將網絡中的數據流識別成對應網絡協議的過程。
常用功能
- 通過對流量的識別來掌握網絡中承載的數據內容。
- 分析出用戶的網絡行為;
- 同時根據鏈路狀態及功能需求,對網絡流量進行限速和控制等處理
- 通過特征匹配技術,將數據包在封裝過程中所添加的各層頭部信息解析並提取,然后與已有規則庫中特征信息進行匹配,從而進行流量的識別
- 可以用於識別來自哪個應用,比如:qq、http、pplive
具體功能
-
業務識別: 其中第一類業務可以通過五元組來進行識別,此類業務IP地址和端口固定。第二種需要通過DPI技術來進行深度檢測,通過解析數據包來確定業務具體內容和信息。
-
業務控制: 可以根據既定的策略對網絡進行配置,從而對業務流實現控制,主要包括轉發流向、限制帶寬、阻斷、整形、丟棄等處理。
-
業務統計: 深度包檢測技術的業務統計功能是基於識別結果的,對一定時間內的流量行為進行統計,流量流向、業務占比、訪問網站TOPN等。統計應用類型的使用比率調整該業務的服務優先級,統計用戶正在使用哪種業務進行視頻播放、即時通訊、購物支付以及游戲娛樂,也可以統計出消耗網絡帶寬的非法P2P、VOIP
業務等等。
做法
- 深度包檢測技術可以高效的識別出網絡中的各種應用,且能夠將識
別粒度細化到業務的具體動作
特征識別
- 提取流量的特征字符串:描述性較差,需要將流量特征進行遍歷,才可以將流量全部識別出來,通常使用“正則表達式”來概括性描述,
- 正則表達式將可能出現的形式進行囊括遍歷:此種方式有較強的描述能力,但是識別性能較差,對設備的性能消耗很大。
- 特定比特流模式:主要是對應用層載荷信息及數據流信息進行識別,此類信息是以十六進制或者二進制形式描述應用層的信息,規則描述性較差,但匹配效率很高。
架構舉例
- 收包模塊
- 策略配置模塊
- 識別特征下發模塊
- 特征下發模塊
- 規則庫更新模塊
- 協議分析模塊
- 結果通知模塊
- 流量統計模塊:該模塊通過協議分析得到5元組,將5元組交至轉發設備,由轉發設備統計
流量並上報數據,最后由DPI輸出報表。外置應用查看流量統計接口。
部署方式
串接方式
- 直接將DPI設備以串接的方式部署在網絡鏈路之間。
- 串接方式以直連的形式接入,不需要進行網絡連接配置,直接通過數據鏈路層二層透傳,串接方式對設備性能和可靠性都有很高的要求。
- 串接方式的優點在於較好的網絡控制,能夠及時對流量進行阻斷和整形。
- 但是該種方式也引入了故障點的缺陷,為增強設備的可靠性,通常在設備前段加入光路保護器,從而減小在設備升級或故障時對現網的影響
並接方式
- 並接方式是采用分光器等設備將網間的信號鏡像到旁路的DPI設備當中,並不影響原鏈路的數據傳輸。
- 采用並接方式,通常用於業務的識別和統計,上網日志的留存等,在網絡控制方面,只能通過干擾的方式進行流量控制,不能對網絡流量進行直接的控制和管理。
- 對於TCP流,並接方式通過發送reset或6n分組,終止連接來進行控制。
- 對於UDP流而言,主要是發送偽造分組,劣化通信質量來進行網絡干擾。
- 並接方式可靠性高,對現網業務無任何影響,設備性能要求低,可以適度緩存,流量進行識別即可,沒有轉發的需求,
存在問題
- 設備迭代困難
- 重復部署
- 流量重復復制給DPI設備
- 可視化不足
- 沒能虛擬化
檢測引擎舉例
- 檢測引擎自身包括三個部件:協議解析器、算法引擎和檢測結果處理,下面主要對其關鍵部分的協議解析器進行說明。現階段額度協議解析器的職責主要有:
1)協議確認: 進入HTTP、HTTPS等協議解析器的條件都是固定端口映射。但越來越多的互聯網應用正試圖通過80、443等傳統端口來逃逸傳統網絡設備的檢測和控制。因此必要的協議確認是防止這種逃逸的前提。
2)協議切分: 協議切分是在流(會話)的基礎上進一步細分出“檢測流”或者叫“事物”的概念。例如:HTTP的一次transaction、FTP的一次用戶登錄行為、SMTP/POP3的一次郵件發送/接收等,都抽象成一條“檢測流”。有時一條流可以傳輸多次檢測流,甚至同時有並發的檢測流出現。協議切分對於關心檢測流的業務模塊有着重要意義,例如內容過濾和應用審計。
3)協議域切分:協議域切分是在最小的粒度上細分報文。將檢測流分成Header和Body部分,Header還要細分成各個Field,包含Field Value和Field Data部分。協議域切分有助於判別該頭域是否需要檢測,判定該頭域命中的特征與之定義是否吻合,以及識別提取審計日志信息的關鍵位置。
4)解碼: HTTP的URI部分和郵件協議的Subject部分等進行了編碼,需要協議解析器進行解碼,大多數情況下需要我們將解碼后的字段送入算法引擎。有些情況又有個別特征基於編碼前定義,需要我們將原始字段送入算法引擎,但同時發生會對性能產生一定損耗。
5)解壓縮:HTTP可以用gzip、x-gzip、deflate等方式傳送壓縮后的數據內容,在用戶的配置要求下解析器會將內容解壓縮后送入算法引擎,以幫助我們發現壓縮數據中的需要被檢測出的特征。
6)SSL卸載:在用戶的配置要求下,可以通過SSL卸載技術盡可能還原HTTPS中的原始流量,進行更加全面的檢測和控制。
7)協商協議識別:FTP、SIP以及很多加密方式的P2P協議都采用協商甚至多次協商的方式來進行數據傳輸。對應的協議解析器需要能夠通過控制通道報文的解析識別出協商協議的數據通道的五元組特征,通過協商關聯表的匹配來識別其數據通道。
-
當然,基於這些協議分析完成之后,通過算法引擎可以匹配查找可以發現相關的檢測結果,同時送到后續的動作設計模塊進行處理。在內核態,DPI支持大量的動作以及它們的組合,各個DPI的業務模塊都可以基於規則或者規則分類來配置報文的動作。這些動作包括Permit/deny、Drop丟掉后續報文、Redirect或者發送雙向TCP Reset斷開連接、生成攻擊日志告警等。
-
H3C 的DPI軟件引擎具有內存可伸縮特性。DIM用戶態可動態感知需要加載軟件引擎的單板或者子設備(的內核態)是否有充裕的內存,根據內存剩余情況和用戶的配置選擇最優的引擎存儲方式,然后啟動編譯線程完成編譯下發工作。海量特征的編譯下發是一個CPU密集型過程,考慮到可能遇到的配置頻繁變更或者特征庫升級調度,DIM的編譯線程設置了可中斷可重入機制,不需要用戶等待。
-
說明,對內存消耗大