您的当前位置:
范文网
>
毕业论文
>
理科专业
>
计算机论文
>文章内容
输入您的搜索字词
提交搜索表单
网络
范文网
缓冲区溢出攻击的分析及防范策略(3)
a.信号传递: Linux通过向进程堆栈释放代码然后引发中断来执行在堆栈中的代码来实现向进程发送Unix信号。非执行缓冲区的补丁在发送信号的时候是允许缓冲区可执行的。 b.GCC的在线重用:
研究发现gcc在堆栈区里放置了可执行的代码作为在线重用之用。然而,关闭这个功能并不产生任何
问题,只有部分功能似乎不能使用。 非执行堆栈的保护可以有效地对付把代码植入自动变量的缓冲区溢出攻击,而对于其他形式的攻击则没有效果。通过引用一个驻留的程序的指针,就可以跳过这种保护措施。其他的攻击可以采用把代码殖入堆或者静态数据段中来跳过保护。 (3)改进C语言函数库 C语言中存在缓冲区溢出攻击隐患的系统函数有很多。例如gets(),sprintf(),strcpy(),strcat(),fscanf(),scanf(),vsprintf()等。可以开发出更安全的封装了若干已知易受堆栈溢出攻击的库函数。修改后的库函数实现了原有功能,但在某种程度上可以确保任一缓冲区溢出都被控制在现有堆栈帧之内。 (4)数组边界检查 可以说缓冲区溢出的根本原因是没有数组边界检查,当数组被溢出的时候,一些关键的数据就有可能被修改,比如函数返回地址、过程帧指针、函数指针等。同时,攻击代码也可以被植入。 因此,对数组进行边界检查,使超长代码不可能植入,这样就完全没有了缓冲区溢出攻击产生的条件。只要数组不能被溢出,溢出攻击就无从谈起。 为了实现数组边界检查,则所有的对数组的读写操作都应当被检查,以确保对数组的操作在正确的范围内。最直接的
方法是检查所有的数组操作,但是会使性能下降很多,通常可以采用一些优化的技术来减少检查的次数。 (5)使堆栈向高地址方向增长 缓冲区溢出的一个重要要素是植入的代码成功地被执行。最常见的是被植入的代码放在堆栈区中。通过修改操作系统核心,在核心层引入保护机制,限制代码在堆栈区的执行,这样,缓冲区溢出攻击就不可能成功。 到
目前为止,我们讨论利用函数返回地址控制程序转移到攻击代码的攻击
方法时,有一个基本的前提,那就是当堆栈被压入数据时,栈顶向低地址方向增长,只有这样,缓冲区溢出时才可能覆盖低地址处的函数返回地址指针,从而控制程序转移到攻击代码。如果我们使用的机器堆栈压入数据时向高地址方向前进,那么无论缓冲区如何溢出,都不可能覆盖低地址处的函数返回地址指针,也就避免了缓冲区溢出攻击。但是这种方法仍然无法防范利用堆和静态数据段的缓冲区进行溢出的攻击。 (6)程序指针完整性检查 程序指针完整性检查是针对上述缓冲区溢出的另一个要素——阻止由于函数返回地址或函数指针的改变而导致的程序执行流程的改变。它的原理是在每次 在程序指针被引用之前先检测该指针是否已被恶意改动过,如果发现被改动,程序就拒绝执行。 因此,即使一个攻击者成功地改变程序的指针,由于系统事先检测到了指针的改变,因此这个指针不会被使用。与数组边界检查相比,这种方法不能解决所有的缓冲区溢出
问题。但这种方法在性能上有很大的优势,而且兼容性也很好。 程序指针完整性检查大体上有三个
研究方向:第一,手写的堆栈检测;第二,堆栈保护;第三,保护指针。在手写的堆栈检测中会介绍Snarskii为FreeBSD开发了一套定制的能通过监测cpu堆栈来确定缓冲区溢出的libc。在堆栈保护中会介绍我们自己的堆栈保护方法所开发的一个编译器,它能够在函数调用的时候自动生成完整性检测代码。最后在保护指针中介绍正在开发中的指针保护方法,这种方法类似于堆栈保护,它提供对所有程序指针的完整性的保护。 1)手写的堆栈监测 Snarskii为FreeBSD开发了一套定制的能通过监测cpu堆栈来确定缓冲区溢出的libc。这个
转贴于:
范文网
(
www.fanwenchina.com
)
共4页: 上一页 1
[2]
[3]
[4]
下一页
打印本文
收藏本文
上一篇:
十六大后现行宪法修改的思考(8)
下一篇:
论社会主义宪政(2)
热点文章
·
西方网络银行的发展战略及启示
·
未雨绸缪:关于我国电子商务税收对策的思考
·
网络时代不用交税了?--互联网对税收体系的挑战
·
向IC卡系统集成业务投资的可行性
·
Internet市场分析
·
Linux下的GTK图形界面编程
·
VOD产业小览
·
CD-ROM出版物市场的初步调查
·
计算机网络系统在制碱工业中的应用
·
仓库安全管理综合信息系统
·
银行行办公信息服务系统
·
在微机上模拟电器控制线路的工作过程
·
基于WinDis 32技术实现网络通信监测
·
国内电子商务简谈
·
发展我国电子商务都要以推进B to B业务
·
宽带化―电信发展的必由之路
相关文章
·
缓冲区溢出攻击的分析及防范策略(2)
·
GTK图形编程
·
缓冲区溢出攻击的分析及防范策略(1)
·
银行服务系统
·
电话远程报警器(jsj188)
·
MPEG-4技术及应用综述
·
CIMS环境下基于特征的产品模型
·
加入WTO对我国网络营销发展的影响
·
当前计算机技术与GIS发展趋势
·
CAD应用软件的新动态
·
计算机信息传输技术在办公自动化中的应用
·
关于计算机应用工作的思考与实践
·
在IIS 4.0上配置虚拟主机实现虚拟Interne
·
基于Mschart的数据库图表应用编程
·
用JAVA制作ICQ
·
论检察机关案件管理系统的特征
最新文章
·
电子政务环境下公务员的培养和使用
·
基于ASP.NET的Web网络应用程序开发的安全策略实践
·
关于计算机网络辅助大学英语教学的思考
·
数据库技术在Web中的应用(网上店铺建设)
·
多屏卡编程实例
·
硬盘系统在播出领域的应用
·
用计算机程序制作三维立体画
·
于修船企业ERP系统的设计思想
·
古籍文献数据库存在的问题与突破的方向
·
浅谈互联网对未成年人的影响及对策
·
Visual C 中的开放数据库连接技术论文
·
浅谈CAD技术在工程设计中的应用
·
整合最强音 C51主板精挑细选
·
疯狂“组策略”(上)
·
纽芬兰纪念大学计算机工程应用科学硕士项目
·
单片机与组态王软件通讯的解决方案
·
VC6中VC6中调用ProEssentialsv5图表组件实现科学图
·
信息全程跟踪及应用安全审计保护系统
·
网络会计在我国的发展问题探析
·
论检察机关案件管理系统的特征