DPI概述

691 阅读5分钟

DPI(Deep Packet Inspection)介绍

深度包检测(deep packet inspection,DPI)也称为数据包嗅探(Packet Sniffing),是一种计算机网络数据包过滤技术,用来检查通过检测点之数据包的数据部分(可能包含其标头),以搜索不匹配规范之协议、病毒、垃圾邮件、入侵,或以预定之准则来决定数据包是否可通过或需被路由至其他不同目的地,或是为了收集统计数据之目的。IP数据包有许多个标头;正常运作下,网络设备只需要使用第一个标头(IP标头),而使用到第二个标头(TCP、UDP等)则通常会与深度数据包检测相对,而被称之为浅度数据包检测(OSI L2-L4之间包含的数据包元素的检测分析,也成为状态数据包检测)。DPI是一种基于应用层的流量检测和控制技术,它在开放系统互连(OSI)参考模型的应用层中起作用。DPI除了对4层以下分析外,增加了应用层分析,识别各种应用及其内容。有多种方式可以用来获取深度数据包检测的数据包。较常见的方法有端口镜像(port mirroring)及光纤分光器。

DPI工作流程

  1. 数据包捕获:DPI系统从网络中捕获数据包。这些数据包可以是IP数据包、TCP或UDP数据流。

  2. 数据包解码:捕获的数据包经过解码,将其从二进制格式转换为可读的格式,以便进行后续的分析。

  3. 特征识别与匹配:DPI系统使用预定义的特征库对解码后的数据包进行特征识别与匹配。这些特征可以是特定的字符串、协议模式、端口号等,用于确定数据包的类型和内容。

  4. 深度内容分析:一旦数据包的类型和内容被确定,DPI系统进行更深入的内容分析。这可能包括提取数据包中的特定信息,如URL、文件类型、恶意软件签名等。

  5. 控制与过滤:基于DPI分析的结果,DPI系统可以执行相应的控制操作。例如,它可以限制某些类型的流量、阻止恶意软件的传播、执行流量整形等。

  6. 日志记录和报告生成:DPI系统通常会将分析结果记录在日志文件中,以便后续的审计和分析。此外,它还可以生成报告,向管理员提供关于网络流量、安全事件和其他相关信息的概述和统计数据。

DPI关键技术

  • 基于“特征字”的识别技术:不同的应用通常依赖于不同的协议,而不同的协议都有其特殊的指纹,这些指纹可能是特定的端口、特定的字符串或者特定的Bit序列。基于“特征字”的识别技术通过对业务流中特定数据报文中的“指纹”信息的检测以确定业务流承载的应用。

  • 基于“应用层网关”的识别技术:某些业务的控制流和业务流是分离的,业务流没有任何特征。这种情况下,我们就需要采用应用层网关识别技术。应用层网关需要先识别出控制流,并根据控制流的协议通过特定的应用层网关对其进行解析,从协议内容中识别出相应的业务流。对于每一个协议,需要有不同的应用层网关对其进行分析。

  • 基于“行为模式”的识别技术:基于对终端已经实施的行为的分析,判断出用户正在进行的动作或者即将实施的动作。行为模式识别技术通常用于无法根据协议判断的业务的识别。

DPI应用

  • 应用分析:网络流量构成分析、性能分析、流向分析等。

  • 用户分析:区分用户群、用户行为分析、用户趋势分析等。

  • 网元分析:根据区域属性(市、区、街道等)、基站负载情况进行分析等。

  • 流量管控:P2P限速、保证QoS、带宽保障、网络资源优化等。

  • 安全保障:DDoS攻击、数据广播风暴、防范恶意病毒攻击等。

FYI

  • 协议语法分析(Protocol-based Syntax Analysis):是一种用于识别网络通信协议中Payload(有效载荷)的技术手段。在网络通信中,Payload是指传输的有效数据部分,而不包括协议头部或其他的控制信息。在网络通信协议中,通常有预定义的语法规则和模式用于描述Payload的结构和格式。通过对Payload进行深入的分析,可以检测到潜在的恶意行为或攻击。同时,在网络流量分析中,Payload的识别可以帮助识别特定的应用程序或协议,进而为网络管理和优化提供有用的信息。

协议语法分析的基本原理:根据预定义的语法规则,对网络流量进行解析和匹配。一般而言,协议语法规则是以文本或正则表达式的形式进行描述的。通过将网络流量与这些规则进行比对,可以识别出具有特定语法结构的Payload。除了协议语法规则的预定义之外,协议语法分析还可以通过机器学习和模式匹配等技术进行进一步的优化和改进。

  • OpenDPI: OpenDPI is a software component for traffic classification based on deep packet inspection.

  • nDPI: Open Source Deep Packet Inspection Software Toolkit.

  • UTM(Unified Threat Management): 是指统一威胁管理,是一种功能全面的安全产品。将防病毒、入侵检测和防火墙安全设备划归统一威胁管理。