CWE

常见的弱点枚举

一个由社区开发的软件&硬件缺陷类型的列表

2021 CWE最重要的硬件的弱点
CWE最危险的弱点
>CWE前25名> 2019
ID

2019 CWE最危险的软件错误


注意:这是一个以前的版本的前25位。为最新版本在这里


介绍

共同的弱点枚举(CWE™)最危险的软件错误(CWE前25)是一个示范的最广泛和重要的弱点列表可以在软件导致严重的漏洞。这些缺陷往往容易发现和利用。他们是危险的,因为他们会经常让对手完全接管执行软件,窃取数据,或者防止软件工作。CWE的前25名可以使用社区资源,软件开发人员,软件测试人员,软件的客户,软件项目经理,安全研究人员和教育工作者提供洞察一些最常见的安全威胁在软件行业。

创建列表,CWE团队使用一种数据驱动的方法,利用出版常见的漏洞和风险敞口(CVE®)数据和相关CWE映射发现在国家标准与技术研究所(NIST)国家漏洞数据库(NVD),以及普通危险得分系统(CVSS)分数与每一个cf。得分公式被应用于确定每个弱点的患病率和危险水平的礼物。数据驱动的方法可以作为一个可重复的,照本宣科的过程来生成一个CWE定期排名前25位的列表以最小的努力。

CWE的前25名

下面是一个简短的清单的弱点在2019 CWE前25名,包括各自的总分。

排名 ID 的名字 分数
[1] cwe - 119 不当的操作限制的范围内一个内存缓冲区 75.56
[2] cwe - 79 中和不当输入在Web页面生成(“跨站点脚本编制”) 45.69
[3] CWE-20 不正确的输入验证 43.61
[4] cwe - 200 信息曝光 32.12
[5] cwe - 125 禁止入内的读 26.53
[6] cwe - 89 不当使用中和特殊元素在一个SQL命令(SQL注入) 24.54
[7] cwe - 416 使用后免费 17.94
[8] cwe - 190 整数溢出或概括的 17.35
[9] cwe - 352 跨站请求伪造(CSRF) 15.54
[10] CWE-22 不当限制限制目录的路径名(“路径遍历”) 14.10
[11] cwe - 78 不当使用中和特殊元素在一个操作系统命令(OS命令注入) 11.47
[12] cwe - 787 禁止入内的写 11.08
[13] cwe - 287 不适当的身份验证 10.78
[14] cwe - 476 空指针废弃 9.74
[15] cwe - 732 不正确的权限分配的关键资源 6.33
[16] cwe - 434 无限制上传文件与危险的类型 5.50
[17] cwe - 611 XML外部实体引用的不当限制 5.48
[18] cwe - 94 不当控制生成的代码(代码注入) 5.36
[19] cwe - 798 使用硬编码的凭证 5.12
[20] cwe - 400 不受控制的资源消耗 5.04
[21] cwe - 772 失踪后释放资源的有效寿命 5.04
[22] cwe - 426 不可信的搜索路径 4.40
[23] cwe - 502 反序列化的数据不可信 4.30
[24] cwe - 269 权限管理不当 4.23
[25] cwe - 295 不适当的证书验证 4.06

方法

2019年CWE前25位是由获得CVE漏洞数据中找到NVD出版。NVD获得从CVE漏洞数据然后用额外补充这些数据分析和数据提供更多信息漏洞。除了提供基本的弱点对于每一个漏洞,NVD提供CVSS分数,这是一个数字分数代表的潜在严重性脆弱性基于一套标准化的脆弱性特征。NVD消化的格式提供了这些信息,帮助推动数据驱动方法创建CWE前25名。这种方法提供了一个客观的看看漏洞目前看到在现实世界中,创建了一个基金会建立在公开报道的漏洞,而不是依靠调查和意见,并使这一过程可重复的在未来几年。

