学习啦>学习电脑>电脑安全>防火墙知识>

防火墙知识入门(2)

晓斌分享
三. 防火墙技术

  传统意义上的防火墙技术分为三大类,“包过滤”(Packet Filtering)、“应用代理”(Application Proxy)和“状态监视”(Stateful Inspection),无论一个防火墙的实现过程多么复杂,归根结底都是在这三种技术的基础上进行功能扩展的。

  1.包过滤技术

  包过滤是最早使用的一种防火墙技术,它的第一代模型是“静态包过滤”(Static Packet Filtering),使用包过滤技术的防火墙通常工作在OSI模型中的网络层(Network Layer)上,后来发展更新的“动态包过滤”(Dynamic Packet Filtering)增加了传输层(Transport Layer),简而言之,包过滤技术工作的地方就是各种基于TCP/IP协议的数据报文进出的通道,它把这两层作为数据监控的对象,对每个数据包的头部、协议、地址、端口、类型等信息进行分析,并与预先设定好的防火墙过滤规则(Filtering Rule)进行核对,一旦发现某个包的某个或多个部分与过滤规则匹配并且条件为“阻止”的时候,这个包就会被丢弃。适当的设置过滤规则可以让防火墙工作得更安全有效,但是这种技术只能根据预设的过滤规则进行判断,一旦出现一个没有在设计人员意料之中的有害数据包请求,整个防火墙的保护就相当于摆设了。也许你会想,让用户自行添加不行吗?但是别忘了,我们要为是普通计算机用户考虑,并不是所有人都了解网络协议的,如果防火墙工具出现了过滤遗漏问题,他们只能等着被入侵了。一些公司采用定期从网络升级过滤规则的方法,这个创意固然可以方便一部分家庭用户,但是对相对比较专业的用户而言,却不见得就是好事,因为他们可能会有根据自己的机器环境设定和改动的规则,如果这个规则刚好和升级到的规则发生冲突,用户就该郁闷了,而且如果两条规则冲突了,防火墙该听谁的,会不会当场“死给你看”(崩溃)?也许就因为考虑到这些因素,至今我没见过有多少个产品会提供过滤规则更新功能的,这并不能和杀毒软件的病毒特征库升级原理相提并论。为了解决这种鱼与熊掌的问题,人们对包过滤技术进行了改进,这种改进后的技术称为“动态包过滤”(市场上存在一种“基于状态的包过滤防火墙”技术,即Stateful-based Packet Filtering,他们其实是同一类型),与它的前辈相比,动态包过滤功能在保持着原有静态包过滤技术和过滤规则的基础上,会对已经成功与计算机连接的报文传输进行跟踪,并且判断该连接发送的数据包是否会对系统构成威胁,一旦触发其判断机制,防火墙就会自动产生新的临时过滤规则或者把已经存在的过滤规则进行修改,从而阻止该有害数据的继续传输,但是由于动态包过滤需要消耗额外的资源和时间来提取数据包内容进行判断处理,所以与静态包过滤相比,它会降低运行效率,但是静态包过滤已经几乎退出市场了,我们能选择的,大部分也只有动态包过滤防火墙了。

  基于包过滤技术的防火墙,其缺点是很显著的:它得以进行正常工作的一切依据都在于过滤规则的实施,但是偏又不能满足建立精细规则的要求(规则数量和防火墙性能成反比),而且它只能工作于网络层和传输层,并不能判断高级协议里的数据是否有害,但是由于它廉价,容易实现,所以它依然服役在各种领域,在技术人员频繁的设置下为我们工作着。

  2.应用代理技术

  由于包过滤技术无法提供完善的数据保护措施,而且一些特殊的报文攻击仅仅使用过滤的方法并不能消除危害(如SYN攻击、ICMP洪水等),因此人们需要一种更全面的防火墙保护技术,在这样的需求背景下,采用“应用代理”(Application Proxy)技术的防火墙诞生了。我们的读者还记得“代理”的概念吗?代理服务器作为一个为用户保密或者突破访问限制的数据转发通道,在网络上应用广泛。我们都知道,一个完整的代理设备包含一个服务端和客户端,服务端接收来自用户的请求,调用自身的客户端模拟一个基于用户请求的连接到目标服务器,再把目标服务器返回的数据转发给用户,完成一次代理工作过程。那么,如果在一台代理设备的服务端和客户端之间连接一个过滤措施呢?这样的思想便造就了“应用代理”防火墙,这种防火墙实际上就是一台小型的带有数据检测过滤功能的透明代理服务器(Transparent Proxy),但是它并不是单纯的在一个代理设备中嵌入包过滤技术,而是一种被称为“应用协议分析”(Application Protocol Analysis)的新技术。

  “应用协议分析”技术工作在OSI模型的最高层——应用层上,在这一层里能接触到的所有数据都是最终形式,也就是说,防火墙“看到”的数据和我们看到的是一样的,而不是一个个带着地址端口协议等原始内容的数据包,因而它可以实现更高级的数据检测过程。整个代理防火墙把自身映射为一条透明线路,在用户方面和外界线路看来,它们之间的连接并没有任何阻碍,但是这个连接的数据收发实际上是经过了代理防火墙转向的,当外界数据进入代理防火墙的客户端时,“应用协议分析”模块便根据应用层协议处理这个数据,通过预置的处理规则(没错,又是规则,防火墙离不开规则)查询这个数据是否带有危害,由于这一层面对的已经不再是组合有限的报文协议,甚至可以识别类似于“GET /sql.asp?id=1 and 1”的数据内容,所以防火墙不仅能根据数据层提供的信息判断数据,更能像管理员分析服务器日志那样“看”内容辨危害。而且由于工作在应用层,防火墙还可以实现双向限制,在过滤外部网络有害数据的同时也监控着内部网络的信息,管理员可以配置防火墙实现一个身份验证和连接时限的功能,进一步防止内部网络信息泄漏的隐患。最后,由于代理防火墙采取是代理机制进行工作,内外部网络之间的通信都需先经过代理服务器审核,通过后再由代理服务器连接,根本没有给分隔在内外部网络两边的计算机直接会话的机会,可以避免入侵者使用“数据驱动”攻击方式(一种能通过包过滤技术防火墙规则的数据报文,但是当它进入计算机处理后,却变成能够修改系统设置和用户数据的恶意代码)渗透内部网络,可以说,“应用代理”是比包过滤技术更完善的防火墙技术。

  但是,似乎任何东西都不可能逃避“墨菲定律”的规则,代理型防火墙的结构特征偏偏正是它的最大缺点,由于它是基于代理技术的,通过防火墙的每个连接都必须建立在为之创建的代理程序进程上,而代理进程自身是要消耗一定时间的,更何况代理进程里还有一套复杂的协议分析机制在同时工作,于是数据在通过代理防火墙时就不可避免的发生数据迟滞现象,换个形象的说法,每个数据连接在经过代理防火墙时都会先被请进保安室喝杯茶搜搜身再继续赶路,而保安的工作速度并不能很快。代理防火墙是以牺牲速度为代价换取了比包过滤防火墙更高的安全性能,在网络吞吐量不是很大的情况下,也许用户不会察觉到什么,然而到了数据交换频繁的时刻,代理防火墙就成了整个网络的瓶颈,而且一旦防火墙的硬件配置支撑不住高强度的数据流量而发生罢工,整个网络可能就会因此瘫痪了。所以,代理防火墙的普及范围还远远不及包过滤型防火墙,而在软件防火墙方面更是几乎没见过类似产品了——单机并不具备代理技术所需的条件,所以就目前整个庞大的软件防火墙市场来说,代理防火墙很难有立足之地。

  3.状态监视技术

  这是继“包过滤”技术和“应用代理”技术后发展的防火墙技术,它是CheckPoint技术公司在基于“包过滤”原理的“动态包过滤”技术发展而来的,与之类似的有其他厂商联合发展的“深度包检测”(Deep Packet Inspection)技术。这种防火墙技术通过一种被称为“状态监视”的模块,在不影响网络安全正常工作的前提下采用抽取相关数据的方法对网络通信的各个层次实行监测,并根据各种过滤规则作出安全决策。

  “状态监视”(Stateful Inspection)技术在保留了对每个数据包的头部、协议、地址、端口、类型等信息进行分析的基础上,进一步发展了“会话过滤”(Session Filtering)功能,在每个连接建立时,防火墙会为这个连接构造一个会话状态,里面包含了这个连接数据包的所有信息,以后这个连接都基于这个状态信息进行,这种检测的高明之处是能对每个数据包的内容进行监视,一旦建立了一个会话状态,则此后的数据传输都要以此会话状态作为依据,例如一个连接的数据包源端口是8000,那么在以后的数据传输过程里防火墙都会审核这个包的源端口还是不是8000,否则这个数据包就被拦截,而且会话状态的保留是有时间限制的,在超时的范围内如果没有再进行数据传输,这个会话状态就会被丢弃。状态监视可以对包内容进行分析,从而摆脱了传统防火墙仅局限于几个包头部信息的检测弱点,而且这种防火墙不必开放过多端口,进一步杜绝了可能因为开放端口过多而带来的安全隐患。

  由于状态监视技术相当于结合了包过滤技术和应用代理技术,因此是最先进的,但是由于实现技术复杂,在实际应用中还不能做到真正的完全有效的数据安全检测,而且在一般的计算机硬件系统上很难设计出基于此技术的完善防御措施(市面上大部分软件防火墙使用的其实只是包过滤技术加上一点其他新特性而已)。

  四. 技术展望

  防火墙作为维护网络安全的关键设备,在目前采用的网络安全的防范体系中,占据着举足轻重的位置。伴随计算机技术的发展和网络应用的普及,越来越多的企业与个体都遭遇到不同程度的安全难题,因此市场对防火墙的设备需求和技术要求都在不断提升,而且越来越严峻的网络安全问题也要求防火墙技术有更快的提高,否则将会在面对新一轮入侵手法时束手无策。

  多功能、高安全性的防火墙可以让用户网络更加无忧,但前提是要确保网络的运行效率,因此在防火墙发展过程中,必须始终将高性能放在主要位置,目前各大厂商正在朝这个方向努力,而且丰富的产品功能也是用户选择防火墙的依据之一,一款完善的防火墙产品,应该包含有访问控制、网络地址转换、代理、认证、日志审计等基础功能,并拥有自己特色的安全相关技术,如规则简化方案等,明天的防火墙技术将会如何发展,让我们拭目以待。

  防火墙:功夫到七层

  在短短的几年里,防火墙的功能重心从网络层发展到了应用层。本文结合Microsoft ISA Server的发展,阐述了这种变迁的技术背景,以及未来的防火墙技术走向。

  应用层攻击挑战传统防火墙

  最近两年来,攻击者的兴趣明显从端口扫描和制造拒绝服务攻击(DoS Attack)转向了针对Web、E-mail甚至数据库等主流应用的攻击。传统的防火墙仅仅检查IP数据包的包头,而忽略了内容——如果用信件来做比喻,也就是只检查了信封而没有检查信纸。因此对这类应用层的攻击无能为力。可以说,仅仅靠第三层和第四层的IP地址和协议端口过滤的防火墙产品早已走到了尽头。

  战火烧向七层

  为了对抗应用层(OSI网络模型的第七层)的攻击,防火墙必须具备应用层的过滤能力,Microsoft ISA Server 2004等防火墙产品已经具备了这种能力。

  如果把计算机网络比做一座建筑,传统的包过滤防火墙就是在企业内部网络和Internet之间的一系列并列的门。每道门都有安检人员对到达的包裹(IP数据包)进行逐一检查,若没有发现数据包含有异常代码便开门放行。攻击者常用的伎俩就是通过端口扫描来检查哪些门是敞开不设防的,然后加以利用。晚些时候出现的具有状态检测δ艿姆阑鹎娇梢约觳槟男┦?莅?抢醋訧nternet对内部网络访问请求的应答。也就是说,安检人员能够鉴别那些不请自来的包裹。

  但应用层攻击就要复杂得多,因为攻击数据包在绝大多数情况下是合法的数据包,不同的只是内容具有攻击性,而且因为IP数据包是分段传输的,其内容的判别需要将所有相关的包重组后才能准确进行。一旦这种攻击数据包通过了防火墙,它们通常会开始有条不紊地利用目标系统的漏洞制造缓冲区溢出,获得系统的控制权,然后以此为平台开始寻找周围其他系统的漏洞或者其他的蠕虫留下的后门,进而展开攻击。

  防火墙的对策

  对此,Microsoft ISA Server 2004采取的应对措施是,针对每一类主流的应用, HTTP、SMTP、FTP和SQL Server数据库访问(基于RPC)都设置专门的过滤器,如果未来出现新的应用层威胁,还可以增加相应的过滤器。用户可以针对每一种过滤器进行应用相关的过滤设置,例如,可以通过限制任何HTTP访问请求的缓冲区不得超过3000个字节来防止一些蠕虫的攻击。在这种新的机制下,来自Internet的数据包被发送到各自的过滤器,过滤器会将数据包重组后进行内容扫描和判别。拿一封邮件来说,SMTP过滤器会等待相关的包到齐后,在转发之前重组邮件对其内容进行扫描,与已知类型的攻击进行比对,在确认这是正常流量后才允许通过。

  经过正确配置的现代防火墙可以阻挡绝大多数已知的病毒邮件和攻击代码。虽然阻挡未知的病毒和攻击要困难得多,但是经过合理的策略设置通常是有效的。正确设置策略的基础是企业用户对于自身业务需求的正确理解,例如,多数企业的用户通常是没有必要通过邮件来传递可执行文件和Visual Basic脚本代码的。用户可以通过阻断含有这类可执行附件的邮件来对付一些未知的病毒。一旦真的需要发送这类文件,也可以设置更有针对性的策略,比如只允许IT部门的用户发送含有可执行文件附件邮件,或者允许用户接收除含有名为“Kournikova.jpg.vbs”的脚本附件之外的所有邮件。

  安全与性能的矛盾

  用户早已习惯于把安全性和性能看成是对立的,就像在机场的安检入口,检查的步骤越多,等待安检的队伍也就越长。对于防火墙来说,性能和安全的确是一对永远的矛盾,但是应用层过滤的功能对防火墙性能的影响并没有多数用户想象得那么大,Microsoft ISA Server 2004标称每秒钟可处理超过1000个并发用户,同时保持每会话(session)27Mbps的吞吐量。事实上,有些厂商通过硬件(ASIC)实现应用层的过滤引擎,能够达到更加接近线速(可理解为以太网交换机的处理极限)的处理能力。

  新的挑战

  具有应用层过滤功能的防火墙可以更有效地阻挡当前多数病毒和攻击程序,但新的安全威胁的不断出现又对防火墙提出了新的挑战。攻击的来源正在变得更加复杂,而攻击的手段也愈加高明,最近垃圾邮件与攻击代码的结合就是一个典型的例证。这一方面需要防火墙设备对于应用层的内容有更好的认知和智能判别的能力,另一方面也需要防火墙更多地与其他的安全设备和应用有效配合,从而实现更加有力的防护。

  这就是防火墙了。

353132