文/肖新光
除了文件監(jiān)控、防火墻、瀏覽器防護(hù)的潛在兼容性問(wèn)題之外,在多款軟件共存的情況下,主動(dòng)防御的兼容性問(wèn)題尤為嚴(yán)重。主動(dòng)防御主要可以分為兩個(gè)方面來(lái)看待:
1. 自我保護(hù)
多款安全軟件都保護(hù)自己的監(jiān)控點(diǎn)不被修改,特別是使用了inline hook或者對(duì)系統(tǒng)設(shè)備、內(nèi)核對(duì)象、SSDT進(jìn)行了hook的產(chǎn)品。類似安天Atool等Rootkit檢查工具曾使用過(guò)替換進(jìn)程SSDT保證自己的hook不被修改,但也導(dǎo)致使用SSDT hook的主動(dòng)防御完全失效的副作用。360安全衛(wèi)士曾使用替換SSDT的技術(shù)對(duì)自己的監(jiān)控點(diǎn)進(jìn)行保護(hù),導(dǎo)致與其共存的安全軟件主動(dòng)防御功能中關(guān)于SSDT的部分完全失效。
一旦發(fā)現(xiàn)自己的監(jiān)控點(diǎn)被修改,則會(huì)對(duì)監(jiān)控點(diǎn)進(jìn)行修復(fù),也就是重新hook。這就有可能導(dǎo)致多款安全軟件反復(fù)爭(zhēng)奪監(jiān)控點(diǎn),或者h(yuǎn)ook直接互相調(diào)用造成死鎖,最終耗盡系統(tǒng)資源,導(dǎo)致機(jī)器死機(jī)。
由于自我保護(hù)的存在,病毒感染安全軟件后,依然會(huì)被安全軟件的自我保護(hù)所保護(hù),其他安全軟件可能無(wú)法讀取其內(nèi)容進(jìn)行檢測(cè),或者可以檢測(cè),但是無(wú)法結(jié)束相應(yīng)的進(jìn)程。
2. 惡意行為分析
一款軟件出于安全角度考慮,不調(diào)用被hook的原始API,則會(huì)導(dǎo)致其他軟件在分析惡意行為時(shí),無(wú)法檢測(cè)到該行為,進(jìn)而造成程序的行為序列發(fā)生改變,最終導(dǎo)致行為分析誤報(bào)或者漏報(bào)。
由于安全軟件的某些行為和惡意軟件具有相似性,例如:對(duì)API進(jìn)行的某些hook,在多款安全軟件共存的情況下,很有可能一款安全軟件被另一款報(bào)為病毒,這也是一種誤報(bào)。
為了保證自身進(jìn)程的行為不被重復(fù)記錄或者對(duì)行為分析產(chǎn)生影響,安全軟件可能會(huì)對(duì)特殊API的調(diào)用參數(shù)含義進(jìn)行修改,增加自身需要的標(biāo)識(shí),而這些標(biāo)識(shí)可能會(huì)造成后續(xù)的監(jiān)控產(chǎn)生不可預(yù)知的行為,最糟糕的情況就是導(dǎo)致系統(tǒng)藍(lán)屏。
對(duì)于ring3與ring0結(jié)合判斷的主動(dòng)防御,處于二者中間的其他安全軟件對(duì)數(shù)據(jù)的修改可能會(huì)造成ring0緩沖區(qū)的溢出(例如:ring3的API掛鉤通知ring0的驅(qū)動(dòng),需要26字節(jié)實(shí)際數(shù)據(jù)可能由于中間沙箱軟件的路徑重定向被改為27字節(jié)或者更多)或者被截?cái)?,?dǎo)致系統(tǒng)藍(lán)屏或者漏報(bào)。
以上僅僅是主動(dòng)防御潛在兼容性問(wèn)題的一部分,由于主動(dòng)防御技術(shù)本身的復(fù)雜度,在多款實(shí)用主動(dòng)防御技術(shù)的安全軟件共存的情況下,兼容性問(wèn)題就更容易出現(xiàn),也更加嚴(yán)重,這里說(shuō)明的僅僅是一部分,不是全部。
兼容性是反病毒廠商的核心困擾之一,由于反病毒使用大量的內(nèi)核技術(shù)、驅(qū)動(dòng)等,一旦出現(xiàn)兼容性的后果,其所造成的影響,要遠(yuǎn)嚴(yán)重于其他應(yīng)用軟件。同時(shí)反病毒產(chǎn)品為了對(duì)抗病毒的一些自我防護(hù)機(jī)制,也會(huì)使問(wèn)題的處置變得比較復(fù)雜。因此,多種反病毒軟件之間沖突引發(fā)的問(wèn)題要比其他軟件沖突問(wèn)題后果更加嚴(yán)重。
兼容性沖突問(wèn)題使反病毒廠商技術(shù)支持的難度增大,由于環(huán)境的復(fù)雜性,問(wèn)題變得更加難以排查和處理。
特別是企業(yè)版產(chǎn)品,廠商承擔(dān)著更大的責(zé)任和支持義務(wù),如果由于沖突性問(wèn)題,帶來(lái)問(wèn)題,對(duì)于問(wèn)題的責(zé)任、后果的認(rèn)定等方面都帶來(lái)較大壓力。
同時(shí),有的沖突問(wèn)題由于需要廠商間相互溝通才能解決,因此增加了支持壓力和解決用戶問(wèn)題的周期。
在實(shí)時(shí)監(jiān)控技術(shù)在Windows體系下剛剛成熟時(shí),能夠提供相關(guān)機(jī)制的廠商不多,監(jiān)控點(diǎn)也相對(duì)較少,因此在出現(xiàn)兼容沖突問(wèn)題時(shí),廠商之間可以相互改造和規(guī)避。后來(lái)由于安全廠商過(guò)多,而監(jiān)控點(diǎn)也在不斷增加,解決相關(guān)問(wèn)題的復(fù)雜度已經(jīng)超出了每個(gè)廠商的個(gè)體能力。
因此在經(jīng)歷了大量沖突事件后,部分主流廠商選擇了從安裝環(huán)節(jié)保證互斥的方法。其具體操作是:在安裝時(shí)檢測(cè)用戶系統(tǒng)中是否有其他反病毒產(chǎn)品,如果有則提示用戶可能的沖突后果,并提示用戶卸載。如果用戶不卸載,則明示用戶共存后果,或者選擇自身不予安裝。但先被裝載到主機(jī)上的反病毒產(chǎn)品,并不監(jiān)控其他反病毒產(chǎn)品的安裝行為,以及進(jìn)行提示。這就是約定俗成的“后卸前”原則。
這種方法雖然影響到了一些用戶讓多種反病毒產(chǎn)品共存的意愿,但其形成了一個(gè)單向的邏輯,即后安裝的有告知和卸載的主動(dòng)權(quán),先裝入主機(jī)的接受用戶的選擇。
這個(gè)過(guò)程是有一定合理性的:
需要指出的是,盡管反病毒廠商之間存在著長(zhǎng)期的競(jìng)爭(zhēng),但主流廠商之間的技術(shù)層次的互通,技術(shù)資源(如病毒樣本)的分享是一直存在的。
通過(guò)互斥一定程度上解決了兼容性問(wèn)題。
保證了用戶的知情權(quán)、選擇權(quán)和自覺(jué)權(quán)。用戶是在被告知后果的情況下,做出了符合個(gè)人意愿的選擇。
用戶在后一個(gè)反病毒產(chǎn)品的體驗(yàn)中,如果覺(jué)得不如之前的軟件,可以通過(guò)再安裝前一個(gè)軟件的方法,重新選擇之前的產(chǎn)品。這確保了廠商之間的競(jìng)爭(zhēng)基本上是用戶體驗(yàn)和效果的競(jìng)爭(zhēng),而沒(méi)有賴在用戶機(jī)器上不走的情況。
但互斥性的方法,所帶來(lái)的問(wèn)題也顯而易見(jiàn),那就是用戶很難同時(shí)分享兩個(gè)產(chǎn)品的保障。而這對(duì)于地下經(jīng)濟(jì)產(chǎn)業(yè)鏈所驅(qū)動(dòng)的木馬小眾化、數(shù)量爆炸化的嚴(yán)峻安裝形式,只靠任何一個(gè)廠商的力量,可能都很難保證用戶安全。相關(guān)產(chǎn)品能夠合理共存、機(jī)制互補(bǔ)更符合用戶價(jià)值的最大化。
需要指出的是,盡管反病毒廠商之間存在著長(zhǎng)期的競(jìng)爭(zhēng),但主流廠商之間的技術(shù)層次的互通,技術(shù)資源(如病毒樣本)的分享是一直存在的。加之管理部門、測(cè)評(píng)機(jī)構(gòu)、CERT組織等的協(xié)調(diào)和努力,各廠商之間基本遵循了一些基礎(chǔ)的原則。在歷史上較長(zhǎng)的時(shí)間內(nèi),盡管出現(xiàn)過(guò)各種商業(yè)摩擦,但一直都把兼容沖突作為期望回避的問(wèn)題,而不是作為競(jìng)爭(zhēng)的籌碼和手段。有關(guān)問(wèn)題的復(fù)雜化和擴(kuò)大化是后期才出現(xiàn)的。
這說(shuō)明任何沒(méi)有明確行業(yè)規(guī)范為支撐的原則,都是脆弱的。在“后卸前”的用戶自主選擇鏈條中,只要有一家采用不良手段(如通過(guò)反人機(jī)工程的方法,在競(jìng)爭(zhēng)對(duì)手產(chǎn)品安裝過(guò)程中,給予多次提示,造成用戶一次選擇不當(dāng)就無(wú)法安裝、或者安裝后失效等),保護(hù)自己所謂裝機(jī)率,則會(huì)連帶造成被攔截的廠商進(jìn)行報(bào)復(fù),從而導(dǎo)致規(guī)則被打破,形成惡性循環(huán),最終導(dǎo)致通過(guò)惡意構(gòu)造兼容性壁壘和陷阱變成普遍性的行為。因此,自然形成的事實(shí)標(biāo)準(zhǔn)需要形成行業(yè)規(guī)范,才能具有權(quán)威性。
反病毒產(chǎn)品作為主機(jī)安全的核心屏障,不僅要使用戶遠(yuǎn)離安全威脅,也要保護(hù)用戶的知情權(quán)和選擇權(quán)。尊重用戶卸載意愿,包括在保證穩(wěn)定性基礎(chǔ)上,尊重用戶希望多個(gè)安全產(chǎn)品共存的愿望,不僅是用戶權(quán)益的體現(xiàn),也是廠商不怕被用戶進(jìn)行比較選擇的自信心的體現(xiàn)。因?yàn)檫@個(gè)行業(yè)之所以前進(jìn),正是因?yàn)橛脩魮碛胁粩鄧L試和選擇的機(jī)會(huì),這是每個(gè)廠商的動(dòng)力之源。
同時(shí),我們需要意識(shí)到用戶期望多安全產(chǎn)品共存,是當(dāng)前嚴(yán)峻的安全形勢(shì)所催生的真實(shí)需求。反病毒產(chǎn)品如果能提供更多的定制選擇,如提供行命令的掃描工具、提供掃描界面和監(jiān)控機(jī)制(甚至不同監(jiān)控機(jī)制)的可定制安裝,就能讓用戶在獲得多個(gè)廠商的檢測(cè)能力的基礎(chǔ)上,較少地付出兼容性代價(jià)。如果安全廠商之間進(jìn)一步強(qiáng)化其互通體制和配置策略,未來(lái)能夠支持用戶更靈活的定制多產(chǎn)品共存的監(jiān)控策略,則將創(chuàng)造一種更為理想的用戶境界。
而主流操作系統(tǒng)廠商如果能對(duì)監(jiān)控基礎(chǔ)給出更為豐富的接口和定義相應(yīng)的規(guī)范,包括保證公共安全接口統(tǒng)一嵌套化,則能進(jìn)一步降低發(fā)生沖突的概率。
當(dāng)然,我們希望用戶理解,只要反病毒產(chǎn)品的實(shí)時(shí)監(jiān)控和防御的使命存在,不同產(chǎn)品之間的兼容沖突問(wèn)題就必然存在,不可能有終極解決之道。我們也希望傳達(dá)給用戶的信息是大量安全廠商所研發(fā)的充滿不同個(gè)性的安全產(chǎn)品,是攻擊者需要逾越的一個(gè)整體代價(jià)。只有八仙過(guò)海、各顯其能的廠商個(gè)性存在,才能保證網(wǎng)絡(luò)整體安全水準(zhǔn)。多個(gè)廠商的共存和競(jìng)爭(zhēng),是互聯(lián)網(wǎng)安全的基礎(chǔ)保證。