一文看懂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视图分为四大类:

  1. Navigate CWE视图
  2. 外部映射视图(ExternalMappings)
  3. 有用的视图(Helpful Views)
  4. 弃用的视图(ObsoleteViews)

3.1 Navigate CWE视图

MITRE基于不同概念设计了三种Navigate CWE视图类型:

3.1.1 研究概念视图(Research Concepts, CWE-1000)

特点

  • 包含所有808个CWE缺陷条目
  • 面向学术研究人员、漏洞分析人员和评估工具厂商
  • 基于软件行为抽象描述方法组织归类
  • 不关心缺陷检测方法或代码位置

结构

  • 11个顶级类别(Class)
  • 每个类别下包含基础缺陷和变体缺陷

CWE条目内容示例(以CWE-369除零错误为例)

  1. 描述(Description):对缺陷的简要说明

    • 例:"产品将某个值除以零"
  2. 扩展描述(Extended Description):更详细的解释

    • 例:"此缺陷一般是在向产品提供一个非预期的值时发生..."
  3. 关系(Relationships)

    • 以ChildOf(子级)、ParentOf(父级)、MemberOf(成员)等表示与其他缺陷的关系
    • 例:CWE-369是CWE-682(计算错误)的子类
  4. 引入模式(Modes Of Introduction)

    • 表格形式展示缺陷被引入的阶段和场景
    • 包含Phase(阶段)和Note(备注)两栏
  5. 常见后果(Common Consequences)

    • 三栏表格:
      • Scope(范围):受影响的安全范围
      • Impact(影响):负面技术影响
      • Likelihood(可能性):后果出现的可能性
    • 例:CWE-369会影响可用性,可能导致崩溃或DoS攻击
  6. 利用可能性(Likelihood Of Exploit):缺陷被利用的概率

  7. 展示性缺陷示例(Demonstrative Examples)

    • 不良代码示例
    • 好的代码示例
  8. 观察到的缺陷示例(Observed Examples)

    • 与该缺陷关联的CVE漏洞示例
  9. 成员关系(Memberships)

    • 展示该缺陷所属的其他CWE类目和视图
  10. 分类映射(Taxonomy Mappings)

    • 与其他排行榜和编码标准的映射关系
  11. 内容历史(Content History):条目更新记录

3.1.2 开发概念视图(Development Concepts, CWE-699)

特点

  • 包含42个类目,799个缺陷条目
  • 面向软件开发人员、教育人员和评估工具厂商
  • 基于软件开发中常用的概念分类

结构

  • 多层次结构
  • 类目(Category)可以包含其他类目、类别、基础缺陷和变体缺陷

类目内容页面示例(以CWE-19"数据处理错误"为例)

  1. 概要(Summary):类目的简要说明

    • 例:"此类条目中的缺陷一般存在于处理数据的功能中"
  2. 成员关系(Membership)

    • 展示该类目与视图、其他类目、类别和基础缺陷的关系
  3. 内容历史(Content History):类目更新记录

3.1.3 架构概念视图(Architectural Concepts)

特点

  • 2017年11月3.0版本新增
  • 包含12个类目,223个缺陷条目
  • 面向软件架构人员
  • 基于常见架构安全策略分类

结构

  • 一般只有两层结构,较为简单

四、CWE视图应用场景

视图类型 主要受众 分类基础 条目数量 结构特点
研究概念视图 研究人员、漏洞分析师 软件行为抽象 808条 11个类别,多层次
开发概念视图 开发人员、教育者 开发常用概念 799条 42个类目,多层次
架构概念视图 架构师 架构安全策略 223条 12个类目,两层结构

五、CWE条目关系类型

  1. ChildOf:表示当前条目是某个条目的子类
  2. ParentOf:表示当前条目包含的子类条目
  3. MemberOf:表示当前条目属于某个组或类别
  4. CanPrecede:表示当前条目可能导致的其他缺陷
  5. CanAlsoBe:表示当前条目可能同时属于的其他类型

六、CWE视图使用建议

  1. 研究人员:优先使用研究概念视图,关注缺陷间的理论关系
  2. 开发人员:使用开发概念视图,查找与编码实践相关的缺陷
  3. 架构师:使用架构概念视图,识别设计层面的安全问题
  4. 工具开发者:结合多种视图,开发更全面的安全分析工具

七、CWE与其他安全标准的关系

CWE与以下标准有映射关系:

  • CVE(通用漏洞披露)
  • CVSS(通用漏洞评分系统)
  • OWASP Top 10
  • SANS Top 25
  • CERT安全编码标准
  • DISA STIGs(安全技术实施指南)
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(安全技术实施指南)