CWE

普遍的弱点

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

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

CWE-123:写入什么条件

弱点ID:123
抽象:根据
结构:简单的
查看自定义信息:
+描述
攻击者都有能力将任意值写入任意位置的任何条件,通常是由于缓冲区溢出而导致的。
+关系
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与观点“研究概念”相关(CWE-1000)
自然 类型 ID 姓名
Childof 根据基础 - 仍然主要独立于资源或技术的弱点,但有足够的细节来提供特定的检测和预防方法。基本水平的弱点通常用以下维度的2或3来描述问题:行为,财产,技术,语言和资源。 787 外面写作
peerof 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 415 双免费
可以按照 根据基础 - 仍然主要独立于资源或技术的弱点,但有足够的细节来提供特定的检测和预防方法。基本水平的弱点通常用以下维度的2或3来描述问题:行为,财产,技术,语言和资源。 120 缓冲区副本未检查输入的大小(“经典缓冲区溢出”)
可以按照 根据基础 - 仍然主要独立于资源或技术的弱点,但有足够的细节来提供特定的检测和预防方法。基本水平的弱点通常用以下维度的2或3来描述问题:行为,财产,技术,语言和资源。 134 使用外部控制格式字符串
可以按照 根据基础 - 仍然主要独立于资源或技术的弱点,但有足够的细节来提供特定的检测和预防方法。基本水平的弱点通常用以下维度的2或3来描述问题:行为,财产,技术,语言和资源。 364 信号处理程序种族条件
可以按照 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 416 免费使用后使用
可以按照 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 479 信号处理程序的使用非伦特功能
可以按照 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 590 没有记忆而不是堆
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“软件开发”视图相关(CWE-699)
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1218 内存缓冲区错误
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“ CISQ质量措施(2020)”相关(CWE-1305)
自然 类型 ID 姓名
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 119 内存缓冲区范围内操作的不当限制
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“ CISQ数据保护措施”(CWE-1340)有关
自然 类型 ID 姓名
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 119 内存缓冲区范围内操作的不当限制
+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
执行
+适用的平台
部分帮助该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。

语言

C(不确定的患病率)

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

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

技术影响:修改内存;执行未经授权的代码或命令;获得特权或假定身份;DOS:撞车,退出或重新启动;旁路保护机制

显然,可以使用一些条件来将数据写入策略范围之外的内存区域。而且,它们几乎总是可以用来执行任意代码,这通常不在程序的隐式安全策略范围之内。如果攻击者可以覆盖指针的内存价值(通常为32或64位),则可以将功能指针重定向到自己的恶意代码。即使攻击者只能修改单个字节任意代码执行,也是可能的。有时这是因为可以反复利用相同的问题达到相同的效果。其他时候,这是因为攻击者可以覆盖至关重要的安全应用程序特定数据 - 例如指示用户是否为管理员的标志。
正直
可用性

技术影响:DOS:撞车,退出或重新启动;修改内存

许多内存访问可以导致程序终止,例如编写对当前过程无效的地址时。
访问控制
其他

技术影响:旁路保护机制;其他

当结果是任意代码执行时,通常可以用来颠覆任何其他安全服务。
+利用的可能性
高的
+示例的例子

示例1

当记忆分配的会计信息以特定方式覆盖时,会发生写入条件的经典示例。这是潜在脆弱代码的示例:

(不良代码)
示例语言:C
#define bufsize 256
int main(int argc,char ** argv){
char *buf1 =(char *)malloc(bufsize);
char *buf2 =(char *)malloc(bufsize);
strcpy(buf1,argv [1]);
免费(buf2);
}

在这种情况下,漏洞取决于内存布局。可以使用strcpy()的调用来编写BUF1的末尾,并且,使用典型的布局,可以覆盖系统分配时系统保留的会计信息。请注意,如果可以覆盖BUF2的分配标题,则BUF2本身也可以被覆盖。

