武旭方,胡曉勤
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
一種信息防泄密系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
武旭方,胡曉勤
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
由于信息安全形勢日益嚴(yán)峻,數(shù)據(jù)保護(hù)手段也多種多樣。傳統(tǒng)的安全手段都是基于透明加解密來實(shí)現(xiàn),這些方法會在加密文件中添加加密標(biāo)志會導(dǎo)致保護(hù)系統(tǒng)的穩(wěn)定性降低。提出一種信息防泄密系統(tǒng),結(jié)合加密軟件TrueCrypt和文件過濾驅(qū)動,在不修改機(jī)密文件的前提下,將機(jī)密文件重定向到虛擬加密磁盤。有效保護(hù)數(shù)據(jù)的同時,提高系統(tǒng)的穩(wěn)定性。
信息安全;文件過濾驅(qū)動;透明加解密
隨著信息化的發(fā)展,用戶及企業(yè)產(chǎn)生數(shù)據(jù)的場景越來越多,包括了很多對機(jī)密性有高要求的情況。因此數(shù)據(jù)的防泄漏變得十分重要,保護(hù)數(shù)據(jù)防止被非法獲得是信息科學(xué)中的一個重要命題。目前,IPS、IDS及防火墻的技術(shù)和理念雖然也有了高速的發(fā)展,但是網(wǎng)絡(luò)攻擊手段也是日新月異,讓人防不勝防。即使是不聯(lián)網(wǎng)的主機(jī)也有被非法用戶查看或盜取機(jī)密信息的風(fēng)險(xiǎn)。所以數(shù)據(jù)加密存儲在計(jì)算機(jī)中是防止數(shù)據(jù)泄露的一種可靠的方法。但是,在保證數(shù)據(jù)的安全性的同時不能破壞用戶的原有習(xí)慣,即合法用戶能夠正常讀寫機(jī)密信息。因此本文提出了一種結(jié)合開源加密軟件TrueCrypt的透明加解密系統(tǒng)來實(shí)現(xiàn)數(shù)據(jù)的防泄漏。
本系統(tǒng)主要包含以下幾個模塊,客戶端模塊、內(nèi)核攔截模塊、磁盤加解密模塊、服務(wù)端模塊??蛻舳四K工作在被保護(hù)主機(jī)的應(yīng)用層,主要實(shí)現(xiàn)系統(tǒng)與用戶的交流。包括要求用戶輸入用戶名及密碼、保護(hù)數(shù)據(jù)類型配置、保護(hù)路徑配置、脫密文件導(dǎo)出、清空加密磁盤等。
內(nèi)核攔截模塊是本文的核心內(nèi)容。關(guān)于截獲文件操作的方法大概有這么兩種,一是利用hook函數(shù)在應(yīng)用層截獲相關(guān)的文件讀寫函數(shù)及文件信息設(shè)置函數(shù),這種方法實(shí)現(xiàn)簡單但是很容易被非法進(jìn)程繞過。本文采取的是第二種方法,即通過文件過濾驅(qū)動來截獲文件系統(tǒng)的I/O操作。磁盤加解密模塊是結(jié)合TrueCrypt來實(shí)現(xiàn)的。傳統(tǒng)基于文件過濾驅(qū)動的透明加解密系統(tǒng)中一個重要問題就是加密文件的識別,也就是說計(jì)算機(jī)的文件系統(tǒng)中同時存在密文文件和明文文件,因此在文件操作時就需要判斷是否為密文并解密。目前的解決方案中基本都是在文件的數(shù)據(jù)中添加已加密的標(biāo)示,添加的位置可以是文件數(shù)據(jù)的開頭,中間或尾部。如果加在頭部還要考慮文件大小的問題,也就是說不能因?yàn)榧用軜?biāo)志的添加導(dǎo)致了用戶看到文件大小的變化,所以此時還需要過濾文件系統(tǒng)的setinformation類IRP,屏蔽掉加密標(biāo)志的影響。如果加密標(biāo)志加在尾部,則每次寫文件都要對其進(jìn)行移動。還有一種方法是自定義一種表示加密標(biāo)志的文件屬性,文件的內(nèi)容是一個文件的默認(rèn)屬性,添加文件屬性并不會影響用戶看到文件大小的變化,文件屬性是NTFS所特有的,也就是說對于FAT32等其他文件系統(tǒng)來說,這種方法是無效的。
圖1 系統(tǒng)架構(gòu)
因此綜上所述,傳統(tǒng)的文件透明加解密系統(tǒng)存在一些問題,實(shí)現(xiàn)復(fù)雜,增加保護(hù)系統(tǒng)的負(fù)擔(dān),適用性不夠廣。所以本文提出了結(jié)合TrueCrypt的磁盤加解密方法。TrueCrypt可以創(chuàng)建虛擬磁盤,所有存放在這個虛擬磁盤中的文件都是加密存儲的,并不會添加加密標(biāo)示。而且只有認(rèn)證通過的合法用戶才能看到加密磁盤并正常讀寫,認(rèn)證失敗時,加密磁盤不會被系統(tǒng)掛載。而且,由于文件是加密存儲的所以即使文件被拷貝或傳輸?shù)狡渌胤揭膊慌滦畔⑿孤丁?/p>
服務(wù)端模塊是實(shí)現(xiàn)登錄認(rèn)證的功能,驗(yàn)證用戶輸入的用戶名和密碼是否正確。驗(yàn)證通過才可以讀寫機(jī)密文件,否則所有讀寫的文件都是明文存儲的。
2.1 Windows NT文件系統(tǒng)及過濾驅(qū)動
總所周知,用戶對文件的讀寫不是簡單的操作物理磁盤。Windows NT內(nèi)核模式驅(qū)動是采用分層模型,及應(yīng)用層對文件的讀寫先通過系統(tǒng)服務(wù)調(diào)用I/O管理器的IRP生成函數(shù),又由于文件系統(tǒng)驅(qū)動在磁盤驅(qū)動的上層且已向IO管理器注冊。所以,文件系統(tǒng)驅(qū)動會先于磁盤驅(qū)動接收到該IRP。文件系統(tǒng)過濾驅(qū)動程序能夠過濾針對文件系統(tǒng)或卷的IO操作,它們可以監(jiān)視、記錄、修改或阻止這些IO操作。它們的工作方式與設(shè)備棧中的其他驅(qū)動程序類似,它們接收IRP,執(zhí)行自己的邏輯,再根據(jù)自己的需要,設(shè)置完成例程并將IRP發(fā)送給底層的驅(qū)動程序。但需要注意的是文件過濾驅(qū)動程序針對的是文件系統(tǒng),它們不是WDM驅(qū)動程序,不能支持即插即用,所以我們不需要添加AddDevice例程。
2.2 文件實(shí)時監(jiān)控
要做到實(shí)時監(jiān)控文件系統(tǒng),首先需要正確的附加我們的過濾設(shè)備到文件系統(tǒng)設(shè)備,附加過濾設(shè)備可以用內(nèi)核函數(shù)IoAttachDevicetoStack。同時,我們驅(qū)動程序的例程中也要處理相應(yīng)的操作,例如文件讀寫的IRP主要包括IRP_MJ_CREATE、IRP_MJ_READ、IRP_MJ_ WRITE。由于文件系統(tǒng)支持FastIO例程,因此也需要相應(yīng)處理。在這些例程中,我們可以針對感興趣的應(yīng)用層操作進(jìn)行處理,例如禁止用戶創(chuàng)建、讀、寫文件時,在相應(yīng)IRP例程中直接調(diào)用IoCompleteRequest,并返回STATUS_SUCCESS。在這里,我們針對機(jī)密文件的寫操作要重定向到加密磁盤。
2.3 過濾驅(qū)動與客戶端的通信
用戶的一些文件可能不是機(jī)密的,或者并不想把一些不重要而且體積龐大的文件進(jìn)行重定向到虛擬磁盤去加密,例如視頻文件、圖片文件等。這時用戶就可以設(shè)置文件格式白名單,意味著特定格式的文件將在文件操作的監(jiān)控中不做處理。同樣的,用戶可能對特定路徑下的文件操作并不感興趣,此時可以設(shè)置路徑白名單,特定路徑下的文件讀寫也不會被重定向。這些白名單的設(shè)置都是在應(yīng)用層的客戶端完成,但需要通知到我們內(nèi)核設(shè)備。這時就涉及了我們的驅(qū)動程序與應(yīng)用層客戶端的通信問題。在這里我們利用DeviceIocontrol來實(shí)現(xiàn)控制驅(qū)動的目的。但這里產(chǎn)生并發(fā)生給我們驅(qū)動程序的IRP是IRP_CONTROL_CODE,接收這類IRP的是我們的控制設(shè)備不是過濾設(shè)備,所以在IRP例程中要判斷設(shè)備類型。這里我們通過定義宏來實(shí)現(xiàn),如下:
該本文在Windows NT內(nèi)核平臺上,設(shè)計(jì)并實(shí)現(xiàn)了一種信息防泄漏系統(tǒng)。利用文件系統(tǒng)過濾驅(qū)動能夠有效的監(jiān)控文件操作,相對于應(yīng)用層的攔截,本文提出的方法更加可靠,惡意程序難以繞過。傳統(tǒng)的透明加解密方法,要在加密文件中添加加密標(biāo)志。本文結(jié)合True-Crypt創(chuàng)建虛擬加密磁盤,并將機(jī)密文件的寫操作重定向到加密磁盤,讀取文件時從加密磁盤中透明解密返回給用戶。這樣確保了機(jī)密文件的加密存儲防止機(jī)密文件被盜取到明文的風(fēng)險(xiǎn)。
本系統(tǒng)還有一些方面需要完善,由于機(jī)密文件被重定向到虛擬磁盤,機(jī)密文件的位置會變成虛擬磁盤,讀取時需要到虛擬磁盤中。可以這樣完善,機(jī)密文件的實(shí)際內(nèi)容扔重定向到虛擬磁盤,但其創(chuàng)建時的初始位置被一個空文件代替,可以利用空文件的命名來識別已重定向文件,識別完成后再實(shí)際讀取虛擬磁盤中的真實(shí)機(jī)密文件。
[1]王全民,周清.文件透明加密技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(3):147-150.
[2]譚文,陳銘霖.Windows內(nèi)核安全與驅(qū)動開發(fā)[M].北京:電子工業(yè)出版社,2015.
[3]張帆.Windows驅(qū)動開發(fā)詳解[M].北京:電子工業(yè)出版社,2008.
[4]瞿進(jìn),李清寶,白燕,魏珉.文件過濾驅(qū)動在網(wǎng)絡(luò)安全終端中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2007,27(3):624-626.
Design and Implementation of a Data Leak Prevention System
WU Xu-fang,HU Xiao-qin
(College of Computer Science,Sichuan University,Chengdu 610065)
Due to the increasingly serious situation of information security,data protection is in varied forms.Traditional security methods are based on transparent encryption and decryption,these methods will modify sensitive file to show that it need to be encrypted or decrypted.So, traditional method will lead to the stability of the protection system to reduce.Proposes a kind of information leakage prevention system, which is based on the encryption software TrueCrypt and file system filter driver.While effectively protecting the data,the stability of the system is improved.
Information Security;File System Filter Driver;Transparent Encryption/Decryption
1007-1423(2017)07-0072-03
10.3969/j.issn.1007-1423.2017.07.018
武旭方(1991-),男,安徽阜陽人,碩士,研究方向?yàn)樾畔⑴c網(wǎng)絡(luò)安全
2016-12-22
2017-02-10
國家重點(diǎn)研發(fā)計(jì)劃(No.2016yfb00604、No.2016yfb00605)、國家自然科學(xué)基金項(xiàng)目(No.61572334)
胡曉勤,四川內(nèi)江人,博士,研究方向?yàn)闉?zāi)難備份、信息安全