基于流水线结构的安全处理器的制作方法

文档序号:17664196发布日期:2019-05-15 22:35阅读:139来源:国知局
基于流水线结构的安全处理器的制作方法

本发明属于计算机安全领域,尤其涉及一种配置有安全机制流水线的安全处理器。



背景技术:

随着近年来计算机和智能终端的广泛普及,以及互联网技术的高速发展,设备安全的问题也更是日益凸显。而处理器作为计算设备的关键核心,处理器的安全问题将严重影响整个计算设备的安全性。

处理器,主要分为中央处理器(cpu,centralprocessingunit)和图形处理器(gpu,graphicprocessingunit),由于主流的cpu和gpu都是基于流水线结构的处理器,其处理器结构是比较相似的,只是处理器不同类型的数据,而且很多厂商会将cpu和gpu放在一个芯片上进行流片,因此后文将统一以cpu进行论述。

目前,针对处理器的安全技术主要有硬件虚拟化技术和trustzone技术。例如intel、amd等cpu厂商,利用硬件虚拟化技术来实现cpu的安全;硬件虚拟化技术是一种基于指令调度权限管理和控制的安全机制,如虚拟机监视器(vmm,virtualmachinemonitor,也被称为hypervisor),专指在使用硬件虚拟化技术时创建出的特权层,该层提供给虚拟机开发者,用来实现虚拟硬件与真实硬件的通信和事件处理,vmm的权限级别要大于操作系统的权限。如图1所示,在intel虚拟化技术架构中,vmm的权限可被视为处于ring-1级。arm架构cpu的trustzone技术,为用户模式和特权模式引入了安全状态标识和判断机制,以决定系统是运行在非安全的“普通”执行环境下,还是运行在安全可信任的“安全”环境下。安全监控器(monitor)控制着安全与“普通”环境之间的转换,图2为trustzone模式下两个并行安全环境的示意图。

但无论是intel硬件虚拟化技术,还是arm的trustzone技术,本质上都是基于度量验证和安全执行环境构建,无法做到在cpu运行时直接干预cpu核心流水线上的指令执行的实时控制,缺少安全机制直接参与核心流水线的cpu架构。



技术实现要素:

有鉴于此,本发明的一个目的是提出一种安全处理器,以解决现有技术中无法做到在cpu运行时直接干预cpu核心流水线上的指令执行的实时控制,缺少安全机制直接参与核心流水线的cpu架构的问题。

在一些说明性实施例中,所述安全处理器,其内部设置有流水线结构的处理器核心,在核心流水线上设置有与所述核心流水线并行工作的旁路审核逻辑电路;所述旁路审核逻辑电路用于对所述核心流水线上处理的指令进行审核,并利用审核结果判定该指令在所述核心流水线上是否允许提交。

在一些优选地实施例中,所述核心流水线至少包含译码逻辑电路、以及流水级位于所述译码逻辑电路之后的提交逻辑电路;所述旁路审核逻辑电路被配置为旁路架设在所述核心流水线上的所述译码逻辑电路与所述提交逻辑电路之间的位置。

在一些优选地实施例中,所述核心流水线上还包括位于所述译码逻辑电路与所述提交逻辑电路之间的重排序缓冲逻辑电路;所述旁路审核逻辑电路的输入接口被配置在所述译码逻辑电路的输出接口上,所述旁路审核逻辑电路的输出接口被配置在所述重排序缓冲逻辑电路的输入接口上。

在一些优选地实施例中,所述旁路审核逻辑电路,具体包括:指令比对单元,用于利用基准值对输入的指令值进行比对,输出比对结果;存储单元,用于向所述指令比对单元提供所述基准值。

在一些优选地实施例中,所述旁路审核逻辑电路,还包括:指令筛选单元,用于从所述核心流水线上获取经过译码后的指令信息,将指定类型的指令值输出给所述指令比对单元。

在一些优选地实施例中,所述存储单元预留有提供操作系统写入所述基准值的软件接口。

在一些优选地实施例中,所述存储单元为处理器缓存或寄存器集合。

在一些优选地实施例中,所述指令值为以下之一或任意组合:源地址、操作数、操作码。

在一些优选地实施例中,所述指令比对单元输出比对结果的表现为对目标指令置标志位,以指示该指令禁止或允许提交。

