记录处理器输入输出操作的方法、装置、系统及介质与流程

文档序号:18901302发布日期:2019-10-18 21:58阅读:161来源:国知局
记录处理器输入输出操作的方法、装置、系统及介质与流程

本发明涉及处理器安全检测领域,更具体地,涉及一种记录处理器输入输出操作的方法、装置、系统及介质。



背景技术:

随着网络信息化等新技术的大规模应用,信息安全成为日益严峻的问题。通常我们讨论的信息安全都局限于网络安全、软件安全等方面,但是随着近年来研究表明,硬件安全也应受到关注。硬件设计的规模随着硬件设计水平的提升日渐提升,使得硬件木马成为可能:当前以被测处理器(处理器)为代表的大规模电路中用到的硬件ip(知识产权)的来源多样化,硬件设计的流程复杂化,设计制造流程分工细化等因素造成了硬件最终产品的安全可控性下降。在设计中被注入恶意木马或者漏洞(下文简称木马)的可能性增加,同时硬件规模的增加也增加了木马被识别和发现的困难。近年来,随着信息安全概念的发展,硬件的安全性逐渐成为信息安全的研究热点。在硬件安全检测的过程中,输出操作的安全性是安全检测的重点之一。



技术实现要素:

发明人发现,完整地记录处理器在目标运行过程中输入输出操作对于处理器的安全检测至关重要。

本发明的一个方面提供了一种记录处理器输入输出操作的方法。所述方法应用于电子设备,所述电子设备包括外设记录器和内存记录器,所述外设记录器设置于外设与所述处理器之间,用于记录外设与所述处理器之间交互的数据包;所述内存记录器设置于内存与所述处理器之间,用于记录所述内存与所述处理器之间交互的数据包。所述方法包括:开始监控目标运行过程时,暂停所述处理器,清空缓存,以及在确定所述外设记录器已清空上行链路中第一时刻前的数据包时,清空存储器控制器中缓存的数据包,开启所述内存记录器和所述外设记录器,并恢复所述处理器正常运行,其中所述第一时刻为所述目标运行过程的起点;以及,停止监控所述目标运行过程时,暂停所述处理器,清空所述缓存,以及在确定所述外设记录器已清空上行链路中第二时刻前的数据包时,清空所述存储器控制器中缓存的数据包,关闭所述内存记录器和所述外设记录器,并恢复所述处理器正常运行,其中所述第二时刻为所述目标运行过程的终点。

可选地,所述方法还包括:在开始监控目标运行过程后以及在开启所述外设记录器前,控制所述外设记录器的上行链路处于暂停模式。其中,在所述暂停模式下所述外设记录器暂存而不向所述处理器发送上行链路中的数据包。

可选的,所述方法还包括:在开启所述外设记录器后,控制所述外设记录器的上行链路处于第一刷新模式以及下行链路处于第二刷新模式。其中,在所述第一刷新模式下,所述外设记录器向所述处理器发送中断,在接到中断响应时记录并向所述处理器发送上行链路中的数据包;在所述第二刷新模式下,所述外设记录器记录并发送下行链路中的数据包。

可选地,所述方法还包括:在所述目标运行过程的终点处,控制所述外设记录器的上行链路处于排空模式。其中,在所述排空模式下所述外设记录器清空上行链路中的数据包,并阻止新的数据包进入所述外设记录器的上行链路。

本发明的另一方面提供了一种记录处理器输入输出操作的装置。所述装置设置于电子设备,所述电子设备包括外设记录器和内存记录器,所述外设记录器设置于外设与所述处理器之间,用于记录外设与所述处理器之间交互的数据包;所述内存记录器设置于内存与所述处理器之间,用于记录所述内存与所述处理器之间交互的数据包所述装置包括起点对齐模块和终点对齐模块。所述起点对齐模块用于在开始监控目标运行过程时,暂停所述处理器,清空缓存;以及在确定所述外设记录器已清空上行链路中第一时刻前的数据包时,清空存储器控制器中缓存的数据包,开启所述内存记录器和所述外设记录器,并恢复所述处理器正常运行,其中所述第一时刻为所述目标运行过程的起点。所述终点对齐模块用于在停止监控所述目标运行过程时,暂停所述处理器,清空所述缓存;以及在确定所述外设记录器已清空上行链路中第二时刻前的数据包时,清空所述存储器控制器中缓存的数据包,关闭所述内存记录器和所述外设记录器,并恢复所述处理器正常运行,其中所述第二时刻为所述目标运行过程的终点。

