一种用于实现动态指令集随机化的CPU制造技术

技术编号:16270359 阅读:395 留言:0更新日期:2017-09-22 22:00
本发明专利技术涉及一种用于实现动态指令集随机化的CPU,属于嵌入式系统安全技术领域。本发明专利技术的CPU利用随机数产生电路产生随机数,并将产生的随机数送入寄存器,利用随机化算法和随机数对指令进行随机化处理,并在取指阶段和译码阶段之间增加指令翻译电路,该电路包括一个选择器,该选择器响应于一个选择信号,以确定将第一路信号或者第二路信号送入译码器,第一路信号为指令管线中处于取指令阶段的指令,第二路信号为第一路信号根据寄存器中的存储的随机数和反随机化的算法得到的指令。本发明专利技术在CPU硬件随机化的支持下,能够实现内核的随机化、动态化,对于代码注入类攻击有很好的防御效果,相比于使用虚拟机或者二进制实现指令集随机化,降低了运行损耗。

【技术实现步骤摘要】
一种用于实现动态指令集随机化的CPU
本专利技术涉及一种用于实现动态指令集随机化的CPU,属于嵌入式系统安全

技术介绍
物联网(IOT)是新一代信息技术的重要组成部分,将无所不在的事物包含到同一个网络,随之而来的安全问题一直广受人们关注。黑客可以利用设备漏洞攻击,严重影响了个人隐私安全、个人支付安全和人身安全。嵌入式系统作为IOT的支撑技术,保障嵌入式系统的安全性是保证IOT安全的重要途径。物联网时代,几乎所有嵌入式系统都具有互联网接入能力,体系结构从封闭到开放,形成了互联网中非安全因素对嵌入式系统的入侵渠道。代码注入型攻击是黑客常用的攻击手段,利用缓存区溢出漏洞注入攻击代码执行,从而获取系统权限,窃取信息,破坏系统的正常运行。由于漏洞不可能被消除,只能通过各种措施进行缓解,而现有的漏洞防护和缓解技术无法根除漏洞的威胁。同时黑客技术不断发展,代码重用攻击与内存泄露逐步成为绕过当前防御手段的主要手段,造成了巨大安全隐患,引起了研究界的重视。地址空间随机化(ASLR)和数据执行保护(DEP)是当前运用最广的防御机制,由于质量、功率、成本、性能和内存的限制,ASLR与DEP难以在嵌入式系统中广泛使用。攻击者可以使用堆喷射(HeapSpray)技术绕过ASLR机制,代码重用攻击(比如说ROP)能利用已有的可执行代码,重新构建恶意利用,从而绕过DEP防御。针对DEP+ASLR的组合防御,JIT-Spray和JIT-ROP提供了绕过此组合防御的方法,同时也容易遭受内存泄露攻击的威胁。在应用层内核保护中,监控程序以应用程序的形式存在,实现对第三方软件的隔离执行与监控,主要用于防御由于应用程序漏洞引发的攻击,但是它不能保护内核层及以下的层次;在操作系统层内核保护中,监控程序具有与内核相同的地址空间和操作权限,以驱动或者可加载的模块方式实现,能够防护多数的内核漏洞攻击,但是因为监控程序运行在内核层,攻击者可以利用监控程序的漏洞从而绕过它估计内核;在硬件层与操作系统层之间的hypervisor,实现对底层硬件操作和内核行为进行截获和验证,系统性能损失较大,需要对内核底层代码做大量修改,工作量大。在硬件层实现内核保护的支持,目标主要是可信计算基的支持,需要专用的硬件支持,通用性差。同时需要从信任根开始,到硬件平台,再到BIOS,到BOOTLoader,再到操作系统,最后到应用程序,逐级度量,可用于实现内核的安全启动以及文件系统的保护。然而可信平台的管理,信任链的度量以及可信链条的建立与传递在内核设计中需要修改大量代码,工作量巨大。指令随机化(ISR)技术是MID(MovingTargetsDefense,移动目标防御技术)的重要组成部分,为运行的程序提供动态的、随机的指令集,而攻击者无法得知当前使用的指令集,从而无法构造相应的漏洞利用程序,对代码注入攻击有很好的防御效果。与ALSR和DEP相比,ISR不仅能对抗代码注入攻击,还能防止非授权代码的执行,能缓解内存泄漏攻击,由于在内存中的代码是加过密的,内存泄漏后攻击者仍需破解加密机制和密钥,增加了代码重用攻击难度,具有抗逆向能力。Gaurav等人最先提出了指令集随机化思想,作为对抗代码注入攻击的通用方法,设计了一种基于硬件的低损耗ISR实现,并用Bochsx86仿真器模拟。仿真器实现会带来相当大的性能损失,密钥存放在可行执行文件的新增节中,容易被非法访问和恶意篡改,不能动态地随机化进程和模块,同时它假设在obj文件中指令与数据分离,但是在实际的可执行文件中代码段中可能会存在数据,限制了此模型在实际中的应用。指令随机化虽然对于代码注入攻击有很好的防御效果,但是面临内存代码泄漏的风险,由此降低了对代码的加密机制分析和密钥猜解的难度,同时指令集随机化技术能缓解代码重用攻击,但是不能抵御代码重用攻击。传统的DEP等权限划分的安全机制仅仅是将内存页面的写操作与执行操作分离开来,无论代码段还是数据段都是默认可读的,这就导致了攻击者通过悬空指针等程序错误对内存页面进行读取、扫描。在代码段或数据段中得到的程序随机化的分布布局,能够绕过ALSR等随机化安全机制进行攻击。内存泄漏大致分为两种方式:一是直接泄漏,即读取代码段,找到直接跳转和直接调用的目标地址,收集这些地址进行分析,就可以得出代码页面的分布位置;二是间接泄漏,即读取数据段中的函数指针(例如虚函数表),返回地址可以达到相同的目的。基于软件的指令集随机化技术增加了用于翻译指令的软件,性能损耗大,同时其安全性依赖于翻译软件,攻击者可以利用翻译软件的漏洞从而绕过指令集随机化保护。
技术实现思路
本专利技术的目的是提供一种用于实现动态指令集随机化的CPU,以解决当前CPU指令集随机化采用虚拟机翻译执行或动态二进制翻译执行导致性能损耗大的问题。本专利技术为解决上述技术问题而提供一种用于实现动态指令集随机化的CPU,所述的CPU包括指令翻译电路和随机数产生电路,所述随机数产生电路用于产生随机数,并将产生的随机数送入寄存器;所述的指令翻译电路包括一个选择器,该选择器响应于一个选择信号,以确定将第一路信号或者第二路信号送入译码器,第一路信号为指令管线中处于取指令阶段的指令,第二路信号为所述第一路信号根据所述寄存器中的存储的随机数和反随机化的算法得到的指令。进一步地,所述的随机数产生电路包括硬件振荡器和有限状态机,所述硬件振荡器用于产生随机数比特流,有限状态机用于将产生的随机数比特流送入寄存器。进一步地,所述的硬件振荡器包括至少两个反相器。进一步地,所述的CPU还包括代码访问控制模块和代码区域映射模块,所述代码区域映射模块用于将访存阶段内核启动时的内存代码区域布局信息发送给代码访问控制模块,所述的代码访问控制模块用于在访存阶段判断访问地址是否在代码区域,若在代码区域,则控制指令禁止对代码区域访问,所述的代码区域布局信息由编译器确定。进一步地,CPU在进行内核启动时,根据寄存器存储的随机数随机化算法和将内核中的执行代码随机化后搬移到内存。进一步地,在内核引导启动程序跳转到内核执行时,使能所述选择信号,控制选择器选择第二路信号送入译码器。进一步地,内核加载可执行文件时,判断可执行文件是否已经随机化,若是,则继续执行;否则,根据寄存器中的随机数和随机算法对可执行文件随机化。本专利技术的有益效果是:本专利技术的CPU利用随机数产生电路产生随机数,并将产生的随机数送入寄存器,利用随机化算法和寄存器中的随机数对指令进行随机化处理,并在取指阶段和译码阶段之间增加指令翻译电路,指令翻译电路包括一个选择器,该选择器响应于一个选择信号,以确定将第一路信号或者第二路信号送入译码器,第一路信号为指令管线中处于取指令阶段的指令,第二路信号为第一路信号根据寄存器中的存储的随机数和反随机化的算法得到的指令。本专利技术在CPU硬件随机化的支持下,能够实现内核的随机化、动态化,对于代码注入类攻击有很好的防御效果,相比于使用虚拟机或者二进制实现指令集随机化,降低了运行损耗。本专利技术还在指令随机化的基础上,在编译过程中通过记录代码段中代码区域信息,控制对代码区域的读操作实现读与写权限的分离,不需修改程序源码,实现代码段中指令与数据分离;在CPU访存阶段实现对代码区域的取指操作访问控制,防御直接内本文档来自技高网
...
一种用于实现动态指令集随机化的CPU

