处理器安全检测方法、系统及检测装置转让专利

申请号 : CN201710316463.2

文献号 : CN108345791B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘雷波罗奥魏少军

申请人 : 清华大学

摘要 :

本发明公开了一种处理器安全检测方法、系统及检测装置,处理器安全检测方法包括:获取处理器与外设之间的数据读写操作的记录信息,所述数据读写操作为所述处理器发起的数据读写操作或所述外设发起的数据读写操作;根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全。本发明实施例可以检测硬件的安全漏洞,提升硬件使用的安全性。

权利要求 :

1.一种处理器安全检测方法,其特征在于,包括:

获取处理器与外设之间的数据读写操作的记录信息,所述数据读写操作为所述处理器发起的数据读写操作和所述外设发起的数据读写操作;

当所述数据读写操作为所述外设发起的数据读写操作时,获取所述外设发起的数据读写操作的日志信息,以便于所述检测装置根据所述日志信息分析所述外设发起的数据读写操作,所述日志信息包括指令位置和所述外设发起的数据读写操作,所述指令位置为所述处理器暂停执行指令并处理所述外设发起的数据读写操作时的指令位置;

根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全。

2.如权利要求1所述的方法,其特征在于,所述处理器发起的数据读写操作包括内存映射输入输出MMIO类型的数据读写操作;和/或,所述外设发起的数据读写操作包括直接内存存取DMA或设备间通信P2P类型的数据读写操作。

3.如权利要求1或2任一项所述的方法,其特征在于,所述根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全,包括:在所述数据读写操作为MMIO类型的读操作时,将所述记录信息中的操作地址及数据长度,与检测装置分析所述MMIO类型的读操作得到的操作地址及数据长度进行比较,将所述记录信息中的操作顺序,与检测装置分析所述MMIO类型的读操作得到的操作顺序进行比较;在比较结果均一致时,确定所述处理器在执行所述MMIO类型的读操作时安全,否则确定所述处理器在执行所述MMIO类型的读操作时不安全。

4.如权利要求1或2任一项所述的方法,其特征在于,所述根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全,包括:在所述数据读写操作为MMIO类型的写操作时,将所述记录信息中的操作地址、数据内容及数据长度,与检测装置分析所述MMIO类型的写操作得到的操作地址、数据内容及数据长度进行比较,将所述记录信息中的操作顺序与检测装置分析所述MMIO类型的写操作得到的操作顺序进行比较;在比较结果均一致时,确定所述处理器在执行所述MMIO类型的写操作时安全,否则确定所述处理器在执行所述MMIO类型的写操作时不安全。

5.如权利要求1或2任一项所述的方法,其特征在于,所述根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全,包括:在所述数据读写操作为DMA类型的读操作时,将所述记录信息中的操作地址、数据内容及数据长度,与检测装置分析所述DMA类型的读操作得到的操作地址、数据内容及数据长度进行比较;当比较结果均一致时,确定所述处理器在执行所述DMA类型的读操作时安全,否则确定所述处理器在执行所述DMA类型的读操作时不安全。

6.如权利要求1或2任一项所述的方法,其特征在于,所述根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全,包括:在所述数据读写操作为DMA类型的写操作时,将所述记录信息中的操作数据的操作地址及数据长度,与检测装置分析所述DMA类型的写操作得到的操作地址及数据长度进行比较;当比较结果均一致时,确定所述处理器在执行所述DMA类型的写操作时安全,否则确定所述处理器在执行所述DMA类型的写操作时不安全。

7.如权利要求1或2任一项所述的方法,其特征在于,所述根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全,包括:在所述数据读写操作为P2P类型的数据读写操作时,将所述记录信息中P2P类型的数据读写操作的从外设流向所述处理器的数据内容及数据长度与从所述处理器流向目标外设的数据内容及数据长度进行比较;当比较结果一致时,确定所述处理器在执行所述P2P类型的数据读写操作时安全,否则确定所述处理器在执行所述P2P类型的数据读写操作时不安全。

8.一种检测装置,其特征在于,包括:

记录信息获取模块,用于获取处理器与外设之间的数据读写操作的记录信息,所述数据读写操作为所述处理器发起的数据读写操作和所述外设发起的数据读写操作;

日志信息获取模块,用于当所述数据读写操作为所述外设发起的数据读写操作时,获取所述外设发起的数据读写操作的日志信息,以便于所述检测装置根据所述日志信息分析所述外设发起的数据读写操作,所述日志信息包括指令位置和所述外设发起的数据读写操作,所述指令位置为所述处理器暂停执行指令并处理所述外设发起的数据读写操作时的指令位置;

