CPDoS 攻击会毒害 CDN
CloudFront、Cloudflare、Fastly、Akamai及其他CDN服务提供商都受到新的CPDoS Web缓存中毒攻击的影响。
科隆工业大学(TH Koln)的两位学者本周披露了一种新型的Web攻击,这种攻击可以毒害内容分发网络(CDN),从而缓存并生成错误页面而非合法网站。
这种新攻击被称为CPDoS(缓存中毒的拒绝服务),它有三种变体,被认为在实际环境下切实可行(这与大多数其他Web缓存攻击不同)。
CPDoS攻击是如何实施的?
CPDoS攻击针对现代Web的两个组成部分:(1)Web服务器和(2)内容分发网络。
Web服务器存储原始网站及其内容,而CDN存储网站的缓存副本,该副本仅按特定的时间间隔来刷新。
尽管CDN扮演的角色很简单,却是现代互联网的重要组成部分,因为它们可以减轻Web服务器的负担。CDN可以为一些入站用户提供网站副本,直到CDN以新版本更新自己为止,而不是Web服务器一再计算相同的用户请求。
CDN被广泛使用。针对CDN系统的任何攻击都可能对网站的可用性造成严重破坏,因而对盈利能力造成严重破坏。
在这种情况下,CPDoS的工作方式具有如下特点:
攻击者连接到网站,直到他的请求是生成新CDN条目的请求。
攻击者的请求含有恶意、尺寸超大的HTTP头。
CDN允许该头传递到合法网站,以便可以对其进行处理,并为CDN生成要缓存的网页。
尺寸超大的HTTP头导致Web服务器崩溃。
服务器生成错误页面(“400 Bad Request”错误)。
错误页面缓存在CDN上
访问该网站的其他用户将获得错误页面,而不是实际网站。
缓存的错误会传播到CDN网络的其他节点,从而在合法网站造成虚假故障。
据研究团队声称,CPDoS攻击有三种变体,这取决于攻击者决定使用的HTTP头类型:
HTTP Header Oversize(HHO)
HTTP元字符(HMC)
HTTP方法重载(HMO)
我们不会讨论每种攻击的技术差异,因为这不在本文的讨论范围之内。想了解更多详细信息和演示,请访问该网站(https://cpdos.org/),或阅读研究人员的CPDoS白皮书(https://cpdos.org/paper/Your_Cache_Has_Fallen__Cache_Poisoned_Denial_of_Service_Attack__Preprint_.pdf)。
CPDOS攻击被认为切实可行
TH Koln团队在研究CPDoS攻击的实际可行性期间表示,他们设法对托管在多家CDN提供商的网络上的一个测试网站进行了广泛的缓存中毒攻击。
比如说,下图显示了攻击者(危险符号)对合法网站的CDN服务器(蓝色标记)发动攻击,然后将缓存的错误页面传播到其他CDN服务器(红色标记),毒害CDN提供商网络的大部分。
诸如上述攻击之类的攻击会导致合法网站的停机时间延长,给网站所有者造成经济损失。
好消息是,并非所有的Web服务器(HTTP协议实现)和CDN网络都易受攻击。
据研究人员的测试显示,下表显示了哪些服务器+ CDN组合易受攻击。
有缓解措施
幸好,目前有对付CPDoS攻击的缓解措施。最简单的解决办法是,网站所有者配置其CDN服务,以便默认情况下不缓存HTTP错误页面。
许多CDN服务提供商在仪表板中含有此类设置,因此采取这个措施并不难。
如果网站所有者在CDN Web仪表板中没有控件来禁用错误页面的缓存,可以通过为每种错误页面类型添加“Cache-Control: no-store”HTTP头,从服务器的配置文件内部禁用该功能。
对付CPDoS攻击的更复杂解决方案在于CDN提供商本身,提供商可能需要改动产品的工作方式。
据研究团队声称,一些CDN提供商之所以容易受到CPDoS攻击,是由于它们并没有遵循互联网缓存协议。
研究团队说:“Web缓存标准仅允许[CDN]缓存错误代码404 Not Found、405 Method Not Allowed、410 Gone和501 Not Implemented。”他指出CDN不应该缓存CPDoS攻击生成的“400 Bad Request”错误页面。
他们说:“因此,按照HTTP标准的策略来缓存错误页面是避免CPDoS攻击的第一步。”
采用这种方法较为复杂,需要在许多CDN提供商的后端做一些工作。在此之前,第一个对策比较容易实施。
由于CPDoS攻击实际上确有可能,稍微花点力量,大多数网站所有者应该能够保护其服务器免受任何可能的滥用现象。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
评论