病毒,說(shuō)白了就是可以做任意事情的破壞性程序,這不算什么,大不了只是一個(gè)地方黑社會(huì)。
木馬,簡(jiǎn)而言之就是只要給我聯(lián)網(wǎng),我就可以黑掉你
微軟已經(jīng)把Windows系統(tǒng)給做爛了。exe可以在管理員權(quán)限下任意運(yùn)行,從而導(dǎo)致病毒木馬的泛濫。其實(shí)轉(zhuǎn)過(guò)頭來(lái)看很多手機(jī)操作系統(tǒng),例如Android,也是使用WindowsXP后為exe引入的manifest概念,但是卻從根本上解決了很多安全性弊病
Android中,每個(gè)運(yùn)行入口,必須有一個(gè)manifest來(lái)讓OS知道你這個(gè)程序需要做什么,由OS為你配備網(wǎng)絡(luò),磁盤(pán)讀取等等需求。
如果將病毒的訪問(wèn)權(quán)限降低,例如跑在虛擬機(jī)里面,病毒就沒(méi)有毒了,木馬即便能獲取機(jī)密信息,也發(fā)不出了。
而Windows呢,由于本身概念設(shè)計(jì)的缺陷,一個(gè)程序?qū)懞煤髶碛型耆珯?quán)限進(jìn)行訪問(wèn),OS并不了解一個(gè)程序能做什么,只有當(dāng)這個(gè)程序調(diào)用API時(shí)才知道,但有時(shí)也決定于調(diào)用時(shí)的數(shù)據(jù),比如只有打開(kāi)系統(tǒng)盤(pán)文件才受到限制。于是乎,很多商家看到了money,使用API HOOK,rootkit等等底層鉤子來(lái)模擬出了一套超級(jí)虛擬機(jī),妄想用一個(gè)軟件控制住另外一個(gè)軟件的訪問(wèn),簡(jiǎn)直是癡人說(shuō)夢(mèng)。
也許你會(huì)說(shuō),UNIX/Linux不是在這方面做的很好么?引入用戶及權(quán)限,默認(rèn)不在管理員下運(yùn)行。這點(diǎn)Windows也做了,不過(guò)很好么?看看UAC,Linux下運(yùn)行也很麻煩。
試想下,如果Windows也擁有和Android一樣的manifest機(jī)制,那么病毒掃描也就僅僅需要檢查manifest文件就可以。對(duì)于老的程序,可以開(kāi)啟一個(gè)權(quán)限自動(dòng)檢查模式進(jìn)行運(yùn)行,一段時(shí)間后,自動(dòng)為這個(gè)老程序生成新的manifest,如果以后發(fā)現(xiàn)這個(gè)老程序有侵入系統(tǒng)的問(wèn)題,馬上修改這個(gè)manifest就可以解決問(wèn)題。
你可能要說(shuō),如果程序試圖修改自己的manifest呢?這個(gè)可以在操作系統(tǒng)內(nèi)核進(jìn)行驗(yàn)證,沒(méi)哪個(gè)程序能修改Windows內(nèi)核吧?就是這個(gè)道理,如果manifest的checksum與以前的不一樣,那就需要一些用戶手動(dòng)驗(yàn)證。