网络犯罪分子发起了一场复杂的供应链攻击,他们通过恶意的Rust crate针对加密货币开发者,目的是窃取数字钱包密钥。
两个欺诈性包faster_log和async_println通过伪装成合法的fast_log日志库潜入了Rust包注册表,它们嵌入了恶意代码,会扫描源文件以查找Solana和以太坊的私钥,然后将这些私钥泄露到攻击者控制的服务器。
这些恶意程序包于2025年5月25日以rustguruman和dumbnbased为别名发布,在被发现前累计下载量达8424次。
这些软件包保持了正常的日志记录功能以逃避检测,同时秘密地从开发者的源代码和项目文件中窃取加密货币凭证。
攻击者采用了域名抢注技术,复制了原始fast_log的README文档和仓库元数据,创建出足以通过粗略审核流程的逼真仿冒品。
Socket.dev的分析师在常规威胁监测中发现了这些恶意软件包,并发现了它们复杂的凭据窃取机制。
研究人员发现,这两个恶意程序包执行了完全相同的数据窃取流程,扫描三种特定模式:以0x为前缀、格式为64字符十六进制字符串的以太坊私钥;32至44字符的Base58编码索拉纳地址和密钥;以及可能包含编码密钥材料的带括号字节数组。
一旦检测到任何匹配模式,恶意软件会立即将窃取的凭据传输到一个硬编码的命令与控制端点,该端点托管在mainnet.solana-rpc-pool.workers.dev,巧妙伪装成看似合法的Solana RPC基础设施。
这种攻击向量利用了开发者对包仓库的信任,展示了微小的代码修改如何能带来重大的安全风险。
威胁行为者在嵌入其凭证窃取程序的同时保留了原始的日志功能,确保这些软件包在初始测试和集成阶段能按预期运行。
这种方法使得恶意代码能够在开发环境和持续集成流水线中悄无声息地运行。
技术实现与数据泄露机制
该恶意软件的核心功能围绕着一个以Rust语言实现的复杂扫描引擎展开,该引擎会递归处理项目目录。
恶意代码利用正则表达式识别嵌入在源文件中的加密货币相关机密,尤其关注区块链开发者常用的模式。
const HARDCODED_ENDPOINT: &str = "https://mainnet.solana-rpc-pool.workers.dev/";
pub struct FoundItem {
pub item_type: String,
pub value: String,
pub file_path: String,
pub line_number: usize,
}
该实现采用了三个有针对性的正则表达式进行模式匹配。第一个针对以太坊私钥,使用模式"0x[0-9a-fA-F]{64}"
来捕获以0x为前缀的64字符十六进制字符串,这些字符串代表标准的以太坊私钥格式。
第二个正则表达式"[1-9A-HJ-NP-Za-km-z]{32,44}"
用于识别典型的Solana地址和公钥的Base58编码字符串,其长度限制符合Solana的加密规范。
第三种模式捕获带括号的字节数组,其格式如[0x12, 0xAB, ...]
或[1,2,...]
,这些数组可能包含原始密钥字节或嵌入的助记词。
当扫描功能识别出匹配模式时,它会构建详细的取证记录,其中包括确切的文件路径、行号、匹配值和模式类型。
这种精确的位置追踪表明,攻击者可能有意开展后续行动,或向被盗凭证的买家提供详细情报。
该恶意软件会将多项发现批量处理为JSON负载,然后通过HTTP POST请求将其传输至攻击者的命令与控制基础设施,并利用标准的HTTPS加密来与合法网络流量混为一体。
这种数据窃取机制通过一个Rust reqwest客户端运作,该客户端将结构化数据发送到由Cloudflare Workers托管的端点。
这种托管选择为攻击者提供了匿名性、可扩展性,以及无需维护专用服务器就能快速修改其收集基础设施的能力。
这些恶意程序包在应用程序运行时而非编译期间处理文件,确保扫描发生在开发者的活跃工作环境中,而加密货币凭证最有可能在这些环境中存在且可访问。
1. 本版块文章内容及资料部分来源于网络,不代表本站观点,不对其真实性负责,也不构成任何建议。
2. 部分内容由网友自主投稿、编辑整理上传,本站仅提供交流平台,不为该类内容的版权负责。
3. 本版块提供的信息仅作参考,不保证信息的准确性、有效性、及时性和完整性。
4. 若您发现本版块有侵犯您知识产权的内容,请及时与我们联系,我们会尽快修改或删除。
5. 使用者违规、不可抗力(如黑客攻击)或第三方擅自转载引发的争议,联盟不承担责任。
6. 联盟可修订本声明,官网发布即生效,继续使用视为接受新条款。