本發(fā)明涉及數(shù)據(jù)存儲(chǔ)訪問,具體涉及一種基于linux的敏感文件控制方法。
背景技術(shù):
1、隨著數(shù)字化轉(zhuǎn)型加速,文件傳輸成為日常業(yè)務(wù)的核心環(huán)節(jié),但同時(shí)也帶來了敏感數(shù)據(jù)泄露的風(fēng)險(xiǎn)。通過常見協(xié)議(如ftp、scp、post等)發(fā)送文件到目標(biāo)服務(wù)器是常見的操作,同時(shí)文件在上傳到服務(wù)器后基本都會(huì)暴露在文件系統(tǒng)中,任何用戶都可以看到,這種情況在linux系統(tǒng)上存在以下問題:
2、1、linux存在著大量已知或未知的系統(tǒng)漏洞,普通用戶可以通過非法提權(quán)等違規(guī)操作獲取超管權(quán)限以達(dá)到瀏覽敏感文件的目的;
3、2、文件在傳輸過程中可能被非法捕獲造成敏感信息泄漏;
4、3、linux系統(tǒng)大部分為服務(wù)器類型,存在大量模塊,這些模塊可能存在已知或未知漏洞造成對設(shè)備的非法入侵,此時(shí)入侵者可能對文件系統(tǒng)數(shù)據(jù)造成損害,尤其是某些敏感文件可能造成泄漏;
5、4、linux系統(tǒng)可能會(huì)感染病毒木馬,它們可能收集系統(tǒng)信息包括敏感文件等數(shù)據(jù),造成數(shù)據(jù)泄漏。
6、現(xiàn)有技術(shù)針對文件的控制方案包括文件加密技術(shù),該技術(shù)通過加密進(jìn)入文件系統(tǒng)的文件達(dá)到防止非法入侵后文件獲取以及防止無權(quán)限用戶瀏覽的目的。但是該技術(shù)無法應(yīng)對病毒木馬等對文件的破壞,同時(shí)也無法處理傳輸過程中的數(shù)據(jù)泄漏問題。
7、類似專利cn110889125a中提到的,通過設(shè)置隱藏區(qū)以及驅(qū)動(dòng)級進(jìn)程控制技術(shù)達(dá)到控制目的,雖然可以達(dá)到文件隱藏以及控制讀寫的目的,但是該方案僅適用于windows操作系統(tǒng),因?yàn)閘inux上沒有提供接口用以隱藏文件,以“.”為前綴的隱藏文件以及目錄在文件掃描時(shí)仍然可以獲取到,同時(shí)也無法處理傳輸過程中數(shù)據(jù)泄漏問題。
8、現(xiàn)有技術(shù)中專利cn102662870a主要應(yīng)用于linux系統(tǒng),通過hook技術(shù)截獲i/o系統(tǒng)調(diào)用,從vfs(虛擬文件系統(tǒng))控制進(jìn)程對文件的讀寫請求達(dá)到控制能力。但是該技術(shù)無法實(shí)現(xiàn)文件隱藏也就無法應(yīng)對病毒木馬破壞文件,同時(shí)也無法應(yīng)對傳輸過程數(shù)據(jù)泄漏風(fēng)險(xiǎn)。
9、類似專利cn109271804a使用linux?lsm框架可以實(shí)現(xiàn)類似功能,但是其實(shí)現(xiàn)僅訪問控制層面的假隱藏,通過某些工具仍可以檢測到文件存在,不夠徹底,對于直接的磁盤操作無法處理,且由于其hook點(diǎn)遍布系統(tǒng)每個(gè)層面導(dǎo)致其有一定的性能開銷。
技術(shù)實(shí)現(xiàn)思路
1、針對現(xiàn)有技術(shù)的不足,本發(fā)明提供一種基于linux的敏感文件控制方法,在linux基礎(chǔ)上提供一種基于驅(qū)動(dòng)級文件保護(hù)技術(shù)的訪問控制方法,用于解決上述技術(shù)背景下的弊端。
2、本發(fā)明是通過如下技術(shù)方案實(shí)現(xiàn)的:
3、提供一種基于linux的敏感文件控制方法,通過主體附屬分布式模塊cli、linux系統(tǒng)內(nèi)核驅(qū)動(dòng)模塊drv和文件上傳/下載/認(rèn)證控制模塊srv相互配合實(shí)現(xiàn),包括以下步驟:
4、s1、加載drv,drv從內(nèi)核模塊列表、內(nèi)存鏈表以及kobject中摘除drv驅(qū)動(dòng)對象并修改內(nèi)核中drv驅(qū)動(dòng)名稱,此時(shí)查詢驅(qū)動(dòng)列表時(shí)drv驅(qū)動(dòng)不可見用于保護(hù)drv模塊在非法的root權(quán)限下被非法卸載;
5、s2、srv下發(fā)srv所屬pid號給drv;用于告知drv僅此pid所屬進(jìn)程具有操作權(quán)限;
6、s3、srv加載保存的敏感區(qū)域元數(shù)據(jù)給drv;告知drv保護(hù)數(shù)據(jù)區(qū)域以及相關(guān)受保護(hù)數(shù)據(jù)資源分布;
7、s4、srv啟動(dòng)監(jiān)聽接口監(jiān)聽附屬分布式模塊cli的傳輸請求;準(zhǔn)備進(jìn)行文件處理;
8、s5、srv接收到cli連接,srv通過drv讀取文件列表數(shù)據(jù)響應(yīng)cli;此時(shí)cli可展示給用戶當(dāng)前受保護(hù)的文件列表;
9、s6、srv接收到cli的上傳請求,srv接收文件數(shù)據(jù)發(fā)送drv寫入請求;用于告知drv將要向磁盤寫入文件數(shù)據(jù);
10、s7、srv接收到cli的下載請求,drv讀取文件發(fā)送srv并回傳給cli;
11、s8、srv接收到cli的刪除請求,drv刪除成功后srv響應(yīng)cli;告知cli文件成功刪除;
12、s9、srv接收到cli斷開連接請求,srv斷開與cli連接;用于防止srv所在系統(tǒng)負(fù)載過高。
13、在本方案中步驟s1為?drv自我保護(hù);s2為srv保護(hù),由drv實(shí)現(xiàn);s3?為磁盤扇區(qū)控制;s4-s8為實(shí)現(xiàn)傳輸安全,使用驅(qū)動(dòng)技術(shù)實(shí)現(xiàn)磁盤扇區(qū)控制、自我保護(hù)功能以及確保文件傳輸中數(shù)據(jù)安全的實(shí)現(xiàn)方案,以達(dá)到設(shè)備端文件不可見、入侵者無法破壞、惡意進(jìn)程無法讀取的同時(shí),即使傳輸過程中數(shù)據(jù)被捕獲也無法獲取原始文件的目的。
14、進(jìn)一步的,在步驟s2中,drv監(jiān)控srv模塊的pid設(shè)置請求,記錄pid以及用戶信息;drv根據(jù)設(shè)置的pid從內(nèi)核task_struct鏈表摘除對象,此時(shí)該pid所屬進(jìn)程在vfs以及用戶態(tài)不可見。
15、進(jìn)一步的,在步驟s3中,具體流程為:
16、s31、drv監(jiān)控srv的元數(shù)據(jù)設(shè)置請求,drv解析元數(shù)據(jù),其中包含敏感區(qū)域元數(shù)據(jù)所在磁盤扇區(qū)范圍;
17、s32、drv讀取磁盤上元數(shù)據(jù)扇區(qū),構(gòu)建敏感區(qū)域扇區(qū)范圍、文件信息表、已用扇區(qū)分布位圖表、可用扇區(qū)分布位圖表;
18、s33、drv獲取磁盤的super_block數(shù)據(jù),根據(jù)保護(hù)扇區(qū)范圍在super_block中標(biāo)記該扇區(qū)范圍為已分配,防止系統(tǒng)新數(shù)據(jù)落入保護(hù)扇區(qū);
19、s34、inline?hook文件系統(tǒng)塊分配函數(shù),替換為drv的hook指針,解析文件系統(tǒng)申請的扇區(qū)信息以及獲取cpid;
20、如果cpid與預(yù)設(shè)pid一致則按正常邏輯處理,若不一致則檢查扇區(qū);
21、如果位于保護(hù)扇區(qū)范圍則返回失??;否則按照正常塊分配邏輯處理;
22、s35、inline?hook磁盤inode表擴(kuò)展分配函數(shù),替換為drv的hook指針,解析申請的inode所屬扇區(qū)以及獲取cpid;
23、如果cpid與預(yù)設(shè)pid一致則按正常邏輯處理,若不一致則檢查扇區(qū);
24、如果位于保護(hù)扇區(qū)范圍則返回失?。环駝t按照正常inode分配邏輯處理;
25、s36、inlinehook塊設(shè)備i/o分配函數(shù),替換為drv的hook指針,解析申請的扇區(qū)以及cpid;
26、如果cpid與預(yù)設(shè)pid一致,則按正常邏輯處理,若不一致則檢查扇區(qū)邊界,如果侵入保護(hù)扇區(qū)范圍則返回失敗;否則按照正常邏輯處理;
27、s37、inlinehook文件系統(tǒng)i/o調(diào)用以及塊設(shè)備i/o調(diào)用函數(shù),解析i/o請求中的inode或block信息以及cpid信息;
28、如果cpid與預(yù)設(shè)pid一致,則按照正常邏輯處理,若不一致則檢查扇區(qū),如果扇區(qū)屬于敏感保護(hù)扇區(qū)則返回失敗;否則按照正常邏輯處理。
29、進(jìn)一步的,在步驟s5中,具體流程為:
30、s51、drv獲取元數(shù)據(jù)中文件信息表反饋給srv;
31、s52、srv通過加密連接響應(yīng)cli;
32、s53、cli接收反饋后可根據(jù)元數(shù)據(jù)信息展示文件列表。
33、進(jìn)一步的,在步驟s6中,drv獲取srv下發(fā)數(shù)據(jù)中文件頭信息,包括文件名、文件大小和md5;drv從文件信息表中獲取此md5是否已存在;
34、如果存在則檢查此md5對應(yīng)的文件名是否一致,若一致則放棄寫入并中斷連接反饋srv傳輸完成;否則根據(jù)文件大小計(jì)算存儲(chǔ)需要的扇區(qū)范圍構(gòu)建新的文件對象信息,包含扇區(qū)占用位圖,加入文件信息表,同時(shí)更新可用扇區(qū)信息表;
35、drv將更新后的元數(shù)據(jù)緩存寫入磁盤,drv繼續(xù)接收srv下發(fā)的文件數(shù)據(jù),根據(jù)當(dāng)前文件扇區(qū)寫入位圖依次寫入數(shù)據(jù)。
36、在步驟s7中,drv獲取srv下發(fā)數(shù)據(jù)中文件頭信息,包括文件名、文件大小和md5;drv從文件信息表中獲取此文件名是否已存在;
37、如果存在則檢查此文件對應(yīng)的md5是否一致,若一致則獲取文件所屬扇區(qū),并從起始扇區(qū)開始讀取數(shù)據(jù)并通過srv反饋給cli;如果不一致則繼續(xù)進(jìn)行步驟2直到遍歷結(jié)束;
38、如果未找到文件名一致且md5一致的數(shù)據(jù)則反饋srv下載失敗,srv同步反饋cli下載失敗。
39、在步驟s8中,drv獲取srv下發(fā)數(shù)據(jù)中文件頭信息,包括文件名、文件大小和md5;drv從文件信息表中獲取此文件名是否已存在;
40、如果存在則檢查此文件對應(yīng)的md5是否一致,若一致則從文件信息表刪除此文件對象,同時(shí)從已用扇區(qū)位圖表刪除此文件占用的位圖信息,在可用扇區(qū)表中新增此文件占用的位圖信息;更新緩存信息到磁盤。
41、作為優(yōu)選,通過注冊機(jī)制使得cli只與固定的linux系統(tǒng)的pc和服務(wù)器通信。
42、基于pc以及用戶的注冊機(jī)制,用于防止主體附屬分布式模塊cli濫用,其中srv可對接ldap、oa、數(shù)據(jù)庫等中間件,從中獲取可注冊用戶的賬戶信息,其注冊流程如下:
43、1.?從中間件獲取合法賬戶并緩存,同時(shí)啟動(dòng)定時(shí)更新機(jī)制;
44、2.?監(jiān)聽注冊請求;
45、3.?監(jiān)聽到用戶注冊,提取用戶信息,包括用戶名、密碼以及所在pc的cpu序列號;
46、4.?判斷用戶名、密碼是否屬于緩存的合法用戶;
47、5.?如果用戶非法則禁止注冊;否則復(fù)制一份srv所在設(shè)備的分布式模塊cli到cli-a;
48、6.?提取srv所在設(shè)備cpu序列號,與用戶cpu序列號拼接,使用sm2加密拼接的字符串獲得加密串;
49、7.?在cli-a模塊文件中特定位置(一個(gè)自定義的已存在的section段)寫入加密串以及與服務(wù)器通信的ip端口組合字符串;
50、8.?重新調(diào)整cli-a文件偏移數(shù)據(jù)以及內(nèi)存布局;
51、9.?更新cli-a的elf文件頭數(shù)據(jù);
52、10.提供給用戶下載,保證cli僅能運(yùn)行于特定機(jī)器與特定服務(wù)器通信。
53、作為優(yōu)選,進(jìn)一步的,srv與cli之間的通訊使用基于國密tls的通信認(rèn)證加密機(jī)制。
54、基于國密tls的通信認(rèn)證加密機(jī)制用于防止傳輸過程中數(shù)據(jù)泄漏風(fēng)險(xiǎn)以及cli非法使用,其認(rèn)證傳輸流程如下:
55、1.?cli運(yùn)行時(shí)從模塊文件section段加載經(jīng)過加密的cpu序列號信息以及服務(wù)器ip端口信息;
56、2.?cli讀取宿主pc的cpu序列號;
57、3.?cli使用國密tls連接服務(wù)器ip端口;
58、4.?連接成功后將當(dāng)前pc的cpu序列號以及提取的cpu加密序列號作為負(fù)載發(fā)送服務(wù)器;
59、5.?srv獲取cli的認(rèn)證數(shù)據(jù),包括加密串以及明文cpu序列號;
60、6.?srv使用明文cpu序列號與srv所在設(shè)備的cpu序列號拼接;
61、7.?srv使用sm2解密cli的加密串并與拼接串對比;
62、8.?如果一致則認(rèn)為合法;否則非法并中斷連接;
63、9.?cli與srv開始正常文件傳輸。
64、另外,本發(fā)明還提供審計(jì)功能,用于記錄歷史注冊信息以及cli模塊的使用連接記錄,提供cli的非法安裝使用以及歷史的文件上傳下載記錄;同時(shí)提供記錄信息外發(fā)能力,通過配置可以自動(dòng)的、及時(shí)的將記錄發(fā)往目標(biāo)設(shè)備供其審計(jì)處理。
65、本發(fā)明的有益效果:
66、本發(fā)明的技術(shù)難點(diǎn)在于linux系統(tǒng)中使用驅(qū)動(dòng)技術(shù)實(shí)現(xiàn)磁盤扇區(qū)控制、自我保護(hù)功能以及確保文件傳輸中數(shù)據(jù)安全的實(shí)現(xiàn)方案,以達(dá)到設(shè)備端文件不可見、入侵者無法破壞、惡意進(jìn)程無法讀取的同時(shí),即使傳輸過程中數(shù)據(jù)被捕獲也無法獲取原始文件的目的,同時(shí)由于本方案使用inlinehook,內(nèi)核態(tài)磁盤直寫,可以實(shí)現(xiàn)完全隱藏、磁盤級控制,即使工具也無法發(fā)現(xiàn),且其實(shí)現(xiàn)為指針級跳轉(zhuǎn),幾乎沒有性能開銷。
67、本發(fā)明不僅解決了敏感文件在傳輸過程中可能的泄密威脅,還解決了因?yàn)榉欠ㄈ肭謱?dǎo)致的敏感文件數(shù)據(jù)泄漏,同時(shí)避免了文件加密保護(hù)模式下由于i/o大幅增加以及加密導(dǎo)致的cpu消耗造成的系統(tǒng)負(fù)載升高問題。