提供 Maven 中央仓库托管服务的 Sonatype 公司说, Java 组件下载中,有 1/16 的下载组件中包含了已知的安全问题。
Sonatype 声称,开发者们每年要下载超过 310 亿个/次 Java 组件,每天也会新增超过 1 千个新组件以及超过 1 万个的组件新版本。
现在企业都采用托管式的中央组件仓库来存储他们的代码。这些代码中有一些来自私有项目,而更多的则来自于开源代码,在多数情况下,他们只是下载开源代码并导入到其项目中,而不做必要的安全审计。
Sonatype 发现现在企业中的百分之八、九十的代码都是由开源组件构成的,它们直接来自公开的代码导入。
由于这些安全缺陷都是公开的,而且 Sonatype 能够访问到其托管服务的服务器统计数据,相比其他人来说他们得到的数据会更多,因此他们警告开发者们要注意在他们的代码中使用不安全的或过期的组件所带来的风险。
这个警告对于公司来说更加严重,因为如果攻击者对采用有缺陷的组件创建的应用进行攻击,结果就可能导致更多的经济损失。
更老的组件的缺陷率高达三倍
在分析了来自几个不同行业的三千家机构的两万五千个以上的企业应用之后,Sonatype 发现平均每年每个企业都会下载大约五千个不同的组件。
组件越老,就越有可能包含安全缺陷。甚至更糟糕的是, 其中 97% 的下载的组件不能很方便的跟踪和审计。而如果公司仅仅是要修复两千个应用中的 10% 的安全漏洞,就大约需要 742 万美金的巨额投入。
这些问题说明企业需要对软件供应链进行管理,以避免将来出现的缺陷问题。花费在组件安全审计上的时间,将在该项目的以后出现安全漏洞后得到回报。
从这种托管的中央代码仓库中移除有缺陷的组件也应该成为这些项目背后的社区的最高优先级的工作。
软件供应链报告中包含了当今软件供应链的更多信息。