恶意拉取请求插入以太坊代码扩展:研究报告

7 小时前
閱讀 4 分鐘
1 視圖

恶意代码的插入与影响

根据网络安全公司ReversingLabs的研究人员,一名黑客在以太坊开发者的代码扩展中插入了恶意拉取请求。这段恶意代码被嵌入到ETHcode的更新中,ETHcode是一个开源工具套件,供以太坊开发者构建和部署与EVM兼容的智能合约和去中心化应用(dapps)。

ReversingLabs的博客透露,这个包含43个提交和4000行更新代码的GitHub拉取请求中埋藏了两行恶意代码,主要涉及添加新的测试框架和功能。

该更新于6月17日由用户Airez299提交,而该用户没有任何先前的历史记录。该拉取请求经过了GitHub的AI审查员和负责创建ETHcode的7finney团队的分析。仅请求了少量的修改,7finney和AI扫描器均未发现任何可疑之处。

恶意代码的隐藏与目的

Airez299通过将第一行恶意代码命名为与现有文件相似的名称,成功掩盖了其本质,同时对代码进行了混淆和打乱,使其更难以阅读。第二行代码的功能是激活第一行,根据ReversingLabs的说法,最终目的是创建一个自动化功能(一个Powershell),从公共文件托管服务下载并运行一个批处理脚本。

ReversingLabs仍在调查该脚本的具体功能,尽管它们假设该脚本“旨在窃取存储在受害者机器上的加密资产,或者妥协使用该扩展的用户正在开发的以太坊合约。”

行业反应与开发者的担忧

在接受Decrypt采访时,博客作者Petar Kirhmajer表示,ReversingLabs没有迹象或证据表明恶意代码实际上已被用于窃取代币或数据。然而,Kirhmajer在博客中写道,ETHcode有6000次安装,而该拉取请求——本应作为自动更新的一部分推出——可能已经传播到“数千个开发者系统”。

这令人担忧,一些开发者表示,由于该行业严重依赖开源开发,这种类型的攻击在加密领域时有发生。以太坊开发者和NUMBER GROUP联合创始人Zak Cole表示,许多开发者在安装开源包时并未进行充分检查。“有人轻易地插入恶意代码的机会太大了,”他告诉Decrypt。

开发者的防范措施

最近的高调案例包括2023年12月的Ledger Connect Kit漏洞,以及去年12月在Solana的web3.js开源库中发现的恶意软件。“代码太多,而审查的眼睛太少,”Cole补充道。“大多数人只是因为某些东西流行或存在已久就假设它是安全的,但这并不意味着什么。”

Cole强调,虽然这种情况并不新鲜,但“可攻击的表面正在扩大”,因为越来越多的开发者使用开源工具。“此外,请记住,有整整一仓库的朝鲜劳动党特工,他们的全职工作就是执行这些攻击,”他说。

虽然Cole认为可能有更多恶意代码潜伏在其中,超出许多开发者的想象,但Kirhmajer告诉Decrypt,依他估计,“成功的攻击非常罕见。”这引出了一个问题:开发者可以采取什么措施来降低使用被妥协代码的风险?

ReversingLabs建议他们在下载任何内容之前验证贡献者的身份和历史。该公司还建议开发者审查package.json等文件,以评估新依赖项,这也是Zak Cole所倡导的。

“锁定你的依赖项,以免每次构建时引入随机的新内容,这很有帮助,”他说。Cole还建议使用扫描工具来检测异常行为或可疑的维护者,同时留意任何可能突然更换所有权或毫无预警更新的包。“此外,不要在与构建相关的同一台机器上运行签名工具或钱包,”他总结道。“只要假设没有经过检查或沙盒处理的东西都是不安全的。”