近日,网络安全公司 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%。
评论