反病毒軟件江湖:排斥與兼容的戰(zhàn)爭(zhēng)(1) |
發(fā)布時(shí)間: 2012/7/4 13:47:03 |
文件監(jiān)控的潛在兼容性問(wèn)題
文件監(jiān)控是反病毒廠(chǎng)商普遍采用的技術(shù)手段,其主要機(jī)理是對(duì)文件的創(chuàng)建、讀取、關(guān)閉等行為進(jìn)行監(jiān)控觸發(fā)對(duì)文件病毒檢測(cè),以阻斷病毒的執(zhí)行和部分相關(guān)行為。 文件監(jiān)控的實(shí)現(xiàn)方式主要有以下兩大類(lèi)型: 1. API掛鉤。 根據(jù)鉤掛API的層次不同我們又可以分為 : (a) Ring3文件監(jiān)控。 多采用inline hook的方式修改文件操作相關(guān)函數(shù)的前幾個(gè)字節(jié),跳轉(zhuǎn)到自己的函數(shù),然后對(duì)將要操作的文件和緩沖區(qū)進(jìn)行檢測(cè)。 由于實(shí)現(xiàn)跳轉(zhuǎn)的方式有多種,所以不同軟件的實(shí)現(xiàn)策略有所不同,很難保證多個(gè)軟件共存時(shí)前一軟件修改后不影響到后一個(gè)軟件,而且很可能導(dǎo)致相關(guān)進(jìn)程崩潰。 由于此類(lèi)技術(shù)也多被惡意軟件使用,一些安全軟件不會(huì)在執(zhí)行完自己的代碼后執(zhí)行修改前的自己,而是采用從原始文件中讀取、分析、執(zhí)行的方式,導(dǎo)致多個(gè)安全軟件同時(shí)監(jiān)控一個(gè)API時(shí),只有一個(gè)生效。 出于性能考慮,不傳遞給原API處理而采用自己實(shí)現(xiàn)的代碼完成該API的相應(yīng)功能,那么也不會(huì)將相關(guān)信息傳遞給其他軟件。 部分軟件在執(zhí)行完自己的函數(shù)后會(huì)把修改后的字節(jié)還原,然后調(diào)用原系統(tǒng)API完成功能后再次修改、掛鉤。兩個(gè)使用此實(shí)現(xiàn)的軟件同時(shí)工作則可能造成互相調(diào)用導(dǎo)致死鎖,程序沒(méi)有響應(yīng)。 (b) Ring0文件監(jiān)控。與ring3的情況類(lèi)似,但是后果更加嚴(yán)重。 由于inline hook不同實(shí)現(xiàn)造成的不兼容性很可能導(dǎo)致系統(tǒng)API無(wú)法正常工作,導(dǎo)致系統(tǒng)藍(lán)屏。 例如:安天客戶(hù)端產(chǎn)品(Antiy Ghostbusters4.0)早期版本采用大量inline hook,后因與其他產(chǎn)品嚴(yán)重沖突放棄;360安全衛(wèi)士中inline hook有幾種不同實(shí)現(xiàn)方式共存的現(xiàn)象,并且與360安全瀏覽器有重合的監(jiān)控點(diǎn); 掛鉤之間相互調(diào)用,會(huì)導(dǎo)致死鎖,系統(tǒng)死機(jī); 采用替換SSDT的方式,則只有自己的掛鉤有效,其他軟件的掛鉤均無(wú)效。 例如:360安全衛(wèi)士等產(chǎn)品采用替換SSDT的方式,與其共存的安全軟件通過(guò)標(biāo)準(zhǔn)方法獲取的SSDT是無(wú)效的,導(dǎo)致其他安全軟件功能出現(xiàn)缺失; Vista以后微軟對(duì)內(nèi)核進(jìn)行保護(hù),部分對(duì)內(nèi)核函數(shù)的修改會(huì)導(dǎo)致系統(tǒng)藍(lán)屏。 例如:多個(gè)產(chǎn)品在內(nèi)測(cè)和對(duì)外版本都出現(xiàn)過(guò)對(duì)關(guān)鍵內(nèi)核函數(shù)進(jìn)行修改,但是并沒(méi)有仔細(xì)判斷版本,導(dǎo)致兼容性出現(xiàn)問(wèn)題而使系統(tǒng)藍(lán)屏。 2. 文件過(guò)濾驅(qū)動(dòng)
過(guò)濾驅(qū)動(dòng)的本質(zhì)依然是掛鉤,但微軟為了方便廠(chǎng)商調(diào)用,對(duì)其進(jìn)行了封裝,屬于官方的技術(shù)。此類(lèi)技術(shù)本身已經(jīng)力求穩(wěn)定與兼容,多數(shù)都提供了一定的兼容性保障。微軟自己的安全產(chǎn)品在驅(qū)動(dòng)層面也多使用類(lèi)似的方式。 但是在安全產(chǎn)品的實(shí)際應(yīng)用中,多層監(jiān)控逐層傳遞會(huì)造成效率的降低,一些廠(chǎng)商在實(shí)現(xiàn)時(shí)會(huì)繞過(guò)后續(xù)的過(guò)濾驅(qū)動(dòng),直接將IRP請(qǐng)求發(fā)給下一層驅(qū)動(dòng)完成相關(guān)的功能。 本文出自:億恩科技【prubsntakaful.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |