描述
这种攻击部队一个整数变量的范围。整数变量通常是用作抵消如大小的内存分配或类似的。攻击者通常会控制这些变量的值和范围的试着把它弄出来。例如整数在过去的问题是增加最大可能值,可能包装成为一个非常小的,或负数,因此提供了一个非常错误的值会导致意想不到的行为。在最坏的情况下,攻击者可以执行任意代码。
攻击的可能性
典型的严重性
执行流程
探索
-
第一步是探索性意义攻击者寻找一个整数变量,他们可以控制。
实验
-
攻击者找到一个整型变量,他们可以写进或操作,试图得到整数的值可能的范围。
利用
-
被迫整数变量值的范围,其最终值设置为一个意想不到的价值。
-
目标主机作用于数据和异常行为可能发生。
先决条件
攻击者可以操纵一个整数变量的值利用目标主机。 |
目标主机不做适当的范围检查变量在使用之前。 |
当整数变量递增或递减的范围值,得到一个非常不同的值(例如很小或负数) |
技能要求
(等级:低) 攻击者可以简单地溢出一个整数的插入一个范围的值。 |
(级别:高) 利用缓冲区溢出堆栈的注入恶意代码的软件系统或甚至堆可能需要更高的技术水平。 |
后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
完整性 |
修改数据 |
|
保密
访问控制
授权 |
获得特权 |
|
保密
完整性
可用性 |
执行未经授权的命令 |
|
保密 |
读取数据 |
|
可用性 |
不可靠的执行 |
|
缓解措施
使用一种语言或编译器执行自动范围检查。 |
仔细审查服务的实现之前,它提供给用户。例如你可以使用手动或自动代码审查发现漏洞,如整数溢出。 |
使用一个抽象库抽象危险的api。不是一个完整的解决方案。 |
总是做绑定消费之前检查用户输入数据。 |
例子,实例
整数溢出ProcAuWriteElement函数在服务器/ dia / audispatch。c网络音频系统(NAS) 237年1.8 SVN之前允许远程攻击者可能导致拒绝服务(崩溃)和执行任意代码通过一个大型max_samples价值。参见:cve - 2007 - 1544 |
下面的代码演示了一个整数溢出。总整数宣言是“无符号短整型”假设第一和第二参数的长度适合在这样一个整数(ref - 547]、[ref - 548]。
|
分类法映射
引用
ref - 131 j . Viega和g·麦克格劳博士。“构建安全软件”。addison - wesley。2002年。 |
|
罗伯特·c·Seacord (ref - 548)。“在C和c++安全编码”。152页,图5 - 1。 |
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2014-06-23
(版本2.6) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2018-07-31
(版本2.12) |
CAPEC内容团队 |
manbetx客户端首页 |
更新的引用 |
2020-07-30
(版本3.3) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances Execution_Flow |
2020-12-17
(版本3.4) |
CAPEC内容团队 |
manbetx客户端首页 |
更新的措施之一,引用,Taxonomy_Mappings |
2022-09-29
(版本3.8) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances |
|