关于CPU内嵌的防病毒技术

所属分类: 硬件教程 / CPU 阅读数: 64
收藏 0 赞 0 分享
  可以从两个角度对此类问题进行解释:
  1、CPU内嵌的防病毒技术
  2、缓冲区溢出(buffer overrun)
  CPU内嵌的防病毒技术:是一种硬件防病毒技术,与操作系统相配合,可以防范大部分针对缓冲区溢出(buffer overrun)漏洞的攻击(大部分是病毒)。Intel的防病毒技术是EDB(Excute Disable Bit),AMD的防病毒技术是EVP(Ehanced Virus Protection),但不管叫什么,它们的原理都是大同小异的。严格来说,目前各个CPU厂商在CPU内部集成的防病毒技术不能称之为“硬件防毒”。首先,无论是Intel的EDB还是AMD的EVP,它们都是采用硬软结合的方式工作的,都必须搭配相关的操作系统和软件才能实现;其次,EDB和EVP都是为了防止因为内存缓冲区溢出而导致系统或应用软件崩溃的,而这内存缓冲区溢出有可能是恶意代码(病毒)所为,也有可能是应用程序设计的缺陷所致(无意识的),因此我们将其称之为“防缓冲区溢出攻击”更为恰当些。

  在计算机内部,等待处理的数据一般都被放在内存的某个临时空间里,这个临时存放空间被称为缓冲区(Buffer),缓冲区的长度事先已经被程序或者操作系统定义好了。缓冲区溢出(buffer overrun):是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量。溢出的数据覆盖在合法数据上。理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。但是绝大多数程序都会假设数据长度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区又被称为堆栈,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。当一个超长的数据进入到缓冲区时,超出部分就会被写入其他缓冲区,其他缓冲区存放的可能是数据、下一条指令的指针,或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉。可见一小部分数据或者一套指令的溢出就可能导致一个程序或者操作系统崩溃。而更坏的结果是,如果相关数据里包含了恶意代码,那么溢出的恶意代码就会改写应用程序返回的指令,使其指向包含恶意代码的地址被CPU编译而执行,而这可能发生“内存缓冲区溢出攻击”,“冲击波”、“震荡波”等蠕虫病毒就是采用这种手段来攻击电脑的。

  缓冲区溢出是由编程错误引起的。如果缓冲区被写满,而程序没有去检查缓冲区边界,也没有停止接收数据,这时缓冲区溢出就会发生。缓冲区边界检查被认为是不会有收益的管理支出,计算机资源不够或者内存不足是编程者不编写缓冲区边界检查语句的理由,然而技术的飞速发展已经使这一理由失去了存在的基础,但是多数用户日常主要应用的程序中大多数其实仍然是十年甚至二十年前的程序代码,并没有检查缓冲区边界的功能。缓冲区溢出是病毒编写者和特洛伊木马编写者偏爱使用的一种攻击方法。攻击者或者病毒善于在系统当中发现容易产生缓冲区溢出之处,运行特别程序,获得优先级,指示计算机破坏文件,改变数据,泄露敏感信息,产生后门访问点,感染或者攻击其他计算机。对于缓冲区溢出攻击,防毒杀毒软件虽然也可以处理,但也只能是亡羊补牢,而操作系统和应用软件的漏洞又是难以预测的,随时可能被利用,引来缓冲区溢出攻击。在这种情况下,预防缓冲区溢出攻击应该从硬件层次着手,开始成为许多IT厂商的共识,于是大家俗称的CPU硬件防病毒功能应运而生了。缓冲区溢出攻击最基本的实现途径是向正常情况下不包含可执行代码的内存区域插入可执行的代码,并欺骗CPU执行这些代码。而如果我们在这些内存页面的数据区域设置某些标志(No eXecute或eXcute Disable),当CPU读取数据时检测到该内存页面有这些标志时就拒绝执行该区域的可执行指令,从而可防止恶意代码被执行,这就是CPU的防缓冲区溢出攻击实现的原理。

  而对于开启了EDB或EVP功能的计算机来说,一般也就可实现数据和代码的分离,而在内存某个页面将被设置为只做数据页,而任何企图在其中执行代码的行为都将被CPU所拒绝。当然,开启EDB、EVP功能的CPU是无法独立完成标注不可执行代码内存页面以及进行相关检测防治工作的,它还需要相关操作系统和应用程序的配合。
  目前,Windows XP SP2、Windows Server 2003 SP1及64bit的Windows操作系统都提供了对EDB、EVP技术的支持。如果你使用的操作系统是Windows XP SP2,那么启用其中的DEP(Data Execution Protection,数据执行保护)功能即可为你的电脑提供比较全面的防缓冲区溢出攻击功能。DEP是可以独立运行的,并也可帮助防御某些类型的恶意代码攻击,但要充分利用DEP可以提供的保护功能,就需要CPU的配合了。DEP可单独或和兼容的CPU一起将内存的某些页面位置标注为不可执行,如果某个程序尝试从被保护的位置运行代码,将会被CPU拒绝同时DEP会关闭程序并通知用户,从而在一定程度上保障用户电脑的安全。

  CPU内嵌的防病毒技术以及操作系统的防病毒技术因此在目前来说可能还存在着一些兼容性的问题,例如因应用程序设计的缺陷或驱动程序而导致的误报(特别是一些比较老的驱动程序);另外,对于有些程序来说,是采用实时生成代码方式来执行动态代码的,而生成的代码就有可能位于标记为不可执行的内存区域,这就有可能导致DEP将其检测为非法应用程序而将其关闭。而这些都还有赖于硬件和软件厂商的相互配合解决,当然,这些都是需要的时间。因此,DEP、EDB、EVP等技术都还在向前发展。
