动态度量的方法、装置、电子设备及计算机可读存储介质与流程

文档序号:17222870发布日期:2019-03-27 12:11阅读:205来源:国知局
动态度量的方法、装置、电子设备及计算机可读存储介质与流程

本申请涉及微内核技术领域,具体而言,本申请涉及一种动态度量的方法、装置、电子设备及计算机可读存储介质。



背景技术:

随着信息技术的发展,宏内核系统也随之发展,宏内核系统当前的运行情况,影响用户信息的安全,因此如何对宏内核系统进行动态度量,以确定宏内核系统当前的运行情况成为一个关键问题。

现有技术中提供了一种动态度量的方法,通过在宏内核系统中注入探针程序,动态度量宏内核系统的相关信息,例如,符号表、宏内核系统的内存加载地址以及宏内核的代码段,然后基于探针程序度量到的宏内核的相关信息,通过特定的程序确定宏内核系统当前的运行情况。

然而,当通过探针程序对宏内核系统进行动态度量时,若宏内核系统被提权为超级用户后,探针程序可能被宏内核系统感知,进而可能被销毁,从而导致无法对宏内核系统进行动态测量,进而导致无法检测宏内核系统当前的运行状态信息。



技术实现要素:

本申请提供了一种动态度量的方法、装置、电子设备及计算机可读存储介质,用于无法对宏内核系统进行动态测量,且无法检测宏内核系统当前的运行状态信息的问题。

第一方面,提供了一种动态度量的方法,该方法包括:

通过预创建的度量域获取宏内核系统当前的系统信息;

通过预创建的度量域并基于宏内核系统当前的系统信息,确定宏内核系统当前的系统运行状态信息。

第二方面,提供了一种动态度量的装置,该装置包括:

获取模块,用于通过预创建的度量域获取宏内核系统当前的系统信息;

确定模块,用于通过预创建的度量域并基于获取模块获取到的宏内核系统当前的系统信息,确定宏内核系统当前的系统运行状态信息。

第三方面,提供了一种电子设备,该电子设备包括:

一个或多个处理器;

存储器;

一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行根据第一方面所示的动态度量的方法。

第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现第一方面所示的动态度量的方法。

本申请实施例提供的技术方案带来的有益效果是:

本申请提供了一种动态度量的方法、装置、电子设备及计算机可读存储介质,与现有技术中通过探针程序对宏内核系统进行动态度量相比,本申请通过预创建的度量域获取宏内核系统当前的系统信息,通过预创建的度量域并基于宏内核系统当前的系统信息,确定宏内核系统当前的系统运行状态信息。即本申请通过预创建的度量域获取宏内核系统当前的系统信息,并在预创建的度量域中对宏内核系统当前的系统运行状态进行动态度量,并不会被宏内核系统感知,从而可以实现对宏内核系统进行动态度量,进而可以检测出宏内核系统当前的运行状态信息。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。

图1为本申请实施例提供的一种动态度量的系统结构示意图;

图2为本申请实施例提供的一种动态度量的方法流程示意图;

图3为本申请实施例提供的一种动态度量的装置结构示意图;

图4为本申请实施例提供的另一种动态度量的装置结构示意图;

图5为本申请实施例提供的一种动态度量的电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

首先对本申请实施例涉及的几个名词进行介绍和解释:

微内核(microkernel)是一种能够提供必要服务的操作系统内核,其中这些必要的服务包括任务、线程、交互进程通信(inter-processcommunication,ipc)以及内存管理等等。

宏内核(英语:monolithickernel),又称单核心,是操作系统核心架构的一种,此架构的特性是整个核心程序都是以核心空间的身份及监管者模式来运行,相对于其他类型的操作系统架构,如微核心架构或混核心架构等,这些核心会定义出一个高级的虚拟接口,由该接口来涵盖描述整个电脑硬件,这些描述会集合成一组硬件描述用词,有时还会附加一些系统调用,如此可以用一个或多个模块来实现各种操作系统服务,如进程管理、共时控制、存储器管理等。

符号表是一种用于语言翻译器(例如编译器和解释器)中的数据结构,在符号表中,程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如其数据类型、作用域以及内存地址。

