每周我们的恶意软件检测系统会扫描 npm 和 PyPI 等公共注册表中的数千个新增和更新的软件包。
本周尤其繁忙。
我们已确认 93 个恶意软件包主要是在 NPM,还有其他病例 的PyPI, OpenVSX和 作曲家其中一些恶意程序以协同集群的形式出现,重复发布以相同名称或密切相关的软件包系列为名的恶意程序。许多程序模仿了…… 支付和结账模块, enterprise 以及内部网络包, 分析客户, UI基础, 开发人员工具, 组件浏览器, 云端和谷歌主题软件包以及其他在现代开发工作流程中常用的模块。
这些并非孤立的异常情况。本周最引人注目的是同一软件包系列中重复发布的规模之大、命名模式的重用,以及恶意软件如何伪装成合法依赖项,嵌入到真实的软件交付环境中。 pipelines.
每周快照是我们正在进行的 恶意代码摘要我们会验证新的威胁,并提供可操作的情报来帮助 DevSecOps 团队 保护他们的 pipeline在损害发生之前。
让我们分析一下本周的发现及其重要性。
| 生态系统 | 小包装 | 日期 |
|---|---|---|
| NPM | pa-marked:99.1.10 | 2026 年 4 月 27 日 |
| pi | moonbit-locale-compat:0.2.3 | 2026 年 4 月 27 日 |
| NPM | @alfa.life.mapp/app.web:99.0.13 | 2026 年 4 月 27 日 |
| NPM | @sbt_gitverse/analytics-client:99.0.1 | 2026 年 4 月 27 日 |
| NPM | @frengki0707/google-cloud-clone:1.33.1 | 2026 年 4 月 27 日 |
| NPM | @alfa.life.mapp/app.web:99.0.14 | 2026 年 4 月 27 日 |
| NPM | @tochka-ui/foundation:99.0.2 | 2026 年 4 月 27 日 |
| openvsx | arcane-spark/ubel:0.1.0 | 2026 年 4 月 28 日 |
| NPM | @2011-08-19/n:99.9.9 | 2026 年 4 月 28 日 |
| NPM | @frengki0707/google-cloud-clone:1.38.0 | 2026 年 4 月 27 日 |
| NPM | @frengki0707/google-cloud-clone:1.38.1 | 2026 年 4 月 27 日 |
| NPM | @frengki0707/google-cloud-clone:1.39.0 | 2026 年 4 月 27 日 |
| NPM | @frengki0707/google-cloud-clone:1.43.0 | 2026 年 4 月 27 日 |
| NPM | @frengki0707/google-cloud-clone:1.44.0 | 2026 年 4 月 27 日 |
| NPM | google-logging-utils-internal:9.9.9 | 2026 年 4 月 27 日 |
| NPM | google-logging-utils-internal:1.1.4 | 2026 年 4 月 27 日 |
| NPM | @combinezone/theme:99.9.10 | 2026 年 4 月 28 日 |
| NPM | maninos:1.3.0 | 2026 年 4 月 28 日 |
| NPM | @inheritdoc/n:99.9.9 | 2026 年 4 月 28 日 |
| NPM | @mts-pay/web-sdk:99.9.9 | 2026 年 4 月 28 日 |
| NPM | @cashback/how-it-works-widget:99.9.9 | 2026 年 4 月 28 日 |
| NPM | @cashback/postal-premium:99.9.9 | 2026 年 4 月 28 日 |
| NPM | @toprimitive/nif:99.9.9 | 2026 年 4 月 28 日 |
| NPM | @tostringtag/nsettostringtag:99.9.9 | 2026 年 4 月 28 日 |
| NPM | rtms-manager:1.4.0 | 2026 年 4 月 28 日 |
| NPM | vscode-component-explorer:99.9.15 | 2026 年 4 月 28 日 |
| NPM | js-component-explorer:99.9.16 | 2026 年 4 月 27 日 |
| NPM | js-component-explorer:99.9.17 | 2026 年 4 月 27 日 |
| NPM | @alfa.life.mapp/app.web:99.0.15 | 2026 年 4 月 27 日 |
| NPM | @tochka-ui/foundation:99.0.3 | 2026 年 4 月 27 日 |
| NPM | @alfa.life.mapp/app.web:99.0.16 | 2026 年 4 月 27 日 |
| NPM | @sbt_gitverse/analytics-client:99.0.4 | 2026 年 4 月 27 日 |
| NPM | @tochka-ui/foundation:99.0.4 | 2026 年 4 月 27 日 |
| NPM | kl-b2c-ui-kit:99.0.1 | 2026 年 4 月 27 日 |
| 撰写 | dot-env-it/laravel-core-helper:v1.0.0 | 2026 年 4 月 28 日 |
| NPM | uipath-ui-widgets:1.0.1 | 2026 年 4 月 28 日 |
| NPM | 独立应用程序:1.0.1 | 2026 年 4 月 28 日 |
| NPM | @tw-utils/static:99.0.1 | 2026 年 4 月 27 日 |
| NPM | @tw-models/storage:99.0.1 | 2026 年 4 月 27 日 |
| NPM | @tw-marionette/clipboard:99.0.1 | 2026 年 4 月 27 日 |
| NPM | @tw-marionette/input:99.0.1 | 2026 年 4 月 27 日 |
| NPM | 阿波罗登月:1.0.1 | 2026 年 4 月 28 日 |
| NPM | process-app-task:1.0.1 | 2026 年 4 月 28 日 |
| NPM | apollo-vertex:1.0.1 | 2026 年 4 月 28 日 |
| NPM | @ozon-complt/split:99.0.1 | 2026 年 4 月 27 日 |
| NPM | @apple-pay-trust/destroy:99.0.1 | 2026 年 4 月 27 日 |
| NPM | @apple-pay-trust/merchant-session:99.0.1 | 2026 年 4 月 27 日 |
| NPM | @apple-pay-trust/start:99.0.1 | 2026 年 4 月 27 日 |
| NPM | @google-pay-trust/finish:99.0.1 | 2026 年 4 月 27 日 |
| NPM | @apple-pay-trust/finish:99.0.1 | 2026 年 4 月 27 日 |
| NPM | @apple-pay-trust/validate-merchant:99.0.1 | 2026 年 4 月 27 日 |
| NPM | @alfa.life.mapp/app.web:99.0.17 | 2026 年 4 月 27 日 |
| NPM | @zirutan/utils:1.0.2 | 2026 年 4 月 27 日 |
| NPM | @zirutan/utils:1.0.4 | 2026 年 4 月 27 日 |
| NPM | report-ng:1.0.2 | 2026 年 4 月 27 日 |
| NPM | kl-b2c-ui-kit:99.0.2 | 2026 年 4 月 27 日 |
| NPM | @apple-pay-trust/authorize-payment:99.0.2 | 2026 年 4 月 27 日 |
| NPM | @google-pay-trust/authorize-payment:99.0.2 | 2026 年 4 月 27 日 |
| NPM | @ozon-complt/antibot-handler:99.0.2 | 2026 年 4 月 27 日 |
| NPM | @sbt_gitverse/analytics-client:99.0.5 | 2026 年 4 月 27 日 |
| NPM | @tw-models/storage:99.0.2 | 2026 年 4 月 27 日 |
| NPM | frank-bot-gogle-cloning:1.1.0 | 2026 年 4 月 27 日 |
| NPM | frank-research-poc-apple:1.1.4 | 2026 年 4 月 27 日 |
| NPM | @google-pay-trust/init-google-pay-result:99.0.2 | 2026 年 4 月 27 日 |
| NPM | @google-pay-trust/start:99.0.2 | 2026 年 4 月 27 日 |
| NPM | @b2b_blocker/show_activation_error:99.0.2 | 2026 年 4 月 27 日 |
| NPM | @business_promocode/cancel_promocode:99.0.2 | 2026 年 4 月 27 日 |
| NPM | @business_promocode/apply_promocode:99.0.2 | 2026 年 4 月 27 日 |
| NPM | @b2b_blocker/hide_activation_error:99.0.2 | 2026 年 4 月 27 日 |
| NPM | apple-internal-pki-utils:1.0.1 | 2026 年 4 月 27 日 |
| NPM | apple-internal-pki-trust-v5:1.0.0 | 2026 年 4 月 27 日 |
| NPM | @taxmonir/taxmon:99.0.6 | 2026 年 4 月 28 日 |
| NPM | @alfa.life.mapp/app.web:99.0.19 | 2026 年 4 月 28 日 |
| NPM | @apiary-annex/meta:99.0.4 | 2026 年 4 月 28 日 |
| NPM | @apple-pay-trust/cancelled:99.0.3 | 2026 年 4 月 28 日 |
| NPM | @apple-pay-trust/check-apple-pay:99.0.3 | 2026 年 4 月 28 日 |
| NPM | @apple-pay-trust/check-apple-pay:99.0.4 | 2026 年 4 月 28 日 |
| NPM | @apple-pay-trust/finish:99.0.3 | 2026 年 4 月 28 日 |
| NPM | @apple-pay-trust/merchant-session:99.0.4 | 2026 年 4 月 28 日 |
| NPM | @apple-pay-trust/merchant-session:99.0.3 | 2026 年 4 月 28 日 |
| NPM | @apple-pay-trust/finish:99.0.4 | 2026 年 4 月 28 日 |
| NPM | @apple-pay-trust/destroy:99.0.4 | 2026 年 4 月 28 日 |
| NPM | @apple-pay-trust/destroy:99.0.3 | 2026 年 4 月 28 日 |
| NPM | @pyme-web/web-api:99.0.4 | 2026 年 4 月 28 日 |
| NPM | @google-pay-trust/authorize-payment:99.0.4 | 2026 年 4 月 28 日 |
| NPM | @google-pay-trust/finish:99.0.3 | 2026 年 4 月 28 日 |
| NPM | @google-pay-trust/init-google-pay:99.0.4 | 2026 年 4 月 28 日 |
| NPM | @google-pay-trust/start:99.0.4 | 2026 年 4 月 28 日 |
| NPM | kl-b2c-ui-kit:99.0.3 | 2026 年 4 月 28 日 |
| NPM | @ozon-complt/antibot-handler:99.0.3 | 2026 年 4 月 28 日 |
| NPM | @ozon-complt/antibot-handler:99.0.4 | 2026 年 4 月 28 日 |
| NPM | @tw-models/storage:99.0.3 | 2026 年 4 月 28 日 |
| NPM | @w3m-app/is_connected:99.0.4 | 2026 年 4 月 28 日 |
| NPM | @w3m-frame/session_update:99.0.4 | 2026 年 4 月 28 日 |
| NPM | 访问角度缓存破坏者:99.9.0 | 2026 年 4 月 29 日 |
| NPM | 访问角度缓存破坏者:99.0.0 | 2026 年 4 月 29 日 |
| NPM | hpsetup:2.0.0 | 2026 年 4 月 29 日 |
保护您的开源依赖项免受漏洞和恶意代码的侵害
最大限度地降低风险,并保护您的应用程序免受恶意软件的侵害 Xygeni 早期恶意软件检测. 优先处理最重要的漏洞。我们的综合解决方案可实时监控您的依赖项,以便在威胁影响您的软件之前检测并缓解威胁。
由于漏洞和恶意代码威胁不断增加,在当前的软件开发环境中管理开源组件至关重要。Xygeni 的 Open Source Security 解决方案会在发布时扫描并阻止有害软件包,从而大大降低恶意软件和漏洞侵入系统的风险。我们的全面监控涵盖多个公共注册中心,确保所有依赖项都经过安全性和完整性审查。Xygeni 通过根据上下文优先考虑关键问题并促进简化的补救流程,增强了您的团队维护安全可靠的软件项目的能力。
Xygeni 使用多层技术在恶意代码传播前将其拦截。首先,静态代码分析可以检测混淆模式、隐藏的有效载荷和脚本滥用。此外,行为沙盒分析可以安装 hooks、运行时命令和持久性技巧。此外,机器学习检测可以识别签名扫描器遗漏的零日漏洞 npm 恶意软件和 pypi 恶意软件变种。最后,预警系统实时监控公共存储库,验证发现并立即向 DevOps 团队发出警报。
因此,这种组合确保开发人员能够快速获得可操作的情报,直接集成到 CI/CD 工作流程。
为什么开发人员应该关注恶意 npm 软件包
现代威胁很少等待运行时。例如,恶意 npm 包通常在安装过程中执行,而 pypi 恶意包则隐藏令牌泄露或后门。攻击者:
- 将私有 GitHub 存储库翻转为公开以复制它们。
- 使用编码的有效载荷窃取凭证和机密。
- 使用混淆的 JavaScript 加载器来部署勒索软件或僵尸网络。
事实上,恶意开源软件包的数量在一年内激增了 156%。因此,仅依赖延迟反馈或基本扫描器的团队就会落后。
此恶意软件报告在 npm 和 PyPI 中追踪的内容
本摘要是以下内容的中心枢纽:
- 已确认存在恶意 npm 软件包
- 已确认的 pypi 恶意软件包
- 基于行为的恶意代码检测
- 登记处确认的事件
- 每周和每月恶意软件报告摘要
- 所有 npm 恶意软件和 pypi 恶意软件发现的历史更新日志
换句话说,它提供了一个单一的参考点。Xygeni 的研究团队每周更新此页面,提供完整技术分析和 GitHub IOC 的链接。
如何防范恶意 npm 包和 PyPI 恶意软件
由于这种风险不断增加,组织需要强大的防御:
- 强制仅锁定文件安装(
npm ci)摄影作品通过 CI/CD. - 此外,使用 Xygeni 的早期预警引擎扫描预安装的依赖项。
- 此外,阻止基于恶意代码信号的构建 Guardrails.
- 产生 SBOMs 来追踪间接依赖关系并应用策略。
- 最重要的是,培训开发人员检测域名抢注、混淆和可疑的安装脚本。
尝试 Xygeni 的恶意软件检测工具
Xygeni 提供:





