CWE 发布 2021 年最危险的 25 种软件缺陷
摘要:CWE 最危险的 25 种软件缺陷,是 NVD 过去两年中遇到的最常见和影响最大的问题指示性的列表。 CWE Top25 可以帮助开发人员、测试人员和用户,以及项目经理、安全研究人员和教育工作者深入了解最严重和当前的安全漏洞。
本文分享自华为云社区《CWE发布2021年最危险的25种软件缺陷》,作者: Uncle_Tom。
1. CWE 4.5 发布
7 月 20 日,CWE 发布了今年的第二个版本 CWE4.5 版本。相比 CWE 4.4, 这次新增 4 个缺陷和 1 个视图,还对缺陷的名称、描述和关系等做了 139 处重要改动。
主要的改动有:
对不再使用的 CWE 编号,在 CWE 的名称前加上了“DEPRECATED: ”。这样使用者可以不用再看状态,就可以知道这个 CWE 编号已经停止使用了;
举例:
记录 CWE 变更记录的节点“Content_History”,扩展到了顶层节点 Views, Categories, 和 Weaknesses。这样可以清楚的看到每个节点在 CWE 版本演变过程中的变化情况。关于 CWE 节点的介绍可以参考《话说CWE 4.2的新视图》;
语言枚举(LanguageNameEnumeration)的语言中,增加了 Rust, 这样在应用平台(Applicable_Platform)和样例(Demonstrative_Example)节点就增加了 Rust 语言。 目前 CWE 枚举的语言有 29 中之多,基本上涵盖了我们业界的主要开发语言。从这个变化也可以看到 Rust 语言在业界的应用越来越多了;
增加了图像(<img>)节点, 这样可以 CWE 中通过图片引用来更好的对问题进行描述;
例如:CWE-1339 Insufficient Precision or Accuracy of aReal Number 在说明 Jean-Michel Muller 实数精度计算问题时,通过图的方式展示数据的变化,让人更容易理解问题。
新增的四个缺陷节点是:
CWE-1335:Incorrect Bitwise Shift of Integer
CWE-1336:Improper Neutralization of Special Elements Used in a Template Engine
CWE-1339:Insufficient Precision or Accuracy of a Real Number
CWE-1351:Improper Handling of Hardware Behavior in Exceptionally Cold Environments
新增的视图是:
CWE-1337: Weaknesses in the2021 CWE Top 25 Most Dangerous Software Weaknesses
下面我们对安全人员最关心的 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)两个参数, 确保出现频率低, 危害小的缺陷, 不容易出现在排行榜中,而是让频率高, 危害高的缺陷出现在排行榜中。
具体的算法详见《话说CWE 4.2的新视图》
2.1. 2021 年 CWE 最危险的 25 种软件缺陷
这次的 CWE TOP25 是 CWE 自 2019 年后,连续第三次发布 TOP25 数据。我们可以从每年 TOP25 的变动中看到攻防双方在一些重要问题上的争夺,这样有助于作为防守方的我们提前对一些重点高危漏洞进行提前的技术储备和应急响应措施的准备。
CWE 2021 TOP25 的主要数据
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 CriticalFunction): 从 24 到 11
CWE-502 不可信数据反序列化(Deserialization of Untrusted Data): 从 21 到 13
CWE-862 授权机制缺失(Missing Authorization): 从 25 到 18
CWE-77 在命令中使用的特殊元素转义处理不恰当(命令注入)(Improper Neutralizationof Special Elements used in a Command (‘CommandInjection’)): 从 31 到 25
2.2.2. 下降最快的前 5 名缺陷
CWE-200 将敏感信息暴露给未经授权的行为者(Exposure of SensitiveInformation to an Unauthorized Actor): 从 7 到 20
CWE-119 内存缓冲区边界内操作的限制不恰当(Improper Restriction ofOperations within the Bounds of a Memory Buffer): 从 5 到 17
CWE-94 对生成代码的控制不恰当(代码注入)(Improper Control ofGeneration of Code (‘Code Injection’)): 从 17 到 28
CWE-269 特权管理不恰当(Improper Privilege Management): 从 22 到 29
CWE-732 关键资源的权限分配不正确(Incorrect Permission Assignmentfor 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 在命令中使用的特殊元素转义处理不恰当(命令注入)(ImproperNeutralization of Special Elements used in a Command (‘CommandInjection’)): 从 31 到 25
2.2.4. 跌出前 25 的缺陷
CWE-400 未加控制的资源消耗(资源穷尽)(Uncontrolled ResourceConsumption): 从 23 到 27
CWE-94 对生成代码的控制不恰当(代码注入)(Improper Control ofGeneration of Code (‘Code Injection’)): 从 17 到 28
CWE-269 特权管理不恰当(Improper Privilege Management): 从 22 到 29
3. 结论
在今天魔道争锋的时代,CWE Top25 可以帮助我们进一步的思考魔的攻击方向和防守的道;
缓冲区溢出、输入校验、注入类问题仍是业界的主要安全问题,需要持续的关注;
对于隐私保护意识的提升,使敏感信息泄露得到一定程度的控制;
权限控制是安全攻防争夺的焦点,除了特权的管理,还要特别关注关键功能和默认权限的设置;
在信息保存和传输中,要注意不可信数据的反序列化问题。
4. 参考
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/84e60a9fe793a5541f912177b】。文章转载请联系作者。
评论