CWE

普遍的弱点

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

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

CWE-480:使用不正确的操作员

弱点ID:480
抽象:根据
结构:简单的
查看自定义信息:
+描述
程序员不小心使用了错误的操作员,该操作员以安全性的方式更改了应用程序逻辑。
+扩展描述
这些类型的错误通常是错别字的结果。
+关系
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与观点“研究概念”相关(CWE-1000)
自然 类型 ID 名称
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 670 始终构成控制流程实现
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 481 分配而不是比较
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 482 比较而不是分配
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 597 在字符串比较中使用错误的操作员
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“软件开发”视图相关(CWE-699)
自然 类型 ID 名称
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 438 行为问题
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 569 表达问题
+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
执行
+适用的平台
部分帮助该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。

语言

C(有时普遍)

C ++(有时普遍)

珀尔(有时普遍)

班级:不是特定语言的(不确定的患病率)

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

技术影响:更改执行逻辑

这种弱点可能会导致执行意外逻辑和其他意外的应用程序行为。
+利用的可能性
低的
+示例的例子

示例1

以下C/C ++和C#示例试图针对整数值100验证INT输入参数。

(不良代码)
示例语言:C
int iSvalid(int value){
如果(值= 100){
printf(“ value是有效的\ n”);
返回(1);
}
printf(“值无效\ n”);
返回(0);
}
(不良代码)
示例语言:C#
bool iSvalid(int value){
如果(值= 100){
Console.Writeline(“ Value是有效的。”);
返回true;
}
Console.Writeline(“值无效。”);
返回false;
}

但是,在IF语句中要评估的表达式使用分配运算符“ =”而不是比较操作员“ ==”。使用分配运算符代替比较操作员的结果导致int变量在本地重新分配,并且IF语句中的表达式将始终评估表达式的右侧值。这将导致输入值未正确验证,这可能会导致意外的结果。

示例2

以下C/C ++示例显示了一个简单的堆栈实现,该堆栈包括用于添加和从堆栈中添加整数值的方法。该示例使用指针将整数值添加和删除到堆栈数组变量。

(不良代码)
示例语言:C
#定义50号
int *tos, *p1,stack [size];

void push(int i){
P1 ++;
if(p1 ==(tos+size)){

//打印堆栈溢出错误消息和退出
}
*p1 == i;
}

int pop(void){
如果(p1 == tos){

//打印堆栈下流错误消息和退出
}
P1-;
返回 *(P1+1);
}

int main(int argc,char *argv []){

//初始化TOS和P1以指向堆栈的顶部
tos = stack;
p1 = stack;
//代码以添加和删除堆栈中的项目
...
返回0;
}

推动方法包括一个表达式,将整数值分配给指针变量指向的堆栈中的位置。

但是,此表达式使用比较运算符“ ==”而不是分配操作员“ =”。使用比较操作员而不是分配操作员的结果导致错误的值输入堆栈中,并可能导致意外的结果。

+检测方法

自动静态分析

使用静态分析可以很容易地发现这种弱点。但是,在某些情况下,操作员似乎似乎是不正确的,但实际上是正确的,并且反映了程序中的异常逻辑。

手动静态分析

使用静态分析可以很容易地发现这种弱点。但是,在某些情况下,操作员似乎似乎是不正确的,但实际上是正确的,并且反映了程序中的异常逻辑。
+会员资格
部分帮助此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
自然 类型 ID 名称
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 747 证书C安全编码标准(2008)第14章 - 其他(MSC)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 871 CERT C ++安全编码第03节 - 表达式(EXP)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 883 CERT C ++安全编码第49节 - 其他(MSC)
成员 看法查看 - CWE条目的子集,提供了一种检查CWE内容的方法。两个主视图结构是切片(平面列表)和图(包含条目之间的关系)。 884 CWE横截面
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 998 SFP次级群集:计算中的故障
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1157 SEI CERT C编码标准 - 指南03.表达式(EXP)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1306 CISQ质量措施 - 可靠性
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1307 CISQ质量措施 - 可维护性
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1308 CISQ质量措施 - 安全性
+分类映射
映射的分类名称 节点ID 合身 映射的节点名称
扣子 使用错误的操作员
证书C安全编码 EXP45-C CWE更抽象 在选择语句中不执行作业
证书C安全编码 EXP46-C CWE更抽象 请勿使用带有布尔式操作数的位操作员
软件故障模式 SFP1 计算中的故障
+参考
[Ref-18] Secure Software,Inc.。“ The CLASP应用程序安全过程”。2005年。<https://cwe.mitre.org/documents/sources/theclaspapplicationsecurityprocess.pdf>。
[Ref-62] Mark Dowd,John McDonald和Justin Schuh。“软件安全评估的艺术”。第6章,“错别字”,第289页。第一版。艾迪生·卫斯理。2006。
+内容历史记录
+提交
提交日期 提交者 组织
2006-07-19 扣子
+修改
修改日期 修饰符 组织
2008-07-01 埃里克·达奇(Eric Dalci) 雪茄
更新的time_of_introduction
2008-09-08 CWE内容团队 MITER
更新了适用的_platforms,关系,其他_notes,gualomy_mappings
2008-10-14 CWE内容团队 MITER
更新的关系
2008-11-24 CWE内容团队 MITER
更新的关系,分类_mappings
2011-06-01 CWE内容团队 MITER
更新的common_conconquence,关系,分类_mappings
2011-09-13 CWE内容团队 MITER
更新的关系,分类_mappings
2012-05-11 CWE内容团队 MITER
更新的common_conconcencences,参考,关系,分类_mappings
2012-10-30 CWE内容团队 MITER
更新了示范_examples,势_mitigations
2014-06-23 CWE内容团队 MITER
更新了plapperable_platforms,Description,detection_factors,other_notes
2014-07-30 CWE内容团队 MITER
更新的关系
2017-11-08 CWE内容团队 MITER
更新的示范_examples,gualomy_mappings
2019-01-03 CWE内容团队 MITER
更新的关系
2020-02-24 CWE内容团队 MITER
更新的参考,关系,分类_mappings
2020-08-20 CWE内容团队 MITER
更新的关系
2021-03-15 CWE内容团队 MITER
更新的示范_examples,关系
+先前的输入名称
改变日期 先前的输入名称
2008-04-11 使用错误的操作员
提供更多信息 - 请选择其他过滤器。
页面最后更新:2022年10月13日