软件安全漏洞详解 (软件安全漏洞原理与分类)

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。

CWE Top 25 列表反映了最严重的软件安全漏洞。我邀请您阅读更新后的顶级列表。

CWE Top 25 列表反映了最严重的软件安全漏洞。我邀请您阅读更新后的顶级列表,以了解过去一年发生的变化。

常有的软件安全漏洞有哪些,软件安全漏洞

我们不仅将 PVS‑Studio 分析器定位为用于搜索代码中的错误的工具,而且还定位为静态应用程序安全测试 (SAST) 工具。为了更好地了解趋势和规划诊断规则,没有什么比查看最相关的安全问题的最新列表更好的了。有几个这样的列表,例如,OWASP Top 10、SANS Top 25和CWE Top 25。

一点理论

为了更好地理解上下文,让我们复习一些主题。为此,让我们浏览以下几点:

  • 什么是 CWE,CVE 与它有何不同?
  • 为什么我们需要 CVSS?
  • 什么是 NVD 和 KEV?
  • CWE Top 25 2022 排名如何?

如果您觉得 CWE 精通,您可以放心地跳过本节。否则,如果您不介意这篇文章,我强烈建议您在阅读之前刷新这些要点。以下是 CWE FAQ和CVE FAQ中一些问题的相当自由的解释:

软件弱点与软件漏洞有何不同?

弱点是可能导致漏洞的软件实施、设计或架构的缺陷、故障和其他问题。

漏洞是某人已经发现的错误。攻击者可能会利用这些漏洞来访问系统或网络,破坏服务等。

什么是 CWE,它与 CVE 有何不同?CVSS 是如何出现的,KEV 是从哪里来的?

  • CWE(Common Weakness Enumeration)是安全缺陷的一般列表。
  • CVE(Common Vulnerabilities and Exposures)是在各种软件中发现的漏洞列表。
  • CVSS(通用漏洞评分系统)是一个数字分数,表示漏洞 (CVE) 的潜在严重性。它基于一组标准化的特征。
  • KEV(Known Exploited Vulnerabilities)是已知被利用漏洞的目录。

为什么我需要了解 CWE?

今天,开发人员在讨论消除和/或最小化架构、设计、代码和软件实现中的安全缺陷时,使用 CWE 作为主要工具。组织使用 CWE 作为评估软件安全验证工具的标准度量,以及作为识别、预防和最小化负面后果的通用基线标准。

常有的软件安全漏洞有哪些,软件安全漏洞

什么是 CWE 前 25 名?

CWE Top 25 列出了最危险和最常见的缺陷。这些缺陷很危险,因为有人很容易找到并利用它们。攻击者可以使用它们来破坏应用程序的运行、窃取数据甚至完全接管系统。CWE Top 25 是一个重要的社区资源,可以帮助您了解当前最常见和最危险的安全缺陷。

什么是编译和排名 CWE 前 25 名列表的算法?

今年榜单的主要来源是:

  • 来自 UD 国家脆弱性数据库 (NVD) 的 2020-2021 年数据;
  • 网络安全和基础设施安全局 (CISA) 于 2021 年 11 月编制的已知被利用漏洞 (KEV) 目录。

CWE 团队研究人员根据View-1003方法处理获得的数据,以降低记录的特异性。例如,CWE-122(基于堆的缓冲区溢出)转换为基本的 CWE-787(越界写入)。CWE 团队还过滤了数据,并从 Top 25 列表中删除了以下项目:

  • 没有 CVSS 分数的 CVE;
  • 描述标记为“REJECT”的 CVE;
  • 未映射到任何 CWE 的 CVE;
  • 标有“CWE-Other”或“NVD-CWE-noinfo”的 CVE。

接下来,研究团队使用自己的公式计算排名顺序。该公式考虑了利用的潜在危险以及缺陷 (CWE) 成为漏洞主要原因的频率。该团队以这种方式制定了公式,将频率和预测的严重性相对于它们的最小值和最大值进行了标准化。为了获得提及频率,该公式计算了 CVE 在 NVD 中引用 CWE 的次数。