可选地,所述装置还包括第一外设记录器控制模块。第一外设记录器控制模块用于在开始监控目标运行过程后以及在开启所述外设记录器前,控制所述外设记录器的上行链路处于暂停模式。其中,在所述暂停模式下所述外设记录器暂存而不向所述处理器发送上行链路中的数据包。

可选的,所述装置还包括第二外设记录器控制模块。第二外设记录器控制模块用于在开启所述外设记录器后,控制所述外设记录器的上行链路处于第一刷新模式以及下行链路处于第二刷新模式。其中,在所述第一刷新模式下,所述外设记录器向所述处理器发送中断,在接到中断响应时记录并向所述处理器发送上行链路中的数据包;在所述第二刷新模式下,所述外设记录器记录并发送下行链路中的数据包。

可选的,所述装置还包括第三外设记录器控制模块。第三外设记录器控制模块,用于在所述目标运行过程的终点处,控制所述外设记录器的上行链路处于排空模式。其中,在所述排空模式下所述外设记录器清空上行链路中的数据包,并阻止新的数据包进入所述外设记录器的上行链路。

本发明的另一方面还提供了一种记录处理器输入输出操作的系统。所述系统包括存储器、以及耦接至所述存储器的处理器。所述处理器被配置为基于存储在所述存储器中的指令,执行如上所述的记录处理器输入输出操作的方法。

本发明的另一方面还提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的记录处理器输入输出操作的方法。

本发明的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的记录处理器输入输出操作的方法。

根据本发明实施例,能够在目标运行过程的起点和终点,分别对齐处理器、内存记录器和外设记录器的状态,使得处理器、内存记录器和外设记录器的状态处于同一起点和终点,可以消除由于缓存等因素带来的不确定性,进而准确地记录处理器在目标运行过程中的输入输出操作,为软硬件的安全检测提供了准确可靠的数据源。

附图说明

为了更完整地理解本发明及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本发明实施例的记录处理器输入输出操作的方法、装置、系统和介质的应用场景;

图2示意性示出了根据本发明实施例的记录处理器输入输出操作的方法流程图;

图3a示意性示出了根据本发明实施例的记录处理器输入输出操作的方法中操作s210的流程示意;

图3b示意性示出了根据本发明实施例的记录处理器输入输出操作的方法在目标运行过程的起点处的交互过程示意;

图4a示意性示出了根据本发明实施例的记录处理器输入输出操作的方法中操作s220的流程示意;

图4b示意性示出了根据本发明实施例的记录处理器输入输出操作的方法在目标运行过程的终点处的交互过程示意;

图5示意性示出了根据本发明实施例的记录处理器输入输出操作的装置的方框图;以及

图6示意性示出了根据本发明实施例的记录处理器输入输出操作的计算系统的框图。

具体实施方式

以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本发明实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“a或b”应当被理解为包括“a”或“b”、或“a和b”的可能性。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。

因此,本发明的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本发明的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本发明的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。

本发明的实施例提供了一种记录处理器输入输出操作的方法、装置、系统及介质。该方法应用于电子设备,该电子设备包括外设记录器和内存记录器,该外设记录器设置于外设与该被测处理器之间,用于记录外设与该被测处理器之间交互的数据包;该内存记录器设置于内存与该被测处理器之间,用于记录该内存与该被测处理器之间交互的数据包。该方法包括:开始监控目标运行过程时,暂停该被测处理器,清空缓存,以及在确定该外设记录器已清空上行链路中第一时刻前的数据包时,清空存储器控制器中缓存的数据包,开启该内存记录器和该外设记录器,并恢复该被测处理器正常运行,其中该第一时刻为该目标运行过程的起点;以及,停止监控该目标运行过程时,暂停该被测处理器,清空该缓存,以及在确定该外设记录器已清空上行链路中第二时刻前的数据包时,清空该存储器控制器中缓存的数据包,关闭该内存记录器和该外设记录器,并恢复该被测处理器正常运行,其中该第二时刻为该目标运行过程的终点。

