关注网络安全
和行业未来

Chrome考虑限制Data URL来对抗网络钓鱼

Chrome正在考虑限制data: URLs的功能,用来遏制钓鱼者的URL方案的非正常使用。

"Data:" 是一个URL方案,类似于大多数用户更为熟悉的"HTTP:"以及"tel:"。其中每一个都具有独特的功能。“Data:”的功能是使URL的自身包含一定的数据。

一种合法使用data:URL的方法是减少HTTP的请求数,这需要网站在浏览器上提供或显示动态生成的内容。然而,网络钓鱼者通常把data: URL用于他们的恶意活动。

究竟是什么使得data: URL这么有效的?它可以把网页重定向到钓鱼网页,或是通过链接打开并显示为单独的页面。同时,它们还可以规避和过滤某些检测方法。

Chrome正在考虑删除所有data: URL的顶级框架导航,用以阻止所提到的途径。顶层框架导航指的是在主浏览器窗口中出现的任何东西,而不仅指在页面中的内容。这就意味着一旦框架导航形成了data: URL,浏览器会忽略HTML <a>链接和类似于window.open和window.location的JavaScript功能。

一个将data: URL用于钓鱼式攻击以假冒Google Drive网站的案例。该案例由NetCraft授权提供

这将意味着打开data: URL的唯一方法是直接将网址键入或粘贴进地址栏。根据这一建议,Chrome的工程师指出,微软的Internet Explorer和Edge浏览器已经阻止了所有顶层框架导航到data: URL。

想要继续使用data: URL的网站需要通过iframe将其嵌入页面或作为资源来加载,而不是作为自己的页面。

在Chrome 56的一个补丁中,Chrome已经做出了对所有data: URL标记为“不安全”的决定。对含有密码/信用卡域的HTTP页面也是这样处理的。

Data:的危险性

HTTP的URL是一个指向数据的路径,而data: URL则是数据本身。可以这样理解,一个data: URL其实可以是一个钓鱼网站。这里给出一个非常简单的data: URL实例:

data:text/html, This is a data URL! 
如果你把它粘贴到你的地址栏,它会显示一个页面,上面写着“This is a data URL!”

这看起来好像并不怎么危险啊?(问号脸)

Data: URL可以包含任何的HTML,图像,和其他类型的数据。你甚至可以嵌入加载外部文件的脚本标签。Data: URL也可以使用编码来掩盖他们的所作所为。胡乱堆砌的字母和数字可能看起来并不合适,因此它还可以和其他策略结合,从而成功掩饰自己。

攻击者可以用空字符来打包一个data URL,以“隐藏”真实的URL。Matthew Bryant 制作了一个演示,他建立了一个data URL来模仿Yahoo.com。尽管这一布局并不完美,但拿它来演示data URL如何成为一个有效的网络钓鱼工具,却是再好不过了。

你在上面的截图中没有看到的是,URL远远超过了地址栏的末尾,在那里隐藏了一个恶意加载的脚本标签。点击这里 可以在你的浏览器里看到这个例子。

Chrome的工程师注意到在过去的28天里,data: URL占据所有顶层框架导航的0.05%。这一数据可能看起来很小,但对于一个正在被考虑移除的功能来说却是一个相当大的百分比。然而,考虑到网络钓鱼的案件和投诉的绝对数量,其危险已经超过了可接受的程度。

在Chrome做出修改之前,他们通常以“意图”的形式征求其他谷歌工程师和公众的意见。到目前为止,这一行为获得了多个工程师的支持,使得导航到data: URL受到限制。然而,如果这会破坏相当大比例的网站的话,他们最终可能并不会做出改变。如果你想在这个变化上发表你的意见,你可以在这里做到。

稿源: thesslstore

评论 抢沙发