细数应用软件的缺陷分类
本文分享自华为云社区《应用软件的缺陷分类》,作者:Uncle_Tom 。
(资料图片)
软件缺陷分类在已知缺陷管理、缺陷用例库建设、静态检查工具的能力覆盖和横向对比中起着重要的作用。本文参考GB/T-30279, CNNVD,NVD,以及CWE的各种视图, 给出了一个建立适合自己的缺陷分类方法。
1. 软件缺陷分类的作用最近先后几波同事找到我这边来讨论软件缺陷分类。
第一波:需要用缺陷分类用于业界软件漏洞的分类。根据上月底国家缺陷漏洞库CNNVD发布《2022年度网络安全漏洞态势报告》显示,2022年度新增漏洞近2万5千个,达到历史新高,保持连年增长态势。超高危级漏洞占比呈持续上升趋势,尽管漏洞修复率大幅提升,但漏洞威胁形势依然严峻。同时整体形势出现新变化,呈现高风险漏洞数量突破新高、零日争夺凸显攻防新较量、单边漏洞管控扰乱国际秩序、网络霸权主义冲击网空权益等特点,网络安全整体形势更加复杂严峻。缺陷漏洞分类有助于漏洞的统计、研究,从而加强漏洞感知机制和手段建设,以实现高水平漏洞风险治理。第二波:是为了建立缺陷漏洞库,用于静态分析工具能力的提升。漏洞的分类能在很大程度上提升巨量用例的管理能力,实现用例对缺陷场景的全面覆盖,从而通过用例指导工具的研发方向和能力覆盖的检测。第三波:是为了静态分析工具选择的分析,每个工具都拥有500-1000+的检查规则,如何了解工具间的差异?选用最少的工具,实现最大的能力覆盖?这个也可以借助检查缺陷的分类,将静态分析工具的规则按缺陷分类进行分类,就可以看清楚工具在不同软件缺陷分类问题上所拥有的规则数。基于这个数据粗略的得到,工具在软件缺陷问题检查的大体覆盖程度。这个方法也可以在缺陷分类的粒度上,降低分析、比较规则的数量。使分析人员聚焦在感兴趣的规则分类上,或者让不同的分析小组并行的、快速的进行工具间的横向对比。业界现在有那些软件缺陷分类可以做为参考,以及如何建立适合自己的缺陷分类?
2. 《GB/T 30279-2020 信息安全技术 网络安全漏洞分类分级指南》《GB/T 30279-2020 信息安全技术 网络安全漏洞分类分级指南》对于网络安全漏洞,国家在2020年颁布的国标《GB/T 30279-2020 信息安全技术 网络安全漏洞分类分级指南》,并于2021.06.01投入使用。这个标准的网络安全漏洞分类是基于漏洞产生或触发的技术原因对漏洞进行的划分,分类导图如下图所示。标准采用树形导图对漏洞进行分类,首先从根节点开始,根据漏洞成因将漏洞归入某个具体的类别,如果该类型节点有子类型节点,且漏洞成因可以归入该子类型,则将漏洞划分为该子类型,如此递归,直到漏洞归入的类型无子类型节点或漏洞不能归入子类型为止。
分类导图按照这个分类标准,国家缺陷漏洞库(CNNVD)将信息安全漏洞划分为26种类型,分别是:配置错误、代码问题、资源管理错误、数字错误、信息泄露、竞争条件、输入验证、缓冲区错误、格式化字符串、跨站脚本、路径遍历、后置链接、SQL注入、注入、代码注入、命令注入、操作系统命令注入、安全特征问题、授权问题、信任管理、加密问题、未充分验证数据可靠性、跨站请求伪造、权限许可和访问控制、访问控制错误、资料不足。
这个分类方式参考了CWE的 3.1版本,3.1版本从2018-03-29 到 2019-01-03使用。目前随着CWE的这几年的快速发展,里面的CWE-16 配置错误,CWE-17 代码问题,已经废弃不再使用。虽然这个分类覆盖了网络安全的主要缺陷类型,但也存在着分类粒度过大,无法完成缺陷分类的全覆盖的问题。
3. 美国国家通用漏洞数据库(NVD)的分类指导美国国家通用漏洞数据库(NVD)从一开始就参考了CWE 的分类方式对发现的CVE进行缺陷分类指导。
3.1. 从2008到2016年从2008到2016年, 主要参考视图CWE-635 NVD 2008-2016。如下图:
CWE-635 NVD 2008-2016这个版本的分类主要有19个分类。国标的分类和这个分类有很大程度的吻合,可以说基本上一致。
3.2. 2016年之后NVD 主要参考CWE的1003视图,如下图。
CWE-1003 弱点映射到已发布漏洞的简化视图CWE-1003视图包含 37个一级节点,一共130个分类节点。
随着各种缺陷的不断发现,CWE的分类也在不断的完善过程中,特别是这几年,几乎每年都有3-4此的更新,为了使发现的CVE能够得到尽可能准确的CWE分类,在主页面上特别增加了一个CVE对应CWE的菜单CVE Mapping CWE guidance,协助用户完成对应任务。
同时这几年CWE也连续发布了各年的最危险的25种安全问题,详见:
2023年最具威胁的25种安全漏洞(CWE TOP 25)CWE4.8 – 2022年危害最大的25种软件安全问题CWE发布2021年最危险的25种软件缺陷在进行历年TOP 25的问题的统计过程中,CWE的研究人员也发现了软件问题分类给统计工作带来的困扰,在不断的修正着分类的从属关系,使之保持正交的分类统计方式,避免因问题分类问题导致的缺陷的重复计算。
4. 常用CWE分类视图CWE做为软件缺陷分类的重要标准, 对安全研究、安全标准、缺陷管理起了重要的纽带作用。CWE使代码缺陷不同领域的研究人员在交流安全问题时,能够采用相同的定义,减少了歧义性。
CWE(Common Weakness Enumeration)。CWE被用于以下目的:
用通用语言描述和讨论软件和硬件的弱点;检查现有软件和硬件产品中的弱点;评估针对这些弱点的工具的覆盖范围;利用常见的基准标准来识别,缓解和预防漏洞;在部署之前防止软件和硬件漏洞;更多的介绍见:
话说CWE 4.2的新视图CWE视图层级关系的解析 之 CWE节点的存储和定义4.1. CWE-699 开发者视图CWE-699 开发者视图,这个视图主要以开发者的角度,围绕软件开发中经常使用或遇到的概念来组织弱点。这包括软件开发生命周期的所有方面,包括体系结构和实现。因此,这种观点可以与架构师、开发人员、教育工作者和评估供应商的观点紧密一致。它提供了各种类别,旨在简化导航、浏览和映射。
这个视图包含40个分类,以及399个节点。
4.2. CWE-1000 研究者视图CWE-1000 研究者视图, 该视图旨在促进对弱点的研究,包括弱点之间的相互依赖性,并可用来系统地找出CWE内部的理论差距。该视图面向的是学术研究人员、漏洞分析人员和评估工具厂商。它对弱点进行了分类,在很大程度上忽略了如何检测它们,它们出现在代码中的什么地方,以及它们何时被引入软件开发生命周期。相反,它主要是根据软件行为的抽象来组织的。这种分类方法不关心缺陷的检测方法,缺陷在代码中的位置,在软件开发生命周期中何时引入缺陷。该视图主要基于对软件行为进行抽象描述的方法组织归类。
这个视图包含10个分类,933个节点。这个视图涵盖了所有的节点。
4.3. CWE-1400 软件安全保障分类研究人员在使用CWE进行软件缺陷分类的过程中,发现分类之间的重合会给分类和研究带来很多的困惑。大家需要一个类别之间相互排斥的分类方法,尽管这样很不容易,但还是可以通过增加节点来逐步实现。
于是在CWE4.11版本终于给出了一个建议的参考,这个就是视图:CWE-1400 软件安全保障分类, 这个视图围绕大规模软件保证研究感兴趣的类别组织弱点,以支持使用安全语言开发等策略消除弱点。还可以用于帮助跟踪公开披露的漏洞数据中的弱点趋势。这个视图是全面的,因为每一个弱点都包含在其中,而不像大多数其他只使用弱点子集的观点。这个视图是由最高级别的类别构成的,只有第二级别的弱点。研究者视图(CWE-1000)中提出的弱点之间的关系未显示。每个弱点只被添加到一个类别中。所有类别相互排斥;也就是说,任何弱点都不可能是一个以上类别的成员。虽然弱点难以仅根据一个特征进行严格的分类,但强制将其归入一个类别可以简化某些类型的分析。
这个分类方式,每个类别的规模可能差异很大,因为:(1)与其他领域相比,CWE在某些领域没有得到很好的充实;(2)分组中CWE的抽象可能会下降到Variant级别,而不是其他类型。
CWE-1400 软件安全保障分类,如下图:
CWE-1400 软件安全保障分类在应用软件架构中的分布
5. 自定义缺陷分类视图在早些年,为了能更好的用于静态分析工具的对比和缺陷用例的整理, 依据代码编码过程的各个环节,对开发者视图(CWE-699)的40个分类进行了顺序调整,对节点数较小的一些分类进行了合并;同时参考研究者视图(CWE-1000),对开发者视图(CWE-699)分类中的节点进行了扩充。最终定义出适合静态分析工具检查和缺陷用例管理的视图。 视图中的定义按照编码、权限、程序间交互,以及程序设计分为31个分类。视图一共包含850个软件CWE弱点。
分类的基本原则:
覆盖软件开发的主要过程:设计,开发;覆盖应用软件的主要功能模块:外部交互;应用内部逻辑、算法;加密和权限;分类之间保持正交,不重合;为了查询节点之间的相关性,在分类内部尽可能的放置Class 节点的,并保持CW-699,CWE-1000给与的节点之间关系。自定义缺陷分类
自定义视图和其他视图的比较从CWE 4.0之后,为了完善缺陷,加入了硬件的缺陷。自定义视图并未包含硬件类缺陷,缺陷缺少的部分主要为硬件类缺陷。
自定义缺陷采用CWE 4.12版本统计、比较。
CWE 节点类型 | 本视图节点数 | 开发者视图(699) | 研究者视图(1000) | 软件安全保障视图(1400) | CWE节点总数 |
---|---|---|---|---|---|
View | 1 | 1 | 1 | 1 | 49 |
Pillar | 0 | 0 | 10 | 10 | 10 |
Category | 31 | 40 | 0 | 22 | 374 |
Class | 87 | 1 | 105 | 107 | 107 |
Base | 441 | 393 | 523 | 519 | 519 |
Variant | 284 | 25 | 288 | 290 | 290 |
Compund | 7 | 0 | 7 | 7 | 7 |
Total | 850 | 460 | 934 | 956 | 1356 |
自定义缺陷分类在应用软件架构中的分布
6. 总结软件缺陷分类能够:管理已知缺陷,加强漏洞感知机制和手段建设;建立完善的用例库,用于提升分析工具的检测和提升覆盖能力;分析静态检查工具的能力覆盖和横向对比,提升多分析工具对问题的整体覆盖能力。CWE-1400 软件安全保障分类,将软件缺陷分成了22个大类,并给出了类别相互排斥,且包含所有缺陷节点的分类方式;这个分类方式已经非常接近我们期望的放分类方式;在应用过程中,可以根据自己的需要定义分类视图,以便更好的关注自己应用软件的高发问题,文中给出了一个建议的样例。7. 参考《GB/T 30279-2020 信息安全技术 网络安全漏洞分类分级指南》《Measures for excellence: reliable software on time, within buget》Lawrence H. Putnam, Ware Myers, 1991.10Orthogonal Defect Classification - A Concept for In-Process Measurements,IEEE Transactions on Software Engineering ( Volume: 18, Issue: 11, November 1992IEEE Std 1044-1993.IEEE standard classification for anomalies. The Institute of Electrical and Electronics Engineers,1993Common Weakness EnuimerationCWE-635 Weaknesses Originally Used by NVD from 2008 to 2016CWE-699 Software DevelopmentCWE-1000 Research ConceptsCWE-1400 Comprehensive Categorization for Software Assurance Trends点击关注,第一时间了解华为云新鲜技术~
标签:
- 细数应用软件的缺陷分类
- 茄子豆角不用过油怎么炒最好吃
- “部队来支援咱们这里了” 通信兵翻山越岭架起“生命线”
- 小学中队学期工作重点及周工作计划(如何写小学的中队总结)
- 聊聊改运的基本原则和方法
- 中原证券:给予翔宇医疗增持评级
- 【机构调研记录】博道基金调研南微医学
- 雷军自曝1987年大一新生照:青涩、阳光
- 五菱周钘:宝骏品牌明年推三款新车 覆盖多个细分市场
- 江苏:2023年上半年光伏设备及元器件制造增加值同比增长36.9%
- 夏威夷州长期低估山火威胁造成灾害,消防称预防资金不足
- 川宁生物(301301)8月11日主力资金净卖出89.84万元
- “陪拍”流行ing! “爆单”之下暗藏隐患
- 亲历国家公园 感受生态之美
- 近现代名家书画展18日亮相深圳福田
- 又有间谍?东风27重大进展遭曝光,美军竟掌握火箭军各单位坐标
- ldo和dcdc的区别 为什么不直接用电阻而需要使用LDO
- 理念深入人心 实践任重道远
- 2023年秋季招生,北京中加学校报名时间是什么时候?
- 博德之门3黑火短弓怎么获得
- 韦尔股份上半年净利同比下降超九成 消费电子收入环比改善
- 黑龙江省终止省级防汛三级应急响应
- 考下初级会计证踏入财会行业 将来的发展方向有哪些?
- 好想你(002582)8月14日主力资金净买入2084.66万元
- 华云集团:勇担使命 拉紧各项服务保障链
- 谁是卧底?周密计划后险象环生!动画电影《王牌二哈》8月19日全国上映!
- 嘉兴平湖当湖街两宗宅地终止出让 总起价约9.58亿元
- 笔记本显卡排名表(笔记本显卡排名)
- 女人上厕所
- 8月14日江西德安实业萤石价格暂稳
- TA:看似曼联转会基本由滕哈赫主导,但大多数时候还是共同决定
- 太入戏!TVB视后曝曾抽离不出角色而哭不停,获老公体谅与其分房睡
- 蒋一鸣(关于蒋一鸣简述)
- 《一起追看流星雨》(一起追看流星雨)
- 曙光英雄杨戬新皮肤神行驺吾一览
- 乌鲁木齐皮肤病医院预约-乌鲁木齐中医皮肤病医院
- 精选足篮专家:老将推球9连红 龙珠5连红剧透英超
- 普耐尔平板电脑(关于普耐尔平板电脑的基本详情介绍)
- “特种兵式”跨越11省市 还原一段“三线”建设历史 | 2023暑假百景
- 碳酸锂近月期价跌近4%再创新低 两大锂盐巨头H股连续走弱
- 国家发改委:生猪价格退出过度下跌一级预警区间
- 开幕倒计时!今年9月,我在服贸会等你
- 豹来电最新官方正版下载(豹来电)
- 电脑为什么一插电风扇就转
- 烈焰+音浪!我在永仁很想你·第一届川滇乡村原创音乐会“燃爆”火把节
- 岷县市场:当归整体交易走缓 成交价格依然疲软
- 可可期货飙涨!这些知名巧克力品牌要涨价?
- 服务外包持续拓宽人才“蓄水池”
- 最高法明确破坏森林资源犯罪的定罪量刑标准
- 霍去病身强力壮,无病无灾,为何年纪轻轻就莫名其妙去世了
- 重庆移动OTT市场份额提升专项中标结果公示
- 夜雨丨左利理:稻穗的光芒
- 《荒野大镖客:救赎》Switch版容量大小公布:11.4GB
- 迷你世界二级羽蛇神怎么召唤-二级羽蛇神召唤方法
- 8月14日星期一数据、图表复盘(开开实业[2B], 人工智能)
- 诚达药业:公司从事左旋肉碱系列产品的研发、生产和销售
- 紧凑型SUV仅14.58万元起,红旗HS3该怎么选
- 香港“鬼月”的10大禁忌,你听过几个?
- 北京:对全市受损停用的电梯、承压类设备及时开展检查、维修
- 内蒙古西部铁路客运枢纽乌海火车站开展站场施工改造
- 华为ws5100无线路由器说明书
- 小米Mix Fold 3综述最薄可折叠手机的规格设计和价格
- 潮评丨月客运量仅有2.6万人,有轨电车虽好但要与需求正确匹配
- 西安市山洪泥石流灾害已致21人遇难 仍有6人失联
- 卢沟桥景区8月15日恢复开放
- 2023保定灵活就业人员医保缴费凭证在哪打印?
- 博菲电气(001255)新增【磁悬浮】概念
- 中国青少年高尔夫球队际联赛收官
- 再见76人!三方12人交易将达成,哈登去快船联手威少,爵士赚麻了
- 热火准备庆祝韦德历史性的名人堂时刻:“那就是他所处的位置”
- 进货!罗马诺:布莱顿有意19岁小将巴莱巴,已与里尔展开谈判
- TA:姆巴佩去年仅薪水就花费2亿欧,这给巴黎带来了财务问题
- 云南夜不眠|瑞丽珠宝玉石直播点亮边城“夜经济”
- 曲美家居粟凡 :以绿色化、智能化和适老化为发力点,促进家居消费恢复和升级
- 奥特曼头像武装玩具新品锁定殴斯超人贝利亚:没想到你也有今天
- 眉山洪雅:便利服务“软实力”成高质量发展“硬支撑”
- 美元兑俄罗斯卢布升破100 为去年3月以来首次
- 银行员工揽储靠“网购”?100万存1天要贴180元!
- 国家发改委:生猪价格退出过度下跌一级预警区间
- 8月14日 14:56分 德尔玛(301332)股价快速拉升
- 国家自然科学基金委员会:重拳整治科研项目评审“打招呼”
- 公安部交通管理局推出优化机动车登记服务新措施
- 兰陵文苑|广东阳春青年画家萧立昌及作品展示
- 记者:内马尔将在巴黎接受利雅得新月体检
- 《飞吧龙骑士》精英关卡触发方法攻略
- 北京:对全市受损停用的电梯、承压类设备及时开展检查、维修
- 中国心!李凯尔赢球发声心情大好 母亲晒姥爷墓碑照寻亲之旅结束
- KG:勒布朗和KD能让别人主导进攻吗?是时候让他们打无球了
- 广东省高级人民法院立案庭查询电话 广东省高级人民法院案件查询
- 长清政府网站 长清政府网
- 校友荟(NO.16)|黄湘杰:破茧而出,羽化成蝶
- 机动战士钢弹桑(02)(对于机动战士钢弹桑(02)简单介绍)
- 手环怎么连接手机打电话(手环怎么连接手机)
- 网传龙湖提前将款项拨入境内债?接近龙湖人士:消息属实
- 2023天津潮白湿地半程马拉松报名攻略
- 88元!《欧洲卡车模拟2》和《美国卡车模拟》价格永久下调
- 市场监管总局:上半年食品安全监督抽检不合格率2.40%
- 9月下旬后,财运亨通,好运连连,大富大贵不愁钱,惹不起的生肖
- 打死都不吃的3种鸡蛋,1种伤肝、1种毁肾、1种招癌!很多人却还当成养生宝
- 放飞乡村少年体育梦想,腾讯游戏和玩家一起捐建“未来运动场”