根据本发明实施例的方法、装置、介质及系统,能够在目标运行过程的起点和终点,分别对齐被测处理器、内存记录器和外设记录器的状态,使得该三者的状态处于同一起点和终点。以此方式,可以消除由于缓存等因素带来的不确定性,进而准确地记录该被测处理器在该目标运行过程中的输入输出操作,为软硬件的安全检测提供了准确可靠的数据源。

图1示意性示出了根据本发明实施例的记录处理器输入输出操作的方法、装置、系统和介质的应用场景100。需要注意的是,图1所示仅为可以应用本发明实施例的应用场景的示例,以帮助本领域技术人员理解本发明的技术内容,但并不意味着本发明实施例不可以用于其他设备、系统、环境或场景。

如图1所示,该应用场景100包括被测处理器、内存、外设、内存记录器、外设记录器以及检测处理器。其中内存记录器设置于内存与被测处理器之间,外设记录器设置于外设与被测处理器之间,检测处理器分别于被测处理器、内存记录器和外设记录器相连。

被测处理器在目标运行过程中与内存和/或外设进行数据的交互。

内存记录器记录被测处理器在目标运行过程中与内存之间的输入信息和输出信息,也即被测处理器对内存的读写操作。

外设记录器记录被测处理器在目标运行过程中与外设之间的输入信息和输出信息,例如可以包括mmio(memorymappedi/o,内存映射输入输出)、dma(directmemoryaccess,直接内存存取)、p2p(peertopeer,设备间通信)等类型的数据读写操作。其中,外设可以是显卡、声卡、和/或硬盘等。为了便于查找外设记录器中记录的数据包,将外设记录器划分为第一分区和第二分区,其中第一分区用于记录由外设流向被测处理器的数据包(因此,第一分区也称为上行链路),第二分区用于记录由被测处理器流向外设的数据包(因此,第二分区也称为下行链路)。

检测处理器通过软件的方式读取被测处理器的内部状态,并从内存记录器和外设记录器获取被测处理器的输入输出操作信息。

在基于重放执行的处理器安全检测过程中,检测处理器以被测处理器在一个目标运行过程中的输入信息作为输入信息,根据被测处理器在该目标运行过程中的初始运行状态信息设置检测处理器的初始运行状态,以符合预定义行为的方式执行该目标运行过程的任务,得到检测处理器在该目标运行过程中的输出信息和/或该目标运行过程的终止运行状态信息,然后根据检测处理器的输出信息和/或终止状态信息来判断被测处理器在该目标运行过程中是否安全。其中,预定义行为是处理器的硬件行为标准,硬件行为标准是指在解析与执行软件指令流的过程中处理器的行为标准。

如图1所示,可以通过内存记录器和外设记录器分别记录被测处理器与内存和外设的交互信息,通过软件的方式读取并记录被测处理器的运行状态。然后,使检测处理器以符合预定义行为的方式执行目标运行过程中的任务,得到检测处理器的输出信息和/或终止运行状态信息。其中,该目标运行过程可以是被测处理器从开机到关机的整个运行过程中的一个阶段,例如,可以将被测处理器的整个运行过程划分为多个运行区间对应的多个目标运行过程。

判断被测处理器在该目标运行过程是否安全,可以是当检测处理器执行完该目标运行过程中的任务时,根据检测处理器的输出信息和/或终止状态信息确定被测处理器在该目标运行过程中是否安全。

例如,比较检测处理器的输出信息与被测处理器在目标运行过程中的输出信息,得到第一比较结果,和/或比较检测处理器的终止运行状态信息与被测处理器执行目标运行过程的终止运行状态信息,得到第二比较结果,根据该第一比较结果和/或该第二比较结果,确定被测处理器在该目标运行过程中是否安全。

例如,当该第一比较结果表示检测处理器的输出信息与被测处理器在目标运行过程中的输出信息不一致,或该第二比较结果表示检测处理器的终止运行状态信息与被测处理器执行目标运行过程的终止运行状态信息不一致时,确定被测处理器在该目标运行过程中不安全。

