一種通用文件系統的操作獲取記錄的方法及系統的制作方法
【專利摘要】本發明涉及一種通用文件系統的操作獲取記錄的方法,包括以下步驟:1.為文件操作截獲模塊與外部文件系統建立連接;2.判斷是否是首次連接,如果是,執行步驟3;否則,執行步驟4;3.對不存在對應通信設備的空閑設備號進行創建通信設備,并對創建的通信設備與空閑設備號創建連接;4.接收并向文件操作截獲模塊發送截獲指令信息;5.按照截獲指令信息截獲操作信息;6.將截獲的操作信息發送到通信設備,將接收到的文件的操作信息發送到用戶態操作記錄模塊;7.將處理后的操作信息按照不同類型寫入存儲空間;8.斷開連接,完成卸載。本發明從文件系統級別掌握用戶操作的特點,便于進一步的基于用戶行為的數據分析和文件系統的特性改進等。
【專利說明】一種通用文件系統的操作獲取記錄的方法及系統
【技術領域】
[0001]本發明涉及一種通用文件系統的操作獲取記錄的方法及系統。
【背景技術】
[0002]Linux已經成為信息安全領域及企業級應用和開發的首選平臺之一,越來越多的系統依賴于穩定和日臻流行的Linux平臺進行部署。而Linux的開源特性也導致了該平臺上眾多符合不同需求,有著不同特性的各種文件系統層出不窮,而不同的系統級應用也依賴于特定的文件系統發揮著自己的優勢。
[0003]獲取文件系統內部具體行為,了解熱點和私有數據,不僅對上層應用的優化有一定的指導意義,同時對用戶的使用特性分析,對上層應用的行為跟蹤,對文件系統性能優化都具有重大意義。而不同文件系統的在實現上的不同和商業文件系統接口上的隱蔽,給獲取文件系統內部的具體行為造成了極大的困難。
[0004]面對不同的文件系統,Linux在提供了對眾多文件系統的統一抽象VFS (VirtualFile System Switch)。通過VFS抽象層,符合VFS接口的文件系統便可以在Linux平臺上得以使用。故從VFS層入手使得獲取文件系統內部具體行為成為可能。而Linux文件操作截獲模塊化加載機制LKM (loadable kernel module),使得這一方法在實現上更加簡化和快捷。
[0005]尚未發現國內有相關技術解決相關問題。
【發明內容】
[0006]本發明所要解決的技術問題是,針對現有技術的不足,提供了一種解決了獲取文件系統操作的問題的基于Linux的通用文件系統操作獲取記錄的方法。
[0007]本發明解決上述技術問題的技術方案如下:一種通用文件系統的操作獲取記錄的方法,具體包括以下步驟:
[0008]步驟1:安裝卸載模塊為文件操作截獲模塊與外部文件系統建立連接;
[0009]步驟2:判斷是否文件操作截獲模塊是否是與外部文件系統首次連接,如果是,執行步驟3;否則,執行步驟4;
[0010]步驟3:文件操作截獲模塊對不存在對應通信設備的空閑設備號進行創建通信設備,并對創建的通信設備與空閑設備號創建連接;
[0011]步驟4:用戶態設備操作模塊接收用戶的輸入的截獲指令,并向文件操作截獲模塊發送截獲指令信息;
[0012]步驟5:文件操作截獲模塊按照所述截獲指令信息從外部文件系統截獲文件的操作信息;
[0013]步驟6:文件操作截獲模塊將截獲的文件的操作信息發送到通信設備,通信設備將接收到的文件的操作信息發送到用戶態操作記錄模塊;
[0014]步驟7:用戶態操作記錄模塊將所述操作信息進行處理,并將處理后的操作信息按照不同類型寫入存儲空間;
[0015]步驟8:文件操作截獲模塊斷開空閑設備號與通信設備的連接,安裝卸載模塊斷開文件操作截獲模塊與外部文件系統的連接,完成卸載。
[0016]本發明的有益效果是:本發明從文件系統級別掌握用戶操作的特點,便于進一步的基于用戶行為的數據分析和文件系統的特性改進等;提供一種基于Linux的通用文件系統操作獲取和記錄方法,透明部署到不同的文件系統上,有效獲取不同文件系統上內部的操作,避免了因文件系統差異性造成的開發維護成本,簡化了文件系統行為的數據儲備流程。
[0017]在上述技術方案的基礎上,本發明還可以做如下改進。
[0018]進一步,所述文件操作截獲模塊獲取的外部文件系統的操作信息包括外部文件系統的掛載點路徑和需要記錄的操作類型信息。
[0019]進一步,所述步驟5具體包括以下步驟:
[0020]步驟5.1:文件操作截獲模塊判斷是否處理用戶態設備操作模塊發送的截獲指令信息,如果處理,執行步驟5.2 ;否則,執行步驟6 ;
[0021]步驟5.2:文件操作截獲模塊判斷是否執行截獲指令信息獲取文件系統句柄,如果是,執行下一步,否則,執行步驟5.5 ;
[0022]步驟5.4:打開掛載點獲取VFS虛擬文件系統相關的數據結構,保存并修改VFS虛擬文件系統相關的數據結構,并保存當前狀態被和修改數據結構的原始狀態,打開關閉的掛載點,返回執行步驟5.1;
[0023]步驟5.5:判斷是否執行截獲指令信息獲取指定操作的數據,如果是,執行下一步;否則,執行步驟5.8;
[0024]步驟5.6:由VFS虛擬文件系統觸發對應的操作,獲取該操作的文件系統及數據;
[0025]步驟5.7:過濾獲取的數據中所需的部分數據,并得到的部分數據復制到用戶空間中,調用底層文件系統的對應操作,返回執行步驟5.1 ;
[0026]步驟5.8:判斷是否執行操作請求恢復文件系統句柄,如果是,執行下一步,否則,執行步驟5.1 ;
[0027]步驟5.9:打開掛載點獲取VFS虛擬文件系統相關的數據結構,讀取保存在VFS虛擬文件系統相關的數據結構,并恢復到原始狀態;關閉掛載點,返回執行步驟5.1。
[0028]進一步,步驟6具體包括以下的步驟:
[0029]步驟6.1:文件操作截獲模塊以讀寫方式打開通信設備;
[0030]步驟6.2:文件操作截獲模塊發送掛載點路徑和操作類型信息發送到通信設備;
[0031]步驟6.3:通信設備將接收到的文件的操作信息發送到用戶態操作記錄模塊。
[0032]進一步,所述步驟7具體包括以下步驟:
[0033]步驟7.1:用戶態操作記錄模塊進行初始化;
[0034]步驟7.2:用戶態操作記錄模塊判斷是否接收用戶態設備操作模塊發送的文件系統信息,如果是,執行下一步;否則,執行步驟8 ;
[0035]步驟7.3:接收用戶態設備操作模塊發送的文件系統信息,對文件系統信息進行預處理;
[0036]步驟7.4:將預處理后的信息按照不同類型寫入存儲空間。[0037]進一步,所述步驟7.3中所述預處理包括數據分類、序列化和信息抽取。
[0038]本發明解決上述技術問題的技術方案如下:一種通用文件系統的操作獲取記錄的系統,包括:安裝卸載模塊、文件操作截獲模塊、通信設備、用戶態設備操作模塊和用戶態操作記錄模塊;
[0039]所述安裝卸載模塊用于為文件操作截獲模塊與外部文件系統建立連接和斷開連接,并斷開空閑設備號與通信設備的連接;
[0040]所述文件操作截獲模塊用于獲取不存在對應通信設備的空閑設備號,并將空閑設備號和與其對應關聯的通信設備創建連接;并且文件操作截獲模塊用于按照所述截獲指令信息從外部文件系統截獲文件的操作信息;并將截獲的文件的操作信息發送到通信設備;
[0041]所述用戶態設備操作模塊用于接收用戶的輸入的截獲指令,并向文件操作截獲模塊發送截獲指令信息;
[0042]所述通信設備將接收到的文件的操作信息發送到用戶態操作記錄模塊;
[0043]所述用戶態操作記錄模塊用于將所述操作信息進行處理,并將處理后的操作信息按照不同類型寫入存儲空間。
[0044]本發明的有益效果是:本發明從文件系統級別掌握用戶操作的特點,便于進一步的基于用戶行為的數據分析和文件系統的特性改進等;提供一種基于Linux的通用文件系統操作獲取和記錄系統,透明部署到不同的文件系統上,有效獲取不同文件系統上內部的操作,避免了因文件系統差異性造成的開發維護成本,簡化了文件系統行為的數據儲備流程。
[0045]在上述技術方案的基礎上,本發明還可以做如下改進。
[0046]進一步,所述安裝卸載模塊包括權限判斷模塊、屬組模塊和連接模塊;
[0047]所述權限判斷模塊用于檢測用戶是否具有操作安裝卸載模塊的權限;
[0048]所述屬組模塊用于獲取用戶信息,作為通信設備的屬組;
[0049]所述連接模塊用于與文件操作截獲模塊建立連接。
[0050]進一步,所述文件操作截獲模塊包括開啟通信設備模塊、轉發模塊、獲取操作模塊和發送模塊;
[0051]所述開啟通信設備模塊用于接收通信設備獲取的文件系統的掛載點路徑和要記錄的操作類型,將所述操作類型記錄到操作類型集合中,并以讀寫方式打開通信設備;
[0052]所述轉發模塊用于發送掛載點路徑和操作類型集合到通信設備;
[0053]所述獲取操作模塊用于獲取特定操作類型集合中的操作,并發送操作請求到通信設備,接收通信設備反饋的指定操作類型集合相關的操作信息;
[0054]所述發送模塊用于將獲取的操作信息發送到用戶態操作記錄模塊。
[0055]進一步,所述用戶態操作記錄模塊包括初始化模塊、接收處理模塊和存儲模塊;
[0056]所述初始化模塊用于對用戶態操作記錄模塊進行初始化;
[0057]所述接收處理模塊用于接收用戶態設備操作模塊發送的文件系統信息,對文件系統信息進行預處理;
[0058]所述存儲模塊用于將預處理后的信息按照不同類型寫入存儲空間。
[0059]進一步,所述接收處理模塊中所述預處理包括數據分類、序列化和信息抽取。
[0060]所述安裝卸載模塊完成文件操作截獲模塊加載操作時,需要加載特定文件操作截獲模塊及根據特定主次設備號創建設備節點;卸載文件操作截獲模塊時,需要移除加載的文件操作截獲模塊,刪除創建的設備節點;
[0061]所述用戶態設備操作模塊消除了在內核態進行控制的局限性,增強了通信雙方的功能;首先打開通信設備進行監聽,然后根據需求發起請求,如獲取文件系統句柄,獲取查詢創建刪除等操作,獲取查詢、創建或刪除等操作的操作信息等,最后接收應答獲取所需信息;
[0062]所述文件操作截獲模塊用于根據用戶態設備操作模塊設置的操作請求,在內核態進行對應文件的操作截獲,獲得VFS虛擬文件系統的數據結構,獲取經由VFS虛擬文件系統的操作數據;并響應控制的應答操作,首先注冊安裝的設備,接收用戶態的控制請求,根據不同的控制請求進行不同的邏輯和操作,如獲取文件系統句柄,獲取查詢創建刪除等操作,獲取查詢創建刪除等操作的操作內容等,然后將相關數據傳遞到用戶態空間;
[0063]所述用戶態操作記錄模塊通過在用戶態對文件系統行為進行持久化操作,可以將截獲的操作存儲到文件、數據庫等存儲系統中;充分利用成熟的存儲接口和存儲方式;記錄操作,首先是獲取用戶態控制模塊得到的內核態傳遞的信息,根據控制模塊提供的類型特征,將信息保存到后續存儲中,如以流的方式寫入文件或以記錄的方式保存到數據庫。
【專利附圖】
【附圖說明】
[0064]圖1為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的方法流程圖;
[0065]圖2為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的方法中通信設備安裝的操作流程圖;
[0066]圖3為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的方法中用戶態控制通信設備的操作流程圖;
[0067]圖4為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的方法中內核態設備響應控制的操作流程圖;
[0068]圖5為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的方法中用戶態記錄文件系統行為的操作流程圖;
[0069]圖6為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的方法中通信設備卸載的操作流程圖;
[0070]圖7為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的系統結構框圖;
[0071]圖8為本發明具體實施例1所述的文件操作截獲模塊的結構框圖。
[0072]附圖中,各標號所代表的部件列表如下:
[0073]1、安裝卸載模塊,2、用戶態設備操作模塊,3、文件操作截獲模塊,4用戶態操作記錄模塊,5、通信設備,11、權限判斷模塊,12、屬組模塊,13、連接模塊,31、開啟通信設備模塊,32、轉發模塊,33、獲取操作模塊,34、發送模塊,41、初始化模塊,42、接收處理模塊,43、存儲模塊。
【具體實施方式】[0074]以下結合附圖對本發明的原理和特征進行描述,所舉實例只用于解釋本發明,并非用于限定本發明的范圍。
[0075]如圖1所示,為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的方法,具體包括以下步驟:
[0076]步驟1:安裝卸載模塊為文件操作截獲模塊與外部文件系統建立連接;
[0077]步驟2:判斷是否文件操作截獲模塊是否是與外部文件系統首次連接,如果是,執行步驟3;否則,執行步驟4;
[0078]步驟3:文件操作截獲模塊對不存在對應通信設備的空閑設備號進行創建通信設備,并對創建的通信設備與空閑設備號創建連接;
[0079]步驟4:用戶態設備操作模塊接收用戶的輸入的截獲指令,并向文件操作截獲模塊發送截獲指令信息;
[0080]步驟5:文件操作截獲模塊按照所述截獲指令信息從外部文件系統截獲文件的操作信息;
[0081]步驟6:文件操作截獲模塊將截獲的文件的操作信息發送到通信設備,通信設備將接收到的文件的操作信息發送到用戶態操作記錄模塊;
[0082]步驟7:用戶態操作記錄模塊將所述操作信息進行處理,并將處理后的操作信息按照不同類型寫入存儲空間;
[0083]步驟8:文件操作截獲模塊斷開空閑設備號與通信設備的連接,安裝卸載模塊斷開文件操作截獲模塊與外部文件系統的連接,完成卸載。
[0084]如圖2所示,為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的方法中通信設備安裝的操作流程圖,具體步驟如下:
[0085]步驟201:檢查用戶權限是否可用,因為創建設備及加載驅動具有一定風險,如若權限不夠,直接退出,權限正常執行步驟202 ;
[0086]步驟202:獲取特定用戶組信息,作為設備的屬組;
[0087]步驟203:加載指定文件操作截獲模塊到內核中;
[0088]步驟204:判斷加載文件操作截獲模塊是否成功,如若不成功,直接退出,否則執行步驟205 ;
[0089]步驟205:獲取空閑主設備號,可通過過濾proc文件系統下devices文件獲得;
[0090]步驟206:判斷指定的設備號設備是否存在,存在則直接退出,否則執行步驟207 ;
[0091]步驟207:根據主次設備號創建設備;
[0092]步驟208:賦予新創建的設備正確的用戶組和權限,然后完成了通信設備的安裝,正常退出。
[0093]如圖3所示,為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的方法中用戶態控制通信設備的操作流程圖,具體步驟如下:
[0094]步驟301:獲取目標文件系統的掛載點路徑和要記錄的操作類型,操作類型可以為對軟硬鏈接、文件、目錄的創建、刪除、內容訪問、元數據訪問,重命名等;
[0095]步驟302:以讀寫方式打開通信設備;
[0096]步驟303:判斷通信設備打開是否成功,成功執行步驟304,否則執行步驟309 ;
[0097]步驟304:發送掛載點路徑和操作類型集合給通信設備;[0098]步驟305:判斷是否停止獲取文件系統行為,繼續獲取執行步驟306,否則執行步驟 309 ;
[0099]步驟306:獲取指定操作類型集合中的操作;
[0100]步驟307:接收指定操作類型集合相關的操作和數據,即把內核態的數據接收到用戶態;
[0101]步驟308:將文件系統行為信息發送給記錄模塊,繼續執行步驟305 ;
[0102]步驟309:發送結束命令給通訊設備并關閉該設備。
[0103]如圖4所示,為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的方法中內核態設備響應控制的操作流程圖,步驟401、步驟402、步驟403為加載內核時自動執行。具體步驟如下:
[0104]步驟401:初始化互斥訪問資源;
[0105]步驟402:分配主次設備號,Linux提供了動態靜態分配設備號的兩種策略;
[0106]步驟403:初始化字符設備,并注冊到內核中;
[0107]步驟404:判斷是否處理用戶態發送的控制信息,如不處理則直接退出,否則執行步驟405 ;
[0108]步驟405:判斷是否執行命令獲取文件系統句柄,如不執行該命令執行步驟409,否則執行步驟406 ;
[0109]步驟406:打開掛載點獲取VFS相關的數據結構,包括file對象,file_operations 對象和 inode_operations 對象等;
[0110]步驟407:保存并修改VFS相關的數據結構,具體表現為把要獲取的操作類型對應的函數指針替換到對應的inode_operations對象中;
[0111]步驟408:保存被修改數據結構的原始狀態和當前狀態,并打開的關閉掛載點,執行該步驟完畢后執行步驟404 ;
[0112]步驟409:判斷是否執行命令獲取指定操作的數據,如不執行該命令執行步驟414,否則執行步驟410 ;
[0113]步驟410:由VFS觸發對應的操作;
[0114]步驟411:獲取該操作的文件系統級數據;
[0115]步驟412:過濾上述數據中所需的部分,并復制到用戶空間;
[0116]步驟413:調用底層文件系統的對應操作,執行該步驟完畢后執行步驟404 ;
[0117]步驟414:判斷是否執行命令恢復文件系統句柄,如不執行該命令執行步驟404,否則執行步驟415 ;
[0118]步驟415:打開掛載點獲取VFS相關的數據結構;
[0119]步驟416:讀取保存的VFS相關的數據結構,并恢復到原始狀態;
[0120]步驟417:關閉掛載點,執行完畢后執行步驟404。
[0121]如圖5所示,為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的方法中用戶態記錄文件系統行為的操作流程圖,具體步驟如下:
[0122]步驟501:初始化操作記錄模塊,如打開持久化文件或初始化持久化存儲的接口 ;
[0123]步驟502:判斷是否接收用戶態控制通信模塊發送的文件系統行為,不接收則直接退出,否則執行步驟503;[0124]步驟503:接收用戶態控制通信設備模塊發送的文件系統行為;
[0125]步驟504:對文件系統行為進行預處理,如進行數據分類,序列化,信息抽取等;
[0126]步驟505:將上述步驟產生的數據寫入持久化文件,完成該步驟后執行步驟502。
[0127]如圖6所示,為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的方法中通信設備卸載的操作流程圖,具體步驟如下:
[0128]步驟601:檢查當前用戶權限是否可用,如權限不夠則直接退出,否則執行步驟602 ;
[0129]步驟602:刪除指定文件操作截獲模塊;
[0130]步驟603:判斷文件操作截獲模塊卸載是否成功,如不成功則直接退出,否則執行步驟604 ;
[0131]步驟604:刪除指定設備,正常退出。
[0132]如圖7所示,為本發明具體實施例1所述的一種通用文件系統的操作獲取記錄的系統,包括:安裝卸載模塊1、文件操作截獲模塊3、通信設備5、用戶態設備操作模塊2和用戶態操作記錄模塊4 ;
[0133]所述安裝卸載模塊I用于為文件操作截獲模塊3與外部文件系統建立連接和斷開連接,并斷開空閑設備號與通信設備的連接;;
[0134]所述文件操作截獲模塊3用于獲取不存在對應通信設備的空閑設備號,并將空閑設備號和與其對應關聯的通信設備5創建連接;并且文件操作截獲模塊3用于按照所述截獲指令信息從外部文件系統截獲文件的操作信息;并將截獲的文件的操作信息發送到通信設備5 ;
[0135]所述用戶態設備操作模塊2用于接收用戶的輸入的截獲指令,并向文件操作截獲模塊3發送截獲指令信息;
[0136]所述通信設備5將接收到的文件的操作信息發送到用戶態操作記錄模塊4 ;
[0137]所述用戶態操作記錄模塊4用于將所述操作信息進行處理,并將處理后的操作信息按照不同類型寫入存儲空間。
[0138]所述安裝卸載模塊I包括權限判斷模塊11、屬組模塊12和連接模塊13 ;
[0139]所述權限判斷模塊11用于檢測用戶是否具有操作安裝卸載模塊的權限;
[0140]所述屬組模塊12用于獲取用戶信息,作為通信設備的屬組;
[0141]所述連接模塊13用于與文件操作截獲模塊3建立連接。
[0142]所述文件操作截獲模塊3包括開啟通信設備模塊31、轉發模塊32、獲取操作模塊33和發送模塊34 ;
[0143]所述開啟通信設備模塊31用于接收通信設備5獲取的文件系統的掛載點路徑和要記錄的操作類型,將所述操作類型記錄到操作類型集合中,并以讀寫方式打開通信設備5 ;
[0144]所述轉發模塊32用于發送掛載點路徑和操作類型集合到通信設備5 ;
[0145]所述獲取操作模塊33用于獲取特定操作類型集合中的操作,并發送操作請求到通信設備5,接收通信設備5反饋的指定操作類型集合相關的操作信息;
[0146]所述發送模塊34用于將獲取的操作信息發送到用戶態操作記錄模塊4。
[0147]所述用戶態操作記錄模塊4包括初始化模塊41、接收處理模塊42和存儲模塊43 ;[0148]所述初始化模塊41用于對用戶態操作記錄模塊進行初始化;
[0149]所述接收處理模塊42用于接收用戶態設備操作模塊2發送的文件系統信息,對文件系統信息進行預處理;
[0150]所述存儲模塊43用于將預處理后的信息按照不同類型寫入存儲空間。
[0151]所述接收處理模塊42中所述預處理包括數據分類、序列化和信息抽取。
[0152]所述安裝卸載模塊I完成文件操作截獲模塊加載操作時,需要加載特定文件操作截獲模塊及根據特定主次設備號創建設備節點;卸載文件操作截獲模塊時,需要移除加載的文件操作截獲模塊,刪除創建的設備節點;
[0153]所述用戶態設備操作模塊2消除了在內核態進行控制的局限性,增強了通信雙方的功能;首先打開通信設備進行監聽,然后根據需求發起請求,如獲取文件系統句柄,獲取查詢創建刪除等操作,獲取查詢、創建或刪除等操作的操作信息等,最后接收應答獲取所需信息;
[0154]所述文件操作截獲模塊3用于根據用戶態設備操作模塊設置的操作請求,在內核態進行對應文件的操作截獲,獲得VFS虛擬文件系統的數據結構,獲取經由VFS虛擬文件系統的操作數據;并響應控制的應答操作,首先注冊安裝的設備,接收用戶態的控制請求,根據不同的控制請求進行不同的邏輯和操作,如獲取文件系統句柄,獲取查詢創建刪除等操作,獲取查詢創建刪除等操作的操作內容等,然后將相關數據傳遞到用戶態空間;
[0155]所述用戶態操作記錄模塊4通過在用戶態對文件系統行為進行持久化操作,可以將截獲的操作存儲到文件、數據庫等存儲系統中;充分利用成熟的存儲接口和存儲方式;記錄操作,首先是獲取用戶態控制模塊得到的內核態傳遞的信息,根據控制模塊提供的類型特征,將信息保存到后續存儲中,如以流的方式寫入文件或以記錄的方式保存到數據庫。
[0156]本系統的實現,依賴于Linux的內核版本,不同的Linux內核版本上對于設備的安裝卸載和文件操作截獲模塊I的加載刪除及VFS層相關的API有一定區別;對于設備安裝卸載,使用Linux的命令行工具創建刪除設備和文件操作截獲模塊3可以快速有效得完成該模塊的功能。由于Unix/Linux哲學中普遍存在的“一切皆文件”之思想,在用戶態同樣可以使用操作文件的系統調用操作設備。文件操作截獲模塊3需要實現設備相關的驅動,以文件操作截獲模塊3的方式宿主于內核態,響應用戶態的操作指令,拷貝指令相關的內核信息。用戶態對文件系統操作進行記錄,一方面依賴于持久化存儲的讀寫接口,將用戶態設備操作模塊2獲得的數據進行持久化,一方面依賴于對外提供的視圖,如不同文件系統上的記錄對比,不同操作的頻度統計,不同路徑的熱度統計等。
[0157]具體的,本發明還包括如下操作:
[0158]通信設備安裝及卸載的操作;
[0159]用戶態控制通信設備的操作;
[0160]內核態設備響應控制的應答操作;
[0161]用戶態記錄文件系統行為的操作。
[0162]以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種通用文件系統的操作獲取記錄的方法,其特征在于,具體包括以下步驟: 步驟1:安裝卸載模塊為文件操作截獲模塊與外部文件系統建立連接; 步驟2:判斷是否文件操作截獲模塊是否是與外部文件系統首次連接,如果是,執行步驟3;否則,執行步驟4; 步驟3:文件操作截獲模塊對不存在對應通信設備的空閑設備號進行創建通信設備,并對創建的通信設備與空閑設備號創建連接; 步驟4:用戶態設備操作模塊接收用戶的輸入的截獲指令,并向文件操作截獲模塊發送截獲指令信息; 步驟5:文件操作截獲模塊按照所述截獲指令信息從外部文件系統截獲文件的操作信息; 步驟6:文件操作截獲模塊將截獲的文件的操作信息發送到通信設備,通信設備將接收到的文件的操作信息發送到用戶態操作記錄模塊; 步驟7:用戶態操作記錄模塊將所述操作信息進行處理,并將處理后的操作信息按照不同類型寫入存儲空間; 步驟8:文件操作截獲模塊斷開空閑設備號與通信設備的連接,安裝卸載模塊斷開文件操作截獲模塊與外部文件系統的連接,完成卸載。
2.根據權利要求1所述的一種通用文件系統的操作獲取記錄的方法,其特征在于,文件操作截獲模塊獲取的外部文件系統的操作信息包括外部文件系統的掛載點路徑和需要記錄的操作類型信息。
3.根據權利要求2所述的一種通用文件系統的操作獲取記錄的方法,其特征在于,所述步驟5具體包括以下步驟: 步驟5.1:文件操作截獲模塊判斷是否處理用戶態設備操作模塊發送的截獲指令信息,如果處理,執行步驟5.2 ;否則,執行步驟6 ; 步驟5.2:文件操作截獲模塊判斷是否執行截獲指令信息獲取文件系統句柄,如果是,執行下一步,否則,執行步驟5.5 ; 步驟5.4:打開掛載點獲取VFS虛擬文件系統相關的數據結構,保存并修改VFS虛擬文件系統相關的數據結構,并保存當前狀態被和修改數據結構的原始狀態,打開關閉的掛載點,返回執行步驟5.1; 步驟5.5:判斷是否執行截獲指令信息獲取指定操作的數據,如果是,執行下一步;否貝U,執行步驟5.8 ; 步驟5.6:由VFS虛擬文件系統觸發對應的操作,獲取該操作的文件系統及數據; 步驟5.7:過濾獲取的數據中所需的部分數據,并得到的部分數據復制到用戶空間中,調用底層文件系統的對應操作,返回執行步驟5.1 ; 步驟5.8:判斷是否執行操作請求恢復文件系統句柄,如果是,執行下一步,否則,執行步驟5.1 ; 步驟5.9:打開掛載點獲取VFS虛擬文件系統相關的數據結構,讀取保存在VFS虛擬文件系統相關的數據結構,并恢復到原始狀態;關閉掛載點,返回執行步驟5.1。
4.根據權利要求1-3任一項所述的一種通用文件系統的操作獲取記錄的方法,其特征在于,步驟6具體包括以下的步驟:步驟6.1:文件操作截獲模塊以讀寫方式打開通信設備; 步驟6.2:文件操作截獲模塊發送掛載點路徑和操作類型信息發送到通信設備; 步驟6.3:通信設備將接收到的文件的操作信息發送到用戶態操作記錄模塊。
5.根據權利要求4所述的一種通用文件系統的操作獲取記錄的方法,其特征在于,所述步驟7具體包括以下步驟: 步驟7.1:用戶態操作記錄模塊進行初始化; 步驟7.2:用戶態操作記錄模塊判斷是否接收用戶態設備操作模塊發送的文件系統信息,如果是,執行下一步;否則,執行步驟8 ; 步驟7.3:接收用戶態設備操作模塊發送的文件系統信息,對文件系統信息進行預處理; 步驟7.4:將預處理后的信息按照不同類型寫入存儲空間。
6.根據權利要求5所述的一種通用文件系統的操作獲取記錄的方法,其特征在于,所述步驟7.3中所述預處理包括數據分類、序列化和信息抽取。
7.一種通用文件系統的操作獲取記錄的系統,包括:安裝卸載模塊、文件操作截獲模塊、通信設備、用戶態設備操作模塊和用戶態操作記錄模塊; 所述安裝卸載模塊用于為文件操作截獲模塊與外部文件系統建立連接和斷開連接,并斷開空閑設備號與通信設 備的連接; 所述文件操作截獲模塊用于獲取不存在對應通信設備的空閑設備號,并將空閑設備號和與其對應關聯的通信設備創建連接;并且文件操作截獲模塊用于按照所述截獲指令信息從外部文件系統截獲文件的操作信息;并將截獲的文件的操作信息發送到通信設備; 所述用戶態設備操作模塊用于接收用戶的輸入的截獲指令,并向文件操作截獲模塊發送截獲指令信息; 所述通信設備將接收到的文件的操作信息發送到用戶態操作記錄模塊; 所述用戶態操作記錄模塊用于將所述操作信息進行處理,并將處理后的操作信息按照不同類型寫入存儲空間。
8.根據權利要求7所述的一種通用文件系統的操作獲取記錄的系統,其特征在于,所述安裝卸載模塊包括權限判斷模塊、屬組模塊和連接模塊; 所述權限判斷模塊用于檢測用戶是否具有操作安裝卸載模塊的權限; 所述屬組模塊用于獲取用戶信息,作為通信設備的屬組; 所述連接模塊用于與文件操作截獲模塊建立連接。
9.根據權利要求8所述的一種通用文件系統的操作獲取記錄的系統,其特征在于,所述文件操作截獲模塊包括開啟通信設備模塊、轉發模塊、獲取操作模塊和發送模塊; 所述開啟通信設備模塊用于接收通信設備獲取的文件系統的掛載點路徑和要記錄的操作類型,將所述操作類型記錄到操作類型集合中,并以讀寫方式打開通信設備; 所述轉發模塊用于發送掛載點路徑和操作類型集合到通信設備; 所述獲取操作模塊用于獲取特定操作類型集合中的操作,并發送操作請求到通信設備,接收通信設備反饋的指定操作類型集合相關的操作信息; 所述發送模塊用于將獲取的操作信息通過通信設備發送到用戶態操作記錄模塊。
10.根據權利要求9所述的一種通用文件系統的操作獲取記錄的系統,其特征在于,所述用戶態操作記錄模塊包括初始化模塊、接收處理模塊和存儲模塊; 所述初始化模塊用于對用戶態操作記錄模塊進行初始化; 所述接收處理模塊用于接收用戶態設備操作模塊發送的文件系統信息,對文件系統信息進行預處理; 所述存儲模塊用于將預處理后的信息按照不同類型寫入存儲空間。
【文檔編號】H04L29/06GK103809981SQ201410066581
【公開日】2014年5月21日 申請日期:2014年2月26日 優先權日:2014年2月26日
【發明者】周曉陽, 王樹鵬, 云曉春, 張永錚, 吳廣君, 王海平 申請人:中國科學院信息工程研究所