DPI (Deep Packet Inspection) 深度包检测技术 - 简书
一、DPI 技术产生的背景
近年来,网络新业务层出不穷,有对等网络(Peer-to-Peer,简称 P2P)、VoIP、流媒体、Web TV、音视频聊天、互动在线游戏和虚拟现实等。这些新业务的普及为运营商吸纳了大量的客户资源,同时也对网络的底层流量模型和上层应用模式产生了很大的冲击,带来带宽管理、内容计费、信息安全、舆论管控等一系列新的问题。尤其是 P2P、VoIP、流媒体等业务。当前 P2P 业务的流量已占互联网数据流量的50%-70%,如果再加上流媒体等业务,新业务的数据流量是相当巨大的,这打破了以往“高带宽、低负载”的 IP 网络 QoS 提供模式,在很大程度上加重了网络拥塞,降低了网络性能,劣化了网络服务质量,妨碍了正常的网络业务的开展和关键应用的普及。同时,P2P 的广泛使用也给网络的信息安全监测管理带来了极大的挑战。
由于 P2P 流量的带宽吞噬特性,简单的网络升级扩容是无法满足运营商数据流量增长需要的,加上网络设备缺乏有效的技术监管手段,不能实现对 P2P/WEB TV 等新兴业务的感知和识别,导致网络运营商对网络的运行情况无法有效管理。
传统的网络运维管理,往往通过设备网管实现对网元级的管理,后来发展至网络级管理,可以对上层的简单应用进行管控,而这些应用级管控技术大多采用简单网络管理协议 SNMP 或者基于端口的流量识别进行进行分析和管理。
因此,如何深度感知互联网/移动互联网业务,提供应用级管控手段,构建“可运营、可管理”的网络,成为运营商关注的焦点。
二、DPI 技术介绍
DPI技术是一种基于应用层的流量检测和控制技术,称为“ 深度包检测”。所谓“深度”是和普通的报文分析层次相比较而言的,普通报文检测仅分析 IP 包的4层以下的内容,包括源地址、目的地址、源端口、目的端口以及协议类型。
而 DPI除了对前面的层次分析外,还增加了应用层分析,识别各种应用及其内容。当 IP 数据包、TCP 或 UDP 数据流通过基于 DPI技术的带宽管理系统时,该系统通过深入读取 IP 包载荷的内容来对 OSI 七层协议中的应用层信息进行重组,从而得到整个应用程序的内容,然后按照系统定义的管理策略对流量进行整形操作。
OSI七层协议:
OSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。 OSI 的7层从上到下分别是 7.应用层、6.表示层、5.会话层、4.传输层、3.网络层、2.数据链路层、1.物理层;其中高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端的数据流。
基于 DPI技术的带宽管理解决方案与我们熟知的防病毒软件系统在某些方面比较类似,即其能识别的应用类型必须为系统已知的,以用户熟知的BT为例,其Handshake的协议特征字为“BitTorrent Protocol”;换句话说,防病毒系统后台要有一个庞大的病毒特征数据库,基于 DPI技术的带宽管理系统也要维护一个应用特征数据库。当流量经过时,通过将解包后的应用信息与后台特征数据库进行比较来确定应用类型;而当有新的应用出现时,后台的应用特征数据库也要更新才能具有对新型应用的识别和控制能力。
这里需要提一下UTM(Unified Threat Management),UTM 实现原理采用的方法就是DPI,这种方法将下载、电子邮件传输以及压缩的文档与全面且连续更新的预定义攻击签名数据库进行比较和匹配。利用这些签名可以实时扫描并检测、阻止通过网络传输的变型的(Packed)可执行文件和宏病毒文件,以实现 UTM 的功能。
三、DPI 技术原理
DPI的技术关键是高效的识别出网络上的各种应用。普通报文检测是通过端口号来识别应用类型的。如检测到端口号为 80 时,则认为该应用代表着普通上网应用。而当前网络上的一些非法应用会采用隐藏或假冒端口 号的方式躲避检测和监管,造成仿冒合法报文的数据流侵蚀着网络。此时采用 L2 ~ L4 层的传统检测方法已无能为力了。 DPI技术就是通过对应用流中的数据报文内容进行探测,从而确定数据报文的真正应用。因为非法应用可以隐藏端口号,但目前较难以隐藏应用层的协议特征。 DPI的识别技术可以分为以下几大类:
- 基于“特征字”的识别技术不同的应用通常依赖于不同的协议,而不同的协议都有其特殊的指纹,这些指纹可能是特定的端口、特定的字符串或者特定的Bit 序列。基于“特征字”的识别技术通过对业务流中特定数据报文中的“指纹”信息的检测以确定业务流承载的应用。根据具体检测方式的不同,基于“特征字”的识别技术又可以被分为固定位置特征字匹配、变动位置的特征匹配以及状态特征匹配三种技术。通过对“指纹”信息的升级,基于特征的识别技术可以很方便的进行功能扩展,实现对新协议的检测。如:Bittorrent 协议的识别,通过反向工程的方法对其对等协议进行分析,所谓对等协议指的是 Peer 与 Peer 之间交换信息的协议。对等协议由一个握手开始,后面是循环的 消息流,每个消息的前面,都有一个数字来表示消息的长度。在其握手过程中,首先是先发送 19,跟着是字符串“BitTorrent protocol”。那么“19BitTorrent Protocol”就是Bittorrent的“特征字”。
- 应用层网关识别技术某些业务的控制流和业务流是分离的,业务流没有任何特征。这种情况下,我们就需要采用应用层网关识别技术。应用层网关需要先识别出控制流,并根据控制流的协议通过特定的应用层网关对其进行解析,从协议内容中识别出相应的业务流。对于每一个协议,需要有不同的应用层网关对其进行分析。如 SIP、H323 协议都属于这种类型。SIP/H323 通过信令交互过程,协商得到其数据通道,一般是RTP格式封装的语音流。也就是说,纯粹检测 RTP 流并不能得出这条RTP流是那通过那种协议建立的。只有通过检测 SIP/H323 的协议交互,才能得到其完整的分析。
- 行为模式识别技术行为模式识别技术基于对终端已经实施的行为的分析,判断出用户正在进行的动作或者即将实施的动作。行为模式识别技术通常用于无法根据协议判断的业务的识 别。例如:SPAM(垃圾邮件)业务流和普通的 Email 业务流从 Email 的内容上看是完全一致的,只有通过对用户行为的分析,才能够准确的识别出 SPAM 业务。
四、重要应用
深度数据包检测( DPI)是一项已经在流量管理、安全和网络分析等方面获得成功的技术,同时该技术能够对网络数据包进行内容分析,但又与header或者基于元数据的数据包检测有所不同,这两种检测通常是由交换机、防火墙和入侵检测系统/IPS设备来执行的。通常的 DPI解决方案能够为不同的应用程序提供深度数据包检测。
只针对header的处理限制了能够从数据包处理过程中看到的内容,并且不能够检测基于内容的威胁或者区分使用共同通信平台的应用程序。 DPI能够检测出数据包的内容及有效负载并且能够提取出内容级别的信息,如恶意软件、具体数据和应用程序类型。
随着网络运营商、互联网服务提供商(ISP)以及类似的公司越来越依赖于其网络以及网络上运行的应用程序的效率,管理带宽和控制通信的复杂性以及安全的需要变得越来越重要。 DPI恰好能够提供这些要求,寻求更好的网络管理以及合规的用户企业应该把 DPI作为一项重要的技术。
DPI技术首先能够将数据包组装到网络的流量中,数据处理(包括协议分类)接着可以从流量内容中提取信息,流量重组和内容提取都需要大量处理能力,尤其是在高流量的数据流中。成功的 DPI技术必须能够提供基本功能,如高性能计算和对分析任务的灵活的支持。
DPI处理部门必须能够提供符合通信网络性能的可扩扎性和性能,深度内容检测要求比仅仅是header检测更加多的处理。因此, DPI通常使用并行处理结构来加快计算任务。 DPI技术最终能够向用户提供从网络流量中提取出的信息,实际内容处理可能与提取出的信息有很大差异, DPI技术的表现有点像一个平台,提供内容处理的实用工具,但是可以让用户决定处理哪些内容。
五、服务供应商使用 DPI来分离网络流量
很多服务供应商现在使用 DPI来将流量分为低延时(语音)、保证延时(网络流量)、保证交付(应用流量)和尽最大努力交付的应用程序(文件共享)。使用这种分类,他们可以更好的根据关键任务流量、非关键流量来优化资源并减少网络拥挤。因为廉价的带宽,服务供应商可以增加增值服务来获得额外的收入,包括安全、高峰使用管理、内容计费和针对性的广告。这些都需要对网络流量的深度检测。
六、大型企业可以使用 DPI 来管理网络性能
拥有大型网络覆盖很多地理区域的企业在他们的内部网络间可能运行着完全不同的通信类型。除了控制成本和带宽使用外,安全一直是一个挑战,这要求对网络应用程序流量的理解。这些企业已经开始看到 DPI 分析带来的好处,例如,网络管理员可以使用 DPI技术来控制网络性能,当网络性能较低时,限制某种应用程序流量,当性能恢复到正常时,再提升流量。
现在越来越多的网络安全功能需要有效载荷级别的知识,数据泄漏防护要求深度理解通过线路发送的实际内容。应用层防火墙负责有效载荷的内容,而不是 Header 内容。在云计算中的安全服务提供商,如反垃圾邮件或者 Web 过滤服务等供应商,必须获取通过多个客户通信的实时可见的内容,以便迅速获取抵御威胁和攻击的信息。这样也要求内容级别的情报。
传统上来说,这些安全功能都由特殊用途的技术所提供,这些可能包括一些 DPI 功能。例如,IPS 就有内置的 DPI。保护 Web 网关同样提供对 Web 内容的 DPI 分析,但是每种特殊用途技术引用其特殊的目的或者不兼容的软件,都会使网络基础设施效率低下。一个数据包可能会因为多种用途而被进行多次检查。另外,这些技术并不能提供可编程的接口,这就以为着你不能够提取任意信息。
除了安全问题外,DPI 对于云计算服务供应商还有着重大的影响,对于云计算供应商而言,服务订阅和用户管理是一个重大挑战。很多供应商使用自身开发的或者现成的技术来管理服务订阅,他们发现这样做既缺乏可扩展性又不能为复杂的管理任务提供足够的信息。另一方面,DPI 能够提供关于用户流量、应用程序使用、内容传递和异常模式的情报信息,这些服务供应商还可以利用可编程界面来收集其他有用信息,如市场营销情报和客户档案等。
七、编辑本段深度数据包检测仍然面临着挑战
作为一个相对年轻的市场,DPI 行业还面临着很多挑战,例如:
- 不存在标准的基准。现在的 DPI 市场还充满了困惑的、一站式的、针对特定应用程序的性能信息,这个行业需要标准基准来规定连接安全时间、TCP、UDP 和吞吐量测试等。这些基准对于在相互竞争的产品间建立可比性能指标是很重要的。
- 不同的 DPI 技术不断的涌现,“OpenDPI” 将允许第三方开发者在不同的商业解决方案上编写 DPI 应用程序。
- DPI 技术市场将继续存在下去,现在看来,这个市场的应用程序可能还是分散和不一致的,但是存在的巨大潜力和行业利益将最终推动其走向标准和开放的市场。