针对8万个应用程序的调查发现,有7成程序含有开源漏洞

应用程序安全企业Veracode本周公布其软件安全研究报告,指出在所扫描的8.5万个应用程序中,有7成应用程序所使用的开源函数库,至少含有一个安全漏洞。

此次Veracode的研究着眼于开源函数库的安全漏洞。这是因为在现代的应用程序中,开源函数库几乎无所不在,例如大多数的JavaScript程序都含有数百个开源函数库,有些更超过1千个;而且许多程序语言都有同样的核心函数库组合,例如每一个JavaScript或PHP程序都使用了一些特定的核心函数库。

Veracode分析了8.5万个应用程序所使用的35.1万个外部函数库,显示开源函数库几乎无所不在,以JavaScript程序的使用数量最多,多半使用数百个开源函数库,而不管是Ruby程序、Java程序、PHP程序、.NET程序、Python程序、Go或Swift程序,也都使用了数个到数百个不等的开源函数库。

根据统计,有接近6成的PHP开源函数库含有安全漏洞,超过5成的Go开源函数库有漏洞,虽然只有20%左右的Swift开源函数库含有安全漏洞,但Swift开源函数库的漏洞密度最高,代表每个Swift开源函数库含有更多的漏洞,约为7个。约有26%的JavaScript开源函数库含有安全漏洞,但平均每个函数库的漏洞数量为2个。

这些开源函数库的安全漏洞前三名为跨站脚本(Cross-site scripting,XSS),占29.1%,不安全的反串行化(23.5%),以及有缺陷的访问控制(20.3%)。

值得注意的是,在应用程序中所采用的、含有安全漏洞的函数库,有高达47%并非是开发者自行嵌入的,而是因为与其它函数库相依而被导入的,而这样的情况在JavaScript、Ruby、PHP与Java程序中特别常见。不过,幸好7成的漏洞只要借由更新就能修补,而不必重写程序。