本发明的另一个目的在于提出一种配置有上述安全处理器的计算设备,以保证设备的安全性。

与现有技术相比,本发明具有以下优点:

1.提出了新型处理器架构,实现了直接干预核心流水线的安全处理器,安全处理器的运行提高了计算设备的安全性;

2.旁路设置审核单元以保证处理器运行的高效性。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是现有技术中硬件虚拟化技术的示意图;

图2是现有技术中trustzone技术的示意图;

图3是本发明中安全处理器的结构示意图;

图4a是本发明中安全处理器的核心流水线的结构示意图;

图4b是本发明中安全处理器的核心流水线的结构示意图;

图4c是本发明中安全处理器的核心流水线的结构示意图;

图5是本发明中安全处理器的核心流水线的结构示意图

图6是本发明中安全处理器的旁路审核逻辑电路的结构示意图;

图7是本发明中安全处理器的结构示意图;

图8是本发明中防止指令非法冒用的方法流程图;

图9是本发明中防止指令非法冒用的方法流程图;

图10是本发明中防止指令非法冒用的方法流程图;

图11是本发明中安全处理器的旁路审核逻辑电路的结构示意图;

图12是本发明中安全处理器的旁路审核逻辑电路的结构示意图;

图13是本发明中防止内存注入攻击的方法流程图;

图14是本发明中安全处理器的核心流水线的结构示意图;

图15是本发明中防止内存注入攻击的方法流程图;

图16是本发明中防止内存注入攻击的方法流程图;

图17是本发明中安全处理器的旁路审核逻辑电路的结构示意图;

图18是本发明中安全处理器的旁路审核逻辑电路的结构示意图。

具体实施方式

以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选地,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。

在以下详细描述中,会提出大量特定细节,以便于提供对本发明的透彻理解。但是,本领域的技术人员会理解,即使没有这些特定细节也可实施本发明。在其它情况下,没有详细描述众所周知的方法、过程、组件和电路,以免影响对本发明的理解。

处理器物理结构从电子电路的角度来讲,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。主要包括运算器(alu,arithmeticandlogicunit)和控制器(cu,controlunit)两大部件。此外,还包括若干个寄存器和高速缓冲存储器cache及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和输入/输出设备合称为电子计算机三大核心部件,其功能主要是解释计算机指令以及处理计算机软件中的数据。

而以逻辑功能的角度去划分处理器结构的话,处理器主要由核心与多级cache构成,而核心又是由上述运算器、控制器、寄存器等组成的若干个具有不同功能的逻辑单元电路联系起来构成的流水线结构,逻辑单元如取指、译码、执行和提交,以流水线的形式分级完成对指令的解析与处理;并且随着处理器技术的不断发展,为了满足指令的乱序执行,核心流水线上的流水级得到了大量的扩展,加入的逻辑单元包括调度、寄存器重命名等,为了使cache命中得到提高,加入了逻辑单元如分支预测等。

本发明的主要目的在于对上述这种具有流水线结构的处理器核心提出一种基于安全审核机制的处理器架构,以满足在处理器的核心流水线上对所执行的指令进行审核干预,使处理器内部就可以判决出那些指令的执行生效会产生计算设备的安全隐患,从而避免这类指令的执行或最终生效,提高计算设备的安全性。

如图3所示,本发明针对现有技术中的处理器进行了改进,基于常规处理器核心流水线所提出的一种安全处理器架构,主要是指处理器内部的核心流水线的结构,该核心流水线结构中除了常规的流水级(如取指、译码、发射、执行、提交)之外,其改进点是在核心流水线100上设置与所述核心流水线并行工作的旁路审核逻辑电路106;该旁路审核逻辑电路主要用于对所述核心流水线上处理的指令进行审核,并利用审核结果判定该指令在所述核心流水线上是否允许提交。

核心流水线上的译码逻辑电路,主要是将指令解析成若干指令值,为后续的流水级提供运算基础;指令值具体包括:源地址、操作码、操作数;其中,源地址是指指令在内存中的地址;操作码是指指令的操作类型,可指示后续的流水级执行相应的处理;操作数是指数据变量或数据常数;例如假设一个处理器指令所要执行的操作是a+b,源地址是指指令“a+b”在内存中地址;“+”为指令的操作码,“a”和“b”则为指令的操作数;一般的,如“+”、“a”、“b”在cpu内部表示为相应的寄存器、运算电路