安全性确定模块,用于根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全。

9.如权利要求8所述的检测装置,其特征在于,所述处理器发起的数据读写操作包括MMIO类型的数据读写操作;和/或,所述外设发起的数据读写操作包括DMA或P2P类型的数据读写操作。

10.如权利要求8或9任一项所述的检测装置,其特征在于,所述安全性确定模块具体用于:

在所述数据读写操作为MMIO类型的读操作时,将所述记录信息中的操作地址及数据长度,与检测装置分析所述MMIO类型的读操作得到的操作地址及数据长度进行比较,将所述记录信息中的操作顺序,与检测装置分析所述MMIO类型的读操作得到的操作顺序进行比较;在比较结果均一致时,确定所述处理器在执行所述MMIO类型的读操作时安全,否则确定所述处理器在执行所述MMIO读操作时不安全。

11.如权利要求8或9任一项所述的检测装置,其特征在于,所述安全性确定模块具体用于:

在所述数据读写操作为MMIO类型的写操作时,将所述记录信息中的操作地址、数据内容及数据长度,与检测装置分析所述MMIO类型的写操作得到的操作地址、数据内容及数据长度进行比较,将所述记录信息中的操作顺序与检测装置分析所述MMIO类型的写操作得到的操作顺序进行比较;在比较结果均一致时,确定所述处理器在执行所述MMIO类型的写操作时安全,否则确定所述处理器在执行所述MMIO类型的写操作时不安全。

12.如权利要求8或9任一项所述的检测装置,其特征在于,所述安全性确定模块具体用于:

在所述数据读写操作为DMA类型的读操作时,将所述记录信息中的操作地址、数据内容及数据长度,与检测装置分析所述DMA类型的读操作得到的操作地址、数据内容及数据长度进行比较;当比较结果均一致时,确定所述处理器在执行所述DMA类型的读操作时安全,否则确定所述处理器在执行所述DMA类型的读操作时不安全。

13.如权利要求8或9任一项所述的检测装置,其特征在于,所述安全性确定模块具体用于:

在所述数据读写操作为DMA类型的写操作时,将所述记录信息中的操作数据的操作地址及数据长度,与检测装置分析所述DMA类型的写操作得到的操作地址及数据长度进行比较;当比较结果均一致时,确定所述处理器在执行所述DMA类型的写操作时安全,否则确定所述处理器在执行所述DMA类型的写操作时不安全。

14.如权利要求8或9任一项所述的检测装置,其特征在于,所述安全性确定模块具体用于:

在所述数据读写操作为P2P类型的数据读写操作时,将所述记录信息中P2P类型的数据读写操作的从外设流向所述处理器的数据内容及数据长度与从所述处理器流向目标外设的数据内容及数据长度进行比较;当二者一致时,确定所述处理器在执行所述P2P类型的数据读写操作时安全,否则确定所述处理器在执行所述P2P类型的数据读写操作时不安全。

15.一种处理器安全检测系统,其特征在于,包括处理器、外设、存储器、输入输出记录装置及权利要求8至14中任一项所述的检测装置;所述存储器用于存储所述检测装置对数据读写操作的分析结果;所述输入输出记录装置用于记录所述处理器与所述外设之间的数据读写操作。

说明书 :

处理器安全检测方法、系统及检测装置

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及处理器安全检测方法、系统及检测装置。

背景技术

[0002] 本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003] 随着网络信息化等新技术的大规模应用,信息安全成为日益严峻的问题。通常我们讨论的信息安全都局限于网络安全、软件安全等方面,但是随着近年来研究表明,硬件安全也应受到关注。
[0004] 硬件设计的规模随着硬件设计水平的提升日渐提升,使得硬件木马成为可能:当前以CPU(处理器)为代表的大规模电路中用到的硬件IP(知识产权)的来源多样化,硬件设计的流程复杂化,设计制造流程分工细化等因素造成了硬件最终产品的安全可控性下降。在设计中被注入恶意木马或者漏洞(下文简称木马)的可能性增加,同时硬件规模的增加也增加了木马被识别和发现的困难。近年来,随着信息安全概念的发展,硬件的安全性逐渐成为信息安全的研究热点。

发明内容

