CWE4.8 -- 2022年危害最大的25种软件安全问题
来源:http://www.tudoupe.com时间:2022-08-01
【摘要】CWE的危害最大的25种软件安全问题是安全从业人员、软件架构师、设计人员、开发人员、测试人员、用户、项目经理、安全研究人员, 以及教育工作者和标准组织等专业人员应对软件安全问题和降低软件安全风险的一种实用、方便的数据资源。我们来看下新版的《2022年危害最大的25种安全问题》在安全预防上会给了我们哪些安全提示。
1.CWE(英语:CWE)4.8的变化
2022年已经到一半了,继 《CWE 4.7中的新视图 – 工业控制系统的安全漏洞类别》 不到两个月前被释放,另一个版本在6月底发布—— CWE4.8。作为软件安全研究的重要标准,让我们看看下一个版本中有什么变化。
| 变化类型 | Version 4.7 | Version 4.8 |
|---|---|---|
| 弱点 | 926 | 927 |
| 分类 | 351 | 352 |
| 视图 | 47 | 48 |
| 废弃 | 62 | 62 |
| 汇总 | 1386 | 1389 |
- 从汇总表可以看出:
- 新增1个弱点:
Weakness-Base CWE-1386:Windows 连接点/挂载点上的不安全操作(Insecure Operation on Windows Junction / Mount Point) ; - 新增1个分类:
CWE CATEGORY: CWE-1388:物理访问问题(Physical Access Issues and Concerns) - 新增1个视图:
View CWE-1387:CWE Top 25 (2022)(Weaknesses in the 2022 CWE Top 25 Most Dangerous Software Weaknesses) 。
- 新增1个弱点:
这里我们可以看到具体弱点的变化。
1.1.CWE-1386:Windows连接/安装点操作不安全
这是一个新的Windows问题,具体位置在下面的图表中显示:
这个新弱点被划分在CWE-664(在生命周期中对资源的控制不恰当)下CWE-706(使用不正确的解析名称或索引), 以及CWE-59(在文件访问前对链接解析不恰当(链接跟随))下的一个子弱点。
在 Windows 中,NTFS5 允许文件系统可以对对象生成重解析点(reparse points)。
- 连接点:应用程序可以从一个目录到另一个目录创建硬链接,称为连接点。
- 载点: 从目录到驱动程序编号创建一个地图, 称为载点.
Windows文件或目录可以包含重新分析点,这是一个用户定义的数据集合。存储程序和分析这些数据文件的处理的系统滤波器可以识别数据的格式。当应用程序设置重新分析点时,它将添加一个独特的重新分析标签,以显示存储的数据在存储数据时。当文件系统打开一个较重分析点的文件时,首先尝试找到与重新分析点确定的文件格式关联的文件系统滤波器,如果你找到了文件系统滤波器,该滤波器处理由重新分析点数据指定的文件。如果无法找到滤波器,打开该文件的操作失败了。
CWE-1386是由于windows打开一个文件或目录时,如果该文件或目录关联到一个目标控制范围之外的连接点或挂载点,则可能允许攻击者使软件读取、写入、删除或以其他方式对未经授权的文件进行操作。
如果一个文件被特权程序使用,它可以被硬链接到敏感文件(例如:AUTOEXEC.BAT),然后攻击者可以提升特权.当进程打开文件时,攻击者可能滥用程序的特权,诱导特权进程读取、修改或删除敏感文件,防止程序正确处理数据,该操作也可以指向注册表和信号数量.
例如: CVE-2021-26426 ,特权服务允许攻击者使用目录连接删除未经授权的文件,从而导致以 SYSTEM 身份执行任意代码。
1.2.CWE-1388:物理访问问题
这是硬件设计中的一个新的硬件分类, 具体如下图所示.
像往常一样,硬件问题不是我的专业,我并不做很多解释。
2. CWE-1387:CWE Top 25 (2022)
距离2021年的 《CWE发布2021年最危险的25种软件缺陷》 差不多刚好一年。岁月如梭,光阴似箭,好快!又是一年荷花盛。
- 今年的排行榜
| 排行 | CWE | 得分 | KEV Count (CVEs) | 变动 |
|---|---|---|---|---|
| 1 | CWE-787:跨境记忆写字 | 64.2 | 62 | 0 |
| 2 | CWE-79:在生成网页时输入的不适当的翻译处理(跨站点脚本) | 45.97 | 2 | 0 |
| 3 | CWE-89:SQL命令中使用的特殊元素不适当的转导(SQL插入) | 22.11 | 7 | +3 |
| 4 | CWE-20:不适当的输入验证 | 20.63 | 20 | 0 |
| 5 | CWE-125:跨境记忆读取 | 17.67 | 1 | -2 |
| 6 | CWE-78:OS命令中使用的特殊元素不适当的翻译(OS命令注入) | 17.53 | 32 | -1 |
| 7 | CWE-416:发布后使用 | 15.5 | 28 | 0 |
| 8 | CWE-22:不适当限制路径名称(路径过渡) | 14.08 | 19 | 0 |
| 9 | CWE-352:跨站请求伪造(CSRF) | 11.53 | 1 | 0 |
| 10 | CWE-434:无限制上传危险类型文件 | 9.56 | 6 | 0 |
| 11 | CWE-476:空指针解决方案参考 | 7.15 | 0 | +4 |
| 12 | CWE-502:重新订购不可靠的数据 | 6.68 | 7 | +1 |
| 13 | CWE-190 : 整数溢流或超界折射 | 6.53 | 2 | -1 |
| 14 | CWE-287:不适当的认证机制 | 6.35 | 4 | 0 |
| 15 | CWE-798:使用硬编码的证书 | 5.66 | 0 | +1 |
| 16 | CWE-862:缺乏授权机制 | 5.53 | 1 | +2 |
| 17 | CWE-77:在命令中使用的特殊元素不适当的翻译(命令注入) | 5.42 | 5 | +8 |
| 18 | CWE-306:缺少关键功能认证机制 | 5.15 | 6 | -7 |
| 19 | CWE-119:内存缓冲区内操作不适当的限制 | 4.85 | 6 | -2 |
| 20 | CWE-276:失功率限制错误 | 4.84 | 0 | -1 |
| 21 | CWE-918:服务端伪造请求(SSRF) | 4.27 | 8 | +3 |
| 22 | CWE-362:使用共享资源进行同时执行的不适当同步(竞争条件) | 3.57 | 6 | +11 |
| 23 | CWE-400:资源消耗不控制(资源消耗) | 3.56 | 2 | +4 |
| 24 | CWE-611:不适当的XML外部实体参考限制(XXE) | 3.38 | 0 | -1 |
| 25 | CWE-94:生成代码的不适当控制(代码注入) | 3.32 | 4 | +3 |
这个排名是CWE的球队,依据美国国家标准与技术研究院 (National Institute of Standards and Technology(NIST))的 国家漏洞库(National Vulnerability Database(NVD)) 记录的 披露漏洞(Common Vulnerabilities and Exposures(CVE)) , 以及网络安全和基础设施安全局 (Cybersecurity and Infrastructure Security Agency(CISA))的 已知披露漏洞目录(Known Exploited Vulnerabilities (KEV)) , 通过 通用缺陷评分系统(Common Vulnerability Scoring System (CVSS)) 评估每个缺陷。排名基于2020年至2021年统计数字 37,899 CVEs,每个CVE的评分基于问题的发生率和严重程度的公式,最后, 问题被评级.
- 具体算法可参考 《话说CWE 4.2的新视图》 。
2.1.排名的变化
具体变动如下图:

