受一些负面事例的影响,一直以来,通过 Node Package Manager(npm)提供的 JavaScript 软件包的安全性总是备受质疑。近日,几位隶属于 IEEE 的计算机科学家则发布了一篇论文表示,npm 软件包其实并不像大家所说的那样具有风险。
Mahmoud Alfadel 等人在联合发布的一篇名为 "On the Threat of npm Vulnerable Dependencies in Node.js Applications "的中论文指出,事实上,将 npm 库集成到 Node.js 应用中的危险性被明显夸大了。
“软件漏洞对我们每天依赖的软件系统有很大的负面影响。关于软件漏洞的报告也总是描绘出一副严峻的图景,有些报告显示,有 83% 的组织依赖于易受攻击的软件。但是,我们的经验使我们相信,从总体上看,这些软件漏洞的影响可能比所报告的要小。”
为了更好地了解 Node.js 应用中使用的 npm 漏洞包的威胁,该团队分析了 6673 个活跃的、成熟的使用 Node.js 的开源应用。然后发现,安全状况并没有安全厂商所说的那么糟糕。npm 包中存在很多漏洞,但大多数并不严重。
研究结果表明,虽然 67.93% 的受检应用程序至少依赖于一个易受攻击的软件包,但这些受影响的应用程序中 94.91% 的易受攻击软件包被归类为具有低威胁性。
同时,他们还发现,在少数具有高度威胁依赖性的应用中(3.03%),绝大多数(90.8%)的高威胁依赖项漏洞是由应用程序缺乏更新才引起的。即,真正的问题不是漏洞的存在。易受攻击的依赖项具有可用的漏洞修复程序,但应用程序未更新到较新版本(更安全)的易受攻击性依赖项。
因此,论文指出,这里的错误应该归咎于应用开发者,而不是包维护者;因为他们没有将应用的依赖关系更新到最新的、最安全的版本。其总结称,这一研究的主要含义是,应用开发者需要认真对待从他们的依赖关系推送的更新,或者至少积极跟踪他们的依赖关系,因为这些会导致非常严重的影响。
该团队在应用程序生命周期的不同阶段验证了其研究结果,发现结论仍然成立。他们认为,当涉及到软件漏洞时,事情可能并不像看起来那么糟糕,考虑漏洞威胁才是关键。
推荐阅读PostgreSQL 13发布
Flutter开始支持Windows
Windows XP源码泄露
Swift开始支持Windows
开源先驱ESR:微软将放弃Windows内核