更多精彩内容其他人还在看

AMD锐龙5 2600和Intel酷睿i5-9400F性能对比测试

AMD锐龙5 2600和Intel酷睿i5-9400F哪个好?哪个值得买?下面小编带来AMD锐龙5 2600和Intel酷睿i5-9400F性能对比测试,希望对大家有所帮助
收藏 0 赞 0 分享

i9 9900K和2700X哪个值得买 i9-9900K和R7-2700X区别对比

伴随着AMD锐龙处理器的崛起,Intel近年来明显不再挤药膏了,十月份发布了全新第六代Coffee Lake酷睿处理器予以还击,还首次推出i9系列命名,定位高端。i9 9900K是此次酷睿i9系列规格最高的一款,那么i9 9900K和2700X哪个值得买?下面小编带来i9-990
收藏 0 赞 0 分享

i5-9600K和8600K哪个值得买 i5-8600K和i5-9600K区别对比

我们知道,最近2年在AMD步步逼近的情况下,Intel加快了产品的更新换代研发进度,同样不再是挤牙膏式升级。今年10月份,英特尔正式发布了第九代酷睿处理器,那么i5-9600K和8600K哪个值得买?下面小编带来i5-8600K和i5-9600K区别对比,希望对大家有所帮助
收藏 0 赞 0 分享

高通骁龙632和636有什么区别 骁龙636和632区别对比介绍

在今年6月份,高通就发布了骁龙632处理器,只不过直到近期才有机型进行了首发,最早是被荣耀畅玩8C首发的,所以后续肯定还有其他机型采用这款处理器。那么高通骁龙632和636哪个好呢?高通骁龙632和636有什么区别?小编带来骁龙636和632区别对比介绍,希望对大家有所帮助
收藏 0 赞 0 分享

i7 9700k配什么显卡好 Intel酷睿i7-9700K显卡搭配推荐

i7-9700K配什么显卡好呢?Intel最新上市了全新第九代酷睿处理器,很显然其中的i7-9700K属于上一代睿i7-8700K的更新换代产品,所以未来一段时间i7-9700K应该会是首选处理器之一,而老款逐渐退出舞台,下面小编带来Intel酷睿i7-9700K显卡搭配推荐,希
收藏 0 赞 0 分享

24核心叫板旗舰i9 AMD锐龙ThreadRipper 2970WX首发详细图文评测

今年ChinaJoy期间首次展示的第二代线程撕裂者更是将处理器的最高核心数量堆到了2990WX的32个。当然除了最顶级的2990WX之外,AMD还准备了定位稍低的产品。这就是我们今天要聊的ThreadRipper 2970WX,一起看看吧
收藏 0 赞 0 分享

i7 9700K和R7 2700X哪个值得买 R7-2700X和i7-9700K区别对比

今年10月份,英特尔正式发布了第九代酷睿处理器,其中首发的有三款产品,分别是i5-9600K、i7-9700K、i9-9900K,那么i7 9700K和R7 2700X哪个值得买?下面小编带来R7-2700X和i7-9700K区别对比,希望对大家有所帮助
收藏 0 赞 0 分享

i9 9900K和R7 2700X哪个值得买 R7-2700X和i9-9900K区别对比评测

今年10月份,英特尔正式发布了第九代酷睿处理器,其中首发的有三款产品,分别是i5-9600K、i7-9700K、i9-9900K。其中i9-9900K拥有超线程技术而备受青睐和关注,一度成为了今年非常强的酷睿i7,那么i9 9900K和R7 2700X哪个值得买?小编带来R7-2
收藏 0 赞 0 分享

i5 9600K和R5 2600X哪个值得买 R5-2600X和i5-9600K区别对比

今年10月份,英特尔正式发布了第九代酷睿处理器,其中首发的有三款产品,分别是i5-9600K、i7-9700K、i9-9900K,那么i5 9600K和R5 2600X哪个值得买?下面小编带来R5-2600X和i5-9600K区别对比,希望对大家有所帮助
收藏 0 赞 0 分享

i5 9600k配什么显卡好 Intel酷睿i5-9600K显卡搭配推荐

i5-9600K配什么显卡好呢?Intel最新上市了全新第九代酷睿处理器,很显然其中的i5-9600K属于上一代睿i5-8600K的更新换代产品,所以未来一段时间i5-9600K应该会是首选处理器之一,而老款逐渐退出舞台,下面小编带来Intel酷睿i5-9600K显卡搭配推荐
收藏 0 赞 0 分享
查看更多