CWE-312:敏感信息的清除文本存储
查看自定义信息:
由于该信息存储在ClearText(即未加密的)中,因此攻击者可能会读取它。即使信息是以不可行的方式编码的,某些技术也可以确定正在使用哪种编码,然后解码信息。 当组织采用云服务时,攻击者可以更容易从Internet上任何地方访问数据。 在某些系统/环境(例如云)中,可能需要使用“双重加密”(在软件和硬件层上),并且开发人员可能完全负责这两层,而不是与更广泛的管理员共同责任系统/环境。
该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
与观点“研究概念”相关(CWE-1000)
与“软件开发”视图相关(CWE-699)
与“简化已发表漏洞的简化映射”(CWE-1003)相关的视图相关(CWE-1003)
与“建筑概念”(CWE-1008)有关
引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。
语言 班级:不是特定语言的(不确定的患病率) 技术 课程:云计算(不确定的患病率) 班级:ICS/OT(不确定的患病率) 课程:移动设备(不确定的患病率)
该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
示例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)。 虽然没有公开披露发现后如何保护数据,但可以考虑多个选项。
(好代码)
示例语言:其他
敏感信息本可以通过确保桶没有公开阅读访问权限来保护,例如,通过启用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
但是,在创建时未启用此服务下的空字符串,因为命令中未指定-RequireInfrastructureCencryptionguntiongention参数。 包括-RequireInFrastructurectryptryption参数解决了以下问题:
(好代码)
示例语言:壳
new -azStorageencryptionsCope -ResourceGroupName“ myResourceGroup” -accountName“ myStorageAccount” -encryptionsCopename testscope -sostorageencope -reqoreCencryptimption -requireInfrastructureCentureCendureCendureCendureCendureCendurecryptigntion
这产生了报告:
(结果)
示例语言:其他
ResourceGroupName:MyResourceGroup,StorageaccountName:mystorageaccount
在需要软件和硬件层加密的情况下(“双加密”),可以通过CLI或Portal启用Azure的基础结构加密设置。一个重要的说明是,在创建BLOB之后,无法启用或禁用基础架构硬件加密。此外,在BLOB创建中禁用了基础结构加密的默认值。
此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
术语
不同的人使用“ clearText”和“宣传”来表示同一件事:缺乏加密。但是,在密码学中,这些具有更精确的含义。明文是将其馈入密码算法之前的信息,包括已经被加密的文本。ClearText是任何未经加密的信息,尽管它可能是不容易被人类可读的编码形式(例如Base64编码)。
提供更多信息 - 请选择其他过滤器。
|
使用共同弱点枚举(CWE)和本网站的相关参考使用条款。CWE由美国国土安全部(DHS)网络安全和基础设施安全局(CISA),由国土安全系统工程和开发研究所(HSSEDI)由manbetx客户端首页(MITER)。版权所有©2006–2023,Miter Comanbetx客户端首页rporation。CWE,CWSS,CWRAF和CWE徽标是Miter Corporation的商标。manbetx客户端首页 |