关闭

女兔帮

一种远程控制CPU激活硬件木马的方法与流程

更新时间:2025-02-19 03:41:50 浏览:

一种远程控制CPU激活硬件木马的方法与流程(图1)

本发明公开了一种基于-1000架构搭建的开源32位软核处理器-的远程触发机理和一个新型的硬件木马(a2)。通过使用外部中断模块,在不影响正常工作的情况下,用无线传输来远程控制特定寄存器(epcr)的特定位(第0位)电平翻转达到激活a2木马的目的,从而可有效控制cpu的工作状态。

背景技术:

集成电路产业的全球化使得第三方ip核的安全隐患增加,在ip核中植入木马会影响电路性能、改变电路预期的功能。据中科网威公司报道透露,通过对国外x86架构cpu进行测试,发现x86芯片存在许多功能不明的“多余模块”以及x86指令集中没有被公布包括浮点操作加解密等20余条指令。这些模块指令可以轻易获取用户的权限,可以获取cpu内部状态,对特定位置进行读写,甚至无视各种软件保护措置激活一小段微代码来控制计算机复位死机。尽管全球cpu公司一直宣称自己多么大公无私,产品多么可靠,但是无论在海湾战争还是叙利亚战争中防空雷达的突然失效向人民表明恶意攻击的威胁,给cpu留后门的行为一直存在。

硬件木马()是指插入原始电路的微小的恶意电路,这种电路潜伏在正常的电路之中用来改变原本电路的逻辑功能以及泄露秘密信息。这个微小电路隐藏在正常电路的内部,当电路达到某个特定值的时候,该微小电路就会被成功激活,从而对电路造成原本不该有的影响以及输出值,使得电路能够按照木马设计者的要求进行篡改。比如泄露信息给攻击者,或者直接损害电路,给电路造成不可逆的损伤。

家族有数量众多的实现版本,其中本发明使用的是性能最好的一员,它可以在fpga器件上轻松的实现。是一款标量处理器,具有哈佛结构,五级流水线,用户可以根据需求对其功能进行相应删减以节约资源,如cache,tlb等均可进行配置以合理调整片上面积。作为一款可扩展,性能较高,功耗较低的精简指令集cpu,在国内已进入商业领域,有许多产品使用作为其核心。本发明也使用进行开发和设计,其源代码以及开发工具均可在官网直接获得。

技术实现要素:

本发明的技术目的是:

通过使用外部中断的方式,在不影响正常工作的情况下,用无线传输来远程控制特定寄存器(epcr)的特定位(第0位)电平翻转达到激活a2硬件木马的要求。

本发明实现的技术方案:

使用本发明的远程控制机理如图1所示,包括三个阶段:首先中断源发出中断命令给中的pic模块,中的pic模块对中断源进行判断,判断哪个中断信号优先级高,并且将信号整理后发送给。这款cpu自带32个外部中断,因为这项发明中,只用了一个外部中断的功能,所以就默认使用第一个外部中断,并且也省略掉判断外部中断优先级的过程。其次执行中断程序让epcr第0位翻转150次激活a2木马。在在激活硬件木马得到让得到攻击者想要的结果后,中断处理例程通知中断源中断已经处理完毕,在中断源协议地址利用访存指令写参数让中断源信号降下来,然后在中pic模块中的特殊寄存器里写参数,表示pic已经完成工作并退出中断处理例程继续执行主程序。

交叉编译的过程如图2所示,因为平台资源有限,所以本文在x86平台上开发针对于的应用程序,在x86平台上生成平台上可执行的二进制代码就是交叉编译的过程。建立好交叉编译环境后,编写汇编语言的交叉编译链shell脚本,能够将汇编语言编译成平台可识别的机器码。

epcr寄存器中的低两位永远不会翻转,这是理想的木马插入节点。在正常工作中,只有l.sys指令对应着控制epcr寄存器,所以我们将a2木马插入在epcr寄存器的第0位处,完全可以摆脱a2木马误触发的困扰。为了验证该节点不会在正常工作时翻转,通过让运行——嵌入式基准测试集来验证在不同场景工作下epcr第0位的隐蔽性。选择嵌入式系统基准测试套件,因为它针对的是处理器类,最适合。cpu的实际使用环境千差万别,不可能每一种环境都去进行测试,所以就将具有代表性的程序挑选出来组成了,它包括一组流行的学术界和工业界的基准应用程序,选择使用了六个子类来进行测试保证了测试的准确性和完整性,在运行6个子类35个嵌入式程序后,与传统的低概率木马触发节点相比较而言,选择的节点epcr(0)翻转次数为0,成功的验证了该节点在各种环境测试下比传统低概率节点更加具有隐蔽性。

相比于常见的硬件木马激活,本发明有以下优点:

1.能够避免硬件木马的误触发。通过对开源cpu-的架构以及指令集的分析,找到了一个cpu正常工作时,永远不会翻转的节点-epcr寄存器的第0位作为a2硬件木马的插入节点。通过这个节点的选取,彻底摆脱了传统的低概率硬件木马植入节点,能够成功的避免硬件木马在使用过程中会被误触发而被检测到。

