CWE发展的比较和研究的观点 |
观众 | 7 pk | 699年 | 1000年 |
---|---|---|---|
开发人员 | 是的 | 是的 | 没有 |
工具厂商 | 是的 | 是的 | 没有 |
学术研究人员 | 没有 | 没有 | 是的 |
7 pk的目标观众cwe - 699基本上是相同的。
cwe - 1000不一定是直观的开发人员。它可能不是直观的工具供应商,供应商必须出示结果以来,可以自动检测并向开发人员解释的方式是可以理解的。
度规 | 7 pk | 699年 | 1000年 |
---|---|---|---|
总CWE条目 | 97年 | 672年 | 622年 |
根 | 8 | 2 | 12 |
马克斯树深度 | 2 | 9 | 7 |
Ave #孩子 | 11.1 | 4.7 | 4.6 |
马克斯的孩子 | 28 | 21 | 26 |
Ave #父母 | 1.0 | 1.1 | 1.2 |
马克斯的父母 | 1 | 3 | 3 |
注意,“总CWE条目”统计只有项条目内ParentOf / ChildOf关系视图。
可以看出,层次结构cwe - 699和cwe - 1000深度超过七分之一的有害的王国。这可能是合理的期望,因为比7 pk CWE跟踪更多的弱点。7 pk门通常CWE的基地或变种的抽象级别。应该注意,巩固的Vulncat覆盖更多的问题比原来7 pk。
较低的平均数量的孩子没有一个明确的目标在开发过程中cwe - 1000。然而,CWE团队有时特别关注大类别是否有可能提供额外的模式,更大程度的粒度,而减少孩子的平均数量的影响。此外,建立一个更抽象的条目可能导致条目被转移到其他地区的等级,抽象的条目。然而,一些地区的cwe - 1000显然需要更多的粒度,如cwe - 693(保护机制失败)cwe - 668(曝光资源错误的领域),都有26个孩子。
有趣的是,尽管7 pk的最初的目标之一是使用“seven-plus-one”王国对人类心理可接受性,这只适用于顶级王国;输入验证王国包含28项。这可能是由于有限的深度层次结构。Vulncat扩大7 pk,添加了一个顶级基于个人的编程语言;然后每一层分解的7 pk类别。儿童的平均数量仍在CWE似乎高于。
层次结构在699年似乎比它确实是,因为少量的根源。它并不真正开始直到几个分支水平层次结构。所以,这是相当相当于1000的深度。
这两个cwe - 699和cwe - 1000平均超过父节点。在的情况下cwe - 699预计,由于大量使用的类别。研究认为,虽然相互排他性是一个目标,需要进一步的工作。
引用(霍华德),来自[Amoroso],分类应该有以下属性:
1) | 相互排斥的——在一个类别分类不包括其他所有因为类别不重叠, |
2) | 详尽的,综上所述,类别包括所有的可能性, |
3) | 明确,清晰,准确分类是不确定,不管谁是分类, |
4) | 可重复的,重复的应用程序导致相同的分类,不管谁是分类, |
5) | 接受——逻辑和直觉,这样他们可以成为一般批准, |
6) | 有用的——可以用来了解领域的调查。 |
每个视图都有不同的规定和隐含的目标对元素的质量和数量确定,这将是有益的检查每个视图的这些标准和相关标准。
目标 | 7 pk | 699年 | 1000年 |
---|---|---|---|
互相排斥的 | 没有 | 没有 | 是的 |
模型之间的相互联系 | 没有 | 部分 | 是的 |
详尽的 | 没有 | 是的 | 是的 |
明确的 | 没有 | 没有 | 是的 |
统一的观点 | 是的 | 没有 | 是的 |
可重复的 | 没有 | 没有 | 是的 |
接受 | 是的 | 是的 | 没有 |
类别允许 | 是的 | 是的 | 没有 |
额外的解释这些比较如下。
7 pk作者承认的目标不是面面俱到,说明王国只集中在最重要的实现级编码错误,也可以通过工具自动检测。的cwe - 1000和cwe - 699观点包括弱点在设计、实现和其他SDLC阶段。即使一个弱点不能被自动检测到,它包含在CWE,所以范围是更广泛的比现有工具的能力。
关于劣势,cwe - 699和cwe - 1000有相同的穷尽性的目标。然而,一些弱点支柱cwe - 1000太抽象,适合过得好吗cwe - 699。与cwe - 699的类别和使用cwe - 1000显式意图避开他们,cwe - 699通常是将CWE的最全面的图形视图,虽然cwe - 2000视图总是列出每一个条目。
CWE映射被视为重复如果多个等价的技术专长的人相同的CWE标识符分配给一个安全问题。
7 pk纸不状态是否可重复性的映射是一个目标。它可能不是,因为更关注教育的开发人员和自动检测。
CWE,无论观点,重复性的要求是不同的。自从CWE旨在促进不同社区之间的通信的弱点信息和工具,重复性很重要——人能够映射到相同的标识符。
因此,研究观点寻求实现可重复性,虽然雄厚的技术知识和了解链是必需的。重复性已经非正式地验证在许多情况下,两个独立CWE团队成员分类问题一样。然而,是有限度的——模糊分类仍然可以发生因为角度问题或不完整部分的层次结构。
的发展观,希望大量的导航分类将使人们更容易达到所需的弱点ID。然而,有这么多的类别,有可能不完整或不正确的映射,如果一个用户是一树的路径,和另一个映射器遵循一条不同的道路。指导需要书面或树结构,最大限度地减少这种风险。最终,开发视图映射一致性问题,可以通过提高搜索能力,确保完成所有类别,创建额外的类别来填补缺口,并进行可用性研究。
通过定义一个狭窄的观众和子集的弱点,7 pk有效地结合其观点。699年在很大程度上依赖于分类,有许多不同的观点,支持不同类型的用户。1000试图实现一个统一的观点,如有意遗漏的类别和专注于核心的弱点和资源的行为。1000年试图省略攻击或后果,尽管一些后果被当作最后一环。它还将保护机制的失败(cwe - 693),链接关系。例如,输入验证不足(CWE-20)会导致许多问题,如SQL注入(cwe - 89)和XSS (cwe - 79),所以在cwe - 1000,这些都是链接关系而不是父/子关系。这种方法还允许建模的副作用的其他保护机制失败,如输出卫生处理(不足cwe - 116),这是一个SQL注入和XSS的重要因素。
应该注意的是,虽然7 pk提出了一个统一的角度来看,它不是视为统一的关于1000年世界的模型。例如,7 pk的“输入验证”王国指定许多问题儿童,如SQL注入(cwe - 89)和XSS (cwe - 79)。这种做法也跟着发展观。然而,输入验证是当作一个保护机制在1000年分离(通过链接关系)的问题,可以通过输入验证。Vulncat 1000模型的角度来看是不统一的,;它有“拒绝服务”等类别(在1000年的后果模型),“日志锻造”(攻击),和“从一开始”“缓冲区溢出:“(链)。
一些特定的后果(如空指针)分配CWE标识符,但通常是最后的一环。在CWE,零废弃总是视为其他一些错误的结果,如未能检查一个错误条件。这种方法忽略了病理情况下,一个程序员直接提供零常数作为参数(也许作为一种迅速退出应用程序)。
7 pk纸不互斥的分类是否一个目标状态。布局并不意味着相同的项目可以有多个父母。然而,在某些情况下,项目可以以多种方式分类。Vulncat的特定于语言的崩溃在顶层重用7 pk王国在下次水平低于个体的语言。
例如,cwe - 491(公共可克隆()方法没有最终(又名“对象劫持”))被划分在“封装”不足王国(cwe - 485),但这也是一个相当清楚的例子,另一个王国,“API滥用”(cwe - 227)。路径操作(cwe - 249)被描述为一个低级的缓冲区溢出(cwe - 120),它是在同一输入验证的王国;然而,cwe - 251(经常滥用:字符串管理)也确定字符串操作函数,使缓冲区溢出的风险,但这是机密cwe - 227滥用(API)。这些分类选择的理由是不清楚的。
cwe - 699没有目标是相互排斥的。相反,它使用不同的类别有很多关系。然而,正如前面所解释的那样,这对重复性的影响。
而cwe - 1000相互排他性作为一个目标,它已经很难完成。它试图尽可能地减少重叠。链和复合材料的显式建模简化这个问题。然而,仍然有多角度嵌入到层次结构,发现并不是所有的连锁或复合材料。
(除了父/子关系的显式建模)似乎CWE独有;尚未处理[7 pk],[扣]或[Krsul]。
cwe - 1000捕捉最CWE的链和复合材料。自cwe - 699是开发者更友好,它一般没有指定这些关系,尽管他们CWE网站上随处可见。
即使相互排他性是最终实现,建模相互关系仍将是有用的。生物分类,例如,在人类和狗不是在相同的顺序,但彼此协会是著名的足以被记录下来。
“7 + 1”原则用于7 pk,与其强调一个观众的开发人员,使其从心理上接受。699年的观点,借鉴以前的分类工作,并使用其他类别,以填补空白,可能是可以接受的,因为它将会熟悉它的目标受众。另一方面,1000年的观点并没有为基本开发人员及其分类方法比先前的努力都是不同的。因此,它需要比人用不同的思维方式,这可能更难以接受。然而,我们相信这是一个重要的一步的了解不足。
7 pk使用一组有限的类别。cwe - 699使用一个丰富、重叠的类别,虽然这提出了维护挑战。在大多数情况下,cwe - 1000已经能够摆脱类别,虽然有些人可能认为,柱子是如此抽象,他们也可能是类别。
本文讨论的三个观点有不同的优点和缺点,这取决于观众。鉴于CWE对不同观众的支持,这些不同的观点各有不同的用途。
(7 pk)卡特里娜Tsipenyuk,布莱恩象棋,Gary McGraw。“七有害的王国:分类软件安全错误”。2005年11月。NIST研讨会软件安全保障工具,技术,和指标。http://cwe.mitre.org/documents/sources/SevenPerniciousKingdoms.pdf
Amoroso爱德华·g·阿莫罗索。计算机安全技术基础》1994。新世纪PTR上台北。
(霍华德)约翰·d·霍华德。“安全事故的分析在互联网上1989 - 1995”,6.1节。1997年。卡内基梅隆大学博士论文。http://www.cert.org/research/JHThesis/Chapter6.html
Vulncat增强软件安全研究小组,Gary McGraw博士。“加强分类:软件安全错误”。2008年。http://www.fortify.com/vulncat/en/vulncat/index.html