CWE

常见的弱点枚举

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

2021 CWE最重要的硬件的弱点
CWE最危险的弱点
>CWE列表>查看片:cwe - 919:移动应用程序的弱点(4.9)
ID

CWE观点:移动应用程序的弱点

视图ID: 919
类型:隐式的
下载:小册子|CSV|XML
+客观的
CWE这个视图中的条目(片)通常出现在移动应用程序。
+过滤器
[/ Weakness_Catalog /缺陷/弱点。/ Applicable_Platforms /技术/ @Class = '移动']
+会员
自然 类型 ID 的名字
HasMember 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 200年 暴露敏感信息的未经授权的演员
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 250年 执行与不必要的特权
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 295年 不适当的证书验证
HasMember 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 297年 与主机不匹配不当的验证证书
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 312年 明文存储的敏感信息
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 319年 明文传输的敏感信息
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 359年 暴露私人个人信息未经授权的演员
HasMember 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 362年 使用共享资源与不当同步并发执行(“竞争条件”)
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 511年 逻辑/定时炸弹
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 602年 客户端执行服务器端安全
HasMember 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 672年 过期或释放后操作资源
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 772年 失踪后释放资源的有效寿命
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 798年 使用硬编码的凭证
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 920年 不当限制电力消耗
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 921年 存储的敏感数据没有访问控制机制
HasMember 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 925年 验证不当意图的广播接收器
HasMember 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 926年 不当的Android应用程序组件的出口
HasMember 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 927年 使用隐式意图敏感的通信
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 939年 不适当的授权方案在处理程序定义URL
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 940年 不当的验证源通信通道
HasMember 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 941年 在通信信道错误指定目的地
+查看指标
连续波在这个视图 总连续波
弱点 21 933年
类别 0 352年
的观点 0 47
21 1332年
+内容的历史
+提交
提交日期 提交者 组织
2013-05-29 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2020-02-24 CWE内容团队 主教法冠
更新View_Filter

视图组件

cwe - 312:明文存储的敏感信息

弱点ID: 312
抽象:基地
结构:简单的
视图定制的信息:
+描述
内的产品在明文存储敏感信息资源可能会访问另一个控制范围。
+扩展描述

因为信息存储在明文(即。,unencrypted), attackers could potentially read it. Even if the information is encoded in a way that is not human-readable, certain techniques could determine which encoding is being used, then decode the information.

数据迁移到云上,它可以被攻击者更容易从任何地方访问数据在互联网上。

+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 922年 不安全的存储敏感信息
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 311年 失踪的敏感数据的加密
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 313年 明文存储在文件或磁盘
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 314年 明文存储在注册表中
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 315年 明文存储敏感信息的Cookie
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 316年 明文存储敏感信息在内存中
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 317年 明文存储敏感信息的GUI
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 318年 明文存储敏感信息的可执行文件
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 199年 信息管理错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 311年 失踪的敏感数据的加密
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1013年 加密数据
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计 遗漏:这个弱点是由于缺少一个安全策略在体系结构和设计阶段。
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:云计算患病率(待定)

类:移动患病率(待定)

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

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

攻击者访问系统可以读取敏感信息存储在明文。
+示范例子

示例1

下面的代码片段将明文用户帐户ID存储在浏览器cookie。

(坏的代码)
例如语言:Java
响应。addCookie(新饼干(“userAccountID”, acctID);

因为帐户ID在明文,用户的账户信息暴露如果他们的电脑被攻击者。

示例2

这段代码将用户的登录信息写入cookie,这样用户不需要稍后再登录。

(坏的代码)
例如语言:PHP
函数persistLogin(用户名、密码美元){
$ data =数组(美元= >用户名“用户名”,“密码”= >美元密码);
setcookie(“用户数据”,元数据);
}

代码将用户的用户名和密码存储在cookie中明文用户的机器。这让用户的登录信息如果他们的电脑被攻击者。即使在不损害用户的机器,这个弱点结合跨站点脚本(cwe - 79)可能允许攻击者远程复制饼干。

也注意这个示例代码展示明文存储在一个Cookie (cwe - 315)。

示例3

下面的代码尝试建立连接、读取密码,然后将其存储到缓冲区。

(坏的代码)
例如语言:C
服务器。sin_family = AF_INET;惠普= gethostbyname (argv [1]);
如果(hp = = NULL)错误(“未知主机”);
memcpy ((char *)及服务器。惠普sin_addr (char *) - > h_addr,惠普- > h_length);
如果(命令行参数个数< 3)端口= 80;
其他端口=(无符号短)atoi (argv [3]);
服务器。sin_port = htons(港口);
如果(连接(袜子,(struct sockaddr *)及服务器,sizeof服务器)< 0)错误(“连接”);

在((n =读(袜子,缓冲区,BUFSIZE-1)) ! = 1) {

写(目前password_buffer n);

而成功,程序不加密数据写到缓冲区之前,可能暴露在未经授权的演员。

示例4

下面的例子展示的部分属性和配置文件为Java和ASP。网络应用程序。文件包含用户名和密码信息,但他们在明文存储。

这个Java示例显示了一个属性文件明文用户名/密码对。

(坏的代码)
例如语言:Java

# Java Web应用程序ResourceBundle属性文件

webapp.ldap.username = secretUsername
webapp.ldap.password = secretPassword

下面的例子展示了一个配置文件的一部分ASP。网络应用程序。这个配置文件包含连接到数据库的用户名和密码信息,但对存储在明文。

(坏的代码)
例如语言:ASP.NET

< connectionStrings >
<添加名称= connectionString =“ud_DEV connectDB = uDB;uid = db2admin;pwd =密码;dbalias = uDB; System.Data providerName =。Odbc " / >
< / connectionStrings >

用户名和密码信息不应包括在一个配置文件或一个属性文件明文这将允许任何人可以读取文件访问资源。如果可能的话,这个信息加密。

示例5

2022年,OT:冰崩研究调查了10个不同的操作技术(OT)供应商的产品。研究人员报道,56个漏洞,说产品是“不安全的设计”(ref - 1283]。如果这些漏洞利用,往往让对手改变产品运营,从拒绝服务改变产品执行的代码。因为这些产品经常被应用于行业,如电力、电气、水,和其他人,甚至会出现安全问题。

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

例子6

2021年,一个网站由PeopleGIS存储数据我们市在亚马逊网络服务(AWS)简单存储服务(S3)桶。

(坏的代码)
例如语言:其他
安全研究人员发现86 S3 bucket可以访问没有身份验证(cwe - 306)和存储数据加密(cwe - 312)。这些桶暴露超过1000 GB的数据和160万个文件包括物理地址、电话号码、税务文件,驾照的照片id等等。ref - 1296][ref - 1295]

虽然没有公开披露的数据是如何保护后发现,多种选择可以考虑。

(好的代码)
例如语言:其他
敏感信息可能已经被确保保护桶没有公共读访问,例如,通过启用s3-account-level-public-access-blocks-periodic规则阻止公共访问。此外,数据可能是加密静止S3使用适当的设置,例如,通过启用服务器端加密使用s3-bucket-server-side-encryption-enabled设置。其他设置可以进一步防止桶数据泄露。(ref - 1297]
+观察到的例子
参考 描述
远程终端装置(RTU)使用一个驱动程序依赖于存储在明文密码。
密码和用户名在明文存储在一个cookie
密码存储在明文文件的权限
聊天程序禁用SSL在某些情况下甚至当用户使用SSL说。
链:产品使用一个不正确的公共指数在生成一个RSA密钥,这有效地禁用加密
在数据库中存储加密的密码
在数据库中存储加密的密码
产品将明文的密码存储在内存中
存储的密钥明文在一个临时文件
SCADA产品使用HTTP基本身份验证,这是不加密的
登录凭证未加密存储在注册表键
明文凭证在公开的文件中。
在明文密码配置文件。
在明文密码配置文件。
解密消息的副本写入磁盘选项的组合,当用户回复一条加密的消息。
私有密钥和密码的明文存储在日志文件,当用户进口的关键。
管理密码明文的cookie。
默认配置在饼干有明文用户名/密码。
用户名/密码明文的饼干。
身份验证信息存储在cookie中明文。
+潜在的缓解措施

阶段:实施;系统配置;操作

云存储数据时(例如,S3 bucket, Azure blob、谷歌云存储,等等),使用提供者的控件来加密数据。(ref - 1297][ref - 1299][ref - 1301]
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 816年 OWASP十大2010类别A7 -不安全的加密存储
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 884年 CWE横截面
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 934年 OWASP十大2013类别A6 -暴露敏感数据
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 963年 SFP二级集群:公开数据
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1029年 OWASP十大2017类别A3 -暴露敏感数据
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1348年 OWASP 2021年十大类别A04:2021——不安全设计
+笔记

术语

不同的人使用“明文”和“明文”指的是同一件事:缺乏加密。然而,在密码学,这些更精确的含义。明文信息之前输入密码算法,包括already-encrypted文本。明文是未加密的任何信息,尽管它可能会在一个编码形式,不轻易人类可读的(比如base64编码)。
+分类法映射
映射分类名称 节点ID 适合 映射节点名
千鸟 明文存储的敏感信息
软件故障模式 SFP23 公开的数据
+引用
[REF-7]大卫迈克尔·霍华德和勒布朗。编写安全代码。第9章,299页“保护机密数据”。第二版。微软出版社。2002-12-04。<https://www.microsoftpressstore.com/store/writing -安全-代码- 9780735617223>。
(ref - 62)马克·多德约翰麦克唐纳和贾斯汀Schuh。“软件安全评估的艺术”。第二章,“常见的加密漏洞”,43页。1版。艾迪生卫斯理》2006。
Chris Wysopal [ref - 172]。“移动应用前10名名单”。2010-12-13。<http://www.veracode.com/blog/2010/12/mobile-app-top-10-list/>。
[ref - 1283] Forescout Vedere实验室。“OT:冰崩:遗留的“不安全的通过设计“认证和风险管理及其影响”。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)。地方政府“1000 GB的数据暴露于马萨诸塞州软件公司”。2021-07-22。<https://www.zdnet.com/article/1000-gb-of-local-government-data-exposed-by-massachusetts-software-company/>。
亚马逊(ref - 1297)。“AWS基础安全控制”的最佳实践。2022-10-11。2022年。<https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html>。
微软(ref - 1299)。“Azure加密概述”。2022-10-11。2022-08-18。<https://learn.microsoft.com/en-us/azure/security/fundamentals/encryption-overview>。
谷歌云(ref - 1301)。“默认加密在休息”。2022-10-11。2022-10-11。<https://cloud.google.com/docs/security/encryption/default-encryption>。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19 千鸟
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2009-01-12 CWE内容团队 主教法冠
更新描述、名称
2010-02-16 CWE内容团队 主教法冠
更新的引用
2010-06-21 CWE内容团队 主教法冠
更新的关系
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences
2012-05-11 CWE内容团队 主教法冠
更新Common_Consequences、Demonstrative_Examples Observed_Examples、引用Related_Attack_Patterns、人际关系
2013-02-21 CWE内容团队 主教法冠
更新Applicable_Platforms,引用
2013-07-17 CWE内容团队 主教法冠
更新描述关系,Terminology_Notes
2014-07-30 CWE内容团队 主教法冠
更新Demonstrative_Examples、关系、Taxonomy_Mappings
2017-05-03 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2017-11-08 CWE内容团队 主教法冠
更新Modes_of_Introduction、引用关系
2018-01-23 CWE内容团队 主教法冠
更新的抽象、人际关系
2018-03-27 CWE内容团队 主教法冠
更新引用、关系类型
2019-06-20 CWE内容团队 主教法冠
更新关系类型
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、人际关系
2021-03-15 CWE内容团队 主教法冠
更新Demonstrative_Examples
2021-10-28 CWE内容团队 主教法冠
更新的关系
2022-10-13 CWE内容团队 主教法冠
更新Applicable_Platforms Demonstrative_Examples,描述、Observed_Examples Potential_Mitigations,引用
+以前的条目名称
改变日期 以前的条目名称
2009-01-12 明文存储的敏感信息

cwe - 319:明文传输的敏感信息

弱点ID: 319
抽象:基地
结构:简单的
视图定制的信息:
+描述
明文的软件传输重要敏感或安全数据通信通道,可以嗅未经授权的演员。
+扩展描述
许多沟通渠道可以“嗅”,攻击者在数据传输。例如,网络流量通常可以闻任何攻击者访问网络接口。这会大大降低开发的难度由攻击者。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 311年 失踪的敏感数据的加密
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 5 J2EE错误配置:数据传输没有加密
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 614年 敏感的饼干在HTTPS会话没有“安全”属性
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 199年 信息管理错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 311年 失踪的敏感数据的加密
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1013年 加密数据
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计 遗漏:这个弱点是由于缺少一个安全策略在体系结构和设计阶段。
操作
系统配置
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

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

技术的影响:阅读应用程序数据;修改文件或目录

任何人都可以阅读该信息获取通道用于通信。
+利用的可能性
+示范例子

示例1

下面的代码试图建立一个连接一个网站敏感信息交流。

