新的缓存中毒攻击使攻击者可以攻击受CDN保护的站点
发布时间:2022-03-14 09:37:22 769
相关标签:

该问题可能会影响运行Varnish等反向代理缓存系统的网站,以及一些广泛使用的内容分发网络(CDN)服务,包括Amazon CloudFront、Cloudflare、Fastly、Akamai和CDN77。
简言之,内容分发网络(CDN)是一个地理上分布的服务器组,位于网站的原始服务器和访问者之间,以优化网站的性能。
CDN服务只存储/缓存静态文件—;包括HTML页面、JavaScript文件、样式表、图像和视频—;从源服务器发送,并更快地将它们发送给访问者,而无需一次又一次地返回到源服务器。
然后,每个地理分布的CDN服务器(称为边缘节点)也会共享缓存文件的精确副本,并根据其位置将其提供给访问者。
通常,在定义的时间后或手动清除时,CDN服务器会通过从源服务器检索每个网页的新更新副本来刷新缓存,并将其存储以备将来请求。
CPDoS攻击如何针对CDN?

配音CPDoS,是“缓存中毒拒绝服务”的缩写,该攻击存在于中间CDN服务器被错误配置为缓存源服务器返回错误响应的web资源或页面的方式。
据三位德国学者Hoai Viet阮、Luigi Lo Iacono和Hannes Federrath称,CPDoS攻击仅通过发送一个包含错误标题的HTTP请求,就威胁到了网站web资源的可用性。
“当攻击者可以为可缓存资源生成HTTP请求时,就会出现问题,该请求包含不准确的字段,缓存系统会忽略这些字段,但在原始服务器处理时会引发错误。”
以下是CPDoS攻击的工作原理:
- 远程攻击者通过发送包含错误标题的HTTP请求来请求目标网站的网页。
- 如果中间CDN服务器没有所请求资源的副本,它会将请求转发到源web服务器,该服务器将由于错误的头而崩溃。
- 因此,源服务器随后返回一个错误页面,该页面最终由缓存服务器存储,而不是由请求的资源存储。
- 现在,每当合法访问者试图获取目标资源时,他们都会收到缓存的错误页面,而不是原始内容。
- CDN服务器也会将相同的错误页面传播到CDN网络的其他边缘节点,从而使受害者网站的目标资源不可用。
“值得注意的是,一个简单的请求就足以用错误页面替换缓存中的真实内容。这意味着这样的请求仍然低于web应用程序防火墙(WAF)和DDoS保护手段的检测阈值,尤其是在它们扫描大量不规则网络流量时。”
“此外,可以利用CPDoS阻止通过缓存分发的补丁或固件更新,防止设备和软件中的漏洞被修复。攻击者还可以禁用关键任务网站(如网上银行或官方政府网站)上的重要安全警报或消息。”
3种发起CPDoS攻击的方法
要对CDN执行这种缓存中毒攻击,格式错误的HTTP请求可以有三种类型:
- HTTP头超大(HHO)— 一个HTTP请求,其中包含一个超大的头,在web应用程序使用一个缓存的情况下工作,该缓存接受的头大小限制大于源服务器。
- HTTP元字符(HMC)— 这种攻击没有发送过大的头,而是试图绕过缓存,请求头包含有害的元字符,例如换行符/回车符(\n)、换行符(\r)或bell(\a)。
- HTTP方法覆盖(HMO)— 使用HTTP覆盖头绕过禁止删除请求的安全策略。
CDN服务易受CPDoS攻击
研究人员对web缓存系统和HTTP实现的不同组合进行了三次攻击,发现亚马逊的CloudFront CDN最容易受到CPDoS攻击。
“我们分析了15个web缓存解决方案的错误页面的缓存行为,并将其与HTTP规范进行了对比。我们确定了一个代理缓存产品和五个易受CPDO攻击的CDN服务。”
测试的完整结果如下:

需要注意的是,运行在某些列出的CDN服务后面的站点易受攻击,因为它们自身的配置错误,无法阻止缓存服务器存储错误页面,并且由于各自的CDN服务存在任何缺陷。
“根据我们的实验,CDN77是RFC兼容的,不会缓存根据规范可能无法缓存的错误页面。我们同意CDN77不会导致我们发现的CPDoS漏洞,”其中一名研究人员在Twitter上确认了黑客新闻。
“如果源服务器配置错误或提供了引发可缓存错误页面的方法,使用CDN77的网站可能容易受到CPDO的攻击。这超出了缓存服务的控制范围,由服务所有者负责。”
该团队于2019年2月19日向受影响的HTTP实现供应商和缓存提供商报告了他们的发现。Amazon Web Services(AWS)团队确认了CloudFront上的漏洞,并通过禁止缓存默认状态代码为400的错误页面来解决该问题。
微软也承认了报告的问题,并在2019年6月的月度安全更新中发布了一个缓解该漏洞的更新,名为CVE-2019-0941。
Play Framework还确认了报告的问题,并通过限制Play Framework版本1.5.3和1.4.6中X-HTTP-Method-Override头的影响,对其产品进行了CPDoS攻击修补。
其他受影响的供应商,包括Flask,被联系了多次,但研究人员没有收到他们的任何回应。
有关这种新的web缓存中毒攻击及其变体的更多详细信息,您只需阅读题为“您的缓存已损坏:缓存中毒的拒绝服务攻击”的研究论文[PDF]
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报