浅析防火墙深度检测技术在企业安全防护中的应用

      防火墙在抵制企业网络外部攻击、保障企业内部网络安全性与稳定运行起着不可磨灭的作用。但是,由于隐藏在应用层中的攻击方式越来越多,这就给企业防火墙提出了一个新的挑战,要能够检测出隐藏在应用层数据流中的攻击。如在邮件中包含病毒附件与非法代码,就是针对应用层的攻击。

  为了应对这种攻击,防火墙提出了一个种深度检测的技术。简单的说,就是通过各种手段实现对应用层攻击的过滤。那么,防火墙的深度检测技术到底是如何起作用的;我们在选购带有深度检测技术的防火墙又该注意一点什么呢?笔者在此总结了几点,希望能够对大家有所帮助。

  一、能否实现应用层加密、解密?

  对应用层数据进行加密,已经被广泛的应用于各种场合,以提高数据的安全性。如在邮箱系统中,就采用了SSL的加密机制。用户可以选择是否要对邮件的内容进行加密。若用户选择SSL加密的话,则在邮件发送的时候,邮箱系统会自动对整封邮件在应用层面上进行加密。

  为此,这就对深度检测防火墙提出了新的挑战,防火墙必须要有对应用层数据进行加密、解密的能力。因为像一些病毒邮件,其往往隐藏在邮件的附件中,也就是隐藏在应用层的数据中。而因为对应用层的数据采取了加密处理,所以,一般防火墙不能够辨别应用层数据中是否存在着病毒文件。只有防火墙能够对应用层数据进行解密、加密的能力,才能够判断数据包中是否含有应用层的攻击信息。所以,如果防火墙的深度检测功能不能够对企业中的关键应用,如邮件系统,提供深度检测安全性的话(即对应用层数据进行解密后的检测),则整个深度检测就会失去其存在的意义。换句话说,深度检测只能够检测未经过加密处理的应用层数据,其效果就会大大的打折扣。

  在企业的关键应用中,一般邮件系统中会实现应用层的数据加密。除了这个应用外,企业可能在VPN、FTP服务器、OA服务器中也实现了类似SSL的加密机制。根据笔者的了解,只要能够在互联网上进行访问的信息化应用,一般都会在应用层上对数据加密,以提高数据的安全性。通过对应用层数据加密,可以有效的防止攻击者通过网络侦听的手段窃取公司的机密数据。

  所以,无论是在防火墙配置,还是在选购的过程中,企业一定要关注防火墙是否具备对应用层数据的加密、解密能力。然后根据企业自身的关键应用,来判断防火墙是否需要这方面的功能。若企业现在或者将来的网络应用中,要利用SSL等技术对应用层数据进行加密的话,则最好让防火墙的深度检测技术实现应用层的加密解密功能。否则其效果就会打对折。

  二、能否有效解决应用层字符串匹配问题?

  在针对应用层的攻击中,很多是通过字符串的匹配不当来实现的。如典型的欺骗IDS攻击,就是通过这个字符串不匹配而完成的。

  防火墙有时候为了了解某种请求的安全策略是否被启用,防火墙通常会根据请求的信息与自身的安全策略来进行匹配。一旦条件匹配,防火墙就采用对应的安全策略。非法攻击者会利用各种手段,对用户的请求信息进行伪装,企图让字符串不匹配,以达到越过安全设备的目的。

  可能上面这段话有点绕口。其实,我们可以简单一点来理解。当客户端想通过防火墙的时候,客户端的数据会向防火墙发送一个请求。在这个请求信息中,会包含是否需要采用某种安全策略的信息,而这些信息都是通过一些特定的字符串来表示。当防火墙收到请求信息时,就会把这些字符串跟自身的进行对比。若符合,则采取某种安全策略,如加密等;若不符合,则不会采用安全策略,而以普通的方式转发。

  如此,攻击者只要对请求者的请求信息进行随意的更改,就可能导致请求信息字符串与防火墙中的字符串不匹配,从而绕过安全设备,进行一些非法的勾当。为了解决这个字符串匹配问题,深度检测技术设计了一种"正常化技术"。通过这种技术,能够让深度检测识别隐藏在URL编码、Unicode数据中的应用层攻击行为,以提高应用层数据的安全性。

  所以,深度检测技术不仅要求防火墙能够对应用层的数据进行加密、解密;而且还要求其对应用层数据的字符串匹配问题提出有效的解决方案。只有如此,才能够切实的实现深度检测的目的。

  三、能否判断协议的一致性?   众所周知,数据要在网络上传输,都必须遵守一定的规范。就好像汽车在马路上行驶必须遵守交通法规,否则会乱套。在网络上,数据的交通法规就是各种应用层协议。如HTTP、SMTP、FTP协议等等。这些协议都有全球统一的规范。如果员工发送一封邮件,则应用层的数据必须符合SMTP协议的规范。

  但是,很多攻击者就利用这些规范来对企业网络进行攻击。如在邮件中,会插入FTP协议的内容。当用户查看邮件内容的时候,在不知情的情况下,系统自动从FTP服务器上下载木马、病毒等非法软件,实现应用层的攻击。

  所以,深度检测技术既然能够检测应用层的数据,则我们就希望他好事做到底,能够进一步判断协议的一致性。也就是说,其应用层中的数据所采用的协议跟其所声明的协议类型是否一致。如果不一致的话,则防火墙就需要过滤这个数据包,并向管理员提出警告。如果一致的话,就顺利转发。笔者认为,深度检测防火墙必须确认应用层数据流是否与这些协议定义一样,以防止隐藏在其中的攻击。这主要是通过对协议报文的不同字段进行解密而实现。当协议中的字段被识别出来后,防火墙采用这个协议定义的应用规则,来检查其合法性。

  现在的防火墙基本上能够辨别某种数据类型所采用的协议;他们可以通过各种协议来采取控制措施。如只允许外部网络的特定主机访问企业内部的FTP服务器。这主要就是过滤FTP协议的数据流量来实现。但是,这并不表明其可以判断应用层的数据流是否与这些协议相一致。这里还有一个判断比较的过程。

  一般来说,企业若在内部部署了FTP服务器、邮箱服务器等关键应用的时候,最好能够让深度检测的防火墙正确判断协议的一致性。因为这些应用,最容易遭受类似的攻击。

  总之,深度检测的目的是希望能够对第四层到第七层的数据流进行检测与控制,来提高防火墙的应用价值。由于深度检测涉及到了比较上层的数据,所以,其技术是随着应用层技术的发展而不断发展的。这也就意味着防火墙的深度检测技术是否成熟没有统一的标准。

  笔者的建议是,企业若在内部部署了一些关键应用,而这些应用又对互联网是开放的话,则防火墙的深度检测时必需的。企业的安全管理人员,应该要确保自己所部署的防火墙能够满足这些关键应用的需求,特别是应用层加密解密数据的需求。否则的话,就可能大大降低防火墙的效用。