freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

一文看懂CWE视图
2019-10-16 16:31:21

一、CWE是什么?

CWE LOGO.png图1 CWE Logo

CWE全称CommonWeakness Enumeration,是一个通用的在线计算机软件缺陷字典,由MITRE公司运行和维护。MITRE组织了来自企业、学术机构和政府部门的多个国际专家组编写和更新CWE,从而确保内容的广度和深度。图2为CWE参与机构列表。

参与机构.png图2 CWE参与机构列表

CWE是一种通用的标准化术语,是软件安全工具的衡量标准,也是识别、修复和预防缺陷的基准。对于服务提供商,在发现特定的潜在缺陷时,可以借助CWE通知用户并提出解决建议方案;对于软件买家,可以利用CWE比较多个厂商提供的相似产品;对于开发人员,可以学习利用其中的内容,尽可能地避免引入代码缺陷。

二、CWE List的版本演变

MITRE从2006年3月开始编撰CWE List,期间草案经历九次修改,才最终在2008年9月确定第一个版本。

从2008年至今,MITRE对CWE List不断优化更新,版本经过多次的迭代,现在最新的版本为2019年9月发布的3.4.1版本。最新的版本包含808条缺陷条目,295个类目,38个视图。其中,视图又分为Navigate CWE视图,外部映射视图(ExternalMappings),有用的视图(Helpful Views)和弃用的视图(ObsoleteViews)。

据MITRE最新发布的消息,他们正着手研究将硬件缺陷纳入CWEList中,所以不远的将来,新的CWE List版本将会扩展包含硬件缺陷类型。

三、NavigateCWE视图

MITRE基于不同的概念为Navigate CWE视图设计了研究(Research Concepts)、开发(Development Concepts)和架构(Architectural Concepts)三种类型视图,见图3。

CWE列表分类.png图3 Navigate CWE视图分类

每种CWE视图都是一个多层次的树状体系,见下表。

层次结构表.png

3.1 研究概念视图

第一类研究概念视图,见图4。

ResearchConcepts.png图4 研究概念视图

CWE-1000研究概念视图共有808个缺陷条目,涵盖了所有的CWE类型。该视图面向的是学术研究人员、漏洞分析人员和评估工具厂商,旨在促进对缺陷的研究,包括它们之间的相互依赖关系。这种分类方法不关心缺陷的检测方法,缺陷在代码中的位置,在软件开发生命周期中何时引入缺陷。该视图主要基于对软件行为进行抽象描述的方法组织归类。

ResearchConcept808.png图5 研究概念视图指标

如图4所示,在研究概念视图中,CWE共有11个类别(Class),每个类别下又分别包含基础缺陷和变体缺陷等,以视图中的CWE-118为例,见图6。

研究概念视图层次示例.png图6 研究概念视图层次示例

视图中的每个CWE条目都有独立的解释页面,详细地阐述每个CWE条目包含的内容,下面以CWE-369除零错误为例进行介绍。这里需要说明的是,每个CWE缺陷条目内容页面提供的信息字段并不是完全相同的,此处仅以CWE-369条目内容页面为例。

CWE条目内容示例.png图7 CWE条目内容示例

CWE-369除零错误内容页面中提供了以下信息:

1)   描述(Description):对缺陷的初步说明,例:产品将某个值除以零。

2)   扩展描述(ExtendedDescription):对缺陷的进一步解释,例:此缺陷一般是在向产品提供一个非预期的值时发生,或当未能恰当检测到某个发生的错误时发生。在计算大小,长,宽和高等物理维度时经常发生该缺陷。

3)关系(Relationships): 以表格形式显示该缺陷与其他缺陷的关联以及层次关系,以ChildOf(子级)、ParentOf(父级)、MemberOf(成员)等来表示,例如CWE-369除零错误在研究概念视图中的关系,见图8。

关系示例.png图8 关系示例

再回到研究概念树状视图,可以发现CWE-369除零错误为CWE-682计算错误的子类,见图9。

视图对映关系示例.png图9 视图对映关系示例

