[發明專利]一種Windows操作系統下鉤子的檢測方法無效
| 申請號: | 200910088252.3 | 申請日: | 2009-07-14 |
| 公開(公告)號: | CN101620659A | 公開(公告)日: | 2010-01-06 |
| 發明(設計)人: | 陳向群;白光冬;趙霞;郭耀 | 申請(專利權)人: | 北京大學 |
| 主分類號: | G06F21/22 | 分類號: | G06F21/22 |
| 代理公司: | 北京君尚知識產權代理事務所(普通合伙) | 代理人: | 馮藝東 |
| 地址: | 100871北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 windows 操作系統 鉤子 檢測 方法 | ||
技術領域
本發明涉及惡意軟件,具體涉及一種Windows操作系統下鉤子的檢測方法,屬于信息安全技術領域。
背景技術
Windows操作系統是目前使用最為廣泛的計算機操作系統,根據調查,世界上有超過90%的個人計算機以及大約66%的服務器使用的是Windows操作系統,由于Windows的廣泛使用,使得它成為了遭受黑客和病毒攻擊最嚴重的操作系統,也使得它的安全問題成為用戶及計算機安全研究人員關注的焦點。最新的Windows操作系統為Windows?Vista,該操作系統由微軟公司于2006年11月發布,在之后的一年多時間里,微軟公司致力于Vista系統的推廣,Vista系統的使用人數正在并將持續增長。但是,盡管微軟公司對包括Vista在內的眾多操作系統的安全進行改進,但這些操作系統仍然存在著較大的安全隱患。目前我國計算機用戶基本上使用的是Windows操作系統,以XP系統最為普遍,Vista系統在我國的使用量也將會大幅度增加,所以更應對其安全問題足夠重視。
目前對計算機上的病毒、木馬等惡意軟件的檢測方法大致分為三種:基于惡意軟件特征的檢測、基于惡意軟件行為的檢測以及基于惡意軟件實現技術的檢測。前兩種方法是目前殺毒軟件廣泛采取的方法,但是由于計算機惡意軟件的種類繁多,行為各異,這兩種方法難以檢測出所有的惡意軟件;而且這兩種方法都只能對已經出現并掌握其特征的惡意軟件進行檢測,難以在未知惡意軟件進入系統的初期進行檢測。所以針對惡意軟件實現技術的檢測逐漸發展起來。
惡意軟件最常見的實現技術是鉤子技術,通過使用鉤子技術,惡意軟件可以改變操作系統正常的執行路徑,從而破壞系統或者竊取用戶信息。在不久前出現的惡意軟件rootkit(一種惡意軟件使用的具有“隱形”能力的工具包、庫或者程序代碼,用來隱藏或偽裝惡意軟件使用的文件、目錄和進程)中,更是大量地使用了鉤子技術,達到隱藏惡意軟件和攻擊者蹤跡的效果。
根據運行環境的不同,鉤子可以分為用戶級鉤子和內核級鉤子,在Windows操作系統中,主要包含以下種類的鉤子。
1.用戶級鉤子
在Windows系統中,大多數進程都依賴于三個子系統:Win32、POSIX和OS/2子系統,這些子系統由一些文件組成,它們以地址表的形式提供了一組應用程序編程接口(API),用戶進程可以通過地址表中的函數入口地址調用API請求操作系統的服務,所以這些地址表所在的文件是惡意軟件攻擊的極佳目標。根據地址表的不同,惡意軟件使用的鉤子可以分為導入地址表鉤子、導出地址表鉤子、內聯函數鉤子、系統可執行文件及DLL鉤子等,惡意軟件一般在用戶態下替換或修改包含這些地址表的文件來設置這些鉤子。
2.內核級鉤子
當用戶進程調用API進入Windows內核后,通過系統服務描述符表(System?ServiceDescriptor?Table,SSDT),中斷描述符表(Interrupt?Descriptor?Table,IDT)等跳轉表進一步調用不同的內核系統服務函數,所以惡意程序通過修改內核中的這些跳轉表來設置不同種類的內核鉤子。在Windows內核中,惡意軟件使用的鉤子主要有:
●IDT鉤子
IDT中包含了異常和中斷處理函數的入口地址,惡意軟件修改IDT,把系統的處理程序替換為其提供的非法程序。
●SSDT鉤子
SSDT記錄著所有內核系統服務函數的入口地址,惡意軟件通過修改SSDT表項而改變內核系統服務函數的處理過程。
●IRP函數表鉤子
IRP函數是驅動程序用來處理用戶各種請求的,例如讀、寫、查詢等。IRP函數表里記錄這IRP函數的入口地址,攻擊者也可以替換IRP函數表的一些表項達到惡意目的。
目前針對用戶級和內核級鉤子的檢測方法,使用執行指令數分析的技術,這種方法認為如果在跳轉表上設置了鉤子,那么在執行某些常規的系統函數和庫函數時,將會執行額外的指令。于是這種方法通過比較待檢測系統和正常系統在運行某個系統調用的指令數差別來分析是否被設置了鉤子。這種基于統計的方法,存在一定的誤差,并且即使正常系統多次執行某個系統調用的指令數也會有差別,造成了這種方法的誤差較大。目前也存在對內核鉤子的檢測方法,但是基本上只針對某一種跳轉表進行檢測,由于鉤子種類繁多,這種方法難以將所有鉤子的檢測覆蓋全面。單就Windows?Vista而言,由于其操作系統發行時間較短,目前尤其缺乏對其進行鉤子檢測的技術和工具。
發明內容
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京大學,未經北京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910088252.3/2.html,轉載請聲明來源鉆瓜專利網。





