安全系列(五):浅谈应用识别技术的实现

标签:
应用安全应用识别it |
分类: 安全 |
文/张志群
基于应用的识别技术,是目前各种应用层安全防护的基础,也是L4-L7层安全的关键技术点之一。本文对于H3C i-Ware平台的应用协议识别技术进行了深入的说明。
1 应用识别的背景
随着企业安全防护过程中对应用层的关注,基于深度包检测技术(DPI)和深度流检测技术(DFI)成为安全领域的热门技术之一。
- 各类新的应用层出不穷,极大的增强了人们对内容需求的同时,势必会带来新的、更复杂的安全风险。这些风险隐藏在应用的内容之中,和应用本身密不可分,如果不结合应用来分析将无法抵御这些风险。如网络上的文件共享、Web服务、P2P下载等应用五花八门,层出不穷,带来了不尽其数的安全漏洞和利用这些漏洞的攻击,因此对这些应用的深度识别会有助于人们更好的掌控网络的安全。
- 对于一些非法的、未受控的应用必须识别并加以控制,否则他们将利用网络这一“封闭管道”,挤占合法应用带宽,同时影响企业员工的整体生产率。如在企业网或校园网中,P2P下载、娱乐类等应用占用了大量的带宽,会对这些机构正常的业务造成极大的影响。
现阶段,基于端口进行应用协议的识别是最为通常的手段。例如发现某数据报文中源或目的端口为80,则认为是HTTP协议相关报文,交给HTTP协议分析引擎进行协议解码和攻击检测。但随着各种网络应用的逐步丰富,这种基于端口来识别报文所属协议类型的方法暴露出其存在的不足:
- 理员出于规避风险等原因,对一些常见的应用采用非RFC规定的端口(如HTTP采用88、8080等端口),使端口和应用映射不对应,从而造成应用无法识别或识别错误。
- 一些新的应用并不采用固定端口(如SIP等),而是采用在协议运行过程中动态协商的方式,如创建数据通道。这种情况下采用端口映射识别应用是行不通的。
- 近年来,对等网络(P2P)协议出现并不断演进。他们在协议运行过程中采用动态协商、数据报文加密等方式,给应用的的识别提出了更为严峻的挑战。
- 各类应用版本更新频繁,这就要求应用识别必须及时保持动态刷新。因此保持对应用识别的及时性成为需要解决的重要问题。
- 面对这些新型的应用,往往需要采取协议自动识别算法来进行协议识别。如何满足对识别准确率和高性能的需求?
2 常见的应用识别技术分析
为了应对固定端口进行协议识别的缺陷,在实际使用过程中,主要有DPI和DFI两种技术:
1)DPI(Deep Packet Inspection),即深度包检测。在进行分析报文头的基础上,结合不同的应用协议的“指纹”综合判断所属的应用。
2)DFI(Deep Flow Inspection),即深度流检测。它是基于一种流量行为的应用识别技术。不同的应用类型体现在会话连接或数据流上的状态各有不同,表1展现了不同的应用的流量特征:
应用 |
持续时间 |
平均数率 |
传输字节数 |
HTTP |
短 |
高 |
中-高 |
VPN |
长 |
低 |
高 |
Games |
长 |
低 |
高 |
Streaming |
长 |
中 |
高 |
P2P |
长 |
中-高 |
高 |
NAT |
短-长 |
低-高 |
低-高 |
表1 不同的应用流量特征不尽相同
这两种技术,由于实现机制的不同,在检测效果上也各有优缺点。具体见表2所示。
比较项 |
DPI |
DFI |
识别准确率 |
可以准确识别具体的应用 |
无法很准确的识别具体应用,可以泛泛的识别一类应用,如P2P加密类等 |
识别的误报率 |
通常情况下不同的应用具有不同的“指纹”特征,但是有些情况下,不同应用可能具有相似的“指纹”,甚至有些“指纹”较短,导致误报的几率增大 |
不同的应用类型,可能存在较为相近的流量特征,从而导致误报率的增大,如NAT之后的流量与P2P流量具有较大的相似性 |
对计算的要求 |
高,需要逐包检查,特征匹配 |
低 |
新应用支持效率 |
低,需要逐个分析具体应用,并更新特征库 |
高,对于已经支持的应用类型,可以快速的支持 |
实现技术 |
基于特征匹配技术 |
基于网络层、传输层信息、业务流持续时间、字节长度分布等参数进行统计分析技术 |
升级的方便性 |
简单,通过升级特征库即可 |
无需升级 |
表2 DPI与DFI技术比较
DPI技术由于可以比较准确的识别出具体的应用,因此广泛的应用于各种需要准确识别应用的系统中,如运营商的用户行为分析系统等;而DFI技术由于采用流量模型方式可以识别出DPI技术无法识别的流量,如P2P加密流等,目前因此越来越多的在带宽控制系统中得到应用。
3 UAAE应用识别模型
- 应用识别分类
基于对现有协议的识别方法进行深入研究,以及对网络协议的深刻理解基础上,结合上述两种应用识别技术,H3C提出了一种通用的协议识别模型——UAAE(Universal Application Apperceiving Engine)。在该应用识别模型中,对于应用的识别可以分成如下几类:
1)固定端口协议类:一些协议如BGP、RIP等,其端口是相对稳定的,可以根据端口号快速识别。
2)特征状态机发现协议类:绝大部分P2P协议的端口是不固定的,有些甚至故意使用一些标准协议的知名端口,如BT、Emule、迅雷、skype等,都会使用80端口进行协议交互,因此需要依靠深入的数据分析来识别这些应用协议。不同的协议有不同的“指纹”,这些“指纹”可以是端口、载荷部分的固定字符串或者二进制序列,如BT的握手报文的协议特征字为“.BitTorrent Protocol”。和其他应用识别系统不同,UAAE不仅仅依靠单个报文的握手特征进行应用协议识别,还通过有状态的特征状态机进行更精确的识别。
3)协商协议类:目前越来越多的协议采用控制通道和数据通道配合的模型:控制通道用于交互登陆、数据链路协商和命令交互等,通过控制通道可以协商出一个或多个数据通道进行数据交互。传统的FTP协议属于这种模型,绝大部分VoIP应用也属于这种模型,如Skype、UUCALL等。
4)隧道协议类:防火墙和NAT设备的部署使得网络中出现了很多应用层隧道,这些隧道是应用协议层次之间发生嵌套的结果。如HTTP Tunnel,表面来看是一个80端口的连接,但实际上里面有可能承载了任何种类的应用数据。
5)流量模型发现协议类:越来越多的P2P流量采用加密方式传输,如迅雷、Skype等,通过上述应用“指纹”方式是无法识别的。只能通过流量特征,如连接速率、各个链接的关联性、数据传送字节分布等流量特征进行识别。
在UAAE模型中,对于上述类别1-4采用DPI技术进行具体应用的识别;对于DPI技术无法识别的应用和数据流,则通过DFI技术进行流量的识别,即上述类别5。
-
UAAE模型
在IP协议簇中,协议是有层次关系的,总体看来如同一颗树,如图1所示:
对于每个协议,可以通过应用“指纹”来识别。应用“指纹”即协议的特征,它可以对一个或多个进行定义,这样也组成了协议特征树。对于每个特征可以指定其对应的父辈协议特征(即协议),UAAE通过一套完整的语法来描述协议的识别方法。
传统的协议解析方式是结合协议头部进行层层解析,从而获得最上层协议,这是H3C UAAE协议推导的基本思想。并基于这个思想构建了应用协议树以及协议特征树,其中应用协议树与实际的协议层次结构是完全一致的。
如图2所示,数据包经过重组后送到协议识别核心模块,该模块将数据包交给检测引擎进行检测;检测引擎根据接收到的动态下发的协议特征树对数据包进行检测,然后向协议识别核心模块返回命中的检测结果;协议识别核心模块根据该检测结果和其内部的协议特征树进行协议层次推导并识别出相应的协议。这里的检测引擎可以由ASIC芯片或者FPGA等来构建,从而实现高性能的检测。同时如果协议识别核心模块发现一个会话经过多个报文仍然没有获知最上层应用,则会采用DFI技术对流量进行深度分析和识别,从而判断出对应未知流量所属的应用。
UAAE引擎在结合应用模型分类识别的基础上,还能够进行有效灵活的智能决策。它可以对各种识别手段和验证方法进行优先级排序,高优先级的识别结果动态智能的替换低优先级的识别结果,使应用识别的结果精确度大大提高。例如,对于使用TCP 80端口登录的Skype协议,在TCP握手时,UAAE根据端口识别出该会话是一个HTTP会话。进一步检测会话的内容,一旦识别了Skype的登录特征,UAAE可以依据优先级立即智能地做出判决,将会话识别为Skype登录协议。
4 UAAE通用应用识别引擎的优势
1)可以根据协议的前期报文识别具体的协议类型,从而可以很好的满足实时性的要求。
2)支持应用的快速定义,这样通过升级应用特征库可以达到快速支持识别新的应用。
3)引擎融合了DPI和DFI检测技术,很好的弥补了单个技术应用识别的不足,从而可以全面而完整的识别目前绝大部分的应用;
4)在协议的推导过程中,很好的结合了协议解析、检测验证以及攻击行为结合推导,从而极大的提高了攻击检测的精度;
5)对于一个数据流,一旦应用识别成功,可以智能识别记忆识别结果并判断是否存在可能的安全风险,这样对于该数据流后续报文可以进行快速导航,从而提高设备的整体性能并提高对威胁的检测效率;
5 结束语
当然,良好的应用识别技术与硬件系统配合的实施仍然是一项系统工程,并会遇到很多需要解决的实际问题和困难,如:
- 配合不同的硬件平台,为了充分发挥不同硬件平台功能,对软件的架构要求是有差别的,如多核硬件与基于ASIC硬件对软件实现是有差别的。
- 对于采用应用“指纹”识别的系统来说,识别的算法是公开并已知的,但是能否结合设备厂商自身产品的特点以及软硬件平台进行有针对性的优化,从而达到理想的检测效果,这是每个厂商需要面临的问题。
- 由于很多应用协议“指纹”比较普通,与其他应用交叉重复性较大,这就需要结合软硬件平台进行有针对性的优化,才能达到比较好的效果。
H3C通过在数通领域和硬件架构领域的多年的研发技术积累,在不断的实践中和不断优化中,较为圆满的解决了各项难题,并在i-Ware平台中得以很好的解决。