CWE

常见的弱点枚举

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

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

2020 CWE最危险软件的弱点


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


介绍

2020年的共同弱点枚举(CWE™)最危险的软件缺陷(CWE前25)是一个示范列出最常见的和有效的问题经历了过去两年的日历。这些弱点是危险的,因为他们往往容易发现,开发,和能让对手完全接管一个系统,窃取数据,或者阻止应用程序工作。CWE的前25位是一种宝贵的社会资源,可以帮助开发人员、测试人员,和用户,以及项目经理,安全研究人员和教育工作者提供洞察最严重和当前安全弱点。

2020年创建列表,CWE团队杠杆常见的漏洞和风险敞口(CVE®)数据发现在国家标准与技术研究所(NIST)国家漏洞数据库(NVD),以及普通危险得分系统(CVSS)分数与每个CVE相关联。一个公式应用到数据基于发病率和严重程度得分每个弱点。

CWE的前25名

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

排名 ID 的名字 分数
[1] cwe - 79 中和不当输入在Web页面生成(“跨站点脚本编制”) 46.82
[2] cwe - 787 禁止入内的写 46.17
[3] CWE-20 不正确的输入验证 33.47
[4] cwe - 125 禁止入内的读 26.50
[5] cwe - 119 不当的操作限制的范围内一个内存缓冲区 23.73
[6] cwe - 89 不当使用中和特殊元素在一个SQL命令(SQL注入) 20.69
[7] cwe - 200 暴露敏感信息的未经授权的演员 19.16
[8] cwe - 416 使用后免费 18.87
[9] cwe - 352 跨站请求伪造(CSRF) 17.29
[10] cwe - 78 不当使用中和特殊元素在一个操作系统命令(OS命令注入) 16.44
[11] cwe - 190 整数溢出或概括的 15.81
[12] CWE-22 不当限制限制目录的路径名(“路径遍历”) 13.67
[13] cwe - 476 空指针废弃 8.35
[14] cwe - 287 不适当的身份验证 8.17
[15] cwe - 434 无限制上传文件与危险的类型 7.38
[16] cwe - 732 不正确的权限分配的关键资源 6.95
[17] cwe - 94 不当控制生成的代码(代码注入) 6.53
[18] cwe - 522 保护不足的凭证 5.49
[19] cwe - 611 XML外部实体引用的不当限制 5.33
[20] cwe - 798 使用硬编码的凭证 5.19
[21] cwe - 502 反序列化的数据不可信 4.93
[22] cwe - 269 权限管理不当 4.87
[23] cwe - 400 不受控制的资源消耗 4.14
[24] cwe - 306 失踪的身份验证的重要功能 3.85
[25] cwe - 862 失踪的授权 3.77

分析和评论

2019年和2020年之间的主要区别CWE排名前25位的列表是增加过渡到更具体的弱点而不是抽象类级别的弱点。虽然这些类级别的弱点在列表中仍然存在,他们已经在排名。这个运动预计将继续在未来几年随着社区改善其映射到更具体的弱点。看,类级别的弱点cwe - 119(不当限制操作内存缓冲区的边界内),CWE-20(不当输入验证),和cwe - 200(暴露敏感信息未经授权的演员)每个向下移动两个点;cwe等更具体的弱点- 79(中和不当输入在Web页面生成),cwe - 787(界外写)和cwe - 125(界外读),把他们的地方。和随后的未来运动,这种变化将大大受益用户试图理解实际问题,威胁到今天的系统。

最大的运动涉及四个弱点列表相关的身份验证和授权:

  • cwe - 522(凭证)保护不足:从# 27 # 18
  • cwe - 306(重要功能缺失的身份验证):从# 36 # 24
  • cwe - 862(缺少授权):从# 34 # 25
  • cwe - 863(不正确的授权):从# 33 # 29

这四个弱点代表一些最困难的地区来分析一个系统。关于这个运动理论是社区改善了其教育,工具,和分析功能的实现特定的弱点在早期版本的标识CWE前25位,减少这些的发生,从而降低他们的排名,从而提高排名这些更困难的缺点。四个最大的推动下有:

  • cwe - 426(不可信的搜索路径):# 22 # 26
  • cwe - 295(不当证书验证):从# 25 # 28
  • cwe - 835(循环不可到达的退出条件):# 26 # 36
  • cwe - 704(错误类型转换或演员):# 28 # 37

另一个大运动是再一次的结果映射到一个更具体的弱点。cwe, 2019年- 772年(失踪后释放资源的有效寿命)# 21。然而,这并没有告诉整个故事为哪种类型的资源不被释放是很重要的。2020年,一个更具体的映射是用于显示确切的类型的资源。由于这一变化,cwe - 401(失踪之后释放内存有效寿命)从名单上没有# 32,和cwe - 772代表所有非内存资源下降到# 75。这种变化创造了一个更精确的CWE前25名,确定更精确的实际问题。

还值得注意的是添加cwe - 77(不当中和特殊元素中使用命令)在31号处于列表。“命令注入”是一个术语使用的漏洞描述不一致,经常以牺牲更准确的OS命令注入,或用来描述所产生的后果,而不是根疲软。CWE团队的这一研究领域,有望在将来的版本中改进CWE的前25位。

方法

2020年CWE前25位是由获得从NVD脆弱性数据公布。NVD获得从CVE漏洞数据,然后补充额外的分析和信息,包括一个映射到一个或多个弱点,CVSS分数,这是一个数字分数代表的潜在严重性脆弱性基于一套标准化的脆弱性特征。NVD消化的格式提供了这些信息,帮助推动2020年创建数据驱动的方法CWE前25名。这种方法提供了一个客观的看看漏洞目前看到在现实世界中,创建一个分析严谨的基础建立在公开报道的漏洞,而不是主观调查和意见,并使容易重复的过程。

