本發(fā)明涉及一種基于安全標(biāo)簽的usb防擺渡方法。
背景技術(shù):
usb存儲(chǔ)設(shè)備作為一種信息存儲(chǔ)和交換的介質(zhì),以其容量大、易攜帶等優(yōu)點(diǎn)迅速得到廣泛的應(yīng)用,為信息的存儲(chǔ)、交換和轉(zhuǎn)發(fā)提供了極大便利。但劍有雙刃,usb存儲(chǔ)介質(zhì)的普及也為國家和個(gè)人的信息安全帶來了極大隱憂。究其原因,主要有以下幾點(diǎn):首先,usb存儲(chǔ)設(shè)備具有隨時(shí)可讀可寫性,一旦將其作為數(shù)據(jù)擺渡媒介用以承載機(jī)密文件,就極有可能給木馬和病毒提供竊密的可乘之機(jī);其次,由于交叉使用,usb存儲(chǔ)設(shè)備極易成為傳遞病毒和木馬的媒介,將內(nèi)部網(wǎng)絡(luò)暴露于攻擊之下;第三,惡意程序更有可能悄悄植入usb中,在usb插入內(nèi)部網(wǎng)絡(luò)時(shí),秘密竊取內(nèi)部敏感文件及數(shù)據(jù),最后通過連接外網(wǎng)達(dá)成泄密目的。
因此,依托usb存儲(chǔ)介質(zhì)的交叉使用,各種網(wǎng)絡(luò)病毒、木馬的攻擊,以及人為無意或有意的操作,導(dǎo)致重大失泄密事件頻頻發(fā)生。目前,借助usb存儲(chǔ)介質(zhì)擺渡竊取涉密文件,已然成為威脅國家和個(gè)人信息安全的重大隱患。如何有效解決usb存儲(chǔ)介質(zhì)在外部和內(nèi)部網(wǎng)絡(luò)間的安全擺渡問題已經(jīng)成為信息安全領(lǐng)域的關(guān)注焦點(diǎn)。
目前,針對(duì)usb防擺渡的技術(shù)可大致分為三類:第一類是通過特殊硬件級(jí)媒介實(shí)現(xiàn)對(duì)usb的只讀控制。例如,在《數(shù)據(jù)擺渡在安全移動(dòng)存儲(chǔ)中的應(yīng)用研究》中,通過特殊usb存儲(chǔ)介質(zhì)與內(nèi)部網(wǎng)絡(luò)建立非tcp/ip鏈接,該特殊移動(dòng)介質(zhì)內(nèi)置智能芯片,可實(shí)現(xiàn)與內(nèi)網(wǎng)終端系統(tǒng)的雙向認(rèn)證,從而達(dá)到內(nèi)部與外部數(shù)據(jù)安全擺渡的目的。第二類是通過將內(nèi)網(wǎng)或計(jì)算機(jī)中文件進(jìn)行重要等級(jí)劃分,同時(shí)將用戶對(duì)文件的訪問權(quán)限進(jìn)行等級(jí)劃分,通過將移動(dòng)介質(zhì)的訪問權(quán)限設(shè)為最低,從而阻止惡意程序從內(nèi)部竊取敏感數(shù)據(jù)。第三類是在usb上嵌入cos程序,通過該cos程序與安裝在內(nèi)部網(wǎng)絡(luò)主機(jī)上的代理程序進(jìn)行雙向認(rèn)證,完成對(duì)usb的只讀與寫入控制,例如實(shí)用新型專利“一種u盤數(shù)據(jù)安全擺渡方法”(200910092125.0)。
以上方式,雖然能在一定程度上防范惡意程序?qū)?nèi)部敏感數(shù)據(jù)擺渡到外部,卻不能規(guī)避人為操作有意或無意地將敏感數(shù)據(jù)拷貝至usb介質(zhì)而導(dǎo)致失泄密的風(fēng)險(xiǎn)。此外,大部分防擺渡技術(shù)的實(shí)現(xiàn)必須依托專用usb存儲(chǔ)介質(zhì),這不僅增加了硬件成本,還會(huì)在很大程度上影響用戶的使用體驗(yàn)。針對(duì)以上問題,本發(fā)明實(shí)例提供了一種基于安全標(biāo)簽的usb防擺渡技術(shù),旨在解決用戶操作或惡意程序利用usb存儲(chǔ)介質(zhì)將敏感數(shù)據(jù)擺渡到外部從而造成重要信息泄露的問題。借助本發(fā)明實(shí)例所提供的方法,既可實(shí)現(xiàn)數(shù)據(jù)安全擺渡,又可提升用戶體驗(yàn),同時(shí)也可降低使用成本。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的上述缺點(diǎn),本發(fā)明提供了一種基于安全標(biāo)簽的usb防擺渡方法。通過專用軟件為需要擺渡的文件及數(shù)據(jù)打上安全標(biāo)簽;只允許通過專用可信軟件將攜帶安全標(biāo)簽的文件及數(shù)據(jù)拷貝到usb存儲(chǔ)設(shè)備中;以其他方式向usb存儲(chǔ)設(shè)備中拷貝數(shù)據(jù)的行為將被阻止。本發(fā)明有效地解決了現(xiàn)有防擺渡技術(shù)中未考慮人為無意或有意操作而導(dǎo)致失泄密的情況,且本發(fā)明的實(shí)現(xiàn)不需要依托專用usb存儲(chǔ)介質(zhì),解決了普通usb介質(zhì)的防擺渡問題。本發(fā)明有效地解決了用戶或者惡意程序利用普通usb存儲(chǔ)介質(zhì)的交叉使用將敏感數(shù)據(jù)擺渡到外部而導(dǎo)致泄密的問題,提高了usb存儲(chǔ)介質(zhì)在交叉使用中的安全性,降低了usb防擺渡技術(shù)的硬件成本,并提升了用戶的使用體驗(yàn)。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種基于安全標(biāo)簽的usb防擺渡方法,包括如下步驟:
步驟一、系統(tǒng)啟動(dòng),自動(dòng)運(yùn)行可信進(jìn)程,加載文件過濾驅(qū)動(dòng)程序、應(yīng)用層過濾鉤子及內(nèi)核保護(hù)程序;
步驟二、當(dāng)用戶使用外接usb存儲(chǔ)介質(zhì)時(shí),文件過濾驅(qū)動(dòng)程序感知usb存儲(chǔ)介質(zhì)的插入和拔出,記錄當(dāng)前系統(tǒng)的狀態(tài),同時(shí)控制非可信進(jìn)程對(duì)usb存儲(chǔ)介質(zhì)的只讀權(quán)限,并禁止usb存儲(chǔ)介質(zhì)內(nèi)可執(zhí)行文件的加載運(yùn)行;
步驟三、用戶生成涉密文件,通過安全標(biāo)簽加密軟件為需要傳輸?shù)奈募砑影踩珮?biāo)簽;
步驟四、用戶通過可信進(jìn)程拷貝帶有安全標(biāo)簽的文件到usb存儲(chǔ)介質(zhì);
步驟五、采用內(nèi)核保護(hù)程序保護(hù)可信進(jìn)程。
與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果是:
本發(fā)明實(shí)現(xiàn)了主機(jī)與usb存儲(chǔ)介質(zhì)的流向控制,能夠在不影響用戶對(duì)usb存儲(chǔ)介質(zhì)使用的情況下,有效抵御用戶操作及木馬攻擊將內(nèi)部敏感數(shù)據(jù)擺渡到外部而導(dǎo)致失泄密的安全威脅,從而對(duì)涉密數(shù)據(jù)起到有效的保護(hù)作用。相比于現(xiàn)有usb防擺渡技術(shù),本發(fā)明安全性更高,成本更低,用戶使用體驗(yàn)更好。
附圖說明
本發(fā)明將通過例子并參照附圖的方式說明,其中:
圖1為windows文件過濾驅(qū)動(dòng);
圖2為hook前后的程序執(zhí)行流程對(duì)比。
具體實(shí)施方式
本發(fā)明提供了一種基于安全標(biāo)簽的usb防擺渡技術(shù),以解決由于用戶或者惡意程序利用普通usb存儲(chǔ)介質(zhì)將敏感數(shù)據(jù)擺渡到外部而導(dǎo)致泄密的問題。
用戶可從普通usb存儲(chǔ)介質(zhì)中拷貝任意文件或數(shù)據(jù)到本地磁盤,但僅能通過專用可信軟件拷貝帶有安全標(biāo)簽的文件到usb存儲(chǔ)介質(zhì)??截惾魏挝磾y帶安全標(biāo)簽文件的行為,以及使用其他任何方式拷貝數(shù)據(jù)到usb存儲(chǔ)介質(zhì)的行為,都將被阻止。
為解決以上問題,本發(fā)明提供一種基于安全標(biāo)簽的usb防擺渡方法,包括如下步驟:
步驟一:系統(tǒng)啟動(dòng),自動(dòng)運(yùn)行可信進(jìn)程,加載文件過濾驅(qū)動(dòng)程序、應(yīng)用層過濾鉤子及內(nèi)核保護(hù)程序。
該可信進(jìn)程為普通的windows后臺(tái)服務(wù)程序,用于加載應(yīng)用層過濾鉤子、向文件過濾驅(qū)動(dòng)傳遞參數(shù),以及向用戶提供拷貝帶安全標(biāo)簽文件或數(shù)據(jù)的交互界面。為了防止惡意停止該服務(wù)器,需要屏蔽該服務(wù)的停止選項(xiàng),并保護(hù)該服務(wù)對(duì)應(yīng)的注冊(cè)表。
步驟二:當(dāng)用戶使用外接usb存儲(chǔ)介質(zhì)時(shí),文件過濾驅(qū)動(dòng)將感知usb存儲(chǔ)介質(zhì)的插入和拔出,記錄當(dāng)前系統(tǒng)的狀態(tài),同時(shí)控制非可信進(jìn)程對(duì)usb存儲(chǔ)介質(zhì)的只讀權(quán)限,并禁止usb存儲(chǔ)介質(zhì)內(nèi)可執(zhí)行文件的加載運(yùn)行。
文件系統(tǒng)過濾驅(qū)動(dòng)是針對(duì)文件系統(tǒng)而言的,由于nt的i/o管理器支持分層驅(qū)動(dòng)程序模型,支持可擴(kuò)展的驅(qū)動(dòng)程序和其它一些執(zhí)行體服務(wù),因此它既可以位于文件系統(tǒng)驅(qū)動(dòng)之上,也可以被插在文件系統(tǒng)驅(qū)動(dòng)和存儲(chǔ)設(shè)備驅(qū)動(dòng)之間。
因?yàn)槊總€(gè)影響到設(shè)備行為的操作都是使用i/o請(qǐng)求包,通常被送到設(shè)備堆棧的最上層驅(qū)動(dòng)程序,然后逐漸傳送到下面的驅(qū)動(dòng)程序。每一層驅(qū)動(dòng)程序都可以決定如何處理i/o請(qǐng)求包。因此可以在i/o管理器與文件系統(tǒng)驅(qū)動(dòng)之間插入本發(fā)明實(shí)例中的過濾驅(qū)動(dòng),如圖1所示。該過濾驅(qū)動(dòng)可以攔截來自上層的i/o請(qǐng)求包,并對(duì)該irp進(jìn)行處理后再繼續(xù)向下傳遞或直接向上返回結(jié)果,也可以攔截來自下層返回的i/0請(qǐng)求包,并對(duì)結(jié)果進(jìn)行處理后再繼續(xù)向上返回。通過這種方案,可以達(dá)到控制文件訪問、保護(hù)文件安全等目的。
本發(fā)明實(shí)例中文件過濾驅(qū)動(dòng)具體需要實(shí)現(xiàn)以下三個(gè)功能:
實(shí)現(xiàn)usb的判定:通過攔截irp_mn_mount_volume,感知當(dāng)前usb的接入,獲取usb的盤符,為限制usb病毒的運(yùn)行、實(shí)現(xiàn)usb只讀控制做準(zhǔn)備;
實(shí)現(xiàn)usb只讀控制:根據(jù)應(yīng)用進(jìn)程對(duì)文件的訪問機(jī)理,一般來說,用戶對(duì)文件的訪問可以簡化地描述為:創(chuàng)建一個(gè)文件句柄,調(diào)用讀/寫函數(shù)對(duì)文件進(jìn)行操作,關(guān)閉文件句柄。這些函數(shù)會(huì)使操作系統(tǒng)在內(nèi)核層創(chuàng)建相應(yīng)的i/o讀寫請(qǐng)求包到相應(yīng)的處理回調(diào)例程,在回調(diào)例程中處理文件讀寫操作。irp類型有irp_mj_create、irp_mj_read、irp_mj_write、irp_mj_set_information、irp_mj_close等幾個(gè)irp請(qǐng)求。過濾這些i/o操作,就可以提供對(duì)usb文件的禁止、只讀和讀寫三種訪問模式;
實(shí)現(xiàn)可信進(jìn)程的判定:可以通過進(jìn)程環(huán)境塊peb結(jié)構(gòu)中的processparameters結(jié)構(gòu)中的imagepathname獲取進(jìn)程名稱。結(jié)合上面的usb只讀控制功能,若操作文件的為可信進(jìn)程,則usb具有讀寫權(quán)限,若操作文件為非可信進(jìn)程,則usb具有只讀權(quán)限。考慮到僅靠進(jìn)程名稱判定容易被偽造,判定時(shí)結(jié)合進(jìn)程路徑和進(jìn)程哈希值來判定。
限制usb病毒的運(yùn)行:可以通過進(jìn)程環(huán)境塊peb獲取進(jìn)程名稱、進(jìn)程路徑,如果判定文件名為autorun.inf、可執(zhí)行文件等,則攔截irp_mj_read的i/o操作,限制對(duì)該文件的讀權(quán)限。
步驟三:用戶生成涉密文件,通過安全標(biāo)簽加密軟件為需要傳輸?shù)奈募砑影踩珮?biāo)簽,該軟件實(shí)現(xiàn)對(duì)原始文件的重構(gòu),同時(shí)實(shí)現(xiàn)對(duì)文件的加密轉(zhuǎn)化。
進(jìn)行文件重構(gòu)時(shí),可通過在文件頭部添加標(biāo)簽屬性和水印屬性等方式實(shí)現(xiàn)。
步驟四:用戶通過可信進(jìn)程拷貝此類帶有安全標(biāo)簽的文件到usb存儲(chǔ)介質(zhì)。應(yīng)用層過濾鉤子實(shí)時(shí)攔截拷貝文件函數(shù),檢測所拷貝的文件是否帶有安全標(biāo)簽。攜帶安全標(biāo)簽的文件將被放行,反之則被攔截。即通過可信進(jìn)程且攜帶安全標(biāo)簽的文件拷貝可以成功,通過非可信進(jìn)程或未攜帶安全標(biāo)簽的文件拷貝都將失敗。
detours是一個(gè)用來在二進(jìn)制級(jí)別上對(duì)程序中的函數(shù)(function)或者過程(procedure)進(jìn)行修改的工具庫,該技術(shù)稱為"hook"。detours的實(shí)現(xiàn)原理是將目標(biāo)函數(shù)的前幾個(gè)字節(jié)改為jmp指令跳轉(zhuǎn)到自己的函數(shù)地址,以此接管對(duì)目標(biāo)函數(shù)的調(diào)用,并插入自己的處理代碼。
通過hook操作系統(tǒng)的拷貝文件函數(shù)copyfilea、copyfilew、copyfileexa、copyfileexw實(shí)時(shí)攔截拷貝文件函數(shù),檢測所需拷貝的文件是否帶有安全標(biāo)簽。hook前后的程序執(zhí)行流程對(duì)比如圖2所示。
步驟五:采用內(nèi)核保護(hù)程序保護(hù)該可信進(jìn)程,防止該進(jìn)程被注入,被修改運(yùn)行狀態(tài),同時(shí)實(shí)現(xiàn)內(nèi)核層對(duì)可信進(jìn)程的身份驗(yàn)證。
為了保護(hù)可信進(jìn)程,需要針對(duì)當(dāng)前攻擊運(yùn)行程序的主流方式(結(jié)束進(jìn)程、注入其他的模塊、關(guān)閉窗口、修改提示窗口的信息等)進(jìn)行攔截。保護(hù)內(nèi)容包括:
文件保護(hù):通過編寫文件過濾驅(qū)動(dòng)過濾i/o操作請(qǐng)求,在文件系統(tǒng)驅(qū)動(dòng)程序(fsd)和i/o管理器之間嵌入文件保護(hù)模塊,當(dāng)檢測到非可信代理進(jìn)程的操作對(duì)象為受保護(hù)的文件和目錄時(shí),攔截該操作,中斷傳遞過程;
注冊(cè)表保護(hù):通過攔截應(yīng)用程序的注冊(cè)表讀寫信息,當(dāng)檢測到讀寫鍵值為受保護(hù)的鍵值時(shí),中斷消息傳遞,從而實(shí)現(xiàn)關(guān)鍵鍵值受保護(hù)的目的;
窗口保護(hù):對(duì)應(yīng)用程序向可信進(jìn)程的窗口發(fā)送消息進(jìn)行過濾,保證可信進(jìn)程窗口所接收的消息均來自合法進(jìn)程;
服務(wù)保護(hù):對(duì)受保護(hù)服務(wù)的操作進(jìn)行過濾,檢測當(dāng)前操作服務(wù)的進(jìn)程是否為合法進(jìn)程。