一位研究人员详细介绍了一种名为HTTP请求走私的攻击的几个新变体,并提出了一些针对此类攻击的新防御措施。
HTTP请求走私,也称为HTTP去同步,自2005年就已为人所知,但SafeBReach安全研究副总裁Amit Klein认为,该方法尚未得到充分分析,这就是为什么他决定进行一个专注于这种攻击技术的研究项目。
HTTP请求走私利用HTTP设备处理请求流的方式,特别是如何将流划分为单独的请求。攻击者可以利用服务器解释流的方式和HTTP设备查看流的方式之间的差异,滥用此漏洞通过HTTP设备(即代理)将恶意HTTP请求“走私”到服务器。
具体地说,可以通过Internet远程发起的HTTP请求走私攻击可使黑客绕过安全控制,获得对敏感数据的访问权限,并危及目标应用程序的其他用户的安全。
虽然这种攻击方法已经被知道了十多年,但它仍然没有被完全缓解。
Klein已经设法识别了五个新的攻击变体,并发布了概念验证(PoC)漏洞。他使用Aprelium的Abyss X1 Web服务器和Squid缓存和转发HTTP Web代理演示了他的发现。
Abyss和Squid的开发人员已经收到了Klein在他的研究期间利用的漏洞的通知,他们已经发布了补丁和缓解措施。
其中一个攻击绕过了OWASP ModSecurity核心规则集(CRS),后者为ModSecurity或其他Web应用程序防火墙提供通用攻击检测规则。在接到通知后,OWASP也发布了修复程序。
Klein在黑帽会议上发表关于HTTP请求走私的演讲前告诉SecurityWeek,攻击者需要找到具有“匹配”漏洞的Web服务器和代理服务器的组合,才能发动攻击,这使得很难确定到底有多少服务器受到影响。但是,攻击者可以简单地尝试发起攻击,以确定系统是否易受攻击。克莱因说:“这种攻击不需要资源,所以简单地尝试没有什么坏处。”
在他的研究中,他演示了一种Web缓存中毒攻击,在该攻击中,攻击者强制代理服务器缓存一个URL的内容,以满足另一个URL的请求。
他说,可以通过代理服务器对多个不同的Web服务器或多个代理服务器发起集体攻击。
他解释说:“我不认为通过单个代理服务器对单个Web服务器集体发起攻击是个好主意,因为可能会有干扰(由于代理保留了少量到Web服务器的连接池)。”
虽然还没有任何关于HTTP请求走私在野外使用的报告,但克莱因指出,攻击可能已经发起,但没有被目标检测到。
“攻击的实际影响(至少对于Web缓存中毒)发生在缓存代理服务器上,该服务器可能不在管理Web服务器的组织内部。因此,我怀疑攻击可能不会被注意到(当缓存页面过期或从缓存中清除时,工件会被覆盖),“他告诉”安全周刊“(SecurityWeek)。
这位研究人员提出了一些新的防御HTTP请求走私攻击的方法,在他的测试中,他发现了一些有效负载情况下的一些有趣的行为,这可能为这一领域的进一步研究铺平道路。