或者,当该第一比较结果表示检测处理器的输出信息与被测处理器在目标运行过程中的输出信息一致,以及该第二比较结果表示检测处理器的终止运行状态信息与被测处理器执行目标运行过程的终止运行状态信息一致时,确定被测处理器在该目标运行过程中安全。

可见,在对被测处理器的安全检测中,准确地获取被测处理器在目标运行过程的输入输出信息对于检测结果的可靠性至关重要。

根据本发明实施例的记录处理器输入输出操作的方法可以由检测处理器执行,或者说由检测处理器控制实现该记录方法(例如,由检测处理器发送指令以控制被测处理器、外设记录器和内存记录器执行相应的步骤)。相应地,根据本发明实施例的记录处理器输入输出操作的装置、系统和介质可以设置在检测处理器中。或者,根据本发明实施例的记录处理器输入输出操作的方法可以由能够控制外设记录器和内存记录器记录过程的其他处理器执行。相应地,根据本发明实施例的记录处理器输入输出操作的装置、系统和介质可以设置于其他处理器中。

图2示意性示出了根据本发明实施例的记录处理器输入输出操作的方法流程图。

如图2所示,根据本发明的实施例,该记录处理器输入输出操作的方法可以包括操作s210和操作s220。该记录处理器输入输出操作的方法应用于电子设备。该电子设备可以如图1所示,包括外设记录器和内存记录器,该外设记录器设置于外设与该被测处理器之间,用于记录外设与被测处理器之间交互的数据包。该内存记录器设置于内存与该被测处理器之间,用于记录该内存与该被测处理器之间交互的数据包。

在操作s210,开始监控目标运行过程时,暂停该被测处理器,清空缓存;以及在确定该外设记录器已清空上行链路中第一时刻前的数据包时,清空存储器控制器中缓存的数据包,开启该内存记录器和该外设记录器,并恢复该被测处理器正常运行,其中该第一时刻为该目标运行过程的起点。

例如,在通知被测处理器暂停运行时,可以由被测处理器执行清空缓存的操作。这种情况下,清空缓存的操作将是被测处理器暂停运行前执行的最后一条指令。在另一种实现方式中,在被测处理器暂停运行后,由检测处理器执行清空缓存的操作。在又一种实现方式中,被测处理器暂停运行后,接到清空缓存的操作的通知时,唤醒并执行清空操作。

在操作s220,停止监控该目标运行过程时,暂停该被测处理器,清空该缓存;以及在确定该外设记录器已清空上行链路中第二时刻前的数据包时,清空该存储器控制器中缓存的数据包,关闭该内存记录器和该外设记录器,并恢复该被测处理器正常运行,其中该第二时刻为该目标运行过程的终点。

应理解,以上操作s210和操作s220均可以由电子设备的处理器(如,检测处理器)发送指令,以控制被测处理器、内存记录器和外设记录器实现相应的操作。例如,在开始监控目标运行过程时,检测处理器向被测处理器发送指令,以使该被测处理器暂停指令流的执行。

还应理解的是,开启该内存记录器和该外设记录器中的“开启”是广义概念,与“上电”的含义不同,指开始记录本目标运行过程的信息。相应地,“关闭”也是广义概念,指停止记录本目标运行过程中的信息。

还应理解,外设记录器记录外设与被测处理器之间交互的数据包时,采用发出时再记录的方式。也就是说,数据包进入外设记录器时并不记录该数据包,而是在外设记录器将该数据包发出去时再记录该数据包。

根据本发明的实施例,在被测处理器被暂停时,被测处理器不会主动发起数据读写操作,但是被测处理器还具有数据包转发功能,仍能支持dma及p2p数据读写。因此,若外设记录器在被测处理器被暂停期间向被测处理器发送上行链路中的数据包时,仍能将数据包写入到内存相应位置。为避免在被测处理器被暂停期间dma操作或p2p操作在外设记录器中上行链路的异步性引起结果的不确定性,根据本发明的实施例,可以将在被测处理器被暂停期间对外设记录器上行链路中的数据进行相应的处理(例如,在目标运行起点处设置为暂停模式,或者在目标运行终点处设置为排空模式),以使得被测处理器和外设记录器的起点和终点状态对齐。

