伪造的 Next.js 求职面试测试项目 在开发者设备安装后门
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”并附上原文