Linux 擦除型恶意软件隐藏在 GitHub 上的恶意 Go 模块中
研究人员发现,攻击者在 GitHub 发布恶意 Go 模块,专门针对 Linux 系统,下载并执行名为 done.sh 的脚本,使用 dd 命令彻底擦除 /dev/sda 磁盘数据,导致系统完全瘫痪、数据无法恢复。这是一起典型的供应链攻击案例。
一场针对 Linux 服务器的供应链攻击被发现,攻击者在 GitHub 上发布了包含恶意代码的 Go 模块,其目的是在受害系统上执行磁盘擦除操作。
该攻击活动于上月被检测到,涉及三个恶意的 Go 模块,这些模块包含“高度混淆的代码”,用于检索远程有效载荷并执行。
完全擦除磁盘
此次攻击似乎专门针对基于 Linux 的服务器和开发环境,其破坏性有效载荷是一个名为 done.sh 的 Bash 脚本,该脚本运行 dd 命令以执行文件擦除操作。
此外,该有效载荷会验证其是否在 Linux 环境中运行(runtime.GOOS == "linux")后才尝试执行。
供应链安全公司 Socket 的分析显示,该命令会用零覆盖每一个字节的数据,导致不可逆的数据丢失和系统故障。
攻击的目标是主要存储卷 /dev/sda,该卷包含关键的系统数据、用户文件、数据库和配置。
“通过用零填充整个磁盘,脚本完全破坏了文件系统结构、操作系统和所有用户数据,使系统无法启动且无法恢复。”
—— Socket
研究人员于 4 月发现了此次攻击,并在 GitHub 上识别出三个 Go 模块,这些模块现已从平台上移除:
- github[.]com/truthfulpharm/prototransform
- github[.]com/blankloggia/go-mcp
- github[.]com/steelpoor/tlsproxy
这些模块在被导入时会执行恶意代码,下载并运行 done.sh 脚本,从而擦除系统磁盘。
目前尚不清楚有多少系统受到影响,但建议开发者和系统管理员检查其项目依赖,确保未使用上述恶意模块。
据 Socket 研究人员称,有效负载在下载后立即执行,“几乎没有时间进行响应或恢复”。
恶意 Go 模块似乎冒充了将消息数据转换为各种格式 (Prototransform) 的合法项目、模型上下文协议的 Go 实现 (go-mcp) 以及为 TCP 和 HTTP 服务器提供加密的 TLS 代理工具 (tlsproxy)。
Socket 研究人员警告说,即使最轻微地暴露于所分析的破坏性模块,也会产生重大影响,例如完全丢失数据。
由于 Go 生态系统的去中心化性质缺乏适当的检查,来自不同开发人员的包可以具有相同或相似的名称。
攻击者可以利用这一点创建看似合法的模块命名空间,并等待开发人员将恶意代码集成到他们的项目中。
评论1次
这种如果是被运维下载并执行,那可能造成较大的安全事故,有什么办法可以避免吗。