Basic Member
|
剛剛看了一下各位的討論,發覺許多網友對於病毒的認知,掃毒軟體的原理,理解的程度非常的有限,本人因為工作上相關,給各位補充一下
掃毒軟體不該以佔用資源來評斷優劣,(佔用系統資源但掃得到病毒 vs 省系統資源卻掃不到病毒)我寧願選前者
再來,掃毒軟體並不是標榜具有"啟發式掃描"就是好,(基本上沒有此能力的掃毒軟體早就該淘汰了),各位要知道,"啟發式" 所使用的技術主要還是仰賴特徵庫,主要有底下幾種技術
1.PE檔頭判斷:這是很笨的方法,早期防毒軟體所仰賴的技術,透過分析Entry Point 區段 以及CRC檢測來判斷,目前 Norton , Mcaffe 都還使用此方法
2.強力脫殼:許多病毒會使用加殼加密來保護程式不被追蹤分析,並且達到Binary完全變形的能力,因此掃毒軟體最好能夠解各種殼,但是技術難度很高,要知道這世界上有幾萬種殼,而且天天都在更新,能夠解開99%以上的殼簡直難如登天,但是KAV辦到了,這也是卡車司機紅起來的主要技術,後來其他掃毒軟體都模仿跟進,不過現在已經漸漸不管用了,因為人類造殼的速度已經追上卡巴工程師解殼的能力了,例如 Morphine, VMP這類的變形工具 (國產的PCC這方面仍是比較弱的,該加強了)
3.記憶體分析:記憶體分析是對付變形非常有效的方法,非常準確也非常省資源,病毒製造者除非改寫原始碼,否則難以變更記憶體佈局,目前有部分掃毒軟體用此法,如大陸的金山毒霸,江民殺毒 以及 NOD32 , TrojanHunter 等等,但是只能用於即時掃描,而無法用於磁碟掃描,且無法對付 Morphine, VMP這類工具
4.反組譯分析:將脫殼好的Binary反組譯成組合語言分析,這是目前掃毒軟體主流技術,但是非常仰賴特徵庫,也就是第二代特徵庫,目前KAV ,NOD32, AVS, Panda, Sophos 都將掃毒引擎專注在此能力上,尤其是執行效能的增強 (至於Norton, PCC 這方面的能力並不明顯,在我的測試中幾乎是感受不到,似乎還停留在第一代病毒庫的階段)
但這項技術目前遇到很多挑戰,像是CCL, VMP這樣的工具,掃毒軟體再度被邪惡力量擊敗
5.虛擬機分析:就是模擬一個執行環境,掃毒軟體親自執行病毒,看病毒會有啥反應,如此就不一定要脫殼分析,譬如:存取啟動磁區,修改機碼 這類的行為的組合,如果符合行為模式庫中的危害行為,就判定為病毒,卡巴具有此能力,但是在我認為還不完善,常會誤判,虛擬機很耗系統資源,造成KAV一頓一頓的容易當機,NOD32這方面似乎比卡巴還好一點,但遇到 Rootkit 還是沒輒,再度被邪惡力量擊敗
不要相信掃毒軟體****標榜 "清除Rootkit" 這項能力,對我來說毫無意義
以現在Rootkit氾濫的情況,只能說目前掃毒軟體都是廢柴,前鎮子國內某銀行被大陸駭客植入rootkit 過了很久才發覺,而Sony DRM事件,更是過了一年才被高手挖出,更促使微軟加強 MRT(雖然跟其他掃毒軟體相比半斤八兩) ,我推測國內大概有四成以上的家用電腦感染Rootkit,或許你的電腦就有,只是隱藏的太好罷了
|