在一些情况下,旁路审核逻辑电路需要针对指令的指令值进行分析判断,因此旁路审核逻辑电路的输入接口应当被配置在核心流水线的译码逻辑电路之后的流水级上,而核心流水线的提交逻辑电路又是核心流水线上的最后的一个逻辑单元,因此旁路审核逻辑电路的输出接口应当被配置在核心流水线的提交逻辑电路之前。

本发明的实施例提出了新型处理器架构,实现了直接干预核心流水线的安全处理器,安全处理器的运行提高了计算设备的安全性;并且旁路设置审核单元以保证处理器运行的高效性。

如图4a所示,依照上述论述,本发明提出了针对安全的核心流水线提出了一个优选地实施例。该实施例中核心流水线100至少包括取指逻辑电路101、译码逻辑电路102、发射逻辑电路103、执行逻辑电路104、提交逻辑电路105;除上述常规的流水级之外,还包括旁路审核逻辑电路106;该旁路审核逻辑电路106的输入接口被配置在译码逻辑电路102的输出接口上,该旁路审核逻辑电路106的输出接口被配置在提交逻辑电路105的输入接口上。

该实施例中的旁路审核逻辑电路从译码逻辑电路的输出接口上获取到指令的指令值,对获取到的指令值进行审核,将审核结果输出给提交逻辑电路;其中,输出审核结果具体可以采用通过对指令进行标记的手段进行,例如在审核不通过的情况下,对该指令置一个标志位“1”,以指示提交逻辑电路该指令禁止提交;在审核通过的情况下,对该指令置一个标志位“0”,以指示提交逻辑该指令允许提交。

该实施例中旁路审核逻辑电路,可以实现对指令的源地址进行审核,例如为了防止指令的非法冒用,通过上述结构可以对指令的源地址进行审核,从而判别出指令是否是从特定的内存地址取出,若不是则判定该指令为非法指令,向提交逻辑电路发送审核不通过的指示。

如图4b所示,依照上述论述,本发明还针对安全的核心流水线提出了一个优选实施例。该实施例中核心流水线100至少包括取指逻辑电路101、译码逻辑电路102、发射逻辑电路103、执行逻辑电路104、提交逻辑电路105;除上述常规的流水级之外,还包括旁路审核逻辑电路106;该旁路审核逻辑电路106的输入接口被配置在发射逻辑电路103的输出接口上,该旁路审核逻辑电路106的输出接口被配置在提交逻辑电路105的输入接口上。

该实施例中的旁路审核逻辑电路从发射逻辑电路的输出接口上获取到指令的指令值,对获取到的指令值进行审核,将审核结果输出给提交逻辑电路;其中,输出审核结果具体可以采用通过对指令进行标记的手段进行,例如在审核不通过的情况下,对该指令置一个标志位“1”,以指示提交逻辑电路该指令禁止提交;在审核通过的情况下,对该指令置一个标志位“0”,以指示提交逻辑该指令允许提交。

该实施例可以达到图4a所示出的实施例的功能效果,在此不再赘述。

如图4c所示,依照上述论述,本发明还针对安全的核心流水线提出了一个优选实施例。该实施例中核心流水线100至少包括取指逻辑电路101、译码逻辑电路102、发射逻辑电路103、执行逻辑电路104、提交逻辑电路105;除上述常规的流水级之外,还包括旁路审核逻辑电路106;该旁路审核逻辑电路106的输入接口被配置在执行逻辑电路104的输出接口上,该旁路审核逻辑电路106的输出接口被配置在提交逻辑电路105的输入接口上。

该实施例中的旁路审核逻辑电路从执行逻辑电路的输出接口上获取到指令的指令值,对获取到的指令值进行审核,将审核结果输出给提交逻辑电路;其中,输出审核结果具体可以采用通过对指令进行标记的手段进行,例如在审核不通过的情况下,对该指令置一个标志位“1”,以指示提交逻辑电路该指令禁止提交;在审核通过的情况下,对该指令置一个标志位“0”,以指示提交逻辑该指令允许提交。

