安全研究机构ESET在10月28日发布的APT活动报告中披露,与朝鲜相关的黑客组织DeceptiveDevelopment已从伪装招聘诱骗开发者,转向窃取开发者凭证并入侵软件供应链。该组织在2026年4月至9月间篡改公共和私有代码仓库,把恶意代码植入开发者信任的软件项目。
ESET称,受影响的项目出现在npm、Go模块镜像、Packagist、PyPI和浏览器扩展商店等平台,多数是单人维护的小型工具。每个被污染的项目都会成为攻击者进入其使用者系统的新入口。
从假招聘到供应链攻击
DeceptiveDevelopment这一名称在安全研究界已出现多年,其早期手法是以虚假招聘人员和编程测试为诱饵接触开发者。ESET在报告中指出,该组织此前的主要目标是窃取加密货币钱包和浏览器登录信息,攻击范围相对有限。
新阶段的攻击起点仍然是诱饵,例如伪装成招聘任务、要求开发者运行某个项目文件。但一旦文件被执行,攻击的落点就从个人资产转向了开发者所依赖的软件供应链。研究人员认为,这一变化说明朝鲜相关组织对开发者机器的重视程度明显上升。
原因在于一台开发用笔记本电脑往往同时保存Git登录凭证、云服务密钥和软件包发布权限。对攻击者而言,控制这样一台机器比窃取单个密码有用得多,一名被感染的开发者可能让数十甚至数百名下游用户面临风险。
凭证窃取与代码篡改
根据ESET的描述,恶意文件运行后会在计算机上搜索Git凭证、SSH密钥和访问令牌。攻击者随后以开发者本人的身份登录,向受害者自己的代码仓库中添加恶意代码。
为躲避团队成员的检查,攻击者往往会重写提交历史,使项目日志中不易看出改动痕迹。被污染的代码由此进入开发者最信任的分发渠道,形成从单个开发者向更广用户群扩散的路径。
ESET在10月28日发布于WeLiveSecurity的APT活动报告中披露了上述细节,报告覆盖的时间范围为2026年4月至9月。该机构认为,这一阶段的攻击已从伪装招聘诱骗,扩展为更广泛的软件供应链入侵。
受影响的平台与项目
报告指出,多数被污染的项目是由单人维护的小型工具。研究人员据此判断,攻击者的扩散方式更接近自动化投放,而非逐一挑选高价值目标。
无论项目大小,每一个被植入恶意代码的项目都会成为攻击者进入其使用者系统的新入口。下载并运行这些项目的开发者,可能在不知情的情况下把恶意代码引入自己的工作环境。
两款主要恶意工具
ESET在多条感染链的末端识别出两款主要工具。第一款是OmniStealer,这是一个用Python编写的信息窃取程序,可在多个操作系统上运行,并且更新频繁。
OmniStealer的目标包括浏览器登录信息、加密货币钱包、密码管理器和开发者密钥。第二款是DEV POPPER,一个用Node.js编写的远程访问木马。
此前对DEV POPPER的研究显示,它能够记录键盘输入并执行远程命令。新版本会把自身代码注入开发者日常打开的应用,包括VS Code、Cursor和Discord,从而在这些程序每次启动时重新运行。
区块链隐藏服务器手法
该组织还在提高其基础设施的抗关停能力。ESET分析了一批使用公开称为NullReceiver方法的npm包:加载器会查询一个硬编码以太坊地址的最新交易,再从一笔本身为空的转账的接收地址中读取命令服务器IP地址。
这种方式让攻击者只需发起一笔新交易就能切换到新服务器,无需更新任何软件包,而区块链记录本身也无法被删除。ESET表示,今年早些时候已有NullReceiver相关的npm活动使用过相同思路。
ESET还在一名真实开发者拥有的被武器化仓库中发现了这一方法,该仓库由一个隐藏的VS Code任务启动。按其追踪,这是首次出现基于区块链的服务器查询被直接内置到GitHub托管项目中的案例。
在诱饵和载荷的存放上,攻击者转向更难移除的服务:早期阶段的虚假Web3编程挑战被放在可自行托管的Gitea上,后续载荷则存放在JSONBin.io、JSONHosting以及IPFS网关Pinata。由于IPFS按内容寻址,关闭账户并不总能删除文件。ESET据此认为,该组织利用这六个月扩大了受害者范围,并让下架处置变得更加困难。
要点
- ESET报告覆盖2026年4月至9月的活动
- 攻击仍以伪装招聘任务作为诱饵
- 恶意代码出现在npm、PyPI等五类平台
- 多数被感染项目由单人开发者维护
- 攻击者用以太坊交易记录查找命令服务器

正在读取登录状态…
暂无讨论,说说你的看法吧