一種文件篡改的檢測方法及裝置的制造方法
【專利摘要】本發(fā)明提供了一種文件篡改的檢測方法及裝置,方法包括:在系統(tǒng)內(nèi)核中設置至少一個檢測點,并在每一個檢測點中插入鉤子函數(shù);利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文;利用編碼規(guī)則對各個二進制密文分別進行編碼,并存儲各個編碼信息;在系統(tǒng)內(nèi)核運行到目標檢測點時,利用鉤子函數(shù)對目標檢測點處的目標內(nèi)核對象的運行請求進行攔截;利用二進制加密方式和編碼規(guī)則獲取目標內(nèi)核對象所對應的當前編碼信息;比較目標內(nèi)核對象的當前編碼信息與存儲的編碼信息,在相同時,允許目標內(nèi)核對象的運行請求。根據(jù)上述方案,可以實現(xiàn)對內(nèi)核對象是否被篡改的檢測,提高系統(tǒng)內(nèi)核的安全性。
【專利說明】
一種文件篡改的檢測方法及裝置
技術領域
[0001]本發(fā)明涉及安全技術領域,特別涉及一種文件篡改的檢測方法及裝置。
【背景技術】
[0002]隨著網(wǎng)絡技術的迅速發(fā)展,衍生出了很多惡意攻擊他人服務器的黑客,為了能夠保護重要業(yè)務的正常運轉或重要數(shù)據(jù)不被破壞,目前,在大多監(jiān)控系統(tǒng)中,使用文件的屬性信息對文件進行校驗匹配,以確定文件是否被篡改的,然而,現(xiàn)有技術存在如下缺點:若篡改文件的同時也篡改了文件屬性信息,以使篡改后的文件屬性信息與篡改后的文件相對應,則會導致監(jiān)控系統(tǒng)無法監(jiān)控到文件是否被篡改。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實施例提供了一種文件篡改的檢測方法及裝置,以實現(xiàn)對篡改信息的檢測。
[0004]第一方面,本發(fā)明實施例提供了一種文件篡改的檢測方法,包括:
[0005]在系統(tǒng)內(nèi)核中設置至少一個檢測點,并在每一個檢測點中插入鉤子函數(shù);
[0006]利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文;利用編碼規(guī)則對各個二進制密文分別進行編碼,并存儲各個編碼信息;
[0007]在系統(tǒng)內(nèi)核運行到目標檢測點時,利用鉤子函數(shù)對所述目標檢測點處的目標內(nèi)核對象的運行請求進行攔截;
[0008]利用所述二進制加密方式和所述編碼規(guī)則獲取所述目標內(nèi)核對象所對應的當前編碼信息;比較所述目標內(nèi)核對象的當前編碼信息與存儲的編碼信息,在相同時,確定所述目標內(nèi)核對象未被篡改,允許所述目標內(nèi)核對象的運行請求。
[0009]優(yōu)選地,所述利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文,包括:
[0010]針對每一個當前內(nèi)核對象執(zhí)行如下操作:
[0011]獲取當前內(nèi)核對象所對應的目標字符串;
[0012]計算所述目標字符串的MD5值,得到十六進制密文;
[0013]根據(jù)所述十六進制密文的位數(shù)定義相應個數(shù)的數(shù)組;
[0014]在所述十六進制密文中按第一目標順序依次取兩位字符放置到相應數(shù)組中,每個數(shù)組中包括兩位十六進制字符;
[0015]將每個數(shù)組中所包括的兩位十六進制字符轉換為八位二進制字符,并將所有數(shù)組中轉換后的八位二進制字符按照所述第一目標順序連接起來,得到二進制密文。
[0016]優(yōu)選地,所述利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文,包括:
[0017]針對每一個當前內(nèi)核對象執(zhí)行如下操作:
[0018]獲取當前內(nèi)核對象所對應的多個字符串,所述多個字符串之間按照第二目標順序排列;
[0019]將每一個字符串映射為ACSII編碼中的八位二進制字符;
[0020]將所有字符串分別對應的八位二進制字符按照所述第二目標順序連接在一起,組成二進制密文。
[0021 ]優(yōu)選地,進一步包括:預先獲取編碼轉化表;
[0022]所述利用編碼規(guī)則對各個二進制密文分別進行編碼,包括:在所述二進制密文中按從高位到低位的順序依次取連續(xù)的六位二進制字符;將取的六位二進制字符的高位補0,生成相應的八位二進制字符;根據(jù)所述編碼轉化表,將生成的每一個八位二進制字符轉化為相應的編碼。
[0023]優(yōu)選地,將下述內(nèi)核對象設置為檢測點:任務、程序、文件系統(tǒng)、Socket套接字、管道、文件、網(wǎng)絡緩沖區(qū)、網(wǎng)絡設備、Semaphore信號和消息中的至少一種。
[0024]第二方面,本發(fā)明實施例還提供了一種文件篡改的檢測裝置,包括:
[0025]配置單元,用于在系統(tǒng)內(nèi)核中設置至少一個檢測點,并在每一個檢測點中插入鉤子函數(shù);
[0026]二進制加密單元,用于利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文;
[0027]編碼單元,用于利用編碼規(guī)則對各個二進制密文分別進行編碼,并存儲各個編碼信息;
[0028]攔截單元,用于在系統(tǒng)內(nèi)核運行到目標檢測點時,利用鉤子函數(shù)對所述目標檢測點處的目標內(nèi)核對象的運行請求進行攔截;
[0029]第一獲取單元,用于利用所述二進制加密方式和所述編碼規(guī)則獲取所述目標內(nèi)核對象所對應的當前編碼信息;
[0030]比較單元,用于比較所述目標內(nèi)核對象的當前編碼信息與存儲的編碼信息,在相同時,確定所述目標內(nèi)核對象未被篡改,允許所述目標內(nèi)核對象的運行請求。
[0031]優(yōu)選地,所述二進制加密單元,具體用于針對每一個當前內(nèi)核對象執(zhí)行如下操作:
[0032]獲取當前內(nèi)核對象所對應的目標字符串;
[0033]計算所述目標字符串的MD5值,得到十六進制密文;
[0034]根據(jù)所述十六進制密文的位數(shù)定義相應個數(shù)的數(shù)組;
[0035]在所述十六進制密文中按第一目標順序依次取兩位字符放置到相應數(shù)組中,每個數(shù)組中包括兩位十六進制字符;
[0036]將每個數(shù)組中所包括的兩位十六進制字符轉換為八位二進制字符,并將所有數(shù)組中轉換后的八位二進制字符按照所述第一目標順序連接起來,得到二進制密文。
[0037]優(yōu)選地,所述二進制加密單元,具體用于針對每一個當前內(nèi)核對象執(zhí)行如下操作:
[0038]獲取當前內(nèi)核對象所對應的多個字符串,所述多個字符串之間按照第二目標順序排列;
[0039]將每一個字符串映射為ACSII編碼中的八位二進制字符;
[0040]將所有字符串分別對應的八位二進制字符按照所述第二目標順序連接在一起,組成二進制密文。
[0041 ]優(yōu)選地,進一步包括:第二獲取單元,用于獲取編碼轉化表;
[0042]所述編碼單元,具體用于在所述二進制密文中按從高位到低位的順序依次取連續(xù)的六位二進制字符;將取的六位二進制字符的高位補O,生成相應的八位二進制字符;根據(jù)所述編碼轉化表,將生成的每一個八位二進制字符轉化為相應的編碼。
[0043]本發(fā)明實施例提供了一種文件篡改的檢測方法及裝置,通過鉤子函數(shù)將設置的檢測點處的內(nèi)核對象的運行請求攔截,并利用在計算存儲的每一個內(nèi)核對象對應的編碼信息時使用的二進制加密方式和編碼規(guī)則,計算該攔截的內(nèi)核對象的編碼信息,并與存儲的編碼信息進行比較,只有在比較結果相同時,才表明該內(nèi)核對象未被篡改,通過該二進制加密方式和編碼規(guī)則的雙重計算,可以有效防止黑客對該雙重計算方式的破解,從而可以進一步保證內(nèi)核對象的安全性。
【附圖說明】
[0044]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0045]圖1是本發(fā)明一個實施例提供的一種文件篡改的檢測方法流程圖;
[0046]圖2是本發(fā)明一個實施例提供的另一種文件篡改的檢測方法流程圖;
[0047]圖3是本發(fā)明一個實施例提供的裝置所在設備的硬件架構圖;
[0048]圖4是本發(fā)明一個實施例提供的一種裝置結構示意圖;
[0049]圖5是本發(fā)明一個實施例提供的另一種裝置結構示意圖。
【具體實施方式】
[0050]為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0051]如圖1所示,本發(fā)明實施例提供了一種文件篡改的檢測方法,該方法可以包括以下步驟:
[0052]步驟101:在系統(tǒng)內(nèi)核中設置至少一個檢測點,并在每一個檢測點中插入鉤子函數(shù)。
[0053]步驟102:利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文;利用編碼規(guī)則對各個二進制密文分別進行編碼,并存儲各個編碼?目息。
[0054]步驟103:在系統(tǒng)內(nèi)核運行到目標檢測點時,利用鉤子函數(shù)對所述目標檢測點處的目標內(nèi)核對象的運行請求進行攔截。
[0055]步驟104:利用所述二進制加密方式和所述編碼規(guī)則獲取所述目標內(nèi)核對象所對應的當前編碼信息;比較所述目標內(nèi)核對象的當前編碼信息與存儲的編碼信息,在相同時,確定所述目標內(nèi)核對象未被篡改,允許所述目標內(nèi)核對象的運行請求。
[0056]可見,通過鉤子函數(shù)將設置的檢測點處的內(nèi)核對象的運行請求攔截,并利用在計算存儲的每一個內(nèi)核對象對應的編碼信息時使用的二進制加密方式和編碼規(guī)則,計算該攔截的內(nèi)核對象的編碼信息,并與存儲的編碼信息進行比較,只有在比較結果相同時,才表明該內(nèi)核對象未被篡改,通過該二進制加密方式和編碼規(guī)則的雙重計算,可以有效防止黑客對該雙重計算方式的破解,從而可以進一步保證內(nèi)核對象的安全性。
[0057]為了防止黑客對存儲的加密信息進行破解篡改,需要使用復雜的加密編碼方式生成內(nèi)核對象的加密信息,上述實施例通過利用二進制加密方式首先內(nèi)核對象進行二進制加密,然后在對二進制加密后的二進制密文進行編碼,將得到的編碼信息用于實現(xiàn)對內(nèi)核對象是否被篡改的校驗。
[0058]本發(fā)明實施例中,至少可以利用如下兩種二進制加密方式中的任意一種實現(xiàn)對內(nèi)核對象的二進制加密:
[0059]1、所述利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文,包括:
[0060]針對每一個當前內(nèi)核對象執(zhí)行如下操作:
[0061 ]獲取當前內(nèi)核對象所對應的目標字符串;
[0062]計算所述目標字符串的MD5值,得到十六進制密文;
[0063]根據(jù)所述十六進制密文的位數(shù)定義相應個數(shù)的數(shù)組;
[0064]在所述十六進制密文中按目標順序依次取兩位字符放置到相應數(shù)組中,每個數(shù)組中包括兩位十六進制字符;
[0065]將每個數(shù)組中所包括的兩位十六進制字符轉換為八位二進制字符,并將所有數(shù)組中轉換后的八位二進制字符按照所述目標順序連接起來,得到二進制密文。
[0066]2、所述利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文,包括:
[0067]針對每一個當前內(nèi)核對象執(zhí)行如下操作:
[0068]獲取當前內(nèi)核對象所對應的多個字符串,所述多個字符串之間按照目標順序排列;
[0069]將每一個字符串映射為ACSII編碼中的八位二進制字符;
[0070]將所有字符串分別對應的八位二進制字符按照所述目標順序連接在一起,組成二進制密文。
[0071]在本發(fā)明一個實施例中,為了實現(xiàn)對二進制密文的編碼,可以采用如下編碼規(guī)則對二進制密文進行編碼,得到相應的編碼?目息:
[0072]進一步包括:預先獲取編碼轉化表;
[0073]所述利用編碼規(guī)則對各個二進制密文分別進行編碼,包括:在所述二進制密文中按從高位到低位的順序依次取連續(xù)的六位二進制字符;將取的六位二進制字符的高位補0,生成相應的八位二進制字符;根據(jù)所述編碼轉化表,將生成的每一個八位二進制字符轉化為相應的編碼。
[0074]在本發(fā)明一個實施例中,為了保證系統(tǒng)內(nèi)核的安全,可以將下述內(nèi)核對象設置為檢測點:任務、程序、文件系統(tǒng)、Socket套接字、管道、文件、網(wǎng)絡緩沖區(qū)、網(wǎng)絡設備、Semaphore信號和消息中的至少一種,從而可以對系統(tǒng)內(nèi)核中敏感結構進行檢測。
[0075]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面結合附圖及具體實施例對本發(fā)明作進一步地詳細描述。
[0076]如圖2所示,本發(fā)明實施例提供了一種文件篡改的檢測方法,該方法可以包括以下步驟:
[0077]步驟201:在系統(tǒng)內(nèi)核中設置至少一個檢測點。
[0078]在本實施例中,為了保證系統(tǒng)內(nèi)核在啟動過程中,不被惡意程序攻擊,需要在系統(tǒng)內(nèi)核中設置至少一個檢測點,以保證在系統(tǒng)內(nèi)核的啟動過程中,對設置的檢測點進行安全檢測,以保證啟動的系統(tǒng)內(nèi)核是未經(jīng)篡改的。
[0079]為了實現(xiàn)對系統(tǒng)內(nèi)核更加全面的檢測,可以針對下述至少一個內(nèi)核對象設置為檢測點:
[0080]task_struct結構:代表任務[0081 ] linux_binprm 結構:代表程序
[0082]super_block結構:代表文件系統(tǒng)
[0083]inode結構:代表管道,文件,或者Socket套接字
[0084]file結構:代表打開的文件
[0085]sk_buff結構:代表網(wǎng)絡緩沖區(qū)
[0086]net_device結構:代表網(wǎng)絡設備
[0087]kern_ipc_perm結構:代表Semaphore信號,共享內(nèi)存段,或者消息隊列
[0088]msg_msg:代表單個的消息
[0089]步驟202:在每一個檢測點中插入鉤子函數(shù)。
[0090]為了實現(xiàn)在系統(tǒng)內(nèi)核運行到該檢測點時對該檢測點的運行文件進行攔截,需要在該檢測點中插入鉤子函數(shù)。
[0091 ] 上述步驟202和步驟203,可以通過LSM(Linux Secrity Module,Linux安全模塊)框架來實現(xiàn),LSM是一個輕量級通用的訪問控制框架。它通過在內(nèi)核當中的特點位置增加檢測點,并在檢測點插入鉤子函數(shù)。這樣,當用戶需要施加額外的訪問控制的時候,自己可以改寫這些鉤子函數(shù)如增加一個鉤子程序,從而獲得安全增強。
[0092]LSM框架可以對系統(tǒng)內(nèi)核進行錯誤檢查、DAC(Discret1nary Access Control,自主訪問控制)檢查,并在檢查結束之后,在Linux內(nèi)核試圖對內(nèi)核對象進行訪問之前,鉤子函數(shù)調(diào)用一個LSM模塊所提供的函數(shù),以能夠將對該內(nèi)核對象的訪問請求進行攔截。
[0093]步驟203:利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文。
[0094]在本實施例中,可以利用如下兩種方式對內(nèi)核對象進行二進制加密:
[0095]1、MD5加密方式。
[0096]S1:獲取當前內(nèi)核對象所對應的目標字符串。
[0097]S 2:計算所述目標字符串的M D 5值,得到十六進制密文:098f6bcd4621d373cade832627b4f6。
[0098]S3:根據(jù)所述十六進制密文的位數(shù)定義相應個數(shù)的數(shù)組。
[0099]其中,定義的數(shù)組的個數(shù)是十六進制密文位數(shù)的一半。上述十六進制密文的位數(shù)為32位,那么需要定義16個數(shù)組array[]。
[0100]S4:在所述十六進制密文中按第一目標順序依次取兩位字符放置到相應數(shù)組中,每個數(shù)組中包括兩位十六進制字符。
[0101]其中,該第一目標順序可以是從高位向低位取,也可以是從低位向高位取。
[0? O2 ] 以第一目標順序為從高位向低位取為例,array [O] =09, array [ I ] = 8f,array [ 2 ]=6b,......, array [15] =f6o
[0103]S5:將每個數(shù)組中所包括的兩位十六進制字符轉換為八位二進制字符,并將所有數(shù)組中轉換后的八位二進制字符按照第一目標順序連接起來,得到二進制密文。
[0104]以array[0]=09為例,轉換為八位的二進制字符為0000 1001。其他數(shù)組依次類推。
[0105]在將得到的16個八位二進制字符連接起來時,需要按照數(shù)組在取兩位十六進制字符時的順序進行連接,以保證其有序性。
[0106]在S4中的是按照從高位向低位的順序取的十六進制字符,因此,將數(shù)組對應的八位二進制字符按照從高位向低位的順序連接,得到128位二進密文。
[0107]例如,該I 2 8位二進制密文如下所示:00001000100011110110110111100111001000110001000011110001111001010110111101000001100100110001010001011010011110110。
[0108]2、ACSSI 編碼方式。
[0109]S1:獲取當前內(nèi)核對象所對應的多個字符串,該多個字符串之間按照第二目標順序排列。
[0110]S2:將每一個字符串映射為ACSII編碼中的八位二進制字符。
[0111]其中,ASCII碼使用指定的7位或8位二進制數(shù)組合來表示128或256種可能的字符。因此,可以將每一個字符串映射為ACSII中的八位二進制字符。例如,內(nèi)核對象對應三個字符串,將字符串I映射為二進制字符為:01001101,將字符串2映射為二進制字符為:01100100,將字符串3映射為二進制字符為:00110101。
[0112]S3:將所有字符串分別對應的八位二進制字符按照第二目標順序連接在一起,組成二進制密文。
[0113]其中,根據(jù)S2可知,該二進制密文為:0100110101100100 00110101。
[0114]步驟204:利用編碼規(guī)則對各個二進制密文分別進行編碼,并存儲各個編碼信息。
[0115]在本實施例中,無論在步驟203中使用的是哪一種二進制加密方式,均可以利用編碼規(guī)則對步驟203中得到的二進制密文進行編碼,以上述第I種二進制加密方式為例,對該編碼規(guī)則進行詳細說明,該編碼規(guī)則可以包括如下內(nèi)容:
[0116]S1:在二進制密文中按從高位到低位的順序依次取連續(xù)的六位二進制字符。
[0117]其中,取出的各組六位二進制字符分別為:000010、001000、111101、……、110110。
[0118]S2:將取的六位二進制字符的高位補0,生成相應的八位二進制字符。
[0119]對于SI中取出的各組六位二進制字符進行高位補0,得到如下各組八位二進制字符:00000010、00001000、00111101、……、00110110。
[0120]S3:根據(jù)編碼轉化表,將生成的每一個八位二進制字符轉化為相應的編碼。
[0121 ]在本實施例中,還需要預先獲取編碼轉化表,在該編碼轉化表中,可以將0-63分別對應A?Z、a?z和O?9以及“+”和,共64個字符。其中,使用A?Z、a?z和O?9作為編碼轉化表中的62個碼,V’和作為數(shù)字的符號,該符號在不同的系統(tǒng)中表述不同。
[0122]根據(jù)該編碼轉換表,可以將上述各組八位二進制字符生成相應的編碼。
[0123]以第一組八位二進制字符為例,二進制字符00000010對應的編碼為C。
[0124]通過上述編碼方式,不僅存儲的編碼信息簡短,同時也具有不可讀性,從而可以保證存儲的編碼信息的安全性。
[0125]步驟205:啟動系統(tǒng)內(nèi)核,在每運行到一個檢測點時,利用鉤子函數(shù)對該檢測點處的內(nèi)核對象的運行請求進行攔截。
[0126]步驟206:利用相同的二進制加密方式和編碼規(guī)則,計算該內(nèi)核對象當前的編碼信息。
[0127]為了保證此時計算的該內(nèi)核對象當前的編碼信息與存儲的編碼信息的一致性,需要使用與計算存儲的編碼信息時相同的二進制加密方式和編碼規(guī)則。
[0128]步驟207:比較該當前的編碼信息與存儲的編碼信息,在比較結果相同時,執(zhí)行步驟208,在比較結果不相同時,執(zhí)行步驟209。
[0129]在本實施例中,在存儲編碼信息時,可以同時內(nèi)核對象的標識和該編碼信息,從而便于比較時的方便。
[0130]步驟208:確定該內(nèi)核對象未被篡改,允許該內(nèi)核對象的運行請求,執(zhí)行步驟205,直到系統(tǒng)內(nèi)核結束。
[0131 ]步驟209:確定該內(nèi)核對象被篡改,拒絕該內(nèi)核對象的運行請求,并對該篡改信息進行報警,結束。
[0132]如圖3、圖4所示,本發(fā)明實施例提供了一種文件篡改的檢測裝置。裝置實施例可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結合的方式實現(xiàn)。從硬件層面而言,如圖3所示,為本發(fā)明實施例提供的一種文件篡改的檢測裝置所在設備的一種硬件結構圖,除了圖3所示的處理器、內(nèi)存、網(wǎng)絡接口、以及非易失性存儲器之外,實施例中裝置所在的設備通常還可以包括其他硬件,如負責處理報文的轉發(fā)芯片等等。以軟件實現(xiàn)為例,如圖4所示,作為一個邏輯意義上的裝置,是通過其所在設備的CPU將非易失性存儲器中對應的計算機程序指令讀取到內(nèi)存中運行形成的。本實施例提供的一種文件篡改的檢測裝置,包括:
[0133]配置單元401,用于在系統(tǒng)內(nèi)核中設置至少一個檢測點,并在每一個檢測點中插入鉤子函數(shù);
[0134]二進制加密單元402,用于利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文;
[0135]編碼單元403,用于利用編碼規(guī)則對各個二進制密文分別進行編碼,并存儲各個編碼?目息;
[0136]攔截單元404,用于在系統(tǒng)內(nèi)核運行到目標檢測點時,利用鉤子函數(shù)對所述目標檢測點處的目標內(nèi)核對象的運行請求進行攔截;
[0137]第一獲取單元405,用于利用所述二進制加密方式和所述編碼規(guī)則獲取所述目標內(nèi)核對象所對應的當前編碼信息;
[0138]比較單元406,用于比較所述目標內(nèi)核對象的當前編碼信息與存儲的編碼信息,在相同時,確定所述目標內(nèi)核對象未被篡改,允許所述目標內(nèi)核對象的運行請求。
[0139]在本發(fā)明一個實施例中,所述二進制加密單元402,具體用于針對每一個當前內(nèi)核對象執(zhí)行如下操作:
[0140]獲取當前內(nèi)核對象所對應的目標字符串;
[0141]計算所述目標字符串的MD5值,得到十六進制密文;
[0142]根據(jù)所述十六進制密文的位數(shù)定義相應個數(shù)的數(shù)組;
[0143]在所述十六進制密文中按第一目標順序依次取兩位字符放置到相應數(shù)組中,每個數(shù)組中包括兩位十六進制字符;
[0144]將每個數(shù)組中所包括的兩位十六進制字符轉換為八位二進制字符,并將所有數(shù)組中轉換后的八位二進制字符按照所述第一目標順序連接起來,得到二進制密文。
[0145]在本發(fā)明一個實施例中,所述二進制加密單元402,具體用于針對每一個當前內(nèi)核對象執(zhí)行如下操作:
[0146]獲取當前內(nèi)核對象所對應的多個字符串,所述多個字符串之間按照第二目標順序排列;
[0147]將每一個字符串映射為ACSII編碼中的八位二進制字符;
[0148]將所有字符串分別對應的八位二進制字符按照所述第二目標順序連接在一起,組成二進制密文。
[0149]在本發(fā)明一個實施例中,請參考圖5,該文件篡改的檢測裝置可以進一步包括:
[0150]第二獲取單元501,用于獲取編碼轉化表;
[0151]所述編碼單元403,具體用于在所述二進制密文中按從高位到低位的順序依次取連續(xù)的六位二進制字符;將取的六位二進制字符的高位補0,生成相應的八位二進制字符;根據(jù)所述編碼轉化表,將生成的每一個八位二進制字符轉化為相應的編碼。
[0152]綜上,本發(fā)明實施例至少可以實現(xiàn)如下有益效果:
[0153]1、在本發(fā)明實施例中,通過鉤子函數(shù)將設置的檢測點處的內(nèi)核對象的運行請求攔截,并利用在計算存儲的每一個內(nèi)核對象對應的編碼信息時使用的二進制加密方式和編碼規(guī)則,計算該攔截的內(nèi)核對象的編碼信息,并與存儲的編碼信息進行比較,只有在比較結果相同時,才表明該內(nèi)核對象未被篡改,通過該二進制加密方式和編碼規(guī)則的雙重計算,可以有效防止黑客對該雙重計算方式的破解,從而可以進一步保證內(nèi)核對象的安全性。
[0154]2、在本發(fā)明實施例中,通過將下述內(nèi)核對象設置為檢測點:任務、程序、文件系統(tǒng)、Socket套接字、管道、文件、網(wǎng)絡緩沖區(qū)、網(wǎng)絡設備、Semaphore信號和消息中的至少一種,從而可以對系統(tǒng)內(nèi)核中敏感結構進行檢測,保證了系統(tǒng)內(nèi)核的安全。
[0155]3、在本發(fā)明實施例中,通過利用本發(fā)明實施例提供的編碼方式,不僅存儲的編碼信息簡短,同時也具有不可讀性,從而可以保證存儲的編碼信息的安全性。
[0156]上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實施例基于同一構思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
[0157]需要說明的是,在本文中,諸如第一和第二之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個〃.....”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同因素。
[0158]本領域普通技術人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)中。
[0159]最后需要說明的是:以上所述僅為本發(fā)明的較佳實施例,僅用于說明本發(fā)明的技術方案,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。
【主權項】
1.一種文件篡改的檢測方法,其特征在于,包括: 在系統(tǒng)內(nèi)核中設置至少一個檢測點,并在每一個檢測點中插入鉤子函數(shù); 利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文;利用編碼規(guī)則對各個二進制密文分別進行編碼,并存儲各個編碼信息;在系統(tǒng)內(nèi)核運行到目標檢測點時,利用鉤子函數(shù)對所述目標檢測點處的目標內(nèi)核對象的運行請求進行攔截; 利用所述二進制加密方式和所述編碼規(guī)則獲取所述目標內(nèi)核對象所對應的當前編碼信息;比較所述目標內(nèi)核對象的當前編碼信息與存儲的編碼信息,在相同時,確定所述目標內(nèi)核對象未被篡改,允許所述目標內(nèi)核對象的運行請求。2.根據(jù)權利要求1所述的方法,其特征在于,所述利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文,包括: 針對每一個當前內(nèi)核對象執(zhí)行如下操作: 獲取當前內(nèi)核對象所對應的目標字符串; 計算所述目標字符串的MD5值,得到十六進制密文; 根據(jù)所述十六進制密文的位數(shù)定義相應個數(shù)的數(shù)組; 在所述十六進制密文中按第一目標順序依次取兩位字符放置到相應數(shù)組中,每個數(shù)組中包括兩位十六進制字符; 將每個數(shù)組中所包括的兩位十六進制字符轉換為八位二進制字符,并將所有數(shù)組中轉換后的八位二進制字符按照所述第一目標順序連接起來,得到二進制密文。3.根據(jù)權利要求1所述的方法,其特征在于,所述利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文,包括: 針對每一個當前內(nèi)核對象執(zhí)行如下操作: 獲取當前內(nèi)核對象所對應的多個字符串,所述多個字符串之間按照第二目標順序排列; 將每一個字符串映射為ACSII編碼中的八位二進制字符; 將所有字符串分別對應的八位二進制字符按照所述第二目標順序連接在一起,組成二進制密文。4.根據(jù)權利要求1-3中任一所述的方法,其特征在于, 進一步包括:預先獲取編碼轉化表; 所述利用編碼規(guī)則對各個二進制密文分別進行編碼,包括:在所述二進制密文中按從高位到低位的順序依次取連續(xù)的六位二進制字符;將取的六位二進制字符的高位補O,生成相應的八位二進制字符;根據(jù)所述編碼轉化表,將生成的每一個八位二進制字符轉化為相應的編碼。5.根據(jù)權利要求1所述的方法,其特征在于,將下述內(nèi)核對象設置為檢測點:任務、程序、文件系統(tǒng)、Socket套接字、管道、文件、網(wǎng)絡緩沖區(qū)、網(wǎng)絡設備、Semaphore信號和消息中的至少一種。6.一種文件篡改的檢測裝置,其特征在于,包括: 配置單元,用于在系統(tǒng)內(nèi)核中設置至少一個檢測點,并在每一個檢測點中插入鉤子函數(shù); 二進制加密單元,用于利用二進制加密方式針對每一個檢測點所對應的內(nèi)核對象進行二進制加密,得到相應的二進制密文; 編碼單元,用于利用編碼規(guī)則對各個二進制密文分別進行編碼,并存儲各個編碼信息;攔截單元,用于在系統(tǒng)內(nèi)核運行到目標檢測點時,利用鉤子函數(shù)對所述目標檢測點處的目標內(nèi)核對象的運行請求進行攔截; 第一獲取單元,用于利用所述二進制加密方式和所述編碼規(guī)則獲取所述目標內(nèi)核對象所對應的當前編碼信息; 比較單元,用于比較所述目標內(nèi)核對象的當前編碼信息與存儲的編碼信息,在相同時,確定所述目標內(nèi)核對象未被篡改,允許所述目標內(nèi)核對象的運行請求。7.根據(jù)權利要求6所述的文件篡改的檢測裝置,其特征在于,所述二進制加密單元,具體用于針對每一個當前內(nèi)核對象執(zhí)行如下操作: 獲取當前內(nèi)核對象所對應的目標字符串; 計算所述目標字符串的MD5值,得到十六進制密文; 根據(jù)所述十六進制密文的位數(shù)定義相應個數(shù)的數(shù)組; 在所述十六進制密文中按第一目標順序依次取兩位字符放置到相應數(shù)組中,每個數(shù)組中包括兩位十六進制字符; 將每個數(shù)組中所包括的兩位十六進制字符轉換為八位二進制字符,并將所有數(shù)組中轉換后的八位二進制字符按照所述第一目標順序連接起來,得到二進制密文。8.根據(jù)權利要求6所述的文件篡改的檢測裝置,其特征在于,所述二進制加密單元,具體用于針對每一個當前內(nèi)核對象執(zhí)行如下操作: 獲取當前內(nèi)核對象所對應的多個字符串,所述多個字符串之間按照第二目標順序排列; 將每一個字符串映射為ACSII編碼中的八位二進制字符; 將所有字符串分別對應的八位二進制字符按照所述第二目標順序連接在一起,組成二進制密文。9.根據(jù)權利要求6-8中任一所述的文件篡改的檢測裝置,其特征在于, 進一步包括:第二獲取單元,用于獲取編碼轉化表; 所述編碼單元,具體用于在所述二進制密文中按從高位到低位的順序依次取連續(xù)的六位二進制字符;將取的六位二進制字符的高位補O,生成相應的八位二進制字符;根據(jù)所述編碼轉化表,將生成的每一個八位二進制字符轉化為相應的編碼。
【文檔編號】H04L29/06GK105933303SQ201610236587
【公開日】2016年9月7日
【申請日】2016年4月15日
【發(fā)明人】闞洪敏, 戴鴻君, 于治樓
【申請人】浪潮集團有限公司