CWE-312:敏感信息的清除文本存储
查看自定义信息:
由于该信息存储在ClearText(即未加密的)中,因此攻击者可能会读取它。即使信息是以不可行的方式编码的,某些技术也可以确定正在使用哪种编码,然后解码信息。 当组织采用云服务时,攻击者可以更容易从Internet上任何地方访问数据。 在某些系统/环境(例如云)中,可能需要使用“双重加密”(在软件和硬件层上),并且开发人员可能完全负责这两层,而不是与更广泛的管理员共同责任系统/环境。 ![]() ![]()
![]() ![]()
![]() ![]()
![]() ![]()
![]()
![]() 语言 班级:不是特定语言的(不确定的患病率) 技术 课程:云计算(不确定的患病率) 班级: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创建中禁用了基础结构加密的默认值。
![]()
术语
不同的人使用“ clearText”和“宣传”来表示同一件事:缺乏加密。但是,在密码学中,这些具有更精确的含义。明文是将其馈入密码算法之前的信息,包括已经被加密的文本。ClearText是任何未经加密的信息,尽管它可能是不容易被人类可读的编码形式(例如Base64编码)。
提供更多信息 - 请选择其他过滤器。
|
使用共同弱点枚举(CWE)和本网站的相关参考使用条款。CWE由美国国土安全部(DHS)网络安全和基础设施安全局(CISA),由国土安全系统工程和开发研究所(HSSEDI)由manbetx客户端首页(MITER)。版权所有©2006–2023,Miter Comanbetx客户端首页rporation。CWE,CWSS,CWRAF和CWE徽标是Miter Corporation的商标。manbetx客户端首页 |