Rust生态安全警报:恶意crates.io包窃取加密货币私钥

2025年9月,crates.io团队发现两个恶意Rust包faster_log和async_println,通过类型混淆攻击窃取以太坊和Solana私钥,已分别被下载7181次和1243次,团队已立即删除这些恶意包并展开调查。

crates.io:恶意crates包faster_log和async_println | Rust博客

2025年9月24日 · Walter Pearce
代表crates.io团队发布

更新于2025年9月24日17:34:38 UTC - Socket公司已发布关于此次攻击的配套博客文章

概述

9月24日,Socket威胁研究团队的Kirill Boychenko向crates.io团队报告了两个恶意crates包,这些包正在主动搜索文件内容以获取以太坊私钥、Solana私钥和用于外泄的任意字节数组。

这些恶意crates包包括:

  • faster_log - 2025年5月25日发布,下载7181次
  • async_println - 2025年5月25日发布,下载1243次

恶意代码在运行时执行,当运行或测试依赖这些包的项目时触发。值得注意的是,它们在构建时未执行任何恶意代码。除了恶意负载外,这些crates包复制了合法crates包的源代码、功能和文档,并使用类似的名称(属于类型混淆攻击¹)。

采取的措施

相关用户账户立即被禁用,恶意crates包随后从crates.io删除²。删除操作于2025年9月24日15:34 UTC执行。

我们保留了与这些用户和恶意crates文件相关的所有日志副本以供进一步分析。

技术分析

这两个crates包都是提供日志功能crate的副本,恶意crates中的日志实现仍然保持功能。原始crate具有执行日志文件打包的功能,该功能会遍历相关目录的文件。

攻击者在日志打包操作期间插入了执行恶意行为的代码,从该目录处理的日志文件中搜索:

  • 带引号的以太坊私钥(0x + 64位十六进制)
  • Solana风格的Base58密钥
  • 带括号的字节数组

然后,这些crates包将搜索结果外泄到https://mainnet[.]solana-rpc-pool[.]workers[.]dev/

这些crates包在crates.io上没有下游依赖包。与这些crates包相关的恶意用户没有其他crates包或发布记录,团队正在积极调查我们保留³日志中的关联行为。

致谢

感谢Socket威胁研究团队的Kirill Boychenko报告这些crates包。我们还要感谢crates.io团队的Carol Nichols、Rust安全响应工作组的Pietro Albini和Rust基金会的Walter Pearce协助应对此次事件。


¹ 类型混淆是恶意行为者用来发起依赖混淆攻击的技术,合法用户可能被诱骗使用恶意依赖而不是他们预期的依赖。

² 这些crates包被保留以供未来分析,以防出现其他攻击,并为未来的扫描工作提供信息。

³ crates.io保留一年的日志,但我们的日志平台上只有30天的日志可立即使用。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计