该实施例中旁路审核逻辑电路,可以实现对存储指令的目标地址进行审核(指令在执行逻辑电路运算完后其结果将显示出指令的目标地址),例如为了防止保护区域内的数据被篡改、破坏,通过上述结构可以对存储指令的目标地址进行审核,从而判别出存储指令所要写入的区域是不是所要保护的区域;若是则向提交逻辑电路发送审核不通过的指示。

当代的处理器根据其技术发展,其核心流水线的越显复杂,针对多级的核心流水线,本发明还提供了一种优选实施例,如图5,该优选实施例的核心流水线100至少包括:取指逻辑电路101、译码逻辑电路102、寄存器重命名逻辑电路107、调度逻辑电路108、发射逻辑电路103、执行逻辑电路104、重排序缓存逻辑电路109、提交逻辑电路105;除上述常规的流水级之外,还包括旁路审核逻辑电路106;该旁路审核逻辑电路106的输入接口被配置在寄存器重命名逻辑电路107的输出接口上,该旁路审核逻辑电路106的输出接口被配置在重排序缓存逻辑电路109的输入接口上。

该实施例中的旁路审核逻辑电路从寄存器重命名逻辑电路的输出接口上获取到指令的指令值,对获取到的指令值进行审核,将审核结果输出给重排序缓存逻辑电路;其中,输出审核结果具体可以采用通过对指令进行标记的手段进行,例如在审核不通过的情况下,对该指令置一个标志位“1”,以指示提交逻辑电路该指令禁止提交;在审核通过的情况下,对该指令置一个标志位“0”,以指示提交逻辑该指令允许提交。

现在参照图6,图6示出了上述旁路审核逻辑电路106的具体结构,该旁路审核逻辑电路106,包括:指令比对单元1061和存储单元1062;其中,指令比对单元1061具有2个输入接口,其第一输入接口作为旁路审核逻辑电路106的输入接口,根据审核的要求接在核心流水线上相应位置处;其第二输入接口与存储单元1062连接;其输出接口作为旁路审核逻辑电路106的输出接口,同样根据审核要求接在核心流水线上相应位置处。

具体的,

所述指令比对单元1061,用于利用基准值对输入的指令值进行比对,输出比对结果;其中,比对的方式可以采用利用获取到的指令值与存储单元内的所有基准值进行比对,例如为了防止指令的非法冒用,将获取到的指令的源地址与设定的特定地址进行对比,若不一致,则向提交逻辑电路105发送审核不通过的指示;又例如为了防止保护区域被篡改,将获取到的存储指令的目标地址与存储单元1062内存储的保护区域地址进行匹配,若匹配到了,则向提交逻辑电路105发送审核不通过的指示。

所述存储单元1062,用于向所述指令比对单元1061提供所述基准值。其中,所述存储单元1062为处理器缓存或寄存器集合。其内的基准值可以是固化在存储单元1062内的,又或者是利用软件系统向存储单元1062内写入的,可以根据要求进行动态转换;优选地,所述存储单元1062预留有提供操作系统写入所述基准值的软件接口。该软件接口是指向操作系统/应用软件开放的写入接口,一般是执行对象为操作系统。

优选地,所述旁路审核逻辑电路106,还可以包括:指令筛选单元1063,该指令筛选单元1063的输入接口作为所述旁路审核逻辑电路106的输入接口,其输出接口与指令比对单元1061的第一输入接口连接;所述指令筛选单元1063用于从所述核心流水线上获取经过译码后的指令信息,将指定类型的指令值输出给所述指令比对单元1061。例如对存储指令、读取指令等其它指令进行识别筛选,将符合要求的指令值送入指令比对单元1061。其可以通过特定的物理电路筛选采集相应类型的指令,又或者通过操作系统等软件设定筛选的指令类型。

现在参照图7,图7示出了一种基于流水线结构的安全处理器,该安全处理器包括上述任一实施例中的核心流水线(cpucore)100、多级cache200、以及数据及控制总线300、内存控制器400。其中,多级cache、数据总线、控制总线可以采用现有的结构。

本发明还公开了一种计算设备,该计算设备装配有上述安全处理器,该计算设备可以为计算机主机、一体机、携带式计算机、智能手持终端、智能穿戴设备等可装配处理器的智能设备。

