專利名稱:基于雙驅(qū)動(dòng)聯(lián)動(dòng)的文件安全主動(dòng)防護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信與信息安全領(lǐng)域,特別是一種基于雙驅(qū)動(dòng)聯(lián)動(dòng)的文件安全主動(dòng)防護(hù)方法。
背景技術(shù):
隨著網(wǎng)絡(luò)的快速發(fā)展,移動(dòng)存儲(chǔ)設(shè)備的不斷豐富,以及應(yīng)用軟件使用方便性的進(jìn)一步增強(qiáng),文件安全防護(hù)所面臨的問題與挑戰(zhàn)也愈發(fā)突出。僅靠人工管理或監(jiān)管軟件早已不能滿足現(xiàn)有的安全需求,因?yàn)楫?dāng)監(jiān)管軟件檢測(cè)到惡意文件操作行為發(fā)生時(shí),文件已經(jīng)被破壞或竊取,這種被動(dòng)的亡羊補(bǔ)牢式的傳統(tǒng)監(jiān)控技術(shù)有其明顯的弱點(diǎn)與弊端。因此,需要有一套基于主動(dòng)防御的監(jiān)控技術(shù)來從根本上解決文件安全防護(hù)的問題。對(duì)于文件安全防護(hù)技術(shù)國(guó)內(nèi)外均進(jìn)行了很多的研究,但重點(diǎn)多在于對(duì)安全接入與控制技術(shù)方面,而對(duì)于合法用戶對(duì)文件的主動(dòng)破壞與竊取,防護(hù)的方法和手段不多。對(duì)于現(xiàn)有的文件安全防護(hù)技術(shù),具體分析如下
1.文件訪問控制技術(shù)
目前對(duì)于文件的訪問控制技術(shù)主要分為兩類應(yīng)用層技術(shù)和內(nèi)核層技術(shù)。基于應(yīng)用層技術(shù)的文件訪問控制比較容易實(shí)現(xiàn),但存在效率低、易被繞過等缺點(diǎn);而基于內(nèi)核層技術(shù)的文件訪問控制實(shí)施難度比較大,不過有運(yùn)行效率高、不易被繞過等優(yōu)點(diǎn)。內(nèi)核層的監(jiān)控主要有兩種方法:Native API (Application Programming hterface,應(yīng)用程序編程接口)攔截技術(shù)和文件過濾驅(qū)動(dòng)技術(shù)。Native API攔截技術(shù)能夠攔截、分析、跟蹤本機(jī)系統(tǒng)內(nèi)核對(duì)文件的操作信息。但Windows系統(tǒng)針對(duì)文件讀寫等操作的Native API較多,漏掉任何一個(gè)Native API都可能造成疏漏,而且該方法無法攔截網(wǎng)絡(luò)對(duì)終端主機(jī)文件系統(tǒng)的Ι/Oanput/OutPut,輸入輸出)操作。Windows系統(tǒng)對(duì)Native API的1/0調(diào)用最終都是向底層文件系統(tǒng)發(fā)送IRP (1/0 Request Packet, 1/0請(qǐng)求包)來完成的,文件過濾驅(qū)動(dòng)被加載到文件系統(tǒng)驅(qū)動(dòng)后,可以直接攔截發(fā)送給文件系統(tǒng)的IRP,并且此方法可以攔截到由網(wǎng)絡(luò)上傳送到終端主機(jī)的IRP。2.文件加密技術(shù)
文件系統(tǒng)支持的加密在Windows文件系統(tǒng)中,NTFS (New Technology File System,一種Windows下的標(biāo)準(zhǔn)文件系統(tǒng))支持文件加密功能,但是它只能保護(hù)某個(gè)目錄下的文件,它雖然能保證只有文件的所有者才能訪問這些文件,但是當(dāng)合法用戶把這些文件移動(dòng)到其它目錄時(shí),就會(huì)自動(dòng)解密,易被惡意竊取。文件加密軟件當(dāng)前有許多文件加密軟件,它們能對(duì)任何類型、任何大小的文件進(jìn)行加密,但是當(dāng)訪問這些文件時(shí),需要先把文件先解密成明文,訪問完畢后,再加密成密文存儲(chǔ),效率不高。3.基于虛擬磁盤的監(jiān)控技術(shù)
當(dāng)前許多文件安全防護(hù)基于虛擬磁盤技術(shù)。這類技術(shù)與EFS(Encrypting File System,加密文件系統(tǒng))相類似,它創(chuàng)建一個(gè)文件作為一個(gè)虛擬磁盤,當(dāng)數(shù)據(jù)存入虛擬磁盤
4時(shí),對(duì)文件進(jìn)行加密,當(dāng)數(shù)據(jù)讀出時(shí),對(duì)文件進(jìn)行解密,這起到了一定的保護(hù)作用,但卻不能防止用戶對(duì)文件惡意破壞和竊取。以上文件安全防護(hù)機(jī)制存在以下幾個(gè)問題
(1)不能對(duì)合法用戶的惡意破壞和竊取行為進(jìn)行主動(dòng)防御;
(2)操作系統(tǒng)級(jí)的文件保護(hù)策略不夠,文件操作監(jiān)控不夠徹底,易被內(nèi)核級(jí)實(shí)現(xiàn)的防病毒軟件和行為監(jiān)控軟件過濾;
(3)安全防護(hù)時(shí)機(jī)選取不佳。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種基于內(nèi)核態(tài)文件系統(tǒng)驅(qū)動(dòng)和網(wǎng)絡(luò)驅(qū)動(dòng)聯(lián)動(dòng)的文件安全防護(hù)技術(shù),該技術(shù)可以防止受保護(hù)文件被惡意破壞和竊取。為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案基于雙驅(qū)動(dòng)聯(lián)動(dòng)的文件安全主動(dòng)防護(hù)方法,其特征在于
具體步驟如下
a)利用INF文件安裝驅(qū)動(dòng)至目標(biāo)操作系統(tǒng),驅(qū)動(dòng)以服務(wù)存在,并設(shè)置成隨操作系統(tǒng)啟
動(dòng);
b)通過操作系統(tǒng)的服務(wù)管理項(xiàng)加載該驅(qū)動(dòng);
c)將預(yù)置的文件安全防護(hù)規(guī)則讀取至規(guī)則鏈;
d)將IRP處理例程函數(shù)入口賦給DriverObject即“驅(qū)動(dòng)程序?qū)ο蟆钡膶?duì)應(yīng)派遣例程數(shù)
組;
e)填充!^astI/O處理例程,F(xiàn)ast I/O是緩存管理器調(diào)用所引發(fā)的一種沒有IRP的請(qǐng)求;文件過濾驅(qū)動(dòng)除了正常派遣例程之外,還為DriverObject即驅(qū)動(dòng)程序?qū)ο笞珜懥硪唤M Fast I/O函數(shù),對(duì)緩存進(jìn)行監(jiān)控;
f)創(chuàng)建系統(tǒng)線程,獲取TCP/IP設(shè)備對(duì)象后,啟動(dòng)網(wǎng)絡(luò)驅(qū)動(dòng),包括TDI層和NDIS層兩層的網(wǎng)絡(luò)驅(qū)動(dòng),對(duì)通過網(wǎng)絡(luò)進(jìn)程操作文件的行為進(jìn)行監(jiān)控;
g)TDI即“Transport Driver Interface傳輸驅(qū)動(dòng)程序接口 ”層網(wǎng)絡(luò)驅(qū)動(dòng)能夠做到對(duì)系統(tǒng)中的網(wǎng)絡(luò)進(jìn)程的自發(fā)現(xiàn),對(duì)聯(lián)網(wǎng)狀態(tài)的動(dòng)態(tài)監(jiān)控,以及對(duì)病毒木馬破壞和竊取受保護(hù)文件的行為進(jìn)行主動(dòng)分析和捕獲;
ti)NDIS 即"Network Driver Interface Specification 網(wǎng)絡(luò)驅(qū)動(dòng)程序接口說明,,層網(wǎng)絡(luò)驅(qū)動(dòng)采用內(nèi)核級(jí)內(nèi)聯(lián)Hook技術(shù)對(duì)NDIS. SYS關(guān)鍵導(dǎo)出API進(jìn)行掛接,內(nèi)聯(lián)Hook掛接過程為找到系統(tǒng)原導(dǎo)出函數(shù)首地址,修改其前五個(gè)字節(jié)為JMP指令,用于跳轉(zhuǎn)到自己的掛鉤函數(shù),當(dāng)執(zhí)行完自己的掛鉤函數(shù)后跳轉(zhuǎn)回系統(tǒng)原導(dǎo)出函數(shù)正常執(zhí)行;對(duì)發(fā)送的NDIS數(shù)據(jù)包進(jìn)行協(xié)議解析,防止用戶通過局域網(wǎng)文件共享方式對(duì)受保護(hù)文件進(jìn)行破壞和竊取,具體的流程為首先驅(qū)動(dòng)程序調(diào)用XF_SendPaCket函數(shù)發(fā)送數(shù)據(jù)包,然后調(diào)用CheckPacket函數(shù)對(duì) NDIS_PACKET封包進(jìn)行解析,若是共享數(shù)據(jù),則交由安全共享處理模塊進(jìn)行處理,否則以默認(rèn)方式進(jìn)行處理;
i)文件過濾驅(qū)動(dòng)根據(jù)規(guī)則鏈,對(duì)接收到的IRP流進(jìn)行過濾,對(duì)用戶操作受保護(hù)文件的行為進(jìn)行IRP級(jí)的監(jiān)控,依據(jù)被操作文件的安全屬性,對(duì)IRP包序列進(jìn)行行為特征分析,全壽命防護(hù);步驟g、h和i是實(shí)時(shí)動(dòng)態(tài)的,并無時(shí)間和邏輯上的先后順序;
步驟g和h中TDI層和NDIS層兩層的網(wǎng)絡(luò)驅(qū)動(dòng)組織結(jié)構(gòu)為網(wǎng)絡(luò)行為首先由TDI層和 NDIS層驅(qū)進(jìn)行處理,然后再交由網(wǎng)絡(luò)文件行為實(shí)時(shí)捕獲模塊處理;
步驟g、h和i中首先需要提取被操作文件的安全屬性,依據(jù)文件安全屬性對(duì)文件的操作進(jìn)行主動(dòng)安全防御,防止用戶對(duì)被保護(hù)文件的惡意破壞和竊取。所述的步驟e中!^ast I/O函數(shù)完成以下兩件事情之一第一,當(dāng)操作完成時(shí)設(shè)置 IoStatus的返回值并給I/O管理器返回TRUE,這時(shí)I/O管理器會(huì)完成對(duì)應(yīng)的I/O操作;第二,直接返回FALSE給I/O管理器,使其構(gòu)造一個(gè)IRP從而調(diào)用標(biāo)準(zhǔn)的分派例程。所述的步驟c中的安全防護(hù)規(guī)則是指由管理員提前配置好的受保護(hù)文件的安全策略;為保證文件安全防護(hù)的友好性,以及整個(gè)系統(tǒng)的安全性,允許管理員同時(shí)定制多套控制策略來打造自己的安全平臺(tái)。所述的步驟h中上層網(wǎng)絡(luò)數(shù)據(jù)從協(xié)議棧中發(fā)下來到NDIS網(wǎng)絡(luò)驅(qū)動(dòng)層,在NDIS層對(duì)發(fā)送的數(shù)據(jù)封包進(jìn)行判斷,本步驟只判斷數(shù)據(jù)封包是否為文件共享數(shù)據(jù)包。將文件的安全屬性同文件數(shù)據(jù)本身分開,單獨(dú)存儲(chǔ),在內(nèi)核態(tài)創(chuàng)建一個(gè)數(shù)據(jù)庫,即為一個(gè)內(nèi)核文件,文件中的每條記錄代表一個(gè)受保護(hù)文件的安全屬性;在內(nèi)核層對(duì)這個(gè)內(nèi)核數(shù)據(jù)庫文件進(jìn)行操作,編程實(shí)現(xiàn)對(duì)內(nèi)核態(tài)數(shù)據(jù)庫文件的操作函數(shù);為方便在文件過濾驅(qū)動(dòng)中對(duì)數(shù)據(jù)庫的操作,在內(nèi)核態(tài)建立了一個(gè)靜態(tài)鏈接庫;文件系統(tǒng)驅(qū)動(dòng)是針對(duì)每個(gè)卷來生成一個(gè)設(shè)備對(duì)象,而不是針對(duì)每個(gè)文件的,對(duì)文件讀寫的IRP,都發(fā)往卷設(shè)備對(duì)象上;在每個(gè)卷上維護(hù)一個(gè)內(nèi)核數(shù)據(jù)庫文件,用來處理這個(gè)卷設(shè)備中的受保護(hù)文件的安全屬性;此外, 對(duì)受保護(hù)文件安全屬性拒絕一切對(duì)內(nèi)核態(tài)的數(shù)據(jù)庫文件的操作。所述的步驟a中,隨操作系統(tǒng)啟動(dòng)是指定MartType值設(shè)為O ;驅(qū)動(dòng)的安裝過程為首先將驅(qū)動(dòng)文件復(fù)制到Wirmt\system32\drivers目錄下,然后添加注冊(cè)表項(xiàng),配置驅(qū)動(dòng)程序,最后重啟操作系統(tǒng)。本發(fā)明基于內(nèi)核態(tài)文件系統(tǒng)驅(qū)動(dòng)和網(wǎng)絡(luò)驅(qū)動(dòng)聯(lián)動(dòng)的文件安全防護(hù)技術(shù)徹底解決了已有文件安全防護(hù)技術(shù)的缺陷,轉(zhuǎn)變了以往文件安全防護(hù)技術(shù)的思想,由被動(dòng)彌補(bǔ)變?yōu)橹鲃?dòng)防御,對(duì)需要保護(hù)的文件進(jìn)行全壽命動(dòng)態(tài)監(jiān)控,有效解決了惡意文件操作和網(wǎng)絡(luò)攻擊活動(dòng)以及病毒木馬對(duì)文件的破壞和竊取。
圖1為驅(qū)動(dòng)的安裝過程; 圖2為內(nèi)聯(lián)Hook原理圖3為NDIS發(fā)送數(shù)據(jù)包流程圖; 圖4為文件過濾驅(qū)動(dòng)IRP監(jiān)控結(jié)構(gòu)圖; 圖5為網(wǎng)絡(luò)行為監(jiān)控組織結(jié)構(gòu)圖; 圖6為局域網(wǎng)文件共享控制模塊構(gòu)架圖。
具體實(shí)施例方式實(shí)施例如圖1 一 6所示,基于雙驅(qū)動(dòng)聯(lián)動(dòng)的文件安全主動(dòng)防護(hù)方法具體步驟如下a)利用INF文件安裝驅(qū)動(dòng)至目標(biāo)操作系統(tǒng),驅(qū)動(dòng)以服務(wù)存在,并設(shè)置成隨操作系統(tǒng)啟
動(dòng);
b)通過操作系統(tǒng)的服務(wù)管理項(xiàng)加載該驅(qū)動(dòng);
c)將預(yù)置的文件安全防護(hù)規(guī)則讀取至規(guī)則鏈;
d)將IRP處理例程函數(shù)入口賦給DriverObject(驅(qū)動(dòng)程序?qū)ο?的對(duì)應(yīng)派遣例程數(shù)
組;
e)填充!^astI/O處理例程,F(xiàn)ast I/O是緩存管理器調(diào)用所引發(fā)的一種沒有IRP的請(qǐng)求;文件過濾驅(qū)動(dòng)除了正常派遣例程之外,還為DriverObject (驅(qū)動(dòng)程序?qū)ο?撰寫另一組 Fast I/O函數(shù),對(duì)緩存進(jìn)行監(jiān)控;
f)創(chuàng)建系統(tǒng)線程,獲取TCP/IP設(shè)備對(duì)象后,啟動(dòng)網(wǎng)絡(luò)驅(qū)動(dòng),包括TDI層和NDIS層兩層的網(wǎng)絡(luò)驅(qū)動(dòng),對(duì)通過網(wǎng)絡(luò)進(jìn)程操作文件的行為進(jìn)行監(jiān)控;
g)TDI(Transport Driver Interface傳輸驅(qū)動(dòng)程序接口)層網(wǎng)絡(luò)驅(qū)動(dòng)能夠做到對(duì)系統(tǒng)中的網(wǎng)絡(luò)進(jìn)程的自發(fā)現(xiàn),對(duì)聯(lián)網(wǎng)狀態(tài)的動(dòng)態(tài)監(jiān)控,以及對(duì)病毒木馬破壞和竊取受保護(hù)文件的行為進(jìn)行主動(dòng)分析和捕獲;
h)NDIS(Network Driver Interface Specification 網(wǎng)絡(luò)驅(qū)動(dòng)程序接口說明)層網(wǎng)絡(luò)驅(qū)動(dòng)采用內(nèi)核級(jí)內(nèi)聯(lián)Hook技術(shù)對(duì)NDIS. SYS關(guān)鍵導(dǎo)出API進(jìn)行掛接,內(nèi)聯(lián)Hook掛接過程為找到系統(tǒng)原導(dǎo)出函數(shù)首地址,修改其前五個(gè)字節(jié)為JMP指令,用于跳轉(zhuǎn)到自己的掛鉤函數(shù),當(dāng)執(zhí)行完自己的掛鉤函數(shù)后跳轉(zhuǎn)回系統(tǒng)原導(dǎo)出函數(shù)正常執(zhí)行;對(duì)發(fā)送的NDIS數(shù)據(jù)包進(jìn)行協(xié)議解析,防止用戶通過局域網(wǎng)文件共享方式對(duì)受保護(hù)文件進(jìn)行破壞和竊取,具體的流程為首先驅(qū)動(dòng)程序調(diào)用XF_SendPaCket函數(shù)發(fā)送數(shù)據(jù)包,然后調(diào)用CheckPacket函數(shù)對(duì) NDIS_PACKET封包進(jìn)行解析,若是共享數(shù)據(jù),則交由安全共享處理模塊進(jìn)行處理,否則以默認(rèn)方式進(jìn)行處理;
i)文件過濾驅(qū)動(dòng)根據(jù)規(guī)則鏈,對(duì)接收到的IRP流進(jìn)行過濾,對(duì)用戶操作受保護(hù)文件的行為進(jìn)行IRP級(jí)的監(jiān)控,依據(jù)被操作文件的安全屬性,對(duì)IRP包序列進(jìn)行行為特征分析,全壽命防護(hù);
步驟g、h和i是實(shí)時(shí)動(dòng)態(tài)的,并無時(shí)間和邏輯上的先后順序。步驟c中的安全防護(hù)規(guī)則是指由管理員提前配置好的受保護(hù)文件的安全策略。為保證文件安全防護(hù)的友好性,以及整個(gè)系統(tǒng)的安全性,允許管理員同時(shí)定制多套控制策略來打造自己的安全平臺(tái)。步驟I/O函數(shù)完成以下兩件事情之一第一,當(dāng)操作完成時(shí)設(shè)置 IoStatus的返回值并給I/O管理器返回TRUE,這時(shí)I/O管理器會(huì)完成對(duì)應(yīng)的I/O操作;第二,直接返回FALSE給I/O管理器,使其構(gòu)造一個(gè)IRP從而調(diào)用標(biāo)準(zhǔn)的分派例程。步驟h中數(shù)據(jù)從協(xié)議棧中發(fā)下來到NDIS網(wǎng)絡(luò)驅(qū)動(dòng)層,在該層對(duì)發(fā)送的數(shù)據(jù)封包進(jìn)行判斷,本步驟只關(guān)心數(shù)據(jù)包是否為文件共享數(shù)據(jù)包。步驟g和h中兩層的網(wǎng)絡(luò)驅(qū)動(dòng)組織結(jié)構(gòu)圖如圖5所示網(wǎng)絡(luò)行為首先由TDI和 NDIS層驅(qū)進(jìn)行處理,然后再交由網(wǎng)絡(luò)文件行為實(shí)時(shí)捕獲模塊處理。步驟g、h和i中首先需要提取被操作文件的安全屬性,依據(jù)文件安全屬性對(duì)文件的操作進(jìn)行主動(dòng)安全防御,防止用戶對(duì)被保護(hù)文件的惡意破壞和竊取。下面針對(duì)雙驅(qū)動(dòng)聯(lián)動(dòng)的文件安全防護(hù)技術(shù)的幾個(gè)要點(diǎn)進(jìn)行詳細(xì)闡述1.文件過濾驅(qū)動(dòng)對(duì)安全屬性的處理
本發(fā)明將文件的安全屬性同文件數(shù)據(jù)本身分開,單獨(dú)存儲(chǔ)。在內(nèi)核態(tài)創(chuàng)建一個(gè)數(shù)據(jù)庫, 實(shí)際上是一個(gè)內(nèi)核文件,文件中的每條記錄代表一個(gè)受保護(hù)文件的安全屬性。在驅(qū)動(dòng)層對(duì)這個(gè)內(nèi)核數(shù)據(jù)庫文件進(jìn)行操作,編程實(shí)現(xiàn)對(duì)內(nèi)核態(tài)數(shù)據(jù)庫文件的操作函數(shù)。為方便在文件過濾驅(qū)動(dòng)中對(duì)數(shù)據(jù)庫的操作,在內(nèi)核態(tài)建立了一個(gè)靜態(tài)鏈接庫,同時(shí),為使系統(tǒng)的架構(gòu)簡(jiǎn)單且易于管理,本方案并不是針對(duì)整個(gè)文件系統(tǒng)維護(hù)一個(gè)數(shù)據(jù)庫來對(duì)所有受保護(hù)文件的安全屬性進(jìn)行記錄。結(jié)合文件系統(tǒng)驅(qū)動(dòng)的特征文件系統(tǒng)驅(qū)動(dòng)是針對(duì)每個(gè)卷來生成一個(gè)設(shè)備對(duì)象,而不是針對(duì)每個(gè)文件的,實(shí)際上對(duì)文件讀寫的IRP,都發(fā)往卷設(shè)備對(duì)象上了。本方案在每個(gè)卷上維護(hù)一個(gè)內(nèi)核數(shù)據(jù)庫文件,用來處理這個(gè)卷設(shè)備中的受保護(hù)文件的安全屬性。此夕卜,對(duì)受保護(hù)文件安全屬性的查找采用B+樹保證效率,并且拒絕一切對(duì)內(nèi)核態(tài)的數(shù)據(jù)庫文件的操作。2.文件深層訪問控制技術(shù)
采用用戶級(jí)或系統(tǒng)級(jí)HOOK文件操作的技術(shù)來實(shí)施文件動(dòng)態(tài)訪問控制,不僅解決機(jī)制不夠徹底,易被內(nèi)核級(jí)實(shí)現(xiàn)的防病毒軟件和行為監(jiān)控軟件過濾,而且效率偏低,適應(yīng)性和穩(wěn)定性存在一定問題。為了實(shí)現(xiàn)訪問控制的徹底性,效率性和透明性,本發(fā)明采用文件過濾驅(qū)動(dòng)級(jí)的動(dòng)態(tài)訪問控制技術(shù),在文件操作請(qǐng)求的IRP請(qǐng)求包到達(dá)文件系統(tǒng)驅(qū)動(dòng)之前,提前截獲到有關(guān)文件操作的IRP,進(jìn)行動(dòng)態(tài)監(jiān)控,達(dá)到對(duì)關(guān)鍵文件的訪問控制功能。在文件過濾驅(qū)動(dòng)中,如果用ZwReadFile等Native API操作文件會(huì)存在一些問題, Zw系列的Native API使用句柄,而句柄是有線程環(huán)境限制和中斷級(jí)別限制的。另外,Zw系列函數(shù)來讀寫文件,最終還是要發(fā)出IRP,這些IRP又會(huì)被自己的過濾驅(qū)動(dòng)捕獲到,從而帶來判斷上的困難,對(duì)資源也是一種浪費(fèi),故本方案直接對(duì)卷設(shè)備發(fā)IRP。3.基于TDI的木馬、病毒主動(dòng)防御技術(shù)
Windows支持三種基本內(nèi)核模式網(wǎng)絡(luò)驅(qū)動(dòng)程序,包括微端口 NIC(Network Interface Card)驅(qū)動(dòng)程序、中間層驅(qū)動(dòng)程序和協(xié)議驅(qū)動(dòng)程序。本系統(tǒng)通過TDI掛接技術(shù),實(shí)現(xiàn)網(wǎng)絡(luò)進(jìn)程的自發(fā)現(xiàn)。通過調(diào)試技術(shù),發(fā)現(xiàn)內(nèi)核驅(qū)動(dòng)的tcpip. sys創(chuàng)建\Device\RawIp、\Device\Ip、 \Device\Udp和\Device\Tcp四個(gè)對(duì)象,分別管理RawIP、IP、UDP和TCP協(xié)議,并接收應(yīng)用程序發(fā)向這四個(gè)設(shè)備對(duì)象的IRP,所以使用網(wǎng)絡(luò)過濾驅(qū)動(dòng)掛接上述函數(shù)接口,就可實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的攔截。4. Cache內(nèi)容零延遲控制技術(shù)
當(dāng)用戶對(duì)某個(gè)受保護(hù)文件正常操作后將其關(guān)閉,隨之又用網(wǎng)絡(luò)進(jìn)程傳輸,若文件沒有從緩存中換出則系統(tǒng)直接從緩存中讀文件,這樣將造成受保護(hù)文件被惡意網(wǎng)絡(luò)進(jìn)程竊取。 為防止以上情況的出現(xiàn),需要對(duì)Cache中數(shù)據(jù)進(jìn)行控制,當(dāng)Cache中存在敏感數(shù)據(jù)且被網(wǎng)絡(luò)進(jìn)程操作的時(shí)候?qū)⑶宄鼵ache中的敏感內(nèi)容,且在本地敏感進(jìn)程操作被保護(hù)文件時(shí),清除 Cache中沒被換出的文件數(shù)據(jù)內(nèi)容。對(duì)內(nèi)存中的數(shù)據(jù)操作用到數(shù)據(jù)結(jié)構(gòu)FCB (File Control Block文件控制塊),文件過濾驅(qū)動(dòng)通過獲得文件的FCB結(jié)構(gòu)來控制在內(nèi)存中打開的文件。在編程實(shí)現(xiàn)的時(shí)候FCB的結(jié)構(gòu)通常通過FILE_OBJECT->FsC0ntext做強(qiáng)制類型轉(zhuǎn)換得到。FCB資源必須被互斥訪問,
8在訪問之前需要獲得資源訪問權(quán),待清除的內(nèi)容在FILE_0BJECT的kctionObjectPointer 域成員中,首先調(diào)用 CcFlushCache 清除 f ileOb ject->SectionOb jectPointer,接下來判斷如果結(jié)構(gòu) fileObject->SectionObjectPointer->ImageSectionObject 和結(jié)構(gòu) fileObject->Se ctionObjectPointer->DataSection Object 不為空,調(diào)用相應(yīng)的清除函數(shù)進(jìn)行清除,三個(gè)結(jié)構(gòu)中數(shù)據(jù)的清除必須按照嚴(yán)格的次序來實(shí)現(xiàn),缺一不可,最后將獲得的 FCB資源釋放掉。
權(quán)利要求
1.基于雙驅(qū)動(dòng)聯(lián)動(dòng)的文件安全主動(dòng)防護(hù)方法,其特征在于具體步驟如下a)利用INF文件安裝驅(qū)動(dòng)至目標(biāo)操作系統(tǒng),驅(qū)動(dòng)以服務(wù)存在,并設(shè)置成隨操作系統(tǒng)啟動(dòng);b)通過操作系統(tǒng)的服務(wù)管理項(xiàng)加載該驅(qū)動(dòng);c)將預(yù)置的文件安全防護(hù)規(guī)則讀取至規(guī)則鏈;d)將IRP處理例程函數(shù)入口賦給DriverObject即“驅(qū)動(dòng)程序?qū)ο蟆钡膶?duì)應(yīng)派遣例程數(shù)組;e)填充!^astI/O處理例程,F(xiàn)ast I/O是緩存管理器調(diào)用所引發(fā)的一種沒有IRP的請(qǐng)求;文件過濾驅(qū)動(dòng)除了正常派遣例程之外,還為DriverObject即驅(qū)動(dòng)程序?qū)ο笞珜懥硪唤M Fast I/O函數(shù),對(duì)緩存進(jìn)行監(jiān)控;f)創(chuàng)建系統(tǒng)線程,獲取TCP/IP設(shè)備對(duì)象后,啟動(dòng)網(wǎng)絡(luò)驅(qū)動(dòng),包括TDI層和NDIS層兩層的網(wǎng)絡(luò)驅(qū)動(dòng),對(duì)通過網(wǎng)絡(luò)進(jìn)程操作文件的行為進(jìn)行監(jiān)控;g)TDI即“Transport Driver Interface傳輸驅(qū)動(dòng)程序接口”層網(wǎng)絡(luò)驅(qū)動(dòng)能夠做到對(duì)系統(tǒng)中的網(wǎng)絡(luò)進(jìn)程的自發(fā)現(xiàn),對(duì)聯(lián)網(wǎng)狀態(tài)的動(dòng)態(tài)監(jiān)控,以及對(duì)病毒木馬破壞和竊取受保護(hù)文件的行為進(jìn)行主動(dòng)分析和捕獲;ti)NDIS 即"Network Driver Interface Specification 網(wǎng)絡(luò)驅(qū)動(dòng)程序接口說明,,層網(wǎng)絡(luò)驅(qū)動(dòng)采用內(nèi)核級(jí)內(nèi)聯(lián)Hook技術(shù)對(duì)NDIS. SYS關(guān)鍵導(dǎo)出API進(jìn)行掛接,內(nèi)聯(lián)Hook掛接過程為找到系統(tǒng)原導(dǎo)出函數(shù)首地址,修改其前五個(gè)字節(jié)為JMP指令,用于跳轉(zhuǎn)到自己的掛鉤函數(shù),當(dāng)執(zhí)行完自己的掛鉤函數(shù)后跳轉(zhuǎn)回系統(tǒng)原導(dǎo)出函數(shù)正常執(zhí)行;對(duì)發(fā)送的NDIS數(shù)據(jù)包進(jìn)行協(xié)議解析,防止用戶通過局域網(wǎng)文件共享方式對(duì)受保護(hù)文件進(jìn)行破壞和竊取,具體的流程為首先驅(qū)動(dòng)程序調(diào)用XF_SendPaCket函數(shù)發(fā)送數(shù)據(jù)包,然后調(diào)用CheckPacket函數(shù)對(duì) NDIS_PACKET封包進(jìn)行解析,若是共享數(shù)據(jù),則交由安全共享處理模塊進(jìn)行處理,否則以默認(rèn)方式進(jìn)行處理;i)文件過濾驅(qū)動(dòng)根據(jù)規(guī)則鏈,對(duì)接收到的IRP流進(jìn)行過濾,對(duì)用戶操作受保護(hù)文件的行為進(jìn)行IRP級(jí)的監(jiān)控,依據(jù)被操作文件的安全屬性,對(duì)IRP包序列進(jìn)行行為特征分析,全壽命防護(hù);步驟g、h和i是實(shí)時(shí)動(dòng)態(tài)的,并無時(shí)間和邏輯上的先后順序;步驟g和h中TDI層和NDIS層兩層的網(wǎng)絡(luò)驅(qū)動(dòng)組織結(jié)構(gòu)為網(wǎng)絡(luò)行為首先由TDI層和 NDIS層驅(qū)進(jìn)行處理,然后再交由網(wǎng)絡(luò)文件行為實(shí)時(shí)捕獲模塊處理;步驟g、h和i中首先需要提取被操作文件的安全屬性,依據(jù)文件安全屬性對(duì)文件的操作進(jìn)行主動(dòng)安全防御,防止用戶對(duì)被保護(hù)文件的惡意破壞和竊取。
2.根據(jù)權(quán)利要求1所述的基于雙驅(qū)動(dòng)聯(lián)動(dòng)的文件安全主動(dòng)防護(hù)方法,其特征在于所述的步驟e中hst I/O函數(shù)完成以下兩件事情之一第一,當(dāng)操作完成時(shí)設(shè)置IoMatUS的返回值并給I/O管理器返回TRUE,這時(shí)I/O管理器會(huì)完成對(duì)應(yīng)的I/O操作;第二,直接返回 FALSE給I/O管理器,使其構(gòu)造一個(gè)IRP從而調(diào)用標(biāo)準(zhǔn)的分派例程。
3.根據(jù)權(quán)利要求1或2所述的基于雙驅(qū)動(dòng)聯(lián)動(dòng)的文件安全主動(dòng)防護(hù)方法,其特征在于 所述的步驟c中的安全防護(hù)規(guī)則是指由管理員提前配置好的受保護(hù)文件的安全策略;為保證文件安全防護(hù)的友好性,以及整個(gè)系統(tǒng)的安全性,允許管理員同時(shí)定制多套控制策略來打造自己的安全平臺(tái)。
4.根據(jù)權(quán)利要求3所述的基于雙驅(qū)動(dòng)聯(lián)動(dòng)的文件安全主動(dòng)防護(hù)方法,其特征在于所述的步驟h中上層網(wǎng)絡(luò)數(shù)據(jù)從協(xié)議棧中發(fā)下來到NDIS網(wǎng)絡(luò)驅(qū)動(dòng)層,在NDIS層對(duì)發(fā)送的數(shù)據(jù)封包進(jìn)行判斷,本步驟只判斷數(shù)據(jù)封包是否為文件共享數(shù)據(jù)包。
5.根據(jù)權(quán)利要求4所述的基于雙驅(qū)動(dòng)聯(lián)動(dòng)的文件安全主動(dòng)防護(hù)方法,其特征在于將文件的安全屬性同文件數(shù)據(jù)本身分開,單獨(dú)存儲(chǔ),在內(nèi)核態(tài)創(chuàng)建一個(gè)數(shù)據(jù)庫,即為一個(gè)內(nèi)核文件,文件中的每條記錄代表一個(gè)受保護(hù)文件的安全屬性;在內(nèi)核層對(duì)這個(gè)內(nèi)核數(shù)據(jù)庫文件進(jìn)行操作,編程實(shí)現(xiàn)對(duì)內(nèi)核態(tài)數(shù)據(jù)庫文件的操作函數(shù);為方便在文件過濾驅(qū)動(dòng)中對(duì)數(shù)據(jù)庫的操作,在內(nèi)核態(tài)建立了一個(gè)靜態(tài)鏈接庫;文件系統(tǒng)驅(qū)動(dòng)是針對(duì)每個(gè)卷來生成一個(gè)設(shè)備對(duì)象,而不是針對(duì)每個(gè)文件的,對(duì)文件讀寫的IRP,都發(fā)往卷設(shè)備對(duì)象上;在每個(gè)卷上維護(hù)一個(gè)內(nèi)核數(shù)據(jù)庫文件,用來處理這個(gè)卷設(shè)備中的受保護(hù)文件的安全屬性;此外,對(duì)受保護(hù)文件安全屬性拒絕一切對(duì)內(nèi)核態(tài)的數(shù)據(jù)庫文件的操作。
6.根據(jù)權(quán)利要求5所述的基于雙驅(qū)動(dòng)聯(lián)動(dòng)的文件安全主動(dòng)防護(hù)方法,其特征在于所述的步驟a中,隨操作系統(tǒng)啟動(dòng)是指定^artType值設(shè)為0 ;驅(qū)動(dòng)的安裝過程為首先將驅(qū)動(dòng)文件復(fù)制到Wirmt\system32\drivers目錄下,然后添加注冊(cè)表項(xiàng),配置驅(qū)動(dòng)程序,最后重啟操作系統(tǒng)。
全文摘要
基于雙驅(qū)動(dòng)聯(lián)動(dòng)的文件安全主動(dòng)防護(hù)方法,具體步驟安裝驅(qū)動(dòng),驅(qū)動(dòng)以服務(wù)存在;通過服務(wù)管理項(xiàng)加載該聯(lián)動(dòng)驅(qū)動(dòng);將預(yù)置的文件安全防護(hù)規(guī)則讀取至規(guī)則鏈;將IRP處理例程函數(shù)入口賦給DriverObject;填充FastI/O處理例程;文件過濾驅(qū)動(dòng)正常派遣例程,并對(duì)緩存進(jìn)行監(jiān)控;創(chuàng)建系統(tǒng)線程,獲取TCP/IP設(shè)備對(duì)象后,啟動(dòng)包括TDI層和NDIS層兩層的網(wǎng)絡(luò)驅(qū)動(dòng),對(duì)通過網(wǎng)絡(luò)進(jìn)程操作文件的行為進(jìn)行監(jiān)控;文件過濾驅(qū)動(dòng)根據(jù)規(guī)則鏈,對(duì)接收到的IRP流進(jìn)行過濾,對(duì)用戶操作受保護(hù)文件的行為進(jìn)行IRP級(jí)的監(jiān)控。本發(fā)明基于內(nèi)核態(tài)文件系統(tǒng)驅(qū)動(dòng)和網(wǎng)絡(luò)驅(qū)動(dòng)聯(lián)動(dòng)的文件安全防護(hù)技術(shù),有效解決了惡意文件操作和網(wǎng)絡(luò)攻擊活動(dòng)以及病毒木馬對(duì)文件的破壞和竊取。
文檔編號(hào)G06F21/00GK102567659SQ20101060801
公開日2012年7月11日 申請(qǐng)日期2010年12月28日 優(yōu)先權(quán)日2010年12月28日
發(fā)明者曲俊峰, 潘曉東, 蘇永濤, 顧純祥 申請(qǐng)人:河南省躬行信息科技有限公司