以太坊爆大漏洞:黑客窃得2000万美元 还有1万余节点可被攻破
3月20日,安全公司慢雾科技发布警告:有黑客利用以太坊的生态缺陷,使用机器自动窃取网络上的以太坊账户,截至2017年6月10日,已得手207次,账户余额价值约2000万美元。除了以太坊之外,该黑客钱包账号中还有164种其他代币,因为其中许多没有上市交易,价值无法衡量。
根据慢雾的扫描结果,目前全球还有一万余个以太坊节点存在类似风险,余额可能被盗。
根据其发布的报告,黑客利用了以太坊生态中的某些制度性缺陷,以达到自动窃取资金的目的:
第一,黑客会用机器批量查询网络上的以太坊钱包地址,此项动作通过扫描8485端口、8486端口来实现。端口扫描是成型的黑客技术,有大量现成工具可以使用。
第二,当扫描到开放的端口之后,使用eth_getBlockByNumber(查询区块高度)、eth_accounts(查询钱包地址)、eth_getBalance(查询钱包余额)三个命令来做相应动作。
黑奇士查询以太坊开发文档发现,以太坊支持RPC模式,以太坊账户开启这种模式后,就可以自动化完成某些操作,比如矿池挖出币之后自动向钱包转账。
第三,不断尝试发送eth_sendTransaction命令,该命令如果生效,则会把钱包中的余额转移到攻击者的钱包。
有人会问,转账需要密钥参与,黑客是怎么绕开密钥呢?
原来,以太坊账户支持unlockAccount命令,这个命令是为了方便某些机械化交易提供的。在代币交易中,有些人使用电脑进行高频交易,以此来获取波动价差(股票高频交易也是这么做,有时候一分钟来回买卖几十次)。
以太坊在高频交易中(或者矿池自动转账),可以设置一段时间内无需输入密码,时间长短由用户自己指定。如果黑客正好在这段时间之内发来了“余额转移”的指令,以太坊账户(钱包或web账户)就会自动执行该操作,将钱包里的以太坊转到黑客钱包中。
在2017年6月21日,此黑客利用这种手法,4个小时内从知名矿池f2pool 窃取了36笔资金。
Scan QR code with WeChat