Lazarus 组织在 npm 与 PyPI 生态系统投放恶意软件包
网络安全研究人员发现,一批新出现的恶意软件包分布在 npm 和 Python 包索引(PyPI)仓库,这些软件包与北朝鲜关联的 Lazarus 组织策划的伪装招聘主题活动有关。
该协同活动代号为 graphalgo,以 npm 注册表中发布的首个软件包命名。评估显示该活动自 2025 年 5 月起持续活跃。
ReversingLabs 研究员 Karlo Zanki 在报告中指出,开发者会通过 LinkedIn、Facebook 等社交平台或 Reddit 等论坛的招聘信息被接触到。该活动围绕一家涉及区块链和加密货币交易的公司构建了完整的故事情节。
值得注意的是,已识别的 npm 软件包之一 bigmathutils 在发布首个非恶意版本后下载量超过 1 万次,随后第二个版本才加入恶意载荷。以下列出了这些软件包名称:
npm -
- graphalgo
- graphorithm
- graphstruct
- graphlibcore
- netstruct
- graphnetworkx
- terminalcolor256
- graphkitx
- graphchain
- graphflux
- graphorbit
- graphnet
- graphhub
- terminal-kleur
- graphrix
- bignumx
- bignumberx
- bignumex
- bigmathex
- bigmathlib
- bigmathutils
- graphlink
- bigmathix
- graphflowx
PyPI -
- graphalgo
- graphex
- graphlibx
- graphdict
- graphflux
- graphnode
- graphsync
- bigpyx
- bignum
- bigmathex
- bigmathix
- bigmathutils
与北韩威胁行为者常用的以招聘为导向的攻击类似,攻击链首先建立一个伪装的区块链和加密货币交易公司(如 Veltrix Capital),并搭建相应的数字资产以制造合法性假象。
这包括注册域名并创建关联的 GitHub 组织,用于托管多个用于编码评估的仓库。已发现这些仓库包含基于 Python 和 JavaScript 的项目。
研究员 Zanki 表示,这些仓库本身未直接表现出恶意功能,恶意行为是通过 npm 与 PyPI 开源包的依赖间接引入的。
攻击者利用这些仓库诱骗在 Reddit、Facebook 群组等平台应聘的候选人在本地运行项目,从而自动安装恶意依赖并触发感染。部分受害者甚至会收到看似合法的 LinkedIn 招聘者的直接联系。
这些软件包充当了部署远控木马(RAT)的渠道,木马会定期从外部服务器获取并执行指令,支持收集系统信息、枚举文件目录、列出运行进程、创建文件夹、重命名、删除以及上传/下载文件等操作。
有趣的是,指挥控制(C2)通信采用基于令牌的机制,仅接受带有有效令牌的请求。这一做法在 2023 年与北韩黑客组织 Jade Sleet(亦称 TraderTraitor 或 UNC4899)相关的活动中已有观察。

其工作原理大致如下:软件包在注册阶段向 C2 服务器发送系统数据,服务器返回令牌。随后受感染系统在后续请求中携带该令牌,以证明其已注册的身份。
Zanki 向 The Hacker News 表示,基于令牌的方式在公共包仓库中极少见,未见其他行为者采用。
研究结果显示,北韩国家支持的威胁行为者继续向开源生态系统投毒,以窃取敏感数据并进行金融盗窃,RAT 甚至会检查机器上是否安装了 MetaMask 浏览器扩展。
ReversingLabs 评价此活动高度复杂,模块化、长期潜伏、在不同环节建立信任以及多层加密的恶意软件均指向国家级威胁行为者。
更多恶意 npm 软件包被发现
与此同时,JFrog 发现了一个名为 "duer-js" 的恶意 npm 软件包,由用户 "luizaearlyx" 发布。该库声称是用于提升控制台可视性的工具,实则隐藏了名为 Bada Stealer 的 Windows 信息窃取器。
它能够收集 Discord 令牌、密码、Cookie、Chrome、Edge、Brave、Opera、Yandex 浏览器的自动填充数据、加密钱包信息以及系统信息,并将数据泄露至 Discord webhook 和 Gofile 文件存储服务。
安全研究员 Guy Korolevski 说明,除了窃取受感染主机信息外,恶意软件包还会下载二次载荷,该载荷在 Discord 桌面应用启动时运行,具备自我更新功能并直接窃取用户的支付方式。
此发现与另一恶意软件活动相吻合,该活动利用 npm 对开发者进行加密货币勒索,要求在执行 "npm install" 时支付 0.1 USDC/ETH。该活动首次记录于 2026 年 2 月 4 日,被 OpenSourceMalware 命名为 XPACK ATTACK。
![]() |
| duer-js 恶意软件包流程,劫持 Discord 的 Electron 环境 |
以下是由用户 "dev.chandra_bose" 上传的 XPACK 系列软件包名称:
- xpack-per-user
- xpack-per-device
- xpack-sui
- xpack-subscription
- xpack-arc-gateway
- xpack-video-submission
- test-npm-style
- xpack-subscription-test
- testing-package-xdsfdsfsc
安全研究员 Paul McCarty 解释,此攻击创新性地利用 HTTP 402 "Payment Required" 状态码创建看似合法的付费墙,要求受害者支付后才能完成安装,同时收集 GitHub 用户名和设备指纹。
如果受害者拒绝支付,安装将因耗时超过 5 分钟而失败,且他们往往难以辨别这是一场恶意软件还是正常的付费墙。
The Last 24 Hours | 安全无小事
