CWE

常见的弱点枚举

一个由社区开发的软件&硬件缺陷类型的列表

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

cwe - 502:反序列化不可信的数据

弱点ID: 502
抽象:基地
结构:简单的
视图定制的信息:
+描述
产品反序列化不可信数据不充分验证结果数据将是有效的。
+扩展描述

序列化对象往往是方便沟通或保存以备后用。然而,反序列化数据或代码往往可修改,无需使用提供的访问器功能如果它不使用加密来保护自己。此外,任何加密仍将客户端安全——这是一个危险的安全假设。

不可信的数据不能被信任是格式良好的。

当开发人员的地方没有限制工具链,或一系列的实例和方法调用可以self-execute反序列化过程中(即。对象返回给调用者之前),攻击者利用他们有时可能执行未经授权的操作,生成一个壳。

+替代条款
打包,包:
打包和序列化和反序列化,实际上是同义词。
酸洗,unpickle:
在Python中,“泡菜”功能是用于执行序列化和反序列化。
PHP对象注入:
一些PHP应用程序研究人员使用这个术语时攻击unserialize()函数的不安全使用;但它也可以用于cwe - 915
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 913年 不当的控制代码动态地管理资源
PeerOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 915年 控制不当修改动态确定对象的属性
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 399年 资源管理错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 913年 不当的控制代码动态地管理资源
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1019年 验证输入
+背景细节
序列化和反序列化的过程指特性采取program-internal上肢数据,包装的方式,允许外部存储或传输的数据(“序列化”),然后提取序列化数据重建原来的对象(“反序列化”)。
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计 遗漏:这个弱点是由于缺少一个安全策略在体系结构和设计阶段。
实现
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

Java患病率(待定)

Ruby患病率(待定)

PHP患病率(待定)

Python患病率(待定)

JavaScript患病率(待定)

技术

类:ICS /不(通常是普遍的)

+常见的后果
部分帮助这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 影响 可能性
完整性

技术的影响:修改应用程序数据;意想不到的状态

攻击者可以修改意想不到的对象或数据被认为是安全的修改。
可用性

技术的影响:DoS:资源消耗(CPU)

如果一个函数在一个假设在终止时,基于一个哨兵在一个字符串,它可能永远不会终止。
其他

技术的影响:不同的上下文

后果可能差别很大,因为它依赖于被反序列化对象或方法,以及如何使用它们。做一个假设反序列化对象中的代码是有效的是危险的,可以使剥削。
+利用的可能性
媒介
+示范例子

示例1

这个代码片段反序列化一个对象从一个文件中,并使用它作为一个UI按钮:

(坏的代码)
例如语言:Java
尝试{
文件文件=新文件(“object.obj”);
ObjectInputStream =新ObjectInputStream(新FileInputStream(文件);
javax.swing。JButton按钮= (javax.swing.JButton) in.readObject ();
in.close ();
}

这段代码不会尝试验证文件的源或内容之前反序列化。攻击者可以将目标文件替换为一个文件,其中包含任意恶意代码时将执行按钮被按下。

减轻,明确定义最终readObject()来防止反序列化。这方面的一个例子:

(好的代码)
例如语言:Java
私人最终无效readObject (ObjectInputStream)抛出io。IOException {
把新的io。IOException(“不能反序列化”);}

示例2

在Python中,泡菜库处理序列化和反序列化过程。在这个例子中来自[ref - 467),代码接收并解析数据,然后试图验证一个用户基于验证令牌。

(坏的代码)
例如语言:Python
尝试{
类ExampleProtocol (protocol.Protocol):
def dataReceived(自我、数据):

#代码会在这里将解析传入的数据
#接收头后,调用confirmAuth()进行身份验证

def confirmAuth(自我,标题):
试一试:
令牌= cPickle.loads (base64.b64decode(头[' AuthToken ']))
如果不是check_hmac(令牌“签名”,令牌(的数据),getSecretKey ()):
提高AuthFail
自我。secure_data =令牌(的数据)
除了:
提高AuthFail
}

不幸的是,代码不验证传入的数据是合法的。攻击者可以构造一个非法的、序列化对象“AuthToken”实例化一个Python的子流程执行任意命令。例如,攻击者可以构造一个泡菜,利用Python的子过程模块,生成新的流程和包括一个数量的参数为各种用途。自泡菜允许对象定义的过程如何应该未酸洗的,攻击者可以直接unpickle过程调用Popen /bin/sh.子过程模块和执行

+观察到的例子
参考 描述
链:旁路不可信的反序列化问题(cwe - 502)通过使用一个assumed-trusted类(cwe - 183)
反序列化问题常用的Java库允许远程执行。
反序列化问题常用的Java库允许远程执行。
使用PHP unserialize函数不受信任的输入允许攻击者修改应用程序配置。
使用PHP unserialize函数不受信任的输入的内容管理系统可能允许代码执行。
使用PHP unserialize函数不受信任的输入内容管理系统允许代码执行使用一个精心制作的饼干的价值。
用PHP编写的内容管理系统允许非系列化的任意对象,可能允许代码执行。
Python脚本允许本地用户通过腌数据执行代码。
不安全的反序列化使用Python脚本的泡菜。
Web浏览器允许执行本地方法通过精心字符串反序列化的字符串的JavaScript函数。
+潜在的缓解措施

阶段:体系结构和设计;实现

如果可用,使用编程语言的签字/密封特性以确保反序列化数据没有被污染。例如,一个基于散列的消息验证码(HMAC)可以用来确保数据没有被修改。

实施阶段:

当反序列化数据,填充一个新对象而不是反序列化。结果是,数据流经安全输入验证和功能是安全的。

实施阶段:

显式地定义最后一个对象()来防止反序列化。

阶段:体系结构和设计;实现

使保护他们免受反序列化字段瞬态。

尝试序列化并反序列化类包含瞬态字段将导致瞬态数据应该取消。这是一个很好的方法来防止时间,把环境相关,或敏感变量和使用不当。

实施阶段:

避免不必要的类型或设备可以被恶意利用的目的。这限制了潜在的意外或未经授权的类型和小玩意被攻击者利用。只添加接受allowlist类。注意:新产品不断被发现,这本身并不是一个充分的缓解。
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 858年 CERT甲骨文安全Java编码标准(2011)第十五章-序列化(SER)
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 884年 CWE横截面
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 994年 SFP二级集群:受污染的输入变量
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1034年 OWASP 2017年十大类别A8——不安全的反序列化
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1148年 SEI CERT甲骨文Java安全编码标准,准则14。序列化(SER)
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1200年 弱点在2019 CWE最危险的软件错误
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1308年 方案及质量措施,安全
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1337年 2021 CWE最危险软件的弱点的弱点
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1340年 方案及数据保护措施
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1350年 2020 CWE最危险软件的弱点的弱点
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1354年 OWASP 2021年十大类别A08:2021——软件和数据完整性的失败
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1387年 2022 CWE最危险软件的弱点的弱点
+笔记

维护

之间的关系cwe - 502cwe - 915需要进一步探索。cwe - 915更狭隘的范围对象修改,不一定是用于反序列化。
+分类法映射
映射分类名称 节点ID 适合 映射节点名
反序列化的数据不可信
CERT甲骨文安全Java编码标准(2011) SER01-J 不偏离正确的序列化方法的签名吗
CERT甲骨文安全Java编码标准(2011) SER03-J 不要序列化未加密,敏感数据
CERT甲骨文安全Java编码标准(2011) SER06-J 反序列化期间私人可变的组件创建防御副本
CERT甲骨文安全Java编码标准(2011) SER08-J 不要使用默认的序列化形式不变量定义的实现
软件故障模式 SFP25 受污染的输入变量
+引用
[REF-18]安全软件公司. .“扣应用程序安全性的过程”。2005年。<https://cwe.mitre.org/documents/sources/TheCLASPApplicationSecurityProcess.pdf>。
[ref - 461]马提亚凯撒。“在Java反序列化漏洞”。2015-10-28。<http://www.slideshare.net/codewhitesec/exploiting -反序列化——漏洞- java - 54707478>。
(ref - 462)山姆·托马斯。“PHP unserialization漏洞:我们缺少什么?”。2015-08-27。<http://www.slideshare.net/_s_n_t/php-unserialization-vulnerabilities-what-are-we-missing>。
[ref - 463]加布里埃尔·劳伦斯和克里斯Frohoff。“编组泡菜:反序列化对象如何毁掉你的一天”。2015-01-28。<http://www.slideshare.net/frohoff1/appseccali - 2015 -整理-泡菜>。
海涅Deelstra (ref - 464)。“非系列化用户提供的数据,一个坏主意”。2010-08-25。<http://heine.familiedeelstra.com/security/unserialize>。
[ref - 465] Manish Saindane。“黑帽欧盟2010 -攻击Java序列化的沟通”。2010-04-26。<http://www.slideshare.net/msaindane/black -帽子-欧盟- 2010 -攻击- java序列化的沟通>。
Nadia Alramli (ref - 466)。“为什么Python泡菜是不安全的。”2009-09-09。<http://nadiana.com/python-pickle-insecure>。
纳尔逊Elhage (ref - 467)。利用滥用Python的“泡菜”。2011-03-20。<https://blog.nelhage.com/2011/03/exploiting-pickle/>。
Chris Frohoff [ref - 468]。“反序列化我短裤:或者我学会了如何开始忧虑,恨反序列化Java对象”。2016-03-21。<https://www.slideshare.net/frohoff1/deserialize-my-shorts-or-how-i-learned-to-start-worrying-and-hate-java-object-deserialization>。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新Common_Consequences、描述关系,Other_Notes Taxonomy_Mappings
2009-10-29 CWE内容团队 主教法冠
更新描述、Other_Notes Potential_Mitigations
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2012-05-11 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2012-10-30 CWE内容团队 主教法冠
更新Demonstrative_Examples
2013-02-21 CWE内容团队 主教法冠
更新Alternate_Terms、Applicable_Platforms Background_Details、Common_Consequences Maintenance_Notes, Observed_Examples Potential_Mitigations,引用关系
2014-07-30 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2015-12-07 CWE内容团队 主教法冠
更新Observed_Examples、引用关系
2017-05-03 CWE内容团队 主教法冠
更新Applicable_Platforms Demonstrative_Examples,描述、Potential_Mitigations引用
2017-11-08 CWE内容团队 主教法冠
更新Applicable_Platforms、Common_Consequences Demonstrative_Examples、Modes_of_Introduction Potential_Mitigations引用关系
2018-03-27 CWE内容团队 主教法冠
更新的关系
2019-01-03 CWE内容团队 主教法冠
更新Related_Attack_Patterns、关系、Taxonomy_Mappings
2019-06-20 CWE内容团队 主教法冠
更新的类型
2019-09-19 CWE内容团队 主教法冠
更新的关系
2020-02-24 CWE内容团队 主教法冠
更新Observed_Examples、引用关系
2020-06-25 CWE内容团队 主教法冠
更新Alternate_Terms Potential_Mitigations
2020-08-20 CWE内容团队 主教法冠
更新的关系
2020-12-10 CWE内容团队 主教法冠
更新的关系
2021-07-20 CWE内容团队 主教法冠
更新的关系
2021-10-28 CWE内容团队 主教法冠
更新的关系
2022-06-28 CWE内容团队 主教法冠
更新的关系
2022-10-13 CWE内容团队 主教法冠
更新Applicable_Platforms
2023-01-31 CWE内容团队 主教法冠
更新描述
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日