恶意 Go 包利用模块镜像缓存实现持久远程访问

安全
网络安全研究人员近日发现了一起针对Go生态系统的软件供应链攻击,攻击者通过一个恶意包,能够在受感染的系统中实现远程访问。

网络安全研究人员近日发现了一起针对Go生态系统的软件供应链攻击,攻击者通过一个恶意包,能够在受感染的系统中实现远程访问。

恶意包的伪装与传播

根据Socket的分析,这个名为github.com/boltdb-go/bolt的恶意包是对合法BoltDB数据库模块(github.com/boltdb/bolt)的“拼写错误劫持”(typosquat)。恶意版本(1.3.1)于2021年11月发布到GitHub,随后被Go Module Mirror服务无限期缓存。

安全研究员Kirill Boychenko在分析中指出:“一旦安装,这个被植入后门的包会授予攻击者对受感染系统的远程访问权限,使其能够执行任意命令。”Socket表示,这是恶意行为者滥用Go Module Mirror无限期缓存模块功能的最早案例之一,目的是诱使用户下载恶意包。

攻击者的欺骗手段

为了掩盖恶意行为,攻击者随后修改了源代码库中的Git标签,将其重定向到良性版本。这种欺骗手段确保了手动审查GitHub仓库时不会发现任何恶意内容,而缓存机制则意味着使用Go CLI安装该包的开发者会继续下载被植入后门的版本。

Boychenko解释道:“一旦模块版本被缓存,它就可以通过Go Module Proxy访问,即使原始源代码后来被修改。虽然这种设计对合法用例有益,但攻击者利用它来持续分发恶意代码,尽管仓库后续发生了变化。”

安全建议与相关案例

Boychenko提醒道:“不可变模块既提供了安全优势,也可能成为滥用的途径。开发者和安全团队应监控那些利用缓存模块版本来逃避检测的攻击。”

与此同时,Cycode详细披露了三个恶意npm包——serve-static-corell、openssl-node和next-refresh-token。这些包包含混淆代码,用于收集系统元数据并执行远程服务器(“8.152.163[.]60”)在受感染主机上发出的任意命令。

通过以上分析可以看出,软件供应链攻击正变得越来越复杂,开发者和安全团队需要更加警惕,尤其是在使用第三方依赖时,应加强审查和监控,以防止类似攻击的发生。

责任编辑:赵宁宁 来源: FreeBuf
相关推荐

2020-09-30 10:10:52

攻击

2010-05-25 18:29:30

MySQL远程访问

2019-04-08 10:09:04

CPU缓存高性能

2010-08-18 13:13:01

静态路由

2022-06-06 14:17:15

零日漏洞恶意软件网络攻击

2024-05-30 11:48:30

2014-08-19 15:55:30

远程控制内部局域网

2009-10-29 14:46:17

接入网技术

2014-07-01 09:32:06

2009-07-22 10:25:37

2011-07-21 16:04:41

Windows XP组

2012-12-07 14:51:16

2012-06-26 10:27:50

2021-06-23 10:11:36

谷歌远程办公薪酬

2022-05-05 09:04:33

恶意软件黑客

2021-12-15 12:00:17

Pythonpickle存储

2011-08-22 11:39:13

2011-08-04 11:55:20

远程访问

2011-07-14 16:55:36

Java远程访问Domino数据库

2009-12-23 16:32:04

静态路由配置
点赞
收藏

51CTO技术栈公众号