服务器 频道

将病毒拒之门外 玩转Win7数据执行保护

  【IT168 专稿】在最新的Windows 7操作系统中,大家都注意到一个重要的功能:DEP(Data Execution Prevention,数据执行保护技术)。该功能究竟有何用处呢?怎么样才能全面应用该功能呢?

  一、DEP溯源

  DEP数据执行保护功能是一种可帮助保护计算机免受病毒和其他安全威胁的破坏的功能。众所周知,病毒也是一种程序,只不过是特殊的程序,因此在执行过程中也离不开内存。DEP技术与防火墙或者防病毒程序根本的区别在于从内存地址上加以阻截,而不是防止危险程序或者危害代码的运行——从目前的病毒发展趋势来看,从受保护的内存位置运行(执行)恶意代码来发起攻击,是病毒的一种发展趋势,这种威胁通过接管程序正在使用的一个或多个内存位置来执行破坏操作,之后,它会进行传播,从而破坏其他程序、文件乃至您的电子邮件联系人。而这恰恰是反病毒技术的弱点。支持DEP技术的CPU将某些常用内存位置标记为“不可执行”,如若任何一个程序尝试从不可执行的位置运行代码,同样支持DEP技术的操作系统将会自动关闭该程序,如此便彻底扼杀了所有危险程序与代码,而不是疲于应付地更新病毒库。

  图1 数据执行保护

  DEP是操作系统底层的安全防护机制,其本身虽然不具备对病毒检测的功能。但如果有利用漏洞溢出包括本地溢出的病毒发作时,DEP可以起到防护作用,确定它们是否能够安全地使用系统内存。要执行监视操作,DEP软件既可以独立运行,也可以与兼容微处理器协作,将某些内存位置标记为“不可执行”。如果程序尝试从受保护的内存位置运行代码(无论是否为恶意代码),DEP均将关闭程序并向您发送通知。

  DEP技术并非Windows 7操作系统中创新,其最早被用在Microsoft Windows XP Service Pack 2(SP2)或更高版本,或者Windows Server 2003 Service Pack 1(SP1)或更高版本中。但随着技术的不断成熟及宣传的深入,在新一代Windows 7操作系统中人们才真正关注到它。

  二、支持DEP的硬件

  DEP可以利用软件和硬件进行支持。要使用软件DEP,您的计算机必须运行Windows XP SP2或更高版本,或者Windows Server 2003 SP1或更高版本。DEP软件独立运行时可帮助防御某些类型的恶意代码攻击,但要充分利用DEP可以提供的保护功能,您的处理器必须支持“执行保护”功能,也就是实现硬件DEP。执行保护是一种基于硬件的技术,用于将内存位置标记为“不可执行”。如果您的处理器不支持基于硬件的DEP,则最好将其升级为能够提供执行保护功能的处理器。

  事实上,DEP技术并非由微软首发,而是内嵌于CPU中,只是这项功能的执行必须得到操作系统的支持。在最近几年中,病毒与蠕虫之所以会如此猖獗,一方面是拜系统本身的漏洞所赐,另一方面则是杀毒软件本身技术的滞后性。目前摆在业界面前的不仅仅是更新病毒库代码,这种被动的方式不可能取得最终的胜利。痛定思痛,从源头上阻截病毒与蠕虫才是关键,而这一艰巨的任务自然得交给智能化程度最高的中央处理器。而目前处理器的DEP技术有哪些呢?目前支持DEP功能的处理器又有哪些呢?

  图2 数据执行保护无处不在

  “Execute Disable Bit(EBD)”是Intel在新一代处理器中引入的一项配合微软的DEP功能的功能,开启该功能后,可以防止病毒、蠕虫、木马等程序利用溢出、无限扩大等手法去破坏系统内存并取得系统的控制权,实现自我保护,从而避免诸如“冲击波”之类病毒的恶意攻击。目前英特尔主流桌面处理器及服务器处理器产品皆支持该功能。

  AMD支持DEP功能的技术则叫EVP,EVP(Enhanced Virus Protection,增强型病毒防护)是AMD Althlon64处理器中采用的一种全新的防毒技术,其与DEP技术结合后将生成一种全新的恶意代码防御机制:将所有内存位置均标记为不可执行,除非该位置已明确包含可执行代码。当有攻击程序企图在不可执行的内存位置中插入代码并执行代码时,可识别特定的恶意代码(尤其是执行缓存溢出攻击的代码)并且防止它们在整个系统中自我复制和扩散,这能在很大程度上扼制病毒等恶意代码的入侵。目前AMD主流桌面处理器及服务器处理器产品皆支持该功能。

  三、玩转DEP

  黑客攻击是企业所面临的最大安全性威胁之一,不但会造成IT资源的损耗,还有可能会损坏重要的数位资产。一般的攻击模式是由恶意的蠕虫建立巨量的程式码,使处理器遭受疲劳轰炸,导致蠕虫得以透过网路繁殖,以感染其他的电脑。这些攻击会造成企业的生产力损失,亦即可观的财物损失。而只要结合支援DEP技术的操作系统或CPU,就可以防护电脑免于某些恶意的黑客攻击。这类技术可以让处理器针对记忆体区域进行分类,以判断是否能够执行应用程式的程式码。当恶意的蠕虫尝试在缓冲区插入程式码,处理器就会停止该程式码的执行,避免造成系统的破坏以及蠕虫的繁殖。以具备病毒防护技术的系统取代老旧的电脑,即可防止蠕虫的攻击,降低因病毒所导致的修复成本。

  要确定计算机上是否启用了DEP,可打开“系统属性”,依次单击“开始→控制面板”,然后双击“系统”。单击“高级”选项卡,之后单击“性能”下的“设置”,单击“数据执行保护”选项卡。默认情况下,DEP只针对基本Windows操作系统程序和服务启用。要使用DEP帮助保护其他程序,需选择“为下列程序之外的所有程序启用DEP”。如果您的CPU支持DEP并具备相关的技术,则在该选项下面会显示“你的计算机处理器支持基于硬件的DEP。”,如果不支持,则显示“你的计算机处理器不支持基于硬件的DEP,不过,Windows能使用DEP软件防止一些类型的攻击。”,表明使用的是软件DEP。此外,需要启用硬件DEP,需在BIOS设置中将CPU Configuration下的Execute Disable Function设置为Enable,才可以打开CPU防御病毒的能力。

  图3 不支持DEP的处理器可按需升级为支持DEP

  配置硬件实施和软件实施DEP的方式相同。如果系统范围的DEP策略设置为“选择启用”,则同一Windows核心二进制文件和程序既受硬件实施DEP的保护,也受软件实施DEP的保护。如果系统无法使用硬件实施DEP,则Windows核心二进制文件和程序将只受软件实施DEP的保护。同样,如果系统范围的DEP策略设置为“选择禁用”,则不受DEP保护的程序既不受硬件实施DEP的保护,也不受软件实施DEP的保护。为使程序能够兼容,如果DEP设置为“选择禁用”策略级别,则可以有选择地为单个32位程序禁用DEP。具体方法是,使用“系统属性”中的“数据执行保护”选项卡,有选择地为程序禁用DEP。对于IT专业人员,可以使用Windows新版本袭用中包含的名为DisableNX的新程序兼容性修补程序,DisableNX兼容性修补程序为其应用到的程序禁用数据执行保护。

  如果DEP有兼容问题,如打开IE8.0就出现“数据执行保护”的对话框,开任何网页都不行,可关闭该功能,方法是在Windows XP SP2系统所在分区根目录下找到Boot.ini文件。在“数据执行保护”项中只有两个选项,反映在Boot.ini文件中就是“NoExecute”参数的“Optin”和“Opton”两个值。可是,有些应用程序或驱动程序的兼容性不强,纵使在“数据执行保护”中将其“放行”,它还是不能正常运行,比如3721的上网助手、ZoneAlarm Pro等,这就要靠“NoExecute”参数的其他两个值了。当你启用DEP(系统数据执行保护)的时候,/noexecute=optin;关闭DEP,/noexecute=optout、/noexecute=AlwaysOn时,便将整个系统置于DEP保护范围以内。在这种状态下,可能很多程序都不能运行,而且报错的提示还不一样。/noexecute=AlwaysOff时,相当于关闭了DEP和EVP功能,凡是被其阻止的程序都能正常运行。此时,这两项功能将全部丧失。由这项功能引起的兼容性问题即全部解决,但少了一堵安全保护的墙。

  而在Windows 7中,可使用微软提供的命令行工具bcdedit.exe来编辑BCD文件开关该功能。方法是在命令行下执行命令“bcdedit /set nx alwaysoff”,重启系统后Windows 7的EDP就关闭。而要开启所有服务和应用程序的DEP,则执行命令“bcdedit /set nx alwayson”。

0
相关文章