Modern software development frequently uses third-party packages, raising the concern of supply chain security attacks. Many attackers target popular package managers, like npm, and their users with supply chain attacks. In 2021 there was a 650% year-on-year growth in security attacks by exploiting Open Source Software's supply chain. Proactive approaches are needed to predict package vulnerability to high-risk supply chain attacks. The goal of this work is to help software developers and security specialists in measuring npm supply chain weak link signals to prevent future supply chain attacks by empirically studying npm package metadata. In this paper, we analyzed the metadata of 1.63 million JavaScript npm packages. We propose six signals of security weaknesses in a software supply chain, such as the presence of install scripts, maintainer accounts associated with an expired email domain, and inactive packages with inactive maintainers. One of our case studies identified 11 malicious packages from the install scripts signal. We also found 2,818 maintainer email addresses associated with expired domains, allowing an attacker to hijack 8,494 packages by taking over the npm accounts. We obtained feedback on our weak link signals through a survey responded to by 470 npm package developers. The majority of the developers supported three out of our six proposed weak link signals. The developers also indicated that they would want to be notified about weak links signals before using third-party packages. Additionally, we discussed eight new signals suggested by package developers.
翻译:现代软件开发经常使用第三方软件包,引起供应链安全攻击的关注。许多袭击者以像 npm 这样的受欢迎软件包经理及其用户为目标,他们受到供应链攻击。2021年,通过利用开放源码软件的供应链,安全攻击的年均增长率达到650 % 。需要先发制人的办法预测软件包易受高风险供应链攻击的脆弱性。这项工作的目的是帮助软件开发商和安全专家测量npm供应链薄弱环节信号,通过经验性研究 npm 软件包元数据,防止今后的供应链攻击。本文分析了163万 JavaScript npm 软件包的元数据。我们在软件供应链中提出了6个安全弱点的信号,例如安装脚本、与过期电子邮件域有关的维护账户和与不活动维护者不活跃的软件包。我们的一项案例研究查明了11个来自安装脚本信号信号的恶意软件包。我们还发现2 818个与过期域有关的维护者电子邮件地址,允许攻击者通过接管npm 的第三个Npm账号。我们用Npm账户获得了关于软件包中8个薄弱的信号链接链接的反馈。我们提出的关于6个弱的8个发展商的电子邮件。我们通过470 将支持了这3个弱的信号的系统。