查看原文
其他

Mediajacking媒体劫持技术:偷偷使用你的摄像头(GPS,手机)

2015-11-19 E安全

如今的网民群众们简直是太Happy了,这里点点、那里戳戳,乐趣无穷。我们喜爱按钮与链接,只要它们看起来不是特别可疑。不过这也给用户带来了大量安全隐患,具体包括钓鱼攻击、点击劫持以及其它不少大家耳熟能详的问题。而今天,咱们再来聊聊另一种新麻烦——媒体劫持(Mediajacking)。

背景情况

让我们先来了解相关背景。我们的浏览器当中存在着大量能够保障用户安全的功能。而作为其中的一大重要核心、实行安全的关键性因素,就是硬件访问提示。每当某个网站需要使用我们的网络摄像头、麦克风甚至是全球定位系统给出的位置信息,其绝对没办法直接达到目的。相反,它首先得征得用户的允许,即在浏览器当中弹出下面这样的小窗口:



任何一款现代浏览器都会以此为基础进行设计,而且只要使用得当,这些安全功能的介入能够让网站更灵活、更庞大也更精巧。那么问题在哪儿呢?这个嘛,让我们再仔细看看这个提示窗口。内容非常简单,而且由于以独立页面形式存在,所以我们无法进一步访问。但请注意,问题来了——它并非运行在当前页面中,而是运行在当前页面之上。从下图中可以看到,提示窗口以合理方式悬浮于当前页面前方。



工作原理

接下来就是最有趣的部分。如果我们能够让用户点击“允许”,则获得了摄像头的访问权。但这时,我们的真正目的其实是让用户尝试点击这一Chrome浏览器提示窗口“之下”的内容。


举例来说,如果提示窗口在弹出之后直接让鼠标悬念在“允许”按钮的位置,那么意味着攻击者可能正在引导用户按下该按钮以访问其网络摄像头。在这种情况下,由于鼠标直接就放在“允许”的位置上,相当一部分用户会不假思索地按下,而当前访问的网站就获得了访问摄像头的权限。我创建了一个概念验证项目(https://breathless.space/buttonwarrior.html),希望了解用户会有多大机率上当。总之这个项目在Chrome与火狐上都是可行的,而且我估计在其它浏览器上也能顺利奏效。


注意事项

遗憾的是,媒体劫持需要一系列奇怪状况的整体配合。首先,用户必须要以合适的速度多次进行点击。这种需求相对容易实现,只要让某个按钮“失败”几次就行了,这样用户可能会倾向于反复点击以进行下一步。然而更大的问题在于“允许”按钮的位置——事实上,浏览器会检测“允许”按钮在当前窗口中的相对位置。


幸运的是,我们能够具体控制“允许”按钮的确切位置:首先在弹出窗口当中打开页面所请求的媒体,而后将该弹窗移动到任意位置。我个人就做过具体实验。就目前而言,在分屏模式下弹窗重新定位往往无法正常起效,不过只需要进行一些屏幕位置检查即可轻松解决。


总结

这种利用媒体控制获取访问权限的方法极度危险。除了摄像头访问能力之外,这种方式还能够获取到其它多种硬件控制权,例如GPS定位或者麦克风访问等。值得指出的是,由于我们的网站启用了TLS(https),因此用户只需点击一次即会同意站点使用全部此类硬件设备。另外最糟糕的一点在于,跟其年长的表兄“点击劫持”一样,除非彻底禁用JavaScript、否则我们根本没办法对其进行修复。截至撰稿之时,媒体劫持还并未被视为一项漏洞,另外其它任何形式的硬件使用提示都会带来类似的问题。


补充意见:这种小伎俩在Mac设备上无法起效,我是在对其兼容性进行后续验证时发现这一结论的。好吧,苹果你又赢了。

分享即是关怀……

转载请注明来源 “E安全”

欢迎大家访问E安全门户站点www.easyaq.com

请关注 E安全 微信公众号

点击“查看原文”获取本文的相关链接

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

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