250个比特币遭遇钓鱼式攻击,详解背后的钱包安全问题
近日,有黑客团队对加密货币钱包Electrum进行有组织的攻击,并通过钓鱼式攻击的方式窃取了近250个比特币。那么,整个事件的过程和机理是怎样的呢?北京链安的安全专家Hardman为大家献上专业的解析。
近日,有黑客团队对加密货币钱包Electrum进行有组织的攻击,并通过钓鱼式攻击的方式窃取了近250个比特币。那么,整个事件的过程和机理是怎样的呢?北京链安的安全专家Hardman为大家献上专业的解析。
1 事情概述
近期,比特币轻钱包electrum的部分用户遭到了定向的钓鱼弹窗攻击,用户在使用electrum轻钱包转账的时候提示转账失败,而在弹框中也引导用户前往指定地址下载该钱包的“最新版本”。
接着,部分electrum用户便按照软件弹出的提示,去弹窗上的地址下载最新版本的钱包,但是此时下载的轻钱包却并非官方版本,而是黑客恶意篡改的假包。用户下载安装该钱包后,使用钱包时需要先导入私钥,而用户导入私钥之后,恶意软件便窃取了用户的比特币。
2 事情分析
2.1 比特币全节点钱包
全节点钱包除了保存有私钥外,还保存有所有区块的数据,这样就可以在本地直接验证交易数据的有效性。最著名的全节点钱包就是Bitcoin Core。其他比特币全节点如go语言编写的btcd,javascript编写的bcoin也都是全节点钱包。但是全节点钱包会占用大量硬盘空间,截止到18年底,比特币的全节点要占用将近200gb的硬盘空间。转账之前必须要同步200gb数据,这对于一般用户来说是难以接受的。
2.2 比特币轻钱包
而轻钱包只保存跟自己相关的数据,体积很小,大都使用SPV进行交易的验证和支付。(全称“Simplified Payment Verification”,简单支付验证),所以也称为SPV钱包。比特币主要的SPV钱包有,MultiBit,Breadwallet等,而在手机上更有大量我们熟悉的钱包供我们使用,他们使用SPV协议直接连接到比特币全节点(中本聪客户端或者其他语言版本的比特币客户端)进行验证和支付。
从上图可以看到,一个全节点有大量的比特币SPV轻钱包的连入。
Electrum是比特币比较出名的一个轻钱包,该轻钱包加入了一些新特性,如服务器使用SSL进行身份验证来防止MITM攻击。所以跟其他的比特币轻钱包不同,Electrum无法与不同版本的比特币全节点进行直接通讯,每次启动会连接到electrumserver进行通讯,而electrum server之间通过p2p进行通讯。
可以看到用户可以手动指定连接到自己的electrumserver。但是大多数用户对原理并不了解,也不会搭建自己的electrum server。
2.3 攻击原理
问题最早由用户SomberNight在github上进行了反馈。
Electrum黑客预先在P2P网络埋伏了大量的“正常” electrum server。
从网站监控上可以看到,比特币的electrum server目前只有210个节点在线。
而比特币全节点bitnodes的统计数据为10205个全节点在线。
前面已经说过,由于electrum轻钱包不同于MultiBit或Breadwallet等比特币轻钱包,无法与比特币全节点直接通讯,只能与electrum server进行通讯。此时有限的electrum server节点中大量混入了黑客的malicous节点。
用户使用钱包转账时,当手续费不足或者缺少输入的时候,钱包是要弹框给用户的。黑客正是利用了这个弹框,当electrum轻钱包用户连接到的几个节点全都是黑客的malicous节点,malicous节点便会拒绝帮用户广播转账消息,然后返回自定义的错误消息,此时electrum轻钱包软件便会弹窗展示malicous server的自定义消息给用户,自定义消息提示用户需要到 https://github.com/electrum-wallet/electrum/releases 去下载最新版electrum 软件。由于弹窗在electrum中显示,迷惑性极大。
实际上electrum软件的真正下载地址是 https://github.com/spesmilo/electrum/releases ,根本不是弹窗中的地址。(注:假冒地址目前已经无法访问)。
3 攻击复盘
从上述分析来看,攻击由于以下几点原因产生。
A: electrum server节点过少,网站统计仅仅有210个,使得黑客的malicous server大概率占据用户electrum链接的所有节点。
B: electrum server可以自定义消息在用户的electrum轻钱包软件中展示,给了黑客广播钓鱼消息以可乘之机。
C: 用户的安全意识差,安装重要软件之前不核对下载网址和校验软件发行版本hash。
北京链安在此郑重提醒所有用户提高安全防护意识,特别下载相关客户端的时候前往官方指定地址下载。