關(guān)于CPU內(nèi)嵌的防病毒技術(shù)
互聯(lián)網(wǎng) 發(fā)布時(shí)間:2009-04-21 01:31:48 作者:佚名
我要評(píng)論

可以從兩個(gè)角度對(duì)此類問(wèn)題進(jìn)行解釋: 1、CPU內(nèi)嵌的防病毒技術(shù) 2、緩沖區(qū)溢出(buffer overrun)
CPU內(nèi)嵌的防病毒技術(shù):是一種硬件防病毒技術(shù),與操作系統(tǒng)相配合,可以防范大部分針對(duì)緩沖區(qū)溢出(buffer overru
可以從兩個(gè)角度對(duì)此類問(wèn)題進(jìn)行解釋:
1、CPU內(nèi)嵌的防病毒技術(shù)
2、緩沖區(qū)溢出(buffer overrun)
CPU內(nèi)嵌的防病毒技術(shù):是一種硬件防病毒技術(shù),與操作系統(tǒng)相配合,可以防范大部分針對(duì)緩沖區(qū)溢出(buffer overrun)漏洞的攻擊(大部分是病毒)。Intel的防病毒技術(shù)是EDB(Excute Disable Bit),AMD的防病毒技術(shù)是EVP(Ehanced Virus Protection),但不管叫什么,它們的原理都是大同小異的。嚴(yán)格來(lái)說(shuō),目前各個(gè)CPU廠商在CPU內(nèi)部集成的防病毒技術(shù)不能稱之為“硬件防毒”。首先,無(wú)論是Intel的EDB還是AMD的EVP,它們都是采用硬軟結(jié)合的方式工作的,都必須搭配相關(guān)的操作系統(tǒng)和軟件才能實(shí)現(xiàn);其次,EDB和EVP都是為了防止因?yàn)閮?nèi)存緩沖區(qū)溢出而導(dǎo)致系統(tǒng)或應(yīng)用軟件崩潰的,而這內(nèi)存緩沖區(qū)溢出有可能是惡意代碼(病毒)所為,也有可能是應(yīng)用程序設(shè)計(jì)的缺陷所致(無(wú)意識(shí)的),因此我們將其稱之為“防緩沖區(qū)溢出攻擊”更為恰當(dāng)些。
在計(jì)算機(jī)內(nèi)部,等待處理的數(shù)據(jù)一般都被放在內(nèi)存的某個(gè)臨時(shí)空間里,這個(gè)臨時(shí)存放空間被稱為緩沖區(qū)(Buffer),緩沖區(qū)的長(zhǎng)度事先已經(jīng)被程序或者操作系統(tǒng)定義好了。緩沖區(qū)溢出(buffer overrun):是指當(dāng)計(jì)算機(jī)程序向緩沖區(qū)內(nèi)填充的數(shù)據(jù)位數(shù)超過(guò)了緩沖區(qū)本身的容量。溢出的數(shù)據(jù)覆蓋在合法數(shù)據(jù)上。理想情況是,程序檢查數(shù)據(jù)長(zhǎng)度并且不允許輸入超過(guò)緩沖區(qū)長(zhǎng)度的字符串。但是絕大多數(shù)程序都會(huì)假設(shè)數(shù)據(jù)長(zhǎng)度總是與所分配的存儲(chǔ)空間相匹配,這就為緩沖區(qū)溢出埋下隱患。操作系統(tǒng)所使用的緩沖區(qū)又被稱為堆棧,在各個(gè)操作進(jìn)程之間,指令被臨時(shí)存儲(chǔ)在堆棧當(dāng)中,堆棧也會(huì)出現(xiàn)緩沖區(qū)溢出。當(dāng)一個(gè)超長(zhǎng)的數(shù)據(jù)進(jìn)入到緩沖區(qū)時(shí),超出部分就會(huì)被寫(xiě)入其他緩沖區(qū),其他緩沖區(qū)存放的可能是數(shù)據(jù)、下一條指令的指針,或者是其他程序的輸出內(nèi)容,這些內(nèi)容都被覆蓋或者破壞掉。可見(jiàn)一小部分?jǐn)?shù)據(jù)或者一套指令的溢出就可能導(dǎo)致一個(gè)程序或者操作系統(tǒng)崩潰。而更壞的結(jié)果是,如果相關(guān)數(shù)據(jù)里包含了惡意代碼,那么溢出的惡意代碼就會(huì)改寫(xiě)應(yīng)用程序返回的指令,使其指向包含惡意代碼的地址被CPU編譯而執(zhí)行,而這可能發(fā)生“內(nèi)存緩沖區(qū)溢出攻擊”,“沖擊波”、“震蕩波”等蠕蟲(chóng)病毒就是采用這種手段來(lái)攻擊電腦的。
緩沖區(qū)溢出是由編程錯(cuò)誤引起的。如果緩沖區(qū)被寫(xiě)滿,而程序沒(méi)有去檢查緩沖區(qū)邊界,也沒(méi)有停止接收數(shù)據(jù),這時(shí)緩沖區(qū)溢出就會(huì)發(fā)生。緩沖區(qū)邊界檢查被認(rèn)為是不會(huì)有收益的管理支出,計(jì)算機(jī)資源不夠或者內(nèi)存不足是編程者不編寫(xiě)緩沖區(qū)邊界檢查語(yǔ)句的理由,然而技術(shù)的飛速發(fā)展已經(jīng)使這一理由失去了存在的基礎(chǔ),但是多數(shù)用戶日常主要應(yīng)用的程序中大多數(shù)其實(shí)仍然是十年甚至二十年前的程序代碼,并沒(méi)有檢查緩沖區(qū)邊界的功能。緩沖區(qū)溢出是病毒編寫(xiě)者和特洛伊木馬編寫(xiě)者偏愛(ài)使用的一種攻擊方法。攻擊者或者病毒善于在系統(tǒng)當(dāng)中發(fā)現(xiàn)容易產(chǎn)生緩沖區(qū)溢出之處,運(yùn)行特別程序,獲得優(yōu)先級(jí),指示計(jì)算機(jī)破壞文件,改變數(shù)據(jù),泄露敏感信息,產(chǎn)生后門(mén)訪問(wèn)點(diǎn),感染或者攻擊其他計(jì)算機(jī)。對(duì)于緩沖區(qū)溢出攻擊,防毒殺毒軟件雖然也可以處理,但也只能是亡羊補(bǔ)牢,而操作系統(tǒng)和應(yīng)用軟件的漏洞又是難以預(yù)測(cè)的,隨時(shí)可能被利用,引來(lái)緩沖區(qū)溢出攻擊。在這種情況下,預(yù)防緩沖區(qū)溢出攻擊應(yīng)該從硬件層次著手,開(kāi)始成為許多IT廠商的共識(shí),于是大家俗稱的CPU硬件防病毒功能應(yīng)運(yùn)而生了。緩沖區(qū)溢出攻擊最基本的實(shí)現(xiàn)途徑是向正常情況下不包含可執(zhí)行代碼的內(nèi)存區(qū)域插入可執(zhí)行的代碼,并欺騙CPU執(zhí)行這些代碼。而如果我們?cè)谶@些內(nèi)存頁(yè)面的數(shù)據(jù)區(qū)域設(shè)置某些標(biāo)志(No eXecute或eXcute Disable),當(dāng)CPU讀取數(shù)據(jù)時(shí)檢測(cè)到該內(nèi)存頁(yè)面有這些標(biāo)志時(shí)就拒絕執(zhí)行該區(qū)域的可執(zhí)行指令,從而可防止惡意代碼被執(zhí)行,這就是CPU的防緩沖區(qū)溢出攻擊實(shí)現(xiàn)的原理。
而對(duì)于開(kāi)啟了EDB或EVP功能的計(jì)算機(jī)來(lái)說(shuō),一般也就可實(shí)現(xiàn)數(shù)據(jù)和代碼的分離,而在內(nèi)存某個(gè)頁(yè)面將被設(shè)置為只做數(shù)據(jù)頁(yè),而任何企圖在其中執(zhí)行代碼的行為都將被CPU所拒絕。當(dāng)然,開(kāi)啟EDB、EVP功能的CPU是無(wú)法獨(dú)立完成標(biāo)注不可執(zhí)行代碼內(nèi)存頁(yè)面以及進(jìn)行相關(guān)檢測(cè)防治工作的,它還需要相關(guān)操作系統(tǒng)和應(yīng)用程序的配合。
目前,Windows XP SP2、Windows Server 2003 SP1及64bit的Windows操作系統(tǒng)都提供了對(duì)EDB、EVP技術(shù)的支持。如果你使用的操作系統(tǒng)是Windows XP SP2,那么啟用其中的DEP(Data Execution Protection,數(shù)據(jù)執(zhí)行保護(hù))功能即可為你的電腦提供比較全面的防緩沖區(qū)溢出攻擊功能。DEP是可以獨(dú)立運(yùn)行的,并也可幫助防御某些類型的惡意代碼攻擊,但要充分利用DEP可以提供的保護(hù)功能,就需要CPU的配合了。DEP可單獨(dú)或和兼容的CPU一起將內(nèi)存的某些頁(yè)面位置標(biāo)注為不可執(zhí)行,如果某個(gè)程序嘗試從被保護(hù)的位置運(yùn)行代碼,將會(huì)被CPU拒絕同時(shí)DEP會(huì)關(guān)閉程序并通知用戶,從而在一定程度上保障用戶電腦的安全。
CPU內(nèi)嵌的防病毒技術(shù)以及操作系統(tǒng)的防病毒技術(shù)因此在目前來(lái)說(shuō)可能還存在著一些兼容性的問(wèn)題,例如因應(yīng)用程序設(shè)計(jì)的缺陷或驅(qū)動(dòng)程序而導(dǎo)致的誤報(bào)(特別是一些比較老的驅(qū)動(dòng)程序);另外,對(duì)于有些程序來(lái)說(shuō),是采用實(shí)時(shí)生成代碼方式來(lái)執(zhí)行動(dòng)態(tài)代碼的,而生成的代碼就有可能位于標(biāo)記為不可執(zhí)行的內(nèi)存區(qū)域,這就有可能導(dǎo)致DEP將其檢測(cè)為非法應(yīng)用程序而將其關(guān)閉。而這些都還有賴于硬件和軟件廠商的相互配合解決,當(dāng)然,這些都是需要的時(shí)間。因此,DEP、EDB、EVP等技術(shù)都還在向前發(fā)展。
1、CPU內(nèi)嵌的防病毒技術(shù)
2、緩沖區(qū)溢出(buffer overrun)
CPU內(nèi)嵌的防病毒技術(shù):是一種硬件防病毒技術(shù),與操作系統(tǒng)相配合,可以防范大部分針對(duì)緩沖區(qū)溢出(buffer overrun)漏洞的攻擊(大部分是病毒)。Intel的防病毒技術(shù)是EDB(Excute Disable Bit),AMD的防病毒技術(shù)是EVP(Ehanced Virus Protection),但不管叫什么,它們的原理都是大同小異的。嚴(yán)格來(lái)說(shuō),目前各個(gè)CPU廠商在CPU內(nèi)部集成的防病毒技術(shù)不能稱之為“硬件防毒”。首先,無(wú)論是Intel的EDB還是AMD的EVP,它們都是采用硬軟結(jié)合的方式工作的,都必須搭配相關(guān)的操作系統(tǒng)和軟件才能實(shí)現(xiàn);其次,EDB和EVP都是為了防止因?yàn)閮?nèi)存緩沖區(qū)溢出而導(dǎo)致系統(tǒng)或應(yīng)用軟件崩潰的,而這內(nèi)存緩沖區(qū)溢出有可能是惡意代碼(病毒)所為,也有可能是應(yīng)用程序設(shè)計(jì)的缺陷所致(無(wú)意識(shí)的),因此我們將其稱之為“防緩沖區(qū)溢出攻擊”更為恰當(dāng)些。
在計(jì)算機(jī)內(nèi)部,等待處理的數(shù)據(jù)一般都被放在內(nèi)存的某個(gè)臨時(shí)空間里,這個(gè)臨時(shí)存放空間被稱為緩沖區(qū)(Buffer),緩沖區(qū)的長(zhǎng)度事先已經(jīng)被程序或者操作系統(tǒng)定義好了。緩沖區(qū)溢出(buffer overrun):是指當(dāng)計(jì)算機(jī)程序向緩沖區(qū)內(nèi)填充的數(shù)據(jù)位數(shù)超過(guò)了緩沖區(qū)本身的容量。溢出的數(shù)據(jù)覆蓋在合法數(shù)據(jù)上。理想情況是,程序檢查數(shù)據(jù)長(zhǎng)度并且不允許輸入超過(guò)緩沖區(qū)長(zhǎng)度的字符串。但是絕大多數(shù)程序都會(huì)假設(shè)數(shù)據(jù)長(zhǎng)度總是與所分配的存儲(chǔ)空間相匹配,這就為緩沖區(qū)溢出埋下隱患。操作系統(tǒng)所使用的緩沖區(qū)又被稱為堆棧,在各個(gè)操作進(jìn)程之間,指令被臨時(shí)存儲(chǔ)在堆棧當(dāng)中,堆棧也會(huì)出現(xiàn)緩沖區(qū)溢出。當(dāng)一個(gè)超長(zhǎng)的數(shù)據(jù)進(jìn)入到緩沖區(qū)時(shí),超出部分就會(huì)被寫(xiě)入其他緩沖區(qū),其他緩沖區(qū)存放的可能是數(shù)據(jù)、下一條指令的指針,或者是其他程序的輸出內(nèi)容,這些內(nèi)容都被覆蓋或者破壞掉。可見(jiàn)一小部分?jǐn)?shù)據(jù)或者一套指令的溢出就可能導(dǎo)致一個(gè)程序或者操作系統(tǒng)崩潰。而更壞的結(jié)果是,如果相關(guān)數(shù)據(jù)里包含了惡意代碼,那么溢出的惡意代碼就會(huì)改寫(xiě)應(yīng)用程序返回的指令,使其指向包含惡意代碼的地址被CPU編譯而執(zhí)行,而這可能發(fā)生“內(nèi)存緩沖區(qū)溢出攻擊”,“沖擊波”、“震蕩波”等蠕蟲(chóng)病毒就是采用這種手段來(lái)攻擊電腦的。
緩沖區(qū)溢出是由編程錯(cuò)誤引起的。如果緩沖區(qū)被寫(xiě)滿,而程序沒(méi)有去檢查緩沖區(qū)邊界,也沒(méi)有停止接收數(shù)據(jù),這時(shí)緩沖區(qū)溢出就會(huì)發(fā)生。緩沖區(qū)邊界檢查被認(rèn)為是不會(huì)有收益的管理支出,計(jì)算機(jī)資源不夠或者內(nèi)存不足是編程者不編寫(xiě)緩沖區(qū)邊界檢查語(yǔ)句的理由,然而技術(shù)的飛速發(fā)展已經(jīng)使這一理由失去了存在的基礎(chǔ),但是多數(shù)用戶日常主要應(yīng)用的程序中大多數(shù)其實(shí)仍然是十年甚至二十年前的程序代碼,并沒(méi)有檢查緩沖區(qū)邊界的功能。緩沖區(qū)溢出是病毒編寫(xiě)者和特洛伊木馬編寫(xiě)者偏愛(ài)使用的一種攻擊方法。攻擊者或者病毒善于在系統(tǒng)當(dāng)中發(fā)現(xiàn)容易產(chǎn)生緩沖區(qū)溢出之處,運(yùn)行特別程序,獲得優(yōu)先級(jí),指示計(jì)算機(jī)破壞文件,改變數(shù)據(jù),泄露敏感信息,產(chǎn)生后門(mén)訪問(wèn)點(diǎn),感染或者攻擊其他計(jì)算機(jī)。對(duì)于緩沖區(qū)溢出攻擊,防毒殺毒軟件雖然也可以處理,但也只能是亡羊補(bǔ)牢,而操作系統(tǒng)和應(yīng)用軟件的漏洞又是難以預(yù)測(cè)的,隨時(shí)可能被利用,引來(lái)緩沖區(qū)溢出攻擊。在這種情況下,預(yù)防緩沖區(qū)溢出攻擊應(yīng)該從硬件層次著手,開(kāi)始成為許多IT廠商的共識(shí),于是大家俗稱的CPU硬件防病毒功能應(yīng)運(yùn)而生了。緩沖區(qū)溢出攻擊最基本的實(shí)現(xiàn)途徑是向正常情況下不包含可執(zhí)行代碼的內(nèi)存區(qū)域插入可執(zhí)行的代碼,并欺騙CPU執(zhí)行這些代碼。而如果我們?cè)谶@些內(nèi)存頁(yè)面的數(shù)據(jù)區(qū)域設(shè)置某些標(biāo)志(No eXecute或eXcute Disable),當(dāng)CPU讀取數(shù)據(jù)時(shí)檢測(cè)到該內(nèi)存頁(yè)面有這些標(biāo)志時(shí)就拒絕執(zhí)行該區(qū)域的可執(zhí)行指令,從而可防止惡意代碼被執(zhí)行,這就是CPU的防緩沖區(qū)溢出攻擊實(shí)現(xiàn)的原理。
而對(duì)于開(kāi)啟了EDB或EVP功能的計(jì)算機(jī)來(lái)說(shuō),一般也就可實(shí)現(xiàn)數(shù)據(jù)和代碼的分離,而在內(nèi)存某個(gè)頁(yè)面將被設(shè)置為只做數(shù)據(jù)頁(yè),而任何企圖在其中執(zhí)行代碼的行為都將被CPU所拒絕。當(dāng)然,開(kāi)啟EDB、EVP功能的CPU是無(wú)法獨(dú)立完成標(biāo)注不可執(zhí)行代碼內(nèi)存頁(yè)面以及進(jìn)行相關(guān)檢測(cè)防治工作的,它還需要相關(guān)操作系統(tǒng)和應(yīng)用程序的配合。
目前,Windows XP SP2、Windows Server 2003 SP1及64bit的Windows操作系統(tǒng)都提供了對(duì)EDB、EVP技術(shù)的支持。如果你使用的操作系統(tǒng)是Windows XP SP2,那么啟用其中的DEP(Data Execution Protection,數(shù)據(jù)執(zhí)行保護(hù))功能即可為你的電腦提供比較全面的防緩沖區(qū)溢出攻擊功能。DEP是可以獨(dú)立運(yùn)行的,并也可幫助防御某些類型的惡意代碼攻擊,但要充分利用DEP可以提供的保護(hù)功能,就需要CPU的配合了。DEP可單獨(dú)或和兼容的CPU一起將內(nèi)存的某些頁(yè)面位置標(biāo)注為不可執(zhí)行,如果某個(gè)程序嘗試從被保護(hù)的位置運(yùn)行代碼,將會(huì)被CPU拒絕同時(shí)DEP會(huì)關(guān)閉程序并通知用戶,從而在一定程度上保障用戶電腦的安全。
CPU內(nèi)嵌的防病毒技術(shù)以及操作系統(tǒng)的防病毒技術(shù)因此在目前來(lái)說(shuō)可能還存在著一些兼容性的問(wèn)題,例如因應(yīng)用程序設(shè)計(jì)的缺陷或驅(qū)動(dòng)程序而導(dǎo)致的誤報(bào)(特別是一些比較老的驅(qū)動(dòng)程序);另外,對(duì)于有些程序來(lái)說(shuō),是采用實(shí)時(shí)生成代碼方式來(lái)執(zhí)行動(dòng)態(tài)代碼的,而生成的代碼就有可能位于標(biāo)記為不可執(zhí)行的內(nèi)存區(qū)域,這就有可能導(dǎo)致DEP將其檢測(cè)為非法應(yīng)用程序而將其關(guān)閉。而這些都還有賴于硬件和軟件廠商的相互配合解決,當(dāng)然,這些都是需要的時(shí)間。因此,DEP、EDB、EVP等技術(shù)都還在向前發(fā)展。
相關(guān)文章
AMD 銳龍 9 9955HX3D首測(cè):單核多核一路領(lǐng)先
新一代筆記本正在陸續(xù)到來(lái),HotHardware搶先拿到了一臺(tái)微星的泰坦18 Pro,簡(jiǎn)單測(cè)試了其首發(fā)配備的AMD銳龍9 9955HX3D,展現(xiàn)了新一代X3D旗艦的威力2025-03-28游戲裝機(jī)不花冤枉錢(qián)! 銳龍5 9600X性價(jià)比完勝酷睿Ultra 7 265K
花更多的錢(qián),是不是真的能換來(lái)更好的游戲體驗(yàn)?咱今天就來(lái)嘮嘮這個(gè)事兒,看看這錢(qián)到底該不該花,接下來(lái)我們不妨拿競(jìng)品高端定位的酷睿Ultra 7 265K來(lái)和銳龍5 9600X進(jìn)行一個(gè)對(duì)2025-03-25AMD銳龍7 9700X板U套裝推薦:輕松獲得僅次于9800X3D的游戲性能
銳龍7 9700X的首發(fā)上市價(jià)格為2549元,現(xiàn)在該產(chǎn)品也大幅降價(jià)到1999元,性價(jià)比非常誘人,今天我們就來(lái)看看AMD銳龍7 9700X板U套裝推薦2025-03-17銳龍7 7800X3D實(shí)力完勝i9-14900K! 3000元內(nèi)游戲CPU推薦
在當(dāng)前3000元以內(nèi),最熱門(mén)的游戲CPU莫過(guò)于銳龍7 7800X3D和酷睿i9-14900K,那么這兩款產(chǎn)品究竟誰(shuí)性價(jià)比更高呢?下面我們就來(lái)看看詳細(xì)測(cè)評(píng)2025-03-12游戲與生產(chǎn)力雙高 綜合實(shí)力最強(qiáng)! 銳龍9 9950X3D處理器首發(fā)評(píng)測(cè)
AMD終于將銳龍 9000系列的王牌產(chǎn)品——銳龍 9 9950X3D拿了出來(lái),在搭載了超大容量的3D緩存之后,這顆處理器可以說(shuō)是兼顧了游戲以及創(chuàng)作能力,同時(shí)也是消費(fèi)級(jí)銳龍 9000處理2025-03-1264位和32位CPU有什么區(qū)別? 電腦32位和62位系統(tǒng)區(qū)別介紹
在選購(gòu)或使用電腦時(shí),我們經(jīng)常會(huì)聽(tīng)到“32位”和“64位”這樣的術(shù)語(yǔ),那么,這兩個(gè)概念到底是什么意思?它們對(duì)計(jì)算機(jī)的性能和兼容性有什么影響?詳細(xì)請(qǐng)看下文介紹2025-03-07為什么主流裝機(jī)玩家都選AMD 銳龍5 9600X? 五大理由告訴你
你可能會(huì)奇怪,為什么最近Zen5架構(gòu)的銳龍9000系列桌面處理器在主流玩家群體中的口碑這么好;為什么在追求性價(jià)比搭配,期望用最少花費(fèi)實(shí)現(xiàn)盡可能好游戲體驗(yàn)的玩家群體中,AM2025-02-28有銳龍7 9700X還考慮什么酷睿i9/Ultra 9處理器? 性能級(jí)游戲裝機(jī)推薦
別看銳龍7 9700X只是一款2000元價(jià)位的產(chǎn)品,但是具備了挑戰(zhàn)競(jìng)品旗艦酷睿i9-14900K和酷睿Ultra 9 285K的強(qiáng)悍實(shí)力,具體差距如何?請(qǐng)看下文測(cè)評(píng)2025-02-27CPU散熱你了解多少? CPU 熱節(jié)流機(jī)制的利與弊分析
CPU熱節(jié)流是指當(dāng)處理器在運(yùn)行過(guò)程中產(chǎn)生過(guò)多的熱量,達(dá)到一定的溫度閾值時(shí),為了防止過(guò)熱和損壞,CPU會(huì)自動(dòng)降低時(shí)鐘速度和性能的技術(shù),下面我們就來(lái)看看它的利弊2025-02-19- CPU 的 L1、L2 和 L3 Cache 在現(xiàn)代計(jì)算機(jī)架構(gòu)中起著關(guān)鍵作用,它們的設(shè)計(jì)、大小、位置以及讀寫(xiě)速度和延遲都有顯著的差異,詳細(xì)請(qǐng)看下文介紹2025-02-19