伪造的 Next.js 求职面试测试项目 在开发者设备安装后门
- 浏览次数 410
- 喜欢 0
HackerNews 编译,转载请注明出处:
一场以求职为诱饵针对软件开发人员的协同攻击活动,正利用伪装成合法 Next.js 项目和技术评估材料(包括招聘编码测试)的恶意代码仓库实施攻击。
攻击者的目标是在开发者设备上实现远程代码执行(RCE)、窃取敏感数据,并在受入侵系统中植入额外的有效载荷。
多重执行触发机制
Next.js 是一款用于构建 Web 应用的热门 JavaScript 框架,它基于 React 运行,并使用 Node.js 作为后端。
微软防御团队表示,攻击者创建了伪造的基于 Next.js 构建的 Web 应用项目,并将其伪装成编码项目,在求职面试或技术评估环节分享给开发者。
研究人员最初发现了一个托管在 Bitbucket(基于 Git 的云端代码托管与协作服务)上的代码仓库。但随后发现了多个具有相同代码结构、加载器逻辑和命名模式的代码仓库。
当目标开发者按照标准流程克隆该仓库并在本地打开时,会触发恶意 JavaScript 代码,该代码在启动应用时自动执行。
该脚本从攻击者的服务器下载额外的恶意代码(一个 JavaScript 后门),并通过正在运行的 Node.js 进程直接在内存中执行,从而实现对设备的远程代码执行。
攻击链概述(来源:微软)
微软解释称,为提高感染率,攻击者在恶意代码仓库中嵌入了多重执行触发机制。具体总结如下:
- VS Code 触发机制 —— 配置了 runOn: "folderOpen" 的 .vscode/tasks.json 文件,会在项目文件夹被打开(且被信任)时立即执行一个 Node 脚本。
- 开发服务器触发机制 —— 当开发者运行 npm run dev 命令时,一个被植入木马的资源(如修改后的 JS 库)会解码隐藏的 URL,从远程服务器获取加载器并在内存中执行。
- 后端启动触发机制 —— 服务器启动时,一个后端模块会从 .env 文件中解码 base64 格式的端点地址,将 process.env 信息发送给攻击者,接收响应的 JavaScript 代码并通过 new Function () 执行。
感染过程会释放一个 JavaScript 有效载荷(第一阶段),该载荷会收集主机信息并向命令与控制(C2)端点注册,按固定时间间隔轮询服务器。
随后感染会升级为任务控制器(第二阶段),连接至另一个独立的 C2 服务器,检查待执行任务,在内存中执行下发的 JavaScript 代码,并跟踪衍生的进程。该有效载荷还支持文件枚举、目录浏览和分阶段文件窃取。
第二阶段的服务器轮询功能(来源:微软)
微软发现,此次攻击活动涉及多个具有相同命名规则、加载器结构和分级基础设施的代码仓库,表明这是一场协同攻击,而非单次攻击行为。
除技术分析外,研究人员未披露关于攻击者或攻击规模的任何细节。
这家科技巨头建议,开发者应将日常标准工作流程视为真正的高风险攻击面,并采取相应的防范措施。
建议的缓解措施包括启用 VS Code 工作区信任 / 受限模式、使用攻击面减少(ASR)规则,以及通过 Entra ID Protection 监控高风险登录行为。
应尽量减少存储在开发者终端上的敏感信息,并尽可能使用权限最小化的短期令牌。
消息来源:bleepingcomputer.com;
本文由 HackerNews.cc 翻译整理,封面来源于网络;
转载请注明“转自 HackerNews.cc”并附上原文