CWE

普遍的弱点

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

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

CWE-312:敏感信息的清除文本存储

弱点ID:312
抽象:根据
结构:简单的
查看自定义信息:
+描述
该产品将敏感信息存储在ClearText中的资源中,该资源可能可以访问另一个控制领域。
+扩展描述

由于该信息存储在ClearText(即未加密的)中,因此攻击者可能会读取它。即使信息是以不可行的方式编码的,某些技术也可以确定正在使用哪种编码,然后解码信息。

当组织采用云服务时,攻击者可以更容易从Internet上任何地方访问数据。

在某些系统/环境(例如云​​)中,可能需要使用“双重加密”(在软件和硬件层上),并且开发人员可能完全负责这两层,而不是与更广泛的管理员共同责任系统/环境。

+关系
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与观点“研究概念”相关(CWE-1000)
自然 类型 ID 姓名
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 922 敏感信息的不安全存储
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 311 缺少敏感数据的加密
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 313 在文件或磁盘上存储的clearText存储
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 314 注册表中的clearText存储
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 315 cookie中敏感信息的清晰文本存储
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 316 清晰的敏感信息存储在内存中
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 317 GUI中敏感信息的清除文字存储
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 318 可执行的敏感信息的清晰文本存储
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 526 在环境变量中清除敏感信息的清除文字存储
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“软件开发”视图相关(CWE-699)
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 199 信息管理错误
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“简化已发表漏洞的简化映射”(CWE-1003)相关的视图相关(CWE-1003)
自然 类型 ID 姓名
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 311 缺少敏感数据的加密
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“建筑概念”(CWE-1008)有关
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1013 加密数据
+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
建筑和设计 遗漏:这种弱点是由于在架构和设计阶段缺少安全策略而引起的。
+适用的平台
部分帮助该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。

语言

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

技术

课程:云计算(不确定的患病率)

班级:ICS/OT(不确定的患病率)

课程:移动设备(不确定的患病率)

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

技术影响:读取应用程序数据

具有访问系统的攻击者可以读取存储在ClearText中的敏感信息。
+示例的例子

示例1

以下代码摘录在浏览器cookie中存储了一个明文用户帐户ID。

