历史回顾
在深入了解深度包检测技术之前,我们首先来回顾一下防火墙检测技术发展的历史。这些检测技术并没有随着科技的前进而消失。相反,正是以这些技术为基础,才发展出了更多先进的功能元素。
最早出现并获得广泛应用的分组过滤式防火墙可以被称为第一代防火墙。最基本的分组过滤防火墙会根据第三层的参数(如源IP地址和目标IP地址)检查通过网络的数据包,再由内建在防火墙中的分组过滤规则依据这些参数来确定哪些数据包被放行,哪些数据包被阻隔。之后又出现了应用层网关防火墙,这种防火墙经常被称为基于代理服务器的防火墙,因为它会代表各种网络客户端执行应用层连接,即提供代理服务。应用层网关的工作方式与分组过滤技术有很大的不同,其所有访问都在应用层(OSI模型的第七层)中控制,并且也没有任何网络客户端能直接与服务端进行通信,如图1所示。
而在目前,得到最广泛应用的主流过滤技术是状态检测(Stateful Inspection)。它的工作方式类似于分组过滤防火墙,只是采用了更复杂的访问控制算法。状态检测型防火墙和分组过滤防火墙实质上都是通过控制决策来提供安全保护的,只是状态检测型防火墙除了可以利用第三层网络参数执行决策之外,还可以利用网络连接及应用服务的各种状态来执行决策。另外,所执行的决策也不仅限于数据包的放行与阻隔,类似加密这样的处理也可以作为一种控制决策被执行,如图2所示。
状态检测型防火墙不仅可以根据第三层参数决定有关信息传输是放行还是拒绝,还能够理解连接的当前状态(例如相关连接是处于建立阶段还是数据传输阶段)。防火墙处理的所有数据传输都会被传送到一个状态检测引擎,其中汇集了相应的访问规则。
通过维护一个连接状态表,标识出通过防火墙的每条活动连接以及与之关联的第三层参数。如果连接状态表中确实含有一条连接的记录,状态检测引擎才允许该连接的返回信息通过。而且在连接建立之后,防火墙可以通过检查TCP顺序号这样更高级的连接属性,来验证相关的信息传输确实与基本的第三层参数匹配,是合法且没有欺诈的。
就状态检测型防火墙与应用层网关相比较而言,由于状态检测引擎了解应用层的情况,因此状态检测型防火墙所具有的安全保护水平与应用层网关基本相同,且状态检测型防火墙更加灵活,比应用层网关具有更好的扩展能力。因为它可以在应用程序一级保证通信的完整性,而不需要代表客户机/服务器在连接的两端对所有连接进行代理处理。所以说,利用状态检测技术设计的防火墙既提供了分组过滤防火墙的处理速度和灵活性,又兼具应用层网关理解应用程序状态的能力与高度的安全性。
深度包检测技术综述
通常,深度包检测技术深入检查通过防火墙的每个数据包及其应用载荷。虽然只检测包头部分是一种更加经济的方式,但是很多恶意行为可能隐藏在数据载荷中,通过防御边界在安全体系内部产生严重的危害。因为数据载荷中可能充斥着垃圾邮件、广告视频以及企业所不欣赏的P2P传输,而各种电子商务程序的HTML和XML格式数据中也可能夹带着后门和木马程序在网络节点之间交换。所以,在应用形式及其格式以爆炸速度增长的今天,仅仅依照数据包的第三层信息决定其是否准入,实在无法满足安全的要求。
深度包检测引擎以基于指纹匹配、启发式技术、异常检测以及统计学分析等技术的规则集,决定如何处理数据包。举例来说,检测引擎将数据包载荷中的数据与预先定义的攻击指纹进行对比,以判定数据传输中是否含有恶意攻击行为,同时引擎利用已有的统计学数据执行模式匹配,辅助这种判断的执行。利用深度包检测技术可以更有效的辨识和防护缓冲区溢出攻击、拒绝服务攻击、各种欺骗性技术以及类似尼姆达这样的蠕虫病毒。从本质上来讲,深度包检测将入侵检测(IDS)功能融入防火墙当中,从而使我们有条件创建一种一体化的安全设备,如图3所示。
近来,可编程ASIC技术的发展以及更有效的规则算法的出现,大大增强了深度包检测引擎的执行能力,让这项技术在性能方面的压力得到了缓解。而将防火墙与入侵检测系统的功能封装在单个设备中也可以使得管理方面的负担得到减轻,所以应用了深度包检测技术的产品受到了相当一部分管理员的好评。一些主要的防火墙供应商,包括CheckPoint、Cisco、NetScreen、Symantec,都在不断增加其防火墙产品中的应用数据分析功能。
反思
我们在为深度包检测技术感到鼓舞的同时,也不能忘记这个世界上并不存在完美的技术。现在应用深度包检测的产品通常都是一体化的安全设备,相比之下,传统防火墙和入侵检测产品的一个重要优势在于不会因为单个安全组件的瘫痪导致整个网络处于无保护状态。同时如果将越多的功能集中在单一设备中,我们就越把自己限制于单个产品供应商。
这些可能会使我们在很大程度上丧失灵活性。对于具有高度动态性特征的安全事务,这可不是个可以忽视的问题。另外,我们的安全阵线已经处于一种非常复杂的境地,在我们的安全边界,已经充斥着各种传统的防火墙和入侵检测设备以及各种Honeypot产品,深度包检测技术的融合能够真正降低这种复杂性还是更进一步恶化现状,还需要我们认真面对。
最后,尽管目前深度包检测技术的性能获得了可观的提升,但是在同等硬件条件下,检测内容多的任务必定要比检测内容少的任务耗费时间,所以相对于只检测包头的传统检测技术,深入包检测技术的应用应该更有目的性,而不应该被当作一种“万灵药”。