Linux下基于elf二进制标准解析的内核Rootkit检测方法及装置与流程

文档序号:20442197发布日期:2020-04-17 22:29阅读:171来源:国知局
本发明涉及网络安全
技术领域
:,尤其涉及一种linux下基于elf二进制标准解析的内核rootkit检测方法、装置及存储设备。
背景技术
::目前中国各个重要领域的基础设施都已经实现网络化、信息化、数据化,各项基础设施的核心部件都离不开网络信息系统,linux系统一直是服务器系统的主流选择,而随着国产操作系统时代的到来,基于类linux系统平台的各种国产操作系统也不断投入市场,针对linux下的病毒木马检测已经成为网络安全研究的核心问题之一,rootkit作为攻击linux系统的必备手段,几乎可以隐藏任何恶意代码程序和操作,包括但不限于进程、网络端口、文件、内核模块等,并且随着技术的发展已经逐步进化成从应用层深入到内核层,甚至可以深入到硬件层面,隐藏性更高难以发现系统软件中恶意的文件和进程。目前针对linux系统的rootkit检测工具多数是应用层的rootkit检测,主流的linux内核层rootkit检测手段有限,常用的手段有基于特征码检测、基于内核栈检测、基于vmm的rootkit检测技术、基于内核挂钩检测、基于内核内存检测、基于内核kallsyms符号表检测等。这些检测技术一般存在着一定的局限性,有的仅仅针对检测特定的内核rootkit手段,或者针对某一特定环境;基于特征码检测只能通过分析现有的内核rootkit检测技术,提取特征码然后做特定检测处理,不能检测未知手段的内核rootkit;基于内核kallsyms符号表检测、基于内核挂钩检测、基于内核栈检测,都是通过函数地址信息,对函数地址进行检测,只能检测使用一般hook技术手段的rootkit,不能检测使用inlinehook技术的rootkit情况;基于内核kallsyms符号表检测,该机制还存在借助外部system.map文件的情况,而该文件是容易被篡改利用的可读文件,导致检测结果不准确,而且system.map文件不包含内核模块的函数表信息,不能检测内核模块中的rootkit;基于vmm的rootkit检测只针对特定环境;综上所述,目前主流内核rootkit检测技术多是针对rootkit行为策略的检测技术,存在缺点和不足,无法全面的对系统进行检测。技术实现要素:有鉴于此,本发明提供了一种linux下基于elf二进制标准解析的内核rootkit检测方法、装置及存储设备,解决了目前主流内核rootkit检测技术多是针对rootkit行为策略的检测技术,存在缺点和不足无法全面的对系统进行检测的问题。第一方面,本发明提供了一种linux下基于elf二进制标准解析的内核rootkit检测方法,包括:加载待测内核,读取其中内核文件或者内核模块文件到内存;读取内核及内核模块的elf文件中代码段和只读数据段的内容;将读取到的代码段和只读数据段内容与运行中的待测内核的代码区和只读数据区进行逐一比对获取差异;若差异出现在只读数据段则直接判定为内核rootkit;若差异出现在代码段,则需进一步排除差异是否属于内核运行时的修改,如果不是则判定为内核rootkit。进一步地,所述加载待测内核,具体为:通过在应用层使用insmod命令直接加载。进一步地,所述读取内核及内核模块的elf文件中代码段和只读数据段的内容,具体为:针对内核文件,获取段表起始地址和大小,解析段表来获取内核及内核模块文件的表段段起始地址、大小、名称和标志类型;针对内核模块文件,在获取段表起始地址和大小,解析段表来获取内核及内核模块文件的表段段起始地址、大小、名称和标志类型的基础上,还需要循环扫描所有的表段,根据获取的表段起始地址和大小,将所有表段段起始地址与运行中的待测内核模块的加载地址偏移相加,模拟内核模块实际的运行加载地址,并且针对内核模块中标志类型为sht_symtab的表段中描述的所有未定义符号,解析运行中内核的符号进行填充,循环遍历所有类型为“sht_rela段”的重定位表段并按照elf标准规则进行相应的计算填充。进一步地,所述获取段表起始地址和大小,解析段表来获取内核及内核模块文件的表段段起始地址、大小、名称和标志类型,具体为:所述内核及内核模块文件的表段包括:.text代码段,.rodata只读数据段,.data段,.smp_locks段,.strtab段,.altinstructions段,.parainstructions段,sht_symtab段,sht_rela段;所述获取内核及内核模块文件的表段段起始地址和大小和名称和标志类型,包括:解析出elf文件格式中段表的起始位置和大小,并循环扫描所有的段信息,根据段名称,解析elf文件格式头包含需要解析的对比的代码段和只读数据段在内存中的地址,具体为:根据运行中待测内核的jump_table相关符号地址,解析elf文件格式头包含需要解析的内核自身修改自身所需要的包含在.data表地址中的.jump_table表信息地址;根据段名称,解析elf文件格式头包含需要解析的内核自身修改自身所需要的.smp_locks表地址;根据段名称,解析elf文件格式头包含需要解析的内核自身修改自身所需要的.altinstructions表地址;根据段名称,解析elf文件格式头包含需要解析的内核自身修改自身所需要的.parainstructions表地址;根据段标志,解析elf文件格式头包含需要解析的内核模块所需要的判断类型为sht_symtab的表地址,根据类型为sht_symtab的表,解析elf文件格式头包含需要辅助使用的.strtab表地址;根据段标志,解析elf文件格式头包含需要解析的内核模块所需要的判断类型为sht_rela的全部表地址。进一步地,排除差异是否属于内核运行时的修改,具体为:排除差异为内核运行时修改,需要对内核及内核模块的elf可执行文件中包含的运行时修改表段进行解析计算,判断内容不同的地址是否属于运行时修改;排除差异为内核运行时修改,需要对是否是内核xsaveopt和fentry机制进行判断,判断内容不同的地址是否属于这两种机制。进一步地,所述排除差异为内核运行时修改,需要对内核及内核模块的elf可执行文件中包含的运行时修改表段进行解析计算,判断内容不同的地址是否属于运行时修改,具体为:如果字节不同的内核内存地址属于内核自身修改自身所需要的包含在.data表地址中的.jump_table表信息地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于内核自身修改自身所需要的.smp_locks表中的地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于符合内核自身修改自身所需要的.altinstructions表中的地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于符合内核自身修改自身所需要的.parainstructions表中的地址,则差异属于内核运行时的修改。第二方面,本发明提供了一种linux下基于elf二进制标准解析的内核rootkit检测装置,所述装置包括存储器和处理器,所述存储器用于存储多条指令,所述处理器用于加载所述存储器中存储的指令以执行:加载待测内核,读取其中内核文件或者内核模块文件到内存;读取内核及内核模块的elf文件中代码段和只读数据段的内容;将读取到的代码段和只读数据段内容与运行中的待测内核的代码区和只读数据区进行逐一比对获取差异;若差异出现在只读数据段则直接判定为内核rootkit;若差异出现在代码段,则需进一步排除差异是否属于内核运行时的修改,如果不是则判定为内核rootkit。进一步地,所述处理器还用于加载所述存储器中存储的指令以执行:所述加载待测内核,具体为:通过在应用层使用insmod命令直接加载。进一步地,所述处理器还用于加载所述存储器中存储的指令以执行:所述读取内核及内核模块的elf文件中代码段和只读数据段的内容,具体为:针对内核文件,获取段表起始地址和大小,解析段表来获取内核及内核模块文件的表段段起始地址、大小、名称和标志类型;针对内核模块文件,在获取段表起始地址和大小,解析段表来获取内核及内核模块文件的表段段起始地址、大小、名称和标志类型的基础上,还需要循环扫描所有的表段,根据获取的表段起始地址和大小,将所有表段段起始地址与运行中的待测内核模块的加载地址偏移相加,模拟内核模块实际的运行加载地址,并且针对内核模块中标志类型为sht_symtab的表段中描述的所有未定义符号,解析运行中内核的符号进行填充,循环遍历所有类型为“sht_rela段”的重定位表段并按照elf标准规则进行相应的计算填充。进一步地,所述处理器还用于加载所述存储器中存储的指令以执行:所述获取段表起始地址和大小,解析段表来获取内核及内核模块文件的表段段起始地址、大小、名称和标志类型,具体为:所述内核及内核模块文件的表段包括:.text代码段,.rodata只读数据段,.data段,.smp_locks段,.strtab段,.altinstructions段,.parainstructions段,sht_symtab段,sht_rela段;所述获取内核及内核模块文件的表段段起始地址和大小和名称和标志类型,包括:解析出elf文件格式中段表的起始位置和大小,并循环扫描所有的段信息,根据段名称,解析elf文件格式头包含需要解析的对比的代码段和只读数据段在内存中的地址,具体为:根据运行中待测内核的jump_table相关符号地址,解析elf文件格式头包含需要解析的内核自身修改自身所需要的包含在.data表地址中的.jump_table表信息地址;根据段名称,解析elf文件格式头包含需要解析的内核自身修改自身所需要的.smp_locks表地址;根据段名称,解析elf文件格式头包含需要解析的内核自身修改自身所需要的.altinstructions表地址;根据段名称,解析elf文件格式头包含需要解析的内核自身修改自身所需要的.parainstructions表地址;根据段标志,解析elf文件格式头包含需要解析的内核模块所需要的判断类型为sht_symtab的表地址,根据类型为sht_symtab的表,解析elf文件格式头包含需要辅助使用的.strtab表地址;根据段标志,解析elf文件格式头包含需要解析的内核模块所需要的判断类型为sht_rela的全部表地址。进一步地,所述处理器还用于加载所述存储器中存储的指令以执行:排除差异是否属于内核运行时的修改,具体为:排除差异为内核运行时修改,需要对内核及内核模块的elf可执行文件中包含的运行时修改表段进行解析计算,判断内容不同的地址是否属于运行时修改;排除差异为内核运行时修改,需要对是否是内核xsaveopt和fentry机制进行判断,判断内容不同的地址是否属于这两种机制。进一步地,所述处理器还用于加载所述存储器中存储的指令以执行:所述排除差异为内核运行时修改,需要对内核及内核模块的elf可执行文件中包含的运行时修改表段进行解析计算,判断内容不同的地址是否属于运行时修改,具体为:如果字节不同的内核内存地址属于内核自身修改自身所需要的包含在.data表地址中的.jump_table表信息地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于内核自身修改自身所需要的.smp_locks表中的地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于符合内核自身修改自身所需要的.altinstructions表中的地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于符合内核自身修改自身所需要的.parainstructions表中的地址,则差异属于内核运行时的修改。第三方面,本发明还提供了一种linux下基于elf二进制标准解析的内核rootkit检测装置,包括:加载模块:用于加载待测内核,读取其中内核文件或者内核模块文件到内存;elf读取模块:用于读取内核及内核模块的elf文件中代码段和只读数据段的内容;比对模块:用于直接读取elf文件中的代码段和只读数据段的内容;将读取代码段和只读数据段内容与运行中待检测内核的代码区和只读数据区进行逐一比对获取差异;内核rootkit判定模块:若差异出现在只读数据段则直接判定为内核rootkit;若差异出现在代码段,则需进一步排除差异是否属于内核运行时的修改,如果不是则判定为内核rootkit。第四方面,本发明提供了一种存储设备,所述存储设备中存储有多条指令,所述指令适于由处理器加载并执行本发明实施例提供的一种linux下基于elf二进制标准解析的内核rootkit检测方法步骤。本发明能够达到如下技术效果:各种手段的内核rootkit,一般都需要针对加载运行的内核或内核模块代码区和只读数据区进行修改,本发明采用elf可执行二进制码进行比对的方案,通过对系统中存在的内核及内核模块elf标准可执行文件进行解析计算,分别与加载运行中的内核及内核模块代码区和数据区比对,排除由内核运行时修改导致的不同,从而判断系统是否有无rootkit恶意程序;本发明是针对各种内核rootkit的实现机制而不是策略来进行检测,可以用于检测未知内核rootkit,通过全面详细的对内核及内核模块代码区和只读数据区进行对比,保证了检测机制的全面性;通过对内核elf格式中的各种段结构进行解析计算,及各种内核运行时修改机制的还原,可以排除由内核运行时修改导致的不同,保证检测的准确性;而且由于linux下内核和内核模块是elf标准二进制文件,修改会导致系统不能够正常启动,不会被恶意篡改,可以保证检测的可靠性;本发明的技术方案可以保证检测手段的全面性、准确性、可靠性。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本发明的一种linux下基于elf二进制标准解析的内核rootkit检测方法流程图;图2为本发明的一种linux下基于elf二进制标准解析的内核rootkit检测方法装置的结构示意图;图3为本发明的一种linux下基于elf二进制标准解析的内核rootkit检测方法装置的又一结构示意图。具体实施方式下面结合附图对本发明实施例进行详细描述。应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。为了更清楚地陈述本发明的具体实施例,对如下名词进行解释:内核rootkit:一种系统内核级病毒木马,其作为内核模块加载后能获取到操作系统高级权限,从而使用各种底层技术隐藏和保护自身,绕开安全软件的检测和查杀。通过修改内核函数和数据结构实现。hook:又叫做钩子,在系统没有调用该目标函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,控制改变该函数的执行行为。一般通过修改包含目标函数地址信息的函数表来实现。是rootkit隐藏信息的最重要手段。inlinehook:一种更加高级的hook技术,不修改函数表中函数地址信息,直接修改函数内容,一般是前五个字节,跳转到钩子函数中,获得控制权。运行时修改:代码在运行时对自身加载到内存运行的代码段数据段进行修改,通常用于根据运行环境优化自身。内核运行时修改是内核加载运行时出于优化调式等目的根据运行环境对自身所作修改。xsaveopt机制:内核运行时会针对特定cpu的特定功能做一些修改优化的机制。fentry机制:内核在一些函数的开头插入一些空指令,便于以后调试修改函数使用的机制。第一方面,本发明实施例提供了一种linux下基于elf二进制标准解析的内核rootkit检测方法,可以用于检测未知内核rootkit,可以全面、准确、可靠地检测内核rootkit。图1为本发明实施例的一种linux下基于elf二进制标准解析的内核rootkit检测方法流程图,包括:s101.加载待测内核,读取其中内核文件或者内核模块文件到内存;s102.读取内核及内核模块的elf文件中代码段和只读数据段的内容;s103.将读取到的代码段和只读数据段内容与运行中的待测内核的代码区和只读数据区进行逐一比对获取差异;s104.若差异出现在只读数据段则直接判定为内核rootkit;若差异出现在代码段,则需进一步排除差异是否属于内核运行时的修改,如果不是则判定为内核rootkit。优选地,所述加载待测内核,具体为:通过在应用层使用insmod命令直接加载。优选地,所述读取内核及内核模块的elf文件中代码段和只读数据段的内容,具体为:针对内核文件,获取段表起始地址和大小,解析段表来获取内核及内核模块文件的表段段起始地址、大小、名称和标志类型;针对内核模块文件,还需要循环扫描所有的表段,根据获取的表段起始地址和大小,将所有表段段起始地址与运行中的待测内核模块的加载地址偏移相加,模拟内核模块实际的运行加载地址;针对内核模块中标志类型为sht_symtab的表段中描述的所有未定义符号,解析实际运行内核的符号来填充;循环遍历所有类型为“sht_rela段”的重定位表段并按照elf标准规则进行相应的计算填充。优选地,所述获取段表起始地址和大小,解析段表来获取内核及内核模块文件的表段段起始地址、大小、名称和标志类型,具体为:所述内核及内核模块文件的表段包括:.text代码段,.rodata只读数据段,.data段,.smp_locks段,.strtab段,.altinstructions段,.parainstructions段,sht_symtab段,sht_rela段;所述获取内核及内核模块文件的表段段起始地址和大小和名称和标志类型,包括:解析出elf文件格式中段表的起始位置和大小,并循环扫描所有的段信息,根据段名称,解析elf文件格式头包含需要解析的对比的代码段和只读数据段在内存中的地址,具体为:根据运行中待测内核的jump_table相关符号地址,解析elf文件格式头包含需要解析的内核自身修改自身所需要的包含在.data表地址中的.jump_table表信息地址;根据段名称,解析elf文件格式头包含需要解析的内核自身修改自身所需要的.smp_locks表地址;根据段名称,解析elf文件格式头包含需要解析的内核自身修改自身所需要的.altinstructions表地址;根据段名称,解析elf文件格式头包含需要解析的内核自身修改自身所需要的.parainstructions表地址;根据段标志,解析elf文件格式头包含需要解析的内核模块所需要的判断类型为sht_symtab的表地址,根据类型为sht_symtab的表,解析elf文件格式头包含需要辅助使用的.strtab表地址;根据段标志,解析elf文件格式头包含需要解析的内核模块所需要的判断类型为sht_rela的全部表地址。优选地,所述排除差异是否属于内核运行时的修改,具体为:排除差异为内核运行时修改,需要对内核及内核模块的elf可执行文件中包含的运行时修改表段进行解析计算,判断内容不同的地址是否属于运行时修改;排除差异为内核运行时修改,需要对是否是内核xsaveopt和fentry机制进行判断,判断内容不同的地址是否属于这两种机制。优选地,所述排除差异为内核运行时修改,需要对内核及内核模块的elf可执行文件中包含的运行时修改表段进行解析计算,判断内容不同的地址是否属于运行时修改,具体为:如果字节不同的内核内存地址属于内核自身修改自身所需要的包含在.data表地址中的.jump_table表信息地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于内核自身修改自身所需要的.smp_locks表中的地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于符合内核自身修改自身所需要的.altinstructions表中的地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于符合内核自身修改自身所需要的.parainstructions表中的地址,则差异属于内核运行时的修改。第二方面,本发明实施例提供了一种linux下基于elf二进制标准解析的内核rootkit检测装置。图2为一种linux下基于elf二进制标准解析的内核rootkit检测方法装置的结构示意图,所述装置包括存储器201和处理器202,所述存储器201用于存储多条指令,所述处理器202用于加载所述存储器中存储的指令以执行:加载待测内核,读取其中内核文件或者内核模块文件到内存;读取内核及内核模块的elf文件中代码段和只读数据段的内容;将读取到的代码段和只读数据段内容与运行中的待测内核的代码区和只读数据区进行逐一比对获取差异;若差异出现在只读数据段则直接判定为内核rootkit;若差异出现在代码段,则需进一步排除差异是否属于内核运行时的修改,如果不是则判定为内核rootkit。优选地,所述处理器202还用于加载所述存储器201中存储的指令以执行:所述加载待测内核,具体为:通过在应用层使用insmod命令直接加载。优选地,所述处理器202还用于加载所述存储器201中存储的指令以执行:所述读取内核及内核模块的elf文件中代码段和只读数据段的内容,具体为:针对内核文件,读取内核及内核模块的elf文件,获取段表起始地址和大小,解析段表来获取内核及内核模块文件的表段段起始地址和大小和名称和标志类型;针对内核模块文件,还需要循环扫描所有的表段,根据获取的表段起始地址和大小,将所有表段段起始地址与运行中的待测内核模块的加载地址偏移相加,模拟内核模块实际的运行加载地址;针对内核模块中标志类型为sht_symtab的表段中描述的所有未定义符号,解析实际运行内核的符号来填充;循环遍历所有类型为“sht_rela段”的重定位表段并按照elf标准规则进行相应的计算填充。优选地,所述处理器202还用于加载所述存储器201中存储的指令以执行:所述获取段表起始地址和大小,解析段表来获取内核及内核模块文件的表段段起始地址、大小、名称和标志类型,具体为:所述内核及内核模块文件的表段包括:.text代码段,.rodata只读数据段,.data段,.smp_locks段,.strtab段,.altinstructions段,.parainstructions段,sht_symtab段,sht_rela段;所述获取内核及内核模块文件的表段段起始地址和大小和名称和标志类型,包括:解析出elf文件格式中段表的起始位置和大小,并循环扫描所有的段信息,根据段名称,解析elf文件格式头包含需要解析的对比的代码段和只读数据段在内存中的地址,具体为:根据运行中待测内核的jump_table相关符号地址,解析elf文件格式头包含需要解析的内核自身修改自身所需要的包含在.data表地址中的.jump_table表信息地址;根据段名称,解析elf文件格式头包含需要解析的内核自身修改自身所需要的.smp_locks表地址;根据段名称,解析elf文件格式头包含需要解析的内核自身修改自身所需要的.altinstructions表地址;根据段名称,解析elf文件格式头包含需要解析的内核自身修改自身所需要的.parainstructions表地址;根据段标志,解析elf文件格式头包含需要解析的内核模块所需要的判断类型为sht_symtab的表地址,根据类型为sht_symtab的表,解析elf文件格式头包含需要辅助使用的.strtab表地址;根据段标志,解析elf文件格式头包含需要解析的内核模块所需要的判断类型为sht_rela的全部表地址。优选地,所述处理器202还用于加载所述存储器201中存储的指令以执行:所述排除差异是否属于内核运行时的修改,具体为:排除差异为内核运行时修改,需要对内核及内核模块的elf可执行文件中包含的运行时修改表段进行解析计算,判断内容不同的地址是否属于运行时修改;排除差异为内核运行时修改,需要对是否是内核xsaveopt和fentry机制进行判断,判断内容不同的地址是否属于这两种机制。优选地,所述处理器202还用于加载所述存储器201中存储的指令以执行:所述排除差异为内核运行时修改,需要对内核及内核模块的elf可执行文件中包含的运行时修改表段进行解析计算,判断内容不同的地址是否属于运行时修改,具体为:如果字节不同的内核内存地址属于内核自身修改自身所需要的包含在.data表地址中的.jump_table表信息地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于内核自身修改自身所需要的.smp_locks表中的地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于符合内核自身修改自身所需要的.altinstructions表中的地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于符合内核自身修改自身所需要的.parainstructions表中的地址,则差异属于内核运行时的修改。第三方面,本发明实施例还提供了一种linux下基于elf二进制标准解析的内核rootkit检测装置。图3为一种linux下基于elf二进制标准解析的内核rootkit检测方法装置的又一结构示意图,包括:加载模块31:用于加载待测内核,读取其中内核文件或者内核模块文件到内存;elf读取模块32:用于读取内核及内核模块的elf文件中代码段和只读数据段的内容;比对模块33:用于直接读取elf文件中的代码段和只读数据段的内容;将读取代码段和只读数据段内容与运行中待检测内核的代码区和只读数据区进行逐一比对获取差异;内核rootkit判定模块34:用于若差异出现在只读数据段则直接判定为内核rootkit;若差异出现在代码段,则需进一步排除差异是否属于内核运行时的修改,如果不是则判定为内核rootkit。第四方面,本发明实施例提供了一种存储设备,所述存储设备中存储有多条指令,所述指令适于由处理器加载并执行本发明实施例提供的一种linux下基于elf二进制标准解析的内核rootkit检测方法步骤。本发明实施例的技术方案能够达到如下技术效果:各种手段的内核rootkit,一般都需要针对加载运行的内核或内核模块代码区和只读数据区进行修改,本发明采用elf可执行二进制码进行比对的方案,通过对系统中存在的内核及内核模块elf标准可执行文件进行解析计算,分别与加载运行中的内核及内核模块代码区和数据区比对,排除由内核运行时修改导致的不同,从而判断系统是否有无rootkit恶意程序;本发明是针对各种内核rootkit的实现机制而不是策略来进行检测,可以用于检测未知内核rootkit,通过全面详细的对内核及内核模块代码区和只读数据区进行对比,保证了检测机制的全面性;通过对内核elf格式中的各种段结构进行解析计算,及各种内核运行时修改机制的还原,可以排除由内核运行时修改导致的不同,保证检测的准确性;而且由于linux下内核和内核模块是elf标准二进制文件,修改会导致系统不能够正常启动,不会被恶意篡改,可以保证检测的可靠性;本发明的技术方案可以保证检测手段的全面性、准确性、可靠性。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1