分配标题通常将保留链接的内存列表“块”。特别是,可能有一个“以前的”块和一个“下一个”块。在这里,BUF2的先前块可能是BUF1,下一个块可能是无效的。当出现Free()时,大多数内存分配器将使用BUF2的数据重写链接列表。特别是,将更新BUF1的“下一个”块,并将更新任何后续块的“上一个”块。攻击者可以插入“下一个”块的内存地址,并为“上一个”块的记忆地址写入该值。

这可以用来覆盖稍后将重新引入的功能指针,并用攻击者可以合法访问的内存地址替换了它,它们放置了恶意代码,从而导致任意代码执行。

+潜在的缓解

阶段:建筑和设计

策略:语言选择

使用提供适当内存抽象的语言。

阶段:操作

在事实之后使用OS级预防功能。不是一个完整的解决方案。
+弱点
条件 描述
结果
(弱点通常与其他一些弱点有关)
+会员资格
部分帮助此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 970 SFP辅助群集:障碍访问故障
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1160 SEI CERT C编码标准 - 指南06.数组(ARR)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1161 SEI CERT C编码标准 - 指南07.字符和字符串(STR)
+分类映射
映射的分类名称 节点ID 合身 映射的节点名称
扣子 写入某种条件
证书C安全编码 ARR30-C 不精确 不要形成或使用隔离的指针或数组下标
证书C安全编码 ARR38-C 不精确 确保图书馆功能不会形成无效的指针
证书C安全编码 str31-c 不精确 确保字符串存储具有足够的字符数据空间和无效终止器
证书C安全编码 str32-c 不精确 请勿将非终止的字符序列传递给期望字符串的库函数
软件故障模式 SFP8 缓冲区访问故障
+参考
[Ref-44] Michael Howard,David Leblanc和John Viega。“软件安全性的24个致命罪”。“罪5:缓冲区超支。”第89页。McGraw-Hill。2010年。
[Ref-18] Secure Software,Inc.。“ The CLASP应用程序安全过程”。2005年。<https://cwe.mitre.org/documents/sources/theclaspapplicationsecurityprocess.pdf>。
+内容历史记录
+提交
提交日期 提交者 组织
2006-07-19 扣子
+修改
修改日期 修饰符 组织
2008-07-01 埃里克·达奇(Eric Dalci) 雪茄
更新的time_of_introduction
2008-09-08 CWE内容团队 MITER
更新了适用的_platforms,common_consequences,关系,其他_notes,gualomy_mappings,nefness_ordinalities
2008-11-24 CWE内容团队 MITER
更新的common_cconsquences,other_notes
2009-01-12 CWE内容团队 MITER
更新的common_cconsquences
2009-05-27 CWE内容团队 MITER
更新的关系
2010-12-13 CWE内容团队 MITER
更新的关系
2011-06-01 CWE内容团队 MITER
更新的common_cconsquences
2012-05-11 CWE内容团队 MITER
更新了COMMON_CCONSQUENCES,参考,关系
2012-10-30 CWE内容团队 MITER
更新了示范_examples
2013-02-21 CWE内容团队 MITER
更新的势_MINEIGATIONS
2014-07-30 CWE内容团队 MITER
更新的关系,分类_mappings
2015-12-07 CWE内容团队 MITER
更新的关系
2017-11-08 CWE内容团队 MITER
更新的causal_nature,common_consequences,示例_examples,caltaly_mappings
2019-01-03 CWE内容团队 MITER
更新的关系
2019-06-20 CWE内容团队 MITER
更新的关系
2019-09-19 CWE内容团队 MITER
更新的关系
2020-02-24 CWE内容团队 MITER
更新的关系,分类_mappings
2020-08-20 CWE内容团队 MITER
更新的关系
2020-12-10 CWE内容团队 MITER
更新的关系
2021-03-15 CWE内容团队 MITER
更新的引用
2022-10-13 CWE内容团队 MITER
更新的关系,分类_mappings
提供更多信息 - 请选择其他过滤器。
页面最后更新:2023年1月31日