CWE

普遍的弱点

社区开发的软件和硬件弱点类型清单

2021 CWE最重要的硬件弱点
CWE前25个最危险的弱点
>CWE列表> cwe-单个字典定义(4.10)
ID

CWE-397:通用异常的投掷声明

弱点ID:397
抽象:根据
结构:简单的
查看自定义信息:
+描述
抛出过度广泛的异常会促进复杂的错误处理代码,更可能包含安全漏洞。
+扩展描述
声明一种抛出异常或投掷的方法,使呼叫者难以执行正确的错误处理和错误恢复。例如,设置了Java的异常机制,以使呼叫者更容易预测出什么问题,并编写代码来处理每个特定的特殊情况。宣布一种方法会引发一种通用的异常形式,使该系统失败了。
+关系
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与观点“研究概念”相关(CWE-1000)
自然 类型 ID 姓名
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 221 信息丢失或遗漏
Childof 支柱支柱 - 弱点是最抽象的弱点类型,代表了与之相关的所有类别/基础/变体弱点的主题。从技术上讲,柱子与类别不同,因为在技术上仍然是一种描述错误的弱点,而类别代表用于分组相关事物的常见特征。 703 检查或处理特殊条件不当
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 705 不正确的控制流程范围
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“软件开发”视图相关(CWE-699)
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 389 错误条件,返回值,状态代码
+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
建筑和设计
执行
+适用的平台
部分帮助该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。

语言

C ++(不确定的患病率)

爪哇(不确定的患病率)

C#(不确定的患病率)

+常见后果
部分帮助该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
范围 影响 可能性
非替代
其他

技术影响:隐藏活动;更改执行逻辑

+示例的例子

示例1

以下方法抛出了三种类型的异常。

(好代码)
示例语言:爪哇
public void doexchange()抛出ioException,InvocationTargetException,sqlexception {
...
}

虽然写作似乎更整洁

(不良代码)
public void doexchange()抛出异常{
...
}

这样做会阻碍呼叫者理解和处理发生的例外的能力。此外,如果以后的DoexChange()进行了修订,引入了一种新类型的异常,该异常应与以前的异常不同,则没有简单的方法来执行此要求。

示例2

C ++的早期版本(C ++ 98,C ++ 03,C ++ 11)包括一个称为动态异常规范的功能。这允许函数声明可能会投掷哪种类型的异常。可以声明一般类别的例外类,以涵盖可能被抛出的任何派生异常。

(不良代码)
int myFunction()throw(std ::异常){
如果(0)抛出out_of_range();
抛出length_error();
}

在上面的示例中,代码声明MyFunction()可以抛出类型“ STD ::异常”的例外,从而隐藏了有关可能被抛出的可能派生异常的详细信息。

+会员资格
部分帮助此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 388 7pk-错误
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 851 Java的Cert Oracle安全编码标准(2011)第8章 - 特殊行为(ERR)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 960 SFP次级群集:模棱两可的异常类型
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1129 CISQ质量措施(2016年) - 可靠性
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1131 CISQ质量措施(2016年) - 安全性
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1141 Java的SEI CERT ORACLE SECURE编码标准 - 指南07.异常行为(ERR)
+笔记

适用平台

对于C ++,此弱点仅适用于C ++ 98,C ++ 03和C ++ 11。它依赖于称为动态异常规范的功能,该功能是C ++早期版本的一部分,但在C ++ 11中被弃用。它已被C ++ 17及更高版本删除。
+分类映射
映射的分类名称 节点ID 合身 映射的节点名称
7个有害王国 大门投掷声明
Java(2011)的CERT ORACLE SECURE编码标准 ERR07-J 请勿投掷Runtime Exception,异常或可抛出
软件故障模式 SFP5 模棱两可的异常类型
OMG ASCSM ASCSM-CWE-397
OMG ASCRM ascrm-CWE-397
+参考
[Ref-6] Katrina Tsipenyuk,Brian Chess和Gary McGraw。“七个有害王国:软件安全错误的分类法”。NIST关于软件安全保证工具技术和指标的研讨会。nist。2005-11-07。<https://samate.nist.gov/ssattm_content/papers/seven%20pernious%20kingdoms%20-%20-%20taxonomy%20OF%20SW%20SECURITY%20Security%20ERR%20-20-%20-%20-%20TSIPENYUK;>。
[Ref-961]对象管理组(OMG)。“自动源代码可靠性度量(ASCRM)”。ASCRM-CWE-397。2016-01。<http://www.omg.org/spec/ascrm/1.0/>。
[Ref-962]对象管理组(OMG)。“自动源代码安全度量(ASCSM)”。ASCSM-CWE-397。2016-01。<http://www.omg.org/spec/ascsm/1.0/>。
+内容历史记录
+提交
提交日期 提交者 组织
2006-07-19 7个有害王国
+修改
修改日期 修饰符 组织
2008-07-01 埃里克·达奇(Eric Dalci) 雪茄
更新的time_of_introduction
2008-09-08 CWE内容团队 MITER
更新了适用的_platforms,关系,其他_notes,gualomy_mappings
2008-09-24 CWE内容团队 MITER
从适用_platforms中删除c
2008-10-14 CWE内容团队 MITER
更新了适用的_platforms
2009-03-10 CWE内容团队 MITER
更新的关系
2009-05-27 CWE内容团队 MITER
更新了示范_examples
2009-10-29 CWE内容团队 MITER
更新的描述,其他_notes
2011-06-01 CWE内容团队 MITER
更新的common_conconquence,关系,分类_mappings
2012-05-11 CWE内容团队 MITER
更新的关系
2014-07-30 CWE内容团队 MITER
更新的关系,分类_mappings
2019-01-03 CWE内容团队 MITER
更新了适用的_platforms,示范_examples,参考,关系,分类_mappings
2020-02-24 CWE内容团队 MITER
更新的引用
+先前的输入名称
改变日期 先前的输入名称
2008-04-11 大门投掷声明
提供更多信息 - 请选择其他过滤器。
页面最后更新:2023年1月31日