主動防御型殺毒軟件技術的深入探討 |
發(fā)布時間: 2012/7/4 15:37:01 |
以下的文章主要是闡述主動防御型殺毒軟件的技術探討,間諜程序、游戲木馬、以及黑客程序等網絡病毒的不斷爆發(fā),從而使國內外反病毒領域意識到,單純依靠“特征碼技術”已經不能適應反病毒需求。 間諜程序、游戲木馬、黑客程序等網絡病毒的頻頻爆發(fā),使國內外反病毒領域開始意識到,單純依靠“特征碼技術”已經不能適應反病毒需求。 那么什么是“主動防御”,它的實現(xiàn)技術又是怎樣的呢?本人在這里簡單獻丑一下,說得不對的地方歡迎扔鞋砸雞蛋! 所謂“主動防御”,就是全程監(jiān)視進程的行為,一但發(fā)現(xiàn)“違規(guī)”行為,就通知用戶,或者直接終止進程。它類似于警察判斷潛在罪犯的技術,在成為一個罪犯之前,大多數(shù)的人都有一些異常行為,比如“性格孤僻,有暴力傾向,自私自利,對現(xiàn)實不滿”等先兆,但是并不是說有這些先兆的人就都會發(fā)展為罪犯,或者罪犯都有這些先兆。 因此“主動防御”并不能100%發(fā)現(xiàn)病毒,它的成功率大概在60%-80%之間。如果再加上傳統(tǒng)的“特征碼技術”,幾乎可以發(fā)現(xiàn)100%的惡意程序了。在國外,諾頓,Kaspersky,McAfee等等殺毒巨頭,都已經向“主動防御”+“特征碼技術”過渡了,這是殺毒軟件的必然發(fā)展趨勢。 防火墻是一個運用“主動防御”技術的典型例子,大家都用過防火墻了,對于防火墻經常詢問用戶是否放行一個進程訪問網絡,或者有不明連接進入本機而發(fā)出警告是否印象深刻呢?其實防火墻就是在全程監(jiān)視進程的網絡行為,一但發(fā)現(xiàn)違反規(guī)則的行為就發(fā)出警告,或者直接根據用戶設定拒絕進程訪問網絡。 當然,現(xiàn)在的防火墻一般都把系統(tǒng)網絡進程(比如services.exe,svchost.exe,lsass.exe等)記在“受信名單”里,這些進程是默認允許訪問網絡的,如果禁止的話,操作系統(tǒng)就不正常了,這也是現(xiàn)在很多病毒和木馬都喜歡遠程注入這些系統(tǒng)進程以突破防火墻而訪問網絡的原因。 下面重點說一下“主動防御”的實現(xiàn)技術。大家都寫過程序,知道在一個程序里如果要實現(xiàn)自己的功能就必須要通過接口調用操作系統(tǒng)提供的功能函數(shù),在DOS里幾乎所有的系統(tǒng)功能或第三方插件都是通過中斷提供的,在WINDOWS里一般是通過DLL里的API提供,也有少數(shù)通過INT 2E或SYSENTER提供。一個進程有怎么樣的行為,通過看它調用了什么樣的API就大概清楚了,比如它要讀寫文件就必然要調用CreateFile(),OpenFile(),NtOpenFile(),ZwOpenFile()等函數(shù),要訪問網絡就必然要使用Socket函數(shù)。 因此只要掛接系統(tǒng)API(盡量掛接RING0層的API,如果掛接RING3層的API將有可能被繞過),就可以知道一個進程將有什么動作,如果有危害系統(tǒng)的動作該怎么樣處理等等。例如瑞星殺毒,大家可以在它的安裝目錄里找到幾個驅動文件,其實這些驅動就是掛接了ntoskrnl.exe,ndis.sys等系統(tǒng)關鍵模塊里的API,從而對進程的普通行為,網絡行為,注冊表行為進行監(jiān)視的。 最后讓我們設想一下一個“主動防御”型殺毒軟件的一般流程:通過掛接系統(tǒng)建立進程的API,殺毒軟件就在一個進程建立前對進程的代碼進行掃描,如果發(fā)現(xiàn)SGDT,SIDT,自定位指令(一般正常軟件不會有這些指令),就提示,如果用戶放行,就讓進程繼續(xù)運行;接下來監(jiān)視進程調用API的情況,如果發(fā)現(xiàn)以讀寫方式打開一個EXE文件。 本文出自:億恩科技【www.allwellnessguide.com】 |