根据本发明的实施例,操作s210还可以包括在开始监控目标运行过程后以及在开启该外设记录器前,控制该外设记录器的上行链路处于暂停模式。其中,在暂停模式下该外设记录器暂存而不向该被测处理器发送上行链路中的数据包。

根据本发明的实施例,操作s210还可以包括在开启该外设记录器后,控制该外设记录器的上行链路处于第一刷新模式以及下行链路处于第二刷新模式。其中,在该第一刷新模式下,该外设记录器向该被测处理器发送中断,在接到中断响应时记录并向该被测处理器发送上行链路中的数据包。在该第二刷新模式下,该外设记录器记录并发送下行链路中的数据包。

根据本发明的实施例,操作s220中在该目标运行过程的终点处,还可以包括控制该外设记录器的上行链路处于排空模式。其中,在排空模式下该外设记录器清空上行链路中的数据包,并阻止新的数据包进入该外设记录器的上行链路。

根据本发明的实施例,能够在目标运行过程的起点和终点,分别对齐被测处理器、内存记录器和外设记录器的状态,使得该三者的状态处于同一起点和终点。以此方式,可以消除由于缓存等因素带来的不确定性,进而准确地记录被测处理器在该目标运行过程中的输入输出操作,为软硬件的安全检测提供了准确可靠的数据源。

以下结合图3a~图4b的应用实例,进一步详细阐述根据本发明实施例的记录处理器输入输出操作的方法的技术实现细节,应理解本发明实施例并不受限于此。

图3a示意性示出了根据本发明实施例的记录处理器输入输出操作的方法中操作s210的流程示意。

如图3a所示,在目标运行过程的起点处,该方法的具体执行可以包括步骤3a-1~步骤3a-7。

步骤3a-1:在根据本发明的实施例,在操作s210中开始监控目标运行过程时,检测处理器(或者其它可以控制外设记录器和内存记录器记录过程的处理器)通知被测处理器暂停运行(如果被测处理器包含多个核,需要使所有核暂停运行),并将高速缓存中被改写的数据写回内存,然后无效缓存中的所有项目。

应理解,被测处理器暂停运行后,会暂停访问寄存器。即被测处理器不再读写寄存器,但是被测处理器仍具有数据转发功能(例如,转发dma数据包或p2p数据包)。在基于重放执行的安全检测中,检测处理器可以在被测处理器暂停运行后,获取被测处理器在目标运行过程的初始状态信息(即,读取相应寄存器中的数值)。

步骤3a-2:将外设记录器的上行链路设为暂停模式。在外设记录器记录被测处理器与外设交互的数据时,根据数据包的流向将外设记录器分为上行链路和下行链路。其中上行链路是指由外设流向被测处理器的数据链路,下行链路是指由被测处理器流向外设的数据链路。在暂停模式下外设记录器记录并暂停数据包。例如,将上行链路设为暂停模式后,由外设发往被测处理器的数据包会被外设记录器记录并暂存,但是不会发往被测处理器。需要注意的是,在本发明中外设记录器下行链路的模式可选,本发明实施例对此不作限定。

步骤3a-3:将外设记录器上行链路中暂存的数据包发送至被测处理器。

根据本发明的实施例,外设记录器所缓存的数据中有一部分是外设访问内存的数据,例如dma或者p2p操作的数据包。一些dma操作的执行会影响内存的存储状态,如果在目标运行过程的起点处不清理外设记录器的上行链路,会导致得到的内存初始状态与实际的内存初始状态不一致。根据本发明实施例,将外设记录器上行链路设置为暂停模式后,可以将此作为分割点,将暂停模式设置前到达外设记录器的数据包清空。这种情况下,设置暂停模式的时间点为目标运行过程的起点。应理解,将外设记录器上行链路中的数据包清空,是指将该部分数据经过被测处理器核之外的外围逻辑转发后到达内存的相应位置或者相应外设。

