一名安全研究人员于本周三在Black Hat安全大会上发言时表示,集成在最新处理器中用来抵御恶意攻击的“非执行”功能,不象许多用户想像的那样是确保安全的“万能药”。这种看法不会使Intel、AMD等芯片厂商感到吃惊,但用户却会吃惊不小。
AMD公司称这一功能为“增强型病毒保护”(EVP),Intel公司将它称为“eXecute Disable”(XD)。这一功能更通俗地被称为“No eXecute”(NX)。这是一种指定受到保护的内存
区域,使这里的指令不能执行的方法。将一些内存设定为不可执行的部分的目的是阻止蠕虫和其它恶意代码在内存中插入指令,并执行这些指令。
AMD公司将其64位Athlon处理器中的EVP称作是能够让“用户享受到内心平静”的安全技术。但芯片厂商从来都没有将NX称作是万能药,例如,AMD公司将EVP称作是一种“预防性的措施”,它不会阻止恶意代码攻击,但会使恶意代码攻击“局部化、短暂化、不具有传染性”。Intel公司也持相似的态度,它表示,未来象冲击波、震荡波这样的恶意蠕虫的影响将被XD大大削弱。
互联网安全系统公司X-Force研究小组的工程师梅诺说,问题是,媒体没有提到过芯片厂商的这类警告,而且过份地夸大了这一技术的效力。梅诺表示,有关NX的报道将它描述为一种灵丹妙药,声称NX能够使所有的安全攻击胎死腹中,我们必需担心未来会出现象MSBlast这样的恶意攻击。
梅诺指出,事实上根本就不是这回事儿。NX无法阻止所有旨在制造缓冲区溢出缺陷的攻击。他说,我仍然能够在支持NX的计算机上执行软件代码,只不过要求稍微复杂一些的技巧而已。“return-to-libc”攻击可能是对NX内存栈攻击的基础。梅诺指出,黑客还可以创建虚假的栈框架,绕过NX提供的内存保护机制。这并非是新技术,它们已经被企图攻击其它支持NX的处理器和操作系统的黑客所利用,例如Sun公司的SPARC处理器和Solaris操作系统。他说,NX不能阻止所有攻击,它没有能够减轻对Unix的安全威胁,对Windows等台式机操作系统也不会有这样的效果。
在Windows XP SP2和Windows Server 2003 SP1中,Microsoft将NX称作“Data Execution Prevention”(DEP)。
梅诺说,我们的目标是,尽管NX的限制在安全领域是人尽皆知,但在企业客户中却不是这样。它们认为NX是一剂灵丹妙药,只依靠一种技术是非常危险的。他指出,即使在最好的情况下,NX对于黑客也只是缓速块,而不是红灯。(