描述
这种攻击模式涉及到通过操纵环境变量导致缓冲区溢出。一旦敌人发现他们可以修改一个环境变量,他们可能试图溢出缓冲区有关。这种攻击利用隐式信任通常放置在环境变量。
扩展描述
尽管这种攻击的重点是把过多的内容到一个环境变量,被加载到缓冲区,环境变量可以用来帮助一个经典的缓冲区溢出攻击。的情况下传统的缓冲区溢出攻击中使用的缓冲区不够大来存储对手的shell代码,他们将shell代码存储在一个环境变量,试图恢复其地址,而不是回到他们写信给缓冲区的数据。
攻击的可能性
典型的严重性
的关系
此表显示了其他的攻击模式和高水平类别相关的这种攻击模式。这些关系被定义为ChildOf ParentOf,给类似的项目可能存在的洞察力在较高和较低的抽象级别。此外,关系如光束,PeerOf, CanAlsoBe定义显示类似的攻击模式,用户可能想要探索。
自然 |
类型 |
ID |
的名字 |
ChildOf |
标准的攻击模式-一个标准的级别CAPEC中攻击模式是集中在一个特定的方法或技术用于攻击。它通常被视为一个单一的完全执行攻击。标准的攻击模式是为了提供足够的细节来理解特定的技术,以及它如何试图完成预期的目标。标准水平的攻击模式是一种特定类型的一个更抽象的元级别的攻击模式。 |
One hundred. |
缓冲区溢出 |
PeerOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
13 |
破坏环境变量值 |
PeerOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
46 |
溢出变量和标签 |
光束 |
标准的攻击模式-一个标准的级别CAPEC中攻击模式是集中在一个特定的方法或技术用于攻击。它通常被视为一个单一的完全执行攻击。标准的攻击模式是为了提供足够的细节来理解特定的技术,以及它如何试图完成预期的目标。标准水平的攻击模式是一种特定类型的一个更抽象的元级别的攻击模式。 |
69年 |
目标程序的特权 |
此表显示了这种攻击模式的观点属于和顶级类别内的这一观点。
执行流程
探索
确定目标应用程序:敌人标识一个目标应用程序或程序执行缓冲区溢出。在这种攻击对手寻找一个应用程序,该应用程序将一个环境变量的内容加载到缓冲区。
实验
发现注入向量:对手识别注射向量提供过多的内容目标应用程序的缓冲区。
技术 |
更改环境变量的值被认为是由应用程序使用以包含过多的数据。如果程序是环境变量的值加载到一个缓冲区,这可能导致崩溃和攻击向量会被发现。 |
工艺溢出内容:被注入的对手工艺品的内容。如果目的是简单地导致软件崩溃,内容只需要包含一个过度数量的随机数据。如果目的是利用执行任意代码的溢出,对手工艺品覆盖的有效载荷的方式返回地址被替换为对手的选择之一。
技术 |
创建时将执行的恶意shellcode返回程序执行。 |
使用NOP-sled溢出的内容更容易“幻灯片”到恶意代码。这样做的好处是,确切的返回地址不一定是正确的,只有在所有的空操作的范围 |
利用
缓冲区溢出:使用注射向量,对手注入了溢出的内容到缓冲区。
先决条件
应用程序使用环境变量。 |
一个环境变量接触到用户缓冲区溢出。 |
脆弱的环境变量使用不可信的数据。 |
污染的环境变量中使用的数据是不正确的验证。例如边界检查不做过的输入数据复制到缓冲区。 |
技能要求
(等级:低) 攻击者可以简单地由一个长字符串插入溢出缓冲区attacker-modifiable注入向量。结果可以是一个DoS。 |
(级别:高) 利用缓冲区溢出堆栈注入恶意代码的软件系统,甚至堆可能需要更高的技术水平。 |
指标
如果应用程序绑定检查,它应该失败当数据源大于目标缓冲区的大小。如果应用程序的代码写得很好,失败应该触发警报。 |
后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
可用性 |
不可靠的执行 |
|
保密
完整性
可用性 |
执行未经授权的命令 |
|
保密 |
读取数据 |
|
完整性 |
修改数据 |
|
保密
访问控制
授权 |
获得特权 |
|
缓解措施
不公开用户环境变量。 |
不要使用不受信任的数据在你的环境变量。 |
使用一种语言或编译器执行自动范围检查 |
有工具,如Sharefuzz [REF-2)这是一个环境变量fuzzer为Unix支持加载共享库。你可以使用Sharefuzz确定暴露一个环境变量容易缓冲区溢出。 |
例子,实例
分类法映射
引用
[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客户端首页 |
更新的引用 |
2020-07-30
(版本3.3) |
CAPEC内容团队 |
manbetx客户端首页 |
更新的措施之一 |
2020-12-17
(版本3.4) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Taxonomy_Mappings |
2021-10-21
(版本3.6) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Execution_Flow Extended_Description |
2022-02-22
(版本3.7) |
CAPEC内容团队 |
manbetx客户端首页 |
更新描述 |
2022-09-29
(版本3.8) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances |
|