[0005] 为了检测硬件的安全漏洞,提升硬件使用的安全性,在本发明实施例中,提供了一种处理器安全检测方法,该处理器安全检测方法包括:
[0006] 获取处理器与外设之间的数据读写操作的记录信息,所述数据读写操作为所述处理器发起的数据读写操作和所述外设发起的数据读写操作;
[0007] 根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全。
[0008] 本发明实施例还提供一种检测装置,该检测装置包括:
[0009] 记录信息获取模块,用于获取所述处理器与外设之间的数据读写操作的记录信息,所述数据读写操作为所述处理器发起的数据读写操作和所述外设发起的数据读写操作;
[0010] 安全性确定模块,用于根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全。
[0011] 本发明实施例还提供一种处理器安全检测系统,该处理器安全检测系统包括处理器、外设、存储器、输入输出记录装置及上述的检测装置;所述存储器用于存储所述检测装置对数据读写操作的分析结果;所述输入输出记录装置用于记录所述处理器与所述外设之间的数据读写操作。
[0012] 本发明实施例中,获取处理器与外设之间的数据读写操作的记录信息,进而根据数据读写操作的记录信息与检测装置对数据读写操作的分析结果,确定处理器是否安全。因此,可以有效检测硬件的安全漏洞,提升硬件使用的安全性,保证信息安全。

附图说明

[0013] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0014] 图1为本发明实施例中处理器安全检测方法的示意图;
[0015] 图2为本发明实施例中检测装置的示意图;
[0016] 图3为本发明实施例中图2所示检测装置的具体实例图;
[0017] 图4为本发明实施例中处理器安全检测系统的示意图;
[0018] 图5为本发明实施例的电子设备的系统构成的示意框图。

具体实施方式

