DPI (Deep Packet Inspection) 深度包檢測技術


詳解DPI與網絡回溯分析技術

  隨着網絡通訊技術進步與發展,網絡通訊已跨入大數據時代,如何監控各類業務系統的通訊數據在大數據流量中傳輸質量,以及針對海量的網絡通訊數據的范疇中存在少量的惡意流量的檢測,避免惡意通訊對主機、網絡設備的root權限的安全威脅,和通訊內容的竊取。是網絡管理必須面對的一個難題。

  有攻擊的矛,自有防御的盾,這是自然發展的規律。針對大數據的來臨,傳統的實時檢測與防御已不能勝任對海量數據中存在細微異常的甄別。為此,對原始通訊數據的實時備份逐漸彰顯出其必要性,而基於時間窗口的回溯分析技術加以對數據包的深度檢測,是對異常數據發現的顯微鏡。

  DPI技術簡介

  DPI(Deep Packet Inspection)深度包檢測技術是在傳統IP數據包檢測技術(OSI L2-L4之間包含的數據包元素的檢測分析)之上增加了對應用層數據的應用協議識別,數據包內容檢測與深度解碼。

  

  通過對網絡通訊的原始數據包捕獲,DPI技術可使用其三大類的檢測手段:基於應用數據的“特征值”檢測、基於應用層協議的識別檢測、基於行為模式的數據檢測。根據不同的檢測方法對通信數據包可能含有的異常數據做逐一的拆包分析,深度挖據出宏觀數據流中存在的細微數據變化。

  DPI與傳統網絡分析技術

  1.利用數據特征值對業務類型進行識別判斷

  在五元組分析技術之上,DPI通過對IP數據包的內容進行分析,依據數據特征字的查找或者業務的行為統計,得到相關業務流的類型。

  網絡分析技術對數據包內容的解碼:

  

  識別利用TCP/80端口傳輸BT流量的數據特征,如果只是通過常見的HTTP應用特征進行判斷, 就很容易將它誤判為一個Web 訪問的應用。數據特征值檢測技術不僅可以識別業務傳輸的數據內容指紋,而且對利用已知通信端口(如:利用TCP/445端口進行蠕蟲傳播時所攜帶的病毒特征)或未知端口進行木馬傳輸的數據特征做識別判斷。

  2.應用協議識別

  DPI技術對網絡應用及協議識別,采用識別數據內容的簽名(類似於人體指紋)來進行辨別,簽名是被用來分析鑒別應用及協議的特征有效的手段,當一個新的應用或協議被發明,數據內容中將攜帶有相應的簽名。

  網絡分析技術的應用協議識別具備對數據內容所攜帶的簽名,還可以依據數據通訊所采用的傳輸層端口做應用協議的判別。

  協議識別可作用於對通訊流量成分的規划,以及對異常通訊流量的發現。

  

  3.業務交付統計

  DPI 的業務統計功能可識別網絡的業務流量分布和用戶的各種業務使用情況,發現影響網絡正常運行的因素,為網絡和業務優化提供依據。

  網絡回溯分析技術

  回溯分析集合了傳統網絡分析和DPI技術各項優點,並提供對原始通訊數據的海量存儲,滿足對微量異常通訊的發現能力。而且回溯分析通過對業務通訊的五元組和應用協議特征識別,在基於時間窗口的獨特功能上,為各類業務通訊提供了每一時段的交互質量檢測。

============================================
DPI深度報文檢測架構及關鍵技術實現

