CWE发布2021年最危险的25种软件缺陷

Uncle_Tom 发表于 2021/07/26 11:26:22 2021/07/26
【摘要】 CWE最危险的25种软件缺陷,是NVD过去两年中遇到的最常见和影响最大的问题指示性的列表。 这些缺陷通常很容易被发现和利用,并且可以让攻击者完全接管系统、窃取数据或阻止应用程序运行。 CWE Top25 可以帮助开发人员、测试人员和用户,以及项目经理、安全研究人员和教育工作者深入了解最严重和当前的安全漏洞。

1. CWE 4.5发布

7月20日,CWE发布了今年的第二个版本CWE 4.5版本。相比CWE 4.4, 这次新增4个缺陷和1个视图,还对缺陷的名称、描述和关系等做了139处重要改动。

主要的改动有:

  • 对不再使用的CWE编号,在CWE的名称前加上了“DEPRECATED: ”。这样使用者可以不用再看状态,就可以知道这个CWE编号已经停止使用了;
    举例:
CWE Name
132 DEPRECATED: Miscalculated Null Termination
218 DEPRECATED: Failure to provide confidentiality for stored data
225 DEPRECATED: General Information Management Problems
247 DEPRECATED: Reliance on DNS Lookups in a Security Decision
292 DEPRECATED: Trusting Self-reported DNS Name
423 DEPRECATED: Proxied Trusted Channel
443 DEPRECATED: HTTP response splitting
516 DEPRECATED: Covert Timing Channel

  • 记录CWE变更记录的节点“Content_History”,扩展到了顶层节点Views, Categories, 和Weaknesses。这样可以清楚的看到每个节点在CWE版本演变过程中的变化情况。关于CWE节点的介绍可以参考《话说CWE 4.2的新视图》

  • 语言枚举(LanguageNameEnumeration)的语言中,增加了Rust, 这样在应用平台(Applicable_Platform)和样例(Demonstrative_Example)节点就增加了Rust语言。 目前CWE枚举的语言有29中之多,基本上涵盖了我们业界的主要开发语言。从这个变化也可以看到Rust语言在业界的应用越来越多了;

<xs:simpleType name="LanguageNameEnumeration">
		<xs:annotation>
			<xs:documentation>The LanguageNameEnumeration simple type contains a list of values corresponding to different source code languages.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="Ada"/>
			<xs:enumeration value="ASP"/>
			<xs:enumeration value="ASP.NET"/>
			<xs:enumeration value="Basic"/>
			<xs:enumeration value="C"/>
			<xs:enumeration value="C++"/>
			<xs:enumeration value="C#"/>
			<xs:enumeration value="COBOL"/>
			<xs:enumeration value="Fortran"/>
			<xs:enumeration value="F#"/>
			<xs:enumeration value="Go"/>
			<xs:enumeration value="HTML"/>
			<xs:enumeration value="Java"/>
			<xs:enumeration value="JavaScript"/>
			<xs:enumeration value="JSP"/>
			<xs:enumeration value="Objective-C"/>
			<xs:enumeration value="Pascal"/>
			<xs:enumeration value="Perl"/>
			<xs:enumeration value="PHP"/>
			<xs:enumeration value="Python"/>
			<xs:enumeration value="Ruby"/>
			<xs:enumeration value="Rust"/>
			<xs:enumeration value="Shell"/>
			<xs:enumeration value="SQL"/>
			<xs:enumeration value="Swift"/>
			<xs:enumeration value="VB.NET"/>
			<xs:enumeration value="Verilog"/>
			<xs:enumeration value="VHDL"/>
			<xs:enumeration value="XML"/>
			<xs:enumeration value="Other"/>
		</xs:restriction>
	</xs:simpleType>

CWE-1339

下面我们对安全人员最关心的CWE-1337 2021年CWE最危险的25种软件缺陷做个重点介绍。

2. 2021年最危险的25种软件缺陷

2021年CWE最危险的25种软件缺陷,是前两个日历年(2019-2020)中遇到的最常见和影响最大的问题指示性的列表。 这些缺陷通常很容易被发现和利用,并且可以让攻击者完全接管系统、窃取数据或阻止应用程序运行。 CWE Top 25 可以帮助开发人员、测试人员和用户,以及项目经理、安全研究人员和教育工作者深入了解最严重和当前的安全漏洞。

这个数据表的编写,利用了美国国家标准与技术研究院 (NIST) 的国家漏洞数据库 (NVD) 中的常见漏洞和披露 (CVE) 数据以及通用漏洞评分系统 (CVSS) 评定的分数与每个CVE记录相关联, 根据出现频率和严重程度对每个弱点进行评分。报告对了2019-2020 NVD收录的32500个CVE漏洞进行了评分和计算,在归一化后得到了缺陷的排名。排名在算法上考虑到了出现频率(prevalence)和危害(severity)两个参数, 确保出现频率低, 危害小的缺陷, 不容易出现在排行榜中, 而是让频率高, 危害高的缺陷出现在排行榜中。

2.1. 2021年CWE最危险的25种软件缺陷

这次的CWE TOP25是CWE自2019年后,连续第三次发布TOP25数据。我们可以从每年TOP25的变动中看到攻防双方在一些重要问题上的争夺,这样有助于作为防守方的我们提前对一些重点高危漏洞进行提前的技术储备和应急响应措施的准备。

  • CWE 2021 TOP25的主要数据