4)引入模式(Modes Of Introduction):介绍该缺陷被引入到产品的方式和阶段,以表格形式呈现,Phase(阶段)一栏给出在软件生命周期内可能引入该缺陷的阶段;Note(备注)一栏描述在该阶段与引入该缺陷相关的典型场景,如图10。

引入模式示例.png

图10 引入模式示例

图10说明CWE-369可能在实现阶段被引入到产品中,但是没有给出具体的场景。

5)常见后果(Common Consequences):描述该缺陷可能造成的各种后果,以表格形式呈现,共三栏。第一栏范围(Scope)表示受到影响的应用程序安全范围;第二栏影响(Impact)描述该缺陷遭到成功利用会造成的负面技术影响;第三栏可能性(Likelihood)显示出现特定后果的可能性,如图11。

常见后果表格示例.png

图11 常见后果表格示例

通过图11的表格示例,可看出CWE-369除零错误会影响产品的可用性(Availability),一般会造成崩溃、退出或重启,可被用于实施拒绝服务攻击。

6)   利用的可能性(LikelihoodOf Exploit):该缺陷遭到利用的可能性。

7)展示性缺陷示例(Demonstrative Examples):有关该缺陷的,演示性的不良代码和好的代码示例。如图12和图13。

不良代码示例.png图12 不良代码示例

好的代码示例.png图13 好的代码示例

8)观察到的缺陷示例(ObservedExamples):与该缺陷相关联的CVE漏洞,以表格形式呈现,如图14。

观察到的缺陷表格示例.png

图14 观察到的缺陷表格示例

需注意,这里给出的是示例,而不是与之相关联的所有CVE漏洞。

9)成员关系(Memberships):展示包含该缺陷的其他CWE类目和视图,以表格方式呈现,如图15所示。

成员关系表格示例.png图15 成员关系表格示例

 10)分类映射(Taxonomy Mappings):以表格形式说明该缺陷与其他排行榜和编码标准的分类映射关系,如图16。

分类映射表格示例.png

图16 分类映射表格示例

11) 内容历史(Content History):对该条目内容的编辑更新记录。

3.2 开发概念视图

第二类开发概念视图,见图17。

DevelopmentConcepts.png图17 开发概念视图

CWE-699开发概念视图共有42个类目,799个缺陷条目。该视图面向的是软件开发人员,教育人员和评估工具厂商,分类基础是软件开发中经常使用和碰到的概念。

每个类目(Category)都具有多层次的结构,如图18所示。

DevelopmentConcepts层次示例.png图18 开发概念视图层次结构示例

从图中可以看出,开发概念视图类目(Category)可以包含其他的类目,类别,基础缺陷和变体缺陷等。

CWE为每个类目创建了内容页面,如图19所示。

类目内容页面示例.png图19 类目内容页面示例

图19是CWE-19类目“数据处理错误”的内容页面,在该页面中主要包含以下信息:

1)  概要(Summary):对该类目的概要说明。例:此类条目中的缺陷一般存在于处理数据的功能中。

2)成员关系(Membership):展示该类目与视图、其他类目、类别和基础缺陷等的关系,以表格方式呈现,如图20所示。

类目成员关系示例.png图20 类目成员关系示例

3)内容历史(Content History):对该类目内容的编辑更新记录。

3.3 架构概念视图

第三类架构概念视图,见图21。

ArchitecturalConcepts.png图21 架构概念视图

MITRE在2017年11月更新3.0版本时新增了架构概念视图。架构概念视图共包含12个类目,223个缺陷条目。该视图的分类基础是常见的架构安全策略,旨在帮助架构人员识别软件设计过程中可能造成的错误。

架构概念视图下的类目层次结构如图22所示。

ArchitecturalConcepts层次示例.png图22 架构概念视图类目层次示例

架构概念视图类目层次一般只有两层,结构较为简单。

如前所述,最新版的CWE List包含了38个视图,本文只简单介绍了其中的NavigateCWE视图。MITRE基于不同的概念,从各自特定的角度出发对缺陷类型进行归纳组织,设计创建了不同的视图,方便相关领域的人理解,以便CWE List得到更好的利用和运用。

# Common Weakness Enumeration
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者