Bitcoin86.com

Ledger Connect Kit攻击事件复盘

刚才,Ledger Connect Kit的npm库1.1.5/1.1.6/1.1.7被黑客攻击,其中植入了攻击逻辑。

Ledger Connect Kit是用于dApp连接Ledger钱包的一个库,被很多dApp集成,发布于Ledger的npm管理网站JSDELIVR上。

Ledger在该网站的账户被盗,黑客将该库替换为了有害版本。

在本次攻击的文件中可以看到,黑客直接用Drainer类替换了正常的窗口逻辑。

Drainer顾名思义就是榨取器,不仅会弹出伪造的DrainerPopup弹窗,也会处理各种资产的转账逻辑。

在Drainer类的start()方法中,会检查该钱包的余额,如果小于黑客设置的minimalDrainValue=0.001

主币,则不会启动攻击。

显然,在任何常见的EVM系网络上,余额小于这个数的钱包都不太可能有任何有价值的资产,黑客也不想浪费时间。

然后开始搜索sweets“甜点”,也就是你的资产。

对不同的资产,黑客丧心病狂地布置了约30多个case,包括ETH/BSC/ARB等知名主网的主币和其上的知名项目的代币、NFT等,只要你有相应的资产,就会直接触发转账动作。

以其中transferNative()转走主币为例,虽然发送这一步还是要取得签名的,但中招的用户应该不少。

Ledger应对方法很简单:夺回账号控制权,更新库版本1.1.8,发布新库。

可以看到1.1.8的更新记录,没有任何实际内容,只有版本号变化,因为github上的代码库并没有出问题。

Ledger在发布新版本后,一是可以让开发者使用最新的1.1.8版本而非被黑客替换的版本,二是可以让用户检查是否正在使用有问题的版本。

修复方法

对用户而言,应访问先访问https://cdn.jsdelivr.net/npm/@ledgerhq/connect-kit@1 看看图中划出来这部分文字是否是1.1.8 ,或者更高的版本,如果是则表示安全。

如果不是,进入浏览器的开发者工具,清除缓存后完成修复。

对开发者而言,应该更新项目内的npm依赖。已经上线的项目的且不是在线动态引用库的项目,并且使用了有问题版本的,应该重新编译和部署。

Q:我不是Ledger用户,会不会受影响?

A:根据Ledger官方的介绍,这个库是用来连接Ledger钱包的。但黑客修改了弹窗逻辑,其他钱包用户也可能受影响。

Q:助记词或者私钥会被盗吗?

A:不会。不论冷钱包和热钱包,其keyring私钥管理模块都只在限定的场景内交出助记词和私钥(一般是用户要求查看助记词)。不可能暴露给任何其他函数调用。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。