针对信息安全技术来讲,目前有一种攻击严重影响计算设备的安全性,攻击者设计出攻击代码(如木马、病毒、漏洞、后门)后,将攻击代码通过网络或其它手段进行发布,将对一些原本正常的文件或程序进行感染,此时攻击代码已直接嵌套进了文件/程序内,当用户获取到被感染的文件/程序时,用户的杀毒、防火墙等安全软件的特征库中如果没有该攻击代码的特征值,攻击代码将顺利的进驻到用户的计算设备当中,甚至加大对用户设备的感染力度。攻击代码一般是由用户在不知情的情况下主动释放的,例如用户选择打开一个已经被感染的word文档,系统会将整个word文档和word程序加载到内存中,此时攻击代码也伴随着加载到了内存中,被启用执行其目的操作。

本发明除了在上述实施例中所阐述的处理器核心架构之外,还提出了一种针对指令的非法冒用的预警、防范的方法,该方法可以避免攻击者利用木马、病毒、漏洞、后门等方式调用、执行目的操作,造成设备被攻击、数据被窃取的问题。

现在参照图8,图8示出了本发明中一种防止指令非法冒用的方法的流程图,如该流程图所示,所述防止指令非法冒用的方法,包括:

步骤s11.获取指令的源地址;其中,指令的源地址是指该指令的内存地址;

步骤s12.将所述源地址与预先配置的基准地址进行比对;

步骤s13.如果两者比对不一致,则阻止该指令的执行或生效。

本发明通过对指令的源地址进行审核,可以判别出攻击代码所生成的指令不是正常范围内的指令,阻止该指令的后续执行或者其结果的生效,可以实现针对未知威胁(木马、病毒、漏洞、后门)的防范;另外本发明不依赖于先验知识,即使存在未知威胁,亦可有效的防止未知威胁的攻击生效,提高系统的安全性与可靠性,保障计算设备的不会因被感染而遭受攻击和数据泄密。

优选地,在所述将所述源地址与预先配置的基准地址进行比对之前,还包括:获取指令的操作码;在所述将所述源地址与预先配置的基准地址进行比对之前,还包括:根据所述指令的操作码,调取相应的基准地址。

该实施例适用于需要对大量指令进行审核的场景,首先利用指令的操作码对基准地址进行筛取,可以提高审核的处理效率。

优选地,所述获取指令的源地址,具体包括:获取指令的操作码;根据所述指令的操作码识别出该指令是否为特定指令;如果该指令为特定指令,则获取该特定指令的源地址。

该实施例适用于需要对小量或特定指令进行审核的场景,首先利用指令的操作码对指令类型进行筛取,提高审核的针对性,降低不必要的性能消耗。

优选地,在所述将所述源地址与预先配置的基准地址进行比对之后,还包括:如果两者比对不一致,则触发警示消息;所述警示消息用于指示系统或用户发现攻击。

优选地,所述阻止该指令的执行或生效,具体包括:对该指令置标志位;其中,所述标志位用于指示禁止该指令的执行结果生效。

现在参照图9,本发明还提出了一种基于上述安全处理器架构的防止指令非法冒用的方法,该方法运行在上述旁路审核逻辑电路当中,为了便于更快的理解本实施例的主体思想,以图5所示出的核心流水线结构阐述防止指令非法冒用的方法。

实施例中的防止指令非法冒用的方法,应用于安全处理器(具体的运行在旁路审核逻辑电路中),包括:

步骤s21.获取经过译码逻辑电路的cpu指令的指令值;指令值为源地址、操作码、操作数;

其中,步骤s21中主要获取的指令值为源地址,在一些情况下,例如需要筛选指令类型或筛选基准地址时,还需要获取cpu指令的操作码;cpu指令是指cpu中执行的指令。

步骤s22.将获取到的cpu指令的源地址与基准地址进行比对,判别cpu指令的源地址是否与基准地址相一致;

步骤s23.如果判定结果为不一致,则向该cpu指令置一个标志位,同时触发中断向系统及用户发送攻击报警信息;所述标志位用于指示禁止该指令的执行结果生效;

