[朝鲜黑客入侵axios供应链,开发者须立即采取行动]

Photo of author

By Global Team

 

被插入恶意代码的JavaScript包的传播使整个开发环境的安全警报亮起。(图片=Freepik)
被插入恶意代码的JavaScript包的传播使整个开发环境的安全警报亮起。(图片=Freepik)

全球开发者每周从NPM生态系统下载的JavaScript库静悄悄地被污染了。谷歌威胁情报小组(GTIG)宣布,上月31日在NPM生态系统中分发的axios包的两个版本中发现了恶意代码。一旦安装,后门程序便会被植入,开发者自己也难以察觉。

问题的版本是1.14.1和0.30.4。每周下载次数分别达到1亿次和8300万次。攻击者入侵axios管理员账号后,偷偷插入名为’plain-crypto-js’的恶意依赖包。NPM滥用’postinstall’钩子在包安装后自动执行,用于植入后门程序而无需用户干预。

GTIG将此攻击分析为与朝鲜相关的以金钱为目的的黑客组织UNC1069的行动。从2018年开始活动的该组织,这次投入了已升级的恶意代码WAVESHAPER.V2。

它不分Windows、macOS或Linux进行感染,并以60秒的间隔发送信号给攻击者的服务器等待远程命令。

◎感染路径,这样入侵

攻击手法狡黠。安装脚本本身经历了混淆处理,即便查看代码也难以理解其操作。结合XOR方式和Base64隐藏了核心命令和服务器地址。执行后尝试自我删除以清除痕迹。

根据操作系统不同嵌入的有效载荷也不同。在Windows环境中,将正常文件PowerShell复制为其他名称后以隐藏模式运行。

在macOS中,将执行文件下载至系统缓存路径后在后台运行。

在Linux中,基于Python的后门占据临时目录。不论哪种情况,安装完成后都会将感染痕迹package.json恢复原样以逃避检测。

一旦后门被植入,攻击者便可以获得相当高的权限。能够收集系统信息、浏览目录、执行任意脚本以及注入额外的执行文件。在Windows环境中,在注册表中添加项目,以便在重启后依旧存活。

◎迅速应对措施

首先要确认是否被感染。打开项目的锁定文件(package-lock.json或yarn.lock)搜索’plain-crypto-js’项目。如存在版本4.2.0或4.2.1,则需视为感染环境。利用Wiz或Open Source Insights等依赖审查工具可一次性确认下级依赖。

版本控制是第二步。立即停止使用axios 1.14.1和0.30.4。安全版本分别为1.14.0以下和0.30.3以下。明确在package-lock.json中固定相应版本以阻止意外升级。如在运营企业内部NPM仓库,立即修改设置以防止服务感染版本。

第三步是暂时中止CI/CD管道。停止依赖axios的所有构建发布。如还有自动拉取’最新版本(latest)’的设置,这次机会必须删除。显示固定安全版本后重新发布。

网络阻断是可即时执行的措施。从防火墙中阻止所有前往攻击者基础设施域sfrclak[.]com及IP地址142.11.206.73的通信。如已有感染设备,可能正尝试以60秒周期通信至该地址。

恶意代码与C2服务器通信的网络入侵指示器(IOC)数据画面。(来源=谷歌)
恶意代码与C2服务器通信的网络入侵指示器(IOC)数据画面。(来源=谷歌)

◎确认感染后应当做什么

被发现plain-crypto-js的环境应视为整体受到入侵的原则。隔离该环境并恢复至已知正常状态。接下来是更换凭证。更改在该环境中使用的所有API密钥、令牌、访问密码。假设在后门植入时点已经暴露的可能性进行应对。

也需删除NPM、yarn、pnpm的本地及共享缓存。如缓存中留有感染文件,后续安装过程可能会再次感染。开发者工作站和构建服务器均属于清理对象。

如在当前开发环境下没有端点检测和响应(EDR)解决方案,此时应考虑引进。Node.js进程中生成异常子进程的模式是本次攻击的主要行为指征。GTIG公开的YARA规则可应用于构建服务器和开发者终端有助于事后检测。

中长期来看,建议采用将开发环境本身隔离在容器或沙盒内的方式。还原明文存放敏感凭证在代码或环境变量中的惯例也是此次攻击企图攻击的点。转移至操作系统钥匙链或安全金库是根本对策。

此次事件揭示的核心是对开源生态系统的信任成为攻击载体。这种像axios一样被数亿人信任的包,管理员账号一旦被攻破,顷刻间便会变成武器。固定版本和定期审计依赖性,成为现时需要开发者具备的最实际的防线。

댓글 남기기