开源安全报告:70% 的应用程序存在库引入的漏洞
近日,网络安全公司 Veracode 发布“ The State of Software Security (SOSS): Open Source Edition ”报告。据悉,这份报告分析了 Veracode 平台数据库中 85000 个应用程序的开源组件库,其中包含 351000 个唯一的外部库。Veracode 公司的首席研究员 Chris Eng 表示,开源软件的漏洞多样,让人吃惊!
报告发现,70% 的应用程序在初始扫描的开源库中存在安全漏洞。其他重大发现:
- 每种语言在超过 75% 的应用程序中都包含最常用的库;
- 应用程序中 47% 的漏洞库都是传递的;
- JavaScript 中超过 61% 的漏洞库不包含 CVE 对应的漏洞;
- 使用任何给定的 PHP 库,有超过 50% 的机会可能带来安全漏洞;
- 可以通过较小的版本升级来解决大多数库引入的漏洞
为获得应用安全风险的更多信息,Veracode 分析了库的依赖。许多传递依赖项可能是潜在的攻击面,并会带来意想不到的维护工作负载。
该报告还按照编程语言研究了应用程序通常在哪里获取依赖项。分析人员查看了每个应用程序,从而确定何种编程语言会给维护人员带来意想不到的结果。
研究人员发现,JavaScript、Ruby、PHP 和 Java 的大部分攻击面来自于 transitive inclusions,而.NET、Swift 和 Go 有更直接的依赖性。
此外,研究者也发现来自“ Open Web Application Security Project Top 10 名单”上的漏洞。
-
Injection(注入漏洞)
-
Broken Authentication(中断身份认证)
-
Sensitive data exposure(敏感数据泄露)
-
XML external entities(XML 外部处理器漏洞)
-
Broken access control(中断访问控制)
-
Security misconfiguration(安全配置错误)
-
Cross-site scripting(XSS)(跨站脚本攻击)
-
Insecure deserialization(不安全的反序列化)
-
Using components with known vulnerabilities(使用含有已知漏洞的组件)
-
Insufficient logging& monitoring(不足的记录和监控漏洞)
根据研究结果,开源库中最普遍的漏洞如下:
- 30% 的库中发现跨站脚本攻击(XSS);
- 23.5% 的库中存在不安全的反序列化漏洞;
- 20.5% 的库中有中断访问控制漏洞
研究者还发现,与其他语言相比,PHP 问题最多,有超过 40% 的 PHP 库存在跨站脚本问题以及更严重的中断访问控制和身份认证问题。
不过,尽管 Veracode 分析的几乎每个应用程序都存在因库引入的一些漏洞,但它也指出,补救措施很容易。
经过分析,Veracode 公司的研究人员发现:有 74% 的漏洞可以通过更新来解决。同时,这些更新中的大多数都是较小的修复或修补程序,占 71%。