CWE

常见的弱点枚举

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

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

2021 CWE最危险软件的弱点


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


介绍

CWE排名前25位的标志

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

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

CWE的前25名

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

排名 ID 的名字 分数 2020年排名变化
[1] cwe - 787 禁止入内的写 65.93 + 1
[2] cwe - 79 中和不当输入在Web页面生成(“跨站点脚本编制”) 46.84 1
[3] cwe - 125 禁止入内的读 24.9 + 1
[4] CWE-20 不正确的输入验证 20.47 1
[5] cwe - 78 不当使用中和特殊元素在一个操作系统命令(OS命令注入) 19.55 + 5
[6] cwe - 89 不当使用中和特殊元素在一个SQL命令(SQL注入) 19.54 0
[7] cwe - 416 使用后免费 16.83 + 1
[8] CWE-22 不当限制限制目录的路径名(“路径遍历”) 14.69 + 4
[9] cwe - 352 跨站请求伪造(CSRF) 14.46 0
[10] cwe - 434 无限制上传文件与危险的类型 8.45 + 5
[11] cwe - 306 失踪的身份验证的重要功能 7.93 + 13
[12] cwe - 190 整数溢出或概括的 7.12 1
[13] cwe - 502 反序列化的数据不可信 6.71 + 8
[14] cwe - 287 不适当的身份验证 6.58 0
[15] cwe - 476 空指针废弃 6.54 2
[16] cwe - 798 使用硬编码的凭证 6.27 + 4
[17] cwe - 119 不当的操作限制的范围内一个内存缓冲区 5.84 -12年
[18] cwe - 862 失踪的授权 5.47 + 7
[19] cwe - 276 不正确的默认权限 5.09 + 22
[20] cwe - 200 暴露敏感信息的未经授权的演员 4.74 -13年
[21] cwe - 522 保护不足的凭证 4.21 3
[22] cwe - 732 不正确的权限分配的关键资源 4.2 6
[23] cwe - 611 XML外部实体引用的不当限制 4.02 4
[24] cwe - 918 服务器端请求伪造(SSRF) 3.78 + 3
[25] cwe - 77 不当中和一个命令中使用的特殊元素(“命令注入”) 3.58 + 6

分析和评论

2020年和2021年之间的主要区别CWE排名前25位的列表是继续过渡到更具体的弱点而不是抽象、类级别的弱点。初步估计表明,基本的连续波的百分比增加了从~ 60% ~ 71%的前25项,和类级连续波的比例减少了~ 30% ~ 20%的条目。其他疲软的水平(例如,类别,化合物,和变体)保持相对不变。

而几类级列表中的弱点依然存在,他们排名下降明显,受到优先级重新映射的任务(见重新映射任务章节)。这个运动预计将继续在未来几年随着社区改进它的映射来更精确的弱点。

类级别相对衰落的弱点,更具体的连续波已经代替这些高层类,如cwe - 78(中和不当使用特殊的元素在一个操作系统命令(“OS命令注入”)),CWE-22(不当限制限制目录的路径名(“路径遍历”)),cwe - 434(无限制上传的文件与危险的类型),cwe - 306(重要功能缺失的身份验证),cwe - 502(反序列化不可信的数据),cwe - 862(缺少授权),和cwe - 276(错误的默认权限)。随后的未来运动将大大受益用户试图理解实际问题,威胁到今天的系统,作为前25名团队认为基本的弱点比类级别信息对利益相关者的弱点。

最大的运动列表:

  • cwe - 276(错误的默认权限):从# 41 # 19
  • cwe - 306(重要功能缺失的身份验证):# 11 # 24
  • cwe - 502(反序列化不可信的数据):从# 21 # 13
  • cwe - 862(缺少授权):从# 25 # 18
  • cwe - 77(不当中和一个命令中使用的特殊元素(“命令注入”)):从# 31 # 25

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

五个最大的向下搬家公司是:

  • cwe - 200(暴露敏感信息未经授权的演员):# 7 # 20
  • cwe - 119(不当的操作限制的范围内一个内存缓冲区):# 5 # 17
  • cwe - 94(不当控制生成的代码(代码注入)):# 17 # 28
  • cwe - 269(不当特权管理):# 22 # 29
  • cwe - 732为关键资源(不正确的权限分配):从# 16 # 22

新条目在前25名中有:

  • cwe - 276(错误的默认权限):从# 41 # 19
  • cwe - 918(服务器端请求伪造(SSRF)):从27 # # 24
  • cwe - 77(不当中和一个命令中使用的特殊元素(“命令注入”)):从# 31 # 25

条目跌落前25名是:

  • cwe - 400(不受控制的资源消耗):# 23 # 27
  • cwe - 94(不当控制生成的代码(代码注入)):# 17 # 28
  • cwe - 269(不当特权管理):# 22 # 29

对于那些感兴趣的是为什么这些转变发生,看到“重新映射任务”一节学习如何优先级重新映射的活动可能会影响到排名。

方法

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