當前DPI(Deep Packet Inspect深度報文識別)技術是安全領域的關鍵技術點之一,圍繞DPI技術衍生出的安全產品類型也非常的多樣。在分析DPI的進一步技術實現之前,分析DPI對用戶的價值可以看到主要體現在兩個方面:

 
  • 從攻擊防御的角度看,Web類的安全風險正在成為目前安全風險的主流攻擊形式,針對Web類應用層安全攻擊的防護,依靠傳統的防火牆是無法實現的,具備深度報文檢測能力的IPS設備或者WAF設備開始為大家所熟知;
  • 從業務應用識別分析的角度看,單純的分析報文的頭字段內容無法識別該報文所承載的具體的業務類型,要想深度了解報文所承載的業務應用類型及流量大小等信息,必須要跟蹤業務應用的協議交互過程,並對報文的負載payload進行深度的識別。如果用戶希望網絡安全設備具備針對應用層的風險防護能力且能夠對互聯網出口的流量應用進行精細化的管理控制,DPI技術的能很好的滿足客戶的需求。

和傳統的防火牆域間策略的匹配查詢不同,DPI技術旨在借助字符串特征的逐包匹配來完成入侵檢測和流量控制的目的,在這個過程中,深度報文檢測的引擎設計和豐富的規則特征庫定義是核心設計環節。從檢測引擎設計的角度看,除了要有良好的設計框架之外,在收到需要檢測的報文后,涉及到報文的正規化處理、檢測引擎的協議解析、引擎對報文關鍵特征提取和高效算法查詢等內容;從特征庫的角度,涉及到對檢測規則的定義、特征庫的提取和升級更新等內容,接下來我們將針對其中的關鍵技術點進行說明。

1、DPI技術實現的基本框架(Deep Inspect Management)
從控制管理層面上看,DPI的各個業務模塊的需求都可以抽象化成“規則”,基於這些規則定義可以生成不同的“分類”對象;規則同時具有“使能狀態、報文動作”等屬性,內部還設置有特征、選項等關鍵字部件。DIM的框架設計將業務模塊的公共業務需求進行抽象並處理。控制管理層面的工作在用戶態完成,主要工作包括:

  • 統一開放格式的規則管理;
  • 統一開放格式的特征庫加載和文件解析;
  • 配置變更和下發流程管理,包括引擎的編譯和下發、規則的下發,以及它們的板間同步(如圖1所示)。

從數據轉發層面上看,DPI的各個業務需求都需要對應用層協議進行解析、解碼和搜索。為了保證高效轉發和單次報文處理,有別於傳統防火牆的設計思路,在新一代安全產品的實現過程中必須有並行的檢測引擎,盡可能保證只對報文進行一次處理。數據轉發層面的需求主要在內核態進行處理,涉及到的幾個功能模塊如下:

  • 協議解析器;
  • 搜索算法引擎;
  • 檢測結果處理模塊,或者說報文動作處理模塊;一般是在I/O 接口的處理流程中(如圖1所示)。
圖1 DPI軟件設計架構示意圖(注:DIM, Deep Inspect Management)

圖1 DPI軟件設計架構示意圖(注:DIM, Deep Inspect Management)

這種將控制管理層和數據轉發層相互獨立的設計模型,使得CPU密集型的引擎預處理(編譯和下發)和高性能的搜索算法過程分離在用戶態和內核態,也可以使得我們的預處理和匹配在不同的單板甚至不同的設備上進行,易於保證轉發流程的檢測持續性和穩定性,匹配也易於由軟件查表擴展成硬件處理器來完成。

2、DPI控制管理層面的規則定義

DPI深度報文檢測架構及關鍵技術實現 圖2
DPI深度報文檢測架構及關鍵技術實現 圖3

3、DPI檢測引擎設計及典型算法模型
有別於傳統的DFA(Deterministic Finite Automaton)和NFA(Non-Deterministic Finite Automaton)算法,H3C 的DPI軟件引擎具有內存可伸縮特性。DIM用戶態可動態感知需要加載軟件引擎的單板或者子設備(的內核態)是否有充裕的內存,根據內存剩余情況和用戶的配置選擇最優的引擎存儲方式,然后啟動編譯線程完成編譯下發工作。海量特征的編譯下發是一個CPU密集型過程,考慮到可能遇到的配置頻繁變更或者特征庫升級調度,DIM的編譯線程設置了可中斷可重入機制,不需要用戶等待。

