缓冲区溢出 十年来攻击和防卫的弱点(5)

2008-02-23 07:09:38来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

与现有代码的兼容性:

一些边界检查方法为了与现有的代码保持兼容而在系统的性能上得到了损失。而另一些则用别的方法达到目的。这样就打破的传统的C的转换规则,转而产生了一类新的C编译器,只能编译C的一个子集,有的还不能使用指针或者需要别的改变。

四. 有效的组合

在这里我们研究、比较在第二部分描述的各种漏洞攻击和在第三部分描述的防卫方法,以此来确定何种组合能完全消除缓冲区溢出问题。但是我们没有把边界检查计算在内,因为它能有效地防止所有的缓冲区溢出,但是所需的开销也是惊人的。

最普通的缓冲区溢出形式是攻击活动纪录然后在堆栈中殖入代码。这种类型的攻击在1996年中有很多纪录。而非执行堆栈和堆栈保护的方法都可以有效防卫这种攻击。非执行堆栈可以防卫所有把代码殖入堆栈的攻击方法,堆栈保护可以防卫所有改变活动纪录的方法。这两种方法相互兼容,可以同时防卫多种可能的攻击。

剩下的攻击基本上可以用指针保护的方法来防卫,但是在某些特殊的场合需要用手工来实现指针保护。全自动的指针保护需要对每个变量加入附加字节,这样使得指针边界检查在某些情况下具有优势。

最为有趣的是,第一个缓冲区溢出漏洞--Morris蠕虫使用了现今所有方法都无法有效防卫的方法,但是却很少有人用到,也许是这种方法过于复杂的缘故吧。

五. 结论

在本文中,我们详细描述和分析了缓冲区溢出的攻击和防卫方法。由于这种攻击是目前常见的攻击手段,所以进行这个方面的研究工作是有意义和成效的。研究的结果表明,堆栈保护方法和非执行缓冲区方法对于当前绝大多数的攻击都能有效地防御,指针保护的方法可以对剩下的攻击进行有效的防御。最后声明的是对于Morris蠕虫的攻击,迄今还没有有效的防御手段。

关键词:
【推荐给好友】【关闭】
最新五条评论
查看全部评论
评论总数 0 条
您的评论
用户名: 新注册) 密 码: 匿名:
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:网络攻击知识之几种IP地址攻击方式

下一篇:系统安全系列之Windows账户安全设置