序号 CWE编号 CWE 名称 NVD 缺陷数量 Avg CVSS 得分 名次变动
[1] CWE-787 越界写入 3033 8.22 65.93 +1
[2] CWE-79 在Web页面生成时对输入的转义处理不恰当(跨站脚本) 3564 5.8 46.84 -1
[3] CWE-125 越界读取 1448 6.94 24.9 +1
[4] CWE-20 不正确的输入验证 1120 7.25 20.47 -1
[5] CWE-78 OS命令中使用的特殊元素转义处理不恰当(OS命令注入) 833 8.71 19.55 +5
[6] CWE-89 SQL命令中使用的特殊元素转义处理不恰当(SQL注入) 830 8.73 19.54 0
[7] CWE-416 释放后使用 807 7.98 16.83 +1
[8] CWE-22 对路径名的限制不恰当(路径遍历) 783 7.39 14.69 +4
[9] CWE-352 跨站请求伪造(CSRF) 741 7.6 14.46 0
[10] CWE-434 危险类型文件的不加限制上传 381 8.36 8.45 +5
[11] CWE-306 关键功能的认证机制缺失 381 7.98 7.93 +13
[12] CWE-190 整数溢出或环绕 368 7.56 7.12 -1
[13] CWE-502 不可信数据反序列化 280 8.87 6.71 +8
[14] CWE-287 不正确的认证 324 7.84 6.58 0
[15] CWE-476 空指针解引用 404 6.67 6.54 -2
[16] CWE-798 使用硬编码的凭证 275 8.54 6.27 +4
[17] CWE-119 内存缓冲区边界内操作的限制不恰当 278 8.04 5.84 -12
[18] CWE-862 授权机制缺失 361 6.38 5.47 +7
[19] CWE-276 默认权限不正确 298 6.92 5.09 +22
[20] CWE-200 将敏感信息暴露给未经授权的行为者 330 6.16 4.74 -13
[21] CWE-522 凭证保护不足 232 7.23 4.21 -3
[22] CWE-732 关键资源的权限分配不正确 249 6.87 4.2 -6
[23] CWE-611 XML外部实体引用的不恰当限制(XXE) 206 7.62 4.02 -4
[24] CWE-918 服务器端请求伪造(SSRF) 207 7.26 3.78 +3
[25] CWE-77 在命令中使用的特殊元素转义处理不恰当(命令注入) 164 8.28 3.58 +6

2.2. CWE TOP25 2021 vs 2020

CWE TOP25 2021和2020相比,一些主要的变动较大的数据。

2.2.1. 变动最大的缺陷

  • CWE-276 默认权限不正确(Incorrect Default Permissions): 从41到19
  • CWE-306 关键功能的认证机制缺失(Missing Authentication for Critical Function): 从24到11
  • CWE-502 不可信数据反序列化(Deserialization of Untrusted Data): 从21到13
  • CWE-862 授权机制缺失(Missing Authorization): 从25到18
  • CWE-77 在命令中使用的特殊元素转义处理不恰当(命令注入)(Improper Neutralization of Special Elements used in a Command (‘Command Injection’)): 从31到25

2.2.2. 下降最快的前5名缺陷

  • CWE-200 将敏感信息暴露给未经授权的行为者(Exposure of Sensitive Information to an Unauthorized Actor): 从7到20
  • CWE-119 内存缓冲区边界内操作的限制不恰当(Improper Restriction of Operations within the Bounds of a Memory Buffer): 从5到17
  • CWE-94 对生成代码的控制不恰当(代码注入)(Improper Control of Generation of Code (‘Code Injection’)): 从17到28
  • CWE-269 特权管理不恰当(Improper Privilege Management): 从22到29
  • CWE-732 关键资源的权限分配不正确(Incorrect Permission Assignment for Critical Resource): 从16到22

2.2.3. 新进入前25的缺陷

  • CWE-276 默认权限不正确(Incorrect Default Permissions): 从41到19
  • CWE-918 服务器端请求伪造(SSRF)(Server-Side Request Forgery (SSRF)): 从27到24
  • CWE-77 在命令中使用的特殊元素转义处理不恰当(命令注入)(Improper Neutralization of Special Elements used in a Command (‘Command Injection’)): 从31到25

2.2.4. 跌出前25的缺陷

  • CWE-400 未加控制的资源消耗(资源穷尽)(Uncontrolled Resource Consumption): 从23到27
  • CWE-94 对生成代码的控制不恰当(代码注入)(Improper Control of Generation of Code (‘Code Injection’)): 从17到28
  • CWE-269 特权管理不恰当(Improper Privilege Management): 从22到29

3. 结论

  • 在今天魔道争锋的时代,CWE Top25可以帮助我们进一步的思考魔的攻击方向和防守的道;
  • 缓冲区溢出、输入校验、注入类问题仍是业界的主要安全问题,需要持续的关注;
  • 对于隐私保护意识的提升,使敏感信息泄露得到一定程度的控制;
  • 权限控制是安全攻防争夺的焦点,除了特权的管理,还要特别关注关键功能和默认权限的设置;
  • 在信息保存和传输中,要注意不可信数据的反序列化问题。

4. 参考

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。