本申请实施例提供了一种动态度量的方法,应用于动态度量的系统,如图1所示,该动态度量的系统包括:宏内核系统、微内核以及预创建的度量域,其中,宏内核系统与预创建的度量域通过微内核进行信息交互,该预创建的度量域是由微内核进行预先创建的。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

实施例一

本申请实施例提供了一种动态度量的方法,如图2所示,该方法包括:

步骤s201、通过预创建的度量域获取宏内核系统当前的系统信息。

对于本申请实施例,宏内核系统当前的系统信息包括以下至少一项:宏内核系统中代码段对应的偏移量;宏内核系统中数据段对应的偏移量。

对于本申请实施例,每隔第一预设时间,通过预创建的度量域获取宏内核系统当前的系统信息。

例如,预设时间可以为10秒、1分钟或者5分钟。

步骤s202、通过预创建的度量域并基于宏内核系统当前的系统信息,确定宏内核系统当前的系统运行状态信息。

对于本申请实施例,当步骤s201中预创建的度量域获取到宏内核系统当前的系统信息之后,即执行步骤s202,以确定宏内核系统当前的系统运行状态信息;或者当步骤s201中预创建的度量域获取宏内核系统当前的系统信息之后,隔第二预设时间执行步骤s202。在本申请实施例中不做限定。

例如,第二预设时间可以为10秒、30秒或者1分钟。

本申请实施例提供了一种动态度量的方法,与现有技术中通过探针程序对宏内核系统进行动态度量相比,本申请实施例通过预创建的度量域获取宏内核系统当前的系统信息,通过预创建的度量域并基于宏内核系统当前的系统信息,确定宏内核系统当前的系统运行状态信息。即本申请实施例通过预创建的度量域获取宏内核系统当前的系统信息,并在预创建的度量域中对宏内核系统当前的系统运行状态进行动态度量,并不会被宏内核系统感知,从而可以实现对宏内核系统进行动态度量,进而可以检测出宏内核系统当前的运行状态信息。

实施例二

本申请实施例的另一种可能的实现方式,在实施例一的基础上还包括实施例二所示的操作,其中,

步骤s201之前还包括步骤sa(图中未示出),其中,

步骤sa、通过微内核将宏内核的预设系统信息,发送至预创建的度量域。

其中,预设系统信息包括以下至少一项:宏内核对应的内存加载地址;宏内核对应的符号表。

对于本申请实施例,在启动宏内核系统时,通过微内核获取宏内核系统的预设系统信息,然后通过微内核将宏内核的预设系统信息发送至预创建的度量域。在本申请实施例中,宏内核系统可以为安卓系统、windows系统以及其它系统,在此并不限定宏内核系统的类型。

对于本申请实施例,通过微内核将宏内核对应的内存加载地址发送至预创建的度量域,以使得预创建的度量域可以通过只读的方式,从宏内核对应的内存中读取宏内核系统对应的代码段以及数据段等系统信息,然后基于读取到的宏内核系统对应的代码段以及数据段等系统信息,并基于宏内核对应的符号表,确定宏内核系统当前的系统状态信息。

对于本申请实施例,通过微内核将宏内核的预设系统信息,发送至预创建的度量域,能够使得预创建的度量域获取宏内核系统当前的系统信息,并确定宏内核系统当前的系统状态信息,即为度量域提供了动态度量的必备条件,从而可以实现对宏内核系统进行动态度量,进而可以检测出宏内核系统当前的运行状态信息。

实施例三

本申请实施例的另一种可能的实现方式,在实施例二的基础上还包括实施例三所示的操作,其中,

步骤s201包括步骤s2011(图中未示出),步骤s202包括步骤s2021(图中未示出),其中,

步骤s2011、通过预创建的度量域,并基于宏内核系统对应的内存加载地址,从宏内核系统对应的内存中获取宏内核系统当前的系统信息。

对于本申请实施例,微内核将宏内核系统对应的内存加载地址发送至预创建的度量域,预创建的度量域可以以只读的权限,从宏内核系统对应的内存中获取宏内核系统当前的系统信息,包括:代码段的偏移地址以及数据段的偏移地址等。在本申请实施例中,预创建的度量域还可以获取宏内核系统中央处理器(centralprocessingunit,cpu)的占用信息、网络使用情况信息,以及宏内核系统调用的内核功能信息。