[0019] 为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例作详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
[0020] 硬件安全是软件安全的基石。所有的软件安全实现方法都是基于硬件可信的假设,即硬件应该按照其手册所定义的行为进行工作。目前大多数情况是在设计环节、出厂环节对硬件进行性能检测,由于硬件出厂后是以黑盒子的面目出现在用户的系统中(不像软件木马,其代码是存在于系统中的,可以被读取和分析),硬件的行为是很难监控或感知的。此外,由于难以判断硬件行为的合理性,目前没有针对硬件安全性的研究。
[0021] 本发明实施例提出的处理器安全检测方法,能够对处理器进行实时检测,从而解决硬件安全的问题。本发明实施例的处理器安全检测方法可以由检测装置执行。具体地,检测装置可以与处理器集成在同一个芯片上,也可以实现为独立于处理器的芯片,还可以实现为其它的装置形式,本发明对此不作限定。例如,可以将检测装置的一部分功能与处理器集成在同一个芯片上,而剩余的其它功能实现为独立的芯片,这些变化例都应落入本发明的保护范围。
[0022] 应理解的是,本发明提出的处理器安全检测方法及检测装置不仅可以应用到上述硬件安全检测领域,只要不脱离本发明的精神和宗旨,即使应用到其它技术领域也应落在本发明的保护范围内。
[0023] 图1为本发明实施例中处理器安全检测方法的示意图,如图1所示,该方法可以包括:
[0024] 步骤101,获取处理器与外设之间的数据读写操作的记录信息,数据读写操作为处理器发起的数据读写操作或外设发起的数据读写操作;
[0025] 步骤102,根据数据读写操作的记录信息与检测装置对数据读写操作的分析结果,确定处理器是否安全。
[0026] 在一个实施例中,先获取处理器与外设之间的数据读写操作的记录信息。处理器与外设之间的数据读写操作可以是由处理器发起的数据读写操作,或者可以是由外设发起的数据读写操作。其中,处理器发起的数据读写操作例如可以包括:MMIO(Memory mapped I/O,内存映射输入输出)等类型的数据读写操作;外设发起的数据读写操作例如可以包括:DMA(Direct Memory Access,直接内存存取)、P2P(Peer to Peer,设备间通信)等类型的数据读写操作。应理解的是,本发明实施例中的记录信息只涉及经过处理器的P2P数据读写操作,而不涉及不经过处理器的P2P数据读写操作。
[0027] 处理器与外设之间的数据读写操作的记录信息可以包括与数据读写操作相关的多种信息的一种或多种,例如可以包括操作数据、操作地址和/或操作顺序。其中,操作数据可以包括数据内容和数据长度。在一个实施例中,操作地址可以用外设地址与外设地址到系统存储器地址的转换来表示。这种情况下,在比较操作地址是否一致时,需要外设地址与外设地址到系统存储器地址的转换均正确。在一个实施例中,对于MMIO类型的数据读写操作,还可以按照时间顺序记录数据读写操作以形成记录信息序列,这样可以使用记录信息序列中数据读写操作的先后顺序表示数据读写操作的操作顺序。操作顺序是处理器执行数据读写操作的先后顺序。
[0028] 在一个实施例中,确定运行中处理器的安全性时,可以将处理器的实时运行过程划分为一个或多个检测区间。例如,可以将处理器从开机到关机的整个运行过程作为目标运行过程,也可以将整个运行过程划分为多个检测区间对应的多个目标运行过程。这样,在对处理器进行安全性检测时,可以实现为对处理器在某一检测区间中的运行过程(即,目标运行过程)的安全性检测。在检测装置完成对当前检测区间的安全性检测后,进入下一个检测区间的安全性检测。应理解的是,本发明实施例并不限定检测区间的数量或长度,以上变化例都应落在本发明的保护范围内。数据读写操作的操作顺序可以是在某一检测区间中处理器或检测装置执行该数据读写操作的顺序。
[0029] 为了对处理器的安全性进行检测,实施时可以通过获取处理器在目标运行过程中的输入信息、输出信息以及初始运行状态与终止运行状态,并以相同的初始运行状态和输入信息设置检测装置,使检测装置在相同的条件下执行与处理器相同的任务,然后根据处理器和检测装置的输出信息和/或终止运行状态的一致性判断处理器的行为是否符合硬件行为标准,进而确定处理器在运行过程中的安全性。其中,输入信息可以表现为输入信息序列,输出信息可以表现为输出信息序列。其中硬件行为标准是指在解析与执行软件指令流的过程中处理器的行为标准。在一个实施例中,处理器的硬件行为标准可以是处理器说明书或其它规范化文档中规定的行为标准。
[0030] 例如,可以根据处理器在目标运行过程的初始运行状态信息设置检测装置的初始运行状态,将处理器在目标运行过程中的输入信息作为检测装置的输入信息;使检测装置以符合预定义行为的方式执行目标运行过程中的任务,得到检测装置的输出信息和/或终止运行状态信息,其中,预定义行为是处理器的硬件行为标准;当检测装置执行完目标运行过程中的任务时,根据检测装置的输出信息和/或终止运行状态信息,确定处理器在目标运行过程中是否安全。
[0031] 其中,本发明实施例中的数据读写操作的记录信息对应于所记录的上述处理器的输入信息与输出信息。应理解的是,上述输入信息与输出信息不限于本发明实施例中的数据读写操作,还可以包含处理器与存储器之间的数据读写操作等类型的输出信息。
[0032] 例如,可以将处理器与外设之间的数据读写操作的记录信息记录于输入输出记录装置中。该输入输出记录装置可以设置于处理器与外设之间,用于记录处理器与外设之间的数据读写操作。在具体实施时,处理器与外设之间的数据读写操作的记录信息也可以记录于其它位置,例如检测装置的存储器中,本发明对此不作限定。
[0033] 以记录信息记录于输入输出记录装置为例,对于处理器发起的数据读写操作的记录信息,输入输出记录装置进行记录。对于外设发起的数据读写操作,由于外设发起的是异步的数据读写操作(相对于处理器的指令执行流而言),输入输出记录装置对记录信息进行记录后,可以请求处理器处理外设发起的数据读写操作,在接收到处理器发送的指示时,再将外设发起的数据读写操作的数据包发送至处理器。处理器在接收到输入输出记录装置发送的请求时,暂停执行当前的指令流,并记录当前的指令位置和待处理的外设发起的数据读写操作。指令位置和外设发起的数据读写操作由处理器或检测装置记录在日志信息中,该日志信息可以存储在处理器或者其它位置。例如,可以由处理器发给输入输出记录装置进行存储。当然,指令位置和外设发起的数据读写操作记录于日志信息仅为一例,也可以以其它形式记录于其它的信息中,本发明对此不作限定。
[0034] 输入输出记录装置可以将处理器与外设之间的数据读写操作全部记录下来,以形成前述记录信息。当然,在其它的实施例中,输入输出记录装置也可以选择性地只记录处理器与外设之间的一部分数据读写操作。至于选择处理器与外设之间的哪部分数据读写操作进行记录,输入输出记录装置可以预设一些条件或规则,或者也可以随机地选择记录,本发明对此不作限定。举一例,输入输出装置可以预设:只记录处理器与某些外设之间的数据读写操作,此种情况下,输入输出记录装置可以在处理器或外设发起数据读写操作时,先获取到该数据读写操作所涉及外设的标识,并根据获取的外设的标识确定是否记录该数据读写操作。具体的,可以查看获取的外设的标识是否为预设的外设标识,预设的外设标识即对应于需要记录与处理器之间数据读写操作的外设,如果是,则确定需要记录处理器与该外设之间的数据读写操作。
[0035] 应理解的是,上文所描述的输入信息及输出信息是相对于CPU而言的。例如,相对于CPU而言,由外设流向CPU的数据包是CPU的输入信息,而由CPU流向外设的数据包是CPU的输出信息。在具体实施时,根据通信协议的不同,处理器执行的读操作流程或写操作流程可能分别包括一个或多个输入信息及输出信息。例如,在点对点的处理器外设连接协议(Peripheral Component Interconnect express,PCIe)协议中,MMIO读操作为处理器发起的读取外设的操作,MMIO写操作为处理器发起的写入外设的操作;DMA读操作为外设发起的读取CPU地址空间的存储器的操作,DMA写操作为外设发起的写入CPU的地址空间的存储器的操作;P2P操作为外设发起的读取其它外设或写入其它外设的操作。
[0036] 以DMA读操作的流程为例进行说明:外设向CPU发送读请求(该读请求将被输入输出记录装置记录为一个输入信息),CPU接收到该读请求后,向外设返回该读请求对应的数据包(该返回的数据包将被输入输出记录装置记录为一个输出信息)。这样,检测装置从输入输出记录装置中读取记录信息时,可以根据该读请求和该数据包中的交易标识来判断这两者是否属于一个DMA读操作,进而对该DMA读操作进行分析,以确定处理器的安全性。在具体的实施例中,为了便于输入输出记录装置查找所存储的处理器与外设之间的数据读写操作的数据包,在输入输出记录装置可以包括:第一分区,用于记录由外设流向处理器的数据包;第二分区,用于记录由处理器流向外设的数据包。
[0037] 进一步的,发明人考虑到,如果根据数据包的流向将处理器与外设之间的数据读写操作的数据包分别记录在第一分区和第二分区,由于外设发起的数据读写操作的异步性,以及其他可能的无用数据包(如系统信息等杂项),会导致第一分区与第二分区中记录的数据信息混杂,检索复杂度升高,难以高效地获取需要的信息条目。因此,为了提升数据检索效率,在具体的实施例中,输入输出记录装置根据读写操作的类型记录和组织所记录的数据包。具体的,在第一分区中根据数据读写操作的类型,组织所记录的由外设流向处理器的数据包,在第二分区中根据数据读写操作的类型,组织所记录的由处理器流向外设的数据包,以便于提升数据检索效率。
[0038] 处理器在记录指令位置和待处理的外设发起的数据读写操作后,向输入输出记录装置发送指示,输入输出记录装置接收到该指示,向输入输出记录装置发送待处理的数据读写操作的数据包,处理器完成待处理的数据读写操作。在检测装置分析到该由外设发起的数据读写操作时,要获取到外设发起的数据读写操作的日志信息,以便于根据日志信息分析外设发起的数据读写操作。这样,检测装置以符合预定义行为的方式执行目标运行过程的任务时,在指令位置分析及执行外设发起的数据读写操作。如前所述,日志信息包括指令位置和外设发起的数据读写操作,其中的指令位置为处理器处理所述外设发起的数据读写操作时的指令位置。
[0039] 在获取处理器与外设之间的数据读写操作的记录信息后,根据获取的记录信息与检测装置对该数据读写操作的分析结果,可以确定处理器是否安全。对于处理器发起的数据读写操作和外设发起的数据读写操作,由于数据读写操作的执行过程不同,具体在确定处理器安全性的过程中也有不同的实施方式。下面分别进行说明。
[0040] 若数据读写操作为MMIO类型的读操作时,将记录信息中的操作地址及数据长度,与检测装置分析MMIO类型的读操作得到的操作地址及数据长度进行比较,将记录信息中的操作顺序,与检测装置分析MMIO类型的读操作得到的操作顺序进行比较。在比较结果均一致时,确定处理器在执行MMIO类型的读操作时安全,否则确定处理器在执行MMIO类型的读操作时不安全。例如,当检测装置处理至该MMIO类型的读操作时,解析对应的指令以得到其操作地址及数据长度,以与从前述输入输出记录装置中读取的记录信息进行比较。此外,检测装置还需比较该MMIO类型的读操作的操作顺序(例如,可以用记录信息序列中该MMIO类型的读操作的位置表示其操作顺序)。当操作地址、操作顺序及数据长度中有一者不一致时,确定处理器执行该MMIO类型的读操作时不安全,此时检测装置还可以停止对当前检测区间的检测,进而认定处理器在该检测区间不安全。当操作地址、数据长度及操作顺序均一致时,处理器从输入输出记录装置中读取对应的数据包,然后对下一个数据读写操作的进行分析。
[0041] 若数据读写操作为MMIO类型的写操作,则确定处理器是否安全的具体过程可以包括:将记录信息中的操作地址、数据内容及数据长度,与检测装置分析MMIO类型的写操作得到的操作地址、数据内容及数据长度进行比较,将记录信息中的操作顺序与检测装置分析MMIO类型的写操作得到的操作顺序进行比较。在比较结果均一致时,确定处理器在执行MMIO类型的写操作时安全,否则确定处理器在执行MMIO类型的写操作时不安全。例如,当检测装置处理至该MMIO类型的写操作时,解析对应的指令以得到所应写出的操作地址、数据内容及数据长度,以与从前述输入输出记录装置中读取的记录信息进行比较。此外,检测装置还需比较该MMIO类型的写操作的操作顺序(例如,可以用记录信息序列中该MMIO类型的写操作的位置表示其操作顺序)。当操作地址、数据内容、数据长度及操作中有一者不一致时,确定处理器执行该MMIO类型的写操作时不安全,此时检测装置还可以停止对当前检测区间的检测,进而认定处理器在该检测区间不安全。当操作地址、数据内容、数据长度及操作顺序均一致时,处理器可以接着对下一个数据读写操作的进行分析。
[0042] 若数据读写操作为DMA类型的读操作,则确定处理器是否安全的具体过程可以包括:将记录信息中的操作地址、数据内容及数据长度,与检测装置分析DMA类型的读操作得到的操作地址、数据内容及数据长度进行比较。在比较结果均一致时,确定处理器在执行DMA类型的读操作时安全,否则确定处理器在执行DMA类型的读操作时不安全。除了不需要比较操作顺序外,检测装置分析及检测DMA类型的读操作的过程与MMIO类型的写操作类似,为避免重复,在此不再赘述。
[0043] 在数据读写操作为DMA类型的写操作时,将记录信息中的操作数据的操作地址及数据长度,与检测装置分析DMA类型的写操作得到的操作地址及数据长度进行比较。当比较结果均一致时,确定处理器在执行DMA类型的写操作时安全,否则确定处理器在执行DMA类型的写操作时不安全。除了不需要比较操作顺序外,检测装置分析及检测DMA类型的写操作的过程与MMIO类型的读操作类似,为避免重复,在此不再赘述。
[0044] 若数据读写操作为P2P类型的数据读写操作,则确定处理器是否安全的具体过程可以包括:将记录信息中P2P类型的数据读写操作的从外设流向处理器的数据内容及数据长度与从处理器流向目标外设的数据内容与数据长度进行比较。在比较结果一致时,确定处理器在执行P2P类型的数据读写操作时安全,否则确定处理器在执行P2P类型的数据读写操作时不安全。应理解的是,检测装置在比较前述从外设流向处理器的数据内容及数据长度与从处理器流向目标外设的数据内容及数据长度时,需要确保其来自于同一个P2P类型的数据读写操作。具体地,可以通过交易标识、源地址及目标地址中的一者或多者来区分是否来自于同一个P2P类型的数据读写操作。
[0045] 基于同一发明构思,本发明实施例中还提供了一种检测装置,如下面的实施例所述。由于检测装置解决问题的原理与处理器安全检测方法相似,因此检测装置的实施可以参见处理器安全检测方法的实施,重复之处不再赘述。
[0046] 图2为本发明实施例中检测装置的示意图,如图2所示,该检测装置可以包括:
[0047] 记录信息获取模块201,用于获取处理器与外设之间的数据读写操作的记录信息,数据读写操作为处理器发起的数据读写操作或外设发起的数据读写操作;
[0048] 安全性确定模块202,用于根据数据读写操作的记录信息与检测装置对数据读写操作的分析结果,确定处理器是否安全。
[0049] 图3为本发明实施例中图2所示检测装置的具体实例图。如图3所示,本例中图2所示检测装置还可以包括:
[0050] 日志信息获取模块301,用于获取外设发起的数据读写操作的日志信息,以便于检测装置根据日志信息分析外设发起的数据读写操作,日志信息包括指令位置和外设发起的数据读写操作,指令位置为处理器处理外设发起的数据读写操作时的指令位置。
[0051] 如前所述,在具体的实施例中,所述处理器发起的数据读写操作包括MMIO类型的数据读写操作;和/或,所述外设发起的数据读写操作包括DMA或P2P类型的数据读写操作。
[0052] 如前所述,在具体的实施例中,所述安全性确定模块具体用于:
[0053] 在所述数据读写操作为MMIO类型的读操作时,将所述记录信息中的操作地址及数据长度,与检测装置分析所述MMIO类型的读操作得到的操作地址及数据长度进行比较,将所述记录信息中的操作顺序,与检测装置分析所述MMIO类型的读操作得到的操作顺序进行比较;在比较结果均一致时,确定所述处理器在执行所述MMIO类型的读操作时安全,否则确定所述处理器在执行所述MMIO读操作时不安全。
[0054] 如前所述,在具体的实施例中,所述安全性确定模块具体用于:
[0055] 在所述数据读写操作为MMIO类型的写操作时,将所述记录信息中的操作地址、数据内容及数据长度,与检测装置分析所述MMIO类型的写操作得到的操作地址、数据内容及数据长度进行比较,将所述记录信息中的操作顺序与检测装置分析所述MMIO类型的写操作得到的操作顺序进行比较;在比较结果均一致时,确定所述处理器在执行所述MMIO类型的写操作时安全,否则确定所述处理器在执行所述MMIO类型的写操作时不安全。
[0056] 如前所述,在具体的实施例中,所述安全性确定模块具体用于:
[0057] 在所述数据读写操作为DMA类型的读操作时,将所述记录信息中的操作地址、数据内容及数据长度,与检测装置分析所述DMA类型的读操作得到的操作地址、数据内容及数据长度进行比较;在比较结果均一致时,确定所述处理器在执行所述DMA类型的读操作时安全,否则确定所述处理器在执行所述DMA类型的读操作时不安全。
[0058] 如前所述,在具体的实施例中,所述安全性确定模块具体用于:
[0059] 在所述数据读写操作为DMA类型的写操作时,将所述记录信息中的操作数据的操作地址及数据长度,与检测装置分析所述DMA类型的写操作得到的操作地址及数据长度进行比较;当比较结果均一致时,确定所述处理器在执行所述DMA类型的写操作时安全,否则确定所述处理器在执行所述DMA类型的写操作时不安全。
[0060] 如前所述,在具体的实施例中,所述安全性确定模块具体用于:
[0061] 在所述数据读写操作为P2P类型的数据读写操作时,将记录信息中P2P类型的数据读写操作的从外设流向所述处理器的数据内容及数据长度与从所述处理器流向目标外设的数据内容及数据长度进行比较;当比较结果一致时,确定所述处理器在执行P2P类型的数据读写操作时安全,否则确定所述处理器在执行P2P类型的数据读写操作时不安全。
[0062] 基于同一发明构思,本发明实施例中还提供了一种处理器安全检测系统,如下面的实施例所述。由于处理器安全检测系统解决问题的原理与处理器安全检测方法、检测装置相似,因此处理器安全检测系统的实施可以参见处理器安全检测方法、检测装置的实施,重复之处不再赘述。
[0063] 图4为本发明实施例中处理器安全检测系统的示意图,如图4所示,该处理器安全检测系统可以包括处理器401、外设402、存储器403、输入输出记录装置404及前述的检测装置405;存储器403用于存储检测装置405执行数据读写操作的结果;输入输出记录装置404用于记录处理器401与外设402之间的数据读写操作。
[0064] 应理解的是,输入输出记录装置404可以实现为检测装置405的一部分,也可以独立于检测装置而受其它处理器控制,本发明实施例对此不作限定。
[0065] 综上所述,本发明实施例中,获取处理器与外设之间的数据读写操作的记录信息,进而根据数据读写操作的记录信息与检测装置对数据读写操作的分析结果,确定处理器是否安全。因此,可以有效检测硬件的安全漏洞,提升硬件使用的安全性,保证信息安全。
[0066] 本发明实施例还提供了一种电子设备,该电子设备可以是台式计算机等,本实施例不限于此。在本实施例中,该电子设备可以参照图1所示处理器安全检测方法的实施及图2所示处理器安全检测装置的实施,其内容被合并于此,重复之处不再赘述。
[0067] 图5为本发明实施例的电子设备的系统构成的示意框图。如图5所示,该电子设备可以包括处理器501和存储器502,存储器502耦合至处理器501。值得注意的是,该图是示例性的,还可以使用其他类型的结构来补充或替代该结构,以实现通信、检测功能或其他功能。
[0068] 在一个实施例中,处理器501可以集成处理器安全检测的功能,例如可以被配置为进行如下控制:获取所述处理器与外设之间的数据读写操作的记录信息,所述数据读写操作为所述处理器发起的数据读写操作或所述外设发起的数据读写操作;根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全。
[0069] 其中,所述数据读写操作为所述外设发起的数据读写操作,在所述根据所述数据读写操作的记录信息与检测装置执行所述数据读写操作的结果,确定所述处理器是否安全之前,还包括:获取所述外设发起的数据读写操作的日志信息,以便于所述检测装置根据所述日志信息分析所述外设发起的数据读写操作,所述日志信息包括指令位置和所述外设发起的数据读写操作,所述指令位置为所述处理器处理所述外设发起的数据读写操作时的指令位置。
[0070] 其中,所述处理器发起的数据读写操作包括内存映射输入输出MMIO类型的数据读写操作;和/或,所述外设发起的数据读写操作包括直接内存存取DMA或设备间通信P2P类型的数据读写操作。
[0071] 其中,所述根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全,包括:在所述数据读写操作为MMIO类型的读操作时,将所述记录信息中的操作地址及数据长度,与检测装置分析所述MMIO类型的读操作得到的操作地址及数据长度进行比较,将所述记录信息中的操作顺序,与检测装置分析所述MMIO类型的读操作得到的操作顺序进行比较;在比较结果均一致时,确定所述处理器在执行所述MMIO类型的读操作时安全,否则确定所述处理器在执行所述MMIO类型的读操作时不安全。
[0072] 其中,所述根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全,包括:在所述数据读写操作为MMIO类型的写操作时,将所述记录信息中的操作地址、数据内容及数据长度,与检测装置分析所述MMIO类型的写操作得到的操作地址、数据内容及数据长度进行比较,将所述记录信息中的操作顺序与检测装置分析所述MMIO类型的写操作得到的操作顺序进行比较;在比较结果均一致时,确定所述处理器在执行所述MMIO类型的写操作时安全,否则确定所述处理器在执行所述MMIO类型的写操作时不安全。
[0073] 其中,所述根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全,包括:在所述数据读写操作为DMA类型的读操作时,将所述记录信息中的操作地址、数据内容及数据长度,与检测装置分析所述DMA类型的读操作得到的操作地址、数据内容及数据长度进行比较;当比较结果均一致时,确定所述处理器在执行所述DMA类型的读操作时安全,否则确定所述处理器在执行所述DMA类型的读操作时不安全。
[0074] 其中,所述根据所述数据读写操作的记录信息与检测装置对所述数据读写操作的分析结果,确定所述处理器是否安全,包括:在所述数据读写操作为DMA类型的写操作时,将所述记录信息中的操作数据的操作地址及数据长度,与检测装置分析所述DMA类型的写操作得到的操作地址及数据长度进行比较;当比较结果均一致时,确定所述处理器在执行所述DMA类型的写操作时安全,否则确定所述处理器在执行所述DMA类型的写操作时不安全。
[0075] 其中,所述根据所述数据读写操作的记录信息与检测装置执行所述数据读写操作的结果,确定所述处理器是否安全,包括:在所述数据读写操作为P2P类型的数据读写操作时,将记录信息中P2P类型的数据读写操作的从外设流向所述处理器的数据内容及数据长度与从所述处理器流向目标外设的数据内容及数据长度进行比较;在比较结果一致时,确定所述处理器在执行所述P2P类型的数据读写操作时安全,否则确定所述处理器在执行所述P2P类型的数据读写操作时不安全。
[0076] 在另一个实施例中,检测装置可以实现为图5所示的电子设备。处理器安全检测功能可以与处理器501分开配置,例如可以将处理器安全检测功能配置于与处理器501连接的芯片,通过处理器501的控制来实现处理器安全检测的功能。
[0077] 如图5所示,该电子设备还可以包括:输入单元503、显示单元504和电源505。值得注意的是,该电子设备也并不是必须要包括图5中所示的所有部件。此外,电子设备还可以包括图5中没有示出的部件,可以参考现有技术。
[0078] 如图5所示,处理器501有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器501接收输入并控制电子设备的各个部件的操作。
[0079] 其中,存储器502例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或多种,可存储上述处理器501的配置信息、处理器501执行的指令、记录的信息等信息中的一种或多种。处理器501可以执行存储器502存储的程序,以实现信息存储或处理等。在一个实施例中,存储器502中还包括缓冲存储器,即缓冲器,以存储中间信息。
[0080] 输入单元503例如可以为按键输入装置或触摸输入装置,用于向处理器501提供输入。显示单元504用于进行图像或文字等显示对象的显示,该显示单元例如可以为LCD显示器,但本发明并不限于此。电源505用于向电子设备提供电力。
[0081] 本发明实施例还提供一种计算机可读指令,其中当在电子设备中执行所述指令时,所述程序使得电子设备执行如图1所示的处理器安全检测方法。
[0082] 本发明实施例还提供一种存储有计算机可读指令的存储介质,其中所述计算机可读指令使得电子设备执行如图1所示的处理器安全检测方法。
[0083] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0084] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0085] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0086] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0087] 以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。