CN110674494B - 进程的保护方法、系统及数据处理方法 - Google Patents
进程的保护方法、系统及数据处理方法 Download PDFInfo
- Publication number
- CN110674494B CN110674494B CN201810707000.3A CN201810707000A CN110674494B CN 110674494 B CN110674494 B CN 110674494B CN 201810707000 A CN201810707000 A CN 201810707000A CN 110674494 B CN110674494 B CN 110674494B
- Authority
- CN
- China
- Prior art keywords
- mapped
- measurement information
- initial
- static file
- credibility
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种进程的保护方法、系统及数据处理方法。其中,该方法包括:在首次启动进程的过程中,确定进程的初始可信度量信息;如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验;如果校验通过,确定允许再次启动进程。本发明解决了现有技术无法保证动态进程的可信状态的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种进程的保护方法、系统及数据处理方法。
背景技术
可信服务器使用可信安全芯片,能将信任链从可信跟传递到操作系统,保证操作系统以下的硬件平台的可信状态。目前有如下几种方案。
一、TCG内核度量方案。
该方案以TPM为可信根,系统启动时由BIOS中的可信度量根核开始,度量BIOS初始引导模块,接着由BIOS初始引导模块度量BIOS主引导模块,BIOS主引导模块度量BIOS其余部分及OS装载器,之后由OS装载器对OS内核进行度量,依次类推,从而最终完成从可信根到操作系统内核的信任传递过程。这种方案存在的问题是,静态度量方案只完成了从BIOS可信根到操作系统内核的信任链,而并没有对操作系统启动后的具体的应用进程进行动态可信度量,因此无法保证应用进程的可信启动。图1a是现有技术中国内可信计算产业联盟的可信平台模块TPC方案的示意图,TPCM方案存在的缺陷与TCG内核度量方案的缺陷相同。
二、Intel TXT方案。
Intel TXT技术为诸如密钥等敏感数据提供安全存储空间,保护它们不受恶意攻击破坏或窃取。图1b是现有技术中Intel TXT方案的示意图。Intel TXT以CPU中的ACM(Authenticated Code Module)去度量校验BIOS的第一个block,补齐并增强了服务器启动过程中信任链的建立过程,使得服务器平台及系统可以使用硬件技术完成度量和完整性校验功能。具体的流程是:计算机启动,首先是BIOS(Basic Input/Output System,基本输入输出系统)中的pre-boot(启动前)执行,该部分的度量值存储在Extend pcr0-7(PlatformConfiguration Register,扩展平台配置寄存器0~7)中,接着是IPL(Initial ProgramLoad,初始程序加载)运行,以保证计算机启动时的可信状态。然后是OS/VMM的运行可信,从Pre-Launch(加载前)到MLE Shut Dowm整个生命周期,使用TBOOT(Trusted Boot,可信启动)技术来保证OS/VMM运行过程的可信状态,其中Launch(加载)过程中度量值放在PCR17,18,Post Launch(加载后)度量值放在PCR19,22,整个OS/VMM生命周期中从Launch到MLEShutDown(Measured Launch Environment,度量启动环境关闭)都保持在可信状态。等当前OS/VMM生命周期结束,就执行MLE Shut Down关闭可信状态。当需要重新启动一个新的OS/VMM时,就必须回到Pre-Launch过程,重新建立一个新的可信的OS/VMM生命周期(使用的是TBOOT技术),直至OS/VMM生命周期结束,使用MLE Shut Down关闭可信状态;当Reset orpower DFF(重启或关闭)整个计算机系统(不是单一的其中一个OS/VMM)时,并再次开机后,必须从Pre-Boot开始重新建立整个计算机系统的可信状态。整个图表达的是可信状态建立到结束的生命周期:其一是单个OS/VMM,其二是整个计算机,保证了每个OS/VMM的运行周期均处于可信状态。注意:一台计算机服务器上,可以运行多个OS/VMM系统。
该方案存在的问题是,可信根为CPU硬件,完成了从CPU到BIOS的信任链,但同样的,对于操作系统启动后的具体的应用进程的动态可信度量并没有完成,无法保证应用进程的可信启动。
三、进程注入查杀安全软件。
进程注入是一种恶意软件和无文件攻击的逃避技术,可以将自定义代码运行在另一个进程的地址空间内,进程输入提高了隐蔽性,也实现了相对地持久化攻击。一个程序运行时的表现形式是进程,代码和数据都存储在进程中,而操作系统会隔离进程,其他进程是不能跳到不属于自身的进程去执行代码,所以进程注入,首先需要将代码注入到其他进程中,然后在其他进程(通常是高权限进程)里调用执行自己的代码(通常是恶意代码、木马等)。
常见的进程注入可以分为静态注入和动态注入。静态注入常见的由Windows系统中的dll注入、Linux系统中的so注入等,恶意软件将恶意的动态链接库的路径写入另一个进程的虚拟地址空间内,通过目标进程来加载恶意的动态链接库,从而调用其中的恶意代码。动态注入指的是,将恶意代码直接注入到目标进程的内存空间,通过反射dll、内存模块加载、恶意代码复写等手段。对于静态注入,磁盘上会留下恶意文件作为注入痕迹,安全软件可以以此为特征查杀;而对于动态注入,由于安全软件多采用注入程序本体查杀的方法,而恶意代码直接注入内存,因此通常很难被准确查杀。因此该方案存在的问题是,对于安全软件,动态进程注入存在漏杀的风险,不能确保进程内存空间安全;且使用静态进程注入,如果注入后已获取高权限,也可以清楚掉注入痕迹,导致进程注入检测失败。
由此可知,现有技术中只能保证操作系统以下的硬件平台的可信状态,而无法保证操作系统以上的应用进程的可信状态。
针对现有技术无法保证动态进程的可信状态的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种进程的保护方法、系统及数据处理方法,以至少解决现有技术无法保证动态进程的可信状态的技术问题。
根据本发明实施例的一个方面,提供了一种进程的保护方法,包括:在首次启动进程的过程中,确定进程的初始可信度量信息;如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验;如果校验通过,确定允许再次启动进程。
根据本发明实施例的另一方面,还提供了一种进程的保护方法,包括:获取进程在首次启动过程中的初始可信度量信息;如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验;如果校验通过,确定允许再次启动进程。
根据本发明实施例的另一方面,还提供了一种存储介质,其特征在于,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行如下步骤:在首次启动进程的过程中,确定进程的初始可信度量信息;如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验;如果校验通过,确定允许再次启动进程。
根据本发明实施例的另一方面,还提供了一种处理器,其特征在于,处理器用于运行程序,其中,程序运行时执行如下步骤:在首次启动进程的过程中,确定进程的初始可信度量信息;如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验;如果校验通过,确定允许再次启动进程。
根据本发明实施例的另一方面,还提供了一种进程的保护系统,其特征在于,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:在首次启动进程的过程中,确定进程的初始可信度量信息;如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验;如果校验通过,确定允许再次启动进程。
在本发明实施例在首次启动进程的过程中,确定进程的初始可信度量信息;如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验;并在校验通过的情况下允许再次启动进程,实现了对进程的启动校验,即实现了对进程对可信启动,从而能够保证进程的静态完整性,使攻击者难以通过静态注入的手段对应用的进程进行攻击,进而保证了进程对可信状态。
根据本发明实施例的另一方面,还提供了一种数据处理方法,包括:确定目标进程或线程需要启动,其中,目标进程或线程对应于第一可信度量;至少基于目标进程或线程的第一可信度量,对目标进程或线程的启动进行可信度校验;至少基于可信度校验结果,判断是否允许启动目标进程或线程。
由此,本申请上述实施例解决了现有技术无法保证动态进程的可信状态的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1a是现有技术中国内可信计算产业联盟的可信平台模块TPCM方案的示意图;
图1b是现有技术中Intel TXT方案的示意图;
图1c示出了一种用于实现进程的保护方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例1的进程的保护方法的流程图;
图3是一种进程映射表maps的示意图;
图4是根据本申请实施例1的一种对进程的启动进行校验的流程图;
图5是根据本申请实施例1的一种获取初始可信度量信息的流程图;
图6是根据本申请实施例1的一种对运行的程序进程动态校验的流程图;
图7是根据本申请实施例2的一种进程的保护方法的流程图;
图8是根据本申请实施例3的一种进程的保护装置的示意图;
图9是根据本申请实施例4的一种进程的保护装置的示意图;
图10是根据本申请实施例5的一种数据处理方法的流程图;
图11是根据本申请实施例6的一种数据处理装置的示意图。
图12是根据本发明实施例7的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
TPM:Trusted Platform Model,可信平台模块,是一种安全密码处理器的国家标准,由TCG(Trusted Computing Group,国际可信计算组)撰写,通过专门的微控制器将加密密钥集成到设备中来保护。TPM安全芯片是指符合TPM标准的安全芯片,一般通过物理方式被强绑定计算平台,能有效的保护PC,防止非法用户访问。
物理地址:Physical Address,CPU外部地址总线上的寻址信号,是址变换的最终结果,一个物理地址始终对应实际内存中的一个存储单元。
虚拟地址:Virtual Address,现代操作系统都提供了一种内存管理抽象,它是对整个内存的抽象描述。进程使用虚拟内存中的地址,由操作系统协助相关硬件,把它转换成真正的物理地址。
pagemap:是linux中一组接口集合,通过读取/proc中的文件允许用户态的程序检查页表以及相关信息。/proc/[pid]/pagempa这个文件允许用户态的进程查看到每个虚拟也映射到物理页。
/dev/mem:它是物理内存的全映像,能够用来访问物理内存。
实施例1
根据本发明实施例,还提供了一种进程的保护方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1c示出了一种用于实现进程的保护方法的计算机终端(或移动设备)的硬件结构框图。如图1c所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1c所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1c中所示更多或者更少的组件,或者具有与图1c所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的进程的保护方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的进程的保护方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1c所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1c仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
在上述运行环境下,本申请提供了如图2所示的进程的保护方法。图2是根据本申请实施例1的进程的保护方法的流程图。
步骤S21,在首次启动进程的过程中,确定进程的初始可信度量信息。
具体的,上述进程即为待保护的进程,可以是在设备上运行的应用的进程,本实施例中的步骤均可以由运行进程的设备执行。更具体的,上述步骤由运行进程的设备中的TPM安全芯片执行。
上述首次启动进程指的是,在一个设备上第一次启动该进程。例如,以一个应用的进程为例,如果在该设备上安装该应用后首次启动,即为上述的首次启动进程。如果设备在关机后再次开机,在再次开机后的第一次启动,不为上述首次启动进程。
在上述步骤S21中,初始可信度量信息用于表示进程在首次启动时的状态,以确保进程的可信状态。具体的,初始可信度量信息中可以包括已映射静态文件的扩展度量值,用于表征进程首次启动时的文件状态。
由于上述的初始可信度量信息是进程首次启动的可信度量信息,可以认为该可信度量信息是可信的,因此上述初始可度量信息可以作为可信状态标准,对进程的启动进行可信度量。
需要说明的是,上述步骤仅在首次启动进程的过程中执行,得到初始可信度量信息后,可将其存储在预设位置,例如PCR寄存器;再次启动的进程的校验都可以从预设位置获取初始可信度量信息,基于获取的初始可信度量信息进行校验。
步骤S23,如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验。
具体的,上述步骤可以由运行进程的设备的CPU执行。在上述步骤S23中,可以通过检测用户通过设备发送的进程启动指令,来检测是否需要再次启动进程。例如:用户点击应用图标,试图在设备上启动应用,此时设备的处理器检测到该应用的进程需要被再次启动。
对进程的启动进行可信度校验,即为通过可信度校验来确定进程此次的启动是否可信,从而确定是否启动进程。由于检测到的需要启动的进程是再次启动,因此存在被攻击的风险,所以在检测到需要再次启动进程时,不直接执行启动进程的指令,而是对进程的启动进行可信度校验,从校验该进程的此次启动是否为可信状态。
上述步骤中的可信度校验是基于步骤S21中获取的初始可信度量信息进行的,也即,以进程首次启动时的初始可信度量信息作为可信状态的标准,对进程的启动是否可信进行校验。
在一种可选的实施例中,在检测到进程需要再次启动之后,获取进程当前可信度量信息,并将进程当前的可信度量信息与进程的初始可信度量信息进行比对,在比对成功的情况下,确定校验成功。
步骤S25,如果校验通过,确定允许再次启动进程。
在上述步骤S25中,在进程启动的可信度校验通过的情况下,认为该需要启动的进程处于可信状态,因此允许该进程启动。而在对进程启动的可信度校验失败的情况下,认为该进程处于不可信状态。
需要说明的是,在对进程启动的可信度校验失败的情况下,可以包括如下两种处理方式。
在一种可选的实施例中,在对进程启动的可信度校验失败的情况下,直接禁止启动该进程,并通过设备向用户返回禁止启动的提示信息。
在另一种可选的实施例中,还可以通过设备向用户提示,当前待启动的应用的进程不可信,并提示用户是否继续,如果用户选择继续启动,则继续启动进行,如果用户选择禁止启动,则禁止进程继续启动。
本申请上述实施例在首次启动进程的过程中,确定进程的初始可信度量信息;如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验;并在校验通过的情况下允许再次启动进程,实现了对进程的启动校验,即实现了对进程对可信启动,从而能够保证进程的静态完整性,使攻击者难以通过静态注入的手段对应用的进程进行攻击,进而保证了进程对可信状态。
由此,本申请上述实施例解决了现有技术无法保证动态进程的可信状态的技术问题。
作为一种可选的实施例,进程包括:已映射静态文件,初始可信度量信息包括:首次启动的进程中已映射静态文件的扩展度量值。
具体的,映射是指将需要使用的静态文件加载进程空间。设备内包括很多静态文件,但进程所使用的并不是全部,因此需要将使用的静态文件加载至进程空间,从而等待被应用。
作为一种可选的实施例,如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验,包括:
步骤S231,如果检测到需要再次启动进程,获取第一可信度量信息,其中,第一可信度量信息为,需要再次启动的进程中已映射静态文件的扩展度量值。
具体的,上述第一度量值信息用于表征需要再次启动的进程的可信状态,与初始可信度量信息相对应。扩展度量值可以根据已映射静态文件来确定。
步骤S233,将第一可信度量信息与初始可信度量信息进行比对。
具体的,将第一可信度量信息与初始可信度量信息进行比对,可以是将第一可信度量信息中的需要再次启动的进程中已映射静态文件的扩展度量值,与初始可信度量信息中首次启动的进程中已映射静态文件的扩展度量值进行比对,从而以进程首次启动的文件状态作为标准,对进程的启动进行校验。
步骤S235,如果第一可信度量信息与初始可信度量信息相同,确定对进程的启动校验成功。
在上述步骤S235中,如果第一可信度量信息与初始可信度量信息相同,则说明需要再次启动的进程的文件状态与进程首次启动时的文件状态相同,从而说明需要再次启动的进程处于可信状态,因此确定对进程启动的可信度校验成功。在校验成功的情况下,即可确定进程的已映射静态文件未被攻击或篡改,所以在校验成功的情况下,即可确定进程的此次启动是可信的。
作为一种可选的实施例,在首次启动进程的过程中,确定进程的初始可信度量信息,包括:
步骤S2311,在进程首次启动的过程中,读取进程的进程映射表。
在一种可选的实施例中,可以通过如下方式读取进程的进程映射表。首先,获取进程的pid(process ID_type,身份标识),获取进程pid的方式可以是使用ps-elf指令,或遍历/proc/[pid]文件夹中的进程信息,然后根据进程的pid,读取进程映射表maps。图3是一种进程映射表maps的示意图,读取到的进程映射表可以如图3所示。
步骤S2313,从进程映射表中导出进程的已映射静态文件列表,其中,已映射静态文件列表中包括已映射静态文件的绝对路径。
具体的,可以从maps中每行的最后一项中,得到进程所有已映射静态文件的绝对路径,结合图3所示,每一行的最后一项即为已映射静态文件的绝对路径。
步骤S2315,根据已映射静态文件的绝对路径,获取已映射静态文件。在上述步骤中,根据已映射静态文件的绝对路径即可获取到已映射静态文件。
步骤S2317,根据已映射静态文件获取已映射静态文件的扩展度量值。
在获取到已映射静态文件之后,可以通过预定指令获取到已映射静态文件的扩展度量值。
作为一种可选的实施例,从进程映射表中导出进程的已映射静态文件列表,包括:如果进程映射表中多行的绝对路径相同,只导出多行中的任意一行;以及如果进程映射表中任意一行不包括绝对路径,不导出不包括绝对路径的行。
在上述步骤中,对于最后一项重复的文件,在已映射静态文件列表中只记录一项,例如图3中的“use/lib64/libnss_files-2.17.so/”出现了四次,但在已映射静态文件列表中只记录一次;且如果最后一项不是已映射静态文件的绝对路径,不计入已映射静态文件列表。
作为一种可选的实施例,根据已映射静态文件获取已映射静态文件的扩展度量值,包括:
步骤S23171,获取已映射静态文件的哈希度量值。
具体的,计算已映射静态文件的哈希度量值,可以使用SHA-1、SHA256、SM3等方式,此处不对计算哈希度量值所使用的哈希算法进行具体限定。
步骤S23173,通过安全芯片调用预设指令,根据已映射静态文件的哈希度量值,确定已映射静态文件的扩展度量值。
具体的,上述安全芯片为TPM安全芯片,上述预设指令用于计算已映射静态文件的扩展度量值,需要说明的是,在一种可选的方式中,设备的处理器需要调用TPM安全芯片来使用预设指令,上述预设指令可以为TPM_PRC_EXTEND,在计算得到已映射静态文件的扩展度量值后,可以将已映射静态文件的扩展度量值存储与预设位置,例如PCR_x(一个PCR寄存器)。
但已映射的静态文件的数量较多,例如,如果存在10个已映射的静态文件,则就会有10个度量值。但是PCR数量有限,使用1个(只能存1个度量值)PCR对一个进程的多个已映射的静态文件的度量值进行存储是较好的方式,因此需要将10个度量值存储到1个PCR空间,较好的解决方案就是使用扩展度量值,将10个文件度量值转化为1个度量值。具体算法是:假定10个已映射的静态文件分别为m0、m1……m10,使用SHA256度量算法计算文件度量值分别为d0、d1……d10。那么首先将d0和d1连接在一起,计算一个新的度量值SHA256(d0||d1),放入PCR中;然后将新度量值与d2连接在一起,计算新新度量值SHA256(PCR||d2)=SHA256(SHA256(d0||d1)||d2),放入PCR中;然后将新新度量值与d3连接在一起,计算新新新度量值SHA256(PCR||d3)=SHA256(SHA256(SHA256(d0||d1)||d2))||d3),放入PCR中,依此类推,计算完10个文件度量值,最后存入PCR的只是一个度量值,使用公式表示即为PCR.digestnew[x]=Halg(PCR.digestold[x]||digestfile))。由于PCR目前只有1个,每次运算都会更新里面存储的值,所以就有了PCRnew和PCRold的2个概念,运算前的称为old,运算后的结果存入称为new。
再举例说明,如果已映射静态文件的哈希度量值分别为d0、d1、d2…dn,使用的哈希算法为SHA256,则PCR_x=SHA256(…SHA256(SHA256(d0‖d1)‖d2)…‖dn),其中,“‖”标识度量值的连接。
图4是根据本申请实施例1的一种对进程的启动进行校验的流程图,结合图4所示对进程的启动进行校验可以按照如下步骤进行。
S41,启动受保护进程。
上述步骤中,启动受保护进程,可以是处理器检测到受保护的进行需要启动,例如,接收到用于启动受保护进程的指令。
S42,读取当前进程映射表maps。
在一种可选的实施例中,可以通过如下方式读取进程的进程映射表。首先,获取进程的pid(process ID_type,身份标识),获取进程pid的方式可以是使用ps-elf指令,或遍历/proc/[pid]文件夹中的进程信息,然后根据进程的pid,读取进程映射表maps。图3是一种进程映射表maps的示意图,读取到的进程映射表可以如图3所示。
S43,导出进程已映射的已映射静态文件列表。
具体的,可以从maps中每行的最后一项中,得到所有进程已映射的已映射静态文件的绝对路径,结合图3所示,每一行的最后一项即为已映射静态文件的绝对路径。
S44,计算已映射静态文件扩展度量值H0。
具体的,可以首先根据已映射静态文件的绝对路径获取到已映射静态文件,再根据已映射静态文件,通过哈希算法和预设指令,求得已映射静态文件的扩展度量值。
S45,读取TPM安全芯片中PCR_x扩展度量值Hx。
上述PCR_x中的扩展度量值Hx,为在进程首次启动时获取的进程的初始可信度量信息,首次启动进程后,将获取的初始可信度量信息存储在PCR_x中,从而使得在需要再次启动该进程时,能够从直接从PCR_x中取出Hx,作为校验的标准。
S46,判断是否满足H0=Hx。如果满足,则进入步骤S47,否则进入步骤S48。
在上述步骤中,通过Hx对H0进行校验,从而实现了对进程启动的校验。
S47,允许进程启动。
在H0=Hx的情况下,说明需要再次启动的进程的已映射静态文件未被攻击或篡改,因此可以允许进程启动。
S48,校验失败,拒绝进程启动。
在H0≠Hx的情况下,说明需要再次启动的进程的已映射静态文件可能被攻击或篡改,因此该进程不可信,禁止进程启动。
作为一种可选的实施例,在如果再次启动进程,基于进程的第一可信度量信息对进程进行可信度校验之后,上述方法还包括:如果校验失败,确定禁止再次启动进程。
具体的,第一可信度量信息与初始可信度量信息不相同,确定对进程的启动校验失败。
由于在校验时,以初始可信度量信息作为标准,因此如果第一可信度量信息与初始可信度量信息不同,则说明需要再次启动对进程的已映射静态文件与首次启动的进程的已映射静态文件不同。在该情况下,认为需要再次启动对进程的已映射静态文件可能被攻击或篡改,进程处于不可信的状态,因此禁止进程的启动,从而保证启动的进程都为可信的进程。
作为一种可选的实施例,本申请的方案中,除了对进程的启动进行了可信度校验,还对已启动的进程的运行进行可信度校验,以确保进程的运行过程中的可信状态,下面具体进行说明。
上述的进程还包括:已映射内存数据,初始可信度量信息还包括:首次启动的进程中已映射内存数据的扩展度量值。如果校验通过,在确定允许再次启动进程之后,上述方法还包括:
步骤S27,在再次启动的进程运行的过程中,基于进程的初始可信度量信息对进程进行动态可信度校验。
在上述步骤S27中,对进程的启动进行动态可信度校验,即为通过可信度校验来确定进程的运行是否可信,从而保证进程在运行过程中的可信状态。
上述步骤中的可信度校验是基于初始可信度量信息中,已映射内存数据的扩展度量值进行的,也即,以进程首次启动时的已映射内存数据的扩展度量值作为可信状态的标准,对进程的运行进行动态校验。
在一种可选的实施例中,在进程启动后运行的过程中,获取进程当前已映射内存数据的扩展度量值,并将进程当前已映射内存数据的扩展度量值的与初始可信度量信息中的已映射内存数据的扩展度量值进行比对,在比对相同的情况下,确定校验成功,在比对不同的情况下,确定校验失败。
步骤S29,如果校验失败,则终止再次启动的进程运行。
在校验成功的情况下,则说明该进程运行在可信的状态下,因此允许进程继续运行,如果校验失败,则说明该进程运行在不可信的状态新,因此终止进程继续运行。
作为一种可选的实施例,在再次启动的进程运行的过程中,基于进程的初始可信度量信息对进程进行动态可信度校验,包括:
步骤S271,在再次启动的进程运行的过程中,获取第二可信度量信息,其中,第二可信度量信息为再次启动的进程运行过程中已映射内存数据的扩展度量值。
具体的,上述第二度量值信息用于表征需要进程时的内存状态,与初始可信度量信息中的已映射内存数据的扩展度量值相对应。
步骤S273,将第二可信度量信息与初始可信度量信息中已映射内存数据的扩展度量值进行比对。
具体的,将第二可信度量信息与初始可信度量信息中已映射内存数据的扩展度量值进行比对,也即是将运行的进程中已映射内存数据的扩展度量值,与初始可信度量信息中的首次启动的进程中已映射内存数据的扩展度量值进行比对,从而以进程首次启动的进程的内存状态作为标准,对运行的进程进行动态校验。
步骤S275,如果第二可信度量信息与初始可信度量信息中已映射内存数据的扩展度量值不相同,确定动态可信度校验失败。
在上述步骤S275中,如果第二可信度量信息与初始可信度量信息中已映射内存数据的扩展度量值不相同,则说明需要运行的进程的内存状态与进程首次运行时的内存状态不相同,从而确定对进程的动态校验失败,运行的进程处于不可信状态。在校验失败的情况下,可禁止进程继续运行。
作为一种可选的实施例,在首次启动进程的过程中,确定进程的初始可信度量信息还包括:
步骤S2711,当进程首次启动时,读取进程的进程映射表。
具体的,上述步骤读取进程的进程映射表maps的方式可以与步骤S2311相同,此处不再赘述。可选的,可以是在获取首次启动的进程中已映射静态文件的扩展度量值的同时,获取首次启动的进程中已映射内存数据的扩展度量值。
步骤S2713,根据进程映射表中已映射内存数据的起始虚拟地址,确定已映射内存数据的起始物理地址。
具体的,进程映射表maps中的每一行的第一项为已映射内存数据的起始虚拟地址,该虚拟地址可以结合/proc/[pid]/pagempa,转化为映射物理地址,结合pagempa(页面映射),可以所有已映射静态文件的起始虚拟地址都转换为对应的起始物理地址。
在一种可选的实施例中,以虚拟地址为vir为例,通过pagempa将已映射的已映射静态文件的起始虚拟地址转换为起始物理地址的方式如下:
int page_size=getpagesize();//页面基本大小
unsigned long vir_page_idx=vir/page_size;//虚拟地址起始页面
unsigned long pfn_item_offset=vir_page_idx*sizeof(uint64_t);//pagemap中每个页面信息所占字节数为sizeof(uint64_t),pfn_item_offset指向虚拟地址所对应的页面信息在pagemap文件中的偏移量
lseek(fd,pfn_item_offset,SEEK_SET);read(fd,&pfn_item,
sizeof(uint64_t));//读取pagemap中偏移量位置的页面信息
*phy=(pfn_item&PFN_MASK)*page_size+vir%page_size;//计算物理地址
步骤S2715,根据已映射内存数据的起始物理地址,确定进程的已映射内存数据。
/dev/mem为整个内存的数据对象,可以通过mmap()将其映射出来,通过步骤S2713中得到的已映射内存数据的起始物理地址,可以获取到对应的内存片段的数据,即上述已映射内存数据。
步骤S2717,根据已映射内存数据,获取已映射内存数据的扩展度量值。
图5是根据本申请实施例1的一种获取初始可信度量信息的流程图,结合图5所示,对获取初始可信度量信息的步骤进行描述:
S51,首次启动受保护进程。
具体的,首次启动受保护进程的目的是获取可信的,用于对再次启动的进程进行校验的标准,因此将应用安装在设备后的第一次启动作为上述首次启动。
S52,读取进程映射表maps。
在一种可选的实施例中,可以通过如下方式读取进程的进程映射表。首先,获取进程的pid(process ID_type,身份标识),获取进程pid的方式可以是使用ps-elf指令,或遍历/proc/[pid]文件夹中的进程信息,然后根据进程的pid,读取进程映射表maps。图3是一种进程映射表maps的示意图,读取到的进程映射表可以如图3所示。
S53,导出进程已映射的静态文件列表。
具体的,可以从maps中每行的最后一项中,得到所有进程已映射的已映射静态文件的绝对路径,结合图3所示,每一行的最后一项即为已映射静态文件的绝对路径。
S54,计算静态文件扩展度量值,存入PCR_x。
具体的,可以首先根据已映射静态文件的绝对路径获取到已映射静态文件,再根据已映射静态文件,通过哈希算法和预设指令,求得已映射静态文件的扩展度量值。
S55,结合pagamap,导出已映射内存物理地址。
具体的,进程映射表maps中的每一行的第一项为已映射的已映射内存数据的起始虚拟地址,该虚拟地址可以结合/proc/[pid]/pagempa,转化为映射物理地址,结合pagempa,可以所有已映射内存数据的起始虚拟地址都转换为对应的起始物理地址。
S56,结合/dev/mem,获取已映射内存数据。
/dev/mem为整个内存的数据对象,可以通过mmap()将其映射出来,通过步骤S2713中得到的已映射静态文件的起始物理地址,可以获取到对应的内存片段的数据,即上述已映射的已映射内存数据。
S57,计算已映射内存数据的扩展度量值,存入PCR_y。
具体的,计算已映射的已映射内存数据的哈希度量值,可以使用SHA-1、SHA256、SM3等方式,此处不对计算哈希度量值所使用的哈希算法进行具体限定。再调用TPM安全芯片,使用TPM_PCR_EXTEND指令,计算所有已映射内存数据的扩展度量值。
作为一种可选的实施例,根据已映射内存数据,获取已映射内存数据的扩展度量值,包括:
步骤S27171,获取已映射内存数据的哈希度量值。
具体的,计算已映射静态文件的哈希度量值,可以使用SHA-1、SHA256、SM3等方式,此处不对计算哈希度量值所使用的哈希算法进行具体限定。
步骤S27173,通过安全芯片调用预设指令,根据已映射内存数据的哈希度量值,确定已映射内存数据的扩展度量值。
上述预设指令用于计算已映射内存数据的扩展度量值,需要说明的是,在一种可选的方式中,设备的处理器需要调用TPM安全芯片来使用预设指令,上述预设指令可以为TPM_PRC_EXTEND,在计算得到已映射静态文件的扩展度量值后,可以将已映射内存数据的扩展度量值存储与预设位置,再举例说明,如果已映射内存数据的哈希度量值分别为m0、m1、m2…mn(n用于表示已映射内存文件的数量),使用的哈希算法为SHA256,则PCR_y=SHA256(…SHA256(SHA256(m0‖m1)‖m2)…‖mn)。图6是根据本申请实施例的一种对运行的程序进程动态校验的流程图,下面结合图6,对本申请中对运行的进程进行动态校验的方法进行进一步说明。
S61,启动受保护进程。
上述步骤中,启动受保护进程,可以是处理器检测到受保护的进行需要启动,例如,接收到用于启动受保护进程的指令。
S62,读取当前进程映射表maps。
在一种可选的实施例中,可以通过如下方式读取进程的进程映射表。首先,获取进程的pid(process ID_type,身份标识),获取进程pid的方式可以是使用ps-elf指令,或遍历/proc/[pid]文件夹中的进程信息,然后根据进程的pid,读取进程映射表maps。图3是一种进程映射表maps的示意图,读取到的进程映射表可以如图3所示。
S63,导出进程已映射的已映射静态文件列表。
具体的,可以从maps中每行的最后一项中,得到所有进程已映射的已映射静态文件的绝对路径,结合图3所示,每一行的最后一项即为已映射静态文件的绝对路径。
S64,计算已映射静态文件扩展度量值H0。
具体的,可以首先根据已映射静态文件的绝对路径获取到已映射静态文件,再根据已映射静态文件,通过哈希算法和预设指令,求得已映射静态文件的扩展度量值。
S65,读取TPM安全芯片中PCR_x扩展度量值Hx。
上述PCR_x中的扩展度量值Hx,为在进城首次启动是获取的进程的初始可信度量信息,首次启动进程后,将获取的初始可信度量信息存储在PCR_x中,从而使得在需要再次启动该进程时,能够从直接从PCR_x中取出Hx,作为校验的标准。
S66,判断是否满足H0=Hx。如果满足,则进入步骤S67,否则进入步骤S68。
在上述步骤中,通过Hx对H0进行校验,从而实现了对进程启动的校验。
S67,允许进程启动。
在H0=Hx的情况下,说明需要再次启动的进程的已映射静态文件未被篡改,因此可以允许进程启动。
S68,校验失败,拒绝进程启动。
在H0≠Hx的情况下,说明需要再次启动的进程的已映射静态文件可能被篡改,因此该进程不可信,禁止进程启动。
S69,结合当前pagamap,导出应映射内存物理地址。
具体的,进程映射表maps中的每一行的第一项为已映射的已映射内存数据的起始虚拟地址,该虚拟地址可以结合/proc/[pid]/pagempa,转化为映射物理地址,结合pagempa,可以所有已映射内存数据的起始虚拟地址都转换为对应的起始物理地址。
S610,结合当前/dev/mem获取已映射内存数据。
/dev/mem为整个内存的数据对象,可以通过mmap()将其映射出来,通过步骤S2713中得到的已映射静态文件的起始物理地址,可以获取到对应的内存片段的数据,即上述已映射的已映射内存数据。
S611,计算当前已映射内存数据扩展度量值H1。
具体的,计算已映射的已映射内存数据的哈希度量值,可以使用SHA-1、SHA256、SM3等方式,此处不对计算哈希度量值所使用的哈希算法进行具体限定。再调用TPM安全芯片,使用TPM_PCR_EXTEND指令,计算所有已映射内存数据的扩展度量值。
S612,读取TPM安全芯片PCR_y扩展度量值Hy。
上述PCR_y中的扩展度量值Hy,为在进程首次启动时获取的进程的初始可信度量信息,首次启动进程后,将获取的初始可信度量信息存储在PCR_y中,从而使得在需要再次启动该进程时,能够从直接从PCR_y中取出Hy,作为校验的标准。
S613,判断是否满足H1=Hy。如果满足,则完成对进程的校验,否则进入步骤S614。
在上述步骤中,通过Hy对H1进行校验,从而实现了对进程运行的校验。
S614,内存校验失败,终止进程。
在H1≠Hy的情况下,说明正在运行的进程的已映射内存数据可能被篡改或攻击,因此该进程不可信,终止进程的运行。
实施例2
根据本发明实施例,还提供了一种进程的保护方法,图7是根据本申请实施例2的一种进程的保护方法的流程图,结合图7所示,该方法包括:
步骤S71,如果检测到需要再次启动进程,获取进程在首次启动过程中的初始可信度量信息。
具体的,上述进程即为待保护的进程,可以是在设备上运行的应用的进程,本实施例中的步骤均可以由运行进程的设备中的TPM安全芯片执行。
上述首次启动进程指的是,在一个设备上第一次启动该进程。例如,以一个应用的进程为例,如果在该设备上安装该应用后首次启动,即为上述的首次启动进程。如果设备在关机后再次开机,在再次开机后的第一次启动,不为上述首次启动进程。
在上述步骤S71中,初始可信度量信息用于表示进程在首次启动时的状态,以确保进程的可信状态。具体的,初始可信度量信息中可以包括已映射静态文件的扩展度量值,用于表征进程首次启动时的文件状态。
由于上述的初始可信度量信息是进程首次启动的可信度量信息,可以认为该可信度量信息是可信的,因此上述初始可度量信息可以作为可信状态标准,对进程的启动进行可信度量。
需要说明的是,上述步骤在每次对进程的启动进行校验时执行。在一种可选的实施例中,TPM安全芯片仅在首次启动进程的过程中去顶初始可信度量信息,将其存储在预设位置,例如PCR寄存器;对再次启动的进程进行校验时,CPU从预设位置获取初始可信度量信息,基于获取的初始可信度量信息进行校验。
步骤S73,基于进程的初始可信度量信息对进程的启动进行可信度校验。
具体的,上述步骤可以由运行进程的设备的CPU执行。在上述步骤S73中,可以通过检测用户通过设备发送的进程启动指令,来检测是否需要再次启动进程。例如:用户点击应用图标,试图在设备上启动应用,此时设备的处理器检测到该应用的进程需要被再次启动。
对进程的启动进行可信度校验,即为通过可信度校验来确定进程此次的启动是否可信,从而确定是否启动进程。由于检测到的需要启动的进程是再次启动,因此存在被攻击的风险,所以在检测到需要再次启动进程时,不直接执行启动进程的指令,而是对进程的启动进行可信度校验,从校验该进程的此次启动是否为可信状态。
上述步骤中的可信度校验是基于步骤S71中获取的初始可信度量信息进行的,也即,以进程首次启动时的初始可信度量信息作为可信状态的标准,对进程的启动是否可信进行校验。
在一种可选的实施例中,在检测到进程需要再次启动之后,获取进程当前可信度量信息,并将进程当前的可信度量信息与进程的初始可信度量信息进行比对,在比对成功的情况下,确定校验成功。
步骤S75,如果校验通过,确定允许再次启动进程。
在上述步骤S75中,在对进程启动的可信度校验通过的情况下,认为该需要启动的进程处于可信状态,因此允许该进程启动。而在对进程启动的可信度校验失败的情况下,认为该进程处于不可信状态。
本申请上述实施例中,如果检测到需要再次启动进程,获取进程在首次启动过程中的初始可信度量信息,基于进程的初始可信度量信息对进程的启动进行可信度校验;并在校验通过的情况下允许再次启动进程,实现了对进程的启动校验,即实现了对进程对可信启动,从而能够保证进程的静态完整性,使攻击者难以通过静态注入的手段对应用的进程进行攻击,进而保证了进程对可信状态。
由此,本申请上述实施例解决了现有技术无法保证动态进程的可信状态的技术问题。
作为一种可选的实施例,获取进程首次启动过程中的初始可信度量信息,包括:通过调用可信平台模块接口,读取可信平台模块的安全芯片在第一存储位置中存储的初始可信度量信息。
具体的,上述可信平台模块接口即为TPM接口,第一存储位置可以为一个PCR寄存器。
上述步骤即为,再次启动的进程的已映射静态文件的扩展度量值的获取方式可以与进程初始启动时已映射静态文件的扩展度量值的获取方式相同,即可以如实施例1中步骤S2311至S2317所示,最终的扩展度量值通过调用TPM安全芯片获取,且获取的第一可信度量信息可以存储至PCR_x中,因此可以调用TPM接口,从PCR_x中读取。
作为一种可选的实施例,进程还包括:已映射内存数据,初始可信度量信息还包括:首次启动的进程中已映射内存数据的扩展度量值,如果校验通过,在确定允许再次启动进程之后,上述方法还包括:在再次启动的进程运行的过程中,基于进程的初始可信度量信息对进程进行动态可信度校验;如果校验失败,则终止再次启动的进程运行。
在上述步骤中,对进程的启动进行动态可信度校验,即为通过可信度校验来确定进程的运行是否可信,从而保证进程在运行过程中的可信状态。
上述步骤中的可信度校验是基于初始可信度量信息中,已映射内存数据的扩展度量值进行的,也即,以进程首次启动时的已映射内存数据的扩展度量值作为可信状态的标准,对进程的运行进行动态校验。
在一种可选的实施例中,在进程启动后运行的过程中,获取进程当前已映射内存数据的扩展度量值,并将进程当前已映射内存数据的扩展度量值的与初始可信度量信息中的已映射内存数据的扩展度量值进行比对,在比对相同的情况下,确定校验成功,在比对不同的情况下,确定校验失败。
在校验成功的情况下,则说明该进程运行在可信的状态下,因此允许进程继续运行,如果校验失败,则说明该进程运行在不可信的状态新,因此终止进程继续运行。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例3
根据本发明实施例,还提供了一种用于实施上述实施例1中进程的保护方法的进程的保护装置,图8是根据本申请实施例3的一种进程的保护装置的示意图,如图8所示,该装置800包括:
第一确定模块802,用于在首次启动进程的过程中,确定进程的初始可信度量信息。
第一校验模块804,用于如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验。
第二确定模块806,用于如果校验通过,确定允许再次启动进程。
此处需要说明的是,上述第一确定模块802、第一校验模块804和第二确定模块806对应于实施例1中的步骤S21至步骤S25,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
作为一种可选的实施例,进程包括:已映射静态文件,初始可信度量信息包括:首次启动的进程中已映射静态文件的扩展度量值。
作为一种可选的实施例,第一校验模块包括:第一获取子模块,用于如果检测到需要再次启动进程,获取第一可信度量信息,其中,第一可信度量信息为,需要再次启动的进程中已映射静态文件的扩展度量值;第一比对子模块,用于将第一可信度量信息与初始可信度量信息进行比对;第一确定子模块,用于如果第一可信度量信息与初始可信度量信息相同,确定对进程的启动校验成功。
作为一种可选的实施例,第一确定模块包括:第一读取子模块,用于在进程首次启动的过程中,读取进程的进程映射表;导出子模块,用于从进程映射表中导出进程的已映射静态文件列表,其中,已映射静态文件列表中包括已映射静态文件的绝对路径;第二获取子模块,用于根据已映射静态文件的绝对路径,获取已映射静态文件;第三获取子模块,用于根据已映射静态文件获取已映射静态文件的扩展度量值。
作为一种可选的实施例,导出子模块包括:第一导出单元,用于如果进程映射表中多行的绝对路径相同,只导出多行中的任意一行;以及第二导出单元,用于如果进程映射表中任意一行不包括绝对路径,不导出不包括绝对路径的行。
作为一种可选的实施例,第三获取子模块包括:第一获取单元,用于获取已映射静态文件的哈希度量值;第一确定单元,用于通过安全芯片调用预设指令,根据已映射静态文件的哈希度量值,确定已映射静态文件的扩展度量值。
作为一种可选的实施例,上述装置还包括:禁止模块,用于在如果再次启动进程,基于进程的第一可信度量信息对进程进行可信度校验之后,如果校验失败,确定禁止再次启动进程。
作为一种可选的实施例,进程还包括:已映射内存数据,初始可信度量信息还包括:首次启动的进程中已映射内存数据的扩展度量值,上述装置还包括:第二校验模块,用于如果校验通过,在确定允许再次启动进程之后,在再次启动的进程运行的过程中,基于进程的初始可信度量信息对进程进行动态可信度校验;第一终止模块,用于如果校验失败,则终止再次启动的进程运行。
作为一种可选的实施例,第二校验模块包括:第四获取子模块,用于在再次启动的进程运行的过程中,获取第二可信度量信息,其中,第二可信度量信息为再次启动的进程运行过程中已映射内存数据的扩展度量值;第二比对子模块,用于将第二可信度量信息与初始可信度量信息中已映射内存数据的扩展度量值进行比对;第二确定子模块,用于如果第二可信度量信息与初始可信度量信息中已映射内存数据的扩展度量值不相同,确定动态可信度校验失败。
作为一种可选的实施例,第一确定模块还包括:第二读取子模块,用于当进程首次启动时,读取进程的进程映射表;第三确定子模块,用于根据进程映射表中已映射内存数据的起始虚拟地址,确定已映射内存数据的起始物理地址;第四确定子模块,用于根据已映射内存数据的起始物理地址,确定进程的已映射内存数据;第五获取子模块,用于根据已映射内存数据,获取已映射内存数据的扩展度量值。
作为一种可选的实施例,第五获取子模块包括:第二获取单元,用于获取已映射内存数据的哈希度量值;;第二确定单元,用于通过安全芯片调用预设指令,根据已映射内存数据的哈希度量值,确定已映射内存数据的扩展度量值。
实施例4
根据本发明实施例,还提供了一种用于实施上述实施例2中进程的保护方法的进程的保护装置,图9是根据本申请实施例4的一种进程的保护装置的示意图,如图9所示,该装置900包括:
获取模块902,用于如果检测到需要再次启动进程,获取进程在首次启动过程中的初始可信度量信息。
第三校验模块904,用于基于进程的初始可信度量信息对进程的启动进行可信度校验。
第二确定模块906,用于如果校验通过,确定允许再次启动进程。
此处需要说明的是,上述获取模块902、第三校验模块904和第二确定模块906对应于实施例2中的步骤S71至步骤S75,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
作为一种可选的实施例,获取模块包括:第三读取子模块,用于通过调用可信平台模块接口,读取可信平台模块的安全芯片在第一存储位置中存储的初始可信度量信息。
作为一种可选的实施例,进程还包括:已映射内存数据,初始可信度量信息还包括:首次启动的进程中已映射内存数据的扩展度量值,上述装置还包括:第四校验模块,用于如果校验通过,在确定允许再次启动进程之后,在再次启动的进程运行的过程中,基于进程的初始可信度量信息对进程进行动态可信度校验;第二终止模块,用于如果校验失败,则终止再次启动的进程运行。
实施例5
根据本发明实施例,还提供了一种数据处理方法,图10是根据本申请实施例5的一种数据处理方法的流程图,结合图10所示,该方法包括:
步骤S101,确定目标进程或线程需要启动,其中,目标进程或线程对应于第一可信度量。
具体的,上述目标进程或线程即为需要启动,并进行可信度校验的进程或线程,可以是一个应用的进程或线程。上述第一可信度量度量可以是度量值,用于表征需要启动的进程或线程的可信状态。上述步骤可以由运行进程或线程的设备的CPU执行。在上述步骤S93中,可以通过检测用户通过设备发送的进程启动指令,来检测是否需要再次启动进程。例如:用户点击应用图标,试图在设备上启动应用,此时设备的处理器检测到该应用的进程需要被再次启动。
在一种可选的实施例中,在确定需要启动的目标进程或线程后,计算目标进程的第一可信度量值。
步骤S103,至少基于目标进程或线程的第一可信度量,对目标进程或线程的启动进行可信度校验。
对需要启动的进程或线程进行可信度校验,即为通过可信度校验来确定进程或线此次的启动是否可信,从而确定是否启动进程。由于目标进程或线程可能是再次启动,因此存在被攻击的风险,所以不直接执行启动进程的指令,而是对进程的启动进行可信度校验,从校验该进程的此次启动是否为可信状态。
在上述步骤S103中,通过用于表示进程或线程的可信状态的第一可信度量来对进程或线程进行可信度校验,在一种可选的实施例中,可以预先获取一个基准可信度量,该基准可信度量用于表示,进程或线程在绝对可信状态下的度量,然后通过基准可信度量,对第一可信度量进行可信度校验。
步骤S105,至少基于可信度校验结果,判断是否允许启动目标进程或线程。
在上述步骤S105中,在进程或线程启动的可信度校验通过的情况下,认为该需要启动的进程处于可信状态,因此允许该进程启动。而在对进程启动的可信度校验失败的情况下,认为该进程处于不可信状态。
本申请上述实施例确定目标进程或线程需要启动,至少基于目标进程或线程的第一可信度量,对目标进程或线程的启动进行可信度校验,至少基于可信度校验结果,判断是否允许启动目标进程或线程。上述方案实现了对进程或线程的可信度校验,从而能够保证进程的静态完整性,使攻击者难以通过静态注入的手段对应用的进程进行攻击,进而保证了进程对可信状态。
由此,本申请上述实施例解决了现有技术无法保证动态进程的可信状态的技术问题。
作为一种可选的实施例,至少基于目标进程或线程的第一可信度量,对目标进程或线程的启动进行可信度校验,包括:
步骤S931,在进程或线程首次启动的过程中,确定进程或线程的初始可信度量。
具体的,上述首次启动进程或线程指的是,在一个设备上第一次启动该进程或线程。例如,以一个应用的进程或线程为例,如果在该设备上安装该应用后首次启动,即为上述的首次启动进程或线程。如果设备在关机后再次开机,在再次开机后的第一次启动,不为上述首次启动的进程或线程。
由于上述的初始可信度量是进程或线程首次启动的可信度量信息,可以认为该可信度量是可信的,因此上述初始可度量可以作为可信状态的标准,对进程的启动或线程进行可信度量。
步骤S933,将第一可信度量与初始可信度量进行比对。
步骤S935,如果第一可信度量与初始可信度量相同,确定对进程的可信度校验成功。
在上述步骤S935中,如果第一可信度量与初始可信度量相同,则说明需要目标进程或进程的文件状态与进程首次启动时的文件状态相同,从而说明需要目标进程或线程处于可信状态,因此确定对目标进程或线程的可信度校验成功。在校验成功的情况下,即可确定进程或线程的已映射静态文件未被攻击或篡改,所以在校验成功的情况下,即可确定目标进程或线程的此次启动是可信的。
实施例6
根据本发明实施例,还提供了一种用于实施上述实施例5中的数据处理方法的数据处理装置,图11是根据本申请实施例6的一种数据处理装置的示意图,如图11所示,该装置1100包括:
第三确定模块1102,用于确定目标进程或线程需要启动,其中,目标进程或线程对应于第一可信度量。
第五校验模块1104,用于至少基于目标进程或线程的第一可信度量,对目标进程或线程的启动进行可信度校验。
判断模块1106,用于至少基于可信度校验结果,判断是否允许启动目标进程或线程。
此处需要说明的是,上述第三确定模块1102、第五校验模块11044和判断模块1106对应于实施例5中的步骤S91至步骤S95,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
作为一种可选的实施例,第五校验模块包括:第五确定子模块,用于在进程或线程首次启动的过程中,确定进程或线程的初始可信度量;第三比对子模块,用于将第一可信度量与初始可信度量进行比对;第六确定子模块,用于如果第一可信度量与初始可信度量相同,确定对进程的可信度校验成功。
实施例7
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行进程的保护方法中以下步骤的程序代码:在首次启动进程的过程中,确定进程的初始可信度量信息;如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验;如果校验通过,确定允许再次启动进程。
可选地,图12是根据本发明实施例7的一种计算机终端的结构框图。如图12所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器1202、存储器1204、以及外设接口1206。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的进程的保护方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的进程的保护方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:在首次启动进程的过程中,确定进程的初始可信度量信息;如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验;如果校验通过,确定允许再次启动进程。
可选的,上述处理器还可以执行如下步骤的程序代码:进程包括:已映射静态文件,初始可信度量信息包括:首次启动的进程中已映射静态文件的扩展度量值。
可选的,上述处理器还可以执行如下步骤的程序代码:如果检测到需要再次启动进程,获取第一可信度量信息,其中,第一可信度量信息为,需要再次启动的进程中已映射静态文件的扩展度量值;将第一可信度量信息与初始可信度量信息进行比对;如果第一可信度量信息与初始可信度量信息相同,确定对进程的启动校验成功。
可选的,上述处理器还可以执行如下步骤的程序代码:在进程首次启动的过程中,读取进程的进程映射表;从进程映射表中导出进程的已映射静态文件列表,其中,已映射静态文件列表中包括已映射静态文件的绝对路径;根据已映射静态文件的绝对路径,获取已映射静态文件;根据已映射静态文件获取已映射静态文件的扩展度量值。
可选的,上述处理器还可以执行如下步骤的程序代码:如果进程映射表中多行的绝对路径相同,只导出多行中的任意一行;以及如果进程映射表中任意一行不包括绝对路径,不导出不包括绝对路径的行。
可选的,上述处理器还可以执行如下步骤的程序代码:获取已映射静态文件的哈希度量值;通过安全芯片调用预设指令,根据已映射静态文件的哈希度量值,确定已映射静态文件的扩展度量值。
可选的,上述处理器还可以执行如下步骤的程序代码:在如果再次启动进程,基于进程的第一可信度量信息对进程进行可信度校验之后,如果校验失败,确定禁止再次启动进程。
可选的,上述处理器还可以执行如下步骤的程序代码:进程还包括:已映射内存数据,初始可信度量信息还包括:首次启动的进程中已映射内存数据的扩展度量值,如果校验通过,在确定允许再次启动进程之后,在再次启动的进程运行的过程中,基于进程的初始可信度量信息对进程进行动态可信度校验;如果校验失败,则终止再次启动的进程运行。
可选的,上述处理器还可以执行如下步骤的程序代码:在再次启动的进程运行的过程中,获取第二可信度量信息,其中,第二可信度量信息为再次启动的进程运行过程中已映射内存数据的扩展度量值;将第二可信度量信息与初始可信度量信息中已映射内存数据的扩展度量值进行比对;如果第二可信度量信息与初始可信度量信息中已映射内存数据的扩展度量值不相同,确定动态可信度校验失败。
可选的,上述处理器还可以执行如下步骤的程序代码:当进程首次启动时,读取进程的进程映射表;根据进程映射表中已映射内存数据的起始虚拟地址,确定已映射内存数据的起始物理地址;根据已映射内存数据的起始物理地址,确定进程的已映射内存数据;根据已映射内存数据,获取已映射内存数据的扩展度量值。
可选的,上述处理器还可以执行如下步骤的程序代码:获取已映射内存数据的哈希度量值;通过安全芯片调用预设指令,根据已映射内存数据的哈希度量值,确定已映射内存数据的扩展度量值。
采用本发明实施例,在首次启动进程的过程中,确定进程的初始可信度量信息;如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验;并在校验通过的情况下允许再次启动进程,实现了对进程的启动校验,即实现了对进程对可信启动,从而能够保证进程的静态完整性,使攻击者难以通过静态注入的手段对应用的进程进行攻击,进而保证了进程对可信状态。
由此,本申请上述实施例解决了现有技术无法保证动态进程的可信状态的技术问题。
本领域普通技术人员可以理解,图12所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图12其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图12中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图12所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例8
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的进程的保护方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在首次启动进程的过程中,确定进程的初始可信度量信息;如果检测到需要再次启动进程,基于进程的初始可信度量信息对进程的启动进行可信度校验;如果校验通过,确定允许再次启动进程。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种进程的保护方法,其特征在于,包括:
在首次启动进程的过程中,确定所述进程的初始可信度量信息;
如果检测到需要再次启动所述进程,基于所述进程的初始可信度量信息对所述进程的启动进行可信度校验;
如果校验通过,确定允许再次启动所述进程;
其中,所述初始可信度量信息包括:首次启动的所述进程中已映射静态文件的扩展度量值,所述在首次启动进程的过程中,确定所述进程的初始可信度量信息,包括:在所述进程首次启动的过程中,读取所述进程的进程映射表;从所述进程映射表中导出所述进程的已映射静态文件列表,其中,所述已映射静态文件列表中包括所述已映射静态文件的绝对路径;根据所述已映射静态文件的绝对路径,获取所述已映射静态文件;根据所述已映射静态文件获取所述已映射静态文件的扩展度量值;
其中,所述如果检测到需要再次启动所述进程,基于所述进程的初始可信度量信息对所述进程的启动进行可信度校验,包括:如果检测到需要再次启动所述进程,获取第一可信度量信息,其中,所述第一可信度量信息为,需要再次启动的所述进程中所述已映射静态文件的所述扩展度量值;将所述第一可信度量信息与所述初始可信度量信息进行比对;如果所述第一可信度量信息与所述初始可信度量信息相同,确定对所述进程的启动校验成功。
2.根据权利要求1所述的方法,其特征在于,从所述进程映射表中导出所述进程的已映射静态文件列表,包括:
如果所述进程映射表中多行的所述绝对路径相同,只导出所述多行中的任意一行;以及
如果所述进程映射表中任意一行不包括所述绝对路径,不导出不包括所述绝对路径的行。
3.根据权利要求1所述的方法,其特征在于,根据所述已映射静态文件获取所述已映射静态文件的扩展度量值,包括:
获取所述已映射静态文件的哈希度量值;
通过安全芯片调用预设指令,根据所述已映射静态文件的哈希度量值,确定所述已映射静态文件的扩展度量值。
4.根据权利要求1所述的方法,其特征在于,在如果再次启动所述进程,基于所述进程的第一可信度量信息对所述进程进行可信度校验之后,所述方法还包括:如果校验失败,确定禁止再次启动所述进程。
5.根据权利要求1所述的方法,其特征在于,所述进程还包括:已映射内存数据,所述初始可信度量信息还包括:首次启动的所述进程中所述已映射内存数据的扩展度量值,如果校验通过,在确定允许再次启动所述进程之后,所述方法还包括:
在再次启动的所述进程运行的过程中,基于所述进程的初始可信度量信息对所述进程进行动态可信度校验;
如果校验失败,则终止所述再次启动的进程运行。
6.根据权利要求5所述的方法,其特征在于,在再次启动的所述进程运行的过程中,基于所述进程的初始可信度量信息对所述进程进行动态可信度校验,包括:
在再次启动的所述进程运行的过程中,获取第二可信度量信息,其中,所述第二可信度量信息为再次启动的所述进程运行过程中已映射内存数据的扩展度量值;
将所述第二可信度量信息与所述初始可信度量信息中所述已映射内存数据的扩展度量值进行比对;
如果第二可信度量信息与所述初始可信度量信息中所述已映射内存数据的扩展度量值不相同,确定动态可信度校验失败。
7.根据权利要求5所述的方法,其特征在于,在首次启动进程的过程中,确定所述进程的初始可信度量信息还包括:
当所述进程首次启动时,读取所述进程的进程映射表;
根据所述进程映射表中已映射内存数据的起始虚拟地址,确定所述已映射内存数据的起始物理地址;
根据所述已映射内存数据的起始物理地址,确定所述进程的所述已映射内存数据;
根据所述已映射内存数据,获取所述已映射内存数据的扩展度量值。
8.根据权利要求7所述的方法,其特征在于,根据所述已映射内存数据,获取所述已映射内存数据的扩展度量值,包括:
获取所述已映射内存数据的哈希度量值;
通过安全芯片调用预设指令,根据所述已映射内存数据的哈希度量值,确定所述已映射内存数据的扩展度量值。
9.一种进程的保护方法,其特征在于,包括:
如果检测到需要再次启动所述进程,获取进程在首次启动过程中的初始可信度量信息;
基于所述进程的初始可信度量信息对所述进程的启动进行可信度校验;
如果校验通过,确定允许再次启动所述进程;
其中,所述初始可信度量信息包括:首次启动的所述进程中已映射静态文件的扩展度量值,确定所述进程在首次启动过程中的所述初始可信度量信息,包括:在所述进程首次启动的过程中,读取所述进程的进程映射表;从所述进程映射表中导出所述进程的已映射静态文件列表,其中,所述已映射静态文件列表中包括所述已映射静态文件的绝对路径;根据所述已映射静态文件的绝对路径,获取所述已映射静态文件;根据所述已映射静态文件获取所述已映射静态文件的扩展度量值;
其中,基于所述进程的初始可信度量信息对所述进程的启动进行可信度校验,包括:如果检测到需要再次启动所述进程,获取第一可信度量信息,其中,所述第一可信度量信息为,需要再次启动的所述进程中所述已映射静态文件的所述扩展度量值;将所述第一可信度量信息与所述初始可信度量信息进行比对;如果所述第一可信度量信息与所述初始可信度量信息相同,确定对所述进程的启动校验成功。
10.根据权利要求9所述的方法,其特征在于,获取所述进程首次启动过程中的初始可信度量信息,包括:
通过调用可信平台模块接口,读取可信平台模块的安全芯片在第一存储位置中存储的所述初始可信度量信息。
11.根据权利要求9所述的方法,其特征在于,所述进程还包括:已映射内存数据,所述初始可信度量信息还包括:首次启动的所述进程中所述已映射内存数据的扩展度量值,如果校验通过,在确定允许再次启动所述进程之后,所述方法还包括:
在再次启动的所述进程运行的过程中,基于所述进程的初始可信度量信息对所述进程进行动态可信度校验;
如果校验失败,则终止所述再次启动的进程运行。
12.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如下步骤:在首次启动进程的过程中,确定所述进程的初始可信度量信息;如果检测到需要再次启动所述进程,基于所述进程的初始可信度量信息对所述进程的启动进行可信度校验;如果校验通过,确定允许再次启动所述进程;其中,所述初始可信度量信息包括:首次启动的所述进程中已映射静态文件的扩展度量值,在所述程序运行时还控制所述存储介质所在设备执行如下步骤:在所述进程首次启动的过程中,读取所述进程的进程映射表;从所述进程映射表中导出所述进程的已映射静态文件列表,其中,所述已映射静态文件列表中包括所述已映射静态文件的绝对路径;根据所述已映射静态文件的绝对路径,获取所述已映射静态文件;根据所述已映射静态文件获取所述已映射静态文件的扩展度量值;
其中,所述存储介质还用于通过以下步骤基于所述进程的初始可信度量信息对所述进程的启动进行可信度校验:如果检测到需要再次启动所述进程,获取第一可信度量信息,其中,所述第一可信度量信息为,需要再次启动的所述进程中所述已映射静态文件的所述扩展度量值;将所述第一可信度量信息与所述初始可信度量信息进行比对;如果所述第一可信度量信息与所述初始可信度量信息相同,确定对所述进程的启动校验成功。
13.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行如下步骤:在首次启动进程的过程中,确定所述进程的初始可信度量信息;如果检测到需要再次启动所述进程,基于所述进程的初始可信度量信息对所述进程的启动进行可信度校验;如果校验通过,确定允许再次启动所述进程;其中,所述初始可信度量信息包括:首次启动的所述进程中已映射静态文件的扩展度量值,所述程序运行时还执行如下步骤:在所述进程首次启动的过程中,读取所述进程的进程映射表;从所述进程映射表中导出所述进程的已映射静态文件列表,其中,所述已映射静态文件列表中包括所述已映射静态文件的绝对路径;根据所述已映射静态文件的绝对路径,获取所述已映射静态文件;根据所述已映射静态文件获取所述已映射静态文件的扩展度量值;
其中,所述处理器还用于通过以下步骤基于所述进程的初始可信度量信息对所述进程的启动进行可信度校验:如果检测到需要再次启动所述进程,获取第一可信度量信息,其中,所述第一可信度量信息为,需要再次启动的所述进程中所述已映射静态文件的所述扩展度量值;将所述第一可信度量信息与所述初始可信度量信息进行比对;如果所述第一可信度量信息与所述初始可信度量信息相同,确定对所述进程的启动校验成功。
14.一种进程的保护系统,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
在首次启动进程的过程中,确定所述进程的初始可信度量信息;
如果检测到需要再次启动所述进程,基于所述进程的初始可信度量信息对所述进程的启动进行可信度校验;
如果校验通过,确定允许再次启动所述进程;
其中,所述初始可信度量信息包括:首次启动的所述进程中已映射静态文件的扩展度量值,所述在首次启动进程的过程中,确定所述进程的初始可信度量信息,包括:在所述进程首次启动的过程中,读取所述进程的进程映射表;从所述进程映射表中导出所述进程的已映射静态文件列表,其中,所述已映射静态文件列表中包括所述已映射静态文件的绝对路径;根据所述已映射静态文件的绝对路径,获取所述已映射静态文件;根据所述已映射静态文件获取所述已映射静态文件的扩展度量值;
其中,所述系统还用于通过以下步骤基于所述进程的初始可信度量信息对所述进程的启动进行可信度校验:如果检测到需要再次启动所述进程,获取第一可信度量信息,其中,所述第一可信度量信息为,需要再次启动的所述进程中所述已映射静态文件的所述扩展度量值;将所述第一可信度量信息与所述初始可信度量信息进行比对;如果所述第一可信度量信息与所述初始可信度量信息相同,确定对所述进程的启动校验成功。
15.一种数据处理方法,其特征在于,包括:
确定目标进程或线程需要启动,其中,所述目标进程或线程对应于第一可信度量;
至少基于所述目标进程或线程的第一可信度量,对所述目标进程或线程的启动进行可信度校验;
至少基于所述可信度校验结果,判断是否允许启动所述目标进程或线程;
其中,所述至少基于所述目标进程或线程的第一可信度量,对所述目标进程或线程的启动进行可信度校验,包括:在所述进程或线程首次启动的过程中,确定所述进程或线程的初始可信度量;将所述第一可信度量与所述初始可信度量进行比对;如果所述第一可信度量与所述初始可信度量相同,确定对所述目标进程或线程的可信度校验成功;
其中,所述初始可信度量包括:首次启动的所述目标进程或线程中已映射静态文件的扩展度量值,在所述目标进程或线程首次启动的过程中,确定所述目标进程或线程的初始可信度量,包括:在所述目标进程或线程首次启动的过程中,读取所述目标进程或线程的进程映射表;从所述进程映射表中导出所述目标进程或线程的已映射静态文件列表,其中,所述已映射静态文件列表中包括所述已映射静态文件的绝对路径;根据所述已映射静态文件的绝对路径,获取所述已映射静态文件;根据所述已映射静态文件获取所述已映射静态文件的扩展度量值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810707000.3A CN110674494B (zh) | 2018-07-02 | 2018-07-02 | 进程的保护方法、系统及数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810707000.3A CN110674494B (zh) | 2018-07-02 | 2018-07-02 | 进程的保护方法、系统及数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110674494A CN110674494A (zh) | 2020-01-10 |
CN110674494B true CN110674494B (zh) | 2023-04-11 |
Family
ID=69065405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810707000.3A Active CN110674494B (zh) | 2018-07-02 | 2018-07-02 | 进程的保护方法、系统及数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110674494B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310162B (zh) * | 2020-01-20 | 2023-12-26 | 深圳力维智联技术有限公司 | 基于可信计算的设备接入控制方法、装置、产品及介质 |
CN114048485B (zh) * | 2021-11-12 | 2023-04-07 | 四川大学 | 一种针对Docker容器内进程代码段完整性动态监测方法 |
CN114201233A (zh) * | 2021-11-18 | 2022-03-18 | 成都网思科平科技有限公司 | 一种基于快照参照的减少进程模块加载数据存储的方法 |
CN116846682B (zh) * | 2023-08-29 | 2024-01-23 | 山东海量信息技术研究院 | 通信信道建立方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201222582D0 (en) * | 2012-12-14 | 2013-01-30 | Ibm | User trusted device to attest trustworthiness of initialization firmware |
CN105468978A (zh) * | 2015-11-16 | 2016-04-06 | 国网智能电网研究院 | 一种适用于电力系统通用计算平台的可信计算密码平台 |
CN106407817A (zh) * | 2016-07-29 | 2017-02-15 | 中国人民解放军信息工程大学 | 一种交换进程可信度量方法和系统 |
CN107145802A (zh) * | 2017-05-09 | 2017-09-08 | 郑州云海信息技术有限公司 | 一种bios完整性度量方法、基板管理控制器和系统 |
CN107766734A (zh) * | 2017-11-03 | 2018-03-06 | 浪潮(北京)电子信息产业有限公司 | 安全启动raid卡方法、装置、设备及计算机可读存储介质 |
-
2018
- 2018-07-02 CN CN201810707000.3A patent/CN110674494B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201222582D0 (en) * | 2012-12-14 | 2013-01-30 | Ibm | User trusted device to attest trustworthiness of initialization firmware |
CN105468978A (zh) * | 2015-11-16 | 2016-04-06 | 国网智能电网研究院 | 一种适用于电力系统通用计算平台的可信计算密码平台 |
CN106407817A (zh) * | 2016-07-29 | 2017-02-15 | 中国人民解放军信息工程大学 | 一种交换进程可信度量方法和系统 |
CN107145802A (zh) * | 2017-05-09 | 2017-09-08 | 郑州云海信息技术有限公司 | 一种bios完整性度量方法、基板管理控制器和系统 |
CN107766734A (zh) * | 2017-11-03 | 2018-03-06 | 浪潮(北京)电子信息产业有限公司 | 安全启动raid卡方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110674494A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11520894B2 (en) | Verifying controller code | |
CN108399339B (zh) | 一种基于安全芯片的可信启动方法 | |
US11093258B2 (en) | Method for trusted booting of PLC based on measurement mechanism | |
CN110674494B (zh) | 进程的保护方法、系统及数据处理方法 | |
US10635821B2 (en) | Method and apparatus for launching a device | |
CN105205401B (zh) | 基于安全密码芯片的可信计算机系统及其可信引导方法 | |
US7921286B2 (en) | Computer initialization for secure kernel | |
US9880908B2 (en) | Recovering from compromised system boot code | |
US9015455B2 (en) | Processsor integral technologies for BIOS flash attack protection and notification | |
US9785596B2 (en) | Redundant system boot code in a secondary non-volatile memory | |
US9292302B2 (en) | Allowing bypassing of boot validation in a computer system having secure boot enabled by default only under certain circumstances | |
US8364973B2 (en) | Dynamic generation of integrity manifest for run-time verification of software program | |
US11379586B2 (en) | Measurement methods, devices and systems based on trusted high-speed encryption card | |
CN107665308B (zh) | 用于构建和保持可信运行环境的tpcm系统以及相应方法 | |
JP5346608B2 (ja) | 情報処理装置およびファイル検証システム | |
WO2011146305A2 (en) | Extending an integrity measurement | |
CN103049293B (zh) | 一种嵌入式可信系统的启动方法 | |
US20200089507A1 (en) | Low power embedded device using a write-once register to speed up the secure boot from sleep states of the device | |
CN111352702A (zh) | 虚拟数据中心可信状态确定方法、装置、设备及存储介质 | |
CN109766688B (zh) | 一种基于Merkle树的Linux程序运行时验证与管控方法和系统 | |
CN111651769A (zh) | 获取安全启动的度量方法和装置 | |
US10095855B2 (en) | Computer system and operating method therefor | |
US20200244461A1 (en) | Data Processing Method and Apparatus | |
Ferri et al. | Towards the Hypervision of Hardware-based Control Flow Integrity for Arm Platforms. | |
CN106778286A (zh) | 一种用于检测服务器硬件是否被攻击的系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40020904 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |