超过 75% 的开源软件安全漏洞存在于间接依赖中
创始人
2024-03-02 05:14:42
0

JavaScript、Ruby 和 Java 是间接依赖中存在缺陷最多的生态系统。

开源项目中的绝大多数安全漏洞都存在于间接依赖关系中,而不是存在于直接加载的组件之中。

“汇总所有生态系统的数字后,我们发现间接依赖中存在的漏洞数量是直接依赖的三倍以上。”Snyk 的应用安全顾问 Alyssa Miller 在接受讨论 Snyk 的《2020 年开源安全状况报告》的采访时说。

该报告研究了漏洞如何影响 JavaScript(npm)、Ruby(RubyGems)、Java(MavenCentral)、PHP(Packagist)和Python(PyPI)生态系统。

Snyk 表示,项目内部加载的主要组件所依赖的依赖库,受到了 86% 的 JavaScript 安全漏洞、81% 的 Ruby 漏洞和 74% 的 Java 漏洞的影响。

Snyk 认为,公司在扫描他们的主要依赖项是否存在安全问题时,如果不能探索其完整依赖树的多个层次,会导致发布或最终运行容易受到不可预见的缺陷影响的产品。

但是,虽然安全缺陷在 JavaScript、Ruby 和 Java 中普遍存在,但在 PHP 和 Python 中却不是这样,绝大多数缺陷都存在于直接依赖关系(主要组件)中。当然,这是有原因的。

“老实说,我发现这更多取决于生态系统内部本身的开发方法。”Miller 说。“尤其是 Java 和 Node.js 项目,似乎比其他生态系统更重地利用了依赖性。特别是,当你看到 Node.js 生态系统的庞大规模时,从其他包构建或利用关键功能的包是非常正常的。”

“询问任何 Node.js 开发人员,他们都可能会遇到这样的事,即在 npm 试图拉取所有必要的依赖关系时,等待很长时间才能打开一个项目,”Miller 补充说。“我们最喜欢的一个例子是一个 80 行的 Java 应用程序,指定了 7 个依赖关系。然而,当你走完整个依赖树时,你会发现有 59 个子依赖,突然间,80 行代码变成了 74 万行。”

“正如我们喜欢给它起的绰号,这种‘陌生人的危险’,是一些重大安全漏洞的根本原因,也是造成软件供应链安全复杂化的关键原因,”Miller说。

少量的缺陷会造成了巨大的影响

但 Snyk 团队并不只是看这些缺陷在开源生态系统中的位置,还看它们是什么类型的缺陷。

另一个有趣的发现是,2019 年发现的大部分新安全漏洞都是跨站脚本(XSS)缺陷,尽管数量很多,但这些缺陷只影响了一小部分实际运行的项目。

相反,在去年发现的所有缺陷中,有二十几个原型污染缺陷的影响最大,影响了超过 11.5 万个不同的开源项目,可能还有更多的私有项目也受影响。其中,jQuery 和 LoDash 的原型污染缺陷影响最大,因为这些框架是目前应用最广泛的 JavaScript 开发工具集。

但是,Snyk 团队在报告中还指出了另一个不寻常的地方,即“恶意软件包”被列为他们去年在项目中发现的第二大最常见的安全问题类型。这指的是故意出于恶意创建的开放源代码库,或者是开发人员帐户被黑并且代码中毒的库。

根据 Snyk 的说法,去年,被黑的或恶意的软件包是开源生态系统中第二大最常见的安全问题来源。“这些绝大多数(超过 87%)来自 npm (JavaScript)软件包,” Miller 说。

去年的安全问题不那么严重,但也不值得庆祝

此外,Snyk 还指出,他们在所扫描的所有五个生态系统中发现的缺陷数量下降了 20%。

“很难确定(它们因为什么下降),”Miller 说。“以我这种永久安全怀疑论者来说,这可能只是自然的退潮和流动的一部分。然而,在乐观的一面,我们确实看到了社区的一些关键变化,这可能意味着这不仅仅是这一年的异常值。”

“例如,我们看到所报告的跨站点脚本(XSS)漏洞比任何其他漏洞类型都多,它们只影响了我们当年扫描的总项目中的一小部分。这表明,XSS 可能不会影响到使用率更高因而更成熟的项目,这意味着人们可能更多关注安全编码技术方面。”

“此外,我们的调查显示,整个社区的态度开始将软件安全视为开发团队和安全团队(甚至在某种程度上是运营团队)之间的共同责任,”Miller 说。

“这种合作的改善无疑可以帮助推动围绕安全代码和安全使用开源包的更好的意识和战术措施。”

“我在安全领域工作了 15 年,我当然还没有准备好宣布某一年是事情出现转机的标志,但你可以认为这是一个趋势,我们将继续观察,看看未来几个月和整个 2020 年的情况如何。”

关于开源社区总体安全状况的其他见解,Snyk 的完整报告可在这里下载


via: https://www.zdnet.com/article/more-than-75-of-all-vulnerabilities-reside-in-indirect-dependencies/

作者:Catalin Cimpanu 译者:wxy 校对: wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

FORT Robotics...
AI FORT Robotics近日宣布加入Nvidia Halo...
2026-07-13 23:32:46
工信部警示Claude C...
2026年7月8日,工业和信息化部网络安全威胁和漏洞信息共享平台发...
2026-07-12 10:40:54
原创 ...
每天 110 万次「一键修复」背后,藏着什么? 撰文|蓝洞商业 赵...
2026-07-11 22:56:48
AI分类:AI---从教师...
Kansas州奥拉西学区(Olathe School Distri...
2026-07-09 10:43:34
IBM、Red Hat 与...
此次合作将综合运用 Palo Alto 的网络级虚拟补丁技术(集成...
2026-06-28 21:05:53
钉钉悟空通过 ISO/IE...
近日,悟空完成中国质量认证中心 ISO/IEC 42001:202...
2026-06-26 14:32:42

热门资讯

为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
8个有趣的Linux提示与技巧... 我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
Kodi 20.0 发布,支持... Kodi 20 版本增加了多项重要功能。Kodi 是 Kodi 基金会开发的跨平台开源媒体播放器,提...