【技术保护点】
一种用于实现动态指令集随机化的CPU,其特征在于,所述的CPU包括指令翻译电路和随机数产生电路,所述随机数产生电路用于产生随机数,并将产生的随机数送入寄存器;所述的指令翻译电路包括一个选择器,该选择器响应于一个选择信号,以确定将第一路信号或者第二路信号送入译码器,第一路信号为指令管线中处于取指令阶段的指令,第二路信号为所述第一路信号根据所述寄存器中的存储的随机数和反随机化的算法得到的指令。

【技术特征摘要】
1.一种用于实现动态指令集随机化的CPU,其特征在于,所述的CPU包括指令翻译电路和随机数产生电路,所述随机数产生电路用于产生随机数,并将产生的随机数送入寄存器;所述的指令翻译电路包括一个选择器,该选择器响应于一个选择信号,以确定将第一路信号或者第二路信号送入译码器,第一路信号为指令管线中处于取指令阶段的指令,第二路信号为所述第一路信号根据所述寄存器中的存储的随机数和反随机化的算法得到的指令。2.根据权利要求1所述的用于实现动态指令集随机化的CPU,其特征在于,所述的随机数产生电路包括硬件振荡器和有限状态机,所述硬件振荡器用于产生随机数比特流,有限状态机用于将产生的随机数比特流送入寄存器。3.根据权利要求2所述的用于实现动态指令集随机化的CPU,其特征在于,所述的硬件振荡器包括至少两个反相器。4.根据权利要求1所述的用于实现动态指令集随机化的CPU,其特征在于,所述的CPU还包括...

【专利技术属性】
技术研发人员:舒辉杜三彭小详康绯熊小兵祝跃飞张泉林昊
申请(专利权)人:中国人民解放军信息工程大学
类型:发明
国别省市:河南,41

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

1