其中,置标志位的方式可以通过在重排序缓存逻辑电路中对该cpu指令置标志位;即旁路审核逻辑电路的指令比对单元向重排序缓存逻辑电路发送指示该操作的信号;此时提交逻辑电路从重排序缓存逻辑电路中选择要提交(写回)的指令执行结果时,检测到该标志位后不会对该指令进行提交。

步骤s24.如果判定结果为一致,则不对该cpu指令进行标记处理。

上述实施例中还包括cpu的取指、译码、执行等操作,可依照现有的cpu的处理机制执行,属于cpu技术领域的常规技术,因此本发明不对此进行详细阐述。

现在参照图10,本发明还基于上述安全处理器架构提出了一种针对特权指令的非法冒用的防范方法,特权指令一般是指cpu厂商为客户开放的针对cpu特定模式或特殊操作的执行指令,特征指令的数量根据客户需求定制,一般为1-2条。

实施例中的防止特权指令非法冒用的方法,应用于安全处理器(具体的运行在旁路审核逻辑电路中),包括:

步骤s31.获取经过译码逻辑电路的cpu指令的指令值;获取经过译码逻辑电路的cpu指令的指令值;指令值为源地址、操作码;

步骤s32.根据操作码筛选出特权指令;

步骤s33.将获取到的特权指令的源地址与基准地址进行比对,判别特权指令的源地址是否与基准地址相一致;

步骤s34.如果判定结果为不一致,则向该特权指令置一个标志位,同时触发中断向系统及用户发送攻击报警信息;所述标志位用于指示禁止该指令的执行结果生效;

步骤s35.如果判定结果为一致,则不对该cpu指令进行标记处理。

现在参照图11,本发明针对上述方法指令非法冒用的方法,提出执行该方法的安全处理器,该安全处理器的旁路审核逻辑电路106,具体包括采集单元601、比对单元602、控制单元603、调取单元604、警报单元605、存储单元606;其中,所述采集单元601分别与比对单元602、调取单元604耦接;所述对比单元602分别与控制单元603、调取单元604、警报单元605耦接;所述存储单元606与所述调取单元604耦接。

所述采集单元601,用于获取指令的源地址;所述比对单元602,用于将所述源地址与预先配置的基准地址进行比对;所述控制单元603,如果两者比对不一致,则阻止该指令的执行或生效。所述采集单元601还用于获取指令的操作码。所述调取单元604,用于根据所述指令的操作码,调取相应的基准地址。所述存储单元606,用于存储所述基准地址;所述警报单元605,用于如果两者比对不一致,则触发警示消息;所述警示消息用于指示系统或用户发现攻击。所述控制单元603具体用于对该指令置标志位;其中,所述标志位用于指示禁止该指令的执行结果生效。

现在参照图12,本发明针对上述方法指令非法冒用的方法,还提出另一种执行该方法的安全处理器,该安全处理器的旁路审核逻辑电路106,具体包括采集单元701、比对单元702、控制单元703、警报单元704、存储单元705;其中,所述采集单元701与比对单元702耦接;所述对比单元702分别与控制单元703、警报单元704、存储单元705耦接。所述采集单元701包括第一采集子单元7011、识别单元7012、第二采集子单元7013;所述第一采集子单元7011与所述识别单元7012耦接;所述识别单元7012与所述第二采集子单元7013耦接。

所述第一采集子单元7011,用于获取指令的操作码;所述识别单元7012,用于根据所述指令的操作码识别出该指令是否为特定指令;所述第二采集子单元7013,用于如果该指令为特定指令,则获取该特定指令的源地址。所述比对单元702,用于将所述源地址与预先配置的基准地址进行比对;所述存储单元705,用于存储所述基准地址;所述控制单元703,如果两者比对不一致,则阻止该指令的执行或生效。所述警报单元704,用于如果两者比对不一致,则触发警示消息;所述警示消息用于指示系统或用户发现攻击。所述控制单元703具体用于对该指令置标志位;其中,所述标志位用于指示禁止该指令的执行结果生效。

同样针对信息安全技术,目前还有一种攻击严重影响计算设备的安全性,攻击代码渗透到计算设备内部后,攻击代码会篡改、破坏关键的内存地址,从而达到其绑架进程、隐藏到进程等方式执行其攻击目的。

