一种软硬件结合的DSP芯片隐藏指令挖掘方法技术

技术编号:37822492 阅读:89 留言:0更新日期:2023-06-09 09:59
该发明专利技术公开了一种软硬件结合的DSP芯片隐藏指令挖掘方法,涉及领域为硬件安全领域。该发明专利技术在已知公开指令集文档的情况下,根据公开指令的操作码分布特点生成测试指令集,剔除其中的公开指令压缩指令搜索空间,利用DSP硬件处理器对待测指令进行测试,能够有效的在处理器中执行待测指令并根据执行效果挖掘出隐藏指令,并且实现了在硬件处理器上的隐藏指令自动化挖掘。动化挖掘。动化挖掘。

【技术实现步骤摘要】
一种软硬件结合的DSP芯片隐藏指令挖掘方法


[0001]本专利技术涉及领域为硬件安全领域,针对隐藏指令对DSP芯片的威胁,提出了一种软硬件结合的DSP芯片隐藏指令挖掘方法,可以有效的挖掘出指定的DSP芯片中的隐藏指令。

技术介绍

[0002]计算机和数字系统已成为现代生活不可或缺的一部分,个人和整个社会都在很大程度上依赖它,各种通用及专用处理器作为计算机和数字系统的重要组成部分应运而生。数字信号处理器(Digital Signal Processor,DSP)具有强大的数据处理能力和高运行速度,被广泛应用于数字信号处理领域,因此,DSP的安全性问题也越来越重要。但目前对于DSP处理器安全问题的研究还很匮乏,大多数研究还是针对X86处理器的安全问题,我们可以通过分析X86处理器的安全问题来发现它们的共通性,从中寻找DSP处理器也存在的安全问题。
[0003]早在1994年,Thomas R.Nicely发现了在Pentium处理器上的FDIV bug会导致浮点数除法出现错误;1997年Pentium处理器上的F00F异常指令可导致CPU宕机。2018年BlackHat大会上,Domas Christopher发现了威盛(VIA)C3处理器中的后门问题,是典型的基于未公开指令的后门,通过利用该后门普通用户可以提升至超级用户权限。指令集作为连接系统硬件单元和软件系统的重要接口,是检测处理器是否存在安全缺陷的极好入口。CPU执行一个操作或者是实现一个程序都是通过指令来完成的,这在DSP处理器中也不例外。一个处理器在设计之初,处理器厂商往往会为了测试调试的便利,加入一些只供于测试调试的指令,这些指令对于软件开发人员来说是隐藏的、不公开的。但这些指令是存在后门风险的。
[0004]2009年,DUFLOT L.通过将代码嵌入虚拟机以模拟CPU隐藏的后门程序,证明了隐藏指令对计算机系统安全构成了威胁,但是它没有提供解决此类问题的方法。Sandsifter可以被认为是第一个针对隐藏指令搜索的自动工具,它可以有效地避免无效的指令空间,但是该方法在效率和误报率上仍然存在局限性,难以实用。朱建平等人提出了CPU安全基准,并提到他们的隐藏指令搜索工具比Sandsifter有了改进。然而,对于它们的理论模型、系统设计和实验结果都没有详细的介绍。杨志成提出了一种基于逆向工程的DSP处理器隐藏指令搜索方法,但是存在挖掘效率低及漏挖、误挖的问题。
[0005]综上所述,目前大多数针对隐藏指令的研究主要针对于X86处理器,对于DSP处理器的隐藏指令挖掘鲜有问津。本方法针对DSP的指令集层面安全进行了深入研究,可以根据DSP软件仿真器实现DSP隐藏指令的自动化快速挖掘,并在硬件处理器上得到验证。

技术实现思路