2.能够保证整个硬件木马激活的隐蔽性。在激活a2木马后,继续执行因为激活a2木马而中断的程序。激活a2木马的整个过程只有几微秒,使得检测更加具有难度,无法精确的定位到这个漏洞。在控制epcr寄存器翻转时,不影响epcr寄存器其余位的状态而被发现检测到。

3.能够远程控制cpu激活硬件木马。对于现有的技术,对开源cpu-中控制a2木马激活的领域中,只能局限于在片上进行操作,离开片外后对木马的激活不可控。本发明通过使用外部中断的功能,用无线模块远程控制中的a2木马激活,使攻击者有效第控制处理器的状态。

附图说明

图1远程控制机理

图2交叉编译的过程

具体实施方式

以下结合附图详细描述本发明所提供的远程控制cpu激活硬件木马的过程,但不构成对本发明的限制。

该方法主要涵盖两大部分,硬件木马节点的选取,以及远程控制硬件木马在cpu中激活的方法。具体实现步骤如下:

第一部分:

硬件木马节点的选取(一)

步骤1:找到这款开源软核cpu在正常使用过程中不会翻转的节点作为a2木马的插入节点。

数据在存储器中的存放是按照字节存放的,也是按照字节访问存储器里面的指令或者是数据。是32位处理器,一个ddr内存一个地址存8位数也就是一个字节。如果要读出一个数,就需要读四个字节,也就是内存中四个地址的数据。所以每处理一条指令时,pc值就会加4,然后去读取下一条指令。

cpu复位后的默认地址是0x100的位置。那么下一条指令的pc值就是104,而不是101。所以我们注意到,指令的pc值,也就是地址,是以4的倍数往上增加,而低两位的地址恒为零。1.sys是异常类指令,功能是当发生异常的时候,当前指令的下一条指令地址会被存入epcr寄存器中。比如地址在104时发生了异常,则地址108就会被存入epcr寄存器中,4的2进制代码就是100,所以epcr寄存器的低两位就可以满足硬件木马不会误触发的需求,在正常工作时该寄存器的低两位不会翻转。

验证epcr寄存器第0位的隐蔽性(二)

步骤2:在运行6个子类35个嵌入式程序后,与传统的低概率木马触发节点相比较而言,选择的节点epcr(0)翻转次数为0,成功的验证了该节点在各种环境测试下比传统低概率节点更加具有隐蔽性。

第二部分:远程激活硬件木马

图1为使用外部中断远程控制激活硬件木马的过程。

步骤3:我们在选取epcr第0位作为a2木马的插入节点,但是正常的指令集l.sys并不能使epcr第0位翻转,那么就要分析-1000架构来控制epcr寄存器的第0位进行翻转。-1000架构搭建的cpu中,epcr寄存器的地址被规定为32,所以通过汇编语言的编写直接对该地址的epcr寄存器进行读写。在编写完汇编语言后,还需要将汇编语言进行交叉编译得到可以在平台上可执行的二进制代码进行仿真。

步骤4:将交叉编译得到的二进制代码存放在cpu中的qmem中,并让cpu执行该段代码激活a2木马。

图2为交叉编译链工作的过程。首先编译过程是按照不同的子功能,依照先后顺序组成的一个复杂的流程那么编译过程包括了预处理、编译、汇编、链接等功能。既然有不同的子功能,那每个子功能都是一个单独的工具来实现,它们合在一起形成了一个完整的工具集。同时编译过程又是一个有先后顺序的流程,它必然牵涉到工具的使用顺序,每个工具按照先后关系串联在一起,这就形成了一个链式结构。因此,交叉编译链就是为了编译跨平台体系结构的程序代码而形成的由多个子工具构成的一套完整的工具集。同时,它隐藏了预处理、编译、汇编、链接等细节,当指定了源文件(.c)或(.s)时,它会自动按照编译流程调用不同的子工具,自动生成最终的二进制程序映像(.bin)。

步骤5:选择使用外部中断的方式来控制cpu激活硬件木马,所以要把中断源和cpu进行连接,该连接方式既要遵守规范也要遵守中断源本身的外设规则。

步骤6:施加给中断源一个激励,控制cpu激活硬件木马。

步骤7:在激活a2木马后,观察cpu内部信号情况,确认cpu在激活a2木马后,会继续执行被中断的程序,使监测整个激活过程的难度增大。

本发明基于对cpu架构以及指令集的了解,找到了一个在cpu正常工作时永远不触发的节点,并将该节点作为a2木马的插入节点。通过编写汇编语言并进行交叉编译,能够通过外部中断的方式远程控制cpu执行经交叉编译得到的针对平台的二进制机器码,在不影响cpu正常进程的情况下激活木马。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的思想和范围,本发明的保护范围应以权利要求书所述为准。

你可能感兴趣的