例如,宏内核系统调用的内核功能信息可以包括:宏内核系统创建的线程,宏内核系统访问的文件。

步骤s2021、通过预创建的度量域,并基于宏内核系统当前的系统信息以及宏内核系统对应的符号表,确定宏内核系统当前的系统运行状态信息。

对于本申请实施例,若宏内核系统的当前的系统信息包括:偏移信息;则步骤s2021包括步骤s2021a(图中未示出)-s2021b(图中未示出),其中,

步骤s2021a、通过预创建的度量域,从宏内核系统对应的符号表中确定偏移信息对应的系统信息。

对于本申请实施例,偏移信息可以包括代码段的偏移信息以及数据段的偏移信息。若偏移信息为代码段的偏移信息,则详见步骤s2021c-步骤s2021e;若偏移信息为数据段的偏移信息,则通过预创建的度量域,从宏内核系统对应的符号表中确定数据段的偏移信息对应的数据。

步骤s2021b、基于确定出的偏移信息对应的系统信息,确定当前宏内核系统当前的系统运行状态信息。

对于本申请实施例,若宏内核的当前系统运行信息包括:代码段的偏移信息,则步骤s2021包括步骤s2021c(图中未示出)、步骤s2021d(图中未示出)以及步骤s2021e(图中未示出),其中,

步骤s2021c、通过预创建的度量域,并基于代码段的偏移信息从宏内核系统对应的符号表中,确定当前的代码段信息。

对于本申请实施例,步骤s2021a-步骤s2021b与步骤s2021c-步骤s2021e为并列关系,并不存在先后的执行顺序。

步骤s2021d、基于确定出的代码段信息,确定当前代码段的哈希值。

步骤s2021e、基于确定出的当前代码段的哈希值以及代码段的初始哈希值,确定代码段是否被篡改。

对于本申请实施例,在启动宏内核系统时,获取当前代码段信息,并基于代码段信息,确定代码段当前的哈希值,作为代码段的初始哈希值,即代码段的初始哈希值即为宏内核系统在启动时确定出的代码段的哈希值。

对于本申请实施例,预创建的度量域读取数据信息后,可以重构出宏内核的运行状态。即在已知宏内核起始地址、代码以及数据的情况下,计算出宏内核当前运行的全部信息,包括内存使用、创建以及占用的进程等,从而可以在宏内核系统完全无感知的情况下,度量域监控到宏内核的所有行为轨迹,进而可以实现对宏内核系统的动态度量。

实施例四

本申请实施例的另一种可能的实现方式,在实施例一所示的基础上还包括实施例六所示的操作,其中,

步骤s201之前还包括步骤sb(图中未示出),其中,

步骤sb、通过微内核创建度量域。

其中,度量域用于对宏内核系统进行动态度量。

对于本申请实施例,步骤sb可以在步骤sa之前执行。

进一步地,步骤s201之前还包括步骤sc(图中未示出),其中,

步骤sc、通过微内核将宏内核系统加载至内存,并启动宏内核系统。

对于本申请实施例,步骤sc可以在步骤sb之前执行,也可以在步骤sb之后执行,还可以与步骤sb同时执行,但是一般情况下,步骤sc在步骤sb之前执行。

对于本申请实施例,对宏内核系统进行动态度量的必备条件(宏内核对应的内存的加载地址、符号表等)由微内核提供,创建的度量域基于微内核提供的进行动态度量的必要条件对宏内核系统进行动态度量,这也符合微内核的架构,即功能以服务的形式呈现。

对于本申请实施例,度量域在获取了宏内核系统的系统信息后,度量域可以对宏内核的行为进行度量管控,度量对象是软件的行为轨迹,行为轨迹包括cpu占用情况、网络使用情况、调用了内核功能(例如建立线程,访问文件等等)。并且还可以在创建的度量域中对宏内核系统行为进行约束。例如,应用访问当前位置功能,用户不希望泄露自己当前位置信息,宏内核系统此时开放了位置服务给应用访问,则当通过度量域中发现访问当前位置的行为时,由于所有的硬件外设最终都由微内核操控,因此度量域可以发指令给微内核,通过微内核阻止访问位置信息的行为或返回虚拟的位置信息给宏内核系统,从而可以避免用户信息被泄露,达到保护用户信息的作用。

