使用防火墙封阻应用攻击的八项技术
来源:中国电子政务网 更新时间:2012-04-13
                 你已经决心下大力气搞好应用安全吗?毕竟,例如金融交易、信用卡号码、机密资料、用户档案等信息,对于企业来说太重要了。不过这些应用实在太庞大、太复杂了,最困难的就是,这些应用在通过网络防火墙上的端口80(主要用于HTTP)和端口443(用于SSL)长驱直入的攻击面前暴露无遗。这时防火墙可以派上用场,应用防火墙发现及封阻应用攻击所采用的八项技术如下:深度数据包处理 

  深度数据包处理有时被称为深度数据包检测或者语义检测,它就是把多个数据包关联到一个数据流当中,在寻找攻击异常行为的同时,保持整个数据流的状态。深度数据包处理要求以极高的速度分析、检测及重新组装应用流量,以避免给应用带来时延。下面每一种技术代表深度数据包处理的不同级别。 

  TCP/IP终止 

  应用层攻击涉及多种数据包,并且常常涉及多种请求,即不同的数据流。流量分析系统要发挥功效,就必须在用户与应用保持互动的整个会话期间,能够检测数据包和请求,以寻找攻击行为。至少,这需要能够终止传输层协议,并且在整个数据流而不是仅仅在单个数据包中寻找恶意模式。 

  SSL终止 

  如今,几乎所有的安全应用都使用HTTPS确保通信的保密性。然而,SSL数据流采用了端到端加密,因而对被动探测器如入侵检测系统(IDS)产品来说是不透明的。为了阻止恶意流量,应用防火墙必须终止SSL,对数据流进行解码,以便检查明文格式的流量。这是保护应用流量的最起码要求。如果你的安全策略不允许敏感信息在未加密的前提下通过网络传输,你就需要在流量发送到Web服务器之前重新进行加密的解决方案。 

  URL过滤 

  一旦应用流量呈明文格式,就必须检测HTTP请求的URL部分,寻找恶意攻击的迹象,譬如可疑的统一代码编码(unicode encoding)。对URL过滤采用基于特征的方案,仅仅寻找匹配定期更新的特征、过滤掉与已知攻击如红色代码和尼姆达有关的URL,这是远远不够的。这就需要一种方案不仅能检查RUL,还能检查请求的其余部分。其实,如果把应用响应考虑进来,可以大大提高检测攻击的准确性。虽然URL过滤是一项重要的操作,可以阻止通常的脚本少年类型的攻击,但无力抵御大部分的应用层漏洞。 

  请求分析 

  全面的请求分析技术比单单采用URL过滤来得有效,可以防止Web服务器层的跨站脚本执行(cross-site scripting)漏洞和其它漏洞。全面的请求分析使URL过滤更进了一步:可以确保请求符合要求、遵守标准的HTTP规范,同时确保单个的请求部分在合理的大小限制范围之内。这项技术对防止缓冲器溢出攻击非常有效。然而,请求分析仍是一项无状态技术。它只能检测当前请求。正如我们所知道的那样,记住以前的行为能够获得极有意义的分析,同时获得更深层的保护。 

  用户会话跟踪 

  更先进的下一个技术就是用户会话跟踪。这是应用流量状态检测技术的最基本部分:跟踪用户会话,把单个用户的行为关联起来。这项功能通常借助于通过URL重写(URL rewriting)来使用会话信息块加以实现。只要跟踪单个用户的请求,就能够对信息块实行极其严格的检查。这样就能有效防御会话劫持(session-hijacking)及信息块中毒(cookie-poisoning)类型的漏洞。有效的会话跟踪不仅能够跟踪应用防火墙创建的信息块,还能对应用生成的信息块进行数字签名,以保护这些信息块不被人篡改。这需要能够跟踪每个请求的响应,并从中提取信息块信息。 

  响应模式匹配 

  响应模式匹配为应用提供了更全面的保护:它不仅检查提交至Web服务器的请求,还检查Web服务器生成的响应。它能极其有效地防止网站受毁损,或者更确切地说,防止已毁损网站被浏览。对响应里面的模式进行匹配相当于在请求端对URL进行过滤。响应模式匹配分三个级别。防毁损工作由应用防火墙来进行,它对站点上的静态内容进行数字签名。如果发现内容离开Web服务器后出现了改动,防火墙就会用原始内容取代已毁损页面。至于对付敏感信息泄露方面,应用防火墙会监控响应,寻找可能表明服务器有问题的模式,譬如一长串Java异常符。如果发现这类模式,防火墙就会把它们从响应当中剔除,或者干脆封阻响应。

采用“停走”字(‘stop and go’word)的方案会寻找必须出现或不得出现在应用生成的响应里面的预定义通用模式。譬如说,可以要求应用提供的每个页面都要有版权声明。 

  行为建模 

  行为建模有时称为积极的安全模型或“白名单”(white list)安全,它是唯一能够防御最棘手的应用漏洞——零时间漏洞的保护机制。零时间漏洞是指未写入文档或“还不知道”的攻击。对付这类攻击的唯一机制就是只允许已知是良好行为的行为,其它行为一律禁止。这项技术要求对应用行为进行建模,这反过来就要求全面分析提交至应用的每个请求的每次响应,目的在于识别页面上的行为元素,譬如表单域、按钮和超文本链接。这种级别的分析可以发现恶意表单域及隐藏表单域操纵类型的漏洞,同时对允许用户访问的URL实行极其严格的监控。行为建模是唯一能够有效对付全部16种应用漏洞的技术。行为建模是一种很好的概念,但其功效往往受到自身严格性的限制。 

  某些情况譬如大量使用JavaScript或者应用故意偏离行为模型都会导致行为建模犯错,从而引发误报,拒绝合理用户访问应用。行为建模要发挥作用,就需要一定程度的人为干预,以提高安全模型的准确性。行为自动预测又叫规则自动生成或应用学习,严格说来不是流量检测技术,而是一种元检测(meta-inspection)技术,它能够分析流量、建立行为模型,并且借助于各种关联技术生成应用于行为模型的一套规则,以提高精确度。行为建模的优点在于短时间学习应用之后能够自动配置。保护端口80是安全人员面临的最重大也是最重要的挑战之一。所幸的是,如今已出现了解决这一问题的创新方案,而且在不断完善。如果在分层安全基础设施里面集成了能够封阻16类应用漏洞的应用防火墙,你就可以解决应用安全这一难题。