浅谈基于云网关的深度报文检测技术

云计算
智慧家庭运营中心基于云网关设计和自研了一种深度报文检测系统来提高网络对业务报文信息的感知和识别能力,实现对网络中各类应用的业务流量行为进行管控。

1、系统架构

DPI系统架构采用转控分离的思想进行设计,主要包括数据转发面和控制管理面,控制管理面主要完成对规则的配置管理工作,数据转发面主要完成对报文应用层协议的解析和转发等工作。通过将数据转发面和控制管理面分离开来,对业务进行更好地维护和管理,从而提高系统的可维护性和可扩展性。

从控制管理层面上看,DPI各个业务模块的需求都可以抽象化成“规则”,基于这些规则定义可以生成不同的“分类”对象;规则同时具有“使能状态、报文动作”等属性,内部还设置有特征、选项等关键字部件。 控制管理层面的工作在用户态完成,主要工作包括:

  • 统一开放格式的规则管理;
  • 统一开放格式的特征库加载和文件解析;
  • 配置变更和下发流程管理,包括引擎的编译和下发、规则的下发,以及它们的板间同步。

从数据转发层面上看,DPI各个业务需求都需要对应用层协议进行解析、解码和搜索。为了保证高效转发和单次报文处理,有别于传统防火墙的设计思路,在新一代安全产品的实现过程中必须有并行的检测引擎,尽可能保证只对报文进行一次处理。数据转发层面的需求主要在内核态进行处理,涉及到的几个功能模块如下:

  • 协议解析器;
  • 搜索算法引擎;
  • 检测结果处理模块(又称报文动作处理模块),一般是在I/O 接口的处理流程中。

图1 DPI系统框架图1 DPI系统框架

DPI系统架构如图1所示,这种将控制管理层和数据转发层相互独立的设计模型,使得CPU密集型的引擎预处理(编译和下发)和高性能的搜索算法过程分离在用户态和内核态,也可以使得我们的预处理和匹配在不同的单板甚至不同的设备上进行,易于保证转发流程的检测持续性和稳定性,匹配也易于由软件查表扩展成硬件处理器来完成。

2、报文检测

DPI即深度包检测,所谓的“深度”是相对于传统的IP数据包检测技术而言的,如图2所示,传统的IP数据包检测仅仅分析IP报文应用层以下的内容,例如,根据接收到的IP报文的五元组信息(包括源地址、目的地址、源端口、目的端口以及协议类型)对数据报文进行分类处理,而DPI则对报文进行更深层次的检测,包括对报文进行应用层的分析或基于流量特征的检测,识别出报文对应的应用层业务类型或提取其中的应用层关键信息用于后续业务处理。

图2 普通报文检测和深度报文检测区别

普通报文检测是通过端口号来识别应用类型的,比如:当检测到端口号为80时,就默认此应用协议为HTTP协议;当检测到端口号为443时,则默认此应用协议为HTTPS协议。但实际上,出于对应用安全性的考虑,通常不会使用默认端口来暴露业务能力,此时采用L2~L4层的传统检测方法就无能为力了。而DPI 技术能高效识别出网络上的各种应用类型,前提是后台需要维护一个庞大的应用特征数据库,当流量经过时,DPI通过将解包后得到的应用信息与后台的特征数据库进行匹配来确定应用类型。因此,当有新的应用出现时,后台的应用特征数据库也需要更新才能对具有新型应用的识别和控制能力。 

3、特征识别

基于特征字的识别技术是现网DPI 解析中命中流量最主要的DPI 技术,其原理就是不同的业务或应用通常有特殊的“指纹”,这些指纹可能是特定的字符串或者比特流,例如URL就是典型的特征字。基于这些特征字,通过对数据流中特定数据报文中的“指纹”信息进行检测来确定业务流承载的应用类型。此外,还可以基于荷载的特征进行识别,通过对应用层协议交互过程中报文的内容进行分析,找出不同于其他协议的模式特征,根据各种协议特有的模式特征来确定所属协议类型。基于负载的协议识别一般采用固定字符串和正则表达式来表示特征,正则表达式比固定字符串具有更强的表达能力和更好的灵活性,已成为研究DPI技术的热点。本文介绍的基于云网关的深度报文检测系统也是基于正则表达式来实现的,由正则表达式组成的应用特征库如图3所示。

