钓鱼新姿势:全屏API伪装浏览器界面方式分析
近期,我们发现了一种新型钓鱼方式,如果用户访问攻击者特制的页面,可能会产生一种虚假的“安全感”。
概述
目前,涉及到加密货币的许多网站,特别是需要用户输入机密信息的平台,都会建议用户检查URL地址栏,从而查看是否包含正确的SSL证书(有些平台中,会特定为EV证书)和正确的URL。因此,许多用户对这一点记忆深刻,并将其作为第一项检查的内容。但近期,我们发现了一种新型钓鱼方式,如果用户访问攻击者特制的页面,可能会产生一种虚假的“安全感”。
我们首先要强调,本文所描述的钓鱼方式,与涉及到的任何产品(包括MyCrypto、Binance、Google Chrome、Firefox、Brave)中的漏洞无关。相反,攻击者创建了一个虚假的网站,并使用户相信他们访问的是合法的网站。
作为用户,应该始终保持警惕,特别是在处理加密货币的过程。并且,用户应该选择其他具有安全性的机制,包括双因素认证、脱机运行、硬件钱包等。但不幸的是,包括MyCrypto和Binance在内的一些网站,目前都还没有相应的机制来缓解这类攻击。
演示视频(YouTube):https://youtu.be/ebWftq6kA30
针对PoC的分析
通过使用浏览器的全屏API、一些用于检测浏览器的JavaScript以及一些图像,我们可以几乎以假乱真的欺骗用户,让用户相信自己正在访问正确的域名。上述视频就是我们制作的PoC。
尽管乍一看,用户似乎离开了127.0.0.1:5500的这台服务器,但实际上并没有。为深入了解这种新型钓鱼方法,我们将分解各个页面,进行详细分析。
第一个视图仅用于演示目的,这是一个带有MyCrypto合法链接的简单视图。然而,可以想象一下,攻击者将其作为野外的某个恶意加密货币新闻网站,或者是某个说明如何使用MyCrypto的博客文章,或者是恶意AirDrop的网站链接。不管怎样,其最终目的都是试图诱导用户点击有效的MyCrypto.com链接。
在用户单击链接后,浏览器将被强制进入全屏模式,并显示一些图像,这些图像看起来就像是用户浏览器的框架。我们使用了一些简单的JavaScript来检测用户正在运行的浏览器,并针对不同浏览器显示出不同的浏览器框架图像。
接下来,我们假设MyCrypto不会弃用网络上的私钥,或者用户使用的是要求提供私钥的产品。在这里,攻击者会要求用户输入密钥,并在用户键入时对其进行记录(如下所示)。
这部分,并不会像PoC那样冗长,但足以能够表明用户从来没有离开过127.0.0.1:5500这台服务器,但用户操作浏览器时看起来就像是在MyCrypto.com网站上一样。
除非用户具有额外的身份验证机制,或者用户具有足够的警惕性,否则直至此时,用户的私钥已经被攻击者窃取,并且资金也很可能已经被盗。
现在,让我们看看另外一个例子,这是同样非常流行的Binance交易所。这个平台的安全性相对较好,因为平台会建议用户应该检查登录页面上的地址栏,这通常是一个很好的安全建议。
演示视频(YouTube):https://youtu.be/hOgPAhEXNSw
从上面的演示视频中,可以看出,除非用户全神贯注于屏幕,否则很容易成为这个新型钓鱼方法的受害者。
针对其他浏览器的测试
我之前提到过,我们可以使用JavaScript来检测用户所使用的浏览器,并针对不同的浏览器显示出相对应的图像。
在Firefox中,浏览器切换到全屏模式后的提示会稍微明显一些。但是,精心构造的PoC并不会触发alert()以显示带有实际地址栏的提示。在这里,使用alert()产生提示并没有实际上的意义。
演示视频(YouTube):https://youtu.be/phmS05-hF1Y
如果使用Brave,实际上与Chrome的体验相同,原因在于Brave基于与Chrome相同的Chromium网络浏览器。
演示视频(YouTube):https://youtu.be/qYnY2DOd5fo
安全建议
- 保持警惕,用户需要仔细检查自己的浏览器是否已经进入到全屏模式。
- 绝对不要将凭据或私钥输入通过点击链接到达的网站中。在任何时候,建议都自行访问网站,或者通过自己创建的书签点击。
- 安装EtherAddressLookup浏览器扩展,从而防止访问已知的恶意域名。
- 密切关注EtherScamDb目录。
- 在社区中,学习并分享关于新型网络钓鱼策略的知识。
- 如果你认为某些关键内容突然从页面中消失,或者当前正在访问的页面有任何异常,请相信你的直觉,并找到可靠的依据。
- 尽可能使用硬件钱包和双因素认证(2FA),用户可以选购Ledger钱包或Trezor。
- 在使用加密货币相关平台时,尽量使用桌面应用程序,或离线运行(例如MyCrypto Desktop APP)。
目前,我们还没有证据表明该恶意活动是针对网络加密货币用户执行的。