导语:安全研究人员近日披露,与朝鲜政府有关联的APT组织正在加大供应链攻击力度,已向npm、Packagist、Go和Chrome Web Store四大主流开源平台投放共计108个恶意软件包和浏览器扩展。这场被命名为”PolinRider”的攻击活动仍在持续,企业和开发者应立即展开自查。
一、攻击概况
1.1 活动背景
PolinRider攻击活动最早由OpenSourceMalware团队于2026年3月首次发现并命名,被认为是朝鲜”Contagious Interview”(传染性面试)行动的最新阶段。该行动自2023年起活跃,攻击者伪装成招聘人员或协作者,在LinkedIn、GitHub等平台寻找软件开发者或加密货币从业者,通过虚假的职位面试和评估诱骗目标执行恶意代码。
1.2 规模统计
根据Socket安全研究人员的分析,本次PolinRider活动中发现的162个恶意释放物对应108个独立软件包和扩展,具体分布如下:
- npm库:19个
- Composer包(PHP):10个
- Go模块:61个
- Chrome浏览器扩展:1个
截至2026年4月11日,该活动已入侵1951个公开GitHub仓库,涉及1047个独立所有者。

二、攻击技术分析
2.1 初始入侵手段
PolinRider攻击链的起点并非传统的凭证盗取。安全研究人员指出:”威胁行为者并未使用窃取的GitHub凭证”,而是通过以下路径入侵开发者环境:
- 恶意VS Code扩展或npm包:攻击者诱导开发者安装带有恶意代码的扩展或软件包
- 维护者账户接管:通过过期域名接管或其他账户恢复路径劫持合法维护者账户
- 恶意版本发布:在被攻陷的账户下发布感染版本
2.2 恶意代码注入机制
一旦恶意代码执行,攻击者会搜索受害者计算机中的特定配置文件并注入恶意JavaScript代码,目标文件包括:
postcss.config.mjstailwind.config.jseslint.config.mjsnext.config.mjsbabel.config.jsapp.js
攻击同时使用Windows批处理脚本静默修改最后一次提交记录,使其看起来像是原始作者所为,并可能存在针对Linux和macOS的类似Git历史重写工具。
2.3 隐蔽传输与持久化
核心攻击手法包括:
- Git历史重写:通过force push和反追溯提交(anti-dated commits)使恶意变更看起来更早、更不可疑
- 伪装隐藏:利用空白字符填充或伪造
.woff2字体文件隐藏恶意JavaScript载荷 - 开发者工具触发:通过VS Code任务文件中的
"runOn: 'folderOpen'"选项,在IDE打开工作区时自动执行任意代码
2.4 区块链架构C2
最新的攻击载荷作为JavaScript恶意加载器运行,连接区块链基础设施获取加密的第二阶段载荷,包括:
- TRON网络
- Aptos网络
- BNB Smart Chain
最终载荷为DEV#POPPER RAT(远程访问木马)和OmniStealer(信息窃取木马),专门用于窃取开发者凭证和敏感数据。
三、MITRE ATT&CK框架映射
根据MITRE ATT&CK v14框架,本次攻击活动涉及以下关键技术手段:
| 战术阶段 | 技术ID | 技术名称 |
|---|---|---|
| 初始访问 | T1195.001 | 供应链妥协:软件供应链攻击 |
| 执行 | T1059.007 | 命令和脚本解释器:JavaScript |
| 执行 | T1603 | 通过开发者工具执行 |
| 持久化 | T1548.001 | 滥用提升权限:VS Code任务 |
| 防御规避 | T1070.006 | 主机修改:Git历史修改 |
| 防御规避 | T1036.007 | 伪装:合法名称或功能滥用 |
| 凭证访问 | T1552.001 | 不安全凭证:明文凭证 |
| 数据窃取 | T1041 | 通过C2通道窃取 |
四、蓝队检测与防御建议
4.1 紧急排查清单
对于可能受影响的企业和安全团队,建议立即执行以下排查操作:
开发者工作站端:
- 检查已安装的npm、Composer、Go包列表,核实来源可信性
- 审计
.vscode/tasks.json文件,查找可疑的自动执行任务配置 - 检查
postcss.config.mjs、tailwind.config.js、eslint.config.mjs等文件的完整性 - 审查Git提交历史,识别异常变更
GitHub仓库端:
- 审查仓库活动日志和发布元数据
- 检查是否存在异常的force push操作
- 识别修改过配置文件的可疑提交
- 特别注意
.vscode/tasks.json、config.js、vite.config.js、eslint.config.js等文件
4.2 事件响应流程
已安装相关恶意包的处置步骤:
- 隔离环境:立即将受感染工作区从网络中断开
- 泄露排查:从干净机器修改所有已暴露的密钥和凭证
- 清除感染:移除受影响版本,从已知良好状态的lockfile重新构建
- 全面审计:对工作站和仓库进行深度排查,识别隐藏的执行路径或可疑提交
4.3 防御纵深建设
预防层面:
- 启用GitHub的分支保护规则,限制force push权限
- 对关键配置文件实施代码签名或完整性校验
- 审查所有自动化构建流程的触发条件
检测层面:
- 部署依赖包安全扫描工具(如Socket、Snyk)
- 监控VS Code等IDE的文件夹打开事件
- 审计npm/Composer/Go包的发布源头和版本变更
响应层面:
- 建立供应链安全事件响应预案
- 定期开展红蓝对抗演练,模拟供应链攻击场景
- 保持威胁情报订阅,及时获取最新攻击活动通报
五、总结
PolinRider攻击活动的持续升级再次证明,供应链攻击已成为国家级APT组织的重要突破口。对于蓝队而言,这提醒我们几个关键点:
第一,信任边界正在扩大。 现代软件开发高度依赖开源生态,攻击者正是利用这一特点,将恶意代码植入看似正常的软件包中。每一个第三方依赖都可能成为攻击跳板。
第二,开发者工作站是核心资产。 攻击者目标明确——通过入侵开发者环境获取高价值凭证和代码资产。工作站的安全与生产环境安全同等重要。
第三,假设已被攻破。 正如此次事件所示,Git历史可以被重写,提交记录可以被伪造。防御者不应仅依赖日志和提交历史,需结合行为分析和完整性校验进行判断。
面对持续演进的供应链威胁,安全运营团队应将第三方依赖纳入持续监控范围,建立快速响应机制,从预防、检测、响应三个维度构建纵深防御体系。
参考资料:
- North Korean Hackers Publish 108 Malicious Packages and Extensions in PolinRider Campaign – The Hacker News,发表于 2026年7月
- PolinRider: North Korea Linked Supply Chain Campaign Expands – Socket安全团队
- Contagious Interview Attack Analysis – MITRE ATT&CK
版权声明:本文由华盟网原创发布,保留所有权利。配图由华盟网授权使用。













暂无评论内容