Java和.NET应用程序是公共部门未修补漏洞的主要来源。
公共部门是政府支持的黑客以及勒索软件团伙的主要攻击目标之一,但很难及时更新安全补丁。根据Veracode 的调查结果,政府机构部署的软件应用程序中有一半以上至少有一个漏洞,而且漏洞已经一年多没有修补。
好消息是,这些一年前未修补的漏洞中,只有不到 1% 的漏洞严重程度极高,其中一半位于第一方代码中,因此应该很容易解决。但这并不意味着严重程度较低或一年内出现的漏洞不应优先考虑,因为超过一半的已知漏洞在广泛攻击中被利用,不到一周就会被积极利用。
攻击者还倾向于使用漏洞链,因此并非所有被利用的漏洞都是未经身份验证的远程代码执行漏洞。有些是本地特权升级,允许黑客在访问受限帐户后获得完整的系统特权,或者他们可能需要执行代码或 shell 命令的各种安全功能绕过。
大多数组织都存在未修补的漏洞
应用程序安全测试供应商 Veracode 将安全债务定义为超过一年未修补的漏洞,并且随着代码库的老化和复杂化,这种债务往往会随着时间的推移而增加。该公司的年度软件安全状况报告基于对来自各个行业的组织以及主要软件供应商、外包商和开源项目的超过一百万个应用程序的动态和静态安全扫描结果。
根据该公司的调查结果,68% 的政府机构存在安全债务,略低于所有行业 71% 的平均水平。然而,就单个应用程序的数量而言,公共部门使用的应用程序中有 59% 存在债务,而所有应用程序的总体债务率为 42%。
“更令人担忧的是,40% 的公共部门实体存在严重程度较高的持续性缺陷,我们将其归类为关键安全债务,”Veracode 在报告中表示。“这些缺陷对应用程序的风险最高,因此需要优先补救。”
政府机构内另有 38% 的应用程序存在不到一年的漏洞,但如果不加以修复,可能会成为安全债务,只有 3% 的应用程序完全没有已知缺陷,而其他部门的这一比例为 6%。“因此,虽然公共部门组织的安全债务(略少),但它们往往会积累更多,”Veracode 研究人员总结道。
大多数未修补的漏洞来自第一方代码
另一个有趣的发现是,92.8% 的未修补漏洞源自这些应用程序开发人员编写的代码,而不是从第三方来源(如开源组件和库)导入的代码。考虑到任何现代应用程序中的大多数代码都是第三方代码,这是一个重要的方面。
在关键安全债务方面,第一方代码和第三方代码之间的分布大致相同。这意味着公共部门组织需要同时关注两者,但在第一方代码方面仍有改进空间,因为 43% 的缺陷最终会成为安全债务。
有迹象表明,公共部门正在取得进展,第一方代码缺陷的平均修复时间为 8 个月,而第三方代码缺陷的平均修复时间为 14 个月,但要大幅降低这两个比率,还需要做更多的工作。
在编程语言方面,Java 和 .NET 应用程序是公共部门安全债务的主要来源,用 Java 编写的应用程序也是严重债务的主要来源。用 JavaScript 和 Python 编写的应用程序也表现出较高的安全债务率,但在严重缺陷方面则较低。
对这些应用程序的年龄和规模的分析表明,代码库越大越老,就越有可能积累安全债务——最古老和最大的应用程序的债务率为 21%,而最年轻和最小的应用程序的债务率为 12%。
漏洞严重性至关重要
需要记住的是,漏洞严重性很重要。据 Veracode 称,24% 的符合安全债务条件的漏洞并不严重,另外 67% 的漏洞的出现时间不超过一年。严重和高严重性漏洞的比例约为 8%,其中约 0.5% 的漏洞出现时间超过一年。
这些比率可能听起来并不令人担忧,但请考虑一下,只需一个严重漏洞就可能引发重大安全漏洞。例如,2017 年 Equifax 大规模数据泄露事件导致近一半美国人口的社会安全号码和其他个人信息被泄露,而这起事件的起因是两个月来未能修补 Apache Struts Java 应用程序框架中的一个严重漏洞。
类似的例子还有很多,但同样值得考虑的是,修补并不是缓解漏洞的唯一方法。这是最好的方法,但也可以实施其他安全控制来降低漏洞被利用的可能性。而且并非所有易受攻击的应用程序都直接暴露在互联网上,这大大降低了漏洞被利用的风险。
Veracode 研究人员表示:“公共部门组织中三分之二(67%)的缺陷既不属于债务,也不算严重程度的严重缺陷。我们并不是说要完全忽略它们(否则它们最终会变成债务),但可以推迟修复这些缺陷,转而修复那些风险更大的缺陷。相反,开发团队应该专注于修复构成严重债务的不到 1% 的缺陷。完成此操作后,组织可以根据其风险承受能力和能力解决严重缺陷或非严重债务。”
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...