摘要:CWE最危险的25种软件缺陷,是NVD过去两年中遇到的最常见和影响最大的问题指示性的列表。 CWE Top25 可以帮助开发人员、测试人员和用户,以及项目经理、安全研究人员和教育工作者深入了解最严重和当前的安全漏洞。

本文分享自华为云社区《CWE发布2021年最危险的25种软件缺陷》,作者: Uncle_Tom。

1. CWE 4.5发布

7月20日,CWE发布了今年的第二个版本CWE 4.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语言在业界的应用越来越多了;
<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>
  • 增加了图像(<img>)节点, 这样可以CWE中通过图片引用来更好的对问题进行描述;

例如:CWE-1339 Insufficient Precision or Accuracy of a Real 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 the 2021 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)两个参数, 确保出现频率低, 危害小的缺陷, 不容易出现在排行榜中, 而是让频率高, 危害高的缺陷出现在排行榜中。

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 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. 参考

点击关注,第一时间了解华为云新鲜技术~

CWE发布2021年最危险的25种软件缺陷的更多相关文章

  1. PHP的25种框架

    本篇文章给大家分享的内容是25种PHP框架 -有着一定的参考价值,有需要的朋友可以参考一下. 世界流行框架汇总 在项目开发中,一些架构和代码都是重复的,为了避免重复劳动,于是各种各样的框架诞生了. 在 ...

  2. 摘:SQL Server数据类型的25种

    我们大家都知道数据类弄是数据的一种基本属性,其主要是表示数据在实际操作中所表示信息的类型.任何一种计算机语言都定义了自己的数据类型. 当然,不同的程序语言都具有不同的特点,所定义的SQL Server ...

  3. 《Flutter 动画系列一》25种动画组件超全总结

    动画运行的原理 任何程序的动画原理都是一样的,即:视觉暂留,视觉暂留又叫视觉暂停,人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称&q ...

  4. 应用Spring MVC发布restful服务是怎样的一种体验

            摘要:“约定优于配置”这是一个相当棒的经验,SOAP服务性能差.基于配置.紧耦合,restful服务性能好.基于约定.松耦合,现在我就把使用Spring MVC发布restful服务的 ...

  5. Ext.js 中 25种类型的Ext.panel.Tool

    通过Ext.panel.Panel的tools配置项来设置Ext.panel.Tool实例. 要注意的一点是,Ext框架提供的Ext.panel.Tool仅包含按钮图标而具体的点击事件处理函数需要我们 ...

  6. C#中使用FreeImage库加载Bmp、JPG、PNG、PCX、TGA、PSD等25种格式的图像(源码)。

    其实我一直都是喜欢自己去做图像格式的解码的(目前我自己解码的图像格式大概有15种),但是写本文主要原因是基于CSDN的这个帖子的: http://bbs.csdn.net/topics/3905104 ...

  7. 一文洞悉Python必备50种算法!资深大牛至少得掌握25种!

    一.环境需求 二.怎样使用 三.本地化 3.1扩展卡尔曼滤波本地化 3.2无损卡尔曼滤波本地化 3.3粒子滤波本地化 3.4直方图滤波本地化 四.映射 4.1高斯网格映射 4.2光线投射网格映射 4. ...

  8. 2021 编程语言排行榜出炉!C#年度语言奖

    IEEE Spectrum 发布了 2021 年度编程语言排行榜,其中 Python 在总榜单以及其他几个分榜单中依然牢牢占据第一名的位置.另外值得关注的是微软 C# 语言,它的排行从 2020 年的 ...

  9. WCF技术剖析之二十七: 如何将一个服务发布成WSDL[编程篇]

    原文:WCF技术剖析之二十七: 如何将一个服务发布成WSDL[编程篇] 对于WCF服务端元数据架构体系来说,通过MetadataExporter将服务的终结点导出成MetadataSet(参考< ...

  10. 日本IT行业劳动力缺口达22万 在日中国留学生迎来就业好时机 2017/07/18 11:25:09

    作者:倪亚敏 来源:日本新华侨报 发布时间:2017/07/18 11:25:09     据日本政府提供的数据,日本2018年应届毕业生的“求人倍率”已经达到了1.78倍.换言之,就是100名大学生 ...

随机推荐

  1. cdq分治/整体二分

    cdq分治: 使用场景: 三维偏序问题 优化dp 将动态问题转静态问题 99%题目能离线的情况下cdq可以替代树套树,时空都更优秀 整体二分: 起初用来解决动态区间第K min/max,在最基础的二分 ...

  2. QT(5)-QHeaderView

    @ 目录 1 说明 2 函数 2.1 级联调整大小 2.2 默认对齐方式 2.3 count() 2.4 表头默认单元格大小 2.5 hiddenSectionCount() 2.6 分区显示和隐藏 ...

  3. [转载]R2: 相关系数、复相关系数及半偏相关系数之间的联系

    开贴举例说明相关系数.复相关系数及半偏相关系数之间的联系. 比如,我们要预测学生在高中的表现(学生成绩),一种方法是测量学习速度和难易程度的能力测验来衡量学生的学习能力.那么,假设一个学生已经做了这样 ...

  4. HarmonyOS应用开发

    引言 本章将深入探讨 HarmonyOS 应用开发的关键方面,包括应用的生命周期.数据存储和网络访问.了解这些内容对于创建功能丰富.高效的 HarmonyOS 应用至关重要. 目录 HarmonyOS ...

  5. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-28-处理日历时间控件-上篇

    1.简介 我们在实际工作中,有可能遇到有些web产品,网页上有一些时间选择,然后支持按照不同时间段范围去筛选数据,例如:我们预定火车票或者预定酒店,需要选择发车日期或者酒店的入住与退房时间.宏哥早在之 ...

  6. (Good topic)二分法:x的平方根

      计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4输出: 2 示例 2: 输入: 8输出: 2说明: 8 的平方 ...

  7. [ABP] PostgreSQL在.NET 6.0使用DateTime类型抛出异常:timestamp with time zone

    今晚操起久违的 ABP 框架搭了个新项目: .NET 运行时版本:6.0.3 ABP 版本:v5.2.0-rc.2 版本. 数据库:PostgreSQL v10.x 一顿操作猛如虎,直接用 dotne ...

  8. 通过计算巢轻松部署Salt服务

    SaltStack服务实例部署 概述 Salt基于Python构建,是一个事件驱动的自动化工具和框架,用于部署.配置和管理复杂的IT系统.使用Salt来自动化公共基础设施管理任务,并确保基础设施的所有 ...

  9. C#Winform使用NPOI获取word中的数据

    公众号「DotNet学习交流」,分享学习DotNet的点滴. 需求 想要获取word里面的内容,如下图所示: 有一张表和一段文本,并将它们存入数据库或者Excel. 步骤 添加NPOI的库,如下图所示 ...

  10. Unit_ptr数据类型的理解

    1.相关代码理解 在看代码时,发现有用到  SOCKET 我去找它们的定义,发现有如下定义: typedef UINT_PTR SOCKET 又去看UINT_PTR,LONG_PTR, LONG_PT ...