cwe - 99:不当控制资源标识符(“资源注入”)
 描述
产品从一个上游组件接收输入,但这并不限制或者错误地限制输入前用作标识符以外的资源可能有意的控制范围。
 扩展描述
一个资源注入的问题发生在满足以下两个条件:
- 攻击者可以指定用于访问系统资源的标识符。例如,攻击者可以指定一个文件的名称的一部分被打开或使用的端口号。
- 通过指定的资源,攻击者获得能力,否则将不会被允许。例如,程序可以使攻击者能够覆盖指定的文件,运行配置由攻击者控制,或传输敏感信息的第三方服务器。
这可能允许攻击者访问或修改,否则保护系统资源。
 替代条款
不安全的直接对象引用: |
OWASP使用这个术语,尽管它是有效的资源注入相同。 |
 的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
 相关的视图”研究概念”(cwe - 1000)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
74年 |
不当中和下游组件使用的特殊元素的输出(注射) |
ParentOf |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
641年 |
不当限制文件和其他资源的名称 |
ParentOf |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
694年 |
与重复使用多个资源标识符 |
ParentOf |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
914年 |
不当Dynamically-Identified变量的控制 |
PeerOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
706年 |
使用Incorrectly-Resolved名称或引用 |
CanAlsoBe |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
73年 |
外部控制文件名或路径 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
 相关视图”架构概念”(cwe - 1008)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1019年 |
验证输入 |
 模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
架构和设计 |
|
实现 |
实现:造成这一弱点在建筑安全策略的实施。 |
 常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密 完整性
|
技术的影响:阅读应用程序数据;修改应用程序数据;阅读文件或目录;修改文件或目录
攻击者可以访问或修改敏感数据或系统资源。这可能允许访问受保护的文件或目录包括配置文件和文件包含敏感信息。 |
|
 利用的可能性
 示范例子
示例1
下面的Java代码使用来自HTTP请求来创建一个输入文件名。程序员没有考虑的可能性,攻击者可以提供一个文件名称如“. . / . . / / conf / tomcat服务器。xml”,导致应用程序删除自己的配置文件。
字符串rName = request.getParameter (“reportName”); 文件rFile =新文件(“/ usr /地方/ apfr /报告/”+ rName); … rFile.delete ();
示例2
下面的代码使用从命令行输入来确定哪些文件打开和回声返回给用户。如果程序运行与特权和恶意用户可以创建软链接的文件,他们可以使用程序来阅读第一部分系统上的任何文件。
ifstream ifs (argv [0]); 字符串年代; ifs > >; cout < <年代;
资源数据的影响显示的内容可能是危险的。例如,数据包含特殊字符等时期,削减,反斜杠,使用时是有风险的方法,与文件系统交互。(资源注入,当它与文件系统资源,有时被称为“操纵路径。”)同样,数据包含url和uri是危险的对于函数创建远程连接。
 潜在的缓解措施
实施阶段:
假设所有的输入是恶意的。使用一个“接受良好的“输入验证策略,即。,使用一个可接受的输入列表,严格遵守规范。拒绝任何不严格符合规范的输入,或将其转换为一些。
当执行输入验证,考虑所有可能相关的属性,包括长度,类型的输入,可接受的值的全系列,缺失或额外的输入,语法,一致性相关领域,符合业务规则。作为业务规则逻辑的一个例子,在语法上“船”可能是有效的,因为它只包含字母数字字符,但它不是有效的如果输入预计仅包含颜色,如“红”或“蓝色”。
不完全依赖寻找恶意或畸形的输入。这很可能错过至少有一个不受欢迎的输入,特别是如果代码的环境变化。这可以让攻击者有足够的空间绕过验证。然而,它可以用于检测潜在攻击或确定哪些输入是畸形的,应该直接驳回。
|
 弱点Ordinalities
Ordinality |
描述 |
主 |
(其他弱点的弱点存在独立的) |
 会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
813年 |
OWASP十大2010类别A4 -不安全的直接对象引用 |
MemberOf |
视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 |
884年 |
CWE横截面 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
932年 |
OWASP十大2013类别A4 -不安全的直接对象引用 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
990年 |
SFP二级集群:污染输入命令 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1005年 |
7 pk -输入验证和代表性 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1131年 |
方案》(2016)——安全质量措施 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1308年 |
方案及质量措施,安全 |
MemberOf |
视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 |
1340年 |
方案及数据保护措施 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1347年 |
OWASP十大2021类别A03:2021 -注射 |
 笔记
维护
之间的关系 cwe - 99和 cwe - 610需要进一步的调查和澄清。他们可能会重复。 cwe - 99“资源注入”,最初定义的七个有害的王国分类,强调了“标识符用于访问系统资源”如文件名或端口号,然而,它明确指出,“资源注入”术语并不适用于“路径操作,”,有效地识别的路径可以找到资源,可能会被认为是一个资源标识符的一个方面。同时, cwe - 610有效覆盖任何类型的资源,该资源是否在系统层、应用程序层或层的代码。
 分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
7有害的王国 |
|
|
资源注入 |
软件故障模式 |
SFP24 |
|
污染输入命令 |
OMG ASCSM |
ASCSM -cwe - 99 |
|
|
 引用
|