3.31 论文笔记 | Cached and Confused: Web Cache Deception in the Wild

Cached and Confused: Web Cache Deception in the Wild(Web 缓存欺骗)

  • Seyed Ali Mirheidari (University of Trento)——是一个博士学生
  • Sajjad Arshad Northeastern University(东北大学,是做一名网络安全研究员,发的顶会超多,锁住)
  • Kaan OnarliogluAkamai Technologies (阿卡迈科技公司)
  • Bruno Crispo University of Trento &KU Leuven(计算机科学与信息工程学院(DISI)教授
    特伦托大学国际信息通信技术博士学院院长,猜测是一作的导师,但是没二作论文多)
  • Engin Kirda Northeastern University(东北大学 做的是系统统,软件和网络安全(重点是网络安全,二进制分析,恶意软件检测,也发了很多论文,锁住)
  • William Robertson Northeastern University (一查google schoolar好强!“我的研究涉及广泛的系统、网络和软件安全问题,目标是使网络空间对每个人都更安全。”)

综上,东北大学的SECURITY好强!

扒到的LAB
iSecLab(网页不更新了,但18年的顶会质量较高)
LAB: THE NORTHEASTERN UNIVERSITY SYSTEMS SECURITY LAB (感觉和我自己在的实验室去年发的论文数差不多)
Cybersecurity and Privacy Institute

Abstract

  1. 大规模的测试工作:作者提出了第一项大规模研究,该研究量化了340个高 AlexaTop 5K中的个人资料网站。作者发现表明,在**Web缓存欺骗 (WCD)**公开披露两年后,许多受欢迎的站点仍然脆弱。
  2. 测试后的建议:我们对流行的CDN提供商的经验实验强调了这样一个事实:网络缓存不是即插即用技术。

Introduction

现状:在一般情况下,为了提高CDN缓存模式地效率,同时保护CDN缓存访问者的隐私性。缓存的最佳选择包括经常访问的图像,软件和文档下载,流媒体,样式表以及大型静态HTML和JavaScript文件。 最近的一项科学测量还估计,CDN提供者为Alexa Top 1K提供了超过74%的服务,这表明CDN和更一般的Web缓存在Internet中发挥着核心作用。
攻击:在2017年,Gil提出了Web缓存欺骗(WCD)攻击,该攻击可以诱使Web缓存错误地存储内容,并因此使攻击者在未经授权地情况下放访问该内容。其核心是源服务器和WEB缓存之间的路径混淆。在这两点上,对请求的URL的不同解释导致对给定对象的可缓存性存在分歧。
本文工作

  1. 在本文中,作者首先介绍了对Alexa Top 5K中295个站点的WCD的大规模测量和分析。结果显示,许多处理敏感数据和私人数据的高知名度网站都受到了WCD的影响,并且很容易受到网络攻击。然后,作者讨论了可最大化WCD潜在破坏力的其他路径混淆方法,并在对340个站点​​的扩展数据集进行的后续实验中证明了它们的影响。
  2. 除此之外,作者提供了有关WCD严重性的新颖见解——利用WCD来窃取其他类型的敏感数据,包括安全令牌,解释将WCD漏洞提升为注入向量的先进攻击技术,以及通过对收集到的数据进行进一步分析来量化我们的发现。
  3. 最后,作者对流行的CDNproviders进行了实证分析,记录了它们的默认缓存设置和自定义机制。

Background & Related Work

在本节中,作者概述了Web缓存欺骗(WCD)攻击的工作原理,并讨论了相关概念和技术,例如Web缓存,路径混淆和现有的WCD扫描程序。

Web Caches

对于Web服务器及其最终用户而言,在Internet上反复传输大量使用的大型Web对象是一个昂贵的过程,尤其是面对Internet基础结构和路由问题的常见技术问题时,可能导致网络延迟增加,并导致Web应用程序无响应。 为了解决这个问题,Internet设置了Web缓存机制,并且用于Internet通信的各个步骤(通常是多个步骤)。例如,浏览器和反向代理服务器。

特别是,Web缓存是Content Delivery Networks(CDN)的关键组成部分,它为用户提供Web性能和可用性服务。 通过在全球范围内部署大规模分布的共享缓存代理网络(也称为边缘服务器),CDN的目标是尽可能多地从其最接近客户端的缓存中满足请求,从而在此过程中卸载原始服务器。 由于涵盖了从简单的个人站点到大型企业等不同市场领域的多个受欢迎的CDN提供程序的结果,Web缓存已成为Internet基础结构的核心组成部分。

缓存的最常见目标是静态但经常访问的资源。 其中包括静态HTML页面,脚本和样式表,图像和其他媒体文件,以及大型文档和软件下载。(非静态对象的缓存并不常见,并且与WCD攻击无关。本文没讨论。)

HTTP / 1.1规范定义了可在服务器响应中包含的Cache-Control header,以向通信路径上的所有Web缓存发信号通知如何处理传输的对象。 例如,标题“ Cache-Control:no-store”指示不应存储响应虽然规范指出Web缓存必须尊重这些标头,但是Web缓存技术和CDN提供程序为用户提供了配置选项,以忽略和覆盖标头指令。 实际上,一种常见且简单的配置方法是基于资源路径和文件名创建简单的缓存规则,例如,指示Web缓存存储所有扩展名为jpg,ico,css或js的文件。

Path Confusion

随着Web应用程序的大小和复杂性的增长,Web服务器引入了复杂的URL重写机制,以实现高级应用程序路由结构以及提高可用性和可访问性。举个例子,http://www.somehost.com/Blogs/2006/12/,URL重写后变为
http://www.somehost.com/Blogs.aspx?year=2006&month=12 1

但可能存在Web服务器并没有告知外部其对复杂URL重写机制的结果,并以一种意想不到的(可能是不安全的)方式处理URL。 这称为路径混乱

干净URL方案使用从Web服务器的内部资源组织中抽象出来的结构,从而提供了一种 面向API的更具可读性的表示形式。例如,对于一个给定的Web服务,可以选择example.com/index/v1/v2来代替URLexample.com/index.php?p1=v1&p2=v2。

当用户使用example.com/index/img/pic.jpg访问相同的Web服务的情况。用户和通信路径中的所有技术(例如,Web浏览器,缓存,代理,Web应用程序防火墙)可能会误解此请求期望返回一个图像文件,并相应地处理HTTP响应(例如,网络缓存可能选择存储响应有效负载)。 但是,实际上,Web服务将在内部将此URL映射到example.com/index.php?p1=img&p2=pic.jpg,并使用HTTP 200状态代码返回index.php的内容。请注意,即使img / pic.jpg是Web服务器上不存在的任意资源,HTTP 200状态代码将错误地指示请求已按预期成功处理。

基于路径混淆的著名攻击类别是相对路径覆盖(RPO)(这里填个坑)

Web Cache Deception

为了利用WCD漏洞,攻击者制定了满足以下两个属性的URL:

  1. Web服务器必须将该URL解释为对带有私有信息的不可缓存页面的重新请求,并且它应该触发成功的响应。 2.同一URL必须由中间Web缓存解释为对匹配有效缓存规则的静态对象的请求。

接下来,攻击者使用社交工程渠道诱使受害者访问此URL,这将导致错误地缓存受害者的私人信息。 然后,攻击者将重复该请求并获得对缓存内容的访问权限。

攻击步骤:

  1. 攻击者诱骗受害者访问请求/account.php/nonexistent.jpg的URL。 乍一看,它似乎引用了图像文件,但实际上并未指向服务器上的有效资源。
  2. 请求到达了Web服务器并被处理。 此示例中的服务器应用重写规则来丢弃请求对象的不存在的部分,这是流行的Web服务器和应用框架工作的常见默认行为。 结果,服务器会发送回成功响应,但实际上是体内包含了account.php的内容,其中包含受害者帐户的私人详细信息。 Web缓存不知道服务器上发生的URL映射,因此将响应存储为响应,并将其解释为静态图像。
  3. 攻击者访问相同的URL,导致缓存命中,并授予他未经授权的访问受害者的缓存帐户信息。

由于其安全性和高破坏力,WCD引起了媒体的广泛关注。 主要的Web缓存技术和CDN提供商也做出了回应,一些针对客户的已发布配置强化指南。 最近,Cloudflare宣布了对HTTP响应内容类型进行新检查的选项,以缓解攻击。
预防手段:
研究人员发布了用于扫描和检测WCD的工具,例如,作为Burp Suite扫描仪的扩展或作为独立工具。 作者注意到这些工具是针对渗透测试的,旨在直接在测试人员的控制下对Web属性进行针对性的扫描。 也就是说,通过设计,他们可以在不确定的前提下操作,通过简单的相似性进行信息公开测试并编辑距离检查,否则需要人工监督和解释结果。

3. Methodology

用到的工具

  1. 子域名枚举工具:Sublist3r、aquatone、Amass

3.1 Stage 1: Measurement Setup

仅当易受攻击的站点管理最终用户的私人信息并允许对该数据执行敏感操作时,WCD攻击才有意义。 因此,提供身份验证机制的站点是攻击的主要目标,因此也是我们进行测量的主要目标。第一阶段是识别此类站点并为其创建测试帐户。

  1. 域发现。此阶段开始于访问初始测量池中的站点(例如Alexa Top n)。然后,我们通过使用开源智能工具执行子域发现来增加站点覆盖率。我们将这些新发现的主要站点的子域(过滤那些响应HTTP(s)请求的子域)添加到种子池。
  2. 帐户创建。接下来,作者在每个站点上创建两个测试帐户:一个用于受害者,另一个用于攻击者。 作者为每个帐户填充唯一的虚拟值。 接下来,作者手动浏览每个受害者帐户,以发现应视为私人信息(例如,姓名,电子邮件,地址,付款帐户详细信息,安全问题和响应)或用户创建的内容(例如,评论,帖子,内部消息)的数据字段。 作者使用预定义的标记填充这些字段,随后可以在缓存的响应中搜索这些标记以检测成功的WCD攻击。 另一方面,攻击者帐户无需输入数据。
  3. Cookie收集。成功登录种子池中的站点后,爬虫程序将为受害人帐户和攻击者帐户收集两组cookie。 这些被保存在一个饼干罐中,以在随后的测量步骤中重复使用。 请注意,作者采取了多种措施来确保我们的抓取工具在作者的实验过程中保持身份验证。 考虑到Cookie的过期时间戳记,作者的抓取工具会定期进行重新认证。 此外,搜寻器使用正则表达式和黑名单来避免访问页面上的常见注销链接。

  1. URL重写 ↩︎

发布了9 篇原创文章 · 获赞 6 · 访问量 2384

猜你喜欢

转载自blog.csdn.net/Sunny_Ducky/article/details/105230083