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