步骤3a-4:检测处理器检查确定外设记录器是否已经完成上行链路数据包的发送。如果外设记录器已完成上行链路中数据包的发送,进入步骤3a-5。如果外设记录器没有完成数据包的发送,继续查询外设记录器的发送状态直至外设记录器完成数据包的发送后进入步骤3a-5。

在一个实施例中,可以将设置为被测处理器暂停模式的时间点作为划分标准,将设置为暂停时点之前外设记录器上行链路中暂存的数据包发送完,就可认定为已经完成了数据包的发送。在另一实施例中,检测处理器轮询发现外设记录器上行链路为空时,也可认定为外设记录器已经完成了数据包的发送。

步骤3a-5:将被测处理器的存储器控制器中缓存的数据包发送至目的地,以清空存储器控制器。根据本发明的实施例,被测处理器的存储器控制器包括内存存储器控制器、或者pci-e存储器控制器等。在执行完步骤3a-5之后,内存记录器、外设记录器在目标运行过程中的记录起点将会与被测处理器的起始指令位置一致,因此在安全检测过程中能够获得内存的准确初始状态。

步骤3a-6:开启内存记录器的记录功能,使内存记录器开始记录被测处理器在目标运行过程中的访存操作。

步骤3a-7:开启外设记录器的记录功能,使外设记录器开始记录被测处理器在目标运行过程中访问外设的操作(包括由外设发起的数据读写操作)。

图3b示意性示出了根据本发明实施例的记录处理器输入输出操作的方法在目标运行过程的起点处的交互过程示意。

下面结合图3b详细介绍在基于重放的处理器安全检测中,在目标运行过程的起点处,本发明方法的技术实现细节。具体地,根据本发明实施例的记录处理器输入输出操作的方法,具体包括步骤3b-1~步骤3b-13。

步骤3b-1:检测处理器开始监控被测处理器运行。

步骤3b-2:通知被测处理器暂停运行(如果被测处理器包含多个核,需要使所有核暂停运行),并将高速缓存中被改写的数据写回内存,然后无效缓存中的所有项目。

步骤3b-3:将外设记录器的上行链路设为暂停模式。

步骤3b-4:检测处理器向外设记录器发送清空上行链路中的数据包的命令,以通知外设记录器发送上行链路中的数据包。

步骤3b-5:外设记录器将上行链路中暂存的所有数据包发送至被测处理器,以通过被测处理器的数据转发功能,使数据包进入内存对应位置或者对应的外设。

步骤3b-6:检测处理器检查确定外设记录器是否已经完成上行链路数据包的发送。如果外设记录器已经完成上行链路中数据包的发送,进入步骤3b-7,如果外设记录器没有完成数据包的发送,检测处理器继续查询外设记录器的发送状态直至外设记录器完成数据包的发送后进入步骤3b-7。

步骤3b-7:将被测处理器的存储器控制器中缓存的数据包发送至目的地,以清空存储器控制器。

步骤3b-8:检测处理器通知内存记录器开始记录。

步骤3b-9:开启内存记录器的记录功能,使内存记录器开始记录被测处理器在目标运行过程中的访存操作。

步骤3b-10:检测处理器通知外设记录器开始记录。

步骤3b-11:开启外设记录器的记录功能,使外设记录器开始记录被测处理器在目标运行过程中访问外设的操作(包括由外设发起的数据读写操作)。其中上行链路设为第一刷新模式(例如,flush_int模式)。在第一刷新模式下外设记录器记录数据包并向被测处理器发送中断,待被测处理器响应中断后再将数据包发送至被测处理器。下行链路设为第二刷新模式(例如,flush模式)。在第二刷新模式下外设记录器记录并发送数据包。

步骤3b-12:通知被测处理器恢复各个核的正常运行。

步骤3b-13:检测处理器开始监控被测处理器的目标运行过程,并记录开始监控的指令位置。

图4a示意性示出了根据本发明实施例的记录处理器输入输出操作的方法s220的流程示意。

如图4a所示,在目标运行过程的终点处,操作s220的实现具体可以包括步骤4a-1~4a-6

步骤4a-1:检测处理器(或者其它可以控制外设记录器和内存记录器记录过程的处理器)通知被测处理器暂停运行(如果被测处理器包含多个核,需要使所有核暂停运行),并将高速缓存中被改写的数据写回内存,然后无效缓存中的所有项目。