2020年CWE前25位利用NVD数据从2018年到2019年,由大约27000个cf与弱点。计分公式用于计算排名的顺序的弱点相结合的频率CWE的脆弱性的根本原因是预计其剥削的严重性。在这两种情况下,频率和严重程度都是归一化相对于最小值和最大值。

确定CWE的频率,计分公式计算的次数在NVD CWE映射到CVE。只有那些有关联的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的评分指标

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

排名 CWE NVD计数 Avg CVSS 总分
[1] cwe - 79 3788年 5.80 46.82
[2] cwe - 787 2225年 8.31 46.17
[3] CWE-20 1910年 7.35 33.47
[4] cwe - 125 1578年 7.13 26.5
[5] cwe - 119 1189年 8.08 23.73
[6] cwe - 89 901年 8.98 20.69
[7] cwe - 200 1467年 6.01 19.16
[8] cwe - 416 918年 8.26 18.87
[9] cwe - 352 866年 8.08 17.29
[10] cwe - 78 767年 8.52 16.44
[11] cwe - 190 846年 7.70 15.81
[12] CWE-22 792年 7.27 13.67
[13] cwe - 476 529年 6.83 8.35
[14] cwe - 287 412年 8.05 8.17
[15] cwe - 434 346年 8.50 7.38
[16] cwe - 732 426年 6.99 6.95
[17] cwe - 94 295年 8.74 6.53
[18] cwe - 522 283年 7.92 5.49
[19] cwe - 611 277年 7.88 5.33
[20] cwe - 798 234年 8.76 5.19
[21] cwe - 502 217年 8.93 4.93
[22] cwe - 269 278年 7.36 4.87
[23] cwe - 400 249年 7.09 4.14
[24] cwe - 306 193年 8.10 3.85
[25] cwe - 862 236年 6.90 3.77

弱点的尖端

继续去年的主题,CWE团队认为重要的是分享这些十五额外的弱点,得分在最后的前25位。计分公式,这些弱点可能不够严重,或不够普遍,包括在2020年CWE前25名。

个人执行减排和风险决策使用2020 CWE排名前25位的可能要考虑包括这些额外的弱点在他们的分析:

排名 CWE 的名字 NVD计数 Avg CVSS 总分
[26] cwe - 426 不可信的搜索路径 175年 7.68 3.25
[27] cwe - 918 服务器端请求伪造(SSRF) 161年 7.85 3.08
[28] cwe - 295 不适当的证书验证 180年 7.19 3.04
[29] cwe - 863 错误的授权 189年 6.82 2.97
[30] cwe - 284 访问控制不当 173年 7.22 2.94
[31] cwe - 77 不当中和一个命令中使用的特殊元素(“命令注入”) 131年 8.46 2.77
[32] cwe - 401 失踪之后释放内存有效寿命 189年 6.43 2.72
[33] cwe - 532 敏感信息插入日志文件 154年 6.82 2.42
[34] cwe - 362 使用共享资源与不当同步并发执行(“竞争条件”) 157年 6.68 2.39
[35] cwe - 601 URL重定向不可信的网站(“开放重定向”) 176年 6.12 2.35
[36] cwe - 835 循环和遥不可及的退出条件(无限循环) 150年 6.72 2.30
[37] cwe - 704 不正确类型转换或演员 109年 8.48 2.30
[38] cwe - 415 双自由 117年 8.04 2.30
[39] cwe - 770 资源配置没有限制或节流 139年 7.06 2.29
[40] CWE-59 不当链接之前决议文件访问(“链接后”) 122年 7.07 2.01

方法的局限性

有几个限制使用的数据驱动的方法创建CWE前25名。

数据偏差

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

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

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

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

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

标准偏差

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

重新映射任务

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

这种重新映射工作进行超过一万CVE条目在考虑2020年排名前25位的列表中。NIST的贴图数据共享,这样他们就可以更新他们的CVE NVD内条目。

的主要活动是:

  • 重新映射CVE条目映射到CWE类别。而cwe - 399等类别(资源管理错误)可用NVD分析师多年来,最近的指导和修改视图cwe - 1003试图消除这种做法。CWE团队建议类别应该只作为组织和导航机制,不应该映射到;应该使用唯一的弱点。
  • 执行自动关键词搜索找到CWE可能重新映射条目不正确映射。例如,一些CVE条目被映射到高级cwe - 119(不当限制操作内存缓冲区的边界内)。然而,短语与界外自动读取被发现在CVE描述。在这些情况下,映射到低水平cwe - 125(界外读)被认为是更合适的。
  • 关注高层CWE的类可能更精确映射。这项工作是劳动密集型的,包括调查详细引用例如开源bug报告或安全研究人员报告。CWE团队无法覆盖所有类级条目由于大量的CVE条目映射到它们,例如,CWE - 119, CWE-20, CWE - 200, CWE - 74和CWE - 284。这将是一个持续的专注在未来几年。
  • 识别特定的CVE条目可能表明CWE内部差距,也就是说,CVE条目有足够的技术细节了解的弱点,但弱点没有一个适当的CWE映射。
  • 更新CWE - 1003视图,以确保有报道最常见CWE映射;继续支持一个简化的结构,只有两个层次,通常与一个类作为一个家长和基地的孩子。四个弱点被添加到cwe - 1003基于频繁使用的映射视图:cwe - 77, cwe - 401, cwe - 917和cwe - 1236。
  • 而CWE团队每一个可能努力重新映射修正减少主观性,缺乏相关的,详细的信息呈现在一些CVE描述意味着的一小部分数据集仍然需要一些主观分析的结论。

存档

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

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