75% 的商业应用程序包含过时且存在漏洞的开源代码

新思科技公司 分析了 1253 个商业代码库,并得出结论,几乎所有 (99%) 所审查的商业应用程序都至少包含一个开源组件,并且所审查的存储库中 70% 的代码是开源的。 相比之下,在 2015 年的一项类似研究中,开源的份额为 36%。

然而,在大多数情况下,使用的第三方开源代码没有更新,存在潜在的安全问题——91%的审查代码库都有开放组件,这些组件已经超过5年没有更新或者已经处于废弃状态至少两年且不由开发商维护。 因此,存储库中发现的 75% 的开源代码包含未修补的已知漏洞,其中一半具有高危险级别。 在 2018 年的样本中,存在漏洞的代码比例为 60%。

最常见的危险漏洞是
问题 CVE-2018-16487 (远程代码执行)在库中 Lodash 对于 Node.js,其易受攻击的版本已出现超过 500 次。 最古老的未修补漏洞是 lpd 守护程序中的问题(CVE-1999-0061),1999年修订。

除了商业项目代码库的安全性之外,对于遵守免费许可条款也存在疏忽的态度。
73%的代码库发现使用开源的合法性存在问题,例如许可证不兼容(通常GPL代码包含在商业产品中而没有开放衍生产品)或在未指定许可证的情况下使用代码。 93% 的许可证问题发生在 Web 和移动应用程序中。 在游戏、虚拟现实系统、多媒体和娱乐节目中,59% 的案例中发现违规行为。

该研究总共确定了所有代码库中常用的 124 个典型开放组件。 最流行的是:jQuery (55%)、Bootstrap (40%)、Font Awesome (31%)、Lodash (30%) 和 jQuery UI (29%)。 就编程语言而言,最流行的是 JavaScript(74% 的项目中使用)、C++ (57%)、Shell (54%)、C (50%)、Python (46%)、Java (40%)、 TypeScript (36%)、C# (36%); Perl (30%) 和 Ruby (25%)。 编程语言的总份额为:
JavaScript (51%)、C++ (10%)、Java (7%)、Python (7%)、Ruby (5%)、Go (4%)、C (4%)、PHP (4%)、TypeScript ( 4%)、C# (3%)、Perl (2%) 和 Shell (1%)。

来源: opennet.ru

添加评论