在网络的入口处对应用程序的识别是非常重要的,无论是网络安全产品,还是专业的流量分析引擎,应用流量的准确识别不但可洞悉整个网络的运行情况,而且可针对具体需求做用户行为的准确管控,这在一定程度上既可保证业务流的高效运行,也可预防由于内网中毒引起的断网事件。
然而,要准确识别应用流量,从技术实现上讲并不简单,难度主要体现在识别的算法及检测深度。算法不但要解决流量的分类,而且要负责在多个分类中查找特征,所以***的算法往往带来的是精确的识别;另一个就是检查数据的深度,深度总是和性能关联,检查的越多,消耗的系统资源越多。因此,检查一个流的前20个包所付出的性能代价往往是超乎想象的,这就是我们提到的识别难度。
对于识别方法来说,从技术角度看,检查一个应用特征主要有三种方法。***种方法称为标准检测,主要靠识别报头信息的地址和端口,这种方法常见于做QoS的网关设备。第二种方法称为DPI(深度包检测),这是业界常用的术语,绝大多数设备声称具有这样的技术,常见于"下一代内容检测系统"及UTM类设备。从理论上,数据流中每个报文的任意字段或数据流传输过程中的任何特征都可以作为应用协议识别的依据,但实际上,如何快速选择最有效的数据流特征信息的难度远远超过了您的想象。第三种方法称为解密检测方法,就是将数据流送入一个分类器,数据流被分类之后,将加密数据流送入一个解密引擎,解密引擎通过预置的解密算法对数据解密,解密后再次返回分类器进行检查。如天融信TopFlow就采用这种技术来识别加密数据,通过这种独有的技术,使得精确识别率能达到99%以上。
当然,在我们介绍应用流量识别时有几个概念需要介绍:
数据流:基于应用层协议识别的对象不能只是简单的检查单个报文,而是要将数据流作为一个整体来检测。因此,数据流是指在某个会话生命周期内,通过网络上一个检测节点的IP数据报文的集合。实际上,一个节点发送的数据流的所有属性是相同的。
数据流分类:利用数据流以及数据流中报文的某些信息,可将网络上的数据流进行分类,这种分类可加速应用流量的分类,如游戏应用数据流通常是小报文,而P2P流一般称为大报文。
数据流类别:数据流类别是一个大型网状结构的分类器,按照行为特征及签名进行归类。在数据流分类问题中,每个类别可能包含某些属性类似的多种协议,典型的如IE下载即包括了多个类别,有分块下载,有伪IE下载等,有另存单线程下载等,而协议识别必须对流进行更精细的分类,使得每个类别中的流只使用一种应用层协议。
协议识别:协议识别是指检测引擎根据协议特征,识别出网络数据流使用的应用层协议。
应用协议特征字符串:特征字符串是协议归类的关键依据,字符串特征举例协议特征字符串
ftp特征字符串acct、cwd、smnt、port;
smtp特征字符串HELO、EHLO、MAIL FROM:、RCPT TO:、VRFY、EXPN;
pop3特征字符串+OK、-ERR、APOP、TOP、UIDL;
msn 特征字符串包括msg、nln、out、qng、ver、msnp;
OICQ特征字符串开头***个字节:0x02,第四、五字节:协议号;
sip特征字符串REGISTER、INVITE、ACK、BYE、CANCEL、SIP;
eMule特征字符串开头***个字节:0xe3 或 0xc5 或 0xd4;
应用流量协议特征检测方法
数据流检测方法主要分为四个层次,让我们描述一下从最简单到最复杂的检测过程。
首先,互联网众所周知的网络应用都是建立在固定网络协议或端口上,如http、ftp等等常用协议,这些协议的特征非常明显,在一定程度上几乎不使用检测引擎就可识别。
其次,但当应用变得复杂时,很多应用都会启用随机端口进行通信,因此,新启用的端口我们事先无法预知,此时DPI必须实时监控会话,通过监测数以千计的并发会话来判断其应用特征。
很多新的网络应用伪装使用已知的固定端口,如使用80、8080、443等知名端口,特别像使用80端口的伪装,伪装的目的首先是被防火墙认可,不至于在防火墙上被阻断,被作为正常的web访问而通行。这种应用如P2P伪装、视频伪装,都使用这些知名端口。此时设备需要在多个会话中开始寻找所谓的签名,通常这是一个复杂的字符串,是检测引擎预先定义好的,而且是唯一一个应用。随着应用的增加,DPI特征库需要不断更新。如下图迅雷采用伪IE下载就属于典型的伪装。
第三,对于完全加密的应用,我们称为加密流,对于加密数据流,去寻求一个端口或签名是毫无意义的。因此,检测引擎需要开发出一种新方法,着眼于数据包长度和它们的顺序排序。而实际上,其中的一些加密应用总是使用同一系列的包长度、在同一位置、在同一顺序,这就是所谓的行为特征。通常,检测引擎能够这些加密流进行行为分析,而实际上,这里存在两个难度,一个是加密流特征字符串的获取本身需要扎实的独特的算法,另外,单单对于位置的检测还远远不够,如加密传输的应用协议的加密方法几乎每周都在变换位置,而天融信TopFlow独特的算法不但能对加密数据流的位置进行检查,而且能对加密数据流进行解密,这使得他对应用的识别率可高达99%以上。
如何评价应用识别引擎:
应用识别引擎是应用流量管理系统的核心,所以下面五点则能较好的评价产品。
***、应用程序的识别数量多少,特别对复杂协议及新协议的识别数量成为产品的核心,而不是单单用端口号来标识的简单应用或标准应用。
第二、应用协议识别的准确性。一个好的引擎或好的算法才能保证低的误报和漏报。
第三、应用检测的时间消耗。一个好的引擎能够花费很少的时间即可检查出特征。
第四、对高性能和高带宽处理。一个好的引擎才能部署到大的网络环境中,如高校、大集团用户、运营商网络。
第五、协议库更新的频率及协议库库更新的难易程度。一个好的引擎才能保证协议库的更新有验证、计算、校对,使系统不断网、不重启,即使出现升级失败,也能保证原有特征库不被损坏,正常运行。
天融信TopFlow应用流量管理系统通过天融信公司近17年的技术积累,对多达数万用户应用的分析、归纳,并在天融信自主操作系统TOS基础上开发的基于用户应用分析及管控的系统。TopFlow依靠自主知识产权的 TOS (Topsec Operating System) 安全操作系统,采用全模块化设计,使用中间层理念,减少系统对硬件的依赖性,使得内核更为精简和优化,特别在天融信多核处理硬件平台上,通过大量的协议栈优化,针对高性能处理需求进行了中断处理和驱动优化,保证系统在天融信专有多核处理平台上,数据以最快速度执行、以较高优先级运行、以超高速放行。
通过完善的应用协议特征库检测和伪装探测技术,并采用(DPI)深度包检测技术来识别各种用户应用,应用识别率超过99%。特别对采用逃避技术的加密协议进行精准识别,如采用加密传输的迅雷协议族、QVOD视频等等加密类协议进行及时而精准识别,这是其他产品技术所不能比拟的。