查看: 4819|回复: 19
收起左侧

[讨论] 为您详解WIN系统中的杀手锏之一:数据执行保护DEP

[复制链接]
chujunci
发表于 2012-3-24 18:42:39 | 显示全部楼层 |阅读模式
数据执行保护DEP原理:

分析缓冲区溢出攻击,其根源在于现代计算机对数据和代码没有明确区分这一先天缺陷,就目前来看重新去设计计算机体系结构基本上是不可能的,我们只能靠向前兼容的修补来减少溢出带来的损害,数据执行保护DEP就是用来弥补计算机对数据和代码混淆这一天然缺陷的。

DEP的基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入shellcode时(注1),程序会尝试在数据页面上执行指令,此时CPU就会抛出异常,而不是去执行恶意指令。如图所示。




DEP的主要作用是阻止数据页(如默认的堆页、各种堆栈页以及内存池页)执行代码。微软从Windows XP SP2开始提供这种技术支持,根据实现的机制不同分为:软件DEP(Software DEP)和硬件DEP(Hardware-enforced DEP)。

软件DEP与CPU硬件无关,其本质是Windows利用软件模拟实现DEP,对操作系统提供一定的保护。

硬件DEP才是真正意义的DEP,硬件DEP需要CPU的支持,AMD和Intel都为此做了设计,AMD称之为No-Execute Page-Protection(NX),Intel称之为Execute Disable Bit(XD),两者功能及工作原理在本质上是相同的。

操作系统通过设置内存页的NX/XD属性标记,来指明不能从该内存执行代码。为了实现这个功能,需要在内存的页面表(Page Table)中加入一个特殊的标识位(NX/XD)来标识是否允许在该页上执行指令。当该标识位设置为0里表示这个页面允许执行指令,设置为1时表示该页面不允许执行指令。


在系统中设置数据执行保护DEP


 可以通过如下方法检查CPU是否支持硬件DEP,右键单击桌面上的"我的电脑"à"属性"à"高级"选项卡。在"高级"选项卡页面中的"性能"下单击"设置"打开"性能选项"页。单击"数据执行保护"选项卡,在该页面中我们可确认自己计算机的CPU是否支持DEP。如果CPU不支持硬件DEP该页面底部会有如下类似提示:"您的计算机的处理器不支持基于硬件的DEP。但是,Windows可以使用DEP软件帮助保护免受某些类型的攻击",如图所示。

根据启动参数的不同,DEP工作状态可以分为四种:

(1)optin:默认仅将DEP保护应用于Windows系统组件和服务,对于其他程序不予保护,但用户可以通过应用程序兼容性工具(ACT,Application Compatibility Toolkit)为选定的程序启用DEP,在Vista下边经过/NXcompat选项编译过的程序将自动应用DEP.这种模式可以被应用程序动态关闭,它多用于普通用户版的操作系统,如Windows XP、Windows Vista、Windows7.

(2)optout:为排除列表程序外的所有程序和服务启用DEP,用户可以手动在排除列表中指定不启用DEP保护的程序和服务。这种模式可以被应用程序动态关闭,它多用于服务器版的操作系统,如 Windows Server 2003、Windows Server 2008.

(3)alwaysOn:对所有进程启用DEP 的保护,不存在排序列表,在这种模式下,DEP不可以被关闭,目前只有在64位的操作系统上才工作在AlwaysOn模式。

(4)alwaysOff:对所有进程都禁用DEP,这种模式下,DEP也不能被动态开启,这种模式一般只有在某种特定场合才使用,如DEP干扰到程序的正常运行。

可以通过切换图2中的复选框切换Optin和Optout两种模式。还可以通过修改c:boot.ini中的/noexecute启动项的值来控制DEP的工作模式。如图3所示,DEP在XP操作系统上的工作模式为optin。




Shellcode指的是一段用来发送到服务器利用特定漏洞的代码(也可以是填充数据),一般用于获取权限。另外,Shellcode通常是作为数据发送给受攻击服务的。 Shellcode是溢出程序和蠕虫病毒的核心。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
chujunci
 楼主| 发表于 2012-3-24 18:47:49 | 显示全部楼层
360Tencent 发表于 2012-3-24 18:45

哈哈!全英文?估计有些人会压力很大!
hx1997
发表于 2012-3-24 19:23:19 | 显示全部楼层
这种发在卡饭没人看的。现在的卡饭学东西的人太少。
Arisu
发表于 2012-3-24 19:23:56 | 显示全部楼层
我记得在MSE区有看过··
wwdboy
发表于 2012-3-24 19:32:32 | 显示全部楼层
刚看了一下,处在第一个模式上
chujunci
 楼主| 发表于 2012-3-24 19:39:41 | 显示全部楼层
wwdboy 发表于 2012-3-24 19:32

那就可以!当然你还可以为特定的程序执行DEP
JillPal
发表于 2012-3-24 19:58:20 来自手机 | 显示全部楼层
chujunci 发表于 2012-3-24 12:39

我听说微软新开发了一种比DEP更先进的技术,而且和现有技术一样没有硬件支持效果可能不好。只是这篇文章也有好几年了,以后如何发展就不清楚了。
尘梦幽然
发表于 2012-3-24 20:09:08 来自手机 | 显示全部楼层
JillPal 发表于 2012-3-24 19:58

那东西已经应用于Win7,叫ASLR
billy8
发表于 2012-3-24 21:01:11 | 显示全部楼层
chujunci 发表于 2012-3-24 19:39
那就可以!当然你还可以为特定的程序执行DEP

DEP很卡程序的
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-2-8 04:23 , Processed in 0.128091 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表