CPU防病毒-Windows XP SP2的DEP技术揭秘

众所周知,Windows XP SP2中增加了一项安全新功能——DEP(Date Execution Prevention数据执行保护),可以保护计算机免受病毒的破坏 。为了配合微软的DEP技术,Intel和AMD都开发了相应的防病毒CPU 。

DEP的防病毒原理

如果你的系统升级到了SP2,启用SP2的DEP功能即可防范病毒破坏,这是因为DEP能够对各种程序进行监视,阻止病毒在受保护的内存位置运行有害代码 。DEP通过处理器的NX(No eXecute)功能,查找内存中没有明确包含可执行代码的数据(这些数据有时会是病毒的源代码),找到这些数据后,NX将它们都标记为“不可执行” 。以后如果某程序在内存中,试图执行这些带“不可执行”标记的代码,SP2将会自动关闭该程序 。因此,假如你运行了一个已经染毒的软件,DEP就会把病毒代码标记为“不可执行”,这样就能阻止病毒在内存中运行,保护电脑中的文件免受蠕虫、病毒的传染破坏 。

如果你想充分发挥DEP的保护功能,除了要把系统升级到SP2之外,你的CPU还必须支持DEP技术 。目前常见的32位处理器(例如P4 Northwood等)并不支持NX,支持该技术的CPU主要有AMD的64位处理器(Athlon 64、AMD Opteron),以及Intel的安腾系列CPU、J系列的P4 Prescott,据说nVIDIA、VIA、全美达等公司也计划在其芯片中加入NX技术,不过这些厂商更新NX的步伐过于缓慢,正式推出还有待时日 。

启用或禁用DEP的方法

默认情况下,SP2仅对基本 Windows 程序和服务启用了DEP 。不过你也可以自己设置,让电脑上的所有程序都启用DEP,以便防范病毒 。

例如除了Acrobat Reader5.0之外,要让所有的程序和服务都启用DEP,操作方法是:以管理员权限账户登录SP2,然后单击“开始→设置→控制面板”,双击“系统”,单击“高级”选项卡,单击“性能”下的“设置”,单击“数据执行保护”选项卡,选中“为除下列程序之外的所有程序和服务启用 DEP”(如图),单击“添加”,导航到“Program Files”文件夹,选择该程序(Acrobat Reader 5.0)的可执行文件(扩展名为.exe),最后单击“确定”完成 。

如果你要为某程序(例如Acrobat Reader 5.0)禁用DEP,可以单击以上的“添加”按钮,把它加到列表中即可 。以后该程序就很容易受到攻击,病毒能够潜入该程序中,然后再传染给电脑上的其他程序及OutLook中的联系人,并且破坏你的个人文件 。如果有的程序启用 DEP 后无法正常运行,你可以向软件厂商索取兼容DEP的程序版本,如果没有这样的版本则禁用DEP 。

为了支持DEP,P4 Prescott采用了EDB 技术

为了配合微软的DEP功能,Intel为自己的CPU开发了“Execute Disable Bit”(EDB)内存保护技术 。目前Intel P4 Prescott(mPGA478与LGA775封装)为C0或D0步进核心,最新的J系列P4 Prescott采用E0步进核心 。其中只有J系列P4 Prescott具备防病毒功能,只有它才真正支持EDB技术,能够配合SP2的DEP防毒功能,让针对缓冲区溢出(buffer overrun)漏洞设计的病毒失效,预防它们复制并散播到其他系统 。

如果你使用了P4 Prescott/Celeron D(C0步进核心)的处理器,升级到SP2之后,就会发现Windows XP操作系统死锁在启动画面,但换上P4 Northwood却不会出现这个问题 。这是因为SP2能够开启P4 Prescott (C0步进核心)内含的EDB 功能,但是这种型号的CPU并没有EDB的执行能力,其内部EDB部分的晶体管不会加电运作,因此会导致系统死锁 。为了解决这个问题,微软已在9月14日发布了相关修正文件,大家可以到微软的官方网站去下载 。Windows XP英文版用户下载地址是http://download.microsoft.com/download/c/a/5/ca5f5398-2391-42e6-8b40-f6ec4db31c88/WindowsXP-KB885626-v2-x86-enu.exe,Windows XP简体中文版用户下载地址http://download.microsoft.com/download/2/b/7/2b75ebbf-ce4c-4595-8ddf-4d45e4c1ca18/WindowsXP-KB885626-v2-x86-chs.exe

推荐阅读