查看原文
其他

这段 JavaScript 代码能挖出你所有的访问记录!

Thomas Claburn CSDN 2019-02-15

有没有想过,简单的一段JavaScript代码就能嗅探出浏览器标签页上的信息,甚至找出你的访问记录?更有甚者,就连Tor浏览器都不放过。

——没错,最近有一篇论文中就分析了这一问题。

作者 | Thomas Claburn
译者 | 弯月
责编 | 郭芮
出品 | CSDN(ID:CSDNnews)

近期,计算机专家们演示了一种旁路攻击技术,能越过最近浏览器引入的隐私防御策略,跟踪浏览器的行为,甚至连Tor浏览器都不能幸免。其结论是,一个浏览器标签页中的恶意JavaScript代码可以嗅探其他标签页,并找出你曾经访问过的网站。

这些信息可以让广告商根据你的兴趣定向推送广告,或者仅仅是收集你的个人兴趣供以后使用。

研究者Anatoly Shusterman、Lachlan Kang、Yarden Haskal、Yosef Melster、Prateek Mittal、Yossi Oren、Yuval Yarom分别来自以色列内盖夫的Ben-Gurion大学,澳大利亚的阿德莱德大学,和美国的普林斯顿大学,他们发现了一种基于处理器缓存的网站指纹攻击技术,能利用JavaScript收集访问过的网站的信息。

描述该技术的论文发布在ArXiv上,题为“Robust Website Fingerprinting Through the Cache Occupancy Channel”(https://arxiv.org/pdf/1811.07153.pdf)。

“我们演示的这种攻击能泄露‘人类的秘密’:攻击者获知用户访问过的网站,就能获知用户的很多秘密,如性取向、宗教信仰、政治倾向、健康状况等。”Ben-Gurion大学的Yossi Oren和阿德莱德大学的Yuval Yarom在本周给The Register的邮件中说。

因此,虽然这种攻击并不像远程攻击技术那样能执行任意代码或泄露核心内存,但Oren和Yarom怀疑,他们的浏览器指纹方法有可能会被用来窃取计算机的密码,如加密的秘钥,或已安装的易受攻击的软件。

有些情况下,这种攻击甚至能对那些期待利用Tor来保守访问网站的秘密的用户产生严重的影响。

旁路攻击(或称“短暂执行攻击”)需要观察计算机系统的某个部分,收集信息以推断其他特权信息。今年发现的Spectre、Meltdown和Foreshadow等脆弱性都有潜在的可能性通过旁路攻击触发。

Oren和Yarom说,该攻击技术运行在比Spectre更底层的地方。“一些Spectre不能运行的地方(比如跨越进程边界),这种攻击也能运行,而且用来防御Spectre的CPU补丁也不能阻止它。而另一方面,Spectre攻击能获得的信息比我们的攻击方法更详细。”

减轻这类攻击的一种方式是限制对高精度定时器的访问,因为旁路数据可以通过高精度定时器获得。例如,在Spectre和Meltdown最初被发现时,Mozilla就说它会在Firefox浏览器中降低时间源的精度,或者干脆禁用它。

但最新的浏览器指纹技术并不需要高精度定时器,因为它的攻击目标是浏览器的处理器缓存占用。

“缓存占用的度量就是在一端固定时间内整个缓存被访问的占多少百分比。”Oren和Yarom解释。“浏览器非常占用内存,因为它要从网络上接收大量数据,并在屏幕上绘制各种输出结果。这意味着它在加载页面时会占用相当多的缓存。”

而且,这种攻击方式并不依赖于缓存的布局,因此用来降低风险的缓存布局随机化技术对此毫无用处。该攻击方式也不会被基于网络的指纹防御措施影响,因为浏览器不是从网络上获取数据,而是从响应缓存中获取数据。

自动识别

这种指纹攻击技术使用了JavaScript来衡量网页加载时的长期处理器缓存访问延迟,然后利用深度学习技术,将这些数据与攻击者事先收集的数据比较,从而自动识别出相似的模式,判断出对于某个网站的访问。

换句话说,可能通过测量浏览器在获取和渲染网页时对处理器CPU缓存的访问情况,来获知用户是否浏览某个网站。某个标签页内的恶意JavaScript脚本可以监视缓存访问,来确定缓存的访问模式和指纹,从而判断其他标签页访问过的网站。

“‘传统’的机器学习技术要求人类去寻找数据的哪些‘特征’可能与攻击有关。”Oren和Yarom解释道。“但在哪些特征最适合进行哪些类型的攻击方面也有很多研究。在深度学习中,计算机扮演专家的角色,试图自己找到这些特征。这样我们就能直接从数据获得结果。人类研究者可能比我们的机器学习算法找到更好的特征,这些信息用于改进该攻击。”

专家们考虑了两个场景:一个是封闭世界的数据集,包含100个网站,每个网站采取了100个数据点;另一个是开放世界的数据集,能够从5000个网站中分辨出100个敏感的网页。

在封闭数据集上使用利用主流浏览器,研究者能准确地分类出70~90%的网站访问记录。使用Tor之后,攻击的准确率降到了47%,但如果同时考虑其他数据,准确率能提高到大约72%。开放世界的数据集也显示出类似的结果,即70~90%,对于Tor,如果不仅考虑最佳输出,而是检查前五位的结果的话,准确度能达到83%。

如果目标仅仅是确定某个访问过的网站是否敏感,那么开放世界数据集的准确度能提高到99%以上。

Oren和Yarom说,他们的工作显示通过限制对精确计时的访问很难防御他们的旁路攻击。

“我们的工作演示了整个过程是不重要的——我们完全不需要高精度的计时器进行攻击。”他们说,“类似地,一些用于防御Spectre的措施会将网站隔离到多个进程中。我们证明了这些措施是不够的。我们发现,可以从一个标签页侦测其他标签页,甚至可以从一个浏览器侦测同一台计算机上运行的其他浏览器。”

他们在最后总结道,在任何时间点,运行少于一个浏览器标签页都会有潜在的隐私风险。打开第二个标签页时,其中的JavaScript就能嗅探到第一个标签页中的内容。完全禁用JavaScript能阻止这种攻击,但同时也禁止了许多依赖JavaScript的网站。而且他们说,可视化应该只是遍历特性,而不是安全特性。

“如果你要同时访问敏感的网站和非敏感网站,那就用两台电脑。”他们说。

原文:https://www.theregister.co.uk/2018/11/21/unmasking_browsers_side_channels/

本文为 CSDN 翻译,如需转载,请注明来源出处。


 热 文 推 荐 

☞ Google 强迫微软弃用 Edge 内核?

☞ 开源面临生死存亡之际!

☞ 如何“攻破”大众点评的文字加密防线?

 刚发布!Python 一二线城市月薪 15K 起!12 月再夺语言榜首

☞ 为什么都瞧不起培训班出来的程序员?

☞ 用对这30种秘密武器, 你也能成为区块链高手!

☞ MIT新福利,2019人工智能公开课上线啦!

☞ “车联网”最强科普!据说它是未来五年5G兴衰的晴雨表?


print_r('点个赞吧!');
var_dump('点个赞吧!');
NSLog(@"点个赞吧!");
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧!\n");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!");
Response.Write("点个赞吧!");
alert("点个赞吧!")
echo "点个赞吧!"

点击“阅读原文”,打开 CSDN App 阅读更贴心!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存