本发明除了在上述实施例中所阐述的处理器核心架构之外,还提出了一种防止计算设备的关键内存被篡改、破坏的方法,该方法可以避免攻击者利用木马、病毒、漏洞、后门等方式造成设备被攻击、数据被窃取的问题。

现在参照图13,图13示出了本发明中一种防止内存注入攻击的方法的流程图,如该流程图所示,所述防止内存注入攻击的方法,包括:

步骤s41.获取写指令的目标地址;

步骤s42.将所述目标地址与预先配置的所要保护地址进行匹配;

步骤s43.如果匹配成功,则阻止该指令的执行或生效。

本发明通过对指令的目标地址进行审核,避免了篡改、破坏关键内存地址的情况发生,保证了计算设备的安全性。其次,本发明不依赖于先验知识,即使存在未知威胁,亦可有效的防止未知威胁的攻击生效。再有,本发明在处理器的核心内实现安全机制,进一步提高了审核机制的安全性和可靠性。

优选地,在所述获取写指令的目标地址之前,还包括:获取指令的操作码;根据所述操作码识别该指令是否为写指令。

优选地,在所述获取写指令的目标地址之前,还包括:获取所述写指令的操作数;根据所述操作数确定所述目标地址。

优选地,在所述将所述目标地址与预先配置的所要保护地址进行匹配之后,还包括:如果匹配成功,则触发警示消息;所述警示消息用于指示系统或用户发现攻击。

优选地,所述阻止该指令的执行或生效,具体包括:对该指令置标志位;其中,所述标志位用于指示禁止该指令的执行结果生效。

在参照图15,本发明还提出了一种基于上述安全处理器架构的防止内存注入攻击的方法,该方法运行在上述旁路审核逻辑电路当中,为了便于更快的理解本实施例的主体思想,以图14所示出的核心流水线结构阐述防止内存注入攻击的方法。该流水线结构中旁路审核逻辑电路的输入接口被配置在执行逻辑电路的输出接口,旁路审核逻辑电路的输出接口被配置在重排序缓存逻辑电路的输入接口上。

实施例中的防止内存注入攻击的方法,应用于安全处理器(具体的运行在旁路审核逻辑电路中),包括:

步骤s51.获取经过执行逻辑电路的cpu指令的指令值;指令值为执行结果数据和操作码;其中,经过执行逻辑电路中的cpu指令经过运算后将产生执行结果数据,并保留操作码;此时,与刚经过译码逻辑电路的cpu指令的指令值是不同的。

步骤s52.根据所述操作码识别该cpu指令是否为写指令(存储指令);如果识别出是写指令,则进入步骤s53;否则,不对该cpu指令进行处理;

步骤s53.根据将所述目标地址(执行结果数据)与预先配置的所要保护地址进行匹配;

步骤s54.如果匹配成功,则向该cpu指令置一个标志位,同时触发中断向系统及用户发送攻击报警信息;所述标志位用于指示禁止该指令的执行结果生效;

其中,置标志位的方式可以通过在重排序缓存逻辑电路中对该cpu指令置标志位;即旁路审核逻辑电路的指令比对单元向重排序缓存逻辑电路发送指示该操作的信号;此时提交逻辑电路从重排序缓存逻辑电路中选择要提交(写回)的指令执行结果时,检测到该标志位后不会对该指令进行提交。

步骤s55.如果匹配不成功,则不对该cpu指令进行标记处理。

上述实施例中还包括cpu的取指、译码、执行等操作,可依照现有的cpu的处理机制执行,属于cpu技术领域的常规技术,因此本发明不对此进行详细阐述。

在参照图16,本发明还提出了一种基于上述安全处理器架构的防止内存注入攻击的方法,该方法运行在上述旁路审核逻辑电路当中,为了便于更快的理解本实施例的主体思想,以图5所示出的核心流水线结构阐述防止内存注入攻击的方法。针对写指令(存储指令)而言,其进入译码逻辑逻辑电路后,此时的其操作数就有可能就是最终的目标地址,针对这种情况,可将流水线结构中旁路审核逻辑电路的输入接口配置在译码逻辑电路的输出接口,旁路审核逻辑电路的输出接口配置在重排序缓存逻辑电路的输入接口上。