2021年CWE前25位利用NVD数据与CVE id从2019年到2020年,当下载3月18日,2021年。这个原始数据的快照由大约32500个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的评分指标

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

排名 CWE NVD计数 Avg CVSS 总分
[1] cwe - 787 3033年 8.22 65.93
[2] cwe - 79 3564年 5.80 46.84
[3] cwe - 125 1448年 6.94 24.90
[4] CWE-20 1120年 7.25 20.47
[5] cwe - 78 833年 8.71 19.55
[6] cwe - 89 830年 8.73 19.54
[7] cwe - 416 807年 7.98 16.83
[8] CWE-22 783年 7.39 14.69
[9] cwe - 352 741年 7.60 14.46
[10] cwe - 434 381年 8.36 8.45
[11] cwe - 306 381年 7.98 7.93
[12] cwe - 190 368年 7.56 7.12
[13] cwe - 502 280年 8.87 6.71
[14] cwe - 287 324年 7.84 6.58
[15] cwe - 476 404年 6.67 6.54
[16] cwe - 798 275年 8.54 6.27
[17] cwe - 119 278年 8.04 5.84
[18] cwe - 862 361年 6.38 5.47
[19] cwe - 276 298年 6.92 5.09
[20] cwe - 200 330年 6.16 4.74
[21] cwe - 522 232年 7.23 4.21
[22] cwe - 732 249年 6.87 4.20
[23] cwe - 611 206年 7.62 4.02
[24] cwe - 918 207年 7.26 3.78
[25] cwe - 77 164年 8.28 3.58

弱点的尖端

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

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

排名 CWE 的名字 NVD计数 Avg CVSS 总分 2020年排名变化
[26] cwe - 295 不适当的证书验证 201年 6.99 3.47 + 2
[27] cwe - 400 不受控制的资源消耗 200年 6.99 3.46 4
[28] cwe - 94 不当控制生成的代码(代码注入) 138年 8.63 3.18 -11年
[29] cwe - 269 权限管理不当 172年 7.30 3.16 7
[30] cwe - 917 不当中和一个表达式语言语句中使用的特殊元素(表达式语言注入) 128年 9.05 3.14 + 17
[31] CWE-59 不当链接之前决议文件访问(“链接后”) 177年 7.11 3.13 + 9
[32] cwe - 401 失踪之后释放内存有效寿命 205年 6.42 3.13 0
[33] cwe - 362 使用共享资源与不当同步并发执行(“竞争条件”) 202年 6.47 3.12 + 1
[34] cwe - 427 不受控制的搜索路径元素 158年 7.66 3.10 + 24
[35] cwe - 319 明文传输的敏感信息 177年 6.99 3.06 + 7
[36] cwe - 843 访问资源的使用不兼容的类型(类型混淆) 124年 8.51 2.80 + 9
[37] cwe - 601 URL重定向不可信的网站(“开放重定向”) 184年 6.12 2.62 2
[38] cwe - 863 错误的授权 155年 6.80 2.57 9
[39] cwe - 532 敏感信息插入日志文件 171年 6.26 2.51 6
[40] cwe - 770 资源配置没有限制或节流 136年 6.99 2.34 1

方法的局限性

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

数据偏差

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

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

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

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

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

标准偏差

一个重要偏差理解相关指标是它间接实现缺陷的敏感度要高于设计缺陷,由于他们的患病率在单独的软件包。例如,一个web应用程序可能有许多不同的跨站点脚本(XSS)由于大漏洞攻击表面,然而只有一个实例的弱身份验证可能会影响整个应用程序。能够设计出另一种度量,包括产品的百分比NVD内至少有一个与特定CWE CVE。这种度量常用的应用程序安全厂商在他们的年度分析。

度规的另一个限制是2020年12月由Galhardo Bojanova,干预,Gueye研究会纸”测量最重要的软件安全漏洞”。作者出版的《发现方程高度偏差频率,几乎忽略了可利用性和影响产生不同大小的列表。这是由于不同的组件的分布度量值。”That critique seems to apply in this year’s list as well. For example, consider how CWE-79 is ranked #2, but it has the lowest average CVSS score (5.80) of the entire Top 25 and the Cusp.

在未来一年,前25名团队将积极调查这样的替代指标,和一种新的衡量标准可能被选择来确定2022 CWE前25名。

重新映射任务

准备的CVE / NVD数据分析,CWE团队回顾了CWE的映射选择CVE / NVD条目,在适当情况下,引用“贴图”条目,以便他们更合适CWE id。

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

的主要活动是:

  • 下载一个“快照”的NVD来自2019年和2020年的数据。这个存储库下载3月18日,2021年,它被使用在分析。
  • 执行自动关键词搜索找到CWE可能重新映射条目不正确映射。例如,一些CVE条目被映射到高级cwe - 119(不当限制操作内存缓冲区的边界内)。然而,短语与界外自动读取被发现在CVE描述。在这些情况下,映射到低水平cwe - 125(界外读)被认为是更合适的。
  • 扩展关键字匹配器来检测潜在的更多的CWE映射条目,包括一些只有在过去一两年了。创建一个相关的匹配器CVE内寻找CWE的实际名称条目描述,这是惊人的成功。
  • 识别四个最高级别的类基于快照排名前25位的计算使用原3月18日NVD数据,然后研究他们。这些“4”类CWE-20, cwe - 200, cwe - 119和cwe - 269。
  • 为强调选择额外的主题领域。今年的重点包括访问控制、加密和随机性。注意,这是第一年,cryptography-related cf分析作为一个群体;虽然这并不影响前25名中,是非常有用的理解的局限性CWE支持映射加密。访问控制也是有针对性的,因为普遍的类级访问控制问题在前25名中,尖端,以及怀疑的映射是不一致的,这是真的。
  • 在某些领域进行更深层次的分析疑似映射不准确,特别是注射。这通常涉及到比过去几年更加关注引用。例如,基于分析2020年,映射cwe - 74和cwe - 77已经有一个很好的机会被映射到更精确的cwe - 78在分析参考。(https://medium.com/@CWE_CAPEC 2020 - cwe - - 25 -分析- c39d100cb0fd)
  • De-prioritize类别。几乎没有剩下cf仍然映射到类别,由于在2019年底消除1003年视图类别。cf映射到类别没有分析本身作为一个群体,但他们通常是包含在其他组织如密码学或关键字匹配。应该注意的是,一些2020年CNA来源仍然使用类别数据。
  • 改善与自动化的手动映射过程工具和注释。这些改进的一些实验的时候,他们可能会被用于未来排名前25位的列表,如自动语法检查重新映射分析师提供的报告;引用url的自动抓取CWE id和关键字匹配;和转移的CVE记录不同“分析批次”就或重新分配cf提出挑战更复杂的分析。
  • 而CWE团队每一个可能努力重新映射修正减少主观性,缺乏相关的,详细的信息呈现在一些CVE描述意味着的一小部分数据集仍然需要一些主观分析的结论。

在前几年,与此同时,排名前25位的版本,CWE - 1003的观点也被修改,以确保它仍然可以提供覆盖最常见CWE映射。这创造了额外的技术复杂性NIST和CWE排名前25位的球队。今年,认为1003年将是CWE 4.6版本的更新,可能在10月。

重新映射任务的限制

用这种重新映射方法为2019年之后,2020年和2021年排名前25位的列表,一些限制已成为明显的:

  • cf与高层CWE条目的数量居高不下,迫使手动重新映射大量cf,这是劳动密集型的。
  • 重新映射在短时间内执行之前出版的列表,这增加的时间和人员压力在此期间。此外,数据交换与NIST改为提供映射的数据在整个审查期间,而不是最后一次。不过,短时间内使NVD员工很难接收、分析和处理所有映射的变化。
  • 由于数据是前几年,它阻止NIST员工能够及时反馈,以便调整自己的实践培训和映射。
  • 缺乏相关信息的许多cf继续介绍耗时分析和变化映射结果,结合增加偏好分析引用更密切。
  • 甚至在CWE排名前25位的团队本身,不同的分析师可以不一致,CWE映射他们选择同样的CVE,尤其是对漏洞,没有非常明确的措辞的弱点。目前尚不清楚这是一个限制CWE本身,CVE描述内的术语的变化或不同观点和经验水平的分析人士执行映射。
  • 重新映射任务完成后,NVD最初使用的版本通常是几个月大,今年,NVD从3月18日,2021年。这可能会导致明显的矛盾对于那些想要复制的度规,继续添加新的CVE记录以来的前几年。

在未来,重新映射任务可能会改变消除或减轻这些限制。

新兴的机会改善

尽管目前的局限性重新映射任务,一些活动已经最近形状,可能会显示积极改进NVD / CWE映射数据,用于未来排名前25位的列表:

  • NIST的协作漏洞元数据验收程序(CVMAP)项目获得牵引力,积极互动与候选人CVE编号当局(CNAs)可能会提高CWE映射与CNAs质量。CWE项目计划与CNAs密切互动,帮助获得更精确的数据。
  • 5.0版本的CVE JSON记录格式包括直接支持包括CWE映射CVE记录,这可能会提高质量和精度CWE映射。
  • 2021年3月,CWE程序发布CVE - > CWE映射指导,这使得它更容易必须和其他各方进行技术的任务就是寻找合适的CWE映射的漏洞。

确认

2021 CWE排名前25位的团队包括(按字母顺序):亚当•Chaudry史蒂夫Christey绿青鳕,克里·克劳斯,凯文·戴维斯,德文郡Ellis帕克驻军,克里斯蒂娜约翰,马林诺夫斯基路加福音,Rushi Purohit,贝基·鲍威尔,大卫·罗斯伯格,亚历克·萨默斯(lawrence Summers)和布莱恩Vohaska。NIST NVD团队的成员,排名前25位的协调包括克里斯托弗·特纳和罗伯特·拜尔斯维迪雅Ananthakrishna。最后,也要感谢广大CWE社区提出改进过程。

存档

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

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