步骤4a-2:将外设记录器的上行链路设为排空模式。在排空模式下,外设记录器清空上行链路中的数据包并阻止新的数据包进入外设记录器的上行链路。例如,将上行链路设置为排空模式后,可以触发外设记录器将上行链路中的数据包全部发送至被测处理器,并阻止新的数据包进入上行链路。类似地,本发明实施例不限定下行链路的模式。

步骤4a-3:检测处理器检查确定外设记录器是否已经完成上行链路数据包的发送。如果外设记录器已完成上行链路中数据包的发送,进入步骤4a-4,如果外设记录器没有完成数据包的发送,检测处理器继续查询外设记录器的发送状态直至外设记录器完成数据包的发送后进入步骤4a-4。

步骤4a-4:将被测处理器的存储器控制器缓存的数据包发送至目的地,以清空存储器控制器。

步骤4a-5:关闭内存记录器的记录功能,使内存记录器停止记录被测处理器访问内存的操作。

步骤4a-6:关闭外设记录器的记录功能,使外设记录器停止记录被测处理器访问外设的操作(包括由外设发起的数据读写操作)。

图4b示意性示出了根据本发明实施例的记录处理器输入输出操作的方法在目标运行过程的终点处的交互过程示意。

图4b为在目标运行过程终点处,根据本发明实施例的记录处理器输入输出操作的方法,在基于重放的硬件安全检测中与被测处理器的交互技术实现细节,具体包括步骤4b-1~步骤4b-13。

步骤4b-1:检测处理器停止对被测处理器的监控。

步骤4b-2:通知被测处理器暂停运行(如果被测处理器包含多个核,需要使所有核暂停运行),并记录停止监控的指令位置。

步骤4b-3:将外设记录器的上行链路设为flush模式,在该模式下外设记录器记录并发送数据包无须使用中断。本发明实施例不限定下行链路的模式。

步骤4b-4:检测处理器通知被测处理器清空缓存,也即将高速缓存中被改写的数据写回内存,然后无效缓存中的所有项目。

步骤4b-5:检测处理器将外设记录器的上行链路设为排空模式。在排空模式下,外设记录器将上行链路中的数据包全部发送至被测处理器,并阻止新的数据包进入外设记录器的上行链路。

步骤4b-6:检测处理器检查确定外设记录器是否已经完成上行链路数据包的发送。如果外设记录器已完成上行链路中数据包的发送,进入步骤4b-7。如果外设记录器没有完成数据包的发送,检测处理器继续查询外设记录器的发送状态直至外设记录器完成数据包的发送后进入步骤4b-7。

步骤4b-7:检测处理器将被测处理器的存储器控制器中缓存的数据包发送至目的地,以清空存储器控制器。

步骤4b-8:检测处理器通知内存记录器停止记录。

步骤4b-9:关闭内存记录器的记录功能,使内存记录器停止记录被测处理器访问内存操作。

步骤4b-10:检测处理器通知外设记录器停止记录。

步骤4b-11:关闭外设记录器的记录功能,使外设记录器停止记录被测处理器访问外设的操作(包括由外设发起的数据读写操作)。其中上行链路和下行链路设均为重放模式。在重放模式下,外设记录器不再记录数据包,也不会影响数据包的正常发送,但是检测处理器可以从外设记录器读取数据以用于安全检测。

步骤4b-12:通知被测处理器恢复各个核的正常运行。

步骤4b-13:检测处理器停止对目标运行过程的监控,并使用外设记录器和内存记录器的记录的数据进行重放执行和安全检测。

根据本发明实施例的记录处理器输入输出操作的方法,可以消除由于缓存等因素带来的不确定性,进而准确地记录被测处理器在目标运行过程中的输入输出操作,为被测处理器的安全检测提供了准确可靠的数据源。

图5示意性示出了根据本发明实施例的记录处理器输入输出操作的装置500的方框图。

