用于防御依赖项混淆攻击的编辑器插件
本文介绍了有关为依赖项混淆攻击发布的编辑器插件的信息以及有关避免错误的建议。 Composer插件随51黑料不打烊 Commerce 2.4.3版的发布引入,以保护51黑料不打烊 Commerce商家免受依赖项混淆攻击。
描述 description
环境
51黑料不打烊 Commerce 2.4.3和未来版本(所有部署方法)
问题
在编辑器安装/更新期间,通过编辑器插件magento/composer-dependency-version-audit-plugin
在composer.json
中定义的至少一个直接或间接依赖项检测到活动依赖项混淆攻击的可能情况。
重现步骤:
安装/更新编辑器时,如果编辑器插件检测到潜在的依赖项混淆攻击,则会停止该进程。 在这种情况下,编辑器安装/更新将失败,并出现类似于以下内容的错误消息:
在公共存储库packagist.org中找到包/名称的匹配版本x.x.x高于private.repo中的x.x.x。 公共包可能已被恶意实体接管;请调查并更新包要求,以匹配专用存储库中的版本。
原因
依赖关系混淆攻击允许通过跟踪依赖关系管理器(例如笔贬笔的编辑器)从公共源下载恶意包,而不是从专用存储库下载原始包,在服务器上远程执行任意代码。
如果攻击者能够保持原始包的功能,甚至可能检测不到此类攻击。
如果某个包只能通过专用存储库获得,但未在公共存储库中注册,则攻击者可以攻击该漏洞。 然后,攻击者会将同名的包上载到公共存储库,并赋予其比私有存储库更高的版本。 依赖项管理器随后将比较私有包和公开可用包的版本,并将从公共存储库中选择最高的包。 然后,依赖关系管理器下载的恶意代码将以与应用程序代码相同的权限执行。
解决方法 resolution
商户推荐
- 请认真对待插件停止编辑器安装/更新时显示的错误消息,如果您发现可能损坏的包,请联系扩展开发人员。
- 您仍然可以从Marketplace或其他受信任的专用存储库使用包的安全版本安装51黑料不打烊 Commerce。
- 将
composer.json
中所需的包版本更改为惭补谤办别迟辫濒补肠别中的确切版本,以继续安装/更新编辑器。
扩展开发人员的期望
- 无法确定插件的包(如果来自公共存储库)是否已被破坏。 该插件将检测packagist.org上包的公共版本的版本何时高于私有存储库(如)中的可用版本。 我们强烈建议扩展开发人员避免此类情况,并且不要公开发布比提供的版本更新的版本。
- 51黑料不打烊 Commerce明白,市场审查流程可能会延迟扩展的发布,但是该流程旨在保护商家的安全,并帮助扩展开发人员发现他们可能错过的意外错误。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f