【技术实现步骤摘要】
Linux下基于elf二进制标准解析的内核Rootkit检测方法及装置
本专利技术涉及网络安全
,尤其涉及一种Linux下基于elf二进制标准解析的内核Rootkit检测方法、装置及存储设备。
技术介绍
目前中国各个重要领域的基础设施都已经实现网络化、信息化、数据化,各项基础设施的核心部件都离不开网络信息系统,Linux系统一直是服务器系统的主流选择,而随着国产操作系统时代的到来,基于类Linux系统平台的各种国产操作系统也不断投入市场,针对Linux下的病毒木马检测已经成为网络安全研究的核心问题之一,Rootkit作为攻击Linux系统的必备手段,几乎可以隐藏任何恶意代码程序和操作,包括但不限于进程、网络端口、文件、内核模块等,并且随着技术的发展已经逐步进化成从应用层深入到内核层,甚至可以深入到硬件层面,隐藏性更高难以发现系统软件中恶意的文件和进程。目前针对Linux系统的Rootkit检测工具多数是应用层的Rootkit检测,主流的Linux内核层Rootkit检测手段有限,常用的手段有基于特征码检 ...
【技术保护点】
1.一种Linux下基于elf二进制标准解析的内核Rootkit检测方法,其特征在于,包括:/n加载待测内核,读取其中内核文件或者内核模块文件到内存;/n读取内核及内核模块的elf文件中代码段和只读数据段的内容;/n将读取到的代码段和只读数据段内容与运行中的待测内核的代码区和只读数据区进行逐一比对获取差异;/n若差异出现在只读数据段则直接判定为内核Rootkit;若差异出现在代码段,则需进一步排除差异是否属于内核运行时的修改,如果不是则判定为内核Rootkit。/n
【技术特征摘要】
1.一种Linux下基于elf二进制标准解析的内核Rootkit检测方法,其特征在于,包括:
加载待测内核,读取其中内核文件或者内核模块文件到内存;
读取内核及内核模块的elf文件中代码段和只读数据段的内容;
将读取到的代码段和只读数据段内容与运行中的待测内核的代码区和只读数据区进行逐一比对获取差异;
若差异出现在只读数据段则直接判定为内核Rootkit;若差异出现在代码段,则需进一步排除差异是否属于内核运行时的修改,如果不是则判定为内核Rootkit。
2.如权利要求1所述的方法,其特征在于,所述加载待测内核,具体为:通过在应用层使用insmod命令直接加载待测内核。
3.如权利要求1所述的方法,其特征在于,所述读取内核及内核模块的elf文件中代码段和只读数据段的内容,具体为:针对内核文件,获取段表起始地址和大小,解析段表来获取内核及内核模块文件的表段段起始地址、大小、名称和标志类型;针对内核模块文件,在获取段表起始地址和大小,解析段表来获取内核及内核模块文件的表段段起始地址、大小、名称和标志类型的基础上,还需要循环扫描所有的表段,根据获取的表段起始地址和大小,将所有表段段起始地址与运行中的待测内核模块的加载地址偏移相加,模拟内核模块实际的运行加载地址,并且针对内核模块中标志类型为SHT_SYMTAB的表段中描述的所有未定义符号,解析运行中内核的符号进行填充,循环遍历所有类型为“SHT_RELA段”的重定位表段并按照elf标准规则进行相应的计算填充。
4.如权利要求3所述的方法,其特征在于,所述获取段表起始地址和大小,解析段表来获取内核及内核模块文件的表段段起始地址、大小、名称和标志类型,具体为:所述内核及内核模块文件的表段包括:.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的全部表地址。
5.如权利要求4所述方法,其特征在于,所述排除差异是否属于内核运行时的修改体为:排除差异为内核运行时修改,需要对内核及内核模块的elf可执行文件中包含的运行时修改表段进行解析,判断内容不同的地址是否属于运行时修改;排除差异为内核运行时修改,需要对是否是内核xsaveopt和fentry机制进行判断,判断内容不同的地址是否属于这两种机制。
6.如权利要求5所述的方法,其特征在于,所述排除差异为内核运行时修改,需要对内核及内核模块的elf可执行文件中包含的运行时修改表段进行解析计算,判断内容不同的地址是否属于运行时修改,具体为:如果字节不同的内核内存地址属于内核自身修改自身所需要的包含在.data表地址中的.jump_table表信息地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于内核自身修改自身所需要的.smp_locks表中的地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于符合内核自身修改自身所需要的.altinstructions表中的地址,则差异属于内核运行时的修改;如果字节不同的内核内存地址属于符合内核自身修改自身所需要的.parainstructions表中的地址,则差异属于内核运行时的修改。
7.一种Linux下基于elf二进制标准解析的内核Rootkit检测装置,其特征在于,所述装置包括存储器和处理器,所述存储器用于存储多条指令,所述处理器用于加载所述存储器中存储的指令以执行:
加载待测内核,读取其中内核文件或者内核模块文件到内存;
读取内核及内核模块的elf文件中代码段和只读数据段的内容;
将读取到的代码段和只读数据段内容与运行中的待测内核的代码区和只读数据区进行逐一比对获取差异;
若差异出现在只读数据段则直接判定为内核Rootkit;若差异出现在代码段,则需进一步排除差异是否属于内核运行时的修改,如...
【专利技术属性】
技术研发人员:董事,尚超,徐翰隆,肖新光,王小丰,
申请(专利权)人:北京安天网络安全技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。