ExecuteDisable單元

ExecuteDisable單元是Intel的“Execute Disable Bit”(執行禁止位,簡稱EDB),是一種硬體防病毒技術,與作業系統相配合,可以防範大部分針對緩衝區溢出(buffer overrun)漏洞的攻擊(大部分是病毒)。

基本信息

簡介

緩衝區溢出是由編程錯誤引起的。如果緩衝區被寫滿,而程式沒有去檢查緩衝區邊界,也沒有停止接收數據,這時緩衝區溢出就會發生。緩衝區邊界檢查被認為是不會有收益的管理支出,計算機資源不夠或者記憶體不足是編程者不編寫緩衝區邊界檢查語句的理由,然而技術的飛速發展已經使這一理由失去了存在的基礎,但是多數用戶日常主要套用的程式中大多數其實仍然是十年甚至二十年前的程式代碼,並沒有檢查緩衝區邊界的功能。

實現途徑

緩衝區溢出攻擊最基本的實現途徑是向正常情況下不包含可執行代碼的記憶體區域插入可執行的代碼,並欺騙CPU執行這些代碼。而如果我們在這些記憶體頁面的數據區域設定某些標誌(No eXecute或eXecute Disable),當CPU讀取數據時檢測到該記憶體頁面有這些標誌時就拒絕執行該區域的可執行指令,從而可防止惡意代碼被執行,這就是CPU的防緩衝區溢出攻擊實現的原理。

而對於開啟了EDB功能的計算機來說,一般也就可實現數據和代碼的分離,而在記憶體某個頁面將被設定為只做數據頁,而任何企圖在其中執行代碼的行為都將被CPU所拒絕。當然,開啟EDB功能的CPU是無法獨立完成標註不可執行代碼記憶體頁面以及進行相關檢測防治工作的,它還需要相關作業系統和應用程式的配合。

相關詞條

相關搜尋

熱門詞條

聯絡我們