主動防御型殺毒軟件技術的深入探討
以下的文章主要是闡述主動防御型殺毒軟件的技術探討,間諜程序、游戲木馬、以及黑客程序等網絡病毒的不斷爆發,從而使國內外反病毒領域意識到,單純依靠“特征碼技術”已經不能適應反病毒需求。
間諜程序、游戲木馬、黑客程序等網絡病毒的頻頻爆發,使國內外反病毒領域開始意識到,單純依靠“特征碼技術”已經不能適應反病毒需求。
那么什么是“主動防御”,它的實現技術又是怎樣的呢?本人在這里簡單獻丑一下,說得不對的地方歡迎扔鞋砸雞蛋!
所謂“主動防御”,就是全程監視進程的行為,一但發現“違規”行為,就通知用戶,或者直接終止進程。它類似于警察判斷潛在罪犯的技術,在成為一個罪犯之前,大多數的人都有一些異常行為,比如“性格孤僻,有暴力傾向,自私自利,對現實不滿”等先兆,但是并不是說有這些先兆的人就都會發展為罪犯,或者罪犯都有這些先兆。
因此“主動防御”并不能100%發現病毒,它的成功率大概在60%-80%之間。如果再加上傳統的“特征碼技術”,幾乎可以發現100%的惡意程序了。在國外,諾頓,Kaspersky,McAfee等等殺毒巨頭,都已經向“主動防御”+“特征碼技術”過渡了,這是殺毒軟件的必然發展趨勢。
防火墻是一個運用“主動防御”技術的典型例子,大家都用過防火墻了,對于防火墻經常詢問用戶是否放行一個進程訪問網絡,或者有不明連接進入本機而發出警告是否印象深刻呢?其實防火墻就是在全程監視進程的網絡行為,一但發現違反規則的行為就發出警告,或者直接根據用戶設定拒絕進程訪問網絡。
當然,現在的防火墻一般都把系統網絡進程(比如services.exe,svchost.exe,lsass.exe等)記在“受信名單”里,這些進程是默認允許訪問網絡的,如果禁止的話,操作系統就不正常了,這也是現在很多病毒和木馬都喜歡遠程注入這些系統進程以突破防火墻而訪問網絡的原因。
下面重點說一下“主動防御”的實現技術。大家都寫過程序,知道在一個程序里如果要實現自己的功能就必須要通過接口調用操作系統提供的功能函數,在DOS里幾乎所有的系統功能或第三方插件都是通過中斷提供的,在WINDOWS里一般是通過DLL里的API提供,也有少數通過INT
2E或SYSENTER提供。一個進程有怎么樣的行為,通過看它調用了什么樣的API就大概清楚了,比如它要讀寫文件就必然要調用CreateFile(),OpenFile(),NtOpenFile(),ZwOpenFile()等函數,要訪問網絡就必然要使用Socket函數。
因此只要掛接系統API(盡量掛接RING0層的API,如果掛接RING3層的API將有可能被繞過),就可以知道一個進程將有什么動作,如果有危害系統的動作該怎么樣處理等等。例如瑞星殺毒,大家可以在它的安裝目錄里找到幾個驅動文件,其實這些驅動就是掛接了ntoskrnl.exe,ndis.sys等系統關鍵模塊里的API,從而對進程的普通行為,網絡行為,注冊表行為進行監視的。
最后讓我們設想一下一個“主動防御”型殺毒軟件的一般流程:通過掛接系統建立進程的API,殺毒軟件就在一個進程建立前對進程的代碼進行掃描,如果發現SGDT,SIDT,自定位指令(一般正常軟件不會有這些指令),就提示,如果用戶放行,就讓進程繼續運行;接下來監視進程調用API的情況,如果發現以讀寫方式打開一個EXE文件。
可能進程的線程想感染PE文件,就發出警告;如果收發數據違反了規則,發出提示;如果進程調用了CreateRemoteThread(),則發出警告(因為CreateRemoteThread()是一個非常危險的API,正常進程很少用到,倒是被病毒木馬用得最多)。...。可以想象,未來我們運行程序可能要被提示多次,訪問網絡也被提示多次,各種各樣的提示將大多數人搞的昏頭轉向。想安全就要管嚴,放松就不安全了!
原文出自【比特網】,轉載請保留原文鏈接:http://sec.chinabyte.com/300/11106800.shtml
【編輯推薦】
- 部署企業版殺毒軟件的關鍵點和解決方案
- 殺毒軟件比拼“終身免費” 餡餅還是陷阱?
- 360殺毒軟件攪局殺毒廠商四大門派
- 如果不裝殺毒軟件 80%病毒可入侵Windows 7
- 瑞星殺毒軟件不安全文件權限漏洞