当前位置: 首页 > 科技观察

研究人员展示了4种新的HTTP请求走私攻击变体

时间:2023-03-19 15:32:54 科技观察

一项新研究确定了4种新的HTTP请求走私攻击变体,它们可以针对各种商业Web服务器和HTTP代理服务器。SafeBreach的安全研究副总裁AmitKlein在今天的黑帽安全会议上介绍了调查结果,他说这些攻击凸显了Web服务器和HTTP代理服务器容易受到HTTP请求走私攻击,这是第一个有记录的发现它有15年的历史.什么是HTTP请求走私?HTTP请求走私(或HTTP异步)是一种用于干扰网站处理从一个或多个用户接收到的一系列HTTP请求的方式的技术。当前端服务器(负载平衡器或代理)和后端服务器以不同方式处理HTTP请求的边界时,通常会出现与HTTP请求走私相关的漏洞,从而允许不良行为者在下一个合法用户请求询问时发送歧义。可以利用不同步的请求来劫持凭据,向用户注入响应;甚至从受害者请求中窃取数据,将信息泄露给攻击者控制的服务器。该技术于2005年由Watchfire研究人员团队首次展示,其中包括Klein、ChaimLinhart、RonenHeled和SteveOrrin。但在过去十几年里,攻击面也扩大了,比如:将请求拼接成其他请求,获取内部API的最大权限访问;污染网络缓存;破坏流行应用程序的登录页面。什么是新的?Klein披露的新变种涉及代理服务器的各种组合,包括Web服务器模式下的Aprelium的Abyss、微软IIS、Apache和Tomcat,以及HTTP代理模式下的Nginx、Squid、HAProxy、Caddy和Traefik。下面列出了所有四个新变体,最后一个变体包括一个已被研究人员在他们的实验中成功利用的旧变体。变体1:“HeaderSP/CRSPAM:...”变体2-“Wait”变体3-HTTP/1.2绕过类似mod_security的防御变体4-一个简单的解决方案变体5-“CRHeader”例如,当处理一个包含两个Content-Length头字段的HTTP请求,发现Abyss接受第二个头是有效的,而squid使用第一个Content-Length头,导致两个Server对请求的解释不同,实现了请求走私。如果Abyss收到一个正文比指定的Content-Length值短的HTTP请求,它将等待30秒来完成请求,但不会忽略请求正文的其余部分。Klein发现这也导致了Squid和Abyss之间的差异,Abyss将HTTP请求的一部分解释为第二个请求。第三种攻击形式使用HTTP/1.2来逃避OWASPModSecurity核心规则集(CRS)中定义的WAF防御,该规则集用于防止HTTP请求走私攻击生成触发该行为的恶意负载。最后,Klein发现使用“Content-Type:text/plain”头字段足以绕过CRS中指定的级别检查并创建HTTP请求走私漏洞。可能的防御措施是什么?在向Aprelium、Squid和OWASPCRS披露调查结果后,该问题已在AbyssX1v2.14、Squid版本4.12和5.0.3以及CRSv3.3.0中得到修复。呼吁对来自代理服务器的出站HTTP请求进行监管,Klein强调需要一种能够处理HTTP请求走私攻击的开源、硬核Web应用程序防火墙解决方案。“ModSecurity(连同CRS)确实是一个开源项目,但就通用性而言,ModSecurity有几个缺点,”Klein指出。“它不提供针对HTTP请求走私的全面保护,并且仅适用于Apache、IIS和nginx。为此,Klein发布了一个基于C++的库,通过严格遵守HTTP标头格式和请求行格式,确保所有传入的HTTP请求完全兼容且不含糊。它可以从GitHub访问。