CAPEC-29:利用Time-of-Check和分时(TOCTOU)竞态条件 |
描述
这种攻击目标之间的竞争条件发生的时间检查(州)资源和使用资源的时间。一个典型的例子是文件访问。对手可以利用文件访问竞争条件的“跑步比赛”,这意味着他们会修改资源之间第一次目标程序访问文件和目标程序使用文件的时间。在这段时间,敌人可以替代或修改文件,导致应用程序意外行为。
攻击的可能性
典型的严重性
执行流程
探索
-
对手探索出的访问级别。
实验
-
对手确认目标主机上访问资源。对手确认修改目标资源的能力。
利用
-
对手决定利用“运行竞赛”的竞争条件,这意味着它们将修改资源之间第一次目标程序访问文件和目标程序使用文件的时间。在这段时间,敌人可以替代资源,导致升级特权。
先决条件
资源是由多个进程同时访问/修改。 |
对手能够修改资源。 |
访问资源时存在竞争条件。 |
技能要求
(级别:中等) 这种攻击可以让复杂的袭击以来发生在一个短的时间间隔。 |
后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
完整性 |
修改数据 |
|
保密
访问控制
授权 |
获得特权 |
|
保密
完整性
可用性 |
改变执行逻辑 |
|
保密 |
读取数据 |
|
可用性 |
资源消耗 |
|
缓解措施
使用安全库访问资源,如文件。 |
请注意,使用不当的访问函数调用等乔恩(),tempfile (), chmod()等可能导致竞态条件。 |
使用同步控制执行流。 |
使用静态分析工具来找到竞态条件。 |
注意并发性问题相关的资源的访问。 |
例子,实例
净直接客户为Linux在北电应用开关2424 6.0.5之前,VPN 3050年和3070年,1000年和SSL VPN模块提取与不安全的权限和执行文件,它允许本地用户利用竞态条件来代替一个人人可写的文件在/ tmp / NetClient并导致另一个用户来执行任意代码试图执行此客户端,通过替换/ tmp / NetClient /客户端。参见:cve - 2007 - 1057 |
下面的代码演示了一个多次访问文件的名字在一个公开访问的目录中。之间存在竞争条件访问,敌人可以取代文件引用的名称。
包括< sys / types.h > 包括< fcntl.h > 包括< unistd.h >
定义文件“/ tmp / myfile” 定义UID 100
空白测试(char * str) {
int fd; fd =创造(文件,0644); 如果(fd = = 1)
返回;
乔恩(文件、UID、1);/ * * / 关闭(fd);
}
int主要(int命令行参数个数,char * * argv) {
char * userstr; 如果(命令行参数个数> 1){
userstr = argv [1]; 测试(userstr);
} 返回0;
} (ref - 107] |
引用
ref - 131 j . Viega和g·麦克格劳博士。“构建安全软件”。addison - wesley。2002年。 |
|
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2014-06-23
(版本2.6) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2017-01-09
(版本2.9) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Related_Attack_Patterns |
2017-08-04
(版本2.11) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Attack_Phases Attack_Prerequisites,描述总结,Examples-Instances |
2018-07-31
(版本2.12) |
CAPEC内容团队 |
manbetx客户端首页 |
更新的引用 |
2019-09-30
(版本3.2) |
CAPEC内容团队 |
manbetx客户端首页 |
更新@Abstraction |
2020-07-30
(版本3.3) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances、Execution_Flow Related_Attack_Patterns |
2022-09-29
(版本3.8) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances |
|