專利名稱:文件訪問過濾方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,特別涉及一種文件訪問過濾方法。
背景技術(shù):
隨著電腦和互聯(lián)網(wǎng)越來越成為人們生活中不可缺少的一部分,個(gè)人文件安全問題越來越受到重視。很多惡意程序或木馬在用戶不知道的情況下偷偷掃描用戶的文件,甚至把文件上傳到指定的服務(wù)器上。在Windows平臺(tái)下,操作系統(tǒng)分為兩部分用戶層(也叫做Ring3層)和內(nèi)核層 (也叫做RingO層)。Windows所提供的API接口都是從Ring3層調(diào)用RingO層內(nèi)核函數(shù)來實(shí)現(xiàn)功能的??梢赃@樣講,如果要達(dá)到保護(hù)電腦、保護(hù)文件,在RingO層采取措施是必不可少的。目前市場(chǎng)上開發(fā)的文件保護(hù)產(chǎn)品,采用的技術(shù)之一就是通過對(duì)Windows內(nèi)核函數(shù) ZwCreateFile函數(shù)進(jìn)行掛鉤(HOOK),達(dá)到控制文件操作、保護(hù)文件的目的。眾所周知,Windows下文件的訪問首先要調(diào)用ZwCreateFile拿到文件的句柄, 通過文件的句柄再進(jìn)一步操作文件的讀、寫、刪除等操作。如果在ZwCreateFile函數(shù)中加入攔截代碼,就可以得到所有操作文件的動(dòng)作,文件路徑、權(quán)限、進(jìn)程等參數(shù)。掛鉤的具體實(shí)現(xiàn)過程通過 windows 內(nèi)核的 SSDT (System Services Descriptor Table,系統(tǒng)服務(wù)描述表)表,搜索到ZwCreateFile函數(shù)地址。替換成自定義的MyCreateFile函數(shù)地址, 在MyCreateFile中調(diào)用原始系統(tǒng)ZwCreateFile函數(shù),這樣就達(dá)到掛鉤windows函數(shù)的完整流程。監(jiān)控的具體實(shí)現(xiàn)過程在自定義函數(shù)MyCreateFile函數(shù)中,首先得到用戶想要操作文件的文件路徑,和當(dāng)前進(jìn)程等參數(shù)。根據(jù)允許進(jìn)程和文件路徑,文件類型的白名單列表進(jìn)行對(duì)比,看看是否允許通過。如果符合條件存在于白名單中,將繼續(xù)調(diào)用系統(tǒng)函數(shù) ZwCreateFile函數(shù)。不符合條件或者沒有存在白名單中,將不調(diào)用ZwCreateFile函數(shù),直接返回失敗。這樣就到達(dá)監(jiān)控文件訪問的目的。以上實(shí)現(xiàn)方法的缺陷在于1、效率比較低由于文件和文件夾的訪問都要經(jīng)過 ZwCreateFile函數(shù),所以很多路徑的對(duì)比其實(shí)都是針對(duì)設(shè)備和文件夾路徑的對(duì)比。由于白名單比較長,要完全對(duì)比一遍效率自然會(huì)下降很多,而且這些對(duì)比會(huì)帶來多余的內(nèi)存和CPU 資源的消耗,增加了系統(tǒng)的不穩(wěn)定風(fēng)險(xiǎn)。2、沒有記錄那些文件曾經(jīng)被非法操作用戶的文件被非法操作,利用產(chǎn)品對(duì)其進(jìn)行了保護(hù),但是用戶并不知道那些文件被那個(gè)進(jìn)程非法操作過,這樣這個(gè)進(jìn)程還會(huì)有機(jī)會(huì)再次操作文件。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問題本發(fā)明要解決的技術(shù)問題是如何提供一種執(zhí)行效率高、方便用戶進(jìn)一步采取措施保護(hù)個(gè)人文件的文件訪問過濾方法。( 二)技術(shù)方案
為解決上述技術(shù)問題,本發(fā)明提供了一種文件訪問過濾方法,包括以下步驟Si、處理I/O請(qǐng)求包IRP請(qǐng)求類別和退出驅(qū)動(dòng)請(qǐng)求,并安裝相對(duì)應(yīng)的派遣函數(shù);S2、處理用戶層調(diào)用,并向內(nèi)核層發(fā)出調(diào)用命令;S3、在所述自定義函數(shù)中調(diào)用所述Windows內(nèi)核函數(shù)時(shí)通過參數(shù)拿到傳入的句柄 Handle,通過調(diào)用系統(tǒng)的內(nèi)核函數(shù)查詢?cè)揌andle對(duì)應(yīng)的路徑是否是文件夾路徑;如果是文件夾路徑,并且不包含磁盤盤符,則不進(jìn)行對(duì)比;如果是文件路徑,則在所述白名單中進(jìn)行比較,如果該文件路徑不在所要保護(hù)的文件路徑的白名單范圍之內(nèi)說明該文件路徑不在允許訪問的范圍之內(nèi),則將把這次非法訪問文件信息記錄到返回列表BackList中;S4、通過用戶層和內(nèi)核層之間創(chuàng)建的共享事件,通知用戶層的應(yīng)用程序取回 BackList中記錄的非法訪問文件信息,用戶層應(yīng)用程序把該非法訪問文件信息寫入到日志文件中。其中,步驟S2具體為當(dāng)用戶層發(fā)出開始命令時(shí),內(nèi)核層開始查找系統(tǒng)服務(wù)描述表SSDT中一種Windows內(nèi)核函數(shù)的地址,并將該地址轉(zhuǎn)換成一種自定義函數(shù)的地址,從而完成掛鉤動(dòng)作。其中,步驟Sl 中,所述 IRP 請(qǐng)求類別包括 IRP_MJ_CREATE、IRP_MJ_READ、IRP_MJ_ CLOSE 和 IRP_MJ_DEVICE_C0NTR0L。其中,所述Windows內(nèi)核函數(shù)為ZwCreateFile函數(shù)。(三)有益效果本發(fā)明通過在HOOK內(nèi)核函數(shù)ZwCreateFile使保護(hù)文件不被非法訪問的同時(shí),區(qū)分了文件路徑和文件夾路徑。提高了對(duì)文件夾路徑比較的速度,加快了比對(duì)效率。為進(jìn)一步對(duì)文件夾進(jìn)行擴(kuò)展操作打下了基礎(chǔ)。用戶通過查看日志(log)文件,可以看到被保護(hù)文件的境況,了解什么時(shí)間、哪些進(jìn)程、訪問了哪些文件等非法操作,為用戶下一步查殺木馬, 病毒等惡意程序提供了幫助。
圖1是本發(fā)明的方法流程圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)說明。以下實(shí)施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。如圖1所示,本發(fā)明的文件訪問過濾方法包括以下步驟Si、處理1/0請(qǐng)求包IRP請(qǐng)求類別和退出驅(qū)動(dòng)請(qǐng)求DriverUnload,并安裝相對(duì)應(yīng)的派遣函數(shù);S2、處理用戶層調(diào)用,并向內(nèi)核層發(fā)出調(diào)用命令,例如當(dāng)用戶層發(fā)出開始命令時(shí), 內(nèi)核層開始查找系統(tǒng)服務(wù)描述表SSDT中Windows內(nèi)核函數(shù)ZwCreateFile的地址,并將該地址轉(zhuǎn)換成自定義函數(shù)MyCreateFile的地址,從而完成掛鉤Η00Κ?jiǎng)幼?;S3、在所述自定義函數(shù)中調(diào)用所述Windows內(nèi)核函數(shù)時(shí)通過參數(shù)拿到傳入的句柄 Handle,通過調(diào)用系統(tǒng)的內(nèi)核函數(shù)查詢?cè)揌andle對(duì)應(yīng)的路徑是否是文件夾路徑;如果是文件夾路徑,并且不包含磁盤盤符,例如·λ:··\\,由于這種情況不在需要對(duì)比的名單范圍之內(nèi),直接返回不進(jìn)行對(duì)比;如果是文件路徑,則在所述白名單中進(jìn)行比較,如果該文件路徑不在所要保護(hù)的文件路徑的白名單范圍之內(nèi)說明該文件路徑不在允許訪問的范圍之內(nèi),則將把這次非法訪問文件信息記錄到返回列表BackList中;S4、通過用戶層和內(nèi)核層之間創(chuàng)建的共享事件Event,通知用戶層的應(yīng)用程序取回 BackList中記錄的非法訪問文件信息,用戶層應(yīng)用程序把該非法訪問文件信息寫入到日志文件中。其中,步驟Sl 中,所述 IRP 請(qǐng)求類別包括 IRP_MJ_CREATE、IRP_MJ_READ、IRP_MJ_ CLOSE 和 IRP_MJ_DEVICE_C0NTR0L。以上實(shí)施方式僅用于說明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。
權(quán)利要求
1.一種文件訪問過濾方法,其特征在于,包括以下步驟51、處理I/O請(qǐng)求包IRP請(qǐng)求類別和退出驅(qū)動(dòng)請(qǐng)求,并安裝相對(duì)應(yīng)的派遣函數(shù);52、處理用戶層調(diào)用,并向內(nèi)核層發(fā)出調(diào)用命令;53、在所述自定義函數(shù)中調(diào)用所述Windows內(nèi)核函數(shù)時(shí)通過參數(shù)拿到傳入的句柄 Handle,通過調(diào)用系統(tǒng)的內(nèi)核函數(shù)查詢?cè)揌andle對(duì)應(yīng)的路徑是否是文件夾路徑;如果是文件夾路徑,并且不包含磁盤盤符,則不進(jìn)行對(duì)比;如果是文件路徑,則在所述白名單中進(jìn)行比較,如果該文件路徑不在所要保護(hù)的文件路徑的白名單范圍之內(nèi)說明該文件路徑不在允許訪問的范圍之內(nèi),則將把這次非法訪問文件信息記錄到返回列表BackList中;54、通過用戶層和內(nèi)核層之間創(chuàng)建的共享事件,通知用戶層的應(yīng)用程序取回BackList 中記錄的非法訪問文件信息,用戶層應(yīng)用程序把該非法訪問文件信息寫入到日志文件中。
2.如權(quán)利要求1所述的文件訪問過濾方法,其特征在于,步驟S2具體為當(dāng)用戶層發(fā)出開始命令時(shí),內(nèi)核層開始查找系統(tǒng)服務(wù)描述表SSDT中一種Windows內(nèi)核函數(shù)的地址,并將該地址轉(zhuǎn)換成一種自定義函數(shù)的地址,從而完成掛鉤動(dòng)作。
3.如權(quán)利要求1所述的文件訪問過濾方法,其特征在于,步驟Sl中,所述IRP請(qǐng)求類別包括 IRP_MJ_CREATE、IRP_MJ_READ、IRP_MJ_CL0SE 和 IRP_MJ_DEVICE_C0NTR0L。
4.如權(quán)利要求2或3所述的文件訪問過濾方法,其特征在于,所述Windows內(nèi)核函數(shù)為 ZwCreateFile 函數(shù)。
全文摘要
本發(fā)明公開了一種文件訪問過濾方法,屬于網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,包括以下步驟S1、處理IRP請(qǐng)求類別和退出驅(qū)動(dòng)請(qǐng)求,并安裝相對(duì)應(yīng)的派遣函數(shù);S2、處理用戶層的調(diào)用,并向內(nèi)核層發(fā)出調(diào)用命令;S3、在所述自定義函數(shù)中調(diào)用所述Windows內(nèi)核函數(shù)時(shí)通過參數(shù)拿到傳入的句柄Handle,通過調(diào)用系統(tǒng)的內(nèi)核函數(shù)查詢?cè)揌andle對(duì)應(yīng)的路徑是否是文件夾路徑;如果是文件夾路徑,并且不包含磁盤盤符,則不進(jìn)行對(duì)比;如果是文件路徑,則在所述白名單中進(jìn)行比較;S4、通過用戶層和內(nèi)核層之間創(chuàng)建的共享事件,通知用戶層的應(yīng)用程序取回BackList中記錄的非法訪問文件信息,用戶層應(yīng)用程序把該非法訪問文件信息寫入到日志文件中。本發(fā)明能夠方便用戶進(jìn)一步采取措施保護(hù)個(gè)人文件。
文檔編號(hào)G06F9/46GK102194079SQ20111006668
公開日2011年9月21日 申請(qǐng)日期2011年3月18日 優(yōu)先權(quán)日2011年3月18日
發(fā)明者萬雪松, 于曉軍, 趙辰清 申請(qǐng)人:北京思創(chuàng)銀聯(lián)科技股份有限公司