静态分析

CWE4.8 -- 2022年危害最大的25种软件安全问题

2022-07-30  本文已影响0人  Uncle_Tom

CWE 4.8的变化

2022年过了一半了,继《CWE 4.7中的新视图 – 工业控制系统的安全漏洞类别》 发布还不到2个月, 6月底又出了一个版本 – CWE4.8。做为软件安全研究的重要标准,我们来看下这个版本有那些变化。

变化类型 Version 4.7 Version 4.8
弱点 926 927
分类 351 352
视图 47 48
废弃 62 62
汇总 1386 1389

下面我们来的看下具体弱点的变动。

1.1. CWE-1386:Windows 连接点/挂载点上的不安全操作

这是个新增的Windows的问题,具体位置如下图:


CWE-1386.png

这个新弱点被划分在CWE-664(在生命周期中对资源的控制不恰当)下CWE-706(使用不正确的解析名称或索引), 以及CWE-59(在文件访问前对链接解析不恰当(链接跟随))下的一个子弱点。

在 Windows 中,NTFS5 允许文件系统可以对对象生成重解析点(reparse points)。

Windows文件或者目录可以包含一个重解析点,它是一个用户自定义数据的集合。储存它们的程序和解析处理这些数据文件的系统过滤器能识别这些数据的格式。 当一个应用程序设置了一个重解析点,它在保存数据时将添加一个唯一的重解析标签用于标示所存储的数据。当一个文件系统打开一个带重解析点的文件时,首先尝试寻找由重解析点所标识文件格式关联的文件系统过滤器,如果找到文件系统过滤器,过滤器处理重解析点数据所指示的文件。如果没有找到过滤器,那么打开文件的操作失败。

CWE-1386是由于windows打开一个文件或目录时,如果该文件或目录关联到一个目标控制范围之外的连接点或挂载点,则可能允许攻击者使软件读取、写入、删除或以其他方式对未经授权的文件进行操作。

如果一个文件被特权程序使用,它可以被一个敏感文件的硬链接替换(例如,AUTOEXEC.BAT),那么攻击者可以提升特权。当进程打开文件时,攻击者可以冒用该进程的特权,诱骗特权进程读取、修改或删除敏感文件,阻止程序准确处理数据,操作也可以指向注册表和信号量。

例如:CVE-2021-26426,特权服务允许攻击者使用目录连接删除未经授权的文件,从而导致以 SYSTEM 身份执行任意代码。

1.2. CWE-1388:物理访问问题

这是个硬件设计上新增的硬件分类,具体如下图。


CWE-1388.png

老样子,硬件问题不是我的专长,不做过多的解读。

2. CWE-1387:CWE Top 25 (2022)

距离2021年的《CWE发布2021年最危险的25种软件缺陷》差不多刚好一年。岁月如梭,光阴似箭,好快!又是一年荷花盛。

网页捕获_31-7-2022_122130_bbs.huaweicloud.com.jpeg

这个排名是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 个CVE,每个CVE根据问题的发生率和严重程度的一个公式计算得分,最终得到问题的排名。

2.1. 排名变动情况

2.2. TOP 25的记分明细

排名 CWE NVD计数 Avg CVSS 总分
1 CWE-787:跨界内存写 4123 7.93 64.2
2 CWE-79:在Web页面生成时对输入的转义处理不恰当(跨站脚本) 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. 排名统计的改进

为了更好的让人们明白每一个缺陷的特性,在缺陷的映射上,尽量映射到更细力度的缺陷枚举类型上,比如base、Variant、Compound,这样有利于从更细粒度上解决问题。所以TOP 25中的CWE的类型正逐步从支柱(pillar)、类(Class) 向更细力度的缺陷枚举类型base、Variant、Compound上过度。

比如:

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%

3. 结论

4. 参考

上一篇 下一篇

猜你喜欢

热点阅读