【翻译】XS-Leaks攻击简介
今天在读SP的一篇文章Cross-Origin State Inference (COSI) Attacks:Leaking Web Site States through XS-Leaks的时候,发现对作者使用的XS-Leaks攻击不理解,而且国内博客资料也很少,因此我去Google了一下。在这里,把我的查阅的资料翻译一下,并写下我的理解。后面,我会附上SP那篇论文的论文笔记。
历史1
在10年前,Chris Evans描述了一种针对Yahoo!Mail攻击。这是一个基于network timing的攻击,攻击者让受害者进行一次查询询问,通过访问返回时间的长短,来判断用户是否在攻击者预设的列表中。
六年后,Nethanel Gelernter和Amir Herzberg对这一攻击进行了深入的研究,并设计了XSSearch攻击。攻击不断改进,这次攻击不在仅仅限于时间,浏览器的“错误特性”和漏洞使得攻击更加稳定,这使得攻击达到近乎完美的程度。
攻击的核心是检测一个查询询问是否有结果。 XS-Leaks利用了对HTTP缓存进行查询的机制。
举例1
- Delete the cache for a specific resource (or list of resources).
首次,使用POST请求或者提取API与缓存一起使用:``重新加载’’(reload),以一种在服务器上返回错误的方式(例如,通过设置一个超长的HTTP引荐来源网址) ,这将导致浏览器不缓存响应,并使先前缓存的响应无效。 - Force the browser to render a website (navigation, or prerender).
强制受害者浏览器访问一个网站。这个网站是攻击者设计的网站,访问该网站会使得受害者访问要检查的网页。在一定情况下,攻击者会缓存要检查的网页的资源。 - Check if the browser cached the resource deleted at (1).
再次强制受害者浏览器访问攻击者实际的网站,但URL非常长,服务器是无法返回有效的资源的。不过在其中嵌入的图片会因为已经被缓存在客户端,所以可以访问。由此可以判别,用户是否缓存该资源。
应用场景2
看了上面的攻击过程,感觉没啥用处,因为为什么要知道是否受害者缓存过什么资源呢?
下面这个应用场景给了我们答案。
- 攻击者目标:获取受害者社交网站的用户名,以确定受害者在社交网站中的身份。(因为在现实生活中,人们在社交网站上使用虚假的名字,我们无法定位到这个人是谁。)
- 攻击过程
- 清空HTTP缓存资源。
- 使攻击者访问恶意页面。其中恶意页面需要加载受害者在某社交媒体平台的照片。该照片会保存在HTTP缓存中,并以受害者用户名命名。
- 使攻击者访问恶意页面,然后需要加载/tim.png的照片出来,但是由于本地缓存没有,因此无法加载;然后需要加载/alice.png的照片,由因为刚好是Alice,因此加载成功。
- 看到加载成功的结果,攻击者可以断定,受害人是Alice。
防御1
重要的是,希望不同域应该访问不同域的缓存。
- 禁用HTTP缓存
- 在所有的内容上加上CSRF tokens
- 可以使用Same Site=strict cookie对用户进行身份验证。
等等
HTTP Cache Cross-Site Leaks: ↩︎ ↩︎ ↩︎
Web tracking via HTTP cache cross-site leaks ↩︎
【翻译】XS-Leaks攻击简介相关推荐
- 直播 | 清华大学李一鸣:后门攻击简介
「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...
- 译书《物联网实战指南》出版 | 新成就:翻译自己的英文简介
这本书有一个很长的故事,到今天算是走到了一个意想中的结局.从审阅这本书开始.英文版出版.翻译成中文就这样走了两年的时间,这是一本值得纪念的书籍. 英文书名<Learning Internet o ...
- c语言printf相关函数 格式化字符串攻击 简介
目录 一.类printf函数簇实现原理 二.格式化字符串攻击原理 三.一个实际的例子 一.类printf函数簇实现原理 类printf函数的最大的特点就是,在函数定义的时候无法知道函数实参的数目和类型 ...
- DDOS SYN Flood攻击、DNS Query Flood, CC攻击简介——ddos攻击打死给钱。限网吧、黄网、博彩,,,好熟悉的感觉有木有...
摘自:https://zhuanlan.zhihu.com/p/22953451 首先我们说说ddos攻击方式,记住一句话,这是一个世界级的难题并没有解决办法只能缓解 DDoS(Distributed ...
- DDoS分布式拒绝服务攻击简介
分布式拒绝服务攻击可以使很多的计算机在同一时间遭受到攻击,使攻击的目标无法正常使用,分布式拒绝服务攻击已经出现了很多次,导致很多的大型网站都出现了无法进行操作的情况,这样不仅仅会影响用户的正常使用,同 ...
- psa加密_PSA:请注意这种新的Google翻译网络钓鱼攻击
psa加密 Akamai赤舞 You know, the thing with scammers is that they're always going to find new ways to sc ...
- XSS(Cross Site Scripting)攻击简介
环境 Ubuntu 22.04 IntelliJ IDEA 2022.1.3 JDK 17.0.3.1 Spring Boot 3.0.1 Firefox 108.0.2 问题和分析 在Intelli ...
- DNS 缓存授权服务器攻击简介
DNS架构 当用户上网访问某个网站时,会向DNS缓存服务器发出该网站的域名,以请求其IP地址.当DNS缓存服务器查找不到该域名与IP地址对应关系时,它会向授权DNS服务器发出域名查询请求.为了减少In ...
- 【翻译】Keras.NET简介 - 高级神经网络API in C#
用C#,远离996 Keras.NET Keras.NET是一个高级神经网络API,它使用C#编写,并带有Python绑定,可以在Tensorflow.CNTK或Theano上运行.其关注点是实现快速 ...
最新文章
- AI的双刃剑:拍照搜题与协助作弊
- 浅谈loadrunner中pacing设置
- Virtualbox虚机无法启动因断电
- 转-WinRM service
- Docker环境运行SpringBoot项目
- java telnet乱码_telnet乱码的解决方法
- java高校教师工作量管理系统_基于ssh/bs/java/asp.net/php/web/安卓的高校教师工作量管理系统...
- 实验十一:图形界面二
- Nginx源码分析 - 模块的赋值及编号 --- 方便了解nginx模块
- [备忘]java读取与写入文件的五种方式
- c# 盖尔-沙普利算法的改进
- 基于matlab的捷联惯导算法编程(二)
- 使用MATLAB绘制Smith圆图
- Ubuntu的root
- PHP开发的H5即时通讯聊天系统源码 带群聊 可封装APP
- java递归查询分类及分类下所有子分类
- 什么数据可以成为“数据资产”?数据资产化又该如何实现?
- SpringCloud_JZZ_MBY
- 从系统托盘中删除Synaptics触摸板图标
- 分布式存储与集中式存储