(不良代码)
示例语言:爪哇
response.addcookie(new cookie(“ useraccountid”,acctid);

由于帐户ID是按照授权的,因此如果攻击者妥协了用户的帐户信息,则将公开其帐户信息。

示例2

该代码将用户的登录信息写给cookie,因此用户以后不必再次登录。

(不良代码)
示例语言:php
函数PersistLogin($ username,$ password){
$ data = array(“用户名” => $ username,“ password” => $ password);
setCookie(“ userdata”,$ data);
}

该代码将用户的用户名和密码存储在用户计算机上的cookie中。如果用户计算机受到攻击者的损害,则可以公开用户的登录信息。即使没有妥协用户的计算机,这种弱点也与跨站点脚本相结合(CWE-79)可以允许攻击者远程复制cookie。

另请注意,此示例代码还在cookie中显示明文存储(CWE-315)。

示例3

以下代码尝试建立连接,阅读密码,然后将其存储到缓冲区中。

(不良代码)
示例语言:C
server.sin_family = af_inet;hp = gethostbyname(argv [1]);
if(hp == null)错误(“未知主机”);
memcpy((char *)&server.sin_addr,(char *)hp-> h_addr,hp-> h_length);
if(argc <3)端口= 80;
else端口=(无符号短)atoi(argv [3]);
server.sin_port = htons(port);
if(connect(sock,(struct sockaddr *)和服务器,sizeof Server)<0)错误(“连接”);
...
while((n = read(袜子,buffer,bufsize-1))!= - 1){

写(dfd,password_buffer,n);
...

尽管成功,但该程序在将数据写入缓冲区之前并未对数据进行加密,可能会将其暴露于未经授权的参与者。

示例4

以下示例显示了Java和ASP.NET应用程序的一部分属性和配置文件。这些文件包括用户名和密码信息,但它们存储在clearText中。

此Java示例显示了带有ClearText用户名 /密码对的属性文件。

(不良代码)
示例语言:爪哇

#Java Web App App ResourceBundle属性文件
...
webapp.ldap.username = SecretUsername
webapp.ldap.password = secretpassword
...

下面的示例显示了ASP.NET应用程序的配置文件的一部分。此配置文件包括与数据库连接的用户名和密码信息,但该对存储在ClearText中。

(不良代码)
示例语言:asp.net
...

...

用户名和密码信息不应包含在配置文件或clearText中的属性文件中,因为这将允许任何可以读取文件访问资源的人。如果可能,请加密此信息。

示例5

2022年,OT:ICEFALL研究通过10种不同的运营技术(OT)供应商检查了产品。研究人员报告了56个漏洞,并说这些产品是“通过设计不安全的” [Ref-1283]。如果利用这些漏洞,这些漏洞通常会允许对手更改产品的运作方式,从拒绝服务到更改产品执行的代码。由于这些产品经常用于电力,电气,水和其他行业,因此甚至可能有安全感。

至少有一个OT产品以明文存储密码。

示例6

2021年,由PeopleGis运营的网站存储了Amazon Web服务中的美国市政当局数据(AWS)简单存储服务(S3)。

(不良代码)
示例语言:其他
一位安全研究人员发现了86个S3存储桶,可以在没有身份验证的情况下访问(CWE-306)和存储的数据未加密(CWE-312)。这些存储桶暴露了超过1000 GB的数据和160万个文件,包括物理地址,电话号码,税收文件,驾驶执照ID的图片等。[Ref-1296] [Ref-1295这是给予的

虽然没有公开披露发现后如何保护数据,但可以考虑多个选项。

(好代码)
示例语言:其他
敏感信息本可以通过确保桶没有公开阅读访问权限来保护,例如,通过启用S3-Account级 - 公共访问 - 访问 - 访问 - 隔离规则来阻止公共访问权限。此外,可以使用适当的S3设置(例如,使用S3-Bucket-Server-Side-Side-Expryption-oppaped设置启用服务器端加密)来对数据进行加密。其他设置可用于进一步防止存储桶数据被泄漏。[[Ref-1297这是给予的

示例7

考虑以下powershell命令示例,以进行Azure存储对象的加密范围。在第一个示例中,为存储帐户设置了加密范围。

(不良代码)
示例语言:
new -azStorageencryptionsCope -ResourceGroupName“ myResourceGroup” -accountName“ myStorageAccount” -encryptionsCopename testscope -sostorageCopepope -sostorageCencopeption

结果(编辑和格式为可读性)可能是:

(不良代码)
示例语言:其他
ResourceGroupName:MyResourceGroup,StorageaccountName:mystorageaccount

姓名 状态 来源 要求建立构造
Testscope 已启用 Microsoft.score

但是,在创建时未启用此服务下的空字符串,因为命令中未指定-RequireInfrastructureCencryptionguntiongention参数。

包括-RequireInFrastructurectryptryption参数解决了以下问题:

(好代码)
示例语言:
new -azStorageencryptionsCope -ResourceGroupName“ myResourceGroup” -accountName“ myStorageAccount” -encryptionsCopename testscope -sostorageencope -reqoreCencryptimption -requireInfrastructureCentureCendureCendureCendureCendureCendurecryptigntion

这产生了报告:

(结果)
示例语言:其他
ResourceGroupName:MyResourceGroup,StorageaccountName:mystorageaccount

姓名 状态 来源 要求建立构造
Testscope 已启用 Microsoft.keyvault 真的

在需要软件和硬件层加密的情况下(“双加密”),可以通过CLI或Portal启用Azure的基础结构加密设置。一个重要的说明是,在创建BLOB之后,无法启用或禁用基础架构硬件加密。此外,在BLOB创建中禁用了基础结构加密的默认值。

+观察到的例子
参考 描述
远程终端单元(RTU)使用依赖于纯文本存储的密码的驱动程序。
密码和用户名存储在cookie中的clearText中
密码存储在具有不安全权限的文件中的clearText中
聊天程序在某些情况下会禁用SSL,即使用户说使用SSL。
链:产品在生成RSA键时使用不正确的公共指数,该键有效地禁用加密
在数据库中存储未加密密码
在数据库中存储未加密密码
产品将密码存储在ClearText中的内存中
在临时文件中的clearText中存储秘密键
SCADA产品使用HTTP基本身份验证,但未加密
登录凭证存储在注册表密钥中
世界可读文件中的明文凭据。
配置文件中的clearText中的密码。
配置文件中的clearText中的密码。
给定选项的组合以及用户回复加密消息时,写入磁盘的消息的副本。
当用户导入键时,在日志文件中的私钥存储和密码。
在cookie中以明文为单位的管理员密码。
默认配置在cookie中具有ClearText用户名/密码。
cookie中的clearText中的用户名/密码。
身份验证信息存储在cookie中的clearText中。
+潜在的缓解

阶段:实施;系统配置;手术

将数据存储在云中(例如S3存储桶,Azure Blobs,Google Cloud Storage等)时,请使用提供商的控件将数据加密到静止状态。[[Ref-1297] [Ref-1299] [Ref-1301这是给予的
+会员资格
部分帮助此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 816 OWASP 2010年前十大A7类 - 不安全的加密存储
成员 看法查看 - CWE条目的子集,提供了一种检查CWE内容的方法。两个主视图结构是切片(平面列表)和图(包含条目之间的关系)。 884 CWE横截面
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 934 OWASP 2013年前十大A6类 - 敏感数据曝光
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 963 SFP辅助群集:暴露数据
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1029 OWASP前十名2017类A3类 - 敏感数据曝光
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1348 OWASP前十2021年A04:2021-不安全设计
+笔记

术语

不同的人使用“ clearText”和“宣传”来表示同一件事:缺乏加密。但是,在密码学中,这些具有更精确的含义。明文是将其馈入密码算法之前的信息,包括已经被加密的文本。ClearText是任何未经加密的信息,尽管它可能是不容易被人类可读的编码形式(例如Base64编码)。
+分类映射
映射的分类名称 节点ID 合身 映射的节点名称
plover 敏感信息的明文存储
软件故障模式 SFP23 暴露数据
+参考
[Ref-7] Michael Howard和David LeBlanc。“编写安全代码”。第9章,“保护秘密数据”第299页。第二版。Microsoft Press。2002-12-04。<https://www.microsoftpressstore.com/store/writing-secure-code-9780735617223>。
[Ref-62] Mark Dowd,John McDonald和Justin Schuh。“软件安全评估的艺术”。第2章,“加密的常见漏洞”,第43页。第一版。艾迪生·卫斯理。2006。
[Ref-172] Chris Wysopal。“移动应用顶级10列表”。2010-12-13。<http://www.veracode.com/blog/2010/12/mobile-app-top-10-list/>。
[Ref-1283]预言vedere实验室。“ OT:ICEFALF:“设计不安全”的遗产及其对认证和风险管理的影响”。2022-06-20。<https://www.forescout.com/resources/ot-icefall-report/>。
[Ref-1295] Wizcase。“超过80个美国市政当局的敏感信息,包括居民的个人数据,在大规模数据泄露中造成了脆弱的危害”。2021-07-20。<https://www.wizcase.com/blog/us-municipality-breach-report/>。
[Ref-1296] Jonathan Greig。“马萨诸塞州软件公司曝光的1,000 GB的地方政府数据”。2021-07-22。<https://www.zdnet.com/article/1000-gb-of-local-government-data-data-xend-by-massachusetts-software-company/>。
[Ref-1297]亚马逊。“ AWS基础安全最佳实践控制”。2022. <https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html>。URL验证:2022-10-11
[Ref-1299] Microsoft。“ Azure加密概述”。2022-08-18。<https://lealen.microsoft.com/en-us/azure/security/fundamentals/encryption-overview>。URL验证:2022-10-11
[Ref-1301] Google Cloud。“休息时默认加密”。2022-10-11。<https://cloud.google.com/docs/security/Encryption/Default-Encryption>。URL验证:2022-10-11
[Ref-1307] Internet安全中心。“ CIS Microsoft Azure基础基准版本1.5.0”。第3.2节。2022-08-16。<https://www.cisecurity.org/benchmark/azure>。URL验证:2023-01-19
[Ref-1310] Microsoft。“启用基础架构加密以进行双重加密数据”。2022-07-14。<https://lealen.microsoft.com/en-us/azure/storage/common/infrastructure-compryption-enable>。URL验证:2023-01-24
+内容历史记录
+提交
提交日期 提交者 组织
2006-07-19 plover
+修改
修改日期 修饰符 组织
2008-07-01 埃里克·达奇(Eric Dalci) 雪茄
更新的time_of_introduction
2008-09-08 CWE内容团队 MITER
更新的关系,分类_mappings
2009-01-12 CWE内容团队 MITER
更新的描述,名称
2010-02-16 CWE内容团队 MITER
更新的引用
2010-06-21 CWE内容团队 MITER
更新的关系
2011-06-01 CWE内容团队 MITER
更新的common_cconsquences
2012-05-11 CWE内容团队 MITER
更新的common_cessequences,expeplyative_examples,obsed_examples,参考,相关_ATTACK_PATTERNS,关系
2013-02-21 CWE内容团队 MITER
更新了适用的_platforms,参考
2013-07-17 CWE内容团队 MITER
更新的描述,关系,terminology_notes
2014-07-30 CWE内容团队 MITER
更新的示范_examples,关系,分类_mappings
2017-05-03 CWE内容团队 MITER
更新相关的_attack_patterns
2017-11-08 CWE内容团队 MITER
更新的模式_OF_INTRODUCTION,参考,关系
2018-01-23 CWE内容团队 MITER
更新的抽象,关系
2018-03-27 CWE内容团队 MITER
更新的引用,关系,类型
2019-06-20 CWE内容团队 MITER
更新的关系,类型
2020-02-24 CWE内容团队 MITER
更新了适用的_platforms,关系
2021-03-15 CWE内容团队 MITER
更新了示范_examples
2021-10-28 CWE内容团队 MITER
更新的关系
2022-10-13 CWE内容团队 MITER
更新已更新的适用_platforms,expeplative_examples,Description,obsoved_examples,entife_mitigations,参考
2023-01-31 CWE内容团队 MITER
更新了适用的_platforms,expepdive_examples,说明,参考,关系
+先前的输入名称
改变日期 先前的输入名称
2009-01-12 敏感信息的明文存储
提供更多信息 - 请选择其他过滤器。
页面最后更新:2023年1月31日