一种文件篡改的检测方法及装置的制造方法
【专利摘要】本发明提供了一种文件篡改的检测方法及装置,方法包括:在系统内核中设置至少一个检测点,并在每一个检测点中插入钩子函数;利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文;利用编码规则对各个二进制密文分别进行编码,并存储各个编码信息;在系统内核运行到目标检测点时,利用钩子函数对目标检测点处的目标内核对象的运行请求进行拦截;利用二进制加密方式和编码规则获取目标内核对象所对应的当前编码信息;比较目标内核对象的当前编码信息与存储的编码信息,在相同时,允许目标内核对象的运行请求。根据上述方案,可以实现对内核对象是否被篡改的检测,提高系统内核的安全性。
【专利说明】
一种文件篡改的检测方法及装置
技术领域
[0001]本发明涉及安全技术领域,特别涉及一种文件篡改的检测方法及装置。
【背景技术】
[0002]随着网络技术的迅速发展,衍生出了很多恶意攻击他人服务器的黑客,为了能够保护重要业务的正常运转或重要数据不被破坏,目前,在大多监控系统中,使用文件的属性信息对文件进行校验匹配,以确定文件是否被篡改的,然而,现有技术存在如下缺点:若篡改文件的同时也篡改了文件属性信息,以使篡改后的文件属性信息与篡改后的文件相对应,则会导致监控系统无法监控到文件是否被篡改。
【发明内容】
[0003]本发明实施例提供了一种文件篡改的检测方法及装置,以实现对篡改信息的检测。
[0004]第一方面,本发明实施例提供了一种文件篡改的检测方法,包括:
[0005]在系统内核中设置至少一个检测点,并在每一个检测点中插入钩子函数;
[0006]利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文;利用编码规则对各个二进制密文分别进行编码,并存储各个编码信息;
[0007]在系统内核运行到目标检测点时,利用钩子函数对所述目标检测点处的目标内核对象的运行请求进行拦截;
[0008]利用所述二进制加密方式和所述编码规则获取所述目标内核对象所对应的当前编码信息;比较所述目标内核对象的当前编码信息与存储的编码信息,在相同时,确定所述目标内核对象未被篡改,允许所述目标内核对象的运行请求。
[0009]优选地,所述利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文,包括:
[0010]针对每一个当前内核对象执行如下操作:
[0011]获取当前内核对象所对应的目标字符串;
[0012]计算所述目标字符串的MD5值,得到十六进制密文;
[0013]根据所述十六进制密文的位数定义相应个数的数组;
[0014]在所述十六进制密文中按第一目标顺序依次取两位字符放置到相应数组中,每个数组中包括两位十六进制字符;
[0015]将每个数组中所包括的两位十六进制字符转换为八位二进制字符,并将所有数组中转换后的八位二进制字符按照所述第一目标顺序连接起来,得到二进制密文。
[0016]优选地,所述利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文,包括:
[0017]针对每一个当前内核对象执行如下操作:
[0018]获取当前内核对象所对应的多个字符串,所述多个字符串之间按照第二目标顺序排列;
[0019]将每一个字符串映射为ACSII编码中的八位二进制字符;
[0020]将所有字符串分别对应的八位二进制字符按照所述第二目标顺序连接在一起,组成二进制密文。
[0021 ]优选地,进一步包括:预先获取编码转化表;
[0022]所述利用编码规则对各个二进制密文分别进行编码,包括:在所述二进制密文中按从高位到低位的顺序依次取连续的六位二进制字符;将取的六位二进制字符的高位补0,生成相应的八位二进制字符;根据所述编码转化表,将生成的每一个八位二进制字符转化为相应的编码。
[0023]优选地,将下述内核对象设置为检测点:任务、程序、文件系统、Socket套接字、管道、文件、网络缓冲区、网络设备、Semaphore信号和消息中的至少一种。
[0024]第二方面,本发明实施例还提供了一种文件篡改的检测装置,包括:
[0025]配置单元,用于在系统内核中设置至少一个检测点,并在每一个检测点中插入钩子函数;
[0026]二进制加密单元,用于利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文;
[0027]编码单元,用于利用编码规则对各个二进制密文分别进行编码,并存储各个编码信息;
[0028]拦截单元,用于在系统内核运行到目标检测点时,利用钩子函数对所述目标检测点处的目标内核对象的运行请求进行拦截;
[0029]第一获取单元,用于利用所述二进制加密方式和所述编码规则获取所述目标内核对象所对应的当前编码信息;
[0030]比较单元,用于比较所述目标内核对象的当前编码信息与存储的编码信息,在相同时,确定所述目标内核对象未被篡改,允许所述目标内核对象的运行请求。
[0031]优选地,所述二进制加密单元,具体用于针对每一个当前内核对象执行如下操作:
[0032]获取当前内核对象所对应的目标字符串;
[0033]计算所述目标字符串的MD5值,得到十六进制密文;
[0034]根据所述十六进制密文的位数定义相应个数的数组;
[0035]在所述十六进制密文中按第一目标顺序依次取两位字符放置到相应数组中,每个数组中包括两位十六进制字符;
[0036]将每个数组中所包括的两位十六进制字符转换为八位二进制字符,并将所有数组中转换后的八位二进制字符按照所述第一目标顺序连接起来,得到二进制密文。
[0037]优选地,所述二进制加密单元,具体用于针对每一个当前内核对象执行如下操作:
[0038]获取当前内核对象所对应的多个字符串,所述多个字符串之间按照第二目标顺序排列;
[0039]将每一个字符串映射为ACSII编码中的八位二进制字符;
[0040]将所有字符串分别对应的八位二进制字符按照所述第二目标顺序连接在一起,组成二进制密文。
[0041 ]优选地,进一步包括:第二获取单元,用于获取编码转化表;
[0042]所述编码单元,具体用于在所述二进制密文中按从高位到低位的顺序依次取连续的六位二进制字符;将取的六位二进制字符的高位补O,生成相应的八位二进制字符;根据所述编码转化表,将生成的每一个八位二进制字符转化为相应的编码。
[0043]本发明实施例提供了一种文件篡改的检测方法及装置,通过钩子函数将设置的检测点处的内核对象的运行请求拦截,并利用在计算存储的每一个内核对象对应的编码信息时使用的二进制加密方式和编码规则,计算该拦截的内核对象的编码信息,并与存储的编码信息进行比较,只有在比较结果相同时,才表明该内核对象未被篡改,通过该二进制加密方式和编码规则的双重计算,可以有效防止黑客对该双重计算方式的破解,从而可以进一步保证内核对象的安全性。
【附图说明】
[0044]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0045]图1是本发明一个实施例提供的一种文件篡改的检测方法流程图;
[0046]图2是本发明一个实施例提供的另一种文件篡改的检测方法流程图;
[0047]图3是本发明一个实施例提供的装置所在设备的硬件架构图;
[0048]图4是本发明一个实施例提供的一种装置结构示意图;
[0049]图5是本发明一个实施例提供的另一种装置结构示意图。
【具体实施方式】
[0050]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0051]如图1所示,本发明实施例提供了一种文件篡改的检测方法,该方法可以包括以下步骤:
[0052]步骤101:在系统内核中设置至少一个检测点,并在每一个检测点中插入钩子函数。
[0053]步骤102:利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文;利用编码规则对各个二进制密文分别进行编码,并存储各个编码?目息。
[0054]步骤103:在系统内核运行到目标检测点时,利用钩子函数对所述目标检测点处的目标内核对象的运行请求进行拦截。
[0055]步骤104:利用所述二进制加密方式和所述编码规则获取所述目标内核对象所对应的当前编码信息;比较所述目标内核对象的当前编码信息与存储的编码信息,在相同时,确定所述目标内核对象未被篡改,允许所述目标内核对象的运行请求。
[0056]可见,通过钩子函数将设置的检测点处的内核对象的运行请求拦截,并利用在计算存储的每一个内核对象对应的编码信息时使用的二进制加密方式和编码规则,计算该拦截的内核对象的编码信息,并与存储的编码信息进行比较,只有在比较结果相同时,才表明该内核对象未被篡改,通过该二进制加密方式和编码规则的双重计算,可以有效防止黑客对该双重计算方式的破解,从而可以进一步保证内核对象的安全性。
[0057]为了防止黑客对存储的加密信息进行破解篡改,需要使用复杂的加密编码方式生成内核对象的加密信息,上述实施例通过利用二进制加密方式首先内核对象进行二进制加密,然后在对二进制加密后的二进制密文进行编码,将得到的编码信息用于实现对内核对象是否被篡改的校验。
[0058]本发明实施例中,至少可以利用如下两种二进制加密方式中的任意一种实现对内核对象的二进制加密:
[0059]1、所述利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文,包括:
[0060]针对每一个当前内核对象执行如下操作:
[0061 ]获取当前内核对象所对应的目标字符串;
[0062]计算所述目标字符串的MD5值,得到十六进制密文;
[0063]根据所述十六进制密文的位数定义相应个数的数组;
[0064]在所述十六进制密文中按目标顺序依次取两位字符放置到相应数组中,每个数组中包括两位十六进制字符;
[0065]将每个数组中所包括的两位十六进制字符转换为八位二进制字符,并将所有数组中转换后的八位二进制字符按照所述目标顺序连接起来,得到二进制密文。
[0066]2、所述利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文,包括:
[0067]针对每一个当前内核对象执行如下操作:
[0068]获取当前内核对象所对应的多个字符串,所述多个字符串之间按照目标顺序排列;
[0069]将每一个字符串映射为ACSII编码中的八位二进制字符;
[0070]将所有字符串分别对应的八位二进制字符按照所述目标顺序连接在一起,组成二进制密文。
[0071]在本发明一个实施例中,为了实现对二进制密文的编码,可以采用如下编码规则对二进制密文进行编码,得到相应的编码?目息:
[0072]进一步包括:预先获取编码转化表;
[0073]所述利用编码规则对各个二进制密文分别进行编码,包括:在所述二进制密文中按从高位到低位的顺序依次取连续的六位二进制字符;将取的六位二进制字符的高位补0,生成相应的八位二进制字符;根据所述编码转化表,将生成的每一个八位二进制字符转化为相应的编码。
[0074]在本发明一个实施例中,为了保证系统内核的安全,可以将下述内核对象设置为检测点:任务、程序、文件系统、Socket套接字、管道、文件、网络缓冲区、网络设备、Semaphore信号和消息中的至少一种,从而可以对系统内核中敏感结构进行检测。
[0075]为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
[0076]如图2所示,本发明实施例提供了一种文件篡改的检测方法,该方法可以包括以下步骤:
[0077]步骤201:在系统内核中设置至少一个检测点。
[0078]在本实施例中,为了保证系统内核在启动过程中,不被恶意程序攻击,需要在系统内核中设置至少一个检测点,以保证在系统内核的启动过程中,对设置的检测点进行安全检测,以保证启动的系统内核是未经篡改的。
[0079]为了实现对系统内核更加全面的检测,可以针对下述至少一个内核对象设置为检测点:
[0080]task_struct结构:代表任务[0081 ] linux_binprm 结构:代表程序
[0082]super_block结构:代表文件系统
[0083]inode结构:代表管道,文件,或者Socket套接字
[0084]file结构:代表打开的文件
[0085]sk_buff结构:代表网络缓冲区
[0086]net_device结构:代表网络设备
[0087]kern_ipc_perm结构:代表Semaphore信号,共享内存段,或者消息队列
[0088]msg_msg:代表单个的消息
[0089]步骤202:在每一个检测点中插入钩子函数。
[0090]为了实现在系统内核运行到该检测点时对该检测点的运行文件进行拦截,需要在该检测点中插入钩子函数。
[0091 ] 上述步骤202和步骤203,可以通过LSM(Linux Secrity Module,Linux安全模块)框架来实现,LSM是一个轻量级通用的访问控制框架。它通过在内核当中的特点位置增加检测点,并在检测点插入钩子函数。这样,当用户需要施加额外的访问控制的时候,自己可以改写这些钩子函数如增加一个钩子程序,从而获得安全增强。
[0092]LSM框架可以对系统内核进行错误检查、DAC(Discret1nary Access Control,自主访问控制)检查,并在检查结束之后,在Linux内核试图对内核对象进行访问之前,钩子函数调用一个LSM模块所提供的函数,以能够将对该内核对象的访问请求进行拦截。
[0093]步骤203:利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文。
[0094]在本实施例中,可以利用如下两种方式对内核对象进行二进制加密:
[0095]1、MD5加密方式。
[0096]S1:获取当前内核对象所对应的目标字符串。
[0097]S 2:计算所述目标字符串的M D 5值,得到十六进制密文:098f6bcd4621d373cade832627b4f6。
[0098]S3:根据所述十六进制密文的位数定义相应个数的数组。
[0099]其中,定义的数组的个数是十六进制密文位数的一半。上述十六进制密文的位数为32位,那么需要定义16个数组array[]。
[0100]S4:在所述十六进制密文中按第一目标顺序依次取两位字符放置到相应数组中,每个数组中包括两位十六进制字符。
[0101]其中,该第一目标顺序可以是从高位向低位取,也可以是从低位向高位取。
[0? O2 ] 以第一目标顺序为从高位向低位取为例,array [O] =09, array [ I ] = 8f,array [ 2 ]=6b,......, array [15] =f6o
[0103]S5:将每个数组中所包括的两位十六进制字符转换为八位二进制字符,并将所有数组中转换后的八位二进制字符按照第一目标顺序连接起来,得到二进制密文。
[0104]以array[0]=09为例,转换为八位的二进制字符为0000 1001。其他数组依次类推。
[0105]在将得到的16个八位二进制字符连接起来时,需要按照数组在取两位十六进制字符时的顺序进行连接,以保证其有序性。
[0106]在S4中的是按照从高位向低位的顺序取的十六进制字符,因此,将数组对应的八位二进制字符按照从高位向低位的顺序连接,得到128位二进密文。
[0107]例如,该I 2 8位二进制密文如下所示:00001000100011110110110111100111001000110001000011110001111001010110111101000001100100110001010001011010011110110。
[0108]2、ACSSI 编码方式。
[0109]S1:获取当前内核对象所对应的多个字符串,该多个字符串之间按照第二目标顺序排列。
[0110]S2:将每一个字符串映射为ACSII编码中的八位二进制字符。
[0111]其中,ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。因此,可以将每一个字符串映射为ACSII中的八位二进制字符。例如,内核对象对应三个字符串,将字符串I映射为二进制字符为:01001101,将字符串2映射为二进制字符为:01100100,将字符串3映射为二进制字符为:00110101。
[0112]S3:将所有字符串分别对应的八位二进制字符按照第二目标顺序连接在一起,组成二进制密文。
[0113]其中,根据S2可知,该二进制密文为:0100110101100100 00110101。
[0114]步骤204:利用编码规则对各个二进制密文分别进行编码,并存储各个编码信息。
[0115]在本实施例中,无论在步骤203中使用的是哪一种二进制加密方式,均可以利用编码规则对步骤203中得到的二进制密文进行编码,以上述第I种二进制加密方式为例,对该编码规则进行详细说明,该编码规则可以包括如下内容:
[0116]S1:在二进制密文中按从高位到低位的顺序依次取连续的六位二进制字符。
[0117]其中,取出的各组六位二进制字符分别为:000010、001000、111101、……、110110。
[0118]S2:将取的六位二进制字符的高位补0,生成相应的八位二进制字符。
[0119]对于SI中取出的各组六位二进制字符进行高位补0,得到如下各组八位二进制字符:00000010、00001000、00111101、……、00110110。
[0120]S3:根据编码转化表,将生成的每一个八位二进制字符转化为相应的编码。
[0121 ]在本实施例中,还需要预先获取编码转化表,在该编码转化表中,可以将0-63分别对应A?Z、a?z和O?9以及“+”和,共64个字符。其中,使用A?Z、a?z和O?9作为编码转化表中的62个码,V’和作为数字的符号,该符号在不同的系统中表述不同。
[0122]根据该编码转换表,可以将上述各组八位二进制字符生成相应的编码。
[0123]以第一组八位二进制字符为例,二进制字符00000010对应的编码为C。
[0124]通过上述编码方式,不仅存储的编码信息简短,同时也具有不可读性,从而可以保证存储的编码信息的安全性。
[0125]步骤205:启动系统内核,在每运行到一个检测点时,利用钩子函数对该检测点处的内核对象的运行请求进行拦截。
[0126]步骤206:利用相同的二进制加密方式和编码规则,计算该内核对象当前的编码信息。
[0127]为了保证此时计算的该内核对象当前的编码信息与存储的编码信息的一致性,需要使用与计算存储的编码信息时相同的二进制加密方式和编码规则。
[0128]步骤207:比较该当前的编码信息与存储的编码信息,在比较结果相同时,执行步骤208,在比较结果不相同时,执行步骤209。
[0129]在本实施例中,在存储编码信息时,可以同时内核对象的标识和该编码信息,从而便于比较时的方便。
[0130]步骤208:确定该内核对象未被篡改,允许该内核对象的运行请求,执行步骤205,直到系统内核结束。
[0131 ]步骤209:确定该内核对象被篡改,拒绝该内核对象的运行请求,并对该篡改信息进行报警,结束。
[0132]如图3、图4所示,本发明实施例提供了一种文件篡改的检测装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的一种文件篡改的检测装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的一种文件篡改的检测装置,包括:
[0133]配置单元401,用于在系统内核中设置至少一个检测点,并在每一个检测点中插入钩子函数;
[0134]二进制加密单元402,用于利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文;
[0135]编码单元403,用于利用编码规则对各个二进制密文分别进行编码,并存储各个编码?目息;
[0136]拦截单元404,用于在系统内核运行到目标检测点时,利用钩子函数对所述目标检测点处的目标内核对象的运行请求进行拦截;
[0137]第一获取单元405,用于利用所述二进制加密方式和所述编码规则获取所述目标内核对象所对应的当前编码信息;
[0138]比较单元406,用于比较所述目标内核对象的当前编码信息与存储的编码信息,在相同时,确定所述目标内核对象未被篡改,允许所述目标内核对象的运行请求。
[0139]在本发明一个实施例中,所述二进制加密单元402,具体用于针对每一个当前内核对象执行如下操作:
[0140]获取当前内核对象所对应的目标字符串;
[0141]计算所述目标字符串的MD5值,得到十六进制密文;
[0142]根据所述十六进制密文的位数定义相应个数的数组;
[0143]在所述十六进制密文中按第一目标顺序依次取两位字符放置到相应数组中,每个数组中包括两位十六进制字符;
[0144]将每个数组中所包括的两位十六进制字符转换为八位二进制字符,并将所有数组中转换后的八位二进制字符按照所述第一目标顺序连接起来,得到二进制密文。
[0145]在本发明一个实施例中,所述二进制加密单元402,具体用于针对每一个当前内核对象执行如下操作:
[0146]获取当前内核对象所对应的多个字符串,所述多个字符串之间按照第二目标顺序排列;
[0147]将每一个字符串映射为ACSII编码中的八位二进制字符;
[0148]将所有字符串分别对应的八位二进制字符按照所述第二目标顺序连接在一起,组成二进制密文。
[0149]在本发明一个实施例中,请参考图5,该文件篡改的检测装置可以进一步包括:
[0150]第二获取单元501,用于获取编码转化表;
[0151]所述编码单元403,具体用于在所述二进制密文中按从高位到低位的顺序依次取连续的六位二进制字符;将取的六位二进制字符的高位补0,生成相应的八位二进制字符;根据所述编码转化表,将生成的每一个八位二进制字符转化为相应的编码。
[0152]综上,本发明实施例至少可以实现如下有益效果:
[0153]1、在本发明实施例中,通过钩子函数将设置的检测点处的内核对象的运行请求拦截,并利用在计算存储的每一个内核对象对应的编码信息时使用的二进制加密方式和编码规则,计算该拦截的内核对象的编码信息,并与存储的编码信息进行比较,只有在比较结果相同时,才表明该内核对象未被篡改,通过该二进制加密方式和编码规则的双重计算,可以有效防止黑客对该双重计算方式的破解,从而可以进一步保证内核对象的安全性。
[0154]2、在本发明实施例中,通过将下述内核对象设置为检测点:任务、程序、文件系统、Socket套接字、管道、文件、网络缓冲区、网络设备、Semaphore信号和消息中的至少一种,从而可以对系统内核中敏感结构进行检测,保证了系统内核的安全。
[0155]3、在本发明实施例中,通过利用本发明实施例提供的编码方式,不仅存储的编码信息简短,同时也具有不可读性,从而可以保证存储的编码信息的安全性。
[0156]上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
[0157]需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃.....”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
[0158]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
[0159]最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【主权项】
1.一种文件篡改的检测方法,其特征在于,包括: 在系统内核中设置至少一个检测点,并在每一个检测点中插入钩子函数; 利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文;利用编码规则对各个二进制密文分别进行编码,并存储各个编码信息;在系统内核运行到目标检测点时,利用钩子函数对所述目标检测点处的目标内核对象的运行请求进行拦截; 利用所述二进制加密方式和所述编码规则获取所述目标内核对象所对应的当前编码信息;比较所述目标内核对象的当前编码信息与存储的编码信息,在相同时,确定所述目标内核对象未被篡改,允许所述目标内核对象的运行请求。2.根据权利要求1所述的方法,其特征在于,所述利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文,包括: 针对每一个当前内核对象执行如下操作: 获取当前内核对象所对应的目标字符串; 计算所述目标字符串的MD5值,得到十六进制密文; 根据所述十六进制密文的位数定义相应个数的数组; 在所述十六进制密文中按第一目标顺序依次取两位字符放置到相应数组中,每个数组中包括两位十六进制字符; 将每个数组中所包括的两位十六进制字符转换为八位二进制字符,并将所有数组中转换后的八位二进制字符按照所述第一目标顺序连接起来,得到二进制密文。3.根据权利要求1所述的方法,其特征在于,所述利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文,包括: 针对每一个当前内核对象执行如下操作: 获取当前内核对象所对应的多个字符串,所述多个字符串之间按照第二目标顺序排列; 将每一个字符串映射为ACSII编码中的八位二进制字符; 将所有字符串分别对应的八位二进制字符按照所述第二目标顺序连接在一起,组成二进制密文。4.根据权利要求1-3中任一所述的方法,其特征在于, 进一步包括:预先获取编码转化表; 所述利用编码规则对各个二进制密文分别进行编码,包括:在所述二进制密文中按从高位到低位的顺序依次取连续的六位二进制字符;将取的六位二进制字符的高位补O,生成相应的八位二进制字符;根据所述编码转化表,将生成的每一个八位二进制字符转化为相应的编码。5.根据权利要求1所述的方法,其特征在于,将下述内核对象设置为检测点:任务、程序、文件系统、Socket套接字、管道、文件、网络缓冲区、网络设备、Semaphore信号和消息中的至少一种。6.一种文件篡改的检测装置,其特征在于,包括: 配置单元,用于在系统内核中设置至少一个检测点,并在每一个检测点中插入钩子函数; 二进制加密单元,用于利用二进制加密方式针对每一个检测点所对应的内核对象进行二进制加密,得到相应的二进制密文; 编码单元,用于利用编码规则对各个二进制密文分别进行编码,并存储各个编码信息;拦截单元,用于在系统内核运行到目标检测点时,利用钩子函数对所述目标检测点处的目标内核对象的运行请求进行拦截; 第一获取单元,用于利用所述二进制加密方式和所述编码规则获取所述目标内核对象所对应的当前编码信息; 比较单元,用于比较所述目标内核对象的当前编码信息与存储的编码信息,在相同时,确定所述目标内核对象未被篡改,允许所述目标内核对象的运行请求。7.根据权利要求6所述的文件篡改的检测装置,其特征在于,所述二进制加密单元,具体用于针对每一个当前内核对象执行如下操作: 获取当前内核对象所对应的目标字符串; 计算所述目标字符串的MD5值,得到十六进制密文; 根据所述十六进制密文的位数定义相应个数的数组; 在所述十六进制密文中按第一目标顺序依次取两位字符放置到相应数组中,每个数组中包括两位十六进制字符; 将每个数组中所包括的两位十六进制字符转换为八位二进制字符,并将所有数组中转换后的八位二进制字符按照所述第一目标顺序连接起来,得到二进制密文。8.根据权利要求6所述的文件篡改的检测装置,其特征在于,所述二进制加密单元,具体用于针对每一个当前内核对象执行如下操作: 获取当前内核对象所对应的多个字符串,所述多个字符串之间按照第二目标顺序排列; 将每一个字符串映射为ACSII编码中的八位二进制字符; 将所有字符串分别对应的八位二进制字符按照所述第二目标顺序连接在一起,组成二进制密文。9.根据权利要求6-8中任一所述的文件篡改的检测装置,其特征在于, 进一步包括:第二获取单元,用于获取编码转化表; 所述编码单元,具体用于在所述二进制密文中按从高位到低位的顺序依次取连续的六位二进制字符;将取的六位二进制字符的高位补O,生成相应的八位二进制字符;根据所述编码转化表,将生成的每一个八位二进制字符转化为相应的编码。
【文档编号】H04L29/06GK105933303SQ201610236587
【公开日】2016年9月7日
【申请日】2016年4月15日
【发明人】阚洪敏, 戴鸿君, 于治楼
【申请人】浪潮集团有限公司