自定义代码占应用程序漏洞的93%

尽管第三方软件库代表了应用程序代码的大部分,但它们仅占不到应用程序漏洞的7%。

通常,应用程序既包含自定义代码(由组织开发的代码),又包含第三方库。 Contrast Labs分析了1,857个软件应用程序,其中包括数千个不同的开源库,框架和模块,发现自定义代码平均占应用程序代码的21%,而库则占整体的其余大部分(79%)应用。

应用程序漏洞

普通应用程序包含26.7个自定义代码漏洞,而库代码中只有2.0个常见漏洞和公开(CVE)。因此,自定义代码占应用程序总体漏洞的93%。

“您不应该忽略库中的漏洞-它们可能非常严重。但是您的自定义代码很可能会存在严重的漏洞,因此您应该将大部分安全时间和精力都花在自己的源代码上,” 对比安全联合创始人兼首席技术官Jeff Williams说。

“如果您的开源项目报告了漏洞,请不要惊慌。健康的软件项目会发现漏洞并经常进行修复。缺少漏洞报告可能意味着该软件尚未经过全面的安全测试。”

库代码用法

在调查库时,Contrast Labs通过两种方式定义了用法:库使用率(代表具有至少一个由应用程序调用的类的库)和类使用率,指的是在所利用的库中调用的类的百分比。仔细查看应用程序的代码库时,最大的部分表示带有从未被调用的类的库。

研究人员发现,未使用的库占应用程序库代码的42%。这意味着应用程序的常见“ iceberg”视图(绝大多数代码为库)并不反映大多数库实际上代表未使用的代码。

按语言分类的图书馆CVE

应用程序中的库使用情况可能会因编程语言而有很大差异。平均而言,Java应用程序使用107个库,而.NET应用程序使用19个库。

这种明显的不同是由于Java的开放生态系统具有许多不同版本的相似库,而.NET应用程序在很大程度上依赖于Microsoft的通用库。

对于Java,未使用的库占平均应用程序的52.2%,而它们仅占.NET的平均应用程序的30.7%。 95%的Java应用程序中至少包含一个易受攻击的库,而.NET仅为9%。

分享这个