描述
敌人直接或间接修改环境变量或控制目标所使用的软件。敌人的目标是导致目标偏离预期的软件操作的方式有利于对手。
攻击的可能性
典型的严重性
的关系
此表显示了其他的攻击模式和高水平类别相关的这种攻击模式。这些关系被定义为ChildOf ParentOf,给类似的项目可能存在的洞察力在较高和较低的抽象级别。此外,关系如光束,PeerOf, CanAlsoBe定义显示类似的攻击模式,用户可能想要探索。
自然 |
类型 |
ID |
的名字 |
ChildOf |
标准的攻击模式-一个标准的级别CAPEC中攻击模式是集中在一个特定的方法或技术用于攻击。它通常被视为一个单一的完全执行攻击。标准的攻击模式是为了提供足够的细节来理解特定的技术,以及它如何试图完成预期的目标。标准水平的攻击模式是一种特定类型的一个更抽象的元级别的攻击模式。 |
77年 |
操纵用户控制变量 |
PeerOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
10 |
缓冲区溢出通过环境变量 |
CanPrecede |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
14 |
客户端Injection-induced缓冲区溢出 |
此表显示了这种攻击模式的观点属于和顶级类别内的这一观点。
执行流程
探索
探测目标应用程序:敌人首先探测目标应用程序来确定重要的有关目标的信息。这些信息可能包括类型使用软件,软件版本,用户输入应用程序消耗什么,等等。最重要的是,对手试图确定哪些环境变量可能使用由底层软件,甚至应用程序本身。
实验
找到用户控制环境变量:使用探测应用程序发现的信息,对手试图操纵任何用户控制环境变量他们发现正在使用的应用程序,或怀疑正在使用的应用程序,并观察这些变化的影响。如果对手通知任何重大修改应用程序,他们就知道一定的环境变量是重要的应用程序行为,表明可能的攻击向量。
技术 |
改变已知的环境变量,如“$路径”,“美元主机名”或“LD_LIBRARY_PATH”,看看应用程序行为的变化。 |
利用
操作用户控制环境变量:发现敌人操纵环境变量(s)滥用的正常流动过程或获得特权的资源。
先决条件
一个环境变量可以给用户。 |
一个环境变量使用的应用程序可以与用户提供的污染数据。 |
一个环境变量中使用输入数据不能正常验证。 |
变量封装做得不恰当。例如设置一个变量作为公共类中使它可见,敌人可能试图操纵变量。 |
技能要求
(等级:低) 在基于web的场景中,客户端控件的数据提交到服务器。所以任何人都可以尝试发送恶意数据,试图绕过身份验证机制。 |
(级别:高) 一些更高级的攻击可能需要了解协议和探测技术,帮助控制一个变量。恶意用户可能会试图理解身份验证机制以击败它。 |
后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密
完整性
可用性 |
执行未经授权的命令 |
|
保密
访问控制
授权 |
旁路保护机制 |
|
可用性 |
不可靠的执行 |
|
保密 |
读取数据 |
|
问责制 |
隐藏活动 |
|
缓解措施
保护环境变量免受未经授权的读和写访问。 |
保护配置文件包含环境变量对非法的读和写访问。 |
假设所有的输入是恶意的。创建一个定义所有有效allowlist输入软件系统根据需求规格说明书。输入不匹配allowlist不应被允许进入系统。 |
应用最小特权原则。如果一个进程没有合法理由读一个环境变量不给,特权。 |
例子,实例
改变LD_LIBRARY_PATH环境变量在TELNET将导致TELNET使用另一个(可能是木马)版本的函数库。木马库必须使用目标文件系统访问和应包括木马代码将允许用户与一个糟糕的密码登录。这就要求对手上传木马库目标上的特定位置。作为替代上传木马文件,一些文件系统支持文件路径,包括远程地址,如\ \ 172.16.2.100 \ shared_files \ trojan_dll.dll。参见:操纵路径(cve - 1999 - 0073) |
HISTCONTROL环境变量跟踪应该保存历史命令,最终到~ /。当用户注销bash_history文件。可以配置此设置忽略命令从一个空间通过设置“ignorespace”。HISTCONTROL也可以忽略重复的命令设置通过设置“ignoredups”。在一些Linux系统,这是默认设置为“ignoreboth”涵盖了前面的两个例子。这意味着“ls”不会得救,但“ls”将保存历史。在macOS HISTCONTROL默认是不存在的,但可以由用户设置,并将尊重。对手可以使用这个操作没有留下痕迹,追加一个空间所有终端的命令。 |
分类法映射
CAPEC映射ATT&CK技术利用一个继承模型简化和减少直接CAPEC / ATT&CK映射。继承的映射表示文本说明父CAPEC有相关ATT&CK映射。注意,ATT&CK企业框架不使用一个继承模型的一部分映射到CAPEC。
相关ATT&CK分类法映射
引用
[REF-1] g·霍格伦德和g·麦格劳。“利用软件:如何打破代码”。addison - wesley。2004 - 02。 |
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2014-06-23
(版本2.6) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2017-01-09
(版本2.9) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Related_Attack_Patterns |
2018-07-31
(版本2.12) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Attacker_Skills_or_Knowledge_Required Examples-Instances,引用 |
2019-09-30
(版本3.2) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances |
2020-07-30
(版本3.3) |
CAPEC内容团队 |
manbetx客户端首页 |
更新后的后果,Taxonomy_Mappings措施之一 |
2020-12-17
(版本3.4) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Taxonomy_Mappings |
2021-06-24
(版本3.5) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Taxonomy_Mappings |
2022-02-22
(版本3.7) |
CAPEC内容团队 |
manbetx客户端首页 |
更新描述、Example_Instances Execution_Flow,先决条件 |
|