币安官网注册链接: 币安(Binance)
摘要:近日,黑客团队对加密货币钱包Electrum进行了有组织的攻击,通过钓鱼攻击窃取了近250个比特币。 那么,整个事件的流程和机制是怎样的呢? 北京联安安全专家哈德曼为您提供专业分析。
1 事情概况
近期,部分比特币轻钱包electrum用户遭遇针对性钓鱼弹窗攻击。 用户使用electrum轻钱包转账时,提示转账失败,弹框还引导用户前往指定地址下载“最新版本钱包”。
随后,一些electrum用户按照软件弹出的提示,前往弹窗上的地址下载最新版本的钱包。 不过,此时下载的轻钱包并不是正式版,而是被黑客恶意篡改的假包。 用户下载并安装钱包后,需要导入私钥才能使用钱包。 用户导入私钥后,恶意软件就会窃取用户的比特币。
2 事件分析
2.1 比特币全节点钱包
全节点钱包除了保存私钥外,还保存所有区块的数据,这样可以直接在本地验证交易数据的有效性。 最著名的全节点钱包是Bitcoin Core。 其他比特币全节点如Go语言编写的btcd、JavaScript编写的bcoin等也都是全节点钱包。 但全节点钱包会占用大量硬盘空间。 截至2018年底,比特币全节点将占用近200GB硬盘空间。 转账之前必须同步200GB的数据,这对于普通用户来说是无法接受的。
2.2 比特币轻钱包
轻钱包只保存与自身相关的数据,并且体积很小。 他们大多使用SPV进行交易验证和支付。 (全称是“Simplified Payment Verification”,简单支付验证),所以也叫SPV钱包。 比特币主要的SPV钱包有MultiBit、Breadwallet等,手机上也有大量我们熟悉的钱包供我们使用。 他们使用SPV协议直接连接比特币全节点(中本聪客户端或其他语言版本的比特币客户端)进行验证和支付。
从上图可以看出,一个全节点与比特币SPV轻钱包有大量的连接。
Electrum 是著名的比特币轻钱包。 轻钱包增加了一些新功能,例如服务器使用SSL进行身份验证,以防止MITM攻击。 因此,与其他比特币轻钱包不同,Electrum 无法与不同版本的比特币全节点直接通信。 每次启动时,都会连接到 electrum 服务器进行通信,electrum 服务器通过 p2p 进行通信。
可以看到用户可以手动指定连接到自己的electrumserver。 然而,大多数用户并不了解其原理,无法构建自己的电子服务器。
2.3 攻击原理
该问题首先由 github 上的用户 SomberNight 报告。
电子币黑客提前在 P2P 网络中隐藏了大量“正常”的电子币服务器。
从网站监控可以看出,比特币的electrum服务器目前在线的节点仅有210个。
比特币全节点bitnode统计为10205个全节点在线。
前面提到,由于electrum轻钱包与MultiBit或Breadwallet等比特币轻钱包不同,它无法直接与比特币全节点通信,只能与electrum服务器通信。 此时,有限的电子币服务器节点中混入了大量的黑客恶意节点。
用户使用钱包转账时,当手续费不足或输入不足时,钱包会向用户弹出提示框。 黑客利用了这个弹出框。 当轻钱包用户连接的节点都是黑客的恶意节点时,恶意节点会拒绝为用户广播转账消息,然后返回自定义错误消息。 此时,轻钱包软件会弹出一个窗口,向用户显示恶意服务器定制的消息。 定制的消息提示用户下载最新版本的 electrum 软件。 由于弹出窗口是用 electrum 显示的,所以非常混乱。
事实上,electrum软件的真实下载地址根本不是弹窗中的地址。 (注:该假地址目前无法访问)。
3 攻击回顾
从以上分析来看,此次攻击的发生有以下几个原因。
A:electrum服务器节点太少,网站统计只有210个,这使得黑客的恶意服务器极有可能占据了所有连接用户electrum的节点。
B:electrum服务器可以自定义消息显示在用户的electrum轻钱包软件中,给黑客传播钓鱼消息的机会。
C:用户安全意识差,在安装重要软件之前不检查下载网址并验证软件发布版本哈希。
北京联安在此郑重提醒广大用户增强安全防护意识,特别是在下载相关客户端时,请到官方指定地址下载。