一文看懂CWE视图
字数 2402 2025-08-18 11:39:00
CWE视图详解教学文档
一、CWE概述
CWE(Common Weakness Enumeration,通用缺陷枚举)是由MITRE公司维护的在线计算机软件缺陷字典,是一个标准化的软件安全术语体系。
1.1 CWE的主要作用
- 软件安全工具的衡量标准
- 识别、修复和预防缺陷的基准
- 服务提供商:用于通知用户缺陷并提供解决方案
- 软件买家:用于比较不同厂商产品的安全性
- 开发人员:学习避免引入代码缺陷
1.2 CWE的维护机构
由MITRE公司组织来自企业、学术机构和政府部门的国际专家组共同编写和更新,确保内容的广度和深度。
二、CWE List版本演变
- 初始版本:2008年9月确定第一个正式版本(经过9次草案修改)
- 最新版本:2019年9月发布的3.4.1版本
- 包含808条缺陷条目
- 295个类目
- 38个视图
- 未来计划:将硬件缺陷纳入CWE List
三、CWE视图分类
CWE视图分为四大类:
- Navigate CWE视图
- 外部映射视图(ExternalMappings)
- 有用的视图(Helpful Views)
- 弃用的视图(ObsoleteViews)
3.1 Navigate CWE视图
MITRE基于不同概念设计了三种Navigate CWE视图类型:
3.1.1 研究概念视图(Research Concepts, CWE-1000)
特点:
- 包含所有808个CWE缺陷条目
- 面向学术研究人员、漏洞分析人员和评估工具厂商
- 基于软件行为抽象描述方法组织归类
- 不关心缺陷检测方法或代码位置
结构:
- 11个顶级类别(Class)
- 每个类别下包含基础缺陷和变体缺陷
CWE条目内容示例(以CWE-369除零错误为例):
-
描述(Description):对缺陷的简要说明
- 例:"产品将某个值除以零"
-
扩展描述(Extended Description):更详细的解释
- 例:"此缺陷一般是在向产品提供一个非预期的值时发生..."
-
关系(Relationships):
- 以ChildOf(子级)、ParentOf(父级)、MemberOf(成员)等表示与其他缺陷的关系
- 例:CWE-369是CWE-682(计算错误)的子类
-
引入模式(Modes Of Introduction):
- 表格形式展示缺陷被引入的阶段和场景
- 包含Phase(阶段)和Note(备注)两栏
-
常见后果(Common Consequences):
- 三栏表格:
- Scope(范围):受影响的安全范围
- Impact(影响):负面技术影响
- Likelihood(可能性):后果出现的可能性
- 例:CWE-369会影响可用性,可能导致崩溃或DoS攻击
- 三栏表格:
-
利用可能性(Likelihood Of Exploit):缺陷被利用的概率
-
展示性缺陷示例(Demonstrative Examples):
- 不良代码示例
- 好的代码示例
-
观察到的缺陷示例(Observed Examples):
- 与该缺陷关联的CVE漏洞示例
-
成员关系(Memberships):
- 展示该缺陷所属的其他CWE类目和视图
-
分类映射(Taxonomy Mappings):
- 与其他排行榜和编码标准的映射关系
-
内容历史(Content History):条目更新记录
3.1.2 开发概念视图(Development Concepts, CWE-699)
特点:
- 包含42个类目,799个缺陷条目
- 面向软件开发人员、教育人员和评估工具厂商
- 基于软件开发中常用的概念分类
结构:
- 多层次结构
- 类目(Category)可以包含其他类目、类别、基础缺陷和变体缺陷
类目内容页面示例(以CWE-19"数据处理错误"为例):
-
概要(Summary):类目的简要说明
- 例:"此类条目中的缺陷一般存在于处理数据的功能中"
-
成员关系(Membership):
- 展示该类目与视图、其他类目、类别和基础缺陷的关系
-
内容历史(Content History):类目更新记录
3.1.3 架构概念视图(Architectural Concepts)
特点:
- 2017年11月3.0版本新增
- 包含12个类目,223个缺陷条目
- 面向软件架构人员
- 基于常见架构安全策略分类
结构:
- 一般只有两层结构,较为简单
四、CWE视图应用场景
| 视图类型 | 主要受众 | 分类基础 | 条目数量 | 结构特点 |
|---|---|---|---|---|
| 研究概念视图 | 研究人员、漏洞分析师 | 软件行为抽象 | 808条 | 11个类别,多层次 |
| 开发概念视图 | 开发人员、教育者 | 开发常用概念 | 799条 | 42个类目,多层次 |
| 架构概念视图 | 架构师 | 架构安全策略 | 223条 | 12个类目,两层结构 |
五、CWE条目关系类型
- ChildOf:表示当前条目是某个条目的子类
- ParentOf:表示当前条目包含的子类条目
- MemberOf:表示当前条目属于某个组或类别
- CanPrecede:表示当前条目可能导致的其他缺陷
- CanAlsoBe:表示当前条目可能同时属于的其他类型
六、CWE视图使用建议
- 研究人员:优先使用研究概念视图,关注缺陷间的理论关系
- 开发人员:使用开发概念视图,查找与编码实践相关的缺陷
- 架构师:使用架构概念视图,识别设计层面的安全问题
- 工具开发者:结合多种视图,开发更全面的安全分析工具
七、CWE与其他安全标准的关系
CWE与以下标准有映射关系:
- CVE(通用漏洞披露)
- CVSS(通用漏洞评分系统)
- OWASP Top 10
- SANS Top 25
- CERT安全编码标准
- DISA STIGs(安全技术实施指南)