• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      淺析DEP安全保護(hù)技術(shù)

      2018-11-07 02:47:44
      網(wǎng)絡(luò)安全和信息化 2018年8期
      關(guān)鍵詞:進(jìn)程內(nèi)存代碼

      DEP的原理和功能

      使用DEP機(jī)制有助于防止計(jì)算機(jī)受到病毒和其他惡意程序的攻擊和破壞,DEP會(huì)讓計(jì)算機(jī)分配一部分內(nèi)存用來存儲(chǔ)數(shù)據(jù),分配另一部分內(nèi)存供程序使用。DEP可以監(jiān)控程序的運(yùn)行,保證其可以安全使用內(nèi)存,保護(hù)計(jì)算機(jī)避免黑客的侵襲。如果DEP發(fā)現(xiàn)有程序試圖從存儲(chǔ)數(shù)據(jù)的內(nèi)存中執(zhí)行指令,就會(huì)將其關(guān)閉并通知用戶。

      根據(jù)操作系統(tǒng)設(shè)計(jì)原理,系統(tǒng)程序或某些應(yīng)用軟件會(huì)被要求在特定的內(nèi)存區(qū)域內(nèi)運(yùn)行,這個(gè)內(nèi)存區(qū)域如果受到其他程序的破壞,會(huì)導(dǎo)致程序出錯(cuò),甚至系統(tǒng)崩潰。而DEP技術(shù)可以有效地防止這類情況發(fā)生。如果啟動(dòng)了DEP保護(hù)機(jī)制,Windows就會(huì)自動(dòng)關(guān)閉試圖執(zhí)行溢出操作的程序。

      DEP在程序執(zhí)行時(shí),將可執(zhí)行代碼所占用的內(nèi)存區(qū)域自動(dòng)標(biāo)記出來。支持DEP的CPU利用NX技術(shù)識(shí)別這些標(biāo)記出來的區(qū)域。當(dāng)DEP發(fā)現(xiàn)當(dāng)前執(zhí)行代碼沒有明確標(biāo)記為可執(zhí)行,就會(huì)禁止其執(zhí)行。

      這樣,當(dāng)病毒和其他利用溢出技術(shù)進(jìn)行攻擊的惡意程序自然無計(jì)可施。DEP之所以可以發(fā)揮作用,是因?yàn)閹缀鯖]有任何合法程序會(huì)在內(nèi)存的堆棧段中存放執(zhí)行代碼,而緩沖區(qū)溢出后執(zhí)行的代碼又是放在堆棧段上的。DEP從實(shí)現(xiàn)的機(jī)制上看,分為軟件DEP和硬件DEP。對(duì)于前者來說,主要用來阻止針對(duì)SEH(Structure Exception Handler,異常處理結(jié)構(gòu)體)發(fā)起的攻擊。

      為了保證系統(tǒng)遇到這些錯(cuò)誤時(shí)不至于崩潰,讓其可以穩(wěn)定的運(yùn)行下去,Windows會(huì)對(duì)運(yùn)行在其中的程序提供補(bǔ)救的機(jī)會(huì)來處理錯(cuò)誤,這就是系統(tǒng)的異常處理機(jī)制。而黑客程序會(huì)通過改寫SEH堆棧中的異常處理函數(shù)指針,并利用Windows存在各種漏洞來執(zhí)行攻擊行為。

      從Windows XP SP2版本開始,微軟提供了SEH驗(yàn)證機(jī)制,在程序調(diào)用異常處理函數(shù)前對(duì)要調(diào)用的異常處理函數(shù)進(jìn)行有效性校驗(yàn),當(dāng)發(fā)現(xiàn)異常處理函數(shù)不可靠時(shí)將終止調(diào)用操作。這種軟件DEP機(jī)制和CPU無關(guān),Windows利用軟件模擬實(shí)現(xiàn)DEP保護(hù)功能,對(duì)操作系統(tǒng)加以保護(hù)。硬件DEP才能稱得上真正意義上的DEP保護(hù)機(jī)制,這需要CPU的支持,對(duì)于AMD的CPU來說,稱為 NX(No-Execute Page-Protection)。對(duì)于Intel的CPU來說,稱為XD(Execute Disable Bit)。

      DEP的管理和配置

      雖然名稱不同,但是兩者的工作原理和保護(hù)功能是一致的。Windows通過在對(duì)應(yīng)的內(nèi)存頁中設(shè)置NX/XD屬性標(biāo)志來禁止從這些內(nèi)存頁中執(zhí)行代碼。其實(shí)現(xiàn)方法是在內(nèi)存的頁面表中針對(duì)特定的內(nèi)存頁加入一個(gè)特殊的NX/XD標(biāo)志位,來指示是否允許在該內(nèi)存頁上執(zhí)行指令。當(dāng)該標(biāo)識(shí)位設(shè)置為0時(shí),表示允許在該頁面執(zhí)行代碼,設(shè)置為1時(shí)則禁止在該頁面中執(zhí)行指令。在系統(tǒng)屬性窗口中打開“高級(jí)”面板,在“性能”欄中點(diǎn)擊“設(shè)置”按鈕,在性能選項(xiàng)窗口中的“數(shù)據(jù)執(zhí)行保護(hù)”面板(如圖1)中可以查看該機(jī)的CPU是否支持硬件DEP。如果在窗口底部顯示“您的計(jì)算機(jī)處理器支持基于硬件的DEP”內(nèi)容,說明其支持DEP,否則的話,說明其不支持硬件DEP。

      圖1 查看DEP管理界面

      即使不支持硬件DEP,Windows也可以使用軟件DEP模式來保護(hù)某些類型的攻擊。DEP針對(duì)溢出操作的源頭,有力的強(qiáng)化了內(nèi)存管理機(jī)制。通過將內(nèi)存頁設(shè)置為不可執(zhí)行狀態(tài),來阻止堆棧中Shellcode程序的運(yùn)行,稱得上是最有力的緩沖溢出保護(hù)機(jī)制。

      當(dāng)然,我們在運(yùn)行某些軟件時(shí),需要對(duì)其進(jìn)行一番了解,最好使用與DEP兼容的版本。運(yùn)行這類程序,就會(huì)受到DEP的保護(hù)。最好不要輕易運(yùn)行與DEP不兼容的程序,盡量降低潛在的風(fēng)險(xiǎn)。對(duì)于自己完全信任的程序,可以視情況關(guān)閉DEP,對(duì)于外來的不可知的程序,最好打開DEP保護(hù)功能。在上述“數(shù)據(jù)執(zhí)行保護(hù)”面板中選擇“為除下列選定的程序之外的所有程序和服務(wù)啟用DEP”項(xiàng),點(diǎn)擊“添加”按鈕,將自己信任的程序?qū)脒M(jìn)來,之后重啟系統(tǒng)即可。

      注意,DEP和防病毒軟件或防火墻軟件是不同,DEP并不是一種防病毒軟件,不能阻止病毒等惡意程序潛入系統(tǒng),也不具備殺軟等安全軟件具有的病毒檢測和查殺功能,DEP是通過對(duì)程序進(jìn)行監(jiān)控,確定它們是否能夠安全地使用系統(tǒng)內(nèi)存的技術(shù)。因此DEP是一種操作系統(tǒng)底層的安全機(jī)制,通過這種安全機(jī)制,可以防御病毒、蠕蟲等惡意程序利用緩沖區(qū)漏洞進(jìn)行非法溢出操作,但是DEP并不會(huì)防御所有類型的病毒。

      DEP的保護(hù)模式

      根據(jù)啟動(dòng)參數(shù)的不同,DEP工作狀態(tài)分為Optin、Optout、AlwaysOn、AlwaysOff等模式。對(duì)于Optin模式來說,默認(rèn)僅將DEP保護(hù)應(yīng)用于Windows系統(tǒng)組件和服務(wù),對(duì)其他程序不進(jìn)行保護(hù)。但用戶可以通過應(yīng)用程序兼容性工具,為選定的程序啟用DEP保護(hù)功能,在開發(fā)者使用Visual Studio 2008等工具編譯程序時(shí),可以使用特定的鏈接選項(xiàng),采用“/NXCOMPAT”參數(shù)執(zhí)行編譯處理,這樣得到的程序?qū)⒆詣?dòng)應(yīng)用DEP保護(hù)機(jī)制。對(duì)于Optout模式來說,可以通過設(shè)置排除列表的方法,將不需要DEP保護(hù)的程序添加到排除列表中,其余的程序則啟用DEP保護(hù)功能。

      對(duì)于AlwaysOn模式來說,針對(duì)所有的進(jìn)程啟用DEP保護(hù)功能,在該模式下DEP不可以被關(guān)閉。只有在64位的操作系統(tǒng)上才可以使用AlwaysOn模式。對(duì)于AlwaysOff模式來說,對(duì)所有的進(jìn)程都禁用DEP保護(hù),在該模式下,DEP無法被動(dòng)態(tài)開啟,該模式只能在特定的場合下才可以使用,例如為了避免DEP干擾程序的正常運(yùn)行等。例如,對(duì)于Windows XP來說,可以在其系統(tǒng)盤根目錄下的“boot.ini”進(jìn)行編輯,來切換DEP保護(hù)模式。在對(duì)應(yīng)啟動(dòng)型后面追加“/noexecute=optout”或 者“/noexecute=Optin”語句,來采用Optin或者Optout模式。如果使用了“AlwaysOff”參數(shù),表示禁用DEP。對(duì)于Windows 7等系統(tǒng)來說,可以執(zhí)行“bcdedit.exe /set {curent} nx AlwaysOn”命令,開啟DEP的AlwaysOn模式,在該命令中 使 用“Optin”、“Optout”、“AlwaysOff”等參數(shù),可以激活對(duì)應(yīng)的保護(hù)模式。

      解決和DEP相關(guān)的故障

      對(duì)于某些電腦來說,使用DEP保護(hù)機(jī)制可能會(huì)對(duì)某些程序或者整個(gè)系統(tǒng)的運(yùn)行造成不利影響。例如,如果在開啟IE時(shí),頻繁出現(xiàn)“已經(jīng)關(guān)閉了此程序”的提示,導(dǎo)致IE無法順利運(yùn)行的話,就說明和DEP機(jī)制存在沖突的問題。

      為此可以在開機(jī)時(shí)進(jìn)入主板BIOS設(shè)置界面,在其中找到和DEP配置相關(guān) 的 項(xiàng) 目(例 如“Execute Disable Function”等),設(shè)置為“Disable”項(xiàng),關(guān)閉硬件DEP保護(hù)功能,就可以解決問題。在沒有DEP保護(hù)的情況下,必須為系統(tǒng)安裝強(qiáng)悍的殺軟來防御病毒、木馬等惡意程序的威脅。當(dāng)然,也可以管理員身份打開CMD窗口,在其中執(zhí)行“bcdedit.exe /set {curent} nx AlwaysOff”命令來關(guān)閉DEP功能。

      當(dāng)然,最好按照上述方法,將IE添加到DEP中的排除列表中,不讓DEP對(duì)IE進(jìn)行管控,這樣可以很好的解決該問題。在一般情況下,DEP會(huì)監(jiān)控系統(tǒng)程序和服務(wù),使其安全的使用內(nèi)存。DEP會(huì)單獨(dú)與CPU一起將某些內(nèi)存區(qū)域標(biāo)記為不可執(zhí)行狀態(tài)。如果某個(gè)程序試圖從受保護(hù)的位置執(zhí)行代碼,DEP就會(huì)將其關(guān)閉并通知用戶。即使其不是惡意代碼,也會(huì)被DEP強(qiáng)制關(guān)閉。在DEP提供給用戶的報(bào)告窗口中點(diǎn)擊“單擊此處”鏈接,在詳細(xì)信息界面中可以顯示出錯(cuò)程序的名稱以及版本信息。用戶可以據(jù)此來分析該程序的安全性,并根據(jù)需要將其添加到DEP排除列表中即可。

      當(dāng)然,如果該程序已經(jīng)提供了升級(jí)版本,并支持DEP保護(hù)機(jī)制,最好的辦法是對(duì)其升級(jí),使其可以在DEP保護(hù)下正常運(yùn)行。

      小議DEP的局限性

      DEP雖然擁有強(qiáng)大的保護(hù)功能,但也存在一些弱點(diǎn),無法徹底阻止緩沖區(qū)溢出攻擊。例如,對(duì)于硬件DEP保護(hù)機(jī)制來說,需要CPU的支持才行,但并非所有的CPU都提供硬件DEP支持,一些較老的CPU是不支持硬件DEP的。因?yàn)榧嫒菪缘脑?,Windows有時(shí)無法對(duì)所有的進(jìn)程都開啟DEP保護(hù)功能。尤其對(duì)于一些第三方的DLL插件來說,可能不支持DEP,一旦開啟了DEP,很可能造成進(jìn)程運(yùn)行異常。使用老版本的應(yīng)用程序兼容性工具,需要在數(shù)據(jù)頁面上產(chǎn)生可執(zhí)行代碼,這就無法開啟DEP,否則很容易出現(xiàn)運(yùn)行故障。

      在編譯程序時(shí),即使使用了“/NXCOMPAT”參數(shù),也只能對(duì)Vista以上的版本有效,對(duì)于XP等老系統(tǒng)來說,這樣的設(shè)置會(huì)被忽略。當(dāng)DEP運(yùn)行在Optin或者Optout模式時(shí),DEP是可以被動(dòng)態(tài)關(guān)閉和開啟的,因?yàn)椴僮飨到y(tǒng)內(nèi)置了一些API函數(shù),可以控制DEP的工作狀態(tài)。如果一些惡意進(jìn)程非法調(diào)用了這些API、函數(shù),就可以關(guān)閉DEP保護(hù)功能,為系統(tǒng)帶來了潛在的安全隱患。實(shí)際上,微軟出于兼容性的需求,不能對(duì)所有的進(jìn)程都開啟DEP功能。當(dāng)然,對(duì)于64位系統(tǒng)來說,采用AlwaysOn模式可以避免該問題。DEP保護(hù)的目標(biāo)是進(jìn)程,當(dāng)某個(gè)進(jìn)程加載的DLL模塊中如果存在某個(gè)模塊不支持DEP的話,該進(jìn)程就不會(huì)貿(mào)然開啟DEP,主要是為了避免異常的發(fā)生。

      打開任務(wù)管理器,在“進(jìn)程”面板中點(diǎn)擊菜單“查看”→“選擇列”項(xiàng),選擇“數(shù)據(jù)執(zhí)行保護(hù)”項(xiàng)。在進(jìn)程列表中的“數(shù)據(jù)執(zhí)行保護(hù)”列中可以查看不同進(jìn)程是否支持DEP的情況,只有顯示“啟用”字樣,才表示對(duì)應(yīng)的進(jìn)程支持DEP。如果惡意程序攻擊沒有啟用DEP保護(hù)功能的進(jìn)程,就很容易溢出成功。DEP之所以可以防止非法溢出,關(guān)鍵在于當(dāng)其檢測到程序跳轉(zhuǎn)到非可執(zhí)行頁執(zhí)行指令話,就會(huì)拋出異常,執(zhí)行異常處理程序。但是,如果惡意程序跳轉(zhuǎn)到已經(jīng)存在的某個(gè)系統(tǒng)函數(shù)中,因?yàn)樵摵瘮?shù)是存在于可執(zhí)行頁上的,DEP自然不會(huì)對(duì)其攔截。這樣,惡意程序就可以在該執(zhí)行頁中找到其所需的指令,進(jìn)而執(zhí)行該指令,利用惡意程序自身提供的流程控制功能,可以執(zhí)行完畢后自動(dòng)返回。繼續(xù)執(zhí)行其他操作。

      為了順利運(yùn)行,惡意程序甚至?xí)苯诱{(diào)用相關(guān)的API函數(shù),將DEP直接關(guān)閉。因?yàn)樵贠ptout和AlwaysOn模式下,所有的進(jìn)程默認(rèn)開啟DEP。惡意程序可能調(diào)用某個(gè)系統(tǒng)函數(shù),將Shellcode所在的內(nèi)存位置設(shè)置為可執(zhí)行狀態(tài)來避

      開DEP對(duì)系統(tǒng)進(jìn)行滲透。此外,惡意程序還會(huì)采取非法利用某個(gè)API函數(shù)來申請一段具有可執(zhí)行屬性的內(nèi)存區(qū)域,將Shellcode代碼復(fù)制到該區(qū)域來避開DEP控制。為降低攻擊難度,惡意程序會(huì)在進(jìn)程的內(nèi)存空間中尋找一段具有可讀可寫可執(zhí)行的內(nèi)存區(qū)域,將Shellcode代碼復(fù)制進(jìn)來,對(duì)程序流程進(jìn)行劫持,來非法執(zhí)行Shellcode代碼。

      此外,惡意程序的伎倆還包括非法利用.Net文件,將Shellceode代碼存放到.NET文件中的具有可執(zhí)行屬性的段中,當(dāng)這些段被映射到內(nèi)存后,自然具有了一定的可執(zhí)行特性,惡意程序轉(zhuǎn)入該區(qū)域后,就可以執(zhí)行Shellcode代碼了。和.NET文件類似,Jave applet文件也會(huì)被加載到瀏覽器內(nèi)存空間,這些Jave applet空間所在的內(nèi)存空間也具有了可執(zhí)行屬性,黑客只需將Shellcode代碼放到Jave applet文件中,就可以避開DEP的管控。

      猜你喜歡
      進(jìn)程內(nèi)存代碼
      債券市場對(duì)外開放的進(jìn)程與展望
      中國外匯(2019年20期)2019-11-25 09:54:58
      “春夏秋冬”的內(nèi)存
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      社會(huì)進(jìn)程中的新聞學(xué)探尋
      基于內(nèi)存的地理信息訪問技術(shù)
      我國高等教育改革進(jìn)程與反思
      Linux僵死進(jìn)程的產(chǎn)生與避免
      岳池县| 海安县| 宁津县| 衡水市| 高密市| 体育| 吕梁市| 喀喇| 大渡口区| 新干县| 文昌市| 社会| 济阳县| 五常市| 永靖县| 吴桥县| 介休市| 桓台县| 武宁县| 丹江口市| 勐海县| 曲松县| 普兰店市| 铜川市| 合肥市| 娄烦县| 卢湾区| 黄浦区| 偏关县| 砀山县| 务川| 岳阳市| 临颍县| 延寿县| 克拉玛依市| 永仁县| 马公市| 樟树市| 沐川县| 华亭县| 江津市|