CN111159691A - 一种应用程序动态可信验证方法及系统 - Google Patents

一种应用程序动态可信验证方法及系统 Download PDF

Info

Publication number
CN111159691A
CN111159691A CN201911341086.3A CN201911341086A CN111159691A CN 111159691 A CN111159691 A CN 111159691A CN 201911341086 A CN201911341086 A CN 201911341086A CN 111159691 A CN111159691 A CN 111159691A
Authority
CN
China
Prior art keywords
application program
trusted
dynamic
verification
memory
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.)
Granted
Application number
CN201911341086.3A
Other languages
English (en)
Other versions
CN111159691B (zh
Inventor
张建标
冯星伟
黄浩翔
陶务升
万永祺
曹雪琛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201911341086.3A priority Critical patent/CN111159691B/zh
Publication of CN111159691A publication Critical patent/CN111159691A/zh
Application granted granted Critical
Publication of CN111159691B publication Critical patent/CN111159691B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Abstract

本发明实施例提供一种应用程序动态可信验证方法及系统,该方法包括:为应用程序构建可信运行环境;在强制访问控制状态,基于可信运行环境对应用程序进行动态可信验证。其中,为应用程序构建可信运行环境,包括:操作系统可信启动、构建策略文件以及构建可信基准库;对应用程序进行动态可信验证,包括:基于可信基准库、策略文件和安全增强模块,验证四要素的完整性。本发明实施例提供的应用程序动态可信验证方法及系统,在不修改应用程序本身的前提下,能够通过完整性度量机制、强制访问控制机制对应用程序从磁盘被加载到内存的过程、应用程序被加载到内存后的整个运行过程进行动态可信验证。

Description

一种应用程序动态可信验证方法及系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用程序动态可信验证方法。
背景技术
有关可信验证的概念,在ISO/IEC 15408标准中给出了以下定义:一个可信的组件、操作要素或过程的行为在任意操作要素条件下是可预测的,并能很好地抵抗应用程序软件、病毒以及一定的物理干扰造成的破坏。可信验证及其计算的基本思路是在硬件平台上引入安全芯片(可信平台模块)来提高终端系统的安全性,也就是说在每个终端平台上植入一个信任根,让计算机从BIOS到操作要素系统内核层,再到应用层都构建信任关系;以此为基础,扩大到网络上,建立相应的信任链,从而进入计算机免疫时代。当终端受到攻击时,可实现自我保护、自我管理和自我恢复。
现有技术中公开了一种操作要素系统主动免疫平台的设计和实现方法,包括以下步骤:截获系统调用行为,依据可信基准库提供的控制策略判定该调用行为是否被控制。如果该调用行为不被控制则允许执行;否则将该调用行为的主/客体要素信息传递给度量机制。度量机制依据可信基准库提供的度量策略判定度量该系统调用行为所需要的度量点,并将度量点信息传递给判定机制。判定机制依据度量机制步骤传递的度量点信息并根据可信基准库提供的判定策略决定调用相应的判定引擎进行判定,获得初步判定结果,并依据可信基准库提供的判定基准值调用综合判定引擎,综合判定引擎对各个初步判定结果进行综合判定并将综合判定结果返回给控制机制。控制机制根据判定机制返回的综合判定结果执行相应操作要素。
上述操作要素系统主动免疫平台的设计和实现方法,仅仅验证了应用程序的主体要素和操作要素的完整性,而并未对应用程序的客体要素和环境的完整性进行验证,导致可信验证结果不可信。
现有技术中还公开了一种应用程序的可信度量方法,包括:接收到针对应用程序的指定请求;调用终端设备内的系统调用接口,并利用系统调用接口拦截所述指定请求;判断应用程序是否为可信应用程序;当确定应用程序为可信应用程序时,解除对指定请求的拦截,并针对应用程序执行与指定请求对应的操作要素。
上述应用程序的可信度量方法,在执行的过程中,需预先插入度量标识,从而导致了应用程序本身的修改。而应用程序千差万别、数量巨大,在实际可信验证的过程中,不可能完成对所有的应用程序的修改;况且有很多应用程序本身不允许被修改,从而导致上述可信度量方法不合理、不可行。
综上所述,亟需提供一种能够在不修改应用程序本身的前提下,能够运用完整性度量机制、强制访问控制机制对应用程序从磁盘被加载到内存的过程、应用程序被加载到内存后的整个运行过程进行动态可信验证的方法。
发明内容
有鉴于此,本发明实施例提供一种应用程序动态可信验证方法及系统,用以解决现有技术中对于应用程序动态可信验证必须基于静态验证,且在验证过程中不可避免的对应用程序进行了修改的弊端。
第一方面,本发明实施例提供一种应用程序动态可信验证方法,包括:为应用程序构建可信运行环境;在强制访问控制状态,基于可信运行环境对应用程序进行动态可信验证。
进一步地,上述为应用程序构建可信运行环境,包括:操作系统可信启动、构建策略文件以及构建可信基准库。
进一步地,上述操作系统可信启动包括:自计算机主机上电开始,依次加载并执行BIOS、Boot、Loader、OS Kernel,并在加载的同时进行动态可信验证;其中,构建策略文件包括:在训练过程中,构建一个初始策略文件;执行应用程序拥有的全部操作要素;获取日志文件中的拒绝信息,并将拒绝信息转化为策略规则;将策略规则加入至初始策略文件,获取策略文件;构建可信基准库包括:分别获取四要素的完整性基准值,并将完整性基准值保存至基准库中,构建成上述可信基准库。
进一步地,上述四要素包括:主体要素、客体要素、操作要素和环境要素。
进一步地,上述操作要素包括主体要素对客体要素的所有访问行为;环境要素包括操作系统可信启动、用户、应用程序、由应用程序生成的进程、由应用程序生成的进程所要访问的资源、策略文件、可信基准库;
在应用程序从磁盘被加载到内存的整个运行过程中,主体要素为执行应用程序的用户,客体要素为应用程序;在应用程序被加载到内存后的运行过程中,主体要素为由应用程序所生成的进程,客体要素为由应用程序所生成的进程所要访问的资源。
进一步地,上述在强制访问控制状态,对应用程序进行动态可信验证,包括:基于可信基准库、策略文件和安全增强模块,验证四要素的完整性。
进一步地,上述基于可信基准库、策略文件和安全增强模块,验证四要素的完整性,具体包括:在应用程序被载入到内存之前,获取为应用程序创建进程而进行的第一系统调用,根据第一系统调用确定并对应用程序被载入内存过程中的四要素中的主体要素、客体要素和操作要素进行动态可信性验证;若动态可信性验证通过,则将应用程序载入内存;在应用程序被载入内存后,获取所述主体要素访问客体要素的第二系统调用,根据第二系统调用确定并对应用程序被载入内存后的四要素中的主体要素、客体要素和操作要素的完整性进行动态可信性验证;若验证通过,则允许所述主体要素访问所述客体要素。
第二方面,本发明实施例提供一种应用程序动态可信验证系统,包括:运行环境构建模块、运行环境存储模块以及动态可信验证模块,其中运行环境构建模块,用于为应用程序构建可信运行环境;运行环境存储模块,用于存储可信运行环境的参数;动态可信验证模块,用于基于可信运行环境的参数,在强制访问控制状态,对应用程序进行动态可信验证。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面任一项所述的应用程序动态可信验证方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面任一项所述的应用程序动态可信验证方法的步骤。
本发明实施例提供的应用程序动态可信验证方法及系统,在不修改应用程序本身的前提下,能够通过完整性度量机制、强制访问控制机制对应用程序从磁盘被加载到内存的过程、应用程序被加载到内存后的整个运行过程进行动态可信验证。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用程序动态可信验证方法的流程示意图;
图2为本发明实施例提供的另一种应用程序动态可信验证方法的流程示意图;
图3为本发明实施例提供的一种应用程序动态可信验证方法中,构建策略文件的框图;
图4为本发明实施例提供的一种应用程序动态可信验证方法中,构建策略文件的流程示意图;
图5为本发明实施例提供的一种应用程序动态可信验证方法中,进行动态可信验证的框图;
图6为本发明实施例提供的一种应用程序动态可信验证方法中,进行动态可信验证的流程示意图;
图7为本发明实施例提供的一种应用程序动态可信验证系统的结构示意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为克服现有技术在进行应用程序动态可信验证的过程中,验证的范围过于片面以及需要插入度量标识导致应用程序本身做出了修改的缺陷,本发明实施例提供一种应用程序动态可信验证方法,如图1所示,包括但不限于以下步骤:
步骤S1:为应用程序构建可信运行环境;
步骤S2:在强制访问控制状态,基于可信运行环境对应用程序进行动态可信验证。
应用程序被加载至内存并运行的过程,可以细分为两个阶段,其一是将应用程序从磁盘加载到内存的过程;其二是应用程序被加载至内存后的运行过程,其在不同的阶段涉及到不同的主体、客体、操作、环境等因素。想要在不修改应用程序本身的前提下,对上述两个过程进行动态可信验证,则必然包括上述两个步骤(即步骤S1和S2)。
其中,上述为应用程序构建可信运行环境,包括:操作系统可信启动、构建策略文件以及构建可信基准库。
具体地,上述为应用程序构建可信运行环境的过程包含操作系统可信启动、构建策略文件、构建可信基准库三个关键环节,均是为应用程序的动态可信验证过程做准备工作的。其中,步骤S1主要是构建可信运行环境。
进一步地,在步骤S2中,则是通过步骤S1中所建立的策略文件和可信基准库,并结合安全增强模块来保证上述各关键因素在操作过程中是否遵循预定的策略规则来进行的,即实现上一步骤所构建的可信运行环境对应用程序进行动态可信验证。
进一步地,如图2所示,本发明实施例还提供一种应用程序动态可信验证方法,主要包括以下几个步骤:
首先,对需运行应用程序的操作系统进行可信启动;然后分别构建策略文件以及可信基准库;最后,利用构建的策略文件和可信基准库对应用程序的运行过程进行动态可信验证。
具体地,上述操作系统可信启动包括:自计算机主机上电开始,依次加载并执行BIOS、Boot、Loader、OS Kernel,并在加载的同时进行动态可信验证。
上述构建策略文件包括:在训练过程中,构建一个初始策略文件;执行应用程序拥有的全部操作要素;获取日志文件中的拒绝信息,并将拒绝信息转化为策略规则;将策略规则加入至初始策略文件,获取策略文件。
上述构建可信基准库包括:分别获取四要素的完整性基准值,并将完整性基准值保存至基准库中,构建成可信基准库。
其中,四要素可以但不限于包括:主体要素、客体要素、操作要素和环境要素。
上述操作要素为主体要素对客体要素的所有访问行为,例如进程对文件的读和写。
上述环境要素包括操作系统可信启动、用户、应用程序、由应用程序生成的进程、由应用程序生成的进程所要访问的资源、策略文件、可信基准库。
在应用程序从磁盘被加载到内存的过程中,上述主体要素为执行应用程序的用户,上述客体要素为所述应用程序。
在应用程序被加载到内存后的整个运行过程中,上述主体要素为所述由应用程序所生成的进程,上述客体要素为由应用程序所生成的进程所要访问的资源。
计算机系统中的行为主要涉及四个要素,分别是主体要素、客体要素、操作要素和环境要素,下面分别对这四个要素进行描述:
第一,关于主体要素:
在应用程序从磁盘被加载到内存的过程中,执行应用程序的用户是主体;在应用程序被加载到内存后的整个运行过程中,由应用程序生成的进程是主体。
第二,关于客体要素:
客体是指被主体访问的资源。客体可以根据应用程序的执行阶段,被划分为不同的类别,比如进程、文件、套接字、进程间通信、网络等。在应用程序从磁盘被加载到内存的过程中,应用程序本身是客体;在应用程序被加载到内存后的整个运行过程中,由应用程序所生成的进程所要访问的资源是客体。
第三,关于操作要素:
在应用程序执行的不同阶段,主体对不同类别的客体有不同的操作。比如,文件上的操作是读、写和执行,进程间通信上的操作是读和写,密钥上的操作是读、写、搜索、链接、查看属性和设置属性。
第四,关于环境要素:
在应用程序从磁盘被加载到内存的过程以及应用程序被加载到内存后的整个运行过程这两个不同的阶段,涉及的关键环境因素主要包括:操作系统可信启动、用户、应用程序本身、由应用程序所生成的进程、由应用程序所生成的进程所要访问的资源、策略文件、可信基准库。只有在保证上述关键环境因素的完整性的基础上,才能为应用程序提供一个可信的运行环境。
具体地,构建可信运行环境的过程涉及三个关键环节,分别是操作系统可信启动、策略文件的构建、可信基准库的构建。
综上所述,在应用程序从磁盘被加载到内存的过程中,涉及的主体要素、客体要素、操作要素和环境要素这四个方面依次是:用户、应用程序本身(存储在磁盘中)、用户执行应用程序以及可信运行环境。在应用程序被加载到内存后的整个运行过程中,涉及的主体要素、客体要素、操作要素和环境要素这四个方面则依次是:由应用程序所生成的进程(存储在内存中)、由应用程序生成的进程所要访问的资源、主体进程访问客体资源、可信运行环境。
由此可见,可信基准库的构建涉及四个关键点,分别是主体完整性构建、客体完整性构建、操作完整性构建及环境完整性构建。
本实施例将分别对上述对三个关键环节和四个关键点做具体地详细说明如下:
第一,关于操作系统的可信启动主要包括以下步骤:计算机主机从上电开始,按照BIOS(Basic Input Output System)、Boot、Loader、OS Kernel的顺序加载并执行这些关键环节的代码,并在上述每个关键进程的加载过程中分别对这些关键环节的代码进行动态可信验证,即结合可信根和完整性度量控制系统来保证操作系统启动过程的可信性。本发明实施例提供的操作系统的可信启动,可以为运行在操作系统之上的应用程序提供一个可信的操作系统平台。
其中,BIOS是一组固化到计算机内主板上一个ROM芯片上的程序,其保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,可以从CMOS中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制,此外,BIOS还向作业系统提供一些系统参数;Boot是一个主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机系统结构;Loader是指系统登录程序;OS Kernel是指操作系统的内核。
第二,关于构建策略文件的步骤,如图3以及图4所示,本发明实施例提供一种应用程序动态可信验证方法,其中构建策略文件的方法可以包括但不限于以下步骤:
从官方网站上下载应用程序的安装包,则该安装包默认是可信的,使用此安装包安装应用程序。由于新安装的应用程序默认是可信的,该应用程序从磁盘被加载到内存的过程以及该应用程序被加载到内存后的整个运行过程可以默认是可信的。
在安装完成应用程序后,此时由于还没有为应用程序构建策略文件,所以关于应用程序的所有操作,都会默认被安全增强模块拒绝,并且拒绝信息会被日志模块记录到日志文件中。如果将应用程序的某个操作编写成策略规则并且添加到策略文件中,那么当应用程序再次执行该操作时,就不会被安全增强模块拒绝,也就不会产生拒绝信息。因此,在本发明实施例中,首先为应用程序构建一个策略文件,该策略文件包含与应用程序的全部操作相对应的策略规则,则可以通过一个训练过程构建策略文件。具体的方法是:将日志文件中的拒绝信息转化为策略文件中的策略规则。在训练过程中,要求尽可能多地(最好是完整地)执行应用程序拥有的全部操作,目的是为应用程序构建一个完整的策略文件。新构建好的策略文件默认是可信的,计算该策略文件的哈希值,并将该哈希值作为策略文件的基准值存入可信基准库中,以该基准值作为判断策略文件是否可信的依据。
在上述构建策略文件的过程中,若不能完整地执行应用程序的全部操作,就不能为应用程序构建一个完整的策略文件,此时可以通过可信的手段不断地完善初始策略文件。假设在构建策略文件的过程中遗漏了应用程序的某个操作,从而得到了一个不完整的初始策略文件。在后期执行上述被遗漏的操作时,该操作会被安全增强模块拒绝,并且拒绝信息会被记录到日志文件中,只需要将拒绝信息转化为策略规则添加到初始策略文件中,即可以构建成一个完整的策略文件。
第三,关于构建可信基准库的步骤,可以包括以下四个方面:
1、关于主体完整性的构建和判断
在应用程序从磁盘被加载到内存的过程中,主体是执行应用程序的用户,此时需要对该用户的身份进行动态可信验证,包括:预先将该用户的身份完整性基准值保存到可信基准库中,在进行用户身份动态可信验证时,通过比对用户身份完整性度量值与可信基准库中保存的用户身份完整性基准值是否一致,判断用户身份的可信性。
在应用程序被加载到内存后的整个运行过程中,主体是由应用程序生成的进程,此时对该进程进行动态可信验证,包括:预先将该进程的完整基准值保存到可信基准库中,在进行进程动态可信验证时,通过比对进程完整性度量值与可信基准库中保存的进程完整性基准值是否一致,判断进程的可信性。
2、关于客体完整性的构建和判断
在应用程序从磁盘加载到内存的过程中,客体是应用程序本身,此时对该应用程序进行动态可信验证,包括:预先将该应用程序的完整基准值保存到可信基准库中,在进行应用程序动态可信验证时,通过比对应用程序完整性度量值与可信基准库中保存的应用程序完整性基准值是否一致,判断应用程序的可信性。
在应用程序被加载到内存后的整个运行过程中,客体是由应用程序生成的进程所要访问的资源,此时对该客体资源进行动态可信验证,包括:预先将该客体资源的完整基准值保存到可信基准库中,在进行客体资源动态可信验证时,通过比对客体资源完整性度量值与可信基准库中保存的客体资源完整性基准值是否一致,判断客体资源的可信性。
3、关于操作完整性构建和判断
在应用程序从磁盘被加载到内存的过程以及应用程序被加载到内存后的整个运行过程中,操作因素的完整性体现为该操作是否遵循策略文件中的策略规则,此时对操作的完整性进行动态可信验证,包括:首先对策略文件的完整性进行动态可信验证,再依据策略文件中的策略规则对操作的完整性进行动态可信验证。在对策略文件的完整性进行动态可信验证时,通过比对策略文件完整性度量值与可信基准库中保存的策略文件完整性基准值是否一致,来判断策略文件的可信性。在依据策略文件中的策略规则对操作的完整性进行动态可信验证时,通过比对该操作与策略文件中的策略规则是否匹配,来判断操作的完整性。
4、关于环境完整性构建和判断
在应用程序从磁盘被加载到内存的过程以及应用程序被加载到内存后的整个运行过程中,环境的完整性是一个综合的概念,其体现为操作系统的可信启动、策略文件的构建、可信基准库的构建三个关键环节。因此,对环境的完整性进行动态可信验证,包括:首先确保操作系统运行在一个可信的硬件平台上;再通过操作系统的可信启动为应用程序提供一个可信的操作系统平台;最后,通过策略文件的构建和可信基准库的构建,为应用程序从磁盘被加载到内存的过程和应用程序被加载到内存后的整个运行过程进行动态可信验证提供一个可信的依据。
基于上述实施例的内容,作为一种可选实施例,上述在强制访问控制状态,对应用程序进行动态可信验证,主要包括:基于可信基准库、策略文件和安全增强模块,验证四要素的完整性。
其中,强制访问控制(简称:MAC)是一种强加给访问主体(即系统强制主体服从访问控制策略)的一种访问方式,利用上读/下写来保证数据的完整性,利用下读/上写来保证数据的保密性。传统的MAC的主要特征是对所有主体及其所控制的客体(例如:进程、文件、段、设备)实施强制访问控制。为这些主体及客体指定敏感标记,这些标记是等级分类和非等级类别的组合,它们是实施MAC的依据。系统通过比较主体和客体的敏感标记来决定一个主体是否能够访问某个客体。用户的程序不能改变其本身及任何其它客体的敏感标记,从而系统可以防止特洛伊木马的攻击。
为克服现有技术中所存在的弊端,本发明实施例提供一种应用程序动态可信验证方法,基于可信基准库、策略文件和安全增强模块,验证四要素的完整性,主要包括:在应用程序被载入到内存之前,获取为应用程序创建进程而进行的第一系统调用,根据第一系统调用确定并对应用程序被载入内存过程中的四要素中的主体要素、客体要素和操作要素进行动态可信性验证;若动态可信性验证通过,则将应用程序载入内存;在应用程序被载入内存后,获取主体要素访问客体要素的第二系统调用,第二系统调用确定并对应用程序被载入内存后的四要素中的主体要素、客体要素和操作要素进行动态可信性验证;若上述动态可信性验证通过,则允许主体要素访问客体要素。
具体地,如图5和图6所示,上述构建可信运行环境的过程,保证了环境的完整性,并且为应用程序从磁盘被加载到内存的过程和应用程序被加载到内存后的整个运行过程进行动态可信验证提供了一个可信的依据。在本发明实施例中,通过对主体完整性、客体完整性和操作完整性的判断实现动态可信验证的过程。
首先,在应用程序从磁盘加载至内存的过程的可信验证,包括以下步骤:在应用程序被载入到内存之前,利用安全增强模块获取为应用程序创建进程而进行的系统调用。此时应用程序暂时无法被载入内存,需要通过度量模块对应用程序被载入内存的过程进行动态可信验证。由于该过程涉及四个要素,即主体要素、客体要素、操作要素和环境要素,由于环境要素在构建可信运行环境的过程中已经得到验证,因此只需要对另外三个要素进行动态可信验证即可。此时,主体要素为用户,客体要素为应用程序本身(存储在磁盘中),操作要素为用户执行应用程序。
利用度量模块以及判定模块,通过比对用户身份完整性度量值与可信基准库中保存的用户身份完整性基准值是否一致,来判断用户身份的可信性;通过比对应用程序完整性度量值与可信基准库中保存的应用程序完整性基准值是否一致,来判断应用程序的可信性;通过比对策略文件完整性度量值与可信基准库中保存的策略文件完整性基准值是否一致,来判断策略文件的可信性。
进一步地,当上述三个要素的度量值与基准值一致时,进而还利用上述判定模块,通过比对该操作与策略文件中的策略规则是否匹配,来判断操作的完整性。
如果上述三个要素的完整性全部通过动态可信验证,且该操作与策略文件中的策略规则是匹配的,则允许应用程序被载入内存的行为发生。只要其中任意一个的完整性未通过动态可信验证,就不允许应用程序被载入内存的行为发生。
进一步地,在应用程序被载入到内存之后的整个运行过程中,由应用程序生成的进程会访问资源,利用安全增强模块中的强制访问控制模块,截获因主体进程访问客体资源而进行的系统调用。此时,主体进程暂时无法访问客体资源,需要对主体进程访问客体资源的过程进行动态可信验证。
这一过程同样涉及上述四个要素,同理,由于环境要素在构建可信运行环境的过程中已经得到验证,因此只需要对另外三个要素进行动态可信验证即可。此时,主体要素是由应用程序生成的进程(存储在内存中),客体要素是由应用程序生成的进程所要访问的资源,操作要素是主体进程访问客体资源。
利用度量模块以及判断模块,通过比对进程完整性度量值与可信基准库中保存的进程完整性基准值是否一致,来判断进程的可信性;通过比对客体资源完整性度量值与可信基准库中保存的客体资源完整性基准值是否一致,来判断客体资源的可信性;通过比对策略文件完整性度量值与可信基准库中保存的策略文件完整性基准值是否一致,来判断策略文件的可信性,进而通过比对该操作与策略文件中的策略规则是否匹配,来判断操作的完整性。
如果上述三个要素的完整性全部通过动态可信验证,则允许主体进程访问客体资源的行为发生;只要其中任意一个的完整性未通过动态可信验证,就不允许主体进程访问客体资源的行为发生。
综上所述,本发明实施例提供的应用程序动态可信验证方法,在不修改应用程序本身的前提下,能够通过完整性度量机制、强制访问控制机制对应用程序从磁盘被加载到内存的过程、应用程序被加载到内存后的整个运行过程进行动态可信验证。
本发明实施例还提供一种应用程序动态可信验证系统,如图7所示,包括但不限于:运行环境构建模块1、运行环境存储模块2以及动态可信验证模块3,其中运行环境构建模块1用于为应用程序构建可信运行环境;运行环境存储模块2用于存储可信运行环境的参数;动态可信验证模块3用于基于可信运行环境的参数,在强制访问控制状态,对应用程序进行动态可信验证。
具体地,运行环境构建模块1主要用于构建用于验证四要素的完整性的基准文件,包括策略文件以及与主体要素、客体要素、操作要素和环境要素相关的用户身份完整性基准值、应用程序完整性基准值、策略文件完整性基准值、进程完整性基准值、客体资源完整性基准值等。
上述创建的基准值可以预先存储在可信基准库中,该可信基准库设置于运行环境存储模块。
进一步地,动态可信验证模块主要包括安全增强模块,具体可以由强制访问模块、判定模块以及度量模块组成。
本发明实施例提供的应用程序动态可信验证系统在实际运行的过程中主要用于执行上述各实施例在所述的应用程序动态可信验证方法,在此不作赘述。
本发明实施例提供的应用程序动态可信验证系统,在不修改应用程序本身的前提下,能够通过完整性度量机制、强制访问控制机制对应用程序从磁盘被加载到内存的过程、应用程序被加载到内存后的整个运行过程进行动态可信验证。
图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如下步骤:为应用程序构建可信运行环境;在强制访问控制状态,基于可信运行环境对应用程序进行动态可信验证。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括以下步骤:为应用程序构建可信运行环境;在强制访问控制状态,基于可信运行环境对应用程序进行动态可信验证。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种应用程序动态可信验证方法,其特征在于,包括:
为应用程序构建可信运行环境;
在强制访问控制状态,基于所述可信运行环境对所述应用程序进行动态可信验证。
2.根据权利要求1所述的应用程序动态可信验证方法,其特征在于,所述为应用程序构建可信运行环境,包括:操作系统可信启动、构建策略文件以及构建可信基准库。
3.根据权利要求2所述的应用程序动态可信验证方法,其特征在于,
所述操作系统可信启动包括:自计算机主机上电开始,依次加载并执行BIOS、Boot、Loader、OS Kernel,并在加载的同时进行动态可信验证;
所述构建策略文件包括:在训练过程中,构建一个初始策略文件;执行应用程序拥有的全部操作要素;获取日志文件中的拒绝信息,并将所述拒绝信息转化为策略规则;将所述策略规则加入至所述初始策略文件,获取所述策略文件;
所述构建可信基准库包括:分别获取四要素的完整性基准值,并将所述完整性基准值保存至基准库中,构建成所述可信基准库。
4.根据权利要求3所述的应用程序动态可信验证方法,其特征在于,所述四要素包括:主体要素、客体要素、操作要素和环境要素。
5.根据权利要求4所述的应用程序动态可信验证方法,其特征在于,
所述操作要素包括主体要素对客体要素的所有访问行为;
所述环境要素包括操作系统可信启动、用户、所述应用程序、由所述应用程序生成的进程、由所述应用程序生成的进程所要访问的资源、策略文件、可信基准库;
在所述应用程序从磁盘被加载到内存的过程中,所述主体要素为执行所述应用程序的用户;所述客体要素为所述应用程序;
在所述应用程序被加载到内存后的整个运行过程中,所述主体要素为所述由应用程序所生成的进程;所述客体要素为由所述应用程序所生成的进程所要访问的资源。
6.根据权利要求5所述的应用程序动态可信验证方法,其特征在于,所述在强制访问控制状态,对所述应用程序进行动态可信验证,包括:
基于可信基准库、策略文件和安全增强模块,验证四要素的完整性。
7.根据权利要求6所述的应用程序动态可信验证方法,其特征在于,所述基于可信基准库、策略文件和安全增强模块,验证四要素的完整性,具体包括:
在所述应用程序被载入到内存之前,获取为所述应用程序创建进程而进行的第一系统调用,根据所述第一系统调用确定并对所述应用程序被载入内存过程中的四要素中的主体要素、客体要素和操作要素的完整性进行动态可信性验证;
若所述动态可信性验证通过,则将所述应用程序载入内存;
在所述应用程序被载入内存后,获取所述主体要素访问客体要素的第二系统调用,根据所述第二系统调用确定并对所述应用程序被载入内存后的四要素中的主体要素、客体要素和操作要素的完整性进行动态可信性验证;
若所述动态可信性验证通过,则允许所述主体要素访问所述客体要素。
8.一种应用程序动态可信验证系统,其特征在于,包括运行环境构建模块、运行环境存储模块以及动态可信验证模块,其中:
所述运行环境构建模块,用于为应用程序构建可信运行环境;
所述运行环境存储模块,用于存储所述可信运行环境的参数;
所述动态可信验证模块,用于基于所述可信运行环境的参数,在强制访问控制状态,对所述应用程序进行动态可信验证。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的应用程序动态可信验证方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述的应用程序动态可信验证方法的步骤。
CN201911341086.3A 2019-12-23 2019-12-23 一种应用程序动态可信验证方法及系统 Active CN111159691B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911341086.3A CN111159691B (zh) 2019-12-23 2019-12-23 一种应用程序动态可信验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911341086.3A CN111159691B (zh) 2019-12-23 2019-12-23 一种应用程序动态可信验证方法及系统

Publications (2)

Publication Number Publication Date
CN111159691A true CN111159691A (zh) 2020-05-15
CN111159691B CN111159691B (zh) 2022-03-11

Family

ID=70558046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911341086.3A Active CN111159691B (zh) 2019-12-23 2019-12-23 一种应用程序动态可信验证方法及系统

Country Status (1)

Country Link
CN (1) CN111159691B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112099909A (zh) * 2020-08-27 2020-12-18 海光信息技术有限公司 一种虚拟机内存度量方法、装置、处理器芯片及系统
CN112162782A (zh) * 2020-09-24 2021-01-01 北京八分量信息科技有限公司 基于可信根动态度量确定应用程序可信状态的方法、装置及相关产品
CN112214759A (zh) * 2020-10-21 2021-01-12 北京八分量信息科技有限公司 基于可信根度量进行应用程序的行为权限分配方法、装置及相关产品
CN112231726A (zh) * 2020-10-16 2021-01-15 中国南方电网有限责任公司 访问控制方法、装置、计算机设备及可读存储介质
CN113505376A (zh) * 2021-09-09 2021-10-15 北京全息智信科技有限公司 一种应用程序运行环境的控制方法、装置及电子设备
CN114462041A (zh) * 2021-12-24 2022-05-10 麒麟软件有限公司 基于双体系架构的动态可信访问控制方法及系统
CN115640567A (zh) * 2022-09-28 2023-01-24 北京瑞莱智慧科技有限公司 Tee完整性认证方法、装置、系统及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101093531A (zh) * 2007-04-30 2007-12-26 李宏强 一种提高计算机软件安全的方法
CN101650764A (zh) * 2009-09-04 2010-02-17 瑞达信息安全产业股份有限公司 一种可信计算密码平台及其实现方法
CN109669734A (zh) * 2017-10-13 2019-04-23 百度(美国)有限责任公司 用于启动设备的方法和装置
CN109740353A (zh) * 2019-01-03 2019-05-10 北京工业大学 一种服务器的bmc固件的可信启动方法
CN109766702A (zh) * 2019-01-11 2019-05-17 北京工业大学 基于虚拟机状态数据的全过程可信启动检验方法
CN109918916A (zh) * 2019-03-14 2019-06-21 沈昌祥 一种双体系可信计算系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101093531A (zh) * 2007-04-30 2007-12-26 李宏强 一种提高计算机软件安全的方法
CN101650764A (zh) * 2009-09-04 2010-02-17 瑞达信息安全产业股份有限公司 一种可信计算密码平台及其实现方法
CN109669734A (zh) * 2017-10-13 2019-04-23 百度(美国)有限责任公司 用于启动设备的方法和装置
CN109740353A (zh) * 2019-01-03 2019-05-10 北京工业大学 一种服务器的bmc固件的可信启动方法
CN109766702A (zh) * 2019-01-11 2019-05-17 北京工业大学 基于虚拟机状态数据的全过程可信启动检验方法
CN109918916A (zh) * 2019-03-14 2019-06-21 沈昌祥 一种双体系可信计算系统及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HAOXIANG HUANG等: "《Mining Web Access Sequence with Improved Apriori Algorithm》", 《2017 IEEE INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE AND ENGINEERING (CSE) AND IEEE INTERNATIONAL CONFERENCE ON EMBEDDED AND UBIQUITOUS COMPUTING (EUC)》 *
JIANBIAO ZHANG等: "《Process active dynamic measurement method for Windows environment》", 《JOURNAL OF SHANDONG UNIVERSITY(NATURAL SCIENCE)》 *
魏鹏远: "《基于可信的手机安全平台研究与实现》", 《万方数据》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112099909A (zh) * 2020-08-27 2020-12-18 海光信息技术有限公司 一种虚拟机内存度量方法、装置、处理器芯片及系统
CN112099909B (zh) * 2020-08-27 2021-06-11 海光信息技术股份有限公司 一种虚拟机内存度量方法、装置、处理器芯片及系统
CN112162782A (zh) * 2020-09-24 2021-01-01 北京八分量信息科技有限公司 基于可信根动态度量确定应用程序可信状态的方法、装置及相关产品
CN112162782B (zh) * 2020-09-24 2023-11-21 北京八分量信息科技有限公司 基于可信根动态度量确定应用程序可信状态的方法、装置及相关产品
CN112231726A (zh) * 2020-10-16 2021-01-15 中国南方电网有限责任公司 访问控制方法、装置、计算机设备及可读存储介质
CN112231726B (zh) * 2020-10-16 2022-09-27 中国南方电网有限责任公司 基于可信验证的访问控制方法、装置和计算机设备
CN112214759A (zh) * 2020-10-21 2021-01-12 北京八分量信息科技有限公司 基于可信根度量进行应用程序的行为权限分配方法、装置及相关产品
CN113505376A (zh) * 2021-09-09 2021-10-15 北京全息智信科技有限公司 一种应用程序运行环境的控制方法、装置及电子设备
CN114462041A (zh) * 2021-12-24 2022-05-10 麒麟软件有限公司 基于双体系架构的动态可信访问控制方法及系统
CN115640567A (zh) * 2022-09-28 2023-01-24 北京瑞莱智慧科技有限公司 Tee完整性认证方法、装置、系统及存储介质
CN115640567B (zh) * 2022-09-28 2024-02-27 北京瑞莱智慧科技有限公司 Tee完整性认证方法、装置、系统及存储介质

Also Published As

Publication number Publication date
CN111159691B (zh) 2022-03-11

Similar Documents

Publication Publication Date Title
CN111159691B (zh) 一种应用程序动态可信验证方法及系统
US20200274898A1 (en) Method And Device For Defending Against Denial Of Service Attacks
US11757924B2 (en) Third-party application risk assessment in an authorization service
US9087188B2 (en) Providing authenticated anti-virus agents a direct access to scan memory
CN106133743B (zh) 用于优化预安装应用程序的扫描的系统和方法
Mai et al. Verifying security invariants in ExpressOS
US11086983B2 (en) System and method for authenticating safe software
WO2019072008A1 (zh) 小程序的安全扫描方法、装置以及电子设备
CN104298913B (zh) 一种通用的智能终端安全启动方法
KR20200052957A (ko) 보안 제어 방법 및 컴퓨터 시스템
CN109558207B (zh) 在虚拟机中形成用于进行文件的防病毒扫描的日志的系统和方法
Shewale et al. Analysis of android vulnerabilities and modern exploitation techniques
JP2018129019A (ja) 仮想マシンにおける悪意のあるファイルを分析するシステム及び方法
US10019577B2 (en) Hardware hardened advanced threat protection
CN103347027A (zh) 一种可信网络连接方法和系统
CN111177703B (zh) 操作系统数据完整性的确定方法及装置
CN106951785B (zh) 一种java虚拟机及其中的信任链延伸方法
US9842018B2 (en) Method of verifying integrity of program using hash
US11941127B2 (en) Firmware password management
US11263309B2 (en) Block device signature-based integrity protection for containerized applications
CN114662090A (zh) 文件处理方法、装置、存储介质及系统
CN113836529A (zh) 进程检测方法、装置、存储介质以及计算机设备
Zhou et al. A novel trusted software base for commercial android devices using secure tf card
MacLeod Escaping from a virtualised environment: An evaluation of container breakout techniques
KR101439207B1 (ko) 해킹 프로세스 감지 방법 및 장치

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
GR01 Patent grant
GR01 Patent grant