图3 应用特征库

DPI根据自身的应用特征库与数据报文进行匹配,当DPI接收到数据报文时,先对数据报文进行解析,提取报文的五元组信息和特征字信息。 如图4所示,从报文应用层提取的特征字信息为Host信息,根据此Host信息依次与应用特征库中的特征信息进行匹配,并获取相应的标记结果。

图4 Wireshark抓取报文信息

如若从报文应用层获取的特征字信息与应用特征库中的特征信息成功匹配,则可在应用特征库中查找到该特征信息对应的业务类型,并给该报文流打上相应的业务标记;如若未能成功匹配,就给报文打上一个未知标记,并将报文特征字信息及其标记结果更新到特征表中,后续云网关将根据特征表对报文流进行策略分流处理,特征表部分特征信息如表1所示。

表1 特征表

图片

4、策略分流

特征匹配完成后,业务报文都会被打上一层应用类型的标记结果,云网关根据标记结果对报文进行策略路由选路,打上未知标记的报文都统一被送到公网服务器进行卸载,而打上其他标记结果的业务报文被分别送往不同的业务服务器进行分流处理。报文内部转发过程如图5所示,上述QQ业务类型的报文经过特征识别后会打上标记tag8,云网关根据标记结果配置相应的策略路由指定下一跳转发,这样QQ业务报文就被送到IP为192.168.2.10的业务服务器进行业务处理了。

图5 报文内部转发过程

5、总结

基于云网关的深度报文检测系统通过对报文的应用信息进行感知和识别,实现了对网络中各项具体业务运行情况的有效管理,主要包括业务识别、业务控制以及业务统计功能。

1) 业务识别:主要分为对运营商开通的合法业务和运营商需要进行监管的业务进行识别,第一类业务可以通过IP五元组来进行识别,第二类业务需要通过DPI技术来进行深度检测,通过解析数据包来确定业务具体内容和信息。

2)业务控制:可以根据既定的策略对网络进行配置,从而对业务流实现控制,主要包括转发流向、限制带宽、阻断、整形、丢弃等处理。

3)业务统计:根据DPI的识别结果对一定时间内的流量行为进行统计,包括:流量流向、业务占比、访问网站TOPN等。统计应用类型的使用比率调整该业务的服务优先级,统计用户正在使用哪种业务进行视频播放、即时通讯、购物支付以及游戏娱乐,也可以统计出消耗网络带宽的非法P2P、VOIP等业务。

责任编辑:庞桂玉 来源: 移动Labs
相关推荐

2023-07-31 09:00:38

云网关网络

2023-09-17 17:44:39

算网控制服务编排

2022-10-26 15:41:38

深度学习Deepfake机器学习

2013-01-09 15:27:45

DOM XSS检测QtWebKitXSS

2015-01-21 10:45:57

灾难恢复云应用云灾难恢复

2022-08-31 15:08:34

家庭网关交互控制智能家居

2022-09-20 08:00:32

VMWARE云原生

2010-09-25 15:18:09

2013-12-02 13:55:23

任意跳转漏洞漏洞检测DOM跳转漏洞

2023-12-03 09:09:00

NAT云网关

2012-09-11 14:04:35

私有云公有云IaaS

2010-09-27 14:54:54

2017-05-23 09:03:16

2012-11-20 10:23:47

云计算效用计算网格计算

2019-02-14 14:44:48

2010-09-26 10:18:33

2011-05-16 14:13:04

模型测试

2012-06-20 10:18:00

2020-04-29 14:43:32

VMware

2013-08-27 13:28:46

网络虚拟化网关博科
点赞
收藏

51CTO技术栈公众号