如图5所示,根据本发明的实施例,该装置500包括起点对齐模块510和终点对齐模块520。该装置500设置于电子设备,该电子设备可以如图1所示,包括外设记录器和内存记录器,该外设记录器设置于外设与该被测处理器之间,用于记录外设与被测处理器之间交互的数据包。该内存记录器设置于内存与该被测处理器之间,用于记录该内存与该被测处理器之间交互的数据包。该装置500可以用于实现根据本发明实施例的记录处理器输入输出操作的方法。

起点对齐模块510用于在开始监控目标运行过程时,暂停被测处理器,清空缓存;以及在确定该外设记录器已清空上行链路中第一时刻前的数据包时,清空存储器控制器中缓存的数据包,开启该内存记录器和该外设记录器,并恢复该被测处理器正常运行,其中该第一时刻为该目标运行过程的起点。

终点对齐模块520用于在停止监控该目标运行过程时,暂停被测处理器,清空缓存;以及在确定外设记录器已清空上行链路中第二时刻前的数据包时,清空存储器控制器中缓存的数据包,关闭内存记录器和外设记录器,并恢复被测处理器正常运行,其中该第二时刻为该目标运行过程的终点。

根据本发明的实施例,该装置500还可以包括第一外设记录器控制模块530。第一外设记录器控制模块530用于在开始监控目标运行过程后以及在开启该外设记录器前,控制该外设记录器的上行链路处于暂停模式。其中,在该暂停模式下该外设记录器暂存而不向被测处理器发送上行链路中的数据包。

根据本发明的实施例,该装置500还可以包括第二外设记录器控制模块540。第二外设记录器控制模块540用于在开启该外设记录器后,控制该外设记录器的上行链路处于第一刷新模式以及下行链路处于第二刷新模式。其中,在该第一刷新模式下,外设记录器向被测处理器发送中断,在接到中断响应时记录并向被测处理器发送上行链路中的数据包;在该第二刷新模式下,外设记录器记录并发送下行链路中的数据包。

根据本发明的实施例,该装置500还包括第三外设记录器控制模块550。第三外设记录器控制模块550用于在该目标运行过程的终点处,控制该外设记录器的上行链路处于排空模式。其中,在该排空模式下该外设记录器清空上行链路中的数据包,并阻止新的数据包进入该外设记录器的上行链路。

根据本发明的实施例,该装置500能够在目标运行过程的起点和终点,分别对齐该被测处理器、内存记录器和外设记录器的状态,使得该三者的状态处于同一起点和终点,从而能够准确地记录该处理器在该目标运行过程中的输入输出操作。具体可以参见上面参考图2~图4b的描述,这里不再重复。

根据本发明的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本发明实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本发明实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本发明实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,起点对齐模块510、终点对齐模块520、第一外设记录器控制模块530、第二外设记录器控制模块540、以及第三外设记录器控制模块550中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,起点对齐模块510、终点对齐模块520、第一外设记录器控制模块530、第二外设记录器控制模块540、以及第三外设记录器控制模块550中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,起点对齐模块510、终点对齐模块520、第一外设记录器控制模块530、第二外设记录器控制模块540、以及第三外设记录器控制模块550中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图6示意性示出了根据本发明实施例的记录处理器输入输出操作的计算系统600的框图。图6示出的计算机系统仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图6所示,该计算系统600包括检测处理器610、和计算机可读存储介质620。该计算系统600可以执行根据本发明实施例的方法。

具体地,检测处理器610例如可以包括通用微处理器、可重构处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。检测处理器610还可以包括用于缓存用途的板载存储器。检测处理器610可以是用于执行根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

计算机可读存储介质620,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。

计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由检测处理器610执行时使得检测处理器610执行根据本发明实施例的方法或其任何变形。

计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621a、模块621b、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被检测处理器610执行时,使得检测处理器610可以执行根据本发明实施例的方法或其任何变形。

根据本发明的实施例,起点对齐模块510、终点对齐模块520、第一外设记录器控制模块530、第二外设记录器控制模块540、以及第三外设记录器控制模块550中的至少一个可以实现为参考图6描述的计算机程序模块,其在被检测处理器610执行时,可以实现上面描述的相应操作。

本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本发明实施例的方法。

根据本发明的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在不脱离本发明精神和教导的情况下,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。

尽管已经参照本发明的特定示例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

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