行业资讯

立即注册 咨询客服

当前位置:首页 > 行业资讯> 新的缓存中毒攻击允许攻击者攻击受CDN保护的站点

新的缓存中毒攻击允许攻击者攻击受CDN保护的站点

发布时间:2019年10月28日 10:31:23    来源: A5互联

研究人员发现了一种针对Web缓存系统的新的缓存中毒攻击,攻击者可以利用该攻击迫使目标网站向其大多数访问者传递错误页面,而不是合法内容或资源。

该问题可能会影响在反向代理缓存系统(如Varnish)和一些广泛使用的内容分发网络(CDN)服务(包括Amazon CloudFront,Cloudflare,Fastly,Akamai和CDN77)后面运行的网站。

简而言之,内容分发网络(CDN)是服务器的地理分布组,它们位于网站的原始服务器与其访问者之间,以优化网站的性能。

CDN服务仅存储/缓存来自原始服务器的静态文件(包括HTML页面,JavaScript文件,样式表,图像和视频),并将其更快地传递给访问者,而无需一次又一次地返回原始服务器。

然后,每个地理分布的CDN服务器(称为边缘节点)也共享缓存文件的精确副本,并根据其位置将其提供给访问者。

通常,在定义的时间之后或手动清除后,CDN服务器会通过从原始服务器检索每个网页的新更新副本来刷新缓存,并将其存储以备将来使用。

CPDoS攻击如何针对CDN?

该攻击 被称为CPDoS,是Cache Poisoned Denial of Service的简称,它的存在方式是将中间CDN服务器错误地配置为缓存具有原始服务器返回的错误响应的Web资源或页面。

据三位德国学者Hoai Viet Nguyen,Luigi Lo Iacono和Hannes Federrath所说,CPDoS攻击仅通过发送包含格式错误的标头的单个HTTP请求就威胁到网站Web资源的可用性。

“当攻击者可以针对可缓存资源生成HTTP请求时,就会出现问题,其中该请求包含不正确的字段,缓存系统会忽略这些字段,但在原始服务器处理时会引发错误。”

CPDoS攻击的工作方式如下:

远程攻击者通过发送包含格式错误的标头的HTTP请求来请求目标网站的网页。

如果中间CDN服务器没有所请求资源的副本,它将把请求转发到原始Web服务器,原始Web服务器将由于标头格式错误而崩溃。

结果,原始服务器将返回一个错误页面,该页面最终将由缓存服务器而不是请求的资源存储。

现在,每当合法访问者尝试获取目标资源时,将为他们提供缓存的错误页面,而不是原始内容。

CDN服务器还将相同的错误页面传播到CDN网络的其他边缘节点,从而使受害者网站的目标资源不可用。

值得注意的是,一个简单的请求就足以用错误页面替换缓存中的真实内容。这意味着该请求仍低于Web应用防火墙(WAF)和DDoS保护手段的检测阈值,当他们扫描大量不规则的网络流量时。

此外,CPDoS可以被利用来阻止例如通过缓存分发的补丁或固件更新,从而防止修复设备和软件中的漏洞。攻击者还可以在重要任务关键的网站(如在线银行或官方网站)上禁用重要的安全警报或消息。政府网站。

发起CPDoS攻击的3种方法

为了对CDN进行这种缓存中毒攻击,格式错误的HTTP请求可以分为三种类型:

1、HTTP Header Oversize(HHO)(HTTP标头超大(HHO)) -包含超大标头的HTTP请求,该标头在Web应用程序使用比原服务器接受更大的标头大小限制的缓存的情况下起作用。

2、HTTP元字符(HMC) -此攻击未发送过大的标头,而是尝试绕过带有包含有害元字符的请求标头的高速缓存,例如换行符/回车符(\ n),换行符(\ r)或铃(\ a)。

3、HTTP方法覆盖(HMO) -使用HTTP覆盖标头绕过禁止DELETE请求的安全策略。