实施例五

本申请实施例提供的一种动态度量的装置结构示意图,如图3所示,本申请实施例的动态度量的装置30可以包括:获取模块301、确定模块302,其中,

获取模块301,用于通过预创建的度量域获取宏内核系统当前的系统信息。

确定模块302,用于通过预创建的度量域并基于获取模块301获取到的宏内核系统当前的系统信息,确定宏内核系统当前的系统运行状态信息。

本申请实施例提供了一种动态度量的装置,与现有技术中通过探针程序对宏内核系统进行动态度量相比,本申请实施例通过预创建的度量域获取宏内核系统当前的系统信息,通过预创建的度量域并基于宏内核系统当前的系统信息,确定宏内核系统当前的系统运行状态信息。即本申请实施例通过预创建的度量域获取宏内核系统当前的系统信息,并在预创建的度量域中对宏内核系统当前的系统运行状态进行动态度量,并不会被宏内核系统感知,从而可以实现对宏内核系统进行动态度量,进而可以检测出宏内核系统当前的运行状态信息。

本实施例的动态度量的装置可执行本申请实施例一提供的一种动态度量的方法,其实现原理相类似,此处不再赘述。

实施例六

本申请实施例提供了另一种动态度量的装置结构示意图,如图4所示,本申请实施例的动态度量的装置40可以包括:获取模块401、确定模块402,其中,

获取模块401,用于通过预创建的度量域获取宏内核系统当前的系统信息。

其中,图4中的获取模块401与图3中的获取模块301的功能相同或相似。

确定模块402,用于通过预创建的度量域并基于获取模块401获取到的宏内核系统当前的系统信息,确定宏内核系统当前的系统运行状态信息。

其中,图4中的确定模块402与图3中的确定模块302的功能相同或相似。

进一步地,如图4所示,动态度量的装置40还包括:发送模块403,其中,

发送模块403,用于通过微内核将宏内核的预设系统信息,发送至预创建的度量域。

其中,预设系统信息包括以下至少一项:宏内核对应的内存加载地址;宏内核对应的符号表。

对于本申请实施例,通过微内核将宏内核的预设系统信息,发送至预创建的度量域,能够使得预创建的度量域获取宏内核系统当前的系统信息,并确定宏内核系统当前的系统状态信息,即为度量域提供了动态度量的必备条件,从而可以实现对宏内核系统进行动态度量,进而可以检测出宏内核系统当前的运行状态信息。

具体地,获取模块401,具体用于通过预创建的度量域,并基于宏内核系统对应的内存加载地址,从宏内核系统对应的内存中获取宏内核系统当前的系统信息。

确定模块402,具体用于通过预创建的度量域,并基于获取模块401获取到的宏内核系统当前的系统信息以及宏内核系统对应的符号表,确定宏内核系统当前的系统运行状态信息。

具体地,当宏内核系统的当前的系统信息包括:偏移信息时,确定模块402,具体用于通过预创建的度量域,从宏内核系统对应的符号表中确定偏移信息对应的系统信息;以及基于确定出的偏移信息对应的系统信息,确定当前宏内核系统当前的系统运行状态信息。

具体地,当宏内核的当前系统运行信息包括:代码段的偏移信息时,确定模块402,具体还用于通过预创建的度量域,并基于代码段的偏移信息从宏内核系统对应的符号表中,确定当前的代码段信息;基于确定出的代码段信息,确定当前代码段的哈希值;基于确定出的当前代码段的哈希值以及代码段的初始哈希值,确定代码段是否被篡改。

对于本申请实施例,预创建的度量域读取数据信息后,可以重构出宏内核的运行状态。即在已知宏内核起始地址、代码以及数据的情况下,计算出宏内核当前运行的全部信息,包括内存使用、创建以及占用的进程等,从而可以在宏内核系统完全无感知的情况下,度量域监控到宏内核的所有行为轨迹,进而可以实现对宏内核系统的动态度量。

