以太坊JSON-RPC出现新的攻击方式,开放API并解锁过的账户可能已被种下“后门”

新型攻击手法披露:以太坊黑色情人节事件里已经出现的隐蔽攻击方式!

新的攻击手法过程简述:

1. 以太坊节点的 RPC 接口开放,但是账户没有 ETH (此时黑客已经通过扫描发现目标)
2. 黑客立即构造交易并签名(签名设置的金额为 X ,nonce 设置为当前的 N+1,N+2,...,N+N ),可以构造多个
3. 以太坊节点发现自己的问题,关闭 RPC 端口
4. 以太坊节点认为自己已经安全,开始往账户转入 ETH
5. 其实此时攻击者通过程序自动化实时监控发现你的转入,立即开始广播之前 RPC 开放的时候签名好的信息

6. 攻击完成 这种攻击手法非常隐蔽且真实存在,在此我们提醒:以太坊节点里杜绝存放私钥文件。只要节点没有私钥就不会出现此类攻击,如果有,安全起见建议暂停节点,把相关资产安全转移后废除这个私钥文件,并在其他隔离机器里重新生成新的私钥,未来采用私钥签名交易+节点广播交易的方式来进行转账操作。

以上来自慢雾区

这个攻击手法与以往的攻击手法不同的点在于:只要你这个账户在开放了JSON-RPC的节点上被解锁过,攻击者就可以对你的账户种一个“后门”。

其原理就是在以太坊的JSON-RPC种有个名为eth_sign的函数,以下是此函数的官方说明:

通俗来讲就是,以太坊的JSON-RPC虽然没提供输出私钥的功能,但是提供了使用私钥来签名事务的功能,这个功能的实现就是eth_signTransaction函数(目前仅Parity实现,Geth未实现此函数)。

如果利用这个函数来对transfer交易进行签名,被签名的原始数据是从受害者账户将余额转账至黑客账户,黑客利用签名后的数据可以在任何时候从受害者账户中将余额转移出来(即使节点关闭了JSON-RPC),而且无法避免,这是无法根除的“后门”

理论上来说,只要在开放JSON-RPC节点上unlock过的账户都存在这个风险(用户无法确认自己的API是否被黑客用来签名原始数据,除非开启了日志),BCSEC团队建议立即放弃使用这些高危账户,以保障自己的资金安全!


猜你喜欢

转载自blog.csdn.net/fly_hps/article/details/80858452
今日推荐