(坏的代码)
例如语言:Java
尝试{
URL u =新的URL (“http://www.secret.example.org/”);
HttpURLConnection胡= (HttpURLConnection) u.openConnection ();
hu.setRequestMethod (“”);
hu.connect ();
OutputStream os = hu.getOutputStream ();
hu.disconnect ();
}
抓住(IOException e) {

/ /……
}

虽然连接成功建立后,未加密的连接,可能是所有敏感数据发送或接收从服务器将读到意想不到的演员。

示例2

2022年,OT:冰崩研究调查了10个不同的操作技术(OT)供应商的产品。研究人员报道,56个漏洞,说产品是“不安全的设计”(ref - 1283]。如果这些漏洞利用,往往让对手改变产品运营,从拒绝服务改变产品执行的代码。因为这些产品经常被应用于行业,如电力、电气、水,和其他人,甚至会出现安全问题。

多个供应商使用明文传输的敏感信息的产品。

+观察到的例子
参考 描述
可编程序逻辑控制器(PLC)在明文发送敏感信息,包括密码和会话令牌。
构建控制器使用协议明文传递身份验证凭证。
可编程序逻辑控制器(PLC)在明文发送密码。
密码以明文传输图像。
链:使用HTTPS饼干没有“安全”国旗导致它在未加密的HTTP传输。
产品在明文发送密码散列违反政策。
远程管理功能发送敏感信息包括在明文密码。
备份程序发送密码明文的电子邮件。
产品传送河豚在明文加密密钥。
打印机发送配置信息,包括管理密码明文。
链:明文传输的MD5哈希密码允许容易重放攻击的服务器(cwe - 294)。
产品会以明文发送密码到日志服务器。
产品使用明文密码发送文件在邮件中用于诊断目的。
+潜在的缓解措施

阶段:体系结构和设计

加密的数据可靠传输之前加密方案。

实施阶段:

使用与SSL web应用程序时,使用SSL整个会话登录,注销,不仅对初始登录页面。

测试阶段:

使用工具和技术,需要手动(人类)的分析,如渗透测试、威胁建模和交互工具,允许测试人员记录和修改一个活跃的会话。这些可能是更有效的比严格的自动化技术。尤其如此弱点设计和相关的业务规则。

阶段:操作

将服务器配置为使用加密的通信渠道,其中可能包括SSL或其他安全协议。
+检测方法

黑盒

使用监控工具,检查软件的流程与操作系统交互和网络。这种技术的情况很有用的源代码不可用,如果软件并不是由你,或者如果你想验证构建阶段并没有引入任何新的弱点。例子包括调试器直接附加到正在运行的进程;系统调用跟踪实用程序,如桁架(Solaris)和strace (Linux);系统活动监视器如FileMon、RegMon、过程监控、和其他的Sysinternals工具(Windows);嗅探器和协议分析,监控网络流量。

把监控过程中,触发功能,发送数据,并寻找常见的加密函数的存在与否在调用树。监控网络和确定数据包包含可读命令。工具检测是否在使用特定的编码。如果交通包含高熵,这可能表明使用加密。

+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 751年 2009年前25 -安全组件之间的交互
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 818年 OWASP 2010年十大类别A9,传输层保护不足
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 858年 CERT甲骨文安全Java编码标准(2011)第十五章-序列化(SER)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 859年 CERT甲骨文安全Java编码标准(2011)第十六章-平台安全(SEC)
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 884年 CWE横截面
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 934年 OWASP十大2013类别A6 -暴露敏感数据
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 963年 SFP二级集群:公开数据
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1029年 OWASP十大2017类别A3 -暴露敏感数据
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1148年 SEI CERT甲骨文Java安全编码标准,准则14。序列化(SER)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1346年 OWASP十大2021类别A02:2021 -密码失败
+分类法映射
映射分类名称 节点ID 适合 映射节点名
千鸟 明文传输的敏感信息
CERT甲骨文安全Java编码标准(2011) SEC06-J 不依赖于默认提供的自动签名验证URLClassLoader java.util.jar
CERT甲骨文安全Java编码标准(2011) SER02-J 签署然后密封敏感对象在发送之前他们信任边界外
软件故障模式 SFP23 公开的数据
+引用
OWASP (ref - 271)。“2007年十大不安全的通信”。2007年。<http://www.owasp.org/index.php/Top_10_2007-A9>。
[REF-7]大卫迈克尔·霍华德和勒布朗。编写安全代码。第9章,299页“保护机密数据”。第二版。微软出版社。2002-12-04。<https://www.microsoftpressstore.com/store/writing -安全-代码- 9780735617223>。
迈克尔•霍华德(REF-44)大卫·勒布朗和Viega约翰。软件安全的“24宗罪”。“罪22:未能保护网络流量。”Page 337. McGraw-Hill. 2010.
Chris Wysopal [ref - 172]。“移动应用前10名名单”。2010-12-13。<http://www.veracode.com/blog/2010/12/mobile-app-top-10-list/>。
[ref - 1283] Forescout Vedere实验室。“OT:冰崩:遗留的“不安全的通过设计“认证和风险管理及其影响”。2022-06-20。<https://www.forescout.com/resources/ot-icefall-report/>。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19 千鸟
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2009-01-12 CWE内容团队 主教法冠
更新Common_Consequences、描述Likelihood_of_Exploit、名称、Observed_Examples Potential_Mitigations,引用关系
2009-03-10 CWE内容团队 主教法冠
更新Potential_Mitigations
2009-05-27 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2010-02-16 CWE内容团队 主教法冠
更新的引用
2010-04-05 CWE内容团队 主教法冠
更新Applicable_Platforms、Common_Consequences Time_of_Introduction
2010-06-21 CWE内容团队 主教法冠
更新Detection_Factors、人际关系
2010-12-13 CWE内容团队 主教法冠
更新Observed_Examples Related_Attack_Patterns
2011-03-29 CWE内容团队 主教法冠
更新Potential_Mitigations
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2012-05-11 CWE内容团队 主教法冠
更新Demonstrative_Examples、引用关系,Taxonomy_Mappings Related_Attack_Patterns
2013-02-21 CWE内容团队 主教法冠
更新Applicable_Platforms,引用
2013-07-17 CWE内容团队 主教法冠
更新的关系
2014-02-18 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2014-06-23 CWE内容团队 主教法冠
更新的关系
2014-07-30 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2017-05-03 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2017-11-08 CWE内容团队 主教法冠
更新Likelihood_of_Exploit Modes_of_Introduction、引用关系
2018-01-23 CWE内容团队 主教法冠
更新的抽象
2018-03-27 CWE内容团队 主教法冠
更新引用、关系类型
2019-01-03 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2019-06-20 CWE内容团队 主教法冠
更新关系类型
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms Related_Attack_Patterns,关系
2021-10-28 CWE内容团队 主教法冠
更新的关系
2022-06-28 CWE内容团队 主教法冠
更新的关系
2022-10-13 CWE内容团队 主教法冠
更新Applicable_Platforms Demonstrative_Examples Observed_Examples,引用
+以前的条目名称
改变日期 以前的条目名称
2009-01-12 明文传输的敏感信息

cwe - 602:客户端执行服务器端安全

弱点ID: 602
抽象:基地
结构:简单的
视图定制的信息:
+描述
产品由一个服务器,它依赖于客户端实现一个机制,旨在保护服务器。
+扩展描述
当服务器依赖保护机制放在客户端,攻击者可以修改客户端行为绕过保护机制,导致潜在的意想不到的客户端和服务器之间的交互。结果会有所不同,这取决于正试图保护的机制。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 支柱支柱——一个弱点是最抽象类型的弱点和代表一个主题类/基地/变体相关弱点。支柱是不同于一个类别作为支柱技术上仍然是一种弱点,描述了一个错误,而一个类别代表一个共同特征用于组相关的东西。 693年 保护机制失败
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 565年 依赖饼干没有验证和完整性检查
PeerOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 290年 认证绕过被欺骗
PeerOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 300年 通道由Non-Endpoint访问
PeerOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 836年 使用密码散列,而不是密码进行身份验证
CanPrecede 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 471年 修改Assumed-Immutable数据(服务员)
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1012年 交叉剪接
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计 委员会:这个弱点是指一个不正确的设计与架构相关的安全策略。
架构和设计 考虑一个产品,由两个或两个以上的进程或节点必须密切互动,比如一个客户机/服务器模型。如果产品使用保护方案在客户端为了保卫攻击服务器,服务器不使用相同的方案,那么攻击者可以修改客户的方式绕过了这些计划。这是一个基本的设计缺陷,主要是许多弱点。
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

技术的影响:旁路保护机制;DoS:崩溃,退出或重新启动

客户端验证检查很容易绕过,允许畸形或意想不到的输入传递到应用程序中,可能作为可信的数据。这可能会导致意想不到的状态、行为和可能导致崩溃。
访问控制

技术的影响:旁路保护机制;获得特权或假设的身份

客户端检查认证很容易绕过,允许客户升级他们的访问级别和执行意外操作。
+利用的可能性
媒介
+示范例子

示例1

这个例子包含客户端代码,检查如果用户身份验证成功之前发送一个命令。服务器端代码执行身份验证在一个步骤,并执行命令在一个单独的步骤。

客户端(client.pl)

(好的代码)
例如语言:Perl
美元服务器= " server.example.com ";
用户名=美元AskForUserName ();
密码=美元AskForPassword ();
$地址= AskForAddress ();
$袜子= OpenSocket(服务器1234美元);
writeSocket(美元的袜子,“身份验证用户名密码美元\ n”);
美元$ resp = readSocket(袜子);
如果($ resp eq“成功”){

#用户名/通过有效,继续更新信息!
writeSocket(美元的袜子,“改变地址用户名地址\ n”美元;
}
其他{
打印“错误:无效的认证! \ n”;
}

服务器端(server.pl):

(坏的代码)
$袜子= acceptSocket (1234);
(cmd美元,args) = ParseClientRequest($袜子);
如果(cmd eq美元“身份验证”){
(用户名,通过美元)=分裂(美元/ \ s + /参数,2);
结果=美元AuthenticateUser(用户名,通过美元);
writeSocket(美元的袜子,“\ n”美元);
#不关闭套接字失败;假设

#用户再试一次
}
elsif (cmd eq美元“改变地址”){
如果(validateAddress (args美元)){
(res = UpdateDatabaseRecord美元用户名、“地址”,args美元);
成功writeSocket(美元的袜子,“\ n”);
}
其他{
writeSocket(美元的袜子,“失败,地址是畸形\ n”);
}
}

服务器接受2命令,“身份验证”,对用户进行身份验证,和“改变地址”,更新地址字段的用户名。客户端执行身份验证,只有发送一个改变地址,用户如果认证成功。因为客户已经完成了认证,服务器假定改变地址的用户名是一样的经过身份验证的用户。攻击者可以修改客户端通过删除的代码发送“身份验证”命令,执行改变地址。

示例2

2022年,OT:冰崩研究调查了10个不同的操作技术(OT)供应商的产品。研究人员报道,56个漏洞,说产品是“不安全的设计”(ref - 1283]。如果这些漏洞利用,往往让对手改变产品运营,从拒绝服务改变产品执行的代码。因为这些产品经常被应用于行业,如电力、电气、水,和其他人,甚至会出现安全问题。

多个供应商使用客户端身份验证的产品。

+观察到的例子
参考 描述
SCADA系统只使用客户端身份验证,让对手模仿其他用户。
ASP程序允许上传的ASP文件绕过客户端检查。
隐写术产品嵌入载体文件中的密码信息,可以从修改后的客户。
隐写术产品嵌入载体文件中的密码信息,可以从修改后的客户。
客户端允许服务器修改客户端配置和覆盖任意文件。
+潜在的缓解措施

阶段:体系结构和设计

对于任何一个在客户端执行安全检查,确保这些检查重复的在服务器端。攻击者可以绕过客户端检查通过修改值后,检查执行,或通过改变客户端完全删除客户端检查。然后,这些修改的值将被提交到服务器。

即使客户端对服务器端安全检查提供最小的好处,他们仍然有用。首先,他们可以支持入侵检测。如果服务器接收输入,应该已经被客户拒绝,那么它可能是一个攻击的迹象。第二,客户端错误检查可以提供有用的反馈给用户预期的有效输入。第三,可能会有意外的服务器端处理时间的减少输入错误,虽然这通常是一个小的储蓄。

阶段:体系结构和设计

如果需要某种程度的信任在两个实体之间,然后使用完整性检查和强大的身份验证以确保输入来自可信来源。设计产品,使这种信任在一个集中的管理时尚,特别是如果有复杂或多种沟通渠道,为了减少风险,实现者将错误地忽略检查在一个代码路径。

测试阶段:

使用动态交互的工具和技术的软件使用大型测试套件和许多不同的输入,如模糊测试(起毛)健壮性测试和故障注入。软件的操作可能慢下来,但它不应该成为不稳定,崩溃,或者产生不正确的结果。

测试阶段:

使用工具和技术,需要手动(人类)的分析,如渗透测试、威胁建模和交互工具,允许测试人员记录和修改一个活跃的会话。这些可能是更有效的比严格的自动化技术。尤其如此弱点设计和相关的业务规则。
+弱点Ordinalities
Ordinality 描述
(其他弱点的弱点存在独立的)
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 722年 OWASP十大2004类别A1 -用户输入
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 753年 2009年前25 -多孔防御
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 884年 CWE横截面
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 975年 SFP二级集群:体系结构
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1348年 OWASP 2021年十大类别A04:2021——不安全设计
+分类法映射
映射分类名称 节点ID 适合 映射节点名
OWASP十大2004 A1 CWE更具体 用户输入
+引用
[REF-7]大卫迈克尔·霍华德和勒布朗。编写安全代码。23章,“客户端安全是一个矛盾的结合体”687页。第二版。微软出版社。2002-12-04。<https://www.microsoftpressstore.com/store/writing -安全-代码- 9780735617223>。
[ref - 1283] Forescout Vedere实验室。“OT:冰崩:遗留的“不安全的通过设计“认证和风险管理及其影响”。2022-06-20。<https://www.forescout.com/resources/ot-icefall-report/>。
+内容的历史
+提交
提交日期 提交者 组织
2007-05-07 CWE社区
CWE社区的成员提交的延长早期CWE版本
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新的关系,Other_Notes, Taxonomy_Mappings Weakness_Ordinalities
2009-01-12 CWE内容团队 主教法冠
更新Demonstrative_Examples、描述Likelihood_of_Exploit、名称、Observed_Examples, Other_Notes, Potential_Mitigations,关系,Research_Gaps Time_of_Introduction
2009-03-10 CWE内容团队 主教法冠
更新Potential_Mitigations
2009-05-27 CWE内容团队 主教法冠
更新Demonstrative_Examples
2009-07-27 CWE内容团队 主教法冠
更新Related_Attack_Patterns、人际关系
2009-10-29 CWE内容团队 主教法冠
更新Applicable_Platforms Common_Consequences,描述
2010-02-16 CWE内容团队 主教法冠
更新的引用
2010-04-05 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2010-12-13 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2011-03-29 CWE内容团队 主教法冠
更新的关系
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences
2012-05-11 CWE内容团队 主教法冠
更新的关系
2014-07-30 CWE内容团队 主教法冠
更新的关系
2017-05-03 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2017-11-08 CWE内容团队 主教法冠
更新Applicable_Platforms、Enabling_Factors_for_Exploitation Modes_of_Introduction、引用关系
2018-03-27 CWE内容团队 主教法冠
更新的引用
2019-06-20 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、人际关系
2021-10-28 CWE内容团队 主教法冠
更新的关系
2022-04-28 CWE内容团队 主教法冠
更新Research_Gaps
2022-10-13 CWE内容团队 主教法冠
更新Demonstrative_Examples、描述Observed_Examples、引用关系
+以前的条目名称
改变日期 以前的条目名称
2008-04-11 客户端执行服务器端安全
2009-01-12 违反设计原则:客户端执行服务器端安全

cwe - 362:并发执行和不当使用共享资源同步(“竞争条件”)

弱点ID: 362
抽象:
结构:简单的
视图定制的信息:
+描述
可以同时运行的程序包含一个代码序列与其他代码,和代码序列需要临时,独家访问共享资源,但存在一个时间窗口的共享资源可以被另一个代码序列是修改并发操作。
+扩展描述

预计这可能有安全隐患时,同步是重要的安全代码,记录用户是否进行验证或修改等重要状态信息,不应该受到一个局外人。

竞态条件发生在并发环境中,有效的代码序列的属性。根据上下文,一个代码序列可能形式的函数调用,少量的指令,一系列的程序调用,等等。

竞态条件违反了这些属性,这是密切相关的:

  • 排他性的代码序列给出独家访问共享资源,即。,no other code sequence can modify properties of the shared resource before the original sequence has completed execution.
  • 原子性的代码序列行为的原子,即。,no other thread or process can concurrently execute the same sequence of instructions (or a subset) against the same resource.

竞态条件存在时,一个“干扰代码序列”仍然可以访问共享资源,违反排他性。程序员可能认为某些代码序列执行太快干扰影响的代码序列;当他们不是,这违反了原子性。例如,单一的“x + +”声明可能出现原子在代码层,但实际上它是非原子在指令层,因为它涉及到阅读(x)的原始值,其次是计算(x + 1),紧随其后的是一个写(将结果保存到x)。

干扰代码序列可能是“可信的”或“不可信”。一个trusted interfering code sequence occurs within the program; it cannot be modified by the attacker, and it can only be invoked indirectly. An untrusted interfering code sequence can be authored directly by the attacker, and typically it is external to the vulnerable program.

+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 支柱支柱——一个弱点是最抽象类型的弱点和代表一个主题类/基地/变体相关弱点。支柱是不同于一个类别作为支柱技术上仍然是一种弱点,描述了一个错误,而一个类别代表一个共同特征用于组相关的东西。 691年 控制流管理不足
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 364年 信号处理器竞态条件
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 366年 在一个线程竞争条件
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 367年 Time-of-check分时(TOCTOU)竞态条件
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 368年 上下文切换竞态条件
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 421年 在访问备用通道竞态条件
ParentOf 复合组合——一个复合元素包含两个或两个以上不同的弱点,所有弱点必须出现在同一时间为了一个潜在的漏洞出现。删除任何缺点消除或大大降低了风险。一个弱点,X,可以“分解”组件弱点Y和z可以有弱点在哪些情况下可能不是必要的复合,但复合的性质变化时变成了弱点。 689年 在资源复制许可竞态条件
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1223年 写一次比赛条件属性
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1298年 硬件逻辑包含竞态条件
光束 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 662年 不同步
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 367年 Time-of-check分时(TOCTOU)竞态条件
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
实现
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

C(有时流行)

c++(有时流行)

Java(有时流行)

技术

类:移动患病率(待定)

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

技术的影响:DoS:资源消耗(CPU);DoS:资源消耗(内存);DoS:资源消耗(其他)

当一个竞态条件可以绕过一个资源清理例程或触发多个初始化例程,它可能导致资源枯竭cwe - 400)。
可用性

技术的影响:DoS:崩溃,退出或重新启动;DoS:不稳定

当一个竞态条件允许多个控制流同时访问一个资源,这可能导致程序(s)到意想不到的状态,可能导致崩溃。
保密
完整性

技术的影响:阅读文件或目录;读取应用程序数据

结合竞争条件时可预测的资源名和宽松的权限,可以对攻击者覆盖或访问机密数据(CWE-59)。
+利用的可能性
媒介
+示范例子

示例1

这段代码可以用在电子商务应用程序支持账户之间的转账。需要转移的总量,将它发送到新的账户,从原来的账户扣除的金额。

(坏的代码)
例如语言:Perl
$ transfer_amount = GetTransferAmount ();
美元资产= GetBalanceFromDatabase ();

如果(transfer_amount < 0美元){
FatalError(“坏转移金额”);
}
美元newbalance =资产- transfer_amount美元;
如果((平衡- transfer_amount美元)< 0){
FatalError(“资金不足”);
}
SendNewBalanceToDatabase ($ newbalance);
NotifyUser(“转移transfer_amount美元成功。”);
NotifyUser(“新的平衡:$ newbalance”);

之间的竞争条件可能发生调用GetBalanceFromDatabase()和SendNewBalanceToDatabase ()。

100.00假设最初的平衡。攻击可以构造如下:

(攻击代码)
例如语言:其他
下面的伪代码,攻击者使两个同步调用的程序,CALLER-1 caller 2。调用者都是同样的用户帐户。
CALLER-1(攻击者)与规划1(实例处理CALLER-1)。caller 2与项目二相关联。
CALLER-1让80.00的转会申请。
规划1调用GetBalanceFromDatabase和设置平衡至100.00美元
规划1计算newbalance为20.00美元,然后调用SendNewBalanceToDatabase ()。
由于服务器负载很高,规划1调用SendNewBalanceToDatabase()遇到一个延迟。
caller 2让1.00的转会申请。
项目二调用GetBalanceFromDatabase()并设置平衡至100.00美元。这是因为之前的规划1请求尚未处理。
99.00项目二决定了新的平衡。
在最初的延迟之后,规划1提交其资产到数据库,设置为20.00。
项目二发送一个请求来更新数据库,设置平衡至99.00

在这个阶段,攻击者应该有一个平衡的19.00(由于价值81.00的转移),但平衡是99.00,记录在数据库中。

防止这一弱点,程序员有几个选项,包括使用一个锁来防止多个并发请求到web应用程序,或使用同步机制,包括所有的代码之间GetBalanceFromDatabase()和SendNewBalanceToDatabase ()。

示例2

以下函数试图获得一个锁,以执行操作在一个共享资源。

(坏的代码)
例如语言:C
空白f (pthread_mutex_t *互斥){
pthread_mutex_lock(互斥);

/ * * /访问共享资源


pthread_mutex_unlock(互斥);
}

然而,代码不检查pthread_mutex_lock()返回的值的错误。如果pthread_mutex_lock()由于任何原因无法获得互斥锁,功能可能引入竞争条件和导致未定义行为的程序。

为了避免数据竞争,正确的写程序必须检查的结果线程同步功能和妥善处理所有错误,通过试图恢复他们或报告他们更高的水平。

(好的代码)
例如语言:C
int f (pthread_mutex_t *互斥){
int结果;

结果= pthread_mutex_lock(互斥);
如果(0 ! =结果)
返回结果;


/ * * /访问共享资源


返回pthread_mutex_unlock(互斥);
}

示例3

假设一个处理器的内存管理单元(MMU)有5个其他影子MMU分配它的各种核心的工作负载。每个MMU的起始地址和结束地址访问内存。任何时候这个访问范围内变化(根据处理器的引导地位),主要的MMU的影子MMU发送更新消息。

假设互连结构不优先考虑这样的“更新”包比其他一般的流量包。这引入了竞争条件。如果攻击者可以用足够的信息,以便洪水目标的攻击数据包达到目标之前,新的访问范围更新,那么攻击者可以利用这个场景。

+观察到的例子
参考 描述
去申请云管理创建一个人人可写的sudoers文件,允许本地攻击者注入sudo规则和升级特权根夺冠的条件。
链:不当锁(cwe - 667)会导致竞态条件(cwe - 362),利用每中钢协KEV在野外。
链:移动平台竞争条件(cwe - 362)导致use-after-free (cwe - 416),利用每中钢协KEV在野外。
链:竞态条件(cwe - 362)导致use-after-free (cwe - 416),利用每中钢协KEV在野外。
链:JTAG接口不是残疾(cwe - 1191ROM代码执行期间),引入竞争条件(cwe - 362)提取加密密钥
链:竞态条件(cwe - 362在反恶意软件产品允许删除文件通过创建一个连接(cwe - 1386),期间使用硬链接的时间窗口创建和删除临时文件。
TOCTOU沙箱过程中允许安装不可信的浏览器附加组件的替换一个文件后验证,但之前执行
链:芯片组竞态条件(cwe - 362),当一个中断处理程序检测到一个试图允许写入BIOS(违反锁位),当处理程序重置允许写入位回0,允许攻击者问题BIOS写在时间窗口(ref - 1237]。
竞态条件导致崩溃通过调用钩子清除过程而其他活动都发生在同一时间。
链:time-of-check时段(TOCTOU)竞态条件程序允许旁路保护机制,旨在防止符号链接攻击。
链:time-of-check时段(TOCTOU)竞态条件程序允许旁路保护机制,旨在防止符号链接攻击。
同步缓存操作使竞争条件,导致消息被发送到一个分配对象。
在初始化期间竞态条件引发缓冲区溢出。
守护进程崩溃迅速执行操作和毁灭他们,最终导致手术不获得锁。
链:竞争条件触发NULL指针
竞争条件在库函数可能会导致数据被发送到错误的过程。
竞争条件在堆文件解析器会导致腐败。
链:竞争条件允许攻击者访问对象虽然仍被初始化,导致软件访问未初始化的内存。
链:竞争条件的参数值,可能导致零废弃
链:竞争条件可能允许发布资源前操作,导致零废弃
链:信号处理程序包含太多的功能(cwe - 828),引入竞争条件(cwe - 362),导致双重自由(cwe - 415)。
+潜在的缓解措施

阶段:体系结构和设计

在支持它的语言,使用同步原语。只有将这些在关键代码尽量减少对性能的影响。

阶段:体系结构和设计

使用线程安全的功能,比如数据访问抽象在春天。

阶段:体系结构和设计

减少使用共享资源,从而消除尽可能多的复杂控制流和减少意外情况的发生的可能性。

此外,这将减少同步的必要,甚至可能有助于减少的可能性的拒绝服务攻击者可能会多次触发一个临界段(cwe - 400)。

实施阶段:

使用多线程和操作共享变量时,只使用线程安全的功能。

实施阶段:

使用共享变量的原子操作。警惕看上去无害的结构如“x + +”。这可能出现在代码层原子,但它实际上是非原子在指令层,因为它涉及到阅读,后跟一个计算,然后再写。

实施阶段:

使用互斥锁如果可用,但是一定要避免等相关不足cwe - 412

实施阶段:

避免双重检查锁定(cwe - 609)和其他实现错误当试图避免出现同步的开销。

实施阶段:

禁用中断或信号在代码的关键部分,也是确保代码没有进入一个大型或无限循环。

实施阶段:

使用volatile类型修饰符为关键变量来避免意外的编译器优化或重新排序。这并不一定解决同步问题,但它可以帮助。

阶段:体系结构和设计;操作

策略:环境硬化

使用所需的最低特权运行您的代码来完成必要的任务(ref - 76]。如果可能的话,创建独立帐户权限有限,只用于一个任务。这样,一个成功的攻击不会立即给攻击者访问其他软件或其环境。例如,数据库应用程序很少需要作为数据库管理员运行,特别是在日常操作。
+检测方法

黑盒

黑盒方法可以确定竞态条件的证据,通过多个并发连接等方法,这可能会导致软件不稳定或崩溃。然而,竞争条件非常狭窄的时间窗口不会被检测到。

白盒子

常见的习语在白盒分析检测,如time-of-check-time-of-use (TOCTOU)文件操作(cwe - 367双重检查锁定),或(cwe - 609)。

自动动态分析

这个弱点能被探测到的使用动态交互的工具和技术的软件使用大型测试套件和许多不同的输入,如模糊测试(起毛)健壮性测试和故障注入。软件的操作可能慢下来,但它不应该成为不稳定,崩溃,或者产生不正确的结果。

竞态条件可以检测到压力测试通过调用软件同时从大量的线程或进程,并寻找任何意想不到的行为的证据。

插入断点或延迟相关代码语句之间人为地扩大竞争窗口,这样会更容易被发现。

有效性:温和

自动静态分析——二进制或字节码

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 字节码的弱点分析,包括反汇编程序+源代码弱点分析
成本有效的部分报道:
  • 二进制弱点分析,包括反汇编程序+源代码弱点分析

有效性:高

动态分析与自动化的结果解释

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • Web应用程序扫描
  • Web服务的扫描仪
  • 数据库扫描仪

有效性:飙升部分

动态分析与人工解释结果

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 基于框架Fuzzer
成本有效的部分报道:
  • 模糊测试
  • 监控虚拟环境——在沙箱中运行潜在的恶意代码/包装/虚拟机,看看它任何可疑的

有效性:高

人工静态分析源代码

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 手工源代码审查(不检查)
成本有效的部分报道:
  • 关注人工抽查,手动分析来源

有效性:高

自动静态分析源代码

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 源代码缺陷分析仪
  • Context-configured源代码分析器

有效性:高

体系结构或设计审查

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 正式的方法/ Correct-By-Construction
成本有效的部分报道:
  • 检验(IEEE 1028标准)(适用于需求、设计、源代码,等等)。

有效性:高

+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 635年 最初使用的弱点NVD从2008年到2016年
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 743年 CERT C安全编码标准(2008)第十章-输入输出(FIO)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 751年 2009年前25 -安全组件之间的交互
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 801年 2010年前25 -安全组件之间的交互
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 852年 CERT甲骨文安全Java编码标准(2011)第9章-可见性和原子性(VNA)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 867年 2011年处于25 -弱点
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 877年 CERT c++安全编码部分09 -输入输出(FIO)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 882年 CERT c++安全编码部分14 -并发(CON)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 988年 SFP二级集群:竞争条件窗口
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1003年 弱点简化映射的漏洞发布
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1142年 SEI CERT甲骨文Java安全编码标准——08年指导方针。可见性和原子性(VNA)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1376年 集成电路工程(建筑/部署):在调试安全缺口
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1387年 2022 CWE最危险软件的弱点的弱点
+笔记

研究的差距

超和竞争条件在web应用程序可能低报。然而,在2008年在这一领域有越来越感兴趣。

研究的差距

的竞态条件研究的重点一直在Time-of-check时段(TOCTOU)变体(cwe - 367),但许多相关竞态条件不一定需要time-of-check同步问题。

研究的差距

从分类/分类的角度来看,并发性和程序状态之间的关系需要进一步调查,并组织相关问题可能是有用的。

维护

竞态条件之间的关系和同步问题(cwe - 662)需要进一步发展。他们不一定是两个观点相同的核心概念,自同步是避免竞态条件,只有一个技术和同步可以用于其他目的除了预防竞态条件。
+分类法映射
映射分类名称 节点ID 适合 映射节点名
千鸟 竞态条件
CERT甲骨文安全Java编码标准(2011) VNA03-J 不要认为一群原子是调用独立原子方法
+引用
迈克尔•霍华德(REF-44)大卫·勒布朗和Viega约翰。软件安全的“24宗罪”。“罪13:竞争条件”。Page 205. McGraw-Hill. 2010.
(ref - 349)安德烈Alexandrescu。“不稳定——多线程程序员最好的朋友”。象博士。2008-02-01。<http://www.ddj.com/cpp/184403766>。
[ref - 350]史蒂文Devijver。“线程安全的webapps使用Spring”。<http://www.javalobby.org/articles/thread-safe/index.jsp>。
[ref - 351]大卫·惠勒。“避免竞态条件”。2007-10-04。<http://www.ibm.com/developerworks/library/l-sprace.html>。
马特(ref - 352)主教。“竞争条件、文件和安全漏洞;乌龟和兔子回来的。”1995 - 09年。<http://www.cs.ucdavis.edu/research/tech reports/1995/cse - 95 - 9. - pdf>。
[ref - 353]大卫·惠勒。“安全编程Linux和Unix HOWTO”。2003-03-03。<http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/avoid-race.html>。
(ref - 354)布雷克瓦。“发现和利用命名管道安全漏洞玩的和利润”。2002 - 04。<http://www.blakewatts.com/namedpipepaper.html>。
[ref - 355]罗伯特Paleari,大卫。马伦,达尼洛Bruschi Mattia Monga。“种族漏洞在Web应用程序中”。<http://security.dico.unimi.it/罗伯托/酒吧/ dimva08-web.pdf>。
[ref - 356]“避免竞态条件和不安全的文件操作”。苹果开发者联系。<http://developer.apple.com/documentation/Security/Conceptual/SecureCodingGuide/Articles/RaceConditions.html>。
[ref - 357]约翰内斯·乌尔里希。“前25系列——排名25 -竞争条件”。无软件安全研究所。2010-03-26。<http://blogs.sans.org/appsecstreetfighter/2010/03/26/top-25-series-rank-25-race-conditions/>。
(ref - 76)肖恩·巴纳姆和迈克尔Gegick。“最小特权”。2005-09-14。<https://www.cisa.gov/uscert/bsi/articles/knowledge/principles/least-privilege>。
(ref - 1237) CERT协调中心。“英特尔BIOS锁定机制包含竞态条件,使写保护分流”。2015-01-05。<https://www.kb.cert.org/vuls/id/766164/>。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19 千鸟
+贡献
贡献的日期 贡献者 组织
2010-04-30 马丁Sebor 思科系统公司
提供示范例子
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2008-10-14 CWE内容团队 主教法冠
更新的关系
2008-11-24 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2009-01-12 CWE内容团队 主教法冠
更新Applicable_Platforms、Common_Consequences Demonstrative_Examples、描述Likelihood_of_Exploit, Maintenance_Notes, Observed_Examples, Potential_Mitigations,引用关系,Research_Gaps
2009-03-10 CWE内容团队 主教法冠
更新Demonstrative_Examples Potential_Mitigations
2009-05-27 CWE内容团队 主教法冠
更新的关系
2010-02-16 CWE内容团队 主教法冠
更新Detection_Factors、引用关系
2010-06-21 CWE内容团队 主教法冠
更新Common_Consequences、Demonstrative_Examples Detection_Factors Potential_Mitigations,引用
2010-09-27 CWE内容团队 主教法冠
更新Observed_Examples Potential_Mitigations,关系
2010-12-13 CWE内容团队 主教法冠
Applicable_Platforms更新,Demonstrative_Examples、描述、名称、Potential_Mitigations、人际关系
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2011-06-27 CWE内容团队 主教法冠
更新的关系
2011-09-13 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2012-05-11 CWE内容团队 主教法冠
更新Potential_Mitigations、引用关系
2014-07-30 CWE内容团队 主教法冠
更新Detection_Factors、人际关系
2015-12-07 CWE内容团队 主教法冠
更新的关系
2017-11-08 CWE内容团队 主教法冠
更新Demonstrative_Examples、引用Research_Gaps Taxonomy_Mappings
2019-01-03 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2019-06-20 CWE内容团队 主教法冠
更新的关系
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms Demonstrative_Examples Observed_Examples,关系
2020-08-20 CWE内容团队 主教法冠
更新的关系
2021-03-15 CWE内容团队 主教法冠
更新Demonstrative_Examples
2021-10-28 CWE内容团队 主教法冠
更新Observed_Examples,引用
2022-04-28 CWE内容团队 主教法冠
更新Observed_Examples、人际关系
2022-06-28 CWE内容团队 主教法冠
更新Observed_Examples、人际关系
2022-10-13 CWE内容团队 主教法冠
更新Observed_Examples,引用
+以前的条目名称
改变日期 以前的条目名称
2008-04-11 竞态条件
2010-12-13 竞态条件

cwe - 250:执行与不必要的特权

弱点ID: 250
抽象:基地
结构:简单的
视图定制的信息:
+描述
软件执行一个操作在一个特权级别高于所需的最低水平,这创造了新的弱点或者其他弱点放大的后果。
+扩展描述

新的弱点暴露,因为使用额外的特权,如根或管理员,可以禁用正常安全检查被执行的操作系统或周围的环境。其他已存在的弱点可以变成安全漏洞,如果他们出现在操作提高特权。

权限管理功能可以在一些不那么显而易见的行为方式,他们有不同的特性在不同的平台上。如果你是这些矛盾尤其明显转变从一个非根用户到另一个地方。信号处理程序,并催生了进程运行在过程拥有的特权,如果作为根用户运行过程执行信号火灾或子流程时,信号处理器或子流程将使用root特权操作。

+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 269年 权限管理不当
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 657年 违反安全的设计原则
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 265年 权限的问题
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1015年 限制访问
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
实现

实现:造成这一弱点在建筑安全策略的实施。

安装
架构和设计

如果一个应用程序设计问题,那么它可以开发人员更容易使履约相关错误等cwe - 271(特权下降/降低错误)。此外,特权的后果链接(cwe - 268)会变得更严重。

操作
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

技术的影响:获得特权或假设的身份;执行未经授权的代码或命令;阅读应用程序数据;DoS:崩溃,退出或重新启动

攻击者可以访问任何资源所允许的额外的特权。常见的结果包括执行代码,禁用服务,和阅读限制数据。
+利用的可能性
媒介
+示范例子

示例1

这段代码暂时提高了程序的权限允许用户创建一个新的文件夹。

(坏的代码)
例如语言:Python
def makeNewUserDir(用户名):
如果invalidUsername(用户名):

#避免CWE-22cwe - 78
print(用户名不能包含无效字符)
返回假

试一试:
raisePrivileges ()
操作系统。mkdir (“/ home /”+用户名)
lowerPrivileges ()

除了OSError:
打印('无法为用户创造新的用户目录:“+用户名)
返回假

还真

在程序仅提高特权级别创建文件夹并立即再次降低,如果调用os.mkdir()抛出一个异常,调用lowerPrivileges()将不会发生。结果,计划无限期地在凸起的特权经营状态,可能导致出现进一步的开发。

示例2

下面的代码调用chroot()来限制应用程序下面的文件系统的一个子集APP_HOME为了阻止攻击者使用程序未经授权地访问文件位于其他位置。由用户指定的代码然后打开一个文件和过程文件的内容。

(坏的代码)
例如语言:C
chroot (APP_HOME);
目录(“/”);
文件*数据= fopen (argv [1],“r +”);

限制应用程序的主目录内的过程在打开任何文件之前是一个宝贵的安全措施。然而,没有调用setuid()和一些非零值意味着应用程序继续与不必要的root特权操作。任何成功的利用由攻击者对应用程序现在可以导致特权升级攻击因为任何恶意操作将超级用户的权限执行。如果应用程序的特权级别滴一个非根用户,潜在的损失明显减少。

示例3

这个应用程序将使用用户的位置来确定用户的时区:

(坏的代码)
例如语言:Java
locationClient = new locationClient(这个,这个,这个);
locationClient.connect ();
userCurrLocation位置;
userCurrLocation = locationClient.getLastLocation ();
setTimeZone (userCurrLocation);

这是不必要的使用位置的API,这些信息已经可以使用Android API。总是一定没有的另一种方式获得需要的信息在诉诸使用位置API。

示例4

这段代码使用位置来确定用户的当前我们国家的位置。

首先应用程序必须声明,它需要在应用程序的manifest.xml ACCESS_FINE_LOCATION许可:

(坏的代码)
例如语言:XML
< uses-permission android: name = " android.permission.ACCESS_FINE_LOCATION " / >

在执行期间,调用getLastLocation()将返回一个基于位置的应用程序的位置的权限。在这种情况下,应用程序允许最准确的位置:

(坏的代码)
例如语言:Java
locationClient = new locationClient(这个,这个,这个);
locationClient.connect ();
userCurrLocation位置;
userCurrLocation = locationClient.getLastLocation ();
deriveStateFromCoords (userCurrLocation);

当应用程序需要这些信息,它不需要使用ACCESS_FINE_LOCATION许可,随着ACCESS_COARSE_LOCATION许可足以识别哪些我们国家的用户。

+观察到的例子
参考 描述
某些操作系统上的FTP客户端程序运行setuid特权和缓冲区溢出。大多数客户不需要额外的特权,所以一个溢出为这些客户不是一个漏洞。
程序运行在特权和调用另一个程序使用相同的特权,它允许读取任意文件。
操作系统错误与setuid特权安装一个程序,允许用户获得特权。
复合材料:高特权运行的应用程序(cwe - 250)允许用户指定一个限制文件过程中,会生成一个解析错误,泄漏文件的内容(cwe - 209)。
程序也不删除权限调用另一个程序之前,允许代码执行。
setuid root程序允许通过命令行参数创建任意文件。
安装脚本安装一些程序setuid时不应该。
邮件程序作为根用户运行但不放弃特权之前试图访问一个文件。攻击者可以使用一个符号链接的主目录根目录只可读,然后确定该文件是否存在基于响应。
+潜在的缓解措施

阶段:体系结构和设计;操作

策略:环境硬化

使用所需的最低特权运行您的代码来完成必要的任务(ref - 76]。如果可能的话,创建独立帐户权限有限,只用于一个任务。这样,一个成功的攻击不会立即给攻击者访问其他软件或其环境。例如,数据库应用程序很少需要作为数据库管理员运行,特别是在日常操作。

阶段:体系结构和设计

策略:分离的特权

识别功能,需要额外的特权,比如访问特权操作系统资源。包装和集中这个功能如果可能的话,和隔离特权的代码尽可能从其他代码ref - 76]。尽可能晚地提高特权,尽快来避免cwe - 271。避免的缺点,如cwe - 288cwe - 420通过保护所有可能的沟通渠道,与特权的代码交互,如第二套接字,只是为了被管理员访问。

阶段:体系结构和设计

策略:减少攻击表面

识别功能,需要额外的特权,比如访问特权操作系统资源。包装和集中这个功能如果可能的话,和隔离特权的代码尽可能从其他代码ref - 76]。尽可能晚地提高特权,尽快来避免cwe - 271。避免的缺点,如cwe - 288cwe - 420通过保护所有可能的沟通渠道,与特权的代码交互,如第二套接字,只是为了被管理员访问。

实施阶段:

执行广泛的输入验证任何特权的代码必须暴露给用户并拒绝任何不适合您的严格要求。

实施阶段:

当放弃特权,确保他们已经成功地避免下降cwe - 273。保护机制的环境变得更强壮,privilege-dropping调用可能会失败,即使它似乎他们总是成功。

实施阶段:

如果环境迫使你运行额外的特权,然后确定必要的最低访问级别。首先识别软件的不同的权限和用户需要执行他们的行为,如文件读写权限,网络套接字权限,等等。然后明确允许这些行为而否定一切ref - 76]。执行广泛的输入验证和规范化引入一个单独的漏洞的可能性降到最低。这种缓解比放弃更容易出错的特权。