上升最快的名单:
- CWE-362:使用共享资源的并发执行不恰当同步问题(竞争条件): 从 33 上升到 22;
- CWE-94:不适当控制生成代码(代码注入):从28增加到25;
- CWE-400:不控制资源消耗(资源消耗):从27增加到23;
- CWE-77:在命令中使用的特殊元素不适当的翻译(命令注射):从25增加到17;
- CWE-476:空指针解决方案引用:从15到11。
下降最快的名单:
- CWE-306:缺少关键功能认证机制:从11到18;
- CWE-200:信息泄漏:从20到33;
- CWE-522 : 不充分 的 证书 保护 机制 : 21 至 38 ;
- CWE-732:关键资源分配不正确:从22个减少到30个。
新进前25的有:
- CWE-362:使用共享资源的并发执行不恰当同步问题(竞争条件): 从 33 上升到 22;
- CWE-94:不适当控制生成代码(代码注入):从28增加到25;
- CWE-400:不控制资源消耗(资源消耗):从27增加到23;
跌出前25的有:
- CWE-200:信息泄漏:从20到33;
- CWE-522 : 不充分 的 证书 保护 机制 : 21 至 38 ;
- CWE-732:关键资源分配不正确:从22个减少到30个。
2.2.Top25注释
| 排名 | CWE | NVD计数 | Avg CVSS | 总分 |
|---|---|---|---|---|
| 1 | CWE-787:跨境记忆写字 | 4123 | 7.93 | 64.2 |
| 2 | CWE-79:在生成网页时输入的不适当的翻译处理(跨站点脚本) | 4740 | 5.73 | 45.97 |
| 3 | CWE-89:SQL命令中使用的特殊元素不适当的转导(SQL插入) | 1263 | 8.66 | 22.11 |
| 4 | CWE-20:不适当的输入验证 | 1520 | 7.19 | 20.63 |
| 5 | CWE-125:跨境记忆读取 | 1489 | 6.54 | 17.67 |
| 6 | CWE-78:OS命令中使用的特殊元素不适当的翻译(OS命令注入) | 999 | 8.67 | 17.53 |
| 7 | CWE-416:发布后使用 | 1021 | 7.79 | 15.5 |
| 8 | CWE-22:不适当限制路径名称(路径过渡) | 1010 | 7.32 | 14.08 |
| 9 | CWE-352:跨站请求伪造(CSRF) | 847 | 7.2 | 11.53 |
| 10 | CWE-434:无限制上传危险类型文件 | 551 | 8.61 | 9.56 |
| 11 | CWE-476:空指针解决方案参考 | 611 | 6.49 | 7.15 |
| 12 | CWE-502:重新订购不可靠的数据 | 378 | 8.73 | 6.68 |
| 13 | CWE-190 : 整数溢流或超界折射 | 452 | 7.52 | 6.53 |
| 14 | CWE-287:不适当的认证机制 | 412 | 7.88 | 6.35 |
| 15 | CWE-798:使用硬编码的证书 | 333 | 8.48 | 5.66 |
| 16 | CWE-862:缺乏授权机制 | 468 | 6.53 | 5.53 |
| 17 | CWE-77:在命令中使用的特殊元素不适当的翻译(命令注入) | 325 | 8.36 | 5.42 |
| 18 | CWE-306:缺少关键功能认证机制 | 328 | 8 | 5.15 |
| 19 | CWE-119:内存缓冲区内操作不适当的限制 | 323 | 7.73 | 4.85 |
| 20 | CWE-276:失功率限制错误 | 368 | 7.04 | 4.84 |
| 21 | CWE-918:服务端伪造请求(SSRF) | 317 | 7.16 | 4.27 |
| 22 | CWE-362:使用共享资源进行同时执行的不适当同步(竞争条件) | 301 | 6.56 | 3.57 |
| 23 | CWE-400:资源消耗不控制(资源消耗) | 277 | 6.93 | 3.56 |
| 24 | CWE-611:不适当的XML外部实体参考限制(XXE) | 232 | 7.58 | 3.38 |
| 25 | CWE-94:生成代码的不适当控制(代码注入) | 192 | 8.6 | 3.32 |
2.3.改进排名统计
为了使人们更好地了解每个缺陷的特点,在缺陷的映射上,尽可能 Map 到较细微的缺口编列类型,比如base、Variant、Compound,这有助于从更细微的角度解决问题。所以TOP 25中的CWE的类型正逐步从支柱(pillar)、类(Class) 向更细力度的缺陷枚举类型base、Variant、Compound上过度。
比如:
- 从2020年的36 % 提高到目前的28 % ;
- 从2019年的43 % 减至16 % ;
- 基准/Var/Comp从2019年的57 % 上升到84 % ;
- 作为应对基型问题的回应,它从2019年的50%上升到目前的76%。
| Year | 2019 | % | 2020 | % | 2021 | % | 2022 | % |
|---|---|---|---|---|---|---|---|---|
| Unique Class/Pillar CWEs | 7 | 28% | 9 | 36% | 8 | 32% | 7 | 28% |
| Unique Base/Variant/Compound CWEs | 18 | 72% | 16 | 64% | 17 | 68% | 18 | 72% |
| Mappings to Class | 9548 | 43% | 6450 | 30% | 3058 | 17% | 3626 | 16% |
| Mappings to Base/Var/Comp | 12411 | 57% | 14772 | 70% | 14839 | 83% | 19254 | 84% |
| Total Maps with Top 25 CWEs | 21959 | 0% | 21222 | 0% | 17897 | 0% | 22880 | 0% |
| Maps to All CWEs | 26341 | 0% | 27168 | 0% | 24282 | 0% | 30681 | 0% |
| Maps to Bases | 10919 | 50% | 12988 | 61% | 13291 | 74% | 17386 | 76% |
| Maps to Variants | 799 | 4% | 918 | 4% | 807 | 5% | 1021 | 4% |
| Maps to Compounds | 693 | 3% | 866 | 4% | 741 | 4% | 847 | 4% |
- 注:CWE的列表类型如下:"CWE 4"."New Vision".
3. 结论
- 第一十位元的缺陷没有太大变化,主要是由于内存读写过剩,以及外部输入校准造成的各种注入问题;
- 记忆安全问题是C语言指针的灵活性遗留下来的,这对我们来说也是一个重要的安全问题。现在,安全已成为软件开发的一个重要要求。新兴的Rust语言是否能带来更好的内存管理,还有时间证明这一点;或者平衡内存安全和编程灵活性,寻找开发者更容易接受的新语言;
- 由于外部输入引起的注射类问题,我们将与你们在一起很长一段时间。提出零信任和供应链安全框架,虽然 安全 概念 和 设计 指导 方面 已 达到 新 的 高度,但当软件应用程序登陆时,它还取决于众多开发者的安全意识的逐步提高,因此,可以执行各种有效的检测代码中的外部输入。以及各种证书的有效验证。当然,验证可以通过使用安全模块来进一步减少开发中的安全风险。
- 在前25个统计数字中,CWE试图将各种软件问题分类为更详细的类别。通过迅速发布今年的这些新版本,已经添加了大量的子类型(Base/Variant/Compound)。截至2017年7月7日,0中的714是927的4.8版本,增加了将近30%。这还表明我们对问题的认知水平正在加深,加深。这对我们的安全措施更有利,采取更详细的检查和更针对性的预防措施,这降低了安全防御的成本。
4. 参考
- Differences between Version 4.7 and Version 4.8
- 2022 CWE Top 25 Most Dangerous Software Weaknesses
相关新闻
- 2023-04-16 2台电脑怎么共享(2台电脑怎么共享
- 2023-04-16 主板检测卡代码(电脑主板检测卡代
- 2023-04-16 dnf未响应(dnf未响应老是上不去)
- 2023-04-16 ppoe(pppoe拨号上网)
- 2023-04-16 网速不稳定(网速不稳定是路由器的
- 2023-04-16 wds状态(Wds状态成功)
- 2023-04-16 光标键(光标键不动了怎么办)
- 2023-04-16 电脑提速(电脑提速100倍的方法)
- 2023-04-16 切换用户(切换用户怎么切换回来
- 2023-04-16 数据包是什么(产品数据包是什么
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

+3
-2