Freq = {count(CWE_X' ∈ NVD) for each CWE_X' in NVD}

Fr(CWE_X) = (count(CWE_X ∈ NVD) - min(Freq)) / (max(Freq) - min(Freq))

评分公式的另一个重要组成部分是缺陷的严重程度。下面的公式计算它:

Sv(CWE_X) = (average_CVSS_for_CWE_X - min(CVSS)) / (max(CVSS) - min(CVSS))

最后,通过将提及频率乘以严重性分数来计算最终分数。

分数(CWE_X) = Fr(CWE_X) * Sv(CWE_X) * 100

总的来说,今年的数据分析方法没有太大变化。但明年,CWE 团队正计划进行更重大的改变。这里是其中的一些:

  • 支持生成更专业的榜单,如移动应用Top 25等;
  • 考虑更改用于生成列表的指标,以尽量减少一些偏差;
  • 增强 View-1003 方法;
  • 使用除 View-1003 之外的不同视图执行规范化。
  • 如果可能,执行更多 CVE -> CWE 映射以减少一次性编辑映射数据的次数。

您可以在 CWE Top 25 列表的补充详细信息中找到有关数据准备和分析方法的更多信息。

今年的抽样规模有多大?

该数据集包含前两个日历年的总共 37,899 个 CVE。

前 25 名每年都会更新吗?

是的,它每年更新一次。有关以前版本的信息,请访问 CWE Top 25存档。

谁参与了 CWE Top 25 的发展?

CWE 社区包括个人研究人员和众多组织、科学界和政府机构的代表。他们都对消除软件缺陷感兴趣。您可以在“ CWE 社区成员”页面上获取 CWE 团队成员列表。

今天的情况

下面是 CWE Top 25 2022 列表和 PVS-Studio 诊断规则之间的对应表,按编程语言划分。

常有的软件安全漏洞有哪些,软件安全漏洞

常有的软件安全漏洞有哪些,软件安全漏洞

常有的软件安全漏洞有哪些,软件安全漏洞

常有的软件安全漏洞有哪些,软件安全漏洞

该表显示 PVS-Studio 静态分析仪现在涵盖了 CWE 2022 年前 25 名列表中的68%(25 个中的 17 个) 。去年,覆盖率为52%。过去一年覆盖率的显着提高归功于过去一年发布的大量面向 SAST 的诊断规则 PVS-Studio。

过去一年 CWE 前 25 名的变化

最大的升档:

常有的软件安全漏洞有哪些,软件安全漏洞

最大的降档:

常有的软件安全漏洞有哪些,软件安全漏洞

前 25 名中的“新手”:

常有的软件安全漏洞有哪些,软件安全漏洞

最后——从 2022 年 CWE 前 25 名中剔除的缺陷:

常有的软件安全漏洞有哪些,软件安全漏洞

关键点:

  • 前十名保持相当稳定;
  • CWE-787(越界写入)仍然保持领先;
  • CWE-502(Untrusted Data的反序列化)和CWE-862(Missing Authorization)逐年稳步上升到榜首;
  • 今年,CWE-362(Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition'))冲入榜首,与去年相比立即上升了 11 位;
  • CWE-306(Missing Authentication for Critical Function)2020年出现,去年暴涨,今年下降;
  • 最大的下跌趋势是 CWE-522(Insufficiently Protected Credentials),一次下跌了 17 个点。

低于顶部

作为奖励,让我们看看哪些缺陷没有进入 2022 CWE Top 25 并且很可能在明年进入顶部:

常有的软件安全漏洞有哪些,软件安全漏洞

常有的软件安全漏洞有哪些,软件安全漏洞

常有的软件安全漏洞有哪些,软件安全漏洞

尽管这些缺陷没有达到顶峰,但它们仍然很重要,因为在有利的情况下,它们可能会变成漏洞。

结论

我希望你喜欢这篇文章并理解当前的术语。

幸运的是,静态分析器可以帮助我们对抗潜在的漏洞。也许有几个 CWE 潜入您的代码并即将成为 CVE :)