薄 杨
(安徽国防科技职业学院信息技术学院,安徽 六安 237011)
开放的互联网在为个人用户和企业用户提供服务的同时,不可避免地面临着各种直接或间接安全威胁。各种端口攻击、恶意代码和垃圾邮件等攻击形式层出不穷,这些攻击如今更加关注用户应用,以用户应用为突破口对个人和企业网络造成安全威胁[1]。对个人用户而言,这些安全威胁可能造成系统崩溃、账号泄露;对于企业用户而言,可能造成网络瘫痪、业务延迟,甚至企业核心数据泄露。
随着各类应用层安全问题的不断涌现,个人和企业逐渐意识到应用层安全的重要性,市场上应用层安全产品的研发比重不断增加。应用层安全防护已经成为当前安全防护领域研究的主要方向[2],基于DPI和DFI的应用监测技术也已成为安全领域的热门技术。
DPI为深度包检测, 该技术在对数据包头封装信息进行分析的基础上,结合应用协议的特征对流量进行检测和控制。当三层数据包和四层数据流经过基于DPI技术的网络设备或系统时,DPI会分析数据内容,并对应用层信息进行信息提取,以提取的内容为依据,按定义的策略对流量进行预设的操作和管理[3]。
根据协议类型,DPI主要分为以下三类:
所有应用都依赖一定的协议工作,协议都有其各自的数据封装特点,DPI可以根据协议的不同端口或序列号对数据进行识别。
针对某些业务控制与转发功能分离的特点,只分析控制流协议的特征对只分析控制流协议的特征,并对应用层网关进行解析,从协议内容中检测和识别业务流。
对终端的行为进行分析,检测并判断出正在执行或预执行的动作行为特征。
DFI为动态流检测,与DPI对应用层载荷进行分析检测,并实现匹配不同。DFI采用的是基于流量行为特征的应用识别技术,根据不同应用在运行过程中体现出的状态进行判断。
DFI基于流量的行为特征建立特征模型,通过分析会话连接或数据流上的状态,比如数据包的大小、数据传输量、传输间隔、转发速率等信息与特征模型进行比较,最终实现对应用类型的检测。
由于DPI技术与DFI技术实现机制不同,在检测效果和实际应用中也各有特点,主要表现在如下几个方面:
DPI可以准确识别具体的应用,但是有时不同的应用可能具有相似的特征,或者有些应用特征非常不明显,DPI可能无法进行检测[4];DFI无法准确识别具体应用,只能识别应用类别,不同应用类别的流量也可能存在相似特征,检测过程中也可能会出现无法检测的情况。
由于DPI需要对协议进行深度分析,要逐包进行拆包检测,并与数据库进行对比,因此要求设备和系统性能较高,而DFI是对流量特征的检测,仅需将流量特征与后台流量模型比较,对设备和系统要求较低。
DPI技术总是需要紧跟新协议的产生而升级应用数据库,否则就不能有效识别,而基于DFI技术由于同一类型的应用在流量特征方面不会出现大幅度的变化,因此不需要对流量行为模型进行频繁升级,维护成本较低。
结合DPI和DFI两种检测技术的特点,在应用层流量识别过程中,可采用DPI与DFI相结合的检测方式,检测模型分为设备状态分析模块、DPI检测模块和DFI检测模块。
设备状态分析模块对安全检测系统进行系统运行状态检测,在该模块中设置系统运行引导模型,综合分析系统的软硬件开销情况,在不同的开销状态下,可以将数据包或数据流分别引导到DPI检测模块或DFI检测模块进行检测。简单的说,由于DPI和DFI对系统开销的要求不同,设备状态分析模块可以判断设备当前运行状态的好与坏,并根据设备的实时运行情况选择首先激活DPI或DFI模块进行深度检测[5]。
在检测设备的软硬件条件较好的检测环境下检测。当数据包入站时,首先将数据包送往DPI检测模块的检测引擎,检测引擎根据收到的数据包进行逐层深入的协议特征分析,总结提取各层协议的特征信息,并按一定的规则对特征进行排序和汇总。将提取到的特征信息与DPI识别模块中的的协议识别特征库进行比对匹配,对匹配到特征的数据包按照匹配后的规则执行相应的动作。对没有匹配到特征的数据包,会将数据包提交给DFI检测模块,由DFI检测引擎对流量进行流特征识别,进而判断出该数据流的应用类型。反之,在检测设备的软硬件条件较差的检测环境下检测。先将数据流提交给DFI检测模块,由DFI检测引擎进行检测。对无法明确应用的数据流再提交给DPI检测模块进行检测。
图1 DPI+DFI深度检测模型
该模型融合了DPI和DFI两种深度检测技术,具体优势如下:
1)增加了状态识别模块,检测设备的实时运行状态,根据不同的状态选择不同的检测引擎对数据进行检测分析。
2)避免了单一检测方式的不足,充分考虑了DPI和DFI两种检测技术的特点,有针对性地对不同的数据进行深度检测,能够满足所有检测需求[6]。
3)在DPI检测模块中,通过提取和汇总协议特征信息的方式对协议进行分析,可以提高特征识别效率,进而提升安全防护系统的敏感度和可靠性。
目前网络厂商都推出了自己的DPI+DFI检测技术,H3C公司的ACG行为管理设备中便采用了该技术,在企业网网络部署过程中能够很好的基于该技术实现对数据流和数据包的行为审计、URL过滤和QoS等。
图2 审计接入用户示意图
如图2所示,在企业网中对无线接入用户数据进行行为审计,对ACG设备配置后得到如下配置文件:
!
address 研发网段
ip subnet 192.168.3.0/24
!
address 财务网段
ip subnet 172.16.2.0/24
!
policy any any 研发网段 any any any any always audit 1
app-policy 1 category Search-Engine any any keyword include any accept info FilterIMLoginAction
app-policy enable 1
app-policy 2 category IM-Software any any keyword include any accept info FilterIMLoginAction
app-policy enable 2
app-policy 3 application Sina-Weibo any any keyword include any accept info FilterIMLoginAction
app-policy enable 3
app-policy 4 application Sina-Weibo-iPhone any any keyword include any accept info FilterIMLoginAction
app-policy enable 4
app-policy 5 application Sina-Weibo-Android any any keyword include any accept info FilterIMLoginAction
app-policy enable 5
website-policy malware disable
policy any any 财务网段 any any any any always audit 2
app-policy 1 application any any any keyword include any accept info FilterIMLoginAction
app-policy enable 1
website-policy malware disable
policy default-action permit
policy white-list enable
!
通过模拟接入用户访问得到如下结果:
图3 基于深度检测的行为审计
如图3所示,ACG对数据进行了正确识别,并执行了相应的放行操作。
基于DPI的深度检测能够匹配数据包封装协议的特征信息,在检测中需要消耗较多的系统资源,而基于DFI的深度检测可以通过对链接建立过程和数据转发过程中的应用特征进行匹配检测,两种检测方式各有优势可以实现互补。
本文提出的基于DPI和DFI融合的深度检测策略可以根据状态检测模块判断安全设备的实时运转状态,进而选择检测策略。在系统运行状态较好时,启动DPI检测模块对数据包进行特征提取和检测匹配;在系统运行较差时,启动DFI检测模块对数据流进行应用类型的检测匹配。