进一步地,如图4所示,该动态度量的装置40还包括:创建模块404,其中,

创建模块404,用于通过微内核创建度量域。

其中,度量域用于对宏内核系统进行动态度量。

进一步地,如图4所示,该动态度量的装置40还包括:加载模块405、启动模块406,其中,

加载模块405,用于通过微内核将宏内核系统加载至内存。

启动模块406,用于启动宏内核系统。

本申请实施例提供了另一种动态度量的装置,与现有技术中通过探针程序对宏内核系统进行动态度量相比,本申请实施例通过预创建的度量域获取宏内核系统当前的系统信息,通过预创建的度量域并基于宏内核系统当前的系统信息,确定宏内核系统当前的系统运行状态信息。即本申请实施例通过预创建的度量域获取宏内核系统当前的系统信息,并在预创建的度量域中对宏内核系统当前的系统运行状态进行动态度量,并不会被宏内核系统感知,从而可以实现对宏内核系统进行动态度量,进而可以检测出宏内核系统当前的运行状态信息。

本实施例的动态度量的装置可执行本申请实施例一至实施例四任一实施例提供的一种动态度量的方法,其实现原理相类似,此处不再赘述。

实施例七

本申请实施例提供了一种电子设备,如图5所示,图5所示的电子设备5000包括:处理器5001和存储器5003。其中,处理器5001和存储器5003相连,如通过总线5002相连。可选地,电子设备5000还可以包括收发器5004。需要说明的是,实际应用中收发器5004不限于一个,该电子设备5000的结构并不构成对本申请实施例的限定。

其中,处理器5001应用于本申请实施例中,用于实现图3或图4所示的获取模块以及确定模块的功能,或者图4所示的发送模块、创建模块、加载模块以及启动模块。收发器5004包括接收机和发射机,收发器5004应用于本申请实施例中,用于与外部电子设备进行信息交互。

处理器5001可以是cpu,通用处理器,dsp,asic,fpga或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器5001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。

总线5002可包括一通路,在上述组件之间传送信息。总线5002可以是pci总线或eisa总线等。总线5002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器5003可以是rom或可存储静态信息和指令的其他类型的静态存储设备,ram或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom、cd-rom或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

存储器5003用于存储执行本申请方案的应用程序代码,并由处理器5001来控制执行。处理器5001用于执行存储器5003中存储的应用程序代码,以实现图3或图4所示实施例提供的动态度量的装置的动作。

本申请实施例提供了一种电子设备,与现有技术中通过探针程序对宏内核系统进行动态度量相比,本申请实施例通过预创建的度量域获取宏内核系统当前的系统信息,通过预创建的度量域并基于宏内核系统当前的系统信息,确定宏内核系统当前的系统运行状态信息。即本申请实施例通过预创建的度量域获取宏内核系统当前的系统信息,并在预创建的度量域中对宏内核系统当前的系统运行状态进行动态度量,并不会被宏内核系统感知,从而可以实现对宏内核系统进行动态度量,进而可以检测出宏内核系统当前的运行状态信息。

本申请实施例提供了一种电子设备适用于上述方法任一实施例。在此不再赘述。

实施例八

本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现实施例一至实施例四任一实施例所示的动态度量的方法。

本申请实施例提供了一种计算机可读存储介质,与现有技术中通过探针程序对宏内核系统进行动态度量相比,本申请实施例通过预创建的度量域获取宏内核系统当前的系统信息,通过预创建的度量域并基于宏内核系统当前的系统信息,确定宏内核系统当前的系统运行状态信息。即本申请实施例通过预创建的度量域获取宏内核系统当前的系统信息,并在预创建的度量域中对宏内核系统当前的系统运行状态进行动态度量,并不会被宏内核系统感知,从而可以实现对宏内核系统进行动态度量,进而可以检测出宏内核系统当前的运行状态信息。

本申请实施例提供了一种计算机可读存储介质适用于上述方法任一实施例。在此不再赘述。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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