2019年CWE前25位利用NVD数据从2017年到2018年,由大约二万五千个cf。CWE团队开发了一个计分公式计算缺陷的等级次序。CWE的计分公式结合频率是一个漏洞的根本原因与预期严重的剥削。在这两种情况下,频率和严重程度都是归一化相对于最小值和最大值。

确定CWE的频率,计分公式计算的次数CWE映射到CVE NVD之内。只有那些有关联的cf软弱是用于这个计算,因为使用整个组内cf NVD将导致非常低的频率率和不同缺陷类型之间差异非常小。

频率= {count (CWE_X '∈NVD)为每个CWE_X '在NVD}

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

计分公式中的其他组件是一个软弱的严重性,这是平均CVSS分数所代表的所有映射到特定的CWE的cf。下面的方程是用来计算这个值。

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

危险的水平提出的特定CWE然后由严重程度得分乘以频率分数。

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

有几个属性的评分方法,需要进一步解释。

  • 弱点,很少利用不会得到一个高分,无论与任何开发典型的严重程度相关。这是有意义的,因为如果开发人员不是犯了某个错误,然后CWE的弱点不应该强调前25名。
  • 弱点和低影响不会得到高分。这是有道理的,因为无法通过利用一个弱点造成严重的伤害意味着软弱应该排在那些可以。
  • 弱点,都是常见的,可以造成伤害应该得到一个高分。

CWE前25的评分指标

下面的表显示了2019年CWE排名前25位的得分与相关信息,包括相关条目的数量内的特定CWE NVD数据集,和平均CVSS分数为每个弱点。

排名 ID NVD计数 Avg CVSS 总分
[1] cwe - 119 3545年 8.045 75.56
[2] cwe - 79 3430年 5.778 45.69
[3] CWE-20 2360年 7.242 43.61
[4] cwe - 200 2300年 5.961 32.12
[5] cwe - 125 1428年 7.270 26.53
[6] cwe - 89 977年 9.129 24.54
[7] cwe - 416 799年 8.374 17.94
[8] cwe - 190 867年 7.679 17.35
[9] cwe - 352 693年 8.365 15.54
[10] CWE-22 759年 7.275 14.10
[11] cwe - 78 486年 8.707 11.47
[12] cwe - 787 510年 8.169 11.08
[13] cwe - 287 495年 8.188 10.78
[14] cwe - 476 572年 6.834 9.74
[15] cwe - 732 334年 7.393 6.33
[16] cwe - 434 239年 8.549 5.50
[17] cwe - 611 262年 7.949 5.48
[18] cwe - 94 230年 8.637 5.36
[19] cwe - 798 215年 8.782 5.12
[20] cwe - 400 288年 6.980 5.04
[21] cwe - 772 304年 6.714 5.04
[22] cwe - 426 215年 7.823 4.40
[23] cwe - 502 177年 8.921 4.30
[24] cwe - 269 226年 7.332 4.23
[25] cwe - 295 248年 6.658 4.06

弱点的尖端

在过去的几年里,CWE团队认为重要的是分享更多的连续波,得分排名前25位之外的。每2019对NVD计分标准数据集,这些弱点可能不够严重,或不够普遍,包括在2019年的列表。

开发人员完全缓解和风险决策在2019 CWE排名前25位的可能要寻找这些其他的弱点可能出现在他们的软件。由于这些原因,用户2019 CWE的前25名应该认真考虑包括这些额外的弱点在他们的分析:

排名 ID 的名字 NVD计数 Avg CVSS 总分
[26] cwe - 835 循环和遥不可及的退出条件(无限循环) 218年 6.610 3.53
[27] cwe - 522 保护不足的凭证 150年 8.460 3.39
[28] cwe - 704 不正确类型转换或演员 143年 8.484 3.25
[29] cwe - 362 使用共享资源与不当同步并发执行(“竞争条件”) 187年 6.740 3.11
[30] cwe - 918 服务器端请求伪造(SSRF) 128年 7.917 2.65
[31] cwe - 415 双自由 111年 7.981 2.32
[32] cwe - 601 URL重定向不可信的网站(“开放重定向”) 159年 6.141 2.31
[33] cwe - 863 错误的授权 113年 7.050 2.00
[34] cwe - 862 失踪的授权 92年 7.491 1.76
[35] cwe - 532 包含敏感信息的日志文件 90年 7.064 1.59
[36] cwe - 306 失踪的身份验证的重要功能 66年 8.529 1.50
[37] cwe - 384 会话固定 76年 7.083 1.34
[38] cwe - 326 加密的强度不够 73年 7.278 1.34
[39] cwe - 770 资源配置没有限制或节流 75年 6.880 1.27
[40] cwe - 617 可以断言 75年 6.729 1.23

方法的局限性

有几个限制选择的数据驱动的方法CWE团队。

数据偏差

首先,公开报道的方法只使用数据,NVD捕获,和许多漏洞存在,没有CVE id。的漏洞并不包含在NVD因此被排除在这种方法。例如,CVE / NVD通常不包括漏洞发现和固定在任何软件之前已公开发布,在线服务,或定制的软件,是一个组织内部。弱点导致这些类型的漏洞可能不足2019 CWE的前25位。

第二,甚至对于收到CVE漏洞,往往没有足够的信息来作出准确的(或精确)识别适当的CWE的利用。许多软件厂商发布的CVE条目只描述脆弱性的影响脆弱性本身没有提供细节。在其他情况下,CVE描述涵盖了条目如何攻击,但这并不总是显示相关的弱点是什么。例如,如果一个长输入程序造成了事故,事故的原因可能是由于缓冲区溢出,可以断言,过度的内存分配,一个未处理的异常,等等。在其他CVE条目,只使用通用术语如“恶意输入,使没有关联的弱点。对于一些条目,可能有有用的信息可用的引用,但是很难分析。例如,研究人员可能使用起毛程序生成一个有用的测试用例,会导致崩溃,但开发人员只需修复崩溃没有分类和报告潜在的错误是什么。CWE团队发现了至少2600个cf有足够的细节来执行一个精确的CWE映射。

第三,有固有的偏见CVE / NVD数据集的供应商报告漏洞和所使用的语言,这些供应商。如果最大的贡献者之一CVE / NVD主要使用C编程语言,经常存在于C程序的缺点更有可能出现。起毛对基于内存的程序,程序可以非常有效,所以他们可能会发现更多的漏洞。上述评分指标试图减轻这种偏见不仅仅通过观察最常报道的连续波;它还考虑平均CVSS分数。

CVE / NVD数据集的另一个倾向是,大多数脆弱性研究人员和/或检测工具非常精通发现某些弱点,但没有发现其他类型的弱点。这些类型的缺点,研究人员和工具中很难找到最终将不足2019 CWE-Top 25。

最后,缺口或感知CWE层次结构本身的错误概念导致不正确的映射。正在重新映射帮助CWE团队合作学习这些内容差距和问题,将在后续CWE的版本中解决。

标准偏差

一个重要偏差理解相关指标是它间接实现缺陷的敏感度要高于设计缺陷,由于他们的患病率在单独的软件包。例如,一个web应用程序可能有许多不同的跨站点脚本(XSS)由于大漏洞攻击表面,但只有一个实例的使用不安全的密码算法。

重新映射任务

准备的CVE / NVD数据分析,CWE团队回顾了CWE的映射选择CVE / NVD条目,在适当的地方,“重新映射”条目,以便他们参考更合适CWE id。

重新映射,CWE团队使用更广泛的比NVD分析师CWE id可用之前,和团队严格明确标签信息不足。这种重新映射工作进行成千上万的CVE条目。它产生了更丰富的CWE id列表NVD分析师可供选择,反映在CWE - 1003更新视图。NIST的贴图数据共享,这样他们就可以更新他们的CVE NVD内条目。

重新映射的迭代执行,团队最终开发出一个可重复的过程,可以在未来的版本中执行的前25位。的主要活动是:

  • 重新映射所有CVE条目映射到CWE类别。而CWE - 399等类别(资源管理错误)可用NVD分析师多年来作为视图CWE - 1003的一部分,现在CWE项目建议的类别应该只作为组织和导航机制不应映射;应该使用唯一的弱点。
  • 执行自动关键词搜索找到CWE可能重新映射条目,没有NVD分析师CWE列表。例如,禁止入内的阅读(cwe - 125)没有在最初的NVD映射列表,和相关的CVE条目被映射到高级cwe - 119。然而,相关短语界外阅读很容易可发现的在许多CVE描述。
  • 关注高层CWE的类可能更精确映射。这项工作是劳动密集型,CWE团队无法覆盖所有类级条目由于大量的CVE条目映射到它们,比如CWE - 119, CWE-20, CWE - 200。然而,努力取得了显著改善NVD数据,CWE - 1003视图和一个更好的理解的某些部分需要重组的CWE的层次结构。
  • 识别特定的CVE条目可能表明CWE内部差距,也就是说,CVE条目有足够的技术细节了解的弱点,但弱点没有一个适当的CWE映射。
  • 更新cwe - 1003视图删除类别;确保有报道最常见CWE映射;和改变从深层结构层次只有两个层次,通常与一个类作为一个家长和基地的孩子。

什么改变了

2011年和2019年之间的主要区别CWE排名前25位的列表方法使用。2011年CWE / SANS是构造使用调查和个人开发者的采访,高级安全分析师,研究人员和供应商。这些反应是规范化的基础上,患病率和水煤浆排名的方法。2019 CWE前25位,另一方面,形成基于现实NVD中发现的漏洞。

由于这个方法的变化,一些改变的弱点列表组成CWE排名前25位的预计。最大的这些变化是包含一些类级别的连续波代表广泛类型的错误:cwe - 119(不当的操作限制的范围内一个内存缓冲区),CWE-20(不当输入验证),cwe - 200(信息暴露)和cwe - 287(不当的身份验证)。这些条目通常使用的供应商和研究人员描述漏洞的根本原因在我们的数据驱动的分析报告,因此普遍NVD。再细看,然而,这些高层次的弱点往往更详细的弱点的母公司之前出现在排名前25位的列表。例如,cwe cwe的母公司- 120 - 119。而后者是2011 # 3列表,它没有找到2019名单尽管前新# 1。同样,cwe - 287是2019年# 13,但并不在2011年出现。近看不过表明cwe - 287是cwe的父- 306(# 5 2011名单),cwe - 862(# 6 2011列表),和cwe - 863(15 # 2011名单),没有发现在2019年名单上。

另一个有趣的变化是一些弱点在2019报告列表在不同的地方在一个潜在的弱点链。例如,cwe - 787(界外写)没有出现在2011年名单但2019年# 12。cwe - 787通常是链的一部分,始于cwe - 120, 2011年# 3。

其他一些2019 CWE排名前25位的列表条目也值得关注。

  • cwe - 125(界外读)出现比预期更高的列表中(# 5)。CWE团队认为这可能是由于增加的实例指向这个条目对于复杂的开发链,内核的特权,和改进检测方法后Heartbleed(其在静态代码分析技术发现缺陷)
  • cwe - 417(无使用),cwe - 611 (XML的不当限制外部实体引用),和cwe - 502(反序列化不可信的数据)出现在# 7 # 17日分别和# 23,但是没有出现在2011年。CWE团队认为,这可能是提高开发能力的反映
  • cwe - 476 (NULL指针)出现在# 14,而不是在2011年的前25位。CWE评审小组认为这可能是由于增加使用起毛

最后,CWE-20和cwe - 200(分别为# 3和# 4)类级别的弱点和知名的安全编码问题。CWE团队认为存在潜在实例当这些条目用于映射漏洞CWE当更具体,低级缺陷类型可能更适合。这个领域CWE团队进一步调查,希望提高在未来的版本中CWE的前25位。

存档

过去的版本CWE前25名中可用存档

更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2021年7月22日