全面的请求分析技术比单单采用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类应用漏洞的应用防火墙,你就可以解决应用安全这一难题。
……