Hackernews 编译,转载请注明出处:
网络安全公司JFrog的新发现表明,针对npm生态系统的恶意软件可以利用npm命令行接口(CLI)工具中的“意外行为”来逃避安全检查。
npm CLI的安装和审计命令具有内置功能,可以检查软件包及其所有依赖项是否存在已知漏洞,通过突出漏洞有效地为开发人员提供警告机制。
但正如JFrog所确认的那样,当软件包遵循特定的版本格式时,不会显示安全建议,这会造成严重缺陷,可能直接或通过软件包的依赖关系引入其系统的情况。
具体来说,只有当安装的软件包版本包含连字符(例如,1.2.3-a)时,问题才会出现,其中连字符用于表示npm模块的预发布版本。
虽然项目维护人员将常规npm软件包版本和预发布版本之间的差异视为一种预期功能,但这也使它成为攻击者试图毒害开源生态系统的成熟机会。
Or Peles说:“黑客可能会利用这种行为,故意在他们看起来无辜的软件包中植入易受攻击或恶意代码,这些代码将被其他开发人员包括在内,因为它们有价值的功能,或由于感染技术的错误,如拼写错误或依赖关系混淆 。”
换句话说,对手可以发布一个预发版本格式看似无害的软件包,然后可能会被其他开发人员接收,尽管有相反的证据,但不会被告知该软件包是恶意的。
该开发再次重申了软件供应链是如何构建为各方之间的信任链的,以及一个环节的妥协如何影响使用恶意第三方依赖的所有下游应用程序。
为了应对这种威胁,建议开发人员避免安装带有预发布版本的npm包,除非已知源代码完全可靠。
消息来源:TheHackerNews,译者:Shirley;
本文由 HackerNews.cc 翻译整理,封面来源于网络;
转载请注明“转自 HackerNews.cc ” 并附上原文