[发明专利]一种针对处理器指令集安全缺陷的隐藏指令检测技术在审
申请号: | 202210412481.1 | 申请日: | 2022-04-19 |
公开(公告)号: | CN114896595A | 公开(公告)日: | 2022-08-12 |
发明(设计)人: | 崔宝江;董任海;孙溢 | 申请(专利权)人: | 北京邮电大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/71 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100876 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 针对 处理器 指令 集安 缺陷 隐藏 检测 技术 | ||
1.权利要求1:一种针对处理器指令集安全缺陷的隐藏指令检测技术,其特征在于,包括以下步骤:
步骤S1:基于指令格式分析的隐藏指令搜索算法。根据待测指令集的指令格式分析指令集中冗余的指令空间,然后对其进行剪枝。在内存执行的过程中,在确定待测指令的长度后,通过对执行环境的恢复,完成单一指令的执行;
步骤S2:基于操作系统信号与反汇编器的指令分析。基于步骤S1中提出的单一指令执行,每条指令会得到来自操作系统的信号。与此同时将指令放入反汇编器中,并以两者的数据,判断其是否为隐藏指令;
步骤S3:基于静态分析与动态执行的指令筛选机制。在步骤S2得到隐藏指令的基础上,针对其数据量大、结果冗余和误判的问题,提出了基于静态分析与动态执行的指令筛选机制,其中静态分析解决的是数据量大和结果冗余的问题,动态执行解决的是误判的问题。通过此次指令筛选可以将检测出的指令再次精确的分类;
步骤S4:面向处理器全架构的隐藏指令检测方法。结合S1、S2、S3中的方法,建立面向处理器全架构的隐藏指令检测方法,并将最终的分析结果反馈至待测指令集。
2.权利要求2:如权利要求1中步骤S1所述,在实现基于指令格式分析的隐藏指令搜索算法时,要解决两个问题。一是不同处理器指令集架构中指令的长度问题,尤其是x86中的变长指令;二是针对现有的隐藏指令检测方法仍然存在的较大的指令搜索空间,如何对其进行剪枝与优化。
2.1、对于RISC中的指令集,无论是定长指令集或混长指令集,其指令长度是固定的,如A32指令集中指令长度为32位,RV64GC指令集长度为16位和32位,对于这种简单的情况,在检测前对配置参数进行调整即可。对于x86中从1字节到15字节的变长指令集,可以通过在内存中,开辟两个相邻内存页MP1与MP2,并通过CPU产生的#PF异常来判断其长度。
2.2、针对不同的CPU指令集架构,针对其不同的特点提出了两类基于指令格式分析的隐藏指令搜索算法,其中针对RISC指令集提出了基于全遍历搜索和指令前缀匹配的隐藏指令搜索算法,针对CISC指令集提出了基于深度优先搜索和指令格式匹配的隐藏指令搜索算法。考虑到x86的指令格式比较复杂,其可分为以下几个部分:Instruction Prefixes(1字节,可能存在多个)、Opcode(1,2或3字节)、ModR/M(1字节,可选)、SIB(1字节,可选)、Displacement(0,1,2或4字节),Immediate(0,1,2或4字节)。
3.权利要求3:如权利要求1中S2所述,在判断出待测指令长度和确定好对待测指令空间中指令的搜索方式后,针对单一指令的隐藏指令判断,本发明提出了一种基于指令执行产生的操作系统信号和反汇编器结果的隐藏指令分析方法。
3.1、其中,基于指令在操作系统中执行产生的信号,如SIGINT,SIGILL,SIGTRAP,SIGSEGV等来判断该指令是否可以在该操作系统下执行,其中针对SIGILL信号,其si_code中的ILL_OPC代表非法操作码,其可以表明该指令并不能在此CPU下执行。
3.2、其中,反汇编器应与待测指令的指令集规范高度一致。在本发明中,在x86指令集上使用了Capstone和XED,所有RISC指令集架构使用了Capstone。在此分析方法中,定义反汇编器不能识别出指令即为该指令不在指令集规范中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210412481.1/1.html,转载请声明来源钻瓜专利网。