论文笔记 | Cross-Origin State Inference (COSI) Attacks: Leaking Web Site States through XS-Leaks Avinash

本文深入探讨了COSI攻击,一种复杂的Web安全威胁,它能揭示用户在访问特定网站时的状态,即使在使用匿名工具时也不例外。文章概述了攻击原理,介绍了Basta-COSI工具,一种用于检测和防范COSI攻击的开源解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

会议:NDSS 2020
作者:Avinash Sudhodanan(不太认识,没有找到主页,之前是The IMDEA Software Institute的一名PHD);Soheil Khodayari(https

前言

昨天我们讲了一种攻击类型XS-Leaks,在NDSS20上,有一篇对该攻击较为全面的介绍。在这里写下论文笔记。

Abstract

这篇工作显示了更加复杂的COSI攻击。

INTRO

COSI攻击目的是确定受害者在攻击页面时的状态。这可能会导致受害者的隐私泄露,通过判断出某用户是否是该网页的账户,可以将用户的信息推送给婚后事务和sq有关的网站。COSI攻击在即使受害者使用匿名工具(例如虚拟专用网络)的情况下,也可以执行。

在COSI攻击中,攻击者使受害者访问一个攻击网页,这个攻击网页包含了至少一个目标网站的state-dependent URL(SD-URL)。例如,这个SD-URL指向目标网站的一个内容,这个内容只有用户有某种身份的时候才可以被访问。尽管SOP可以阻止攻击网页直接阅读对目标网站请求回复的内容,但是攻击者利用browser leak method(XS-Leak)来获取想要的信息。

前期相关研究的缺陷:

  • 仅考虑了两个状态
  • 仅在一个浏览器上
  • 仅关注了specific XS-Leak

作者将他们的方法在一个叫做Basta-COSI工具上实施,并作为了一个开源工具ElasTest平台的一部分。

主要的贡献:

  • 一个新颖的方法可以标识和实施更复杂的COSI攻击,攻击可以辨别出更多的状态和在更多中浏览器上开展。
  • 发现了一种新颖的攻击在window.postMessage上
  • 提出了实施已知COSI攻击的两种技术
  • 设计方法Basta-COSI用于检测COSI攻击
  • 把Basta-COSI放在开源工具ElasTest上

Overview

A. User state

COSI攻击中,攻击者的目标是相对于不受攻击者控制的目标网站,推断受害用户的状态。所有权属性包括用户是否为某个特定帐户的所有者,以及他是否拥有站点中存储的某些内容(例如,会议管理系统中的PDF纸)。每个标识用户状态的属性对于每个网站都是特定的。

B. COSI Attack Overview

准备阶段:
就是一个包含SD-URL的页面。作者这里说了怎样绕过SOP,存在XS-Leaks,它可以绕过SOP提取cross-oringin的信息?例如EventsFired——onload/onerror。作者在这里提出了COSI attack class,该类定义了对SD-URL的两种不同响应,可以使用XS-Leak来区分它们,可以将这些包含方法与XS-Leak结合使用 ,并且受浏览器影响。

基于此,作者提出了用于检测COSI攻击的一个新颖的方法。作者首先收集了相同URL的不同状态下的恢复,SD-URLs将会返回不同状态的URL。然后将这些不同的URL映射到attack class中,以发现攻击向量。当状态数目大于2,且发现了足够多数量的攻击对时,那么就认为网页存在攻击。

C. Beyond 2 States

如果只考虑两个状态,则有可能限制了攻击的种类;导致假阳性。

D. Threat Model

  • 攻击者 欺骗受害者控制攻击网页;使受害者访问攻击网页;识别受害者浏览器版本。
  • 受害者 访问网页;全新浏览器
  • 目标站点:至少一个SD-URL 没有其他漏洞

COSI ATTACK CLASSESS

A. Discovering Attck Classes

发现COSI攻击类的方法:

  • Identifying attack insances 从早期的技术博客,文献等发现的已有的攻击类。
  • Generalizing instances into classes (实在觉得这篇论文的英文好难读懂,长难句过多)这里主要就是对攻击类建立实例,然后用不同的方法和不同的浏览器上测试。
  • Discovering new attack classes
    在这里插入图片描述
  • Overall, we discovered 21 new attack classes, of which 12 use the EventsFired (i.e., onload/onerror) XS-Leak, 8 use the Object Property XS-Leak, and 1 uses a completely novel XS-Leak based on postMessage.

B. Attack Classes Decription

表III详细列出了上述过程确定的40种攻击类别。
在这里插入图片描述

  • EventsFired 主要是对事件触发的考察
  • Object Properties 对对象属性的考察
  • postMessage 对post的信息并对POST返回的消息的考察
  • CCSProRead 对CSS规则的考察
  • JSError 对JS文件的考察
  • JSObjectRead 对JS文件属性的考察
  • CSPViolation 对内容安全策略的考察
  • AppCacheError 对AppCache应用的考察,还记得之前有篇论文利用了AppCache吗!!可以做个笔记了
  • Timing 对时间差的考察

BASTA-COSI

在这里插入图片描述
Setup 选择目标站点,拥有站点的所有状态的用户。Basta-COSI支持使用Python Selenium WebDriver编写的状态脚本。 使用已经获取的各种状态的用户在站点上执行各种操作。
Architecture 有三个部分

  • URL data collection URL数据收集模块对目标站点进行爬虫以发现URL。即使用不同状态来访问URL,然后看是否有什么可以可用的SD-URLs。
    如下面,对HotCRP爬虫收集到的URL。(我觉得会产生误报呀)
    在这里插入图片描述
  • 然后结合之前的攻击向量来查看是否有可行的SD-URLS。
    拿表IV中使用SD-URL举例。 对于api.php,来自(R1,R2)的响应匹配两个静态攻击类别:EF-StatusErrorObject(对于Firefox和Edge),EF-StatusErrorLink(对于Chrome)。 同样,来自(R2,LO)的响应与(R1,R2)匹配两个相同的静态攻击类别。 最后,状态(R1,LO)与静态攻击类EF-XctoObject和EF-XctoScript匹配。 使用其他SD-URL(offline.php)重复该过程。 由于状态R1和R2返回相同的响应,因此(R1,R2)可以忽略。 对于状态(R1,LO),攻击类别EF-XctoObject和EF-XctoScript匹配。 最后,对于状态(R2,LO),响应与(R1,LO)相同,因此无需再次检查。
  • 最后设计攻击页面
    在这里插入图片描述

Experiements

为检查Basta-COSI的可用性,所以对4个开源的web应用,Alex Top 150的58个站点进行了扫描

A. Evaluation on Web Application

在这里插入图片描述

B. Evaluation on Web Application

在这里插入图片描述

C.Example Attacks

很像诺慢写得一个工作!!!!这是一种写作手法,可以学习一下,把一些典型的事例写在上面,来说明,喔,原来这些这么著名的网站也有攻击

DEFENSES AGAINST COSI ATTACK

  • SameSite cookies
    只有目标页面才可以添加SameSite cookies,这样就可以辨别出来请求可能来源于非源页面。
  • Session-specific URLs
    让token加密一下,无法从URL辨别出用户状态。
  • Cross-Oringin-Resource-Policy
    设置一个HTTP响应头,在告诉浏览器不允许跨源请求
  • Fetch metadata
    这是一种全新的HTTP请求标头,用于发送有关请求的其他来源数据
  • Cross-Oringin-Opener-Policy
    关于新的HTTP响应标头的讨论正在进行中,以防止恶意网站通过在窗口中打开它们来滥用其他网站。 这种防御措施可以防止使用window.open包含方法的COSI攻击类
  • Tor Browser
    可以抵御基于时间的XS-Leaks攻击。但其他方法仍可能存在攻击。
  • SD-URL patching
    针对特定的问题修改代码

To do list

  • AppCache
  • 这个工具检测URL过于草率
  • 新颖的写作手法
  • 以后可以测一下到底有多少人用了SameSite
  • Fetch metadata
  • Cross-Oringin-Opener-Policy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值