ExecuteDisable单元是Intel的“Execute Disable Bit”(执行禁止位,简称EDB),是一种硬体防病毒技术,与作业系统相配合,可以防範大部分针对缓冲区溢出(buffer overrun)漏洞的攻击(大部分是病毒)。
基本介绍
- 中文名ExecuteDisable单元
- 外文名Execute Disable Bit
- 意义执行禁止位
- 简称EDB
简介
缓冲区溢出是由编程错误引起的。如果缓冲区被写满,而程式没有去检查缓冲区边界,也没有停止接收数据,这时缓冲区溢出就会发生。缓冲区边界检查被认为是不会有收益的管理支出,计算机资源不够或者记忆体不足是编程者不编写缓冲区边界检查语句的理由,技术的飞速发展已经使这一理由失去了存在的基础,多数用户日常主要套用的程式中大多数其实仍然是十年甚至二十年前的程式代码,并没有检查缓冲区边界的功能。
实现途径
缓冲区溢出攻击最基本的实现途径是向正常情况下不包含可执行代码的记忆体区域插入可执行的代码,并欺骗CPU执行这些代码。而如果我们在这些记忆体页面的数据区域设定某些标誌(No eXecute或eXecute Disable),当CPU读取数据时检测到该记忆体页面有这些标誌时就拒绝执行该区域的可执行指令,从而可防止恶意代码被执行,这就是CPU的防缓冲区溢出攻击实现的原理。
而对于开启了EDB功能的计算机来说,一般也就可实现数据和代码的分离,而在记忆体某个页面将被设定为只做数据页,而任何企图在其中执行代码的行为都将被CPU所拒绝。,开启EDB功能的CPU是无法独立完成标注不可执行代码记忆体页面以及进行相关检测防治工作的,它还需要相关作业系统和应用程式的配合。