描述
执行命令或加载库从一个不受信任的源或在一个不可信的环境中可能导致应用程序执行恶意命令(和有效载荷)代表一个攻击者。
扩展描述
过程控制漏洞采取两种形式:
- 攻击者可以改变程序执行的命令:攻击者明确控制命令是什么。
- 攻击者可以改变命令执行的环境:攻击者隐式控制命令是什么意思。
第一类型的过程控制漏洞时要么来自不受信任来源的数据进入应用程序和数据被用作一个字符串的一部分代表一个命令执行的应用程序。通过执行命令,应用程序为攻击者提供了特权或能力,否则攻击者不会有。
的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关的视图”研究概念”(cwe - 1000)
自然 |
类型 |
ID |
的名字 |
ChildOf |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
73年 |
外部控制文件名或路径 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关视图”架构概念”(cwe - 1008)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1011年 |
授权的演员 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关观点“七有害的王国”(cwe - 700)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
20. |
不正确的输入验证 |
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
实现 |
实现:造成这一弱点在建筑安全策略的实施。 |
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
示范例子
示例1
下面的代码使用System.loadLibrary()从本地加载代码库命名库。dll,它通常是在一个标准的系统目录中。
… System.loadLibrary (“library.dll”); …
这里的问题是,System.loadLibrary()接受一个库名称,不是一个路径,为库加载。这个函数从Java 1.4.2 API文档表现如下[1]:包含本机代码的文件从本地文件系统加载库文件从一个地方传统。这个过程是随具体的细节。从图书馆名称映射到一个特定的文件名是系统特定的方式完成的。如果攻击者能够放置一个恶意的图书馆。dll更高的搜索顺序文件中的应用程序将加载,那么应用程序将加载恶意复制而不是目的文件。因为应用程序的性质,以更高权限运行,这意味着攻击者的库的内容。dll将以更高权限运行,可能给他们完整的控制系统。
示例2
下面的代码从一个特权应用程序使用一个注册表项来确定目录中安装并加载库文件基于指定的目录的相对路径。
… RegQueryValueEx(根键,“APPHOME”, 0 0(字节*),大小); char *自由= (char *) malloc (strlen(家)+ strlen (INITLIB)); 如果(自由){
拷贝字符串(自由、家庭); strcat(自由、INITCMD); LoadLibrary(自由);
} …
这个例子中的代码允许攻击者任意加载库,与高特权的代码将被执行的应用程序,通过修改注册表键指定一个包含恶意INITLIB版本不同的道路。因为程序不验证值读取环境,如果攻击者可以控制APPHOME的价值,他们可以愚弄应用程序运行恶意代码。
示例3
下面的代码是一个基于web的管理工具,允许用户访问接口,可以更新他们的个人资料。该实用程序自由利用图书馆命名。dll,它通常是在一个标准的系统目录中。
LoadLibrary (“liberty.dll”);
问题是,程序不为liberty.dll指定绝对路径。如果攻击者能够将恶意图书馆命名自由。dll更高的搜索顺序文件中的应用程序将加载,那么应用程序将加载恶意复制而不是目的文件。因为应用程序的性质,以更高权限运行,这意味着攻击者的自由的内容。dll将以更高权限运行,可能让攻击者完全控制系统。攻击的类型,在本例中是有可能的,因为使用的搜索顺序LoadLibrary()如果不指定绝对路径。如果当前目录搜索系统目录之前,一样直到最近版本的Windows,那么这种类型的攻击变得微不足道,如果攻击者可以在本地执行的程序。搜索顺序依赖操作系统版本,和控制新操作系统的注册表键值:HKLM \ system \ CurrentControlSet \ \会话管理器\ SafeDllSearchMode控制
潜在的缓解措施
阶段:体系结构和设计
加载库,应该很好的理解来自可信来源。应用程序可以执行本地库中包含的代码,通常包含调用易受其它安全问题,如缓冲区溢出或命令注入。所有的本地库应该验证来确定应用程序需要使用图书馆。很难确定这些本地库实际上做什么,以及潜在的恶意代码是高的。此外,潜在的一个无意的错误在这些本地库也很高,很多是用C或c++编写的,可能容易受到缓冲区溢出或竞争条件问题。帮助防止缓冲区溢出攻击、验证所有输入本机要求内容和长度。如果本地库并非来自可信来源,审查的源代码库。图书馆应在使用前由审查源。 |
检测方法
自动静态分析
自动静态分析,通常被称为静态应用程序安全性测试(科协),可以找到一些实例的这个弱点分析源代码或二进制/编译后的代码,而不必执行它。通常情况下,这是通过建立一个模型的数据流和控制流,然后寻找潜在攻击模式,连接“源”与“下沉”(输入)的起源(目的地数据与外部组件交互,较低的层,如操作系统,等等)。
|
影响资源
脆弱性映射笔记
用法:Allowed-with-Review
(CWE ID可以用来映射到实际的漏洞在有限的情况下需要仔细审查) |
原因:抽象 |
理由是: 这个CWE条目是一个类并会基本的孩子可能更合适 |
评论: 检查这个条目的孩子是否有一个更好的选择 |
笔记
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
7有害的王国 |
|
|
过程控制 |
引用
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|