应对供应链蠕虫攻击 GitHub宣布NPM v12将不再自动执行依赖项安装脚本

💡 原文中文,约1300字,阅读约需3分钟。
📝

内容提要

为应对NPM供应链攻击,GitHub宣布NPM v12将默认不再自动执行依赖项安装脚本,开发者需手动批准受信任的包。主要变化包括关闭脚本执行和禁止自动解析Git及远程依赖,旨在提高NPM生态系统的安全性,防止恶意载荷自动安装。开发者需根据GitHub指南配置项目。

🎯

关键要点

  • 为应对NPM供应链攻击,GitHub宣布NPM v12将不再自动执行依赖项安装脚本。

  • 开发者必须手动批准受信任的包,未获得批准的包将被拒绝。

  • NPM v12的核心变化包括默认关闭脚本执行和禁止自动解析Git及远程依赖。

  • 开发者需使用npm approve-scripts和npm deny-scripts来管理包的批准和拒绝。

  • 这些变更旨在提高NPM生态系统的安全性,防止恶意载荷自动安装。

  • 近期针对NPM生态系统的供应链攻击非常猖獗,数千个NPM包已遭感染。

🔎

延伸解读

安全性提升的必要性

近期NPM生态系统遭遇多起供应链攻击,尤其是沙虫蠕虫病毒的传播,导致数千个包被感染。GitHub的这一变更旨在通过手动批准机制,减少恶意代码的自动执行,从而提升整体安全性。开发者需重视这一变化,确保项目不受影响。

开发者需提前准备

NPM v12的变更将影响开发者的日常工作,特别是在依赖项管理上。开发者必须根据GitHub的指南进行配置,未获得批准的包将无法安装,可能导致项目中断。因此,提前了解并适应这些新规则至关重要。

新命令的使用

NPM v12引入了新的命令如npm approve-scripts和npm deny-scripts,开发者需要熟悉这些命令以管理包的批准和拒绝。这些命令将帮助开发者更好地控制依赖项的安全性,避免潜在的风险。

延伸问答

NPM v12的主要变化是什么?

NPM v12将默认不再自动执行依赖项安装脚本,并禁止自动解析Git及远程依赖。

开发者如何管理包的批准和拒绝?

开发者可以使用npm approve-scripts批准受信任的包,使用npm deny-scripts拒绝其他包。

为什么GitHub决定不再自动执行安装脚本?

这是为了应对近期猖獗的NPM供应链攻击,防止恶意载荷自动安装。

NPM v12对开发者有什么影响?

开发者必须手动批准包,否则未获批准的包将被拒绝,可能导致依赖项无法安装。

如何查看哪些包受到了影响?

可以使用npm approve-scripts --allow-scripts-pending命令查看受影响的包。

NPM v12如何提高安全性?

通过不自动执行脚本和禁止解析未批准的依赖,降低了恶意载荷的安装风险。

🏷️

标签

➡️

继续阅读