CWE4.8:2022年危害最大的25种软件安全问题
摘要:我们来看下新版的《2022年危害最大的25种安全问题》在安全预防上会给了我们哪些安全提示。
本文分享自华为云社区《CWE4.8 -- 2022年危害最大的25种软件安全问题》,作者: Uncle_Tom 。
1. CWE 4.8的变化
2022年过了一半了,继《CWE 4.7中的新视图 – 工业控制系统的安全漏洞类别》发布还不到2个月, 6月底又出了一个版本 – CWE4.8。做为软件安全研究的重要标准,我们来看下这个版本有那些变化。
从汇总表可以看出:
- 新增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 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的团队,依据美国国家标准与技术研究院 (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根据问题的发生率和严重程度的一个公式计算得分,最终得到问题的排名。
具体算法可参考 《话说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. TOP 25的记分明细
2.3. 排名统计的改进
为了更好的让人们明白每一个缺陷的特性,在缺陷的映射上,尽量映射到更细力度的缺陷枚举类型上,比如base、Variant、Compound,这样有利于从更细粒度上解决问题。所以TOP 25中的CWE的类型正逐步从支柱(pillar)、类(Class) 向更细力度的缺陷枚举类型base、Variant、Compound上过度。
比如:
- Class/Pillar 从2020年的36%,降到现在的28%;
- Class 从2019年的43%,降到现在的16%;
- Base/Var/Comp 从2019年的 57%上升到84%;
- 对应到base类型的问题,从2019年的 50% 提升到现在的 76%。
注:CWE的枚举类型详见:《话说CWE 4.2的新视图》。
3. 结论
- 前十位的缺陷变动不大,主要还是内存读写造成的缓冲区溢出,以及外部输入校验所带来的各种注入问题;
- 内存安全问题是C语言指针的灵活性给我们带来的后遗症,也一直是困扰我们的主要安全问题。现在安全性已经成为软件开发的重要需求。新兴的Rust语言是否能够给在内存管理方面带来较大的改善,还需要时间的证明;或者在内存安全和编程灵活性的平衡上,寻找一种更容易被广大开发者接受的新语言;
- 外部输入引发的各种注入类问题,在今后相当长的一段时间会长期伴随者我们。零信任、供应链安全框架的提出,虽然在安全概念和设计指导上达到了一个新的高度,但在软件应用落地时,还取决于广大的开发人员对安全意识的逐步提高,从而在代码中有效的执行各种对外部输入的有效的检测,以及各种凭证的有效验证。当然凭证的校验可以通过使用安全模块来进一步降低开发中的安全风险;
- 在TOP 25的数据统计上,CWE在尽量将各种软件问题归结到更细力度的问题分类上。通过这些年新版本的快速发布,已经增加了相当多的细分类型(Base/Variant/Compound)。 从2017年3.0的714个增加到了现在4.8版本的927个,增加了将近30%。这也说明我们对问题的认知程度在细化和加深,这更加有利于我们在安全防范中,采取更精细的检查和更具针对性的防范措施,从而降低安全防御的成本。
4. 参考
CWE4.8:2022年危害最大的25种软件安全问题的更多相关文章
- 摘:SQL Server数据类型的25种
我们大家都知道数据类弄是数据的一种基本属性,其主要是表示数据在实际操作中所表示信息的类型.任何一种计算机语言都定义了自己的数据类型. 当然,不同的程序语言都具有不同的特点,所定义的SQL Server ...
- 《Flutter 动画系列一》25种动画组件超全总结
动画运行的原理 任何程序的动画原理都是一样的,即:视觉暂留,视觉暂留又叫视觉暂停,人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称&q ...
- PHP的25种框架
本篇文章给大家分享的内容是25种PHP框架 -有着一定的参考价值,有需要的朋友可以参考一下. 世界流行框架汇总 在项目开发中,一些架构和代码都是重复的,为了避免重复劳动,于是各种各样的框架诞生了. 在 ...
- Ext.js 中 25种类型的Ext.panel.Tool
通过Ext.panel.Panel的tools配置项来设置Ext.panel.Tool实例. 要注意的一点是,Ext框架提供的Ext.panel.Tool仅包含按钮图标而具体的点击事件处理函数需要我们 ...
- C#中使用FreeImage库加载Bmp、JPG、PNG、PCX、TGA、PSD等25种格式的图像(源码)。
其实我一直都是喜欢自己去做图像格式的解码的(目前我自己解码的图像格式大概有15种),但是写本文主要原因是基于CSDN的这个帖子的: http://bbs.csdn.net/topics/3905104 ...
- 一文洞悉Python必备50种算法!资深大牛至少得掌握25种!
一.环境需求 二.怎样使用 三.本地化 3.1扩展卡尔曼滤波本地化 3.2无损卡尔曼滤波本地化 3.3粒子滤波本地化 3.4直方图滤波本地化 四.映射 4.1高斯网格映射 4.2光线投射网格映射 4. ...
- 道高一丈,且看CWE4.2的新特性
摘要:CWE在今年2/24发布4.0,首次将硬件安全漏洞纳入了CWE中,6/25发布4.1, 8/20就发布了4.2. 1. 按照惯例,先说故事 我们先说下CWE的幕后老板--MITRE[1]. MI ...
- PyCharm 2022.2 发布了,支持最新 Python 3.11 和 PyScript 框架!
来源:Jet Brains官网:翻译:Python猫 原文:https://blog.jetbrains.com/pycharm/2022/07/2022-2 通常而言,使用新潮的或者快速发展的技术, ...
- 来啦来啦|开源 * 安全 * 赋能 - .NET Conf China 2022
大会介绍 .NET Conf China 2022 是面向开发人员的社区峰会,延续 .NET Conf 2022 的活动,庆祝 .NET 7 的发布和回顾过去一年来 .NET 在中国的发展成果,它是由 ...
- 华为C语言编程规范
DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...
随机推荐
- 安装k8s
完成安装k8s集群以后,推荐使用https://github.com/512team/dhorse发布应用. 准备环境 准备两台服务器节点,如果需要安装虚拟机,可以参考<wmware和cento ...
- CF1333A [Little Artem]
Problem 题目简述 给你一个 \(n \times m\) 的方格,构造一个方案,使得方案中 \(B = W + 1\). \(B\):相邻的格子有至少一个白色格子的黑色格子的个数. \(W\) ...
- Python 潮流周刊#25:性能最快的代码格式化工具 Ruff!
你好,我是猫哥.这里每周分享优质的 Python.AI 及通用技术内容,大部分为英文.标题取自其中一则分享,不代表全部内容都是该主题,特此声明. 本周刊由 Python猫 出品,精心筛选国内外的 25 ...
- Instagram 早期技术架构
哈喽大家好,我是咸鱼 想必大家都听说过 Instagram ,它是全球最受欢迎的社交媒体平台之一,拥有数十亿的活跃用户 Instagram 诞生于 2010 年,上线一周就坐拥 10 万注册用户,一年 ...
- jpa用findAll((Specification<GoodsSpu>) (root, criteriaQuery, criteriaBuilder) -> {})排序
//需要用到的包import org.springframework.data.domain.Page;import org.springframework.data.domain.PageReque ...
- 记一次 .NET 某工控电池检测系统 卡死分析
一:背景 1. 讲故事 前几天有位朋友找到我,说他的窗体程序有卡死现象,让我帮忙看下怎么回事,解决这种问题就需要在卡死的时候抓一个dump下来,拿到dump之后就可以分析了. 二:为什么会卡死 1. ...
- python 数据可视化:直方图、核密度估计图、箱线图、累积分布函数图
本文使用数据来源自2023年数学建模国赛C题,以附件1.附件2数据为基础,通过excel的数据透视表等功能重新汇总了一份新的数据表,从中截取了一部分数据为例用于绘制图表.绘制的图表包括一维直方图.一维 ...
- java中ArrayList和LinkedList的区别
Java中ArrayList和LinkedList都是List集合的实现类,它们都可以用来存储一组有序的元素,但是它们的内部实现方式不同,在使用时也有不同的适用场景. ArrayList是一个基于动态 ...
- 在Ubuntu机器上使用war包安装Jenkins
因为一些需求需要迁移之前使用的Jenkins,原来是按照官方文档使用apt方式安装的,这次搬迁后的机器由于默认不通外网(可以通过代理走外网),因此趁此机会,尝试改用war包方式安装 环境目标 系统Ub ...
- [python][图像切割]给定手写数字图片完成数字切割
import torch import torch.nn as nn from torchvision import transforms from PIL import Image, ImageOp ...