
网络安全研究人员披露了一个恶意Go模块的详细信息,该模块旨在窃取密码、通过SSH创建持久访问权限,并投放名为Rekoobe的Linux后门。
该Go模块github[.]com/xinfeisoft/crypto伪装成合法的"golang.org/x/crypto"代码库,但注入了恶意代码,负责将通过终端密码提示输入的秘密信息泄露到远程端点,获取响应中的shell脚本并执行。
Socket安全研究员Kirill Boychenko表示:"这种活动符合命名空间混淆和模拟合法golang.org/x/crypto子仓库的特征(及其GitHub镜像github.com/golang/crypto)。合法项目将go.googlesource.com/crypto标识为规范版本,将GitHub视为镜像,威胁行为者滥用这一区别使github.com/xinfeisoft/crypto在依赖关系图中看起来很常规。"
具体而言,后门被放置在"ssh/terminal/terminal.go"文件中,因此每当受害者应用程序调用ReadPassword函数时——该函数本应用于从终端读取密码等输入——就会导致交互式秘密信息被捕获。
下载脚本的主要职责是充当Linux阶段器,将威胁行为者的SSH密钥附加到"/home/ubuntu/.ssh/authorized_keys"文件中,将iptables默认策略设置为ACCEPT以试图放松防火墙限制,并从外部服务器检索额外负载,同时用.mp5扩展名伪装它们。
在两个负载中,一个是测试互联网连接并尝试通过TCP端口443与IP地址("154.84.63[.]184")通信的辅助程序。Socket指出,该程序可能作为侦察或加载器运行。
第二个下载的负载被评估为Rekoobe,这是一个已知的Linux木马,自2015年以来在野外被检测到。该后门能够接收来自攻击者控制服务器的命令,下载更多负载、窃取文件并执行反向shell。直到2023年8月,Rekoobe还被APT31等中国国家级组织使用。
虽然该包仍在pkg.go.dev上列出,但Go安全团队已采取措施将该包标记为恶意软件。
Boychenko说:"这种攻击活动很可能会重复,因为这种模式低成本高影响:一个相似的模块钩住高价值边界(ReadPassword),使用GitHub Raw作为轮换指针,然后转向curl | sh阶段和Linux负载投放。"
"防御者应该预期类似的供应链攻击针对其他'凭证边缘'库(SSH助手、CLI认证提示、数据库连接器)以及通过托管服务的更多间接方式来轮换基础设施而无需重新发布代码。"
Q&A
Q1:什么是恶意Go模块github.com/xinfeisoft/crypto?
A:这是一个伪装成合法golang.org/x/crypto代码库的恶意Go模块。它通过命名空间混淆的方式,在依赖关系图中看起来很正常,但实际上注入了恶意代码,用于窃取通过终端输入的密码等敏感信息。
Q2:Rekoobe后门有什么功能?
A:Rekoobe是一个Linux木马,自2015年以来就在野外被发现。它能够接收攻击者控制服务器的命令,执行下载更多恶意负载、窃取文件、建立反向shell等操作,最近还被APT31等中国国家级黑客组织使用。
Q3:这种供应链攻击为什么难以防范?
A:因为攻击者使用低成本高影响的模式:通过相似模块钩住ReadPassword等高价值函数,利用GitHub Raw作为轮换指针,然后通过curl管道执行shell命令投放Linux恶意负载,整个过程看起来很常规且难以察觉。