阶段:操作;系统配置

策略:环境硬化

确保联邦核心配置桌面下的软件运行正常(FDCC) [ref - 199或一个等价的硬化配置指南,许多组织使用限制部署软件的攻击表面和潜在风险。
+检测方法

手动分析

这个弱点可以检测使用的工具和技术,需要手动(人类)的分析,如渗透测试、威胁建模和交互工具,允许测试人员记录和修改一个活跃的会话。
注意:这些可能是更有效的比严格的自动化技术。尤其如此弱点设计和相关的业务规则。

黑盒

使用监控工具,检查软件的流程与操作系统交互和网络。这种技术的情况很有用的源代码不可用,如果软件并不是由你,或者如果你想验证构建阶段并没有引入任何新的弱点。例子包括调试器直接附加到正在运行的进程;系统调用跟踪实用程序,如桁架(Solaris)和strace (Linux);系统活动监视器如FileMon、RegMon、过程监控、和其他的Sysinternals工具(Windows);嗅探器和协议分析,监控网络流量。

把监控和执行登录过程。寻找库函数和系统调用表明当特权被提高或下降。寻找资源的访问限制普通用户。

注意:注意,这种技术只适用于特权与系统资源有关的问题。它不可能检测应用程序级业务规则相关的特权,例如如果一个博客系统允许用户删除一个博客条目没有首先检查用户拥有管理员权限。

自动静态分析——二进制或字节码

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 比较二进制/字节码应用程序权限清单
成本有效的部分报道:
  • 字节码的弱点分析,包括反汇编程序+源代码弱点分析
  • 二进制弱点分析,包括反汇编程序+源代码弱点分析

有效性:高

人工静态分析——二进制或字节码

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 二进制/字节码反汇编程序,然后使用手动分析缺陷和异常

有效性:飙升部分

动态分析与自动化的结果解释

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 基于主机的漏洞扫描器,检查配置缺陷,验证审计机制工作,确保主机配置满足特定的预定义的标准

有效性:飙升部分

动态分析与人工解释结果

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 扫描仪主机应用程序接口

有效性:飙升部分

人工静态分析源代码

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 手工源代码审查(不检查)
成本有效的部分报道:
  • 关注人工抽查,手动分析来源

有效性:高

自动静态分析源代码

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 源代码缺陷分析仪
  • Context-configured源代码分析器

有效性:飙升部分

自动静态分析

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 配置检查
  • 许可清单分析

有效性:飙升部分

体系结构或设计审查

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 检验(IEEE 1028标准)(适用于需求、设计、源代码,等等)。
  • 正式的方法/ Correct-By-Construction
成本有效的部分报道:
  • 攻击建模

有效性:高

+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 227年 7 pk - API滥用
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 753年 2009年前25 -多孔防御
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 815年 OWASP十大2010类别A6 -安全错误配置
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 858年 CERT甲骨文安全Java编码标准(2011)第十五章-序列化(SER)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 866年 2011年前25 -多孔防御
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 884年 CWE横截面
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 901年 SFP主要集群:特权
+笔记

的关系

有密切联系cwe - 653(足够的特权分离)。cwe - 653是关于提供单独的组件为每个特权;cwe - 250是确保每个组件都有最少的特权。

维护

cwe - 271,cwe - 272,cwe - 250都是密切相关的,可能是重叠的。cwe - 271可能是更适合作为一个范畴。这两个cwe - 272cwe - 250在活跃的社区使用。“最小特权”词有多种解释。
+分类法映射
映射分类名称 节点ID 适合 映射节点名
7有害的王国 经常滥用:特权的管理
CERT甲骨文安全Java编码标准(2011) SER09-J 最小化特权反序列化之前从特权上下文
+引用
卡特里娜REF-6 Tsipenyuk,布莱恩象棋和加里·麦克格劳博士。“七有害的王国:分类软件安全错误”。NIST研讨会软件安全保障技术和度量工具。NIST的。2005-11-07。<https://samate.nist.gov/SSATTM_Content/papers/Seven%20Pernicious%20Kingdoms%20-%20Taxonomy%20of%20Sw%20Security%20Errors%20-%20Tsipenyuk%20-%20Chess%20-%20McGraw.pdf>。
[ref - 196]杰罗姆·h·萨尔兹和迈克尔·d·施罗德。“保护信息在计算机系统”。IEEE 63的程序。1975 - 09年。<http://web.mit.edu/Saltzer/www/publications/protection/>。
(ref - 76)肖恩·巴纳姆和迈克尔Gegick。“最小特权”。2005-09-14。<https://www.cisa.gov/uscert/bsi/articles/knowledge/principles/least-privilege>。
[REF-7]大卫迈克尔·霍华德和勒布朗。编写安全代码。第七章,207页“使用最小特权”。第二版。微软出版社。2002-12-04。<https://www.microsoftpressstore.com/store/writing -安全-代码- 9780735617223>。
(ref - 199)国家标准。“联邦桌面核心配置”。<http://nvd.nist.gov/fdcc/index.cfm>。
迈克尔•霍华德(REF-44)大卫·勒布朗和Viega约翰。软件安全的“24宗罪”。“罪16:执行代码太多的特权。”Page 243. McGraw-Hill. 2010.
(ref - 62)马克·多德约翰麦克唐纳和贾斯汀Schuh。“软件安全评估的艺术”。第9章,“特权漏洞”,477页。1版。艾迪生卫斯理》2006。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19 7有害的王国
+修改
修改日期 修饰符 组织
2008-09-08 CWE内容团队 主教法冠
更新描述、Modes_of_Introduction关系、Other_Notes Relationship_Notes Taxonomy_Mappings
2008-10-14 CWE内容团队 主教法冠
更新描述,Maintenance_Notes
2009-01-12 CWE内容团队 主教法冠
更新Common_Consequences、描述Likelihood_of_Exploit Maintenance_Notes,名字,Observed_Examples, Other_Notes, Potential_Mitigations,关系,Time_of_Introduction
2009-03-10 CWE内容团队 主教法冠
更新Potential_Mitigations
2009-05-27 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2010-02-16 CWE内容团队 主教法冠
更新Detection_Factors Potential_Mitigations,引用
2010-06-21 CWE内容团队 主教法冠
更新Detection_Factors Potential_Mitigations
2011-03-29 CWE内容团队 主教法冠
更新的关系
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2011-06-27 CWE内容团队 主教法冠
更新Demonstrative_Examples、人际关系
2011-09-13 CWE内容团队 主教法冠
更新Potential_Mitigations、引用关系
2012-05-11 CWE内容团队 主教法冠
更新引用Related_Attack_Patterns、人际关系
2012-10-30 CWE内容团队 主教法冠
更新Potential_Mitigations
2013-07-17 CWE内容团队 主教法冠
更新Applicable_Platforms
2014-02-18 CWE内容团队 主教法冠
更新Demonstrative_Examples
2014-07-30 CWE内容团队 主教法冠
更新Detection_Factors
2017-11-08 CWE内容团队 主教法冠
更新Modes_of_Introduction、引用关系
2018-03-27 CWE内容团队 主教法冠
更新的引用
2019-01-03 CWE内容团队 主教法冠
更新Taxonomy_Mappings
2019-09-19 CWE内容团队 主教法冠
更新Demonstrative_Examples
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、Detection_Factors Observed_Examples、引用关系类型
2022-04-28 CWE内容团队 主教法冠
更新Observed_Examples
2022-10-13 CWE内容团队 主教法冠
更新的引用
+以前的条目名称
改变日期 以前的条目名称
2008-01-30 经常滥用:特权的管理
2009-01-12 违反设计原则:失败使用最小特权

cwe - 359:暴露私人个人信息未经授权的演员

弱点ID: 359
抽象:基地
结构:简单的
视图定制的信息:
+描述
产品不正确阻止一个人的私人的,个人信息被访问的演员要么(1)没有明确授权访问信息或(2)没有隐式的同意的人谁收集的信息。
+扩展描述

有多种类型产品必须保护从攻击者的敏感信息,包括系统数据、通信、配置、商业秘密、知识产权、和个人的个人(私人)信息。私人的个人信息可能包括密码、电话号码、地理位置、个人信息、信用卡号码,等私人信息是很重要的考虑产品的人是一个用户,或处理的数据集的一部分产品。私人信息的曝光不一定防止产品工作正常,事实上暴露可能是由开发人员,例如数据共享与其他组织的一部分。然而,暴露个人隐私信息仍然可以不受欢迎或法律或法规所明确禁止的。

某些类型的私人信息包括:

  • 政府的标识符,如社会安全号码
  • 联系信息,如家庭地址和电话号码
  • 地理位置的用户(或者是)
  • 工作经历
  • 财务数据,如信用卡号码、工资、银行账户,和债务
  • 图片、视频或音频
  • 行为模式,如网页浏览历史,当执行某些活动,等等。
  • 与他人的关系(和类型的关系),家庭,朋友,联系人等。
  • 通信,电子邮件地址,私人信息,短信,聊天记录等。
  • 健康,医疗条件,保险状况,处方记录
  • 账户密码和其他凭证

PII其中一些信息可能描述为(个人身份信息)、受保护的健康信息(φ)等类别的私人信息可能重叠或随预期使用或特定行业的政策和做法。

有时不标记为私有的数据可以有隐私的含义在不同的上下文。例如,学生身份证号码通常不被认为是私人因为没有明确和公开的映射到单个学生的个人信息。然而,如果一个学校生成基于学生社会安全号码,身份证号码的识别号码应考虑私有的。

+替代条款
隐私的侵犯
隐私泄漏
隐私泄漏
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 200年 暴露敏感信息的未经授权的演员
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 199年 信息管理错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1011年 授权的演员
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计 遗漏:这个弱点是由于缺少一个安全策略在体系结构和设计阶段。
实现
操作
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

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

+示范例子

示例1

下面的代码包含一个日志记录语句跟踪记录的内容添加到数据库,存储在一个日志文件中。其他值,存储,getPassword()函数返回用户提供的明文密码与账户相关联。

(坏的代码)
例如语言:c#
通过= GetPassword ();

dbmsLog。WriteLine(id + ":" + pass + ":" + type + ":" + tstamp);

上面的示例中的代码文件系统日志明文密码。尽管许多开发人员信任文件系统作为安全的数据存储位置,它不应该被信任含蓄,尤其是隐私是一个问题。

示例2

这段代码使用位置来确定用户的当前我们国家的位置。

首先应用程序必须声明,它需要在应用程序的manifest.xml ACCESS_FINE_LOCATION许可:

(坏的代码)
例如语言:XML
< uses-permission android: name = " android.permission.ACCESS_FINE_LOCATION " / >

在执行期间,调用getLastLocation()将返回一个基于位置的应用程序的位置的权限。在这种情况下,应用程序允许最准确的位置:

(坏的代码)
例如语言:Java
locationClient = new locationClient(这个,这个,这个);
locationClient.connect ();
userCurrLocation位置;
userCurrLocation = locationClient.getLastLocation ();
deriveStateFromCoords (userCurrLocation);

当应用程序需要这些信息,它不需要使用ACCESS_FINE_LOCATION许可,随着ACCESS_COARSE_LOCATION许可足以识别哪些我们国家的用户。

示例3

2004年,一名员工在美国在线销售约9200万私人客户电子邮件地址到一个垃圾邮件发送者营销境外赌博网站(ref - 338]。为了应对这样的高调的利用,私人数据的收集和管理越来越规范。

+潜在的缓解措施

阶段:需求

确定个人隐私和查阅所有相关法规。一个组织可能需要遵守联邦和州的某些规定,根据其位置,进行业务的类型,它处理任何私人数据的性质。法规可能包括安全港隐私框架(ref - 340),Gramm-Leach Bliley法案(GLBA) (ref - 341),健康保险流通与责任法案(HIPAA) (ref - 342),一般数据保护监管(GDPR) [ref - 1047),加州消费者隐私法案》(CCPA) (ref - 1048),和其他人。

阶段:体系结构和设计

仔细评估安全的设计可能会干扰隐私,反之亦然。安全和隐私问题常常互相竞争。从安全的角度来看,所有重要的操作应该被记录下来,以便日后任何反常的活动可以被识别。然而,当涉及到私人数据,这种做法实际上可以创建风险。虽然有很多方法可以处理不安全的私有数据,一个共同的风险源于错误的信任。程序员经常相信一个程序运行的操作环境,因此相信这是可以接受的私人信息存储在文件系统中,在注册表中,或者在其他华控制的资源。然而,即使对特定资源的访问是受限制的,但这并不保证个人确实有可以信任的访问。

+检测方法

体系结构或设计审查

私人的个人数据可以输入一个程序以各种方式:

  • 直接从用户的密码或个人信息
  • 从数据库或其他数据存储访问的应用程序
  • 间接从合作伙伴或其他第三方

如果数据被写入外部位置,如控制台、文件系统或网络——一个可能会侵犯隐私。

有效性:高

+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 254年 7 pk -安全特性
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 857年 CERT甲骨文安全Java编码标准(2011)第14章-输入输出(FIO)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 975年 SFP二级集群:体系结构
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1029年 OWASP十大2017类别A3 -暴露敏感数据
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1147年 SEI CERT甲骨文Java安全编码标准,指南13。输入输出(FIO)
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1340年 方案及数据保护措施
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1345年 OWASP 2021年十大类别A01:2021——破碎的访问控制
+笔记

维护

这个条目重叠其他条目不围绕的那种敏感信息暴露。然而,由于隐私处理这样的重要性是由于法规和其他因素,它可能是有用的对于weakness-finding工具强调功能检测个人的私人信息,而不是系统信息,目前尚不清楚——和——这个条目应该弃用。
+分类法映射
映射分类名称 节点ID 适合 映射节点名
7有害的王国 隐私的侵犯
CERT甲骨文安全Java编码标准(2011) FIO13-J 不要信任边界外的日志敏感信息
+引用
卡特里娜REF-6 Tsipenyuk,布莱恩象棋和加里·麦克格劳博士。“七有害的王国:分类软件安全错误”。NIST研讨会软件安全保障技术和度量工具。NIST的。2005-11-07。<https://samate.nist.gov/SSATTM_Content/papers/Seven%20Pernicious%20Kingdoms%20-%20Taxonomy%20of%20Sw%20Security%20Errors%20-%20Tsipenyuk%20-%20Chess%20-%20McGraw.pdf>。
ref - 338 j·奥茨。“美国在线的人恳求有罪出售92电子邮件阿迪”。2005年注册。。<http://www.theregister.co.uk/2005/02/07/aol_email_theft/>。
(ref - 339)国家标准。“保护个人身份信息的机密性指南(SP 800 - 122)”。2010 - 04。<http://csrc.nist.gov/publications/nistpubs/800 122/sp800 - 122. - pdf>。
美国商务部(ref - 340)。“安全港隐私框架”。<http://www.export.gov/safeharbor/>。
联邦贸易委员会(ref - 341)。“金融隐私:Gramm-Leach Bliley法案(GLBA)”。<http://www.ftc.gov/privacy/glbact/index.html>。
(ref - 342)美国能源部的人类服务。“健康保险流通与责任法案(HIPAA)”。<http://www.hhs.gov/ocr/hipaa/>。
(ref - 343)加州政府。“加州sb - 1386”。2002年。<http://info.sen.ca.gov/pub/01-02/bill/sen/sb_1351-1400/sb_1386_bill_20020926_chaptered.html>。
[ref - 267]信息技术实验室,国家标准与技术研究院。加密模块“安全要求”。2001-05-25。<http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf>。
Chris Wysopal [ref - 172]。“移动应用前10名名单”。2010-12-13。<http://www.veracode.com/blog/2010/12/mobile-app-top-10-list/>。
(ref - 1047)维基百科。“通用数据保护监管”。<https://en.wikipedia.org/wiki/General_Data_Protection_Regulation>。
(ref - 1048)加州司法部,司法部长办公室。“加州消费者隐私法案》(CCPA)”。<https://oag.ca.gov/privacy/ccpa>。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19 7有害的王国
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新的关系,Other_Notes Taxonomy_Mappings
2009-03-10 CWE内容团队 主教法冠
更新Other_Notes
2009-07-27 CWE内容团队 主教法冠
更新Demonstrative_Examples
2009-12-28 CWE内容团队 主教法冠
更新Other_Notes,引用
2010-02-16 CWE内容团队 主教法冠
更新Other_Notes,引用
2011-03-29 CWE内容团队 主教法冠
更新Other_Notes
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2011-09-13 CWE内容团队 主教法冠
更新Other_Notes,引用
2012-05-11 CWE内容团队 主教法冠
更新Related_Attack_Patterns、关系、Taxonomy_Mappings
2013-02-21 CWE内容团队 主教法冠
更新Applicable_Platforms,引用
2014-02-18 CWE内容团队 主教法冠
Alternate_Terms更新,Demonstrative_Examples、描述、名称、Other_Notes、引用
2014-07-30 CWE内容团队 主教法冠
更新的关系
2017-11-08 CWE内容团队 主教法冠
更新Modes_of_Introduction、引用关系
2018-03-27 CWE内容团队 主教法冠
更新的关系
2019-01-03 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2020-02-24 CWE内容团队 主教法冠
更新Alternate_Terms、Applicable_Platforms Demonstrative_Examples、描述Detection_Factors, Maintenance_Notes,名字,Potential_Mitigations,引用关系类型
2020-08-20 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2020-12-10 CWE内容团队 主教法冠
更新的关系
2021-03-15 CWE内容团队 主教法冠
更新的引用
2021-10-28 CWE内容团队 主教法冠
更新的关系
+以前的条目名称
改变日期 以前的条目名称
2014-02-18 隐私的侵犯
2020-02-24 暴露私人信息(“侵犯隐私”)

cwe - 200:暴露敏感信息的未经授权的演员

弱点ID: 200
抽象:
结构:简单的
视图定制的信息:
+描述
产品暴露敏感信息的一个演员,没有明确被授权可以访问这些信息。
+扩展描述

有许多不同类型的错误,介绍信息曝光。错误的严重程度范围广泛,可以根据产品的上下文操作,透露敏感信息的类型,以及它可能提供给攻击者的利益。某些敏感信息包括:

  • 私人的,个人信息,个人信息,如财务数据,健康记录,地理位置,或联系细节
  • 系统状态和环境,如操作系统和安装包
  • 商业秘密和知识产权
  • 网络状态和配置
  • 产品的代码或内部状态
  • 元数据,比如日志或消息头的连接
  • 间接信息,比如两个内部操作之间的差异,可以观察到一个局外人

对不同党派信息可能是敏感,每一种都可能有自己的预期是否应该受到保护的信息。这些政党包括:

  • 产品的用户
  • 人或组织的信息创建或使用的产品,即使他们不是直接产品用户
  • 产品的管理,包括系统的管理员(s)和/或网络产品的经营
  • 开发人员

信息曝光可以发生在不同的方式:

  • 的代码显式地插入敏感信息资源或消息有意访问未经授权的演员,但不应包含的信息——即。,信息应该是“擦洗”或“净化”
  • 一个不同的弱点或错误间接插入敏感信息为资源,如web脚本错误揭示了全系统程序的路径。
  • 故意包含敏感信息的代码管理资源,但资源无意中做了访问未经授权的演员。在这种情况下,合成——即暴露信息。,a different weakness enabled the access to the information in the first place.

保密是常见的做法来描述任何损失作为“信息暴露,”但这可能导致过度使用cwe - 200CWE的映射。从CWE的角度来看,损失的机密性是一个技术的影响,可以来自几十个不同的弱点,如不安全的文件权限或界外阅读。cwe - 200及其底层的后代为了封面中发生的错误行为,明确管理、存储、传输或净化敏感信息。

+替代条款
信息披露:
这个词经常用于漏洞报告来描述结果或技术的影响,对任何漏洞,机密性的丧失。通常,cwe - 200可以被滥用代表机密性的损失,即使错误——即。,the weakness - is not directly related to the mishandling of the information itself, such as an out-of-bounds read that accesses sensitive memory contents; here, the out-of-bounds read is the primary weakness, not the disclosure of the memory. In addition, this phrase is also used frequently in policies and legal documents, but it does not refer to any disclosure of security-relevant information.
信息泄漏:
然而,这是一个经常使用的术语“泄漏”项中有多个使用安全。在某些情况下,处理意外接触的信息从一个不同的弱点,但是在其他情况下(比如内存泄漏),这种资源的处理不当跟踪,从而导致疲劳。因此,CWE积极避免使用术语“泄漏”。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 668年 曝光资源错误的球体
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 201年 敏感信息插入发送数据
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 203年 可观察到的差异
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 209年 代的包含敏感信息的错误消息
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 213年 由于不兼容的政策暴露敏感信息
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 215年 敏感信息插入调试代码
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 359年 暴露私人个人信息未经授权的演员
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 497年 接触敏感的系统信息未经授权的控制范围
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 538年 敏感信息插入可外部访问文件或目录
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1258年 接触敏感的系统信息由于未清偿调试信息
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1273年 设备开启共享凭证
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1295年 调试消息暴露不必要的信息
光束 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 498年 可克隆类包含敏感信息
光束 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 499年 可序列化的类包含敏感数据
光束 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1272年 敏感信息未清偿前调试/功率状态转换
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 203年 可观察到的差异
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 209年 代的包含敏感信息的错误消息
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 532年 敏感信息插入日志文件
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
实现
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

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

+利用的可能性
+示范例子

示例1

下面的代码检查的有效性提供的用户名和密码并通知用户的成功或失败的登录。

(坏的代码)
例如语言:Perl
我的$ username =参数(用户名);
我的密码美元=参数(“密码”);

如果(IsValidUsername(用户名)= = 1)
{
如果(IsValidPassword(用户名、密码)美元= = 1)
{
打印“登录成功”;
}
其他的
{
打印“登录失败,不正确的密码”;
}
}
其他的
{
打印“登录失败,未知的用户名”;
}

在上面的代码中,当一个不正确的用户名有不同的信息提供,而当用户名是正确的,但密码是错误的。这种差异使潜在的攻击者了解登录的状态函数,并可能允许攻击者发现一个有效的用户名通过尝试不同的值,直到返回不正确的密码信息。本质上,这使得攻击者更容易获得必要的身份验证凭证的一半。

虽然这种类型的信息对用户是有用的,也有用一个潜在的攻击者。在上面的示例中,消息都失败的情况下应该是一样的,如:

(结果)
“登录失败,错误的用户名或密码”

示例2

这段代码试图打开一个数据库连接,并打印任何发生的异常。

(坏的代码)
例如语言:PHP
尝试{
openDbConnection ();
}
/ /打印异常消息,包括异常消息和配置文件的位置
捕获(异常$ e) {
呼应了例外:,$ e - > getMessage (), ' \ n ';
回声,检查凭证在配置文件:“Mysql_config_location美元,' \ n ';
}

如果发生异常,则打印消息暴露的位置配置文件脚本使用。攻击者可以利用这些信息来目标配置文件(可能利用路径遍历的弱点)。如果文件可以读取,攻击者可以获得凭证访问数据库。攻击者还可以用恶意替换文件,导致应用程序使用一个任意的数据库。

示例3

在下面的示例中,该方法getUserBankAccount从数据库检索一个银行帐户对象使用提供的用户名和账号来查询数据库。如果一个SQLException提出查询数据库时,将创建一个错误消息输出到日志文件。

(坏的代码)
例如语言:Java
公共BankAccount getUserBankAccount(用户名的字符串,字符串accountNumber) {
BankAccount userAccount =零;
字符串查询=零;
尝试{
如果(isAuthorizedUser(用户名)){
查询= " SELECT *从账户所有者= "
+用户名+”和accountID = " + accountNumber;
DatabaseManager dbManager = new DatabaseManager ();
连接康涅狄格州= dbManager.getConnection ();
=声明支撑conn.createStatement ();
ResultSet queryResult = stmt.executeQuery(查询);
userAccount = (BankAccount) queryResult.getObject (accountNumber);
}
}捕捉(SQLException ex) {
字符串logMessage = "无法从数据库检索帐户信息,\ nquery:”+查询;
Logger.getLogger (BankManager.class.getName ()) . log(水平。严重,logMessage、交货);
}
返回userAccount;
}

创建的错误信息包括数据库查询的信息可能包含敏感信息的数据库或查询逻辑。在本例中,错误消息将公开数据库中使用的表名和列名。这些数据可以用来简化其他的攻击,如SQL注入(cwe - 89)直接访问数据库。

示例4

这个代码存储位置有关当前用户的信息:

(坏的代码)
例如语言:Java
locationClient = new locationClient(这个,这个,这个);
locationClient.connect ();
currentUser.setLocation (locationClient.getLastLocation ());


捕获(异常e) {
AlertDialog。Builder builder = new AlertDialog.Builder(this);
构建器。setMessage(“对不起,这个应用程序经历了一个错误。”);
AlertDialog警报= builder.create ();
alert.show ();
日志。e (“ExampleActivity”、“捕获异常:“+ e +“在用户:”+ User.toString ());
}

当应用程序遇到异常用户对象写入日志。因为用户对象包含位置信息,用户的位置也写入到日志。

示例5

下面是一个实际的MySQL错误语句:

(结果)
例如语言:SQL
警告:永久链接():拒绝访问的用户:‘root@localhost /usr/local/www/wi-data/includes/database.(使用密码:N1nj4)公司在4号线

错误显然暴露数据库证书。

例子6

这段代码在网页上显示一些信息。

(坏的代码)
例如语言:JSP
社会安全号码:< % = ssn % > < / br >信用卡号码:< % = ccn % >

代码显示一个用户的信用卡和社会安全号码,即使他们并不是绝对必要的。

例7

下面的程序基于调试标记改变它的行为。

(坏的代码)
例如语言:JSP
< %如果(Boolean.getBoolean (“debugEnabled”)) {
% >
用户帐号:< % = acctNo % >
< %
}% >

代码写敏感的调试信息到客户端浏览器如果“debugEnabled”标志被设置为true。

示例8

这段代码使用位置来确定用户的当前我们国家的位置。

首先应用程序必须声明,它需要在应用程序的manifest.xml ACCESS_FINE_LOCATION许可:

(坏的代码)
例如语言:XML
< uses-permission android: name = " android.permission.ACCESS_FINE_LOCATION " / >

在执行期间,调用getLastLocation()将返回一个基于位置的应用程序的位置的权限。在这种情况下,应用程序允许最准确的位置:

(坏的代码)
例如语言:Java
locationClient = new locationClient(这个,这个,这个);
locationClient.connect ();
userCurrLocation位置;
userCurrLocation = locationClient.getLastLocation ();
deriveStateFromCoords (userCurrLocation);

当应用程序需要这些信息,它不需要使用ACCESS_FINE_LOCATION许可,随着ACCESS_COARSE_LOCATION许可足以识别哪些我们国家的用户。

+观察到的例子
参考 描述
枚举的有效用户名不一致的反应
帐号枚举通过不一致的反应。
用户通过差异枚举错误消息。
Telnet协议允许服务器从客户获得敏感的环境信息。
脚本调用phpinfo(),揭示系统配置web用户
产品设置不同的TTL港口时比当它没有被过滤,过滤,允许远程攻击者识别过滤港口通过TTL比较。
版本控制系统允许远程攻击者决定任意的文件和目录的存在通过- x命令另一个历史文件,导致不同的错误信息返回。
虚拟机允许恶意网站运营商决定的存在文件在客户端通过测量延迟getSystemResource的执行方法。
产品立即发送一个错误消息当用户不存在,它允许远程攻击者通过计时攻击来确定有效的用户名。
POP3服务器显示密码在多个APOP命令后发送一条错误消息。可能结果从另一个弱点。
程序显示密码错误消息,如果攻击者可以触发特定的数据库错误。
复合材料:高特权运行的应用程序(cwe - 250)允许用户指定一个限制文件过程中,会生成一个解析错误,泄漏文件的内容(cwe - 209)。
直接请求在web应用程序触发库文件路径名泄漏在错误消息。
畸形的regexp语法暴露会导致信息的错误消息。
密码在调试信息。
FTP客户端启用了调试选项显示密码到屏幕上。
协作平台并不清楚团队的邮件响应,允许泄露的电子邮件地址
+潜在的缓解措施

阶段:体系结构和设计

策略:分离的特权

划分系统“安全”领域信任边界可以明确。不允许走出信任边界和敏感数据时总是小心与舱外的安全区域。

确保适当的划分是建立到系统设计,划分允许和强化特权分离功能。建筑师和设计师应该依靠最小特权原则来决定适当的时间使用特权和特权。

+弱点Ordinalities
Ordinality 描述
(缺点是一个质量问题,可能会间接更容易引入的安全相关的弱点或使他们更难检测)
开发人员可能插入敏感信息,他们不相信,或者他们可能忘记删除敏感信息后加工
合成
(缺点是一个质量问题,可能会间接更容易引入的安全相关的弱点或使他们更难检测)
单独的错误或缺点可能无意中使攻击者可用的敏感信息,比如在一个详细的错误消息,可以读到一个未经授权的聚会
+检测方法

自动静态分析——二进制或字节码

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 字节码的弱点分析,包括反汇编程序+源代码弱点分析
  • 应用程序之间的流分析

有效性:飙升部分

动态分析与自动化的结果解释

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • Web应用程序扫描
  • Web服务的扫描仪
  • 数据库扫描仪

有效性:高

动态分析与人工解释结果

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 模糊测试
  • 基于框架Fuzzer
  • 自动化监控执行
  • 监控虚拟环境——在沙箱中运行潜在的恶意代码/包装/虚拟机,看看它任何可疑的

有效性:飙升部分

人工静态分析源代码

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 手工源代码审查(不检查)

有效性:高

自动静态分析源代码

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • Context-configured源代码分析器
成本有效的部分报道:
  • 源代码缺陷分析仪

有效性:高

体系结构或设计审查

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 正式的方法/ Correct-By-Construction
成本有效的部分报道:
  • 攻击建模
  • 检验(IEEE 1028标准)(适用于需求、设计、源代码,等等)。

有效性:高

+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 635年 最初使用的弱点NVD从2008年到2016年
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 717年 OWASP 2007年十大类别A6——信息泄漏和错误处理不当
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 963年 SFP二级集群:公开数据
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1003年 弱点简化映射的漏洞发布
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1200年 弱点在2019 CWE最危险的软件错误
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1337年 2021 CWE最危险软件的弱点的弱点
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1345年 OWASP 2021年十大类别A01:2021——破碎的访问控制
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1350年 2020 CWE最危险软件的弱点的弱点
+笔记

映射

使用映射:气馁(CWE ID不应该用来映射到实际的漏洞)。

理由是:cwe - 200常被误用来表示损失的机密性的弱点,但保密损失是一个技术的影响,而不是一个根源的错误。CWE 4.9,超过400 CWE条目会导致机密性的丧失。其他选项通常是可用的。(ref - 1287]。

评论:如果一个错误或错误导致信息披露,然后使用CWE ID的错误。考虑从授权不当(cwe - 285),不安全的权限(cwe - 732),不适当的身份验证(cwe - 287)等。还要考虑孩子等敏感信息插入发送数据(cwe - 201),可观察到的差异(cwe - 203),敏感信息插入可外部访问文件或目录(cwe - 538),或者其他人。

维护

映射分析的结果在2020年的前25位,最近的版本中,这个弱点正在审查,因为它是经常滥用映射来掩盖很多问题,导致损失的机密性。看到映射指出,扩展描述和备选项。
+分类法映射
映射分类名称 节点ID 适合 映射节点名
千鸟 信息泄漏(信息披露)
OWASP十大2007 A6 CWE更具体 信息泄漏和错误处理不当
WASC 13 信息泄漏
+引用
Chris Wysopal [ref - 172]。“移动应用前10名名单”。2010-12-13。<http://www.veracode.com/blog/2010/12/mobile-app-top-10-list/>。
(ref - 1287)主教法冠。“补充细节- 2022 CWE前25”。的细节问题映射。2022-06-28。<https://cwe.mitre.org/top25/archive/2022/2022_cwe_top25_supplemental.html problematicMappingDetails>。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19 千鸟
+贡献
贡献的日期 贡献者 组织
2022-07-11 尼克·约翰斯顿
识别不正确的语言标签在示范例子。
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新Likelihood_of_Exploit、关系、Taxonomy_Mappings Weakness_Ordinalities
2008-10-14 CWE内容团队 主教法冠
更新描述
2009-12-28 CWE内容团队 主教法冠
更新Alternate_Terms、描述的名字
2010-02-16 CWE内容团队 主教法冠
更新Taxonomy_Mappings
2010-04-05 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2011-03-29 CWE内容团队 主教法冠
更新描述、人际关系
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences
2012-05-11 CWE内容团队 主教法冠
更新Related_Attack_Patterns、人际关系
2012-10-30 CWE内容团队 主教法冠
更新Potential_Mitigations
2013-02-21 CWE内容团队 主教法冠
更新Alternate_Terms Applicable_Platforms,引用
2014-06-23 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2014-07-30 CWE内容团队 主教法冠
更新Detection_Factors、人际关系
2015-12-07 CWE内容团队 主教法冠
更新的关系
2017-05-03 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2017-11-08 CWE内容团队 主教法冠
更新的引用
2019-01-03 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2019-06-20 CWE内容团队 主教法冠
更新Related_Attack_Patterns、人际关系
2019-09-19 CWE内容团队 主教法冠
更新Demonstrative_Examples Observed_Examples,关系
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、Demonstrative_Examples、描述、名称、Observed_Examples, Related_Attack_Patterns,关系,Weakness_Ordinalities
2020-06-25 CWE内容团队 主教法冠
更新的关系
2020-08-20 CWE内容团队 主教法冠
更新Alternate_Terms、描述Maintenance_Notes Related_Attack_Patterns,关系
2020-12-10 CWE内容团队 主教法冠
更新Potential_Mitigations
2021-07-20 CWE内容团队 主教法冠
更新的关系
2021-10-28 CWE内容团队 主教法冠
更新的关系
2022-10-13 CWE内容团队 主教法冠
更新Demonstrative_Examples Maintenance_Notes Observed_Examples,引用
+以前的条目名称
改变日期 以前的条目名称
2009-12-28 信息泄漏(信息披露)
2020-02-24 信息曝光

cwe - 939:不适当的授权方案在处理程序定义URL

弱点ID: 939
抽象:基地
结构:简单的
视图定制的信息:
+描述
软件使用处理程序为一个自定义的URL方案,但它不适当限制演员可以调用处理程序的使用方案。
+扩展描述
移动平台和其他体系结构允许使用自定义URL方案来促进应用程序之间的通信。在iOS的情况下,这是唯一的应用程序之间的通信方法。实现在开发人员的自由裁量权可能打开应用程序中的安全漏洞。一个例子可能是有潜在危险的功能,如通过一个定制的URL方案修改文件。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 862年 失踪的授权
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1212年 授权错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1011年 授权的演员
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
实现 实现:造成这一弱点在建筑安全策略的实施。
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

技术

类:移动患病率(待定)

+示范例子

示例1

这iOS应用程序使用一个定制的URL方案。replaceFileText行动在URL中计划允许外部应用程序接口文件incomingMessage。txt和替换内容的文本字段的查询字符串。

外部应用程序

(好的代码)
例如语言:objective - c
NSString * stringURL = @“appscheme: / / replaceFileText ?文件= incomingMessage.txt&text =你好”;
NSURL * url = [NSURL URLWithString stringURL):;
[[UIApplication sharedApplication] openURL: url];

应用程序的URL处理程序

(坏的代码)

——(BOOL)应用程序:UIApplication(*)应用handleOpenURL: url (NSURL *) {
如果url (!) {
返回NO;
}
NSString *行动= [url主机];
如果([行动isEqualToString: @ replaceFileText "]) {
NSDictionary * dict =[自我parseQueryStringExampleFunction: [url查询]];
/ /该函数将内容写入指定的文件
FileObject * objectFile =[自我writeToFile: [dict objectForKey @“文件”):withText: [dict objectForKey: @“文本”]];
}
返回YES;
}

处理程序没有限制谁可以使用它的功能。处理程序可以使用任何方法调用的URL调用处理程序,如以下恶意iframe嵌入在网页上打开了Safari。

(攻击代码)
例如语言:HTML
< iframe的src = " appscheme: / / replaceFileText ?文件= Bookmarks.dat&text = listOfMaliciousWebsites”>

攻击者可以举办一个恶意网站包含iframe,诱骗用户将网站通过一个精心网络钓鱼邮件。由于Safari自动执行iframes,不会提示用户处理程序执行iframe时自动调用URL处理程序的代码替换书签文件列表的恶意网站。由于replaceFileText是一个有潜在危险的行动,一个动作,修改数据,应该有一个检查前writeToFile: withText:函数。

示例2

这些Android和iOS应用程序拦截URL WebView中加载和执行特殊操作如果使用一个特定的URL方案,从而使Javascript WebView中交流与应用程序:

(坏的代码)
例如语言:Java
/ /安卓
@Override
公共布尔shouldOverrideUrlLoading (WebView视图中,字符串url) {
如果(url.substring (0, 14) .equalsIgnoreCase (examplescheme: ")) {
如果(url.substring (25) .equalsIgnoreCase (“getUserInfo”)) {
writeDataToView(视图中,用户数据);
返回错误;
}
其他{
返回true;
}
}
}
(坏的代码)
例如语言:objective - c
/ / iOS
(保龄球)webView:(UIWebView *) exWebView shouldStartLoadWithRequest: (NSURLRequest *) exRequest navigationType: exNavigationType (UIWebViewNavigationType)
{
NSURL * URL = [exRequest URL];
如果([[URL方案]isEqualToString: @ " exampleScheme "])
{
resourceSpecifier NSString * functionString = [URL];
如果([functionString hasPrefix: @ " specialFunction "])
{

/ /使数据可用webview。
UIWebView * webView =[自我writeDataToView: [URL查询]];
}
返回NO;
}
返回YES;
}

打个电话到本机代码可以由在URL传递参数:

(攻击代码)
例如语言:JavaScript
窗口。位置= examplescheme: / /方法? =参数值

因为应用程序不检查源,一个恶意网站加载在这个WebView有相同的访问API是一个可信任的网站。

+观察到的例子
参考 描述
URL方案行动取代不需要用户提示和允许远程攻击者执行不受欢迎的行为。
URL方案行动遵循和最喜欢它允许远程攻击者强迫用户执行不受欢迎的行为。
+潜在的缓解措施

阶段:体系结构和设计

利用用户提示弹出授权潜在的有害行为如修改数据或处理敏感信息。

设计功能时URL的行动计划,考虑是否行动应该可以访问所有的移动应用程序,或者如果一个allowlist是适当的应用程序接口。

+引用
(ref - 938)纪尧姆·罗斯。“诡计多端的隐私和安全”。2013-11-11。<http://brooksreview.net/2013/11/guest-post_scheming-for-privacy-and-security/>。
+内容的历史
+提交
提交日期 提交者 组织
2014-01-14 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2017-01-19 CWE内容团队 主教法冠
更新的关系
2017-11-08 CWE内容团队 主教法冠
更新Modes_of_Introduction、引用关系
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、人际关系
2020-06-25 CWE内容团队 主教法冠
更新Potential_Mitigations
2021-03-15 CWE内容团队 主教法冠
更新Demonstrative_Examples

cwe - 295:不当证书验证

弱点ID: 295
抽象:基地
结构:简单的
视图定制的信息:
+描述
软件不验证,或不正确的验证,一个证书。
+扩展描述
当一个证书是无效的或恶意的,它可能允许攻击者欺骗信任实体通过干涉主机和客户端之间的通信路径。软件可能会连接到一个恶意主机虽然认为这是一个可信的主机,或者软件可能欺骗接受欺骗似乎来自一个可信主机的数据。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 287年 不适当的身份验证
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 296年 不当的证书链的信任
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 297年 与主机不匹配不当的验证证书
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 298年 不当的验证证书过期
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 299年 检查证书撤销不当
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 599年 失踪的OpenSSL的验证证书
PeerOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 322年 没有实体认证密钥交换
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1211年 身份验证错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 287年 不适当的身份验证
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1014年 确定的演员
+背景细节
证书是一个伙伴身份令牌密钥(校长)。证书可以用来检查一个公钥属于所有者承担。
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
实现 实现:造成这一弱点在建筑安全策略的实施。
实现 软件使用证书寄时,开发人员可能不正确验证证书的所有相关组件之前寄证书。这可以使它困难或昂贵的测试后,将完成。
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

技术的影响:旁路保护机制;获得特权或假设的身份

+示范例子

示例1

这段代码检查连接对等的证书。

(坏的代码)
例如语言:C
如果((cert = SSL_get_peer_certificate (ssl) & &主机)
foo = SSL_get_verify_result (ssl);

如果((X509_V_OK = = foo) | | X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN = = foo))

/ /证书看起来不错,主机可以信任

在这种情况下,因为是自签名证书,没有外部权威可能是主人的身份。程序可以与欺骗主机不同的系统,如缓存DNS中毒或使用一个Adversary-in-the-Middle (AITM)攻击修改交通从服务器到客户端。

示例2

下面的OpenSSL代码获得一个证书,验证它。

(坏的代码)
例如语言:C
cert = SSL_get_peer_certificate (ssl);
如果(cert & & (SSL_get_verify_result (ssl) = = X509_V_OK)) {

/ /做秘密的事情
}

即使返回X509_V_OK“验证”的一步,这一步不包括检查常见的名字对主机的名称。也就是说,没有保证所需主机的证书。已建立SSL连接可能与恶意主机提供一个有效的证书。

示例3

下面的OpenSSL代码确保有一个证书,允许使用过期的证书。

(坏的代码)
例如语言:C
如果(cert = SSL_get_peer(证书(ssl)) {
foo = SSL_get_verify_result (ssl);
如果((X509_V_OK = = foo) | | (X509_V_ERR_CERT_HAS_EXPIRED = = foo))

/ /做东西

如果调用SSL_get_verify_result()返回X509_V_ERR_CERT_HAS_EXPIRED,这意味着证书已经过期。随着时间的推移,越来越有可能对攻击者妥协证书。

示例4

下面的OpenSSL代码确保有一个证书在继续之前执行。

(坏的代码)
例如语言:C
如果(cert = SSL_get_peer_certificate (ssl)) {

/ /得到一个证书,做秘密的事情

因为这段代码不使用ssl_get_verify_result()检查证书,它可以接受证书被吊销(X509_V_ERR_CERT_REVOKED)。可以与一个恶意的主机进行通信的软件。

示例5

下面的OpenSSL代码确保主机有一个证书。

(坏的代码)
例如语言:C
如果(cert = SSL_get_peer_certificate (ssl)) {

/ /得到证书,主机可以信任

/ / foo = SSL_get_verify_result (ssl);

/ /如果(X509_V_OK = = foo)……
}

注意,代码不叫SSL_get_verify_result (ssl),这有效地禁用验证步骤检查证书。

+观察到的例子
参考 描述
一个框架去机器人、无人机和物联网设备跳过验证默认的根CA证书。
链:不正确的“goto”苹果产品绕过SSL证书验证,允许Adversary-in-the-Middle (AITM)攻击(苹果“goto失败”错误)。cwe - 705(不正确的控制流范围)- >cwe - 561(死代码)- >cwe - 295(不正确的证书验证)- >cwe - 393(返回错误状态码)- >cwe - 300(由Non-Endpoint通道访问)。
链:路由器的固件更新过程使用curl - k”(不安全)选项,禁用验证证书(cwe - 295),允许adversary-in-the-middle (AITM)与恶意固件图像(妥协cwe - 494)。
验证函数信托证书链中最后一个自签名证书。
Web浏览器使用TLS-related函数不正确,防止验证服务器的证书是由受信任的证书颁发机构(CA)签署
Web浏览器不检查任何中间证书撤销。
操作系统不会检查证书撤销列表(CRL)在某些情况下,允许使用撤销证书欺骗。
移动银行应用程序不验证主机名,导致经济损失。
云的支持库编写的Python时使用不正确的正则表达式匹配主机名。
Web浏览器并不能正确地处理' \ 0 '字符(空)的通用名称,允许https网站的欺骗。
智能手机设备不验证主机名,允许欺骗的邮件服务。
应用程序使用第三方库,不验证主机名。
云存储管理应用程序并不验证主机名。
Java库使用JSSE SSLSocket和SSLEngine类,不验证主机名。
链:不正确的计算允许攻击者绕过证书检查。
LDAP客户端接受证书,即使他们不受信任的CA。
链:DNS服务器不正确检查返回值的OpenSSL EVP_VerifyFinal函数允许绕过验证的证书链。
链:产品检查客户端是否信任当它打算检查服务器是否可信,允许验证签名的代码。
加密API,用于web浏览器、邮件的客户,和其他软件,不正确验证基本约束。
链:操作系统的包管理器不检查正确检查返回值,允许绕过使用撤销证书。
+潜在的缓解措施

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

证书应该小心地管理和检查,以确保数据与目的所有者的公钥加密。

实施阶段:

如果证书将被使用,确保所有相关证书之前完全验证证书的属性是固定的,包括主机名。
+检测方法

自动静态分析——二进制或字节码

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 字节码的弱点分析,包括反汇编程序+源代码弱点分析
  • 二进制弱点分析,包括反汇编程序+源代码弱点分析

有效性:飙升部分

人工静态分析——二进制或字节码

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 二进制/字节码反汇编程序,然后使用手动分析缺陷和异常

有效性:飙升部分

动态分析与自动化的结果解释

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • Web应用程序扫描

有效性:飙升部分

动态分析与人工解释结果

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 中间人攻击工具

有效性:高

人工静态分析源代码

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 关注人工抽查,手动分析来源
  • 手工源代码审查(不检查)

有效性:高

自动静态分析源代码

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 源代码缺陷分析仪
  • Context-configured源代码分析器

有效性:飙升部分

体系结构或设计审查

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 检验(IEEE 1028标准)(适用于需求、设计、源代码,等等)。

有效性:高

+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 731年 OWASP 2004年十大类别A10——不安全的配置管理
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1029年 OWASP十大2017类别A3 -暴露敏感数据
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1200年 弱点在2019 CWE最危险的软件错误
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1353年 OWASP十大2021类别A07:2021 -识别和身份验证失败
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1382年 ICS操作(&维护):新兴能源技术
+分类法映射
映射分类名称 节点ID 适合 映射节点名
OWASP十大2004 A10 CWE更具体 不安全的配置管理
+引用
(ref - 243) Sascha Fahl,玛丽安Harbach,托马斯谋杀不久,马修·史密斯和Lars鲍姆加特纳Bernd Freisleben。“夜,马洛里为什么喜欢Android: Android的分析SSL的安全”。2012-10-16。<http://www2.dcsec.uni-hannover.de/files/android/p50-fahl.pdf>。
ref - 244 m .主教。“电脑安全:艺术和科学”。addison - wesley。2003年。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19 CWE社区
CWE社区的成员提交的延长早期CWE版本
+修改
修改日期 修饰符 组织
2008-08-15 Veracode
建议OWASP 2004年排名前十的映射
2008-09-08 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2008-10-14 CWE内容团队 主教法冠
更新Background_Details、描述
2012-05-11 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2012-12-28 CWE内容团队 主教法冠
从类别转换弱点类。
2013-02-21 CWE内容团队 主教法冠
Applicable_Platforms更新,Common_Consequences、描述、名称、Observed_Examples, Potential_Mitigations,引用关系,Time_of_Introduction、类型
2014-06-23 CWE内容团队 主教法冠
更新Observed_Examples
2014-07-30 CWE内容团队 主教法冠
更新Detection_Factors
2015-12-07 CWE内容团队 主教法冠
更新的关系
2017-01-19 CWE内容团队 主教法冠
更新的关系
2017-11-08 CWE内容团队 主教法冠
更新Modes_of_Introduction、引用关系
2018-03-27 CWE内容团队 主教法冠
更新Background_Details Modes_of_Introduction Potential_Mitigations,关系
2019-06-20 CWE内容团队 主教法冠
更新的关系
2019-09-19 CWE内容团队 主教法冠
更新Demonstrative_Examples、人际关系
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms Demonstrative_Examples,描述、Observed_Examples关系
2020-08-20 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2021-07-20 CWE内容团队 主教法冠
更新Demonstrative_Examples Observed_Examples
2021-10-28 CWE内容团队 主教法冠
更新Observed_Examples、人际关系
2022-04-28 CWE内容团队 主教法冠
更新的关系
2022-10-13 CWE内容团队 主教法冠
更新Observed_Examples,引用
+以前的条目名称
改变日期 以前的条目名称
2013-02-21 证书的问题

cwe - 926:不当Android应用程序组件的出口

弱点ID: 926
抽象:变体
结构:简单的
视图定制的信息:
+描述
Android应用程序导出组件,供其他应用程序使用,但不适当的限制,应用程序可以启动它所包含的组件或访问数据。
+扩展描述

不当的攻击和后果出口组件可能取决于导出的组件:

  • 如果进入一个出口活动是不受限制,任何应用程序能够启动活动。这可能允许恶意应用程序获取敏感信息,修改应用程序的内部状态,或诱骗用户与受害者交互应用程序而相信他们仍然与恶意应用程序交互。
  • 如果进入一个出口服务是不受限制,任何应用程序可能会开始和绑定到服务。根据公开的功能,这可能允许恶意应用程序执行未经授权的操作,获得敏感信息,或腐败的应用程序的内部状态。
  • 如果访问内容提供商不限于预期的应用程序,然后恶意应用程序可以访问敏感数据。注意,在Android 4.2之前,自动导出的内容提供者,除非它已经明确声明为不出口。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 285年 不适当的授权
+背景细节

有三种类型的组件,这些组件可以被导出的Android应用程序。

  • 一个活动是一个应用程序组件,它提供了用户与之交互的界面。屏幕,一个典型的应用程序将有多个活动执行不同的功能,如主要活动屏幕和一个单独的屏幕设置活动。
  • 服务是一个应用程序组件是由另一个组件在后台执行一个操作,即使在调用组件是终止。服务没有UI组件用户可见的。
  • 内容提供者机制可以用来与其他应用程序共享数据或内部相同的应用程序。
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

技术的影响:意想不到的状态;DoS:崩溃,退出或重新启动;DoS:不稳定;不同的上下文

可能是不可信的,其他应用程序可以启动活动。
可用性
完整性

技术的影响:意想不到的状态;获得特权或假设的身份;DoS:崩溃,退出或重新启动;DoS:不稳定;不同的上下文

其他应用程序,可能是不可信的,可以绑定到服务。
保密
完整性

技术的影响:阅读应用程序数据;修改应用程序数据

可能是不可信的,其他应用程序可以读取或修改内容提供者提供的数据。
+示范例子

示例1

此应用程序导出manifest.xml活动和服务:

(坏的代码)
例如语言:XML
<活动android: name = " com.example.vulnerableApp.mainScreen " >


<意图过滤器>
<行动android: name = " com.example.vulnerableApp。OPEN_UI " / >
<类别android: name = " android.intent.category.DEFAULT " / >
< /意图过滤器>

> < /活动
<服务android: name = " com.example.vulnerableApp.backgroundService " >


<意图过滤器>
<行动android: name = " com.example.vulnerableApp。START_BACKGROUND " / >
< /意图过滤器>

< /服务>

因为这些组件有意图过滤器,但并没有显式地设置“android:出口= false”清单中的其他地方,他们自动导出,以便任何其他应用程序可以启动它们。这可能会导致意想不到的行为或事迹。

示例2

这个应用程序创建了一个内容提供者应用程序中启用自定义搜索建议:

(坏的代码)
例如语言:XML
<供应商>
android: name = " com.example.vulnerableApp.searchDB "
android:当局= " com.example.vulnerableApp.searchDB " >
< /提供者>

因为这个内容提供者只打算在应用程序中使用,它不需要出口。然而,在Android 4.2之前,它是自动导出所以可能会允许恶意应用程序访问敏感信息。

+潜在的缓解措施

阶段:构建和编译

策略:减少攻击表面

如果他们不需要由其他应用程序共享,明确马克组件与android:出口=“false”应用程序清单文件。

阶段:构建和编译

策略:减少攻击表面

如果你只打算使用导出组件之间的相关应用在你的控制下,使用android: protectionLevel =“签名”xml清单限制访问应用程序由你签名。

阶段:构建和编译;架构和设计

策略:减少攻击表面

限制内容提供者权限(读/写)。

阶段:构建和编译;架构和设计

策略:分离的特权

限制内容提供者权限(读/写)。
+引用
(ref - 923) Android开源项目。“安全提示”。2013-07-16。<http://developer.android.com/training/articles/security-tips.html内容提供者>。
+内容的历史
+提交
提交日期 提交者 组织
2013-07-02 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2014-01-22 CWE内容团队 主教法冠
扩大进入更通用,包括所有类型的Android组件可能不出口。
2014-02-18 CWE内容团队 主教法冠
更新Background_Details、Common_Consequences Demonstrative_Examples、描述Maintenance_Notes,名字,Potential_Mitigations、引用
2017-11-08 CWE内容团队 主教法冠
更新的引用
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、人际关系
2022-10-13 CWE内容团队 主教法冠
更新Background_Details
+以前的条目名称
改变日期 以前的条目名称
2014-02-18 不当限制内容提供程序导出到其他应用程序

cwe - 920:权力的不当限制消费

弱点ID: 920
抽象:基地
结构:简单的
视图定制的信息:
+描述
的软件环境中运营的权力是有限的资源,不能自动补充,但软件不适当限制的权力,其操作使用。
+扩展描述

等环境的嵌入式或移动设备,电力可以是一个有限的资源,比如电池,不能由软件自动补充本身,和设备并不总是直接附加到一个可靠的电源。如果软件使用权力过多过快,那么这可能会导致设备(软件),随后停止运转,直到电力恢复,或增加设备所有者的财务负担,因为电力成本增加。

应用程序的正常运行将消耗的力量。然而,在某些情况下,攻击者可能会导致应用程序消费比预期更多的权力,使用组件(如:

  • 显示
  • CPU
  • 磁盘I / O
  • 全球定位系统(GPS)
  • 声音
  • 麦克风
  • USB接口
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 400年 不受控制的资源消耗
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 399年 资源管理错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 400年 不受控制的资源消耗
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

技术的影响:DoS:资源消耗(其他);DoS:崩溃,退出或重新启动

电源可以排水,导致应用程序和整个设备停止运转。
+内容的历史
+提交
提交日期 提交者 组织
2013-06-11 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2019-06-20 CWE内容团队 主教法冠
更新的关系
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、人际关系

cwe - 297:不当的验证证书与主机不匹配

弱点ID: 297
抽象:变体
结构:简单的
视图定制的信息:
+描述
软件与主机通信,它提供了一个证书,但软件不正确确保证书实际上是相关的主机。
+扩展描述

即使一个证书是格式良好的,签署和信任链,它可能仅仅是一个有效的证书比网站,不同的网站的软件是互动的。如果没有正确检查证书的寄主专一性的数据,如常见的名称(CN)的主题或主题的替代名称(SAN)扩展的证书,可以重定向或欺骗攻击允许恶意主机的有效证书提供数据,冒充一个可信的主机。为了确保数据完整性,证书必须是有效的,它必须与被访问的网站。

即使软件试图检查主机名,仍有可能不正确检查主机名。例如,攻击者可以创建一个证书的名称始于一个可信的名称,后跟一个空字节,这可能会导致一些基于字符串的比较,只有检查部分包含信任的名字。

这个弱点可能出现在软件使用证书寄,如果软件不验证主机名的证书是固定的。

+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 295年 不适当的证书验证
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 923年 不当限制目的端点的通信通道
PeerOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 370年 缺少检查证书撤销后最初的检查
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1014年 确定的演员
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计 实现:造成这一弱点在建筑安全策略的实施。
实现 软件使用证书寄时,开发人员可能不正确验证证书的所有相关组件之前寄证书。这可以使它困难或昂贵的测试后,将完成。
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

技术的影响:获得特权或假设的身份

数据读取系统的担保证书可能不是从预期的系统。
身份验证
其他

技术的影响:其他

信任问题提供系统——基于恶意证书可能允许欺骗或重定向攻击。
+利用的可能性
+示范例子

示例1

下面的OpenSSL代码获得一个证书,验证它。

(坏的代码)
例如语言:C
cert = SSL_get_peer_certificate (ssl);
如果(cert & & (SSL_get_verify_result (ssl) = = X509_V_OK)) {

/ /做秘密的事情
}

即使返回X509_V_OK“验证”的一步,这一步不包括检查常见的名字对主机的名称。也就是说,没有保证所需主机的证书。已建立SSL连接可能与恶意主机提供一个有效的证书。

+观察到的例子
参考 描述
移动银行应用程序不验证主机名,导致经济损失。
移动应用程序打印文档不验证主机名,允许攻击者读取敏感文件。
软件电子检查不检查主机名,导致经济损失。
云的支持库编写的Python时使用不正确的正则表达式匹配主机名。
Web浏览器并不能正确地处理' \ 0 '字符(空)的通用名称,允许https网站的欺骗。
数据库程序主机名验证期间常见的名字,这样允许欺骗。
不正确的处理' \ 0 '字符(空)主机名验证允许欺骗。
邮件服务器的错误处理' \ 0 '字符(空)主机名验证允许欺骗。
LDAP服务器的错误处理' \ 0 '字符(空)主机名验证允许欺骗。
支付处理模块不验证主机名时使用PHP fsockopen函数连接到贝宝。
智能手机设备不验证主机名,允许欺骗的邮件服务。
电子商务模块不验证主机名时连接到网站付款。
聊天应用程序并不验证主机名,导致失去隐私。
应用程序使用第三方库,不验证主机名。
云存储管理应用程序并不验证主机名。
Java库使用JSSE SSLSocket和SSLEngine类,不验证主机名。
SOAP平台不验证主机名。
PHP库支付不验证主机名。
商人支付SDK不验证主机名。
Web浏览器不验证通用名称,允许https网站的欺骗。
+潜在的缓解措施

阶段:体系结构和设计

全面检查证书的主机名,并为用户提供足够的信息问题的性质以及如何进行下去。

实施阶段:

如果证书将被使用,确保所有相关证书之前完全验证证书的属性是固定的,包括主机名。
+检测方法

动态分析与人工解释结果

建立一个不可信的端点(例如,一个服务器)的软件将连接。创建一个测试证书,使用无效的主机名,但受信任的CA签署和提供这种证书不受信任的端点。如果软件执行任何操作,而不是断开和报告一个错误,那么这表明主机名没有被检查和测试证书已被接受。

黑盒

当证书将被使用在移动应用程序中,可以考虑使用一个工具如转轮(ref - 955]。这种方法可能会扩展到其他技术。
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 948年 SFP二级集群:数字证书
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1353年 OWASP十大2021类别A07:2021 -识别和身份验证失败
+分类法映射
映射分类名称 节点ID 适合 映射节点名
未能验证证书寄主专一性的数据
+引用
[REF-18]安全软件公司. .“扣应用程序安全性的过程”。2005年。<https://cwe.mitre.org/documents/sources/TheCLASPApplicationSecurityProcess.pdf>。
(ref - 245)马丁·吉奥吉夫Subodh Iyengar, Suman Jana Rishita Anubhai,丹Boneh,维塔利Shmatikov。“世界上最危险的代码:在非浏览器软件验证SSL证书”。2012-10-25。<http://www.cs.utexas.edu/调用shmat / shmat_ccs12.pdf>。
(ref - 243) Sascha Fahl,玛丽安Harbach,托马斯谋杀不久,马修·史密斯和Lars鲍姆加特纳Bernd Freisleben。“夜,马洛里为什么喜欢Android: Android的分析SSL的安全”。2012-10-16。<http://www2.dcsec.uni-hannover.de/files/android/p50-fahl.pdf>。
(ref - 249)肯尼斯·巴拉德。“安全编程OpenSSL API,第2部分:安全握手”。2005-05-03。<http://www.ibm.com/developerworks/library/l-openssl2/index.html>。
(ref - 250)埃里克Rescorla。“介绍OpenSSL编程(第一部分)”。2001-10-05。<http://www.rtfm.com/openssl-examples/part1.pdf>。
迈克尔•霍华德(REF-44)大卫·勒布朗和Viega约翰。软件安全的“24宗罪”。PKI的“罪23:使用不当,尤其是SSL。”Page 347. McGraw-Hill. 2010.
(ref - 955)克里斯·麦克马洪石头,汤姆Chothia和弗拉维奥·d·加西亚。“转轮:半自动检测将没有主机名验证”。2018-01-16。<http://www.cs.bham.ac.uk/ garciaf /出版/ spinner.pdf>。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新Common_Consequences、关系、Other_Notes Taxonomy_Mappings
2009-03-10 CWE内容团队 主教法冠
更新描述、名称、关系
2009-05-27 CWE内容团队 主教法冠
更新Demonstrative_Examples
2009-07-27 CWE内容团队 主教法冠
更新Demonstrative_Examples、人际关系
2010-12-13 CWE内容团队 主教法冠
更新描述,Other_Notes
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences
2012-05-11 CWE内容团队 主教法冠
更新引用关系
2013-02-21 CWE内容团队 主教法冠
更新Applicable_Platforms、Demonstrative_Examples、描述、名称、Observed_Examples,引用关系类型
2013-07-17 CWE内容团队 主教法冠
更新的关系
2014-07-30 CWE内容团队 主教法冠
更新的关系
2015-12-07 CWE内容团队 主教法冠
更新的关系
2017-11-08 CWE内容团队 主教法冠
更新Demonstrative_Examples Modes_of_Introduction、引用关系
2018-01-16 CWE内容团队 主教法冠
集成的缓解措施和检测方法基于反馈的证书寄CWE研究员在2017年12月上市。
2018-03-27 CWE内容团队 主教法冠
更新Common_Consequences、描述Detection_Factors、Modes_of_Introduction Potential_Mitigations,引用,Time_of_Introduction
2019-06-20 CWE内容团队 主教法冠
更新的关系
2019-09-19 CWE内容团队 主教法冠
更新Demonstrative_Examples
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、引用关系
2021-10-28 CWE内容团队 主教法冠
更新的关系
2022-10-13 CWE内容团队 主教法冠
更新的引用
+以前的条目名称
改变日期 以前的条目名称
2009-03-10 未能验证证书寄主专一性的数据
2013-02-21 不当的寄主专一性的证书验证数据

cwe - 925:不当验证意图的广播接收器

弱点ID: 925
抽象:变体
结构:简单的
视图定制的信息:
+描述
Android应用程序使用一个广播接收器接收一个意图但不正确验证意图来自一个授权的来源。
+扩展描述
某些类型的意图,被行动字符串,只能播放由操作系统本身,而不是第三方应用程序。然而,当应用程序注册接收这些隐式系统的意图,也是注册接收任何显式意图。而恶意应用程序不能发送一个隐式系统的意图,它可以发送一个显式意图到目标应用程序中,这可能会假定任何收到的意图是一个有效的隐式系统的意图,而不是从另一个应用程序显式意图。这可能会导致意想不到的行为。
+替代条款
意图欺骗
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 940年 不当的验证源通信通道
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

技术的影响:获得特权或假设的身份

另一个应用程序可以模拟操作系统,导致软件来执行一个意想不到的动作。
+示范例子

示例1

下面的例子显示出,需求不足。

(坏的代码)
例如语言:XML
<清单包= " com.example.vulnerableApplication " >
<应用>

<接收机android: name = " .ShutdownReceiver " >
<意图过滤器>
<行动android: name = " android.intent.action.ACTION_SHUTDOWN " / >
< /意图过滤器>
< /接收器>



< /应用程序>
< /清单>

ShutdownReceiver类将处理的目的:

(坏的代码)
例如语言:Java


IntentFilter过滤器= new IntentFilter (Intent.ACTION_SHUTDOWN);
BroadcastReceiver sReceiver = new ShutDownReceiver ();
registerReceiver (sReceiver、过滤);


公开课ShutdownReceiver BroadcastReceiver{延伸
@Override
公共空间onReceive(最后的上下文语境,最终目的意图){
mainActivity.saveLocalData ();
mainActivity.stopActivity ();
}
}

因为方法不确定意图行动预计系统意图,任何收到意图将触发关闭程序,如下所示:

(攻击代码)
例如语言:Java
窗口。位置= examplescheme: / /方法? =参数值

攻击者可以使用此行为导致拒绝服务。

+潜在的缓解措施

阶段:体系结构和设计

作用于意图之前,检查意图行动来确保它匹配预期的系统动作。
+笔记

维护

该条目将更全面的在后面CWE版本。
+引用
[ref - 922] Erika下巴,艾德丽安波特认为,凯特•格林伍德和大卫·瓦格纳。分析在Android应用程序之间的通信。3.2.1之上。<http://www.eecs.berkeley.edu/寒鸦/论文/ intents-mobisys11.pdf>。
+内容的历史
+提交
提交日期 提交者 组织
2013-06-24 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2014-02-18 CWE内容团队 主教法冠
更新Alternate_Terms Demonstrative_Examples、描述引用
2017-11-08 CWE内容团队 主教法冠
更新Demonstrative_Examples
2019-01-03 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、人际关系
2022-10-13 CWE内容团队 主教法冠
更新的关系

cwe - 940:不当验证源的通信通道

弱点ID: 940
抽象:基地
结构:简单的
视图定制的信息:
+描述
软件建立一个通信通道来处理传入请求,由一个演员,但它不正确验证请求来自预期的起源。
+扩展描述
当攻击者可以成功地从一个不可信的来源建立通信通道,攻击者可以获得特权和意想不到的功能的访问。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 923年 不当限制目的端点的通信通道
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 925年 验证不当意图的广播接收器
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 417年 通信信道的错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1014年 确定的演员
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
实现 实现:造成这一弱点在建筑安全策略的实施。
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

技术的影响:获得特权或假设的身份;不同的上下文

攻击者可以访问任何功能,无意中访问。
+示范例子

示例1

这个Android应用程序会删除一个用户帐户时收到一个这样做的意图:

(坏的代码)
例如语言:Java
IntentFilter过滤器= new IntentFilter (“com.example.RemoveUser”);
MyReceiver接收机= new MyReceiver ();
registerReceiver(接收机、过滤);

公开课DeleteReceiver BroadcastReceiver{延伸
@Override
公共空间onReceive(上下文语境,意图意图){
int userID = intent.getIntExtra(“标识”);
destroyUserData (userID);
}
}

这个应用程序不检查意图的起源,从而允许任何恶意应用程序删除一个用户。总是检查一个意图的起源,或创建一个使用manifest allowlist受信任的应用程序。xml文件。

示例2

这些Android和iOS应用程序拦截URL WebView中加载和执行特殊操作如果使用一个特定的URL方案,从而使Javascript WebView中交流与应用程序:

(坏的代码)
例如语言:Java
/ /安卓
@Override
公共布尔shouldOverrideUrlLoading (WebView视图中,字符串url) {
如果(url.substring (0, 14) .equalsIgnoreCase (examplescheme: ")) {
如果(url.substring (25) .equalsIgnoreCase (“getUserInfo”)) {
writeDataToView(视图中,用户数据);
返回错误;
}
其他{
返回true;
}
}
}
(坏的代码)
例如语言:objective - c
/ / iOS
(保龄球)webView:(UIWebView *) exWebView shouldStartLoadWithRequest: (NSURLRequest *) exRequest navigationType: exNavigationType (UIWebViewNavigationType)
{
NSURL * URL = [exRequest URL];
如果([[URL方案]isEqualToString: @ " exampleScheme "])
{
resourceSpecifier NSString * functionString = [URL];
如果([functionString hasPrefix: @ " specialFunction "])
{

/ /使数据可用webview。
UIWebView * webView =[自我writeDataToView: [URL查询]];
}
返回NO;
}
返回YES;
}

打个电话到本机代码可以由在URL传递参数:

(攻击代码)
例如语言:JavaScript
窗口。位置= examplescheme: / /方法? =参数值

因为应用程序不检查源,一个恶意网站加载在这个WebView有相同的访问API是一个可信任的网站。

+观察到的例子
参考 描述
DNS服务器可以接受来自主机的DNS更新它没有查询,导致缓存中毒
DNS服务器可以接受来自主机的DNS更新它没有查询,导致缓存中毒
DNS服务器缓存胶记录收到non-delegated名称服务器
+潜在的缓解措施

阶段:体系结构和设计

使用一种机制,可以验证的身份来源,如证书,并验证数据的完整性,以确保它在运输过程中不能修改使用Adversary-in-the-Middle (AITM)攻击。

设计功能时URL的行动计划,考虑是否行动应该可以访问所有的移动应用程序,或者如果一个allowlist是适当的应用程序接口。

+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1353年 OWASP十大2021类别A07:2021 -识别和身份验证失败
+笔记

的关系

虽然许多涉及验证用户访问控制问题,这个弱点是更多关于验证实际的通信信道本身的来源;可能没有任何“用户”在这种情况下。
+引用
[ref - 324] Taimur Aslam。“安全故障的分类在UNIX操作系统”。1995-08-01。<http://cwe.mitre.org/documents/sources/ATaxonomyofSecurityFaultsintheUNIXOperatingSystem%5BAslam95%5D.pdf>。
+内容的历史
+提交
提交日期 提交者 组织
2014-02-13 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2017-11-08 CWE内容团队 主教法冠
更新Modes_of_Introduction、引用关系
2019-06-20 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms Potential_Mitigations,关系
2020-06-25 CWE内容团队 主教法冠
更新Demonstrative_Examples Potential_Mitigations
2021-07-20 CWE内容团队 主教法冠
更新Potential_Mitigations
2021-10-28 CWE内容团队 主教法冠
更新的关系
2022-10-13 CWE内容团队 主教法冠
更新的关系

cwe - 941:不正确地指定目的地通信通道

弱点ID: 941
抽象:基地
结构:简单的
视图定制的信息:
+描述
软件创建一个通信通道启动一个外向请求一个演员,但这并不正确地指定目的地,演员。
+扩展描述

攻击者在目的地可以恶搞受信任的服务器窃取数据或引起拒绝服务。

至少有两个不同的弱点,会导致软件与一个意想不到的目的地:

  • 如果软件允许攻击者控制哪些指定目的地,那么攻击者可以因为它连接到一个不可信的或恶意的目的地。例如,由于UDP是一种无连接的协议,UDP数据包可以被指定一个虚假欺骗数据包的源地址;当服务器接收数据包并发送一个回复,将指定一个目标通过使用传入的数据包的来源——即。,错误的来源。服务器可以发送了错误的主机的流量,这是有效的隐藏的真正来源,进行分布式拒绝服务攻击(DDoS)。作为另一个示例中,服务器端请求伪造(SSRF)和XML外部实体(XXE)可以用来诱骗服务器传出请求主机,不能直接由攻击者由于防火墙限制访问。
  • 如果软件不正确地指定目的地,那么攻击者可以控制这个目的地可以恶搞受信任的服务器。而最常见的发生可能是由于错误配置管理员,这可以从其他合成的弱点。例如,软件可能不正确地解析电子邮件或IP地址和发送敏感数据,一个意想不到的目的地。另外一个例子,一个Android应用程序可能使用“粘性广播”与接收机对于一个特定的应用程序,但由于粘性广播可以处理任何* *接收器,这可以允许恶意应用程序访问受限制的数据只用于不同的应用程序。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 923年 不当限制目的端点的通信通道
CanPrecede 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 406年 控制的网络消息量不足(网络放大)
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 417年 通信信道的错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1014年 确定的演员
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
实现 实现:造成这一弱点在建筑安全策略的实施。
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

+示范例子

示例1

这段代码监听一个端口上的DNS请求并将结果发送给请求的地址。

(坏的代码)
例如语言:Python
袜子= socket.socket(插座。AF_INET socket.SOCK_DGRAM)
袜子。绑定((UDP_IP UDP_PORT))
而真正的:
data = sock.recvfrom (1024)
如果没有数据:
打破

(requestIP nameToResolve) = parseUDPpacket(数据)
记录= resolveName (nameToResolve)
sendResponse (requestIP记录)

这段代码将DNS记录发送给请求的IP地址。UDP允许容易改变源IP地址(“欺骗”),从而允许攻击者重定向响应一个目标,这可能是被网络流量。

+观察到的例子
参考 描述
综合:国家结核控制规划特性生成大响应(高放大系数)与伪造了UDP来源地址。
经典的“蓝精灵”攻击,使用欺骗ICMP数据包广播地址。
DNS查询与导致更多的流量要返回的源地址欺骗比被攻击者发送地址。
+引用
us - cert (ref - 941)。“udp的放大的攻击”。2014-01-17。<https://www.us cert.gov/ncas/alerts/ta14 - 017 a>。
+内容的历史
+提交
提交日期 提交者 组织
2014-02-13 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2017-11-08 CWE内容团队 主教法冠
更新Modes_of_Introduction、引用关系
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、人际关系
2021-03-15 CWE内容团队 主教法冠
更新Maintenance_Notes

cwe - 511:逻辑/定时炸弹

弱点ID: 511
抽象:基地
结构:简单的
视图定制的信息:
+描述
软件包含的代码是为了扰乱合法操作的软件(或环境)一定时间的流逝时,或者当某个逻辑条件满足。
+扩展描述
定时炸弹或逻辑炸弹引爆时,它可能执行拒绝服务,如系统崩溃,删除关键数据,或有辱人格的系统响应时间。这个炸弹可能被放置在一个复制或non-replicating特洛伊木马。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 506年 嵌入恶意代码
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
实现
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

技术的影响:不同的上下文;改变执行逻辑

+示范例子

示例1

触发器的典型例子包括系统日期或时间机制,随机数生成器和反驳说,等待一个机会发射有效载荷。当触发时,系统崩溃的定时炸弹可能拒绝服务,删除文件,或有辱人格的系统响应时间。

+潜在的缓解措施

阶段:安装

总是验证的软件安装的完整性。

测试阶段:

使用现场测试进行代码覆盖分析,然后仔细检查没有涵盖的任何代码。
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 904年 SFP主要集群:恶意软件
+分类法映射
映射分类名称 节点ID 适合 映射节点名
后备军人 逻辑/定时炸弹
+引用
Chris Wysopal [ref - 172]。“移动应用前10名名单”。2010-12-13。<http://www.veracode.com/blog/2010/12/mobile-app-top-10-list/>。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19 后备军人
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Potential_Mitigations Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2008-10-14 CWE内容团队 主教法冠
更新描述
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences
2011-06-27 CWE内容团队 主教法冠
更新Common_Consequences
2012-05-11 CWE内容团队 主教法冠
更新的关系
2012-10-30 CWE内容团队 主教法冠
更新Potential_Mitigations
2013-02-21 CWE内容团队 主教法冠
更新Applicable_Platforms Potential_Mitigations、引用Time_of_Introduction
2017-11-08 CWE内容团队 主教法冠
更新的引用
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、人际关系

cwe - 772:失踪后释放资源的有效寿命

弱点ID: 772
抽象:基地
结构:简单的
视图定制的信息:
+描述
软件不其有效寿命结束后释放资源,即。后,资源不再需要。
+扩展描述
当资源不公布后使用,它可以让攻击者造成拒绝服务,导致资源分配不触发释放他们。Frequently-affected资源包括内存、CPU、磁盘空间、电源或电池,等等。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 404年 不当关机或释放资源
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 401年 失踪之后释放内存有效寿命
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 775年 失踪的文件描述符或处理后有效
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1091年 没有调用析构函数方法使用的对象
光束 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 911年 不更新的引用计数
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 399年 资源管理错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 404年 不当关机或释放资源
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及质量的措施(2020)”(CWE-1305)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 404年 不当关机或释放资源
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及数据保护措施”(cwe - 1340)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 404年 不当关机或释放资源
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
实现
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

技术

类:移动患病率(待定)

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

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

攻击者可以影响资源配置不适当的释放可能会耗尽可用的资源池和阻止所有其他进程访问相同类型的资源。
+利用的可能性
+示范例子

示例1

下面的方法永远不会关闭文件句柄。给予足够的时间,最终BufferReader的Finalize()方法应该调用关闭(),但没有保证这个动作需要多长时间。事实上,没有保证Finalize()方法会被调用。在忙碌的环境中,操作系统可以使用所有可用的文件句柄前关闭()函数。

(坏的代码)
例如语言:Java
私人空间processFile(字符串帧)
{
BufferReader费尔= new BufferReader(新FileReader(帧));
字符串行;
在((= fil.ReadLine行())! = null)
{
processLine(线);
}
}

良好的代码示例简单地添加一个显式的调用关闭()函数使用文件系统完成后。在这样的一个简单的例子很容易看到并修复问题。在实际系统中,这个问题可能更为模糊。

(好的代码)
例如语言:Java
私人空间processFile(字符串帧)
{
BufferReader费尔= new BufferReader(新FileReader(帧));
字符串行;
在((= fil.ReadLine行())! = null)
{
processLine(线);
}
fil.Close ();
}

示例2

下面的代码试图打开一个新连接到一个数据库,数据库返回的处理结果,并关闭SqlConnection对象分配。

(坏的代码)
例如语言:c#
SqlConnection康涅狄格州= new SqlConnection (connString);
SqlCommand cmd = new SqlCommand(参数);
cmd。Connection = conn;
conn.Open ();
SqlDataReader rdr = cmd.ExecuteReader ();
HarvestResults (rdr);
conn.Connection.Close ();

上面的代码的问题是,如果发生异常时执行的SQL或处理结果,SqlConnection对象不是封闭的。如果经常出现这种情况,数据库将耗尽可用的游标和无法执行任何更多的SQL查询。

示例3

这段代码试图打开一个连接到一个数据库并抓住任何可能发生的异常。

(坏的代码)
例如语言:Java
尝试{
连接= DriverManager.getConnection监狱(some_connection_string);
}
捕获(异常e) {
日志(e);
}

如果发生异常后建立数据库连接在同一连接关闭之前,数据库连接池可能会变得疲惫。如果超出可用连接的数量,其他用户不能访问这个资源,有效地拒绝访问应用程序。

示例4

在正常情况下以下c#代码执行一个数据库查询,处理数据库返回的结果,并关闭SqlConnection对象分配。但如果发生异常时执行的SQL或处理结果,SqlConnection对象不是封闭的。如果经常出现这种情况,数据库将耗尽可用的游标和无法执行任何更多的SQL查询。

(坏的代码)
例如语言:c#

SqlConnection康涅狄格州= new SqlConnection (connString);
SqlCommand cmd = new SqlCommand(参数);
cmd。Connection = conn;
conn.Open ();
SqlDataReader rdr = cmd.ExecuteReader ();
HarvestResults (rdr);
conn.Connection.Close ();

示例5

下面的C函数不关闭文件句柄打开如果出现错误。如果长期存在的过程,这个过程可以运行文件句柄。

(坏的代码)
例如语言:C
int decodeFile (char *帧){
字符缓冲区(BUF_SZ);
文件* f = fopen(帧,“r”);
如果(f) {
printf(“不能打开% s \ n”、帧);
返回DECODE_FAIL;
}
其他{
而(fgets (buf BUF_SZ f)) {
如果(! checkChecksum (buf)) {
返回DECODE_FAIL;
}
其他{
decodeBlock (buf);
}
}
}
文件关闭(f);
返回DECODE_SUCCESS;
}
+观察到的例子
参考 描述
链:反病毒产品遇到一个畸形的文件但是没有关闭从函数返回一个文件描述符(cwe - 775消费()导致文件描述符cwe - 400)和扫描失败。
套接字不当当攻击者多次连接和断开与服务器关闭。
不关闭命名管道连接如果畸形数据发送。
链:内存泄漏(cwe - 404)会导致资源枯竭。
产品允许疲惫的文件描述符在处理大量的TCP数据包。
端口扫描触发器CPU消耗过程,试图从关闭套接字读取数据。
产品允许通过大量调用资源枯竭,没有完成一个我家的握手。
返回值的文件/套接字操作不检查,允许合成文件描述符。
+潜在的缓解措施

阶段:需求

策略:语言选择

使用一种语言,不允许这个弱点或发生提供了结构,使这个弱点更容易避免的。

例如,语言(如Java、Ruby和Lisp执行垃圾收集自动释放内存的对象已经被收回。

实施阶段:

是一种很好的做法负责释放所有资源分配和一致的方式和你免费资源在一个函数。如果你分配资源,你打算免费功能,完成后,你必须确保免费资源出口点的功能包括错误条件。

阶段:操作;架构和设计

战略:资源限制

使用的资源设置提供的操作系统或环境。例如,当管理在POSIX系统资源,setrlimit()可用于设置限制对特定类型的资源,和getrlimit()可以确定有多少资源是可用的。然而,这些功能并不是在所有的操作系统都可用。

当当前水平接近的最大定义的应用程序(请参阅cwe - 770),然后特权用户限制进一步的资源分配;此外,为弱势用户开始释放资源。虽然这缓解可能保护系统免受攻击,它不一定会阻止攻击者不利影响其他用户。

确保应用程序执行适当的错误检查和错误处理,以防资源不可用(cwe - 703)。

+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 808年 2010年处于25 -弱点
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 867年 2011年处于25 -弱点
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 882年 CERT c++安全编码部分14 -并发(CON)
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 884年 CWE横截面
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 982年 SFP二级集群:未能释放资源
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1129年 方案》(2016)——可靠性质量措施
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1131年 方案》(2016)——安全质量措施
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1162年 SEI CERT 08 C编码标准指导方针。内存管理(MEM)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1163年 SEI CERT 09 C编码标准指导方针。输入输出(FIO)
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1200年 弱点在2019 CWE最危险的软件错误
+笔记

理论

脆弱性理论主要是关于行为和资源交互。“资源枯竭”可以被视为一个后果或攻击,根据不同的视角。这个条目是为了反映一个潜在的弱点,使这些攻击(或结果)。

维护

“资源枯竭”(cwe - 400)目前作为一个弱点,尽管它更像是一个类别的弱点都有同样的结果。虽然这个条目将cwe - 4001000年视图作为一个家长,可能更适当的关系描述为一个链。
+分类法映射
映射分类名称 节点ID 适合 映射节点名
CERT C安全编码 FIO42-C CWE更抽象 当他们不再需要关闭文件
CERT C安全编码 MEM31-C CWE更抽象 在不再需要时释放动态分配的内存
OMG ASCSM ASCSM -cwe - 772
OMG ASCRM ASCRM -cwe - 772
软件故障模式 SFP14 未能释放资源
+引用
(ref - 961)对象管理组织(OMG)。“自动源代码可靠性措施(ASCRM)”。ascrm - cwe - 772。2016 - 01。<http://www.omg.org/spec/ASCRM/1.0/>。
(ref - 962)对象管理组织(OMG)。“自动源代码安全措施(ASCSM)”。ascsm - cwe - 772。2016 - 01。<http://www.omg.org/spec/ASCSM/1.0/>。
+内容的历史
+提交
提交日期 提交者 组织
2009-05-13 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2010-02-16 CWE内容团队 主教法冠
更新Demonstrative_Examples Potential_Mitigations,关系
2010-04-05 CWE内容团队 主教法冠
更新Potential_Mitigations
2010-06-21 CWE内容团队 主教法冠
更新Potential_Mitigations
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2011-06-27 CWE内容团队 主教法冠
更新Observed_Examples Related_Attack_Patterns,关系
2011-09-13 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2012-05-11 CWE内容团队 主教法冠
更新Demonstrative_Examples、关系、Taxonomy_Mappings
2012-10-30 CWE内容团队 主教法冠
更新Potential_Mitigations
2013-02-21 CWE内容团队 主教法冠
更新的关系
2014-02-18 CWE内容团队 主教法冠
更新Applicable_Platforms Demonstrative_Examples
2014-07-30 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2017-01-19 CWE内容团队 主教法冠
更新的关系
2017-11-08 CWE内容团队 主教法冠
更新Likelihood_of_Exploit Taxonomy_Mappings
2019-01-03 CWE内容团队 主教法冠
更新Common_Consequences、引用关系,Taxonomy_Mappings
2019-06-20 CWE内容团队 主教法冠
更新的关系
2019-09-19 CWE内容团队 主教法冠
更新描述、人际关系
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、关系、Taxonomy_Mappings
2020-08-20 CWE内容团队 主教法冠
更新的关系
2020-12-10 CWE内容团队 主教法冠
更新的关系
2021-03-15 CWE内容团队 主教法冠
更新Demonstrative_Examples
2022-10-13 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings

cwe - 672:过期或释放后操作资源

弱点ID: 672
抽象:
结构:简单的
视图定制的信息:
+描述
软件使用、访问或操作资源之后,资源已经过期,释放,或撤销。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 666年 操作资源在一生的错误的阶段
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 298年 不当的验证证书过期
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 324年 使用一个关键过去的保质期
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 613年 会话过期不足
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 825年 过期的指针
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 910年 使用过期的文件描述符
光束 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 562年 返回堆栈变量的地址
光束 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 826年 预期寿命期间过早释放资源
光束 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 911年 不更新的引用计数
光束 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1341年 多个版本的相同的资源或处理
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 415年 双自由
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 416年 使用后免费
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 613年 会话过期不足
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及质量的措施(2020)”(CWE-1305)
自然 类型 ID 的名字
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 415年 双自由
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 416年 使用后免费
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及数据保护措施”(cwe - 1340)
自然 类型 ID 的名字
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 415年 双自由
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 416年 使用后免费
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
实现
操作
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

技术的影响:修改应用程序数据;读取应用程序数据

如果随后发布的资源重用或重新分配,然后试图使用原始的资源可能允许访问敏感数据与不同的用户或者实体相关联。
其他
可用性

技术的影响:其他;DoS:崩溃,退出或重新启动

当资源被释放它可能不是在预期状态,之后试图访问的资源可能导致结果的错误可能会导致崩溃。
+示范例子

示例1

下面的代码显示了一个简单的例子,一个用自由后错误:

(坏的代码)
例如语言:C
char * ptr = (char *) malloc(大小);
如果(err) {
abrt = 1;
免费(ptr);
}

如果(abrt) {
logError(“操作中止之前提交”,ptr);
}

当一个错误发生时,立即释放的指针。然而,这个指针是后来logError函数中使用不正确。

示例2

下面的代码显示了一个简单的双自由错误的例子:

(坏的代码)
例如语言:C
char * ptr = (char *) malloc(大小);

如果(abrt) {
免费(ptr);
}

免费(ptr);

双自由漏洞有两个共同的(有时是重叠的)原因:

  • 错误条件和其他特殊情况
  • 混乱的程序负责释放内存的一部分

虽然有些双自由漏洞并不比前面的例子复杂得多,大多数分布在数百行代码,甚至不同的文件。程序员似乎特别容易释放全局变量不止一次。

示例3

在接下来的C / c++例子processMessage方法用于处理消息收到输入数组的字符数组。输入消息包含两个字符数组:数组的长度是第一个消息,第二身体的消息。信息检索和使用的长度为当地一个char数组分配足够的内存,messageBody,创建消息体。processMessageBody messageBody处理的方法将返回一个错误,如果一个错误发生在处理。如果发生错误,那么返回的结果变量设置为显示一个错误和messageBody char数组内存使用免费的方法释放一个错误消息被发送到logError方法。

(坏的代码)
例如语言:C
#定义失败0
#定义成功1
#定义错误1
#定义MAX_MESSAGE_SIZE 32

int processMessage (char * *消息)
{
int结果=成功;

int长度= getMessageLength(消息[0]);
char * messageBody;

如果(长度(长度> 0)& & (< MAX_MESSAGE_SIZE)) {
messageBody = (char *) malloc(长度* sizeof (char));
messageBody =消息[1][0];

int成功= processMessageBody (messageBody);

如果成功= =错误){
结果=错误;
免费(messageBody);
}
}
其他{
printf("无法处理消息;无效的消息长度”);
结果=失败;
}

如果结果= =错误){
logError(“错误处理消息”,messageBody);
}

返回结果;
}

然而,调用方法logError包括内存后的messageBody messageBody使用免费的方法已被释放。这可能会导致意想不到的结果,可能导致系统崩溃。一个变量后不应该使用它的内存资源被释放。

(好的代码)
例如语言:C

messageBody = (char *) malloc(长度* sizeof (char));
messageBody =消息[1][0];

int成功= processMessageBody (messageBody);

如果成功= =错误){
结果=错误;
logError(“错误处理消息”,messageBody);
免费(messageBody);
}
+观察到的例子
参考 描述
链:竞争条件可能允许发布资源前操作,导致零废弃
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 808年 2010年处于25 -弱点
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 884年 CWE横截面
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 983年 SFP二级集群:错误的资源使用
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1003年 弱点简化映射的漏洞发布
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1131年 方案》(2016)——安全质量措施
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1162年 SEI CERT 08 C编码标准指导方针。内存管理(MEM)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1163年 SEI CERT 09 C编码标准指导方针。输入输出(FIO)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1306年 方案及质量措施——可靠性
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1308年 方案及质量措施,安全
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1340年 方案及数据保护措施
+分类法映射
映射分类名称 节点ID 适合 映射节点名
软件故障模式 SFP15 错误的资源使用
CERT C安全编码 FIO46-C CWE更抽象 不访问一个封闭的文件
CERT C安全编码 MEM30-C CWE更抽象 不访问释放内存
OMG ASCSM ASCSM -cwe - 672
+引用
(ref - 962)对象管理组织(OMG)。“自动源代码安全措施(ASCSM)”。ascsm - cwe - 672。2016 - 01。<http://www.omg.org/spec/ASCSM/1.0/>。
+内容的历史
+提交
提交日期 提交者 组织
2008-04-11 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新的关系
2010-02-16 CWE内容团队 主教法冠
更新Demonstrative_Examples、描述、名称、关系
2010-09-27 CWE内容团队 主教法冠
更新Observed_Examples、人际关系
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences
2012-05-11 CWE内容团队 主教法冠
更新Common_Consequences Demonstrative_Examples,关系
2013-02-21 CWE内容团队 主教法冠
更新的关系
2014-02-18 CWE内容团队 主教法冠
更新Applicable_Platforms
2014-07-30 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2017-11-08 CWE内容团队 主教法冠
更新Demonstrative_Examples Taxonomy_Mappings
2019-01-03 CWE内容团队 主教法冠
更新引用关系,Taxonomy_Mappings
2019-06-20 CWE内容团队 主教法冠
更新关系类型
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、人际关系
2020-08-20 CWE内容团队 主教法冠
更新的关系
2020-12-10 CWE内容团队 主教法冠
更新的关系
2021-10-28 CWE内容团队 主教法冠
更新的关系
+以前的条目名称
改变日期 以前的条目名称
2010-02-16 使用过期或释放后的一个资源

cwe - 921:存储的敏感数据没有访问控制机制

弱点ID: 921
抽象:基地
结构:简单的
视图定制的信息:
+描述
该软件将敏感信息存储在一个文件系统或设备,没有内置的访问控制。
+扩展描述

虽然许多现代文件系统或设备使用某种形式的访问控制来限制访问数据,不是所有的存储机制都有这种功能。例如,记忆卡、软盘、cd, USB设备通常是由系统内的任何用户访问。这可以成为一个问题,当敏感数据存储在这些机制在多用户环境中,因为任何人在系统上可以读或写数据。

在Android设备上,外部存储通常是在全球范围内可由其他应用程序在设备上读和写。外部存储器也可以方便的通过移动设备的USB连接或身体通过设备的记忆卡端口来访问。

+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 922年 不安全的存储敏感信息
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 199年 信息管理错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1011年 授权的演员
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计 遗漏:这个弱点是由于缺少一个安全策略在体系结构和设计阶段。
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

技术的影响:阅读应用程序数据;读文件或目录

攻击者可以读取敏感信息通过访问不受限制的存储机制。
完整性

技术的影响:修改应用程序数据;修改文件或目录

攻击者可以修改或删除敏感信息通过访问不受限制的存储机制。
+引用
(ref - 921) Android开源项目。“安全提示”。2013-07-16。<http://developer.android.com/training/articles/security-tips.html StoringData>。
+内容的历史
+提交
提交日期 提交者 组织
2013-06-22 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2017-11-08 CWE内容团队 主教法冠
更新Modes_of_Introduction、引用关系
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、人际关系

cwe - 798:使用硬编码的凭证

弱点ID: 798
抽象:基地
结构:简单的
视图定制的信息:
+描述
软件包含硬编码的凭证,如密码或密钥,这对自己的入站的身份验证,它使用出站通信外部组件,或内部数据的加密。
+扩展描述

硬编码的证书通常创建一个巨大的洞,允许攻击者绕过身份验证配置的软件管理员。这个洞可能是系统管理员很难检测到。即使发现,很难解决,所以管理员可能会被迫完全禁用产品。主要有两个变化:

入站:软件包含身份验证机制,检查输入凭证对一套硬编码的凭证。
出站:软件连接到另一个系统或组件,它包含硬编码连接到该组件的凭证。

在入站变体,一个默认的政府创建账户,和一个简单的密码是硬编码到产品和与该账户关联。这个硬编码的密码是相同的对于每一个产品的安装,它通常由系统管理员无法改变或禁用没有手动修改程序,或修补软件。如果密码是发现或发表(一个在互联网上常见),然后有人用这个密码就可以访问产品的知识。最后,因为所有安装的软件将有相同的密码,甚至在不同的组织中,这使得大规模攻击如蠕虫。

出站变体适用于前端与后端服务系统进行身份验证。后端服务可能需要一个固定的密码,可以很容易地发现。程序员可能只是硬编码这些后端凭证到前端的软件。任何用户的程序可以提取密码。客户端使用硬编码的密码系统构成更大的威胁,因为密码的提取从一个二进制通常是非常简单的。

+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 344年 在动态变化的环境中使用不变的价值
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 671年 缺乏安全管理员控制
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 1391年 使用弱的凭证
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 259年 使用硬编码的密码
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 321年 使用硬编码的加密密钥
PeerOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 257年 可恢复的格式存储的密码
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 255年 凭证管理错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 287年 不适当的身份验证
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1010年 验证的演员
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及质量的措施(2020)”(CWE-1305)
自然 类型 ID 的名字
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 259年 使用硬编码的密码
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 321年 使用硬编码的加密密钥
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及数据保护措施”(cwe - 1340)
自然 类型 ID 的名字
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 259年 使用硬编码的密码
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 321年 使用硬编码的加密密钥
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计 实现:造成这一弱点在建筑安全策略的实施。
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

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

技术的影响:旁路保护机制

如果使用硬编码的密码,基本上可以肯定的是,恶意用户会访问帐户的问题。
完整性
保密
可用性
访问控制
其他

技术的影响:阅读应用程序数据;获得特权或假设的身份;执行未经授权的代码或命令;其他

这个弱点的暴露会导致意想不到的演员资源或功能,可能为攻击者提供敏感信息甚至执行任意代码。
+利用的可能性
+示范例子

示例1

下面的代码使用一个硬编码的密码连接到一个数据库:

(坏的代码)
例如语言:Java

DriverManager。getConnection (url,”斯科特”、“老虎”);

这是一个例子的外部硬编码的密码的客户端连接。这段代码将成功运行,但访问的人都将获得密码。项目已经运送,没有从数据库返回的用户与密码“斯科特”“老虎”,除非程序打补丁。狡猾的员工访问此信息可以使用它来进入系统。更糟糕的是,如果攻击者可以访问应用程序的字节码,他们可以使用javap - c命令访问反汇编代码,它将包含的值所使用的密码。这个操作的结果可能类似于上面的示例如下:

(攻击代码)
javap - c ConnMngr.class
22:ldc # 36;/ /字符串jdbc: mysql / /ixne.com/rxsql
24:ldc # 38;/ /字符串斯科特
26日:ldc # 17;/ /字符串老虎

示例2

下面的代码的一个例子是一个内部后端中硬编码的密码:

(坏的代码)
例如语言:C
int VerifyAdmin (char *密码){
如果(strcmp(密码,“海鸥!”)){
printf("口令不正确! \ n ");
返回(0)
}
printf("进入诊断模式…\ n”);
返回(1);
}
(坏的代码)
例如语言:Java
int VerifyAdmin(字符串密码){
如果(! password.equals(新!)){
返回(0)
}
/ /诊断模式
返回(1);
}

这个项目的每个实例可以放入诊断模式使用相同的密码。更糟的是,如果这个项目分布的二进制只读分布符合,很难改变密码或禁用这个功能。”

示例3

下面的代码示例尝试使用硬编码的加密密钥来验证密码。

(坏的代码)
例如语言:C
int VerifyAdmin (char *密码){
如果比较字符串(密码“68”af404b513073584c4b6f22b6c63e6b)) {

printf("口令不正确! \ n ");
返回(0);
}
printf("进入诊断模式…\ n”);
返回(1);
}
(坏的代码)
例如语言:Java
公共布尔VerifyAdmin(字符串密码){
如果(password.equals (“68”af404b513073584c4b6f22b6c63e6b)) {
system . out。println(“进入诊断模式…”);
返回true;
}
system . out。println(“不正确的密码!”);
返回错误;
(坏的代码)
例如语言:c#
int VerifyAdmin(字符串密码){
如果(password.Equals (“68”af404b513073584c4b6f22b6c63e6b)) {
控制台。WriteLine("Entering Diagnostic Mode...");
返回(1);
}
控制台。WriteLine("Incorrect Password!");
返回(0);
}

加密密钥是在一个硬编码的字符串值相比密码。很可能攻击者将能够阅读的关键系统和妥协。

示例4

下面的例子展示的部分属性和配置文件为Java和ASP。网络应用程序。文件包含用户名和密码信息,但他们在明文存储。

这个Java示例显示了一个属性文件明文用户名/密码对。

(坏的代码)
例如语言:Java

# Java Web应用程序ResourceBundle属性文件

webapp.ldap.username = secretUsername
webapp.ldap.password = secretPassword

下面的例子展示了一个配置文件的一部分ASP。网络应用程序。这个配置文件包含连接到数据库的用户名和密码信息,但对存储在明文。

(坏的代码)
例如语言:ASP.NET

< connectionStrings >
<添加名称= connectionString =“ud_DEV connectDB = uDB;uid = db2admin;pwd =密码;dbalias = uDB; System.Data providerName =。Odbc " / >
< / connectionStrings >

用户名和密码信息不应包括在一个配置文件或一个属性文件明文这将允许任何人可以读取文件访问资源。如果可能的话,这个信息加密。

示例5

2022年,OT:冰崩研究调查了10个不同的操作技术(OT)供应商的产品。研究人员报道,56个漏洞,说产品是“不安全的设计”(ref - 1283]。如果这些漏洞利用,往往让对手改变产品运营,从拒绝服务改变产品执行的代码。因为这些产品经常被应用于行业,如电力、电气、水,和其他人,甚至会出现安全问题。

多个供应商使用硬编码的证书在他们的产品。

+观察到的例子
参考 描述
状态监控固件维护接口使用硬编码的凭证
工程工作站使用硬编码的加密密钥,可以允许unathorized文件系统访问和特权升级
分布式控制系统(DCS)硬编码为当地的shell访问密码
可编程序逻辑控制器(PLC)使用未登记的维修服务,硬编码的凭证
固件安全仪器系统(SIS)硬编码的凭证访问启动配置
远程终端装置(RTU)使用一个硬编码的SSH私有密钥可能是用于典型的部署
Telnet服务物联网给料机对狗和猫硬编码的密码(ref - 1288]
安装脚本有一个硬编码的秘密令牌值,允许攻击者绕过身份验证
SCADA系统使用一个硬编码的密码保护后端数据库包含授权信息,利用Stuxnet蠕虫病毒
FTP服务器库使用硬编码的用户名和密码三个默认账户
链:路由器固件使用硬编码的用户名和密码来访问调试功能,可用于执行任意代码
服务器使用硬编码的认证密钥
备份产品使用硬编码的用户名和密码,允许攻击者绕过身份验证通过RPC接口
安全设备使用硬编码的密码允许攻击者获得根访问
驱动器加密产品硬编码的加密密钥来加密配置文件存储在可执行程序
VoIP产品使用硬编码的公共凭据,不能改变,它允许攻击者获取敏感信息
VoIP产品使用硬编码的公共和私人SNMP社区无法改变的字符串,它允许远程攻击者获取敏感信息
备份产品包含硬编码的有效凭证,作为一个后门,它允许远程攻击者访问文件系统
+潜在的缓解措施

阶段:体系结构和设计

出站身份验证:存储密码,钥匙,和其他凭证代码之外的强烈保护,加密配置文件或数据库受访问的所有外人,包括其他本地用户在同一个系统上。妥善保护的关键(cwe - 320)。如果你不能使用加密来保护文件,然后确保尽可能严格的权限(REF-7]。

在Windows环境中,加密文件系统(EFS)可能会提供一些保护。

阶段:体系结构和设计

入站认证:而不是硬编码一个默认的用户名和密码,钥匙,或其他身份验证凭证登录,首次利用“第一次登录”模式,要求用户输入一个独特的强密码或密钥。

阶段:体系结构和设计

如果软件必须包含硬编码的凭证或者他们不能被删除掉,执行访问控制检查,限制哪些实体可以访问功能,需要硬编码的凭证。例如,一个特性可能只有通过系统控制台,而不是通过一个网络连接。

阶段:体系结构和设计

对于入站使用密码身份验证:应用强有力的单向散列密码和那些散列存储在一个配置文件或数据库以适当的访问控制。这样,窃取文件/数据库仍然需要攻击者试图破解密码。在处理期间传入密码身份验证,密码的哈希和比较它保存的散列。

使用随机生成的盐为每个单独的散列。这增加的计算量,攻击者需要进行强力攻击,这可能限制彩虹表法的有效性。

阶段:体系结构和设计

前端到后端连接:三个解决方案是可行的,尽管没有人完成。

  • 生成的第一个建议是使用密码或密钥自动改变,必须在给定的时间间隔输入系统管理员。这些密码将在内存中,只有有效的时间间隔。
  • 接下来,密码或密钥只能有限在后端执行操作有效的前端,而不是完整的访问。
  • 最后,发送的消息应该标记和校验和值,以防止replay-style攻击时间敏感。
+弱点Ordinalities
Ordinality 描述
(其他弱点的弱点存在独立的)
+检测方法

黑盒

证书存储在配置文件中使用黑盒可发现的方法,但是使用硬编码的走马上任的身份验证凭证程序通常涉及一个帐户之外的代码是不可见的。

有效性:温和

自动静态分析

自动化白盒技术已发表检测硬编码为传入的身份验证凭证,但是有一些专家争论关于它们的有效性和适用性广泛的方法。

人工静态分析

这个弱点可能检测到使用手工代码分析。除非身份验证是分散和应用软件,可以有足够的时间让分析师发现输入身份验证例程和检查程序逻辑寻找使用硬编码的凭证。配置文件也可以分析。
注意:这些可能是更有效的比严格的自动化技术。尤其如此弱点设计和相关的业务规则。

手动动态分析

硬编码在传入的身份验证凭据:使用监控工具,检查软件的过程,因为它与操作系统和网络。这种技术的情况很有用的源代码不可用,如果软件并不是由你,或者如果你想验证构建阶段并没有引入任何新的弱点。例子包括调试器直接附加到正在运行的进程;系统调用跟踪实用程序,如桁架(Solaris)和strace (Linux);系统活动监视器如FileMon、RegMon、过程监控、和其他的Sysinternals工具(Windows);嗅探器和协议分析,监控网络流量。

把监控和执行登录过程。使用从输出调用树或类似的工件,检查相关的行为,看看他们中的任何一个似乎比较固定的输入字符串或价值。

自动静态分析——二进制或字节码

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 字节码的弱点分析,包括反汇编程序+源代码弱点分析
  • 二进制弱点分析,包括反汇编程序+源代码弱点分析

有效性:飙升部分

人工静态分析——二进制或字节码

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 二进制/字节码反汇编程序,然后使用手动分析缺陷和异常

有效性:高

动态分析与人工解释结果

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 网络嗅探器
  • 强制执行路径

有效性:飙升部分

人工静态分析源代码

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 关注人工抽查,手动分析来源
  • 手工源代码审查(不检查)

有效性:高

自动静态分析源代码

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 源代码缺陷分析仪
  • Context-configured源代码分析器

有效性:高

自动静态分析

根据飙升,以下检测技术可能是有用的:

成本有效的部分报道:
  • 配置检查

有效性:飙升部分

体系结构或设计审查

根据飙升,以下检测技术可能是有用的:

高成本效益:
  • 检验(IEEE 1028标准)(适用于需求、设计、源代码,等等)。
  • 正式的方法/ Correct-By-Construction

有效性:高

+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 254年 7 pk -安全特性
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 724年 OWASP十大2004类别A3 -破碎的认证和会话管理
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 753年 2009年前25 -多孔防御
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 803年 2010年前25 -多孔防御
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 812年 OWASP十大2010类别A3 -破碎的认证和会话管理
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 861年 CERT甲骨文安全Java编码标准(2011)第18章-杂项(MSC)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 866年 2011年前25 -多孔防御
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 884年 CWE横截面
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1131年 方案》(2016)——安全质量措施
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1152年 SEI CERT甲骨文Java安全编码标准,指南49。杂项(MSC)
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条目包含一组其他条目,共享一个共同的特点。 1353年 OWASP十大2021类别A07:2021 -识别和身份验证失败
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1387年 2022 CWE最危险软件的弱点的弱点
+分类法映射
映射分类名称 节点ID 适合 映射节点名
CERT甲骨文安全Java编码标准(2011) MSC03-J 不要硬编码敏感信息
OMG ASCSM ASCSM -cwe - 798
+引用
[REF-7]大卫迈克尔·霍华德和勒布朗。编写安全代码。第八章,“密钥管理问题”272页。第二版。微软出版社。2002-12-04。<https://www.microsoftpressstore.com/store/writing -安全-代码- 9780735617223>。
[ref - 729]约翰内斯·乌尔里希。“前25系列——排名11 -硬编码凭证”。无软件安全研究所。2010-03-10。<http://blogs.sans.org/appsecstreetfighter/2010/03/10/top-25-series-rank-11-hardcoded-credentials/>。
Chris Wysopal [ref - 172]。“移动应用前10名名单”。2010-12-13。<http://www.veracode.com/blog/2010/12/mobile-app-top-10-list/>。
(ref - 962)对象管理组织(OMG)。“自动源代码安全措施(ASCSM)”。ascsm - cwe - 798。2016 - 01。<http://www.omg.org/spec/ASCSM/1.0/>。
[ref - 1283] Forescout Vedere实验室。“OT:冰崩:遗留的“不安全的通过设计“认证和风险管理及其影响”。2022-06-20。<https://www.forescout.com/resources/ot-icefall-report/>。
茱莉亚Lokrantz (ref - 1288)。“道德黑客智能自动饲料分配器”。2021-06-07。<http://kth.diva-portal.org/smash/get/diva2:1561552 FULLTEXT01.pdf>。
(ref - 1304) ICS-CERT。“ICS警报(ICS -报警- 13 - 164 - 01):医疗设备硬编码的密码”。2022-10-11。2013-06-13。<https://www.cisa.gov/uscert/ics/alerts/ics -警报- 13 - 164 - 01>。
+内容的历史
+提交
提交日期 提交者 组织
2010-01-15 CWE内容团队 主教法冠
更抽象的条目硬编码的密码和硬编码的加密密钥。
+修改
修改日期 修饰符 组织
2010-04-05 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2010-06-21 CWE内容团队 主教法冠
更新Common_Consequences,引用
2010-09-27 CWE内容团队 主教法冠
更新Potential_Mitigations
2010-12-13 CWE内容团队 主教法冠
更新描述
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2011-06-27 CWE内容团队 主教法冠
更新Observed_Examples、人际关系
2011-09-13 CWE内容团队 主教法冠
更新Potential_Mitigations、人际关系
2012-05-11 CWE内容团队 主教法冠
更新Demonstrative_Examples Related_Attack_Patterns,关系,Taxonomy_Mappings
2012-10-30 CWE内容团队 主教法冠
更新Demonstrative_Examples Potential_Mitigations
2013-02-21 CWE内容团队 主教法冠
更新Applicable_Platforms,引用
2014-07-30 CWE内容团队 主教法冠
更新Demonstrative_Examples Detection_Factors
2015-12-07 CWE内容团队 主教法冠
更新的关系
2017-01-19 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2017-11-08 CWE内容团队 主教法冠
更新Causal_Nature、Demonstrative_Examples Likelihood_of_Exploit Modes_of_Introduction,引用关系
2018-03-27 CWE内容团队 主教法冠
更新的引用
2019-01-03 CWE内容团队 主教法冠
更新引用关系,Taxonomy_Mappings
2019-06-20 CWE内容团队 主教法冠
更新Related_Attack_Patterns、人际关系
2019-09-19 CWE内容团队 主教法冠
更新的关系
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、人际关系
2020-08-20 CWE内容团队 主教法冠
更新的关系
2020-12-10 CWE内容团队 主教法冠
更新的关系
2021-03-15 CWE内容团队 主教法冠
更新Demonstrative_Examples
2021-07-20 CWE内容团队 主教法冠
更新的关系
2021-10-28 CWE内容团队 主教法冠
更新的关系
2022-06-28 CWE内容团队 主教法冠
更新的关系
2022-10-13 CWE内容团队 主教法冠
更新Applicable_Platforms、Demonstrative_Examples Observed_Examples、引用关系

cwe - 927:为敏感通信使用隐式意图

弱点ID: 927
抽象:变体
结构:简单的
视图定制的信息:
+描述
Android应用程序使用隐式意图传输敏感数据的其他应用程序。
+扩展描述

因为一个隐式意图不指定一个特定的应用程序来接收数据,任何应用程序可以通过使用一个意图过滤器处理的意图,意图。这可以允许不受信任的应用程序获得敏感数据。有两种不同的标准广播意图,命令和粘性。

命令广播意图传递的一系列注册接收器的顺序优先宣布的接收器。恶意接收方可以给自己一个高优先级,造成拒绝服务进一步通过阻止广播传播链。还有恶意数据修改的可能性,作为一个接收器也可能改变数据在意图传递给下一个接收方之前。下游组件无法断言早些时候没有改变的数据链。

粘性广播意图保持在最初的广播。老粘性意图将再次播放任何新的接收器注册它在未来,大大增加信息的机会接触。同时,粘性广播不能保护权限,可能适用于其他类型的意图。

此外,任何广播意图可能包括一个URI引用数据接收组件通常没有权限访问。发送方的意图可以包括特权授予接收方读或写访问特定的URI中包含的意图。恶意接收方拦截这个意图也将获得这些特权,可以读或写的资源在指定的URI。

+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 668年 曝光资源错误的球体
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 285年 不适当的授权
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

技术

类:移动患病率(待定)

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

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

可能是不可信的,其他应用程序可以读取数据,通过意图。
完整性

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

应用程序可以处理响应来自不受信任的应用程序在设备上,这可能导致执行意外或未经授权的操作。
+示范例子

示例1

这个应用程序想要创建一个用户帐户在几个受信任应用程序使用一个广播意图:

(坏的代码)
例如语言:Java
目的意图= new意图();
intent.setAction (“com.example.CreateUser”);
意图。putExtra(“用户名”,uname_string);
意图。putExtra(“密码”,pw_string);
sendBroadcast(意图);

这个应用程序假定只有受信任应用程序将监听行动。恶意应用程序可以注册这个动作,拦截用户的登录信息,如下:

(攻击代码)
例如语言:Java
IntentFilter过滤器= new IntentFilter (“com.example.CreateUser”);
MyReceiver接收机= new MyReceiver ();
registerReceiver(接收机、过滤);

当广播包含敏感信息,创建一个allowlist的应用程序可以使用应用程序的清单文件接收行动,或通过编程的方式将每个目的意图接收器。

示例2

这个应用程序与web服务接口,需要一个单独的用户登录。它创建一个粘稠的意图,所以未来还受信任的应用程序使用web服务将知道当前用户是谁:

(坏的代码)
例如语言:Java
目的意图= new意图();
intent.setAction (“com.example.service.UserExists”);
意图。putExtra(“用户名”,uname_string);
sendStickyBroadcast(意图);
(攻击代码)
例如语言:Java
IntentFilter过滤器= new IntentFilter (“com.example.service.UserExists”);
MyReceiver接收机= new MyReceiver ();
registerReceiver(接收机、过滤);

粘性的广播可以读任何应用程序在任何时候,所以不应该包含敏感信息,比如用户名。

示例3

此应用程序发送一个有序广播,让其他应用程序打开一个网址:

(坏的代码)
例如语言:Java
目的意图= new意图();
intent.setAction (“com.example.OpenURL”);
意图。putExtra (“URL_TO_OPEN”, url_string);
sendOrderedBroadcastAsUser(意图);

广播链可能改变数据的任何应用程序内的意图。这个恶意应用程序改变URL指向一个攻击网站:

(攻击代码)
例如语言:Java
公开课CallReceiver BroadcastReceiver{延伸
@Override
公共空间onReceive(上下文语境,意图意图){
字符串Url = intent.getStringExtra (Intent.URL_TO_OPEN);
attackURL = "www.example.com/attack?”+Url;
setResultData (attackURL);
}
}

最后接收应用程序将打开攻击URL。在可能的情况下,意图发送给特定的受信任应用程序而不是使用广播链。

示例4

这个应用程序发送一个特殊目的的国旗允许接收应用程序读取数据文件进行备份。

(坏的代码)
例如语言:Java
目的意图= new意图();
intent.setAction (“com.example.BackupUserData”);
intent.setData (file_uri);
intent.addFlags (FLAG_GRANT_READ_URI_PERMISSION);
sendBroadcast(意图);
(攻击代码)
例如语言:Java
公开课CallReceiver BroadcastReceiver{延伸
@Override
公共空间onReceive(上下文语境,意图意图){
用户数据Uri = intent.getData ();
stealUserData(用户数据);
}
}

任何恶意应用程序可以注册以接收此意图。因为FLAG_GRANT_READ_URI_PERMISSION包括目的,恶意接收方代码可以读取用户的数据。

+潜在的缓解措施

实施阶段:

如果应用程序只需要沟通与自己的组件,然后目标始终是已知的,可以使用一个显式意图。
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1348年 OWASP 2021年十大类别A04:2021——不安全设计
+引用
[ref - 922] Erika下巴,艾德丽安波特认为,凯特•格林伍德和大卫·瓦格纳。分析在Android应用程序之间的通信。3.2.1之上。<http://www.eecs.berkeley.edu/寒鸦/论文/ intents-mobisys11.pdf>。
(ref - 923) Android开源项目。“安全提示”。2013-07-16。<http://developer.android.com/training/articles/security-tips.html内容提供者>。
+内容的历史
+提交
提交日期 提交者 组织
2013-07-09 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2014-02-18 CWE内容团队 主教法冠
更新Demonstrative_Examples、描述引用
2017-11-08 CWE内容团队 主教法冠
更新的引用
2020-02-24 CWE内容团队 主教法冠
更新Applicable_Platforms、人际关系
2020-06-25 CWE内容团队 主教法冠
更新Demonstrative_Examples
2021-03-15 CWE内容团队 主教法冠
更新Maintenance_Notes
2021-10-28 CWE内容团队 主教法冠
更新的关系
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2022年10月13日