[0006]本专利技术提出了一种软硬结合的DSP芯片隐藏指令挖掘方法。该方法主要用于挖掘DSP中存在影响处理器安全的未公开的隐藏指令,挖掘至需要获取到处理器的公开指令集文档,根据指令集文档生成指令,剔除公开指令后放入处理器中自动执行测试,并能保证隐
藏指令挖掘的正确性与完整性。解决了现有的无法针对DSP处理器隐藏指令自动挖掘的问题。该方法相对于现有技术,加入了对硬件处理器中隐藏指令执行的验证,并实现了挖掘自动化。
[0007]本专利技术旨在分析DSP公开指令集的基础上,梳理DSP的指令格式,对DSP处理器中的隐藏指令进行挖掘。首先根据公开指令集文档构建指令从二进制形式到汇编形式的反汇编工具;其次,根据DSP的指令集特点生成指令;再次,将生成的指令利用反汇编工具进行反汇编分析,剔除其中可以反汇编的公开指令,保留不能反汇编的未定义指令;最后,将未定义指令嵌入DSP处理器的程序存储器中进行执行测试,记录其中能通过处理器执行的指令,即隐藏指令。
[0008]本专利技术技术方案为:一种软硬件结合的DSP芯片隐藏指令挖掘方法,该方法包括:
[0009]步骤1:指令生成;
[0010]DSP处理器的指令是一条长度为l的定长二进制指令I,将其拆分为I
op
,I
or
,I
fv
,I
cond
几个部分;I
op
表示操作码,I
or
表示操作数,I
fv
表示固定值,I
cond
表示条件域;以上四个部分的长度分别为l
op
,l
or
,l
fv
,l
cond
,一条指令的高有效位是它的操作码位,根据DSP处理器指令集映射表生成待测指令,保持待测指令的固定值I
fv
部分与DSP处理器公开指令集文档中指令的固定值部分相同;操作数I
or
部分取0~2
lor

1中的随机值,并将其设置成l
or
位长的二进制形式;条件域I
cond
部分按照公开指令集文档中的指令无条件执行设置值;对操作码I
op
部分进行从0到2
lop

1的遍历,并使I
op
部分的长度保持为l
op
位,之后将各部分按照指令的通用格式组合起来即完成生成待测指令,如式(1)所示;
[0011]I
i
={I
cond
,I
or
,I
op
,I
fv
} (1)
[0012]其中:
[0013]步骤2:指令反汇编分析;
[0014]这一步骤目的是剔除出生成的待测指令集合中的公开指令,仅保留除公开指令的未定义指令;步骤1生成待测指令I
i
组合为待测指令集合I,I即为隐藏指令搜索空间,另构建集合U用于存放未定义指令;假设I中有n条指令,如式(2);
[0015]I={I1,I2...I
i
...I
n
},1≤i≤n (2)
[0016]利用DSP处理器对应的公开指令集文档实现反汇编工具,反汇编工具能实现目标型号DSP处理器的二进制形式指令到汇编形式指令的反汇编,只能翻译出指令集文档中公开的指令;
[0017]从集合I中依次取出指令I
i
放入反汇编工具中进行分析,指令反汇编分析后会出现两种结果,一种是指令能够被反汇编,一种是指令不能被反汇编,反汇编结果为C,见式(3)。
[0018][0019]C=0表示第i条二进制指令I
i
不能被反汇编,则这条指令不属于公开指令,将此条
指令记录并加入集合U;C=1表示第i条二进制指令I
i
可以被反汇编,则这条指令属于公开指令,对此指令不作处理;遍历集合I,每个元素I
i
都进行反汇编分析;
[0020]步骤3:未定义指令执行测试;
[0021]通过步骤2得到未定义指令集合U,集合U本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软硬件结合的DSP芯片隐藏指令挖掘方法,该方法包括:步骤1:指令生成;DSP处理器的指令是一条长度为l的定长二进制指令I,将其拆分为I
op
,I
or
,I
fv
,I
cond
几个部分;I
op
表示操作码,I
or
表示操作数,I
fv
表示固定值,I
cond
表示条件域;以上四个部分的长度分别为l
op
,l
or
,l
fv
,l
cond
,一条指令的高有效位是它的操作码位,根据DSP处理器指令集映射表生成待测指令,保持待测指令的固定值I
fv
部分与DSP处理器公开指令集文档中指令的固定值部分相同;操作数I
or
部分取0~2
lor

1中的随机值,并将其设置成l
or
位长的二进制形式;条件域I
cond
部分按照公开指令集文档中的指令无条件执行设置值;对操作码I
op
部分进行从0到2
lop

1的遍历,并使I
op
部分的长度保持为l
op
位,之后将各部分按照指令的通用格式组合起来即完成生成待测指令,如式(1)所示;I
i
={I
cond
,I
or
,I
op
,I
fv
}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中:步骤2:指令反汇编分析;这一步骤目的是剔除出生成的待测指令集合中的公开指令,仅保留除公开指令的未定义指令;步骤1生成待测指令I
i
组...

【专利技术属性】
技术研发人员:王坚郭世泽陈哲李桓段鸿瑞
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1