GitHub开源项目暗藏杀机:Solidity面试练习竟是数据窃取陷阱

近期,一个在GitHub上以Solidity智能合约面试练习题身份出现的开源项目,被安全研究人员揭开了真面目。这个名为“sol-live”的仓库,实际上是一个精心伪装的攻击载体,专门针对区块链开发者的敏感信息。

攻击手法剖析:隐藏在开发环境配置中的恶意载荷

攻击者的手段相当隐蔽。恶意代码并非直接存在于项目源码中,而是藏匿在.vscode/settings.json这个Visual Studio Code编辑器的配置文件里。当开发者按照常规操作,在VSCode中打开该项目并启动其预设的“自定义终端配置”时,攻击链便被悄然触发。

该配置会秘密下载并执行一个来自远程服务器的脚本。这个脚本功能强大,构成了一个完整的数据窃取工具包:

  • 凭证收集: 扫描并窃取浏览器保存的登录数据库、各类钱包浏览器扩展的本地存储数据。
  • 系统渗透: 针对macOS系统,尝试读取Keychain钥匙串中的敏感信息。
  • 持久控制: 具备上传本地任意文件、远程执行命令、提供反向Shell交互访问的能力。
  • 实时监控: 持续监控系统剪贴板内容,旨在捕获复制的助记词或私钥。

攻击条件与平台差异

此次攻击需要一定的用户交互才能得逞。无论是macOS还是Linux系统,都需要开发者主动在VSCode中运行那个被篡改过的终端配置,恶意脚本才会执行。这降低了大范围自动传播的可能性,但也使得警惕性不高的开发者更容易中招。

由于脚本中引号处理存在差异,在Windows系统上的攻击链是否完整生效,目前尚未得到最终确认,但这绝不意味着Windows用户可以掉以轻心。

威胁范围扩大:已发现多个同类恶意仓库

更令人担忧的是,“sol-live”并非孤例。安全团队在进行关联分析后,发现了另外8个采用了完全相同手法的GitHub项目。它们都伪装成编程练习、工具或模板项目,利用开发者对开源社区的信任。

目前,这些项目的具体感染范围、是否有数据已经外泄,都还是未知数。这种“广撒网”式的攻击,针对的正是区块链开发这一高价值目标群体。

给开发者的紧急安全建议

如果你经常从GitHub克隆或下载项目进行学习或开发,请立刻采取以下措施:

  • 运行前检查: 对于来源不明或信任度不高的项目,在运行前务必仔细检查其.vscode/settings.json文件以及任何终端启动脚本或配置。
  • 事后排查: 如果怀疑自己已经运行过可疑配置,应立即断开设备网络,进行全面的安全扫描和隔离。重点检查近期是否有异常进程或网络连接。
  • 资产迁移: 在确认设备被感染或无法彻底清除风险后,最稳妥的做法是:在一台全新且干净的可信设备上,生成新的钱包地址,并将所有资产转移过去。同时,更新所有相关的登录凭证和API密钥。

开源生态的协作便利性不应成为安全风险的源头。保持警惕,审查代码,是每一位开发者需要养成的核心安全习惯。