实施例中的防止内存注入攻击的方法,应用于安全处理器(具体的运行在旁路审核逻辑电路中),包括:

步骤s61.获取经过译码逻辑电路的cpu指令的指令值;指令值为源地址、操作码、操作数;

步骤s62.根据所述操作码识别该cpu指令是否为写指令(存储指令);如果识别出是写指令,则进入步骤s63;否则,不对该cpu指令进行处理;

步骤s63.根据将所述目标地址(操作数)与预先配置的所要保护地址进行匹配;

其中,如果经过译码后获得的操作数并非目标地址,还可以根据操作数进行运算(类似执行逻辑电路的执行策略)推导确定目标地址;

步骤s64.如果匹配成功,则向该cpu指令置一个标志位,同时触发中断向系统及用户发送攻击报警信息;所述标志位用于指示禁止该指令的执行结果生效;

其中,置标志位的方式可以通过在重排序缓存逻辑电路中对该cpu指令置标志位;即旁路审核逻辑电路的指令比对单元向重排序缓存逻辑电路发送指示该操作的信号:此时提交逻辑电路从重排序缓存逻辑电路中选择要提交(写回)的指令执行结果时,检测到该标志位后不会对该指令进行提交。

步骤s65.如果匹配不成功,则不对该cpu指令进行标记处理。

上述实施例中还包括cpu的取指、译码、执行等操作,可依照现有的cpu的处理机制执行,属于cpu技术领域的常规技术,因此本发明不对此进行详细阐述。

现在参照图17,本发明针对上述方法防止内存注入攻击的方法,提出执行该方法的安全处理器,该安全处理器的旁路审核逻辑电路106,具体包括:第一采集单元801、匹配单元802、控制单元803、第二采集单元804、识别单元805、警报单元806和存储单元807;其中,第一采集单元801与匹配单元802耦接;匹配单元802与控制单元803耦接;第二采集单元804与识别单元805耦接;识别单元805与第一采集单元801耦接;所述警报单元806与所述控制单元803耦接;所述存储单元807与所述匹配单元802耦接。

所述第一采集单元801用于获取写指令的目标地址;所述匹配单元802用于将所述目标地址与预先配置的所要保护地址进行匹配;所述控制单元803用于如果匹配成功,则阻止该指令的执行或生效。所述第二采集单元804用于获取指令的操作码;所述识别单元805用于根据所述操作码识别该指令是否为写指令。所述警报单元806用于如果匹配成功,则触发警示消息;所述警示消息用于指示系统或用户发现攻击。所述控制单元803具体用于对该指令置标志位;其中,所述标志位用于指示禁止该指令的执行结果生效。所述存储单元807用于存储预先配置的所要保护地址。

该实施例适用于旁路审核逻辑电路106的输入接口配置在执行逻辑电路的输出接口上的场景。

现在参照图18,本发明针对上述方法防止内存注入攻击的方法,提出执行该方法的安全处理器,该安全处理器的旁路审核逻辑电路106,具体包括:第一采集单元901、运算单元902、匹配单元903、控制单元904、第二采集单元905、识别单元906、警报单元907和存储单元908;其中,第一采集单元901与运算单元902耦接;所述运算单元与匹配单元903耦接;匹配单元903与控制单元904耦接;第二采集单元905与识别单元906耦接;识别单元906与第一采集单元901耦接:所述警报单元907与所述控制单元904耦接;所述存储单元908与所述匹配单元903耦接。

所述第一采集单元901用于获取所述写指令的操作数;所述运算单元902用于根据所述操作数确定所述目标地址;所述匹配单元903用于将所述目标地址与预先配置的所要保护地址进行匹配;所述控制单元904用于如果匹配成功,则阻止该指令的执行或生效。所述第二采集单元905用于获取指令的操作码;所述识别单元906用于根据所述操作码识别该指令是否为写指令。所述警报单元907用于如果匹配成功,则触发警示消息;所述警示消息用于指示系统或用户发现攻击。所述控制单元904具体用于对该指令置标志位;其中,所述标志位用于指示禁止该指令的执行结果生效。所述存储单元908用于存储预先配置的所要保护地址。

该实施例适用于旁路审核逻辑电路106的输入接口配置在译码逻辑电路的输出接口上的场景。

本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。

以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1