圖 3 DPI 檢測引擎在報文轉發中的流程示意圖

圖 3 DPI 檢測引擎在報文轉發中的流程示意圖

DPI內核態的檢測引擎可能出現在入接口業務點、域間策略業務點或者出接口業務點,任何涉及DPI業務的配置啟用都會開啟轉發流程中的DPI業務點,如果用戶有多種相關配置,DPI會在報文轉發流程中最早的業務點生效,其余點則不生效。在DPI的入接口處理時,數據轉發層面的處理流程如協議解析、算法引擎和檢測結果處理是其工作重點【圖3】。

在具體的DPI檢測引擎設計時,其在內核態的位置如圖4所示。可以看出,DPI檢測引擎包含了多種檢測算法,典型的如Aho-Crassick , Boyer ,Moore算法以及PCRE算法等等,通過這些算法的配合可以有效實現關鍵特征的快速查找匹配,提升了查找效率。

圖 4  DPI 檢測引擎在內核態的部件示意圖

圖 4 DPI 檢測引擎在內核態的部件示意圖

4、DPI檢測引擎的協議解析器設計模型
檢測引擎自身包括三個部件:協議解析器、算法引擎和檢測結果處理,下面主要對其關鍵部分的協議解析器進行說明。現階段額度協議解析器的職責主要有:
1)協議確認: 進入HTTP、HTTPS等協議解析器的條件都是固定端口映射。但越來越多的互聯網應用正試圖通過80、443等傳統端口來逃逸傳統網絡設備的檢測和控制。因此必要的協議確認是防止這種逃逸的前提。

2)協議切分: 協議切分是在流(會話)的基礎上進一步細分出“檢測流”或者叫“事物”的概念。例如:HTTP的一次transaction、FTP的一次用戶登錄行為、SMTP/POP3的一次郵件發送/接收等,都抽象成一條“檢測流”。有時一條流可以傳輸多次檢測流,甚至同時有並發的檢測流出現。協議切分對於關心檢測流的業務模塊有着重要意義,例如內容過濾和應用審計。

3)協議域切分:協議域切分是在最小的粒度上細分報文。將檢測流分成Header和Body部分,Header還要細分成各個Field,包含Field Value和Field Data部分。協議域切分有助於判別該頭域是否需要檢測,判定該頭域命中的特征與之定義是否吻合,以及識別提取審計日志信息的關鍵位置。

圖 5  HTTP請求報文的協議域切分示意圖

圖 5 HTTP請求報文的協議域切分示意圖

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斷開連接、生成攻擊日志告警等。
5、特征庫的設計模型
在進行DPI特征庫的設計時,一般都是采用統一的文件頭結構和開放式TLV架構,易於軟件統一處理和后續業務擴展。同時考慮到不同產品對存儲空間、轉發性能、並發規格的不同要求,為不同的產品(不限於NGFW)量身定制了不同的特征庫。並且,為了能夠快速完成升級,在服務器上放置了鄰近舊版本的增量庫(補丁包)。

圖 6 DPI設備特征庫升級流程示意圖

圖 6 DPI設備特征庫升級流程示意圖

結束語
DPI技術的應用和發展是一個動態不斷完善的過程:一方面攻擊類型在不斷的發展變化,由此導致的攻擊特征漏洞的提取也要與時俱進不斷更新,另一方面隨着攻擊類型的增加,除了攻擊特征漏洞匹配和應用層協議解析之外,未知的不能識別的攻擊類型報文也會逐漸增加,目前已經出現的雲端的未知攻擊的檢測識別技術可以為設備側的DPI檢測提供很好的補充,基於大數據的雲端安全分析平台也會逐漸成為安全的核心競爭力,配合安全設備終端形成完整的DPI防護解決方案。

==============================================

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM