CN113505376B - 一种应用程序运行环境的控制方法、装置及电子设备 - Google Patents
一种应用程序运行环境的控制方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113505376B CN113505376B CN202111052996.7A CN202111052996A CN113505376B CN 113505376 B CN113505376 B CN 113505376B CN 202111052996 A CN202111052996 A CN 202111052996A CN 113505376 B CN113505376 B CN 113505376B
- Authority
- CN
- China
- Prior art keywords
- controlled environment
- operating system
- system kernel
- application program
- requirements
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
Abstract
本发明实施例提供了一种应用程序运行环境的控制方法、装置及电子设备,基于(一个或多个)安全管理员签名的、为敏感应用程序提供的受控运行环境授权(env.authz),通过由加固的操作系统内核在该敏感应用程序启动时按该受控运行环境授权的要求暂时终止不被授权的硬件设备、应用程序或操作系统内核模块的运行,并在该敏感应用程序终止时按该受控运行环境授权的要求清除该敏感应用在内存和存储中暂存的敏感信息然后恢复其启动时暂时终止的不被授权的硬件设备、应用程序或操作系统内核模块的运行的方式,为敏感应用程序的运行提供受控的安全运行环境,以保护其运行过程不被打扰、其敏感数据在运行过程中不被非法增删改查等。
Description
技术领域
本发明涉及信息安全技术领域,尤其是通过加固内核为敏感应用程序提供受控的安全运行环境这一技术领域。
背景技术
一个应用程序在运行过程中,其宿主计算设备连接的硬件设备或操作系统管理员(或其他超级账户)能够通过其他应用程序或内核模块增删改查其在内存或存储(比如硬盘)中暂存的敏感信息,甚至干扰该应用程序的运行,比如杀死或终止该应用程序的运行。提供受控的安全运行环境,以保护敏感应用程序的运行,对实现信息安全至关重要。
发明内容
为了解决上述技术问题中的至少一个,本发明提供了一种应用程序运行环境的控制方法、装置、电子设备和可读存储介质。
本发明的第一方面,提供了一种应用程序运行环境的控制方法,包括:
操作系统内核检测到受控环境授权文件;
操作系统内核获取所述受控环境授权文件,解析所述受控环境授权文件包括的受控环境要求;
所述操作系统内核根据所述受控环境要求建立受控环境,以及,记录受控环境信息。
根据本发明实施例,方法还包括:
所述操作系统内核根据所述受控环境信息撤销所述受控环境。
其中,操作系统的加固内核通过预先配置的受控环境授权文件建立相应的受控环境,并且适时撤销已建立的受控环境,从而实现了操作系统内核层面的受控的、安全的程序运行环境。
根据本发明实施例,所述操作系统内核检测到受控环境授权文件之前,还包括:
所述操作系统内核拦截应用程序的启动;
其中,所述受控环境授权文件是预先为所述应用程序配置的受控环境授权文件;
所述操作系统内核根据所述受控环境要求建立受控环境之后,还包括:
所述操作系统内核启动所述应用程序。
根据本发明实施例,所述操作系统内核根据所述受控环境信息撤销所述受控环境之前,还包括:
所述操作系统内核拦截所述应用程序的终止;
所述操作系统内核检测到所述受控环境信息;
还包括:
所述操作系统内核终止所述应用程序。
其中,受控环境的建立由应用程序的启动触发,受控环境的撤销由应用程序的终止触发,从而建立应用程序运行期间的临时受控环境。
根据本发明实施例,方法还包括:
所述操作系统内核接收所述应用程序的第一请求;
所述操作系统内核根据所述第一请求向所述应用程序返回受控环境信息。
根据本发明实施例,方法还包括:
所述操作系统内核接收所述应用程序的第二请求;
所述操作系统内核根据所述第二请求撤回所述受控环境的部分或者全部安全措施,或者,恢复撤回的所述受控环境的部分或者全部安全措施。
操作系统内核通过特定接口向应用程序提供受控环境信息查询或操作服务,进而应用程序可以发起主动安全措施,灵活调整受控环境。
根据本发明实施例,所述操作系统内核检测到所述受控环境授权文件之后,还包括:
所述操作系统内核根据预设的授权策略验证所述受控环境授权文件的一个或多个数字签名且验证通过,和/或,根据预设的授权策略验证所述受控环境授权文件的授权是否足够且验证通过。
其中,操作系统内核验证受控环境授权文件的一个或多个数字签名且验证通过,用于确认数字签名的真实性;操作系统内核验证受控环境授权文件的授权是否足够且验证通过,用于验证签名授权策略是否满足(例如,验证通过的数字签名的数量是否足够,验证通过的数字签名对应的管理员的权限是否足够等等),由于受控环境授权文件经过数字签名处理,无法伪造或者篡改,使得ROOT账户被限制而无法作恶。
根据本发明实施例,所述操作系统内核记录受控环境信息,包括:
所述操作系统内核将受控环境信息附着在为所述应用程序创建的对象上;
所述操作系统内核根据所述受控环境信息撤销所述受控环境之前,还包括:
所述操作系统内核检测到为所述应用程序创建的对象附着有所述受控环境信息。
由于受控环境信息被附着在为应用程序创建的对象上,便于操作系统内核检测和处理受控环境信息,特别是在应用程序终止时,能够及时发现应用程序配置了受控环境,进而及时撤销受控环境。
根据本发明实施例,操作系统内核检测到受控环境授权文件之前,还包括:
所述操作系统内核接收第一指令;所述第一指令用于指示建立受控环境;
所述操作系统内核根据所述受控环境信息撤销所述受控环境之前,还包括:
所述操作系统内核接收第二指令;所述第二指令用于指示撤销所述受控环境。
区别于前述实施例中,受控环境的建立由应用程序的启动触发,受控环境的撤销由应用程序的终止触发;受控环境的建立和撤销还可以由指令直接触发,实现了在操作系统内核建立任意期限的受控环境。
根据本发明实施例,所述受控环境要求包括:硬件要求;
所述操作系统内核根据所述受控环境要求建立受控环境,包括:
所述操作系统内核终止所述硬件要求包括的硬件设备,和/或,终止对所述硬件要求包括的硬件设备的支持;
所述操作系统内核根据所述受控环境信息撤销所述受控环境,包括:
所述操作系统内核根据所述受控环境信息恢复对所述硬件要求包括的硬件设备的支持。
根据本发明实施例,所述受控环境要求包括:共存运行的程序;
所述操作系统内核根据所述受控环境要求建立受控环境,包括:
所述操作系统内核检测所述共存运行的程序,如果所述共存运行的程序当前未运行,启动所述共存运行的程序。
其中,共存运行的程序包括应用程序和/或驱动程序。
根据本发明实施例,所述受控环境要求包括:不能运行的程序;
所述操作系统内核根据所述受控环境要求建立受控环境,包括:
所述操作系统内核终止所述不能运行的程序,和/或,终止对所述不能运行的程序的支持;
所述操作系统内核根据所述受控环境信息撤销所述受控环境,包括:
所述操作系统内核根据所述受控环境信息恢复对所述不能运行的程序的支持。
其中,不能运行的程序包括应用程序和/或驱动程序。
根据本发明实施例,所述受控环境要求包括:内核模块要求;
所述操作系统内核根据所述受控环境要求建立受控环境,包括:
所述操作系统内核终止所述内核模块要求包括的内核模块,和/或,终止对所述内核模块要求包括的内核模块的支持;
所述操作系统内核根据所述受控环境信息撤销所述受控环境,包括:
所述操作系统内核根据所述受控环境信息恢复对所述内核模块要求包括的内核模块的支持。
根据本发明实施例,所述受控环境要求包括:网络接口要求;
所述操作系统内核根据所述受控环境要求建立受控环境,包括:
所述操作系统内核终止所述网络接口要求包括的网络接口,和/或,终止对所述网络接口要求包括的网络接口的支持;
所述操作系统内核根据所述受控环境信息撤销所述受控环境,包括:
所述操作系统内核根据所述受控环境信息恢复对所述网络接口要求包括的网络接口的支持。
根据本发明实施例,所述受控环境要求包括:应用程序运行时需要保护的第一内存或第一存储空间;
所述操作系统内核根据所述受控环境要求建立受控环境,包括:
所述操作系统内核触发所述第一内存或所述第一存储空间的保护机制;
所述操作系统内核根据所述受控环境信息撤销所述受控环境,包括:
所述操作系统内核根据所述受控环境信息撤销所述第一内存或所述第一存储空间的保护机制。
根据本发明实施例,所述受控环境要求包括:在应用程序运行结束时需要清除的第二内存或第二存储空间;
所述操作系统内核根据所述受控环境信息撤销所述受控环境之前,还包括:
所述操作系统内核在所述应用程序运行结束时,清除所述第二内存或所述第二存储空间。
根据本发明实施例,所述受控环境要求包括:第三内存或第三存储空间的加密要求;
所述操作系统内核根据所述受控环境要求建立受控环境,包括:
所述操作系统内核使用密钥加密所述第三内存或所述第三存储空间;
所述操作系统内核根据所述受控环境信息撤销所述受控环境,包括:
所述操作系统内核根据所述受控环境信息撤销对所述第三内存或所述第三存储空间的加密。
本发明的第二方面,提供了一种应用程序运行环境的控制装置,包括:
受控环境授权文件检测模块,用于检测受控环境授权文件;
受控环境授权文件解析模块,用于获取所述受控环境授权文件,解析所述受控环境授权文件包括的受控环境要求;
受控环境建立模块,用于根据所述受控环境要求建立受控环境,以及,记录受控环境信息。
根据本发明实施例,装置还包括:
受控环境撤销模块,用于根据所述受控环境信息撤销所述受控环境。
根据本发明实施例,装置还包括:
应用程序拦截模块,用于拦截应用程序的启动,和/或拦截所述应用程序的终止;其中,所述受控环境授权文件是预先为所述应用程序配置的受控环境授权文件;
应用程序放行模块,用于启动所述应用程序,和/或终止所述应用程序;
受控环境信息检测模块,用于检测所述受控环境信息。
根据本发明实施例,装置还包括:
受控环境信息查询模块,用于接收所述应用程序的第一请求;
根据所述第一请求向所述应用程序返回受控环境信息。
根据本发明实施例,装置还包括:
受控环境主动调节模块,用于接收所述应用程序的第二请求;
根据所述第二请求撤回所述受控环境的部分或者全部安全措施,或者,恢复撤回的所述受控环境的部分或者全部安全措施。
根据本发明实施例,装置还包括:
受控环境授权文件验证模块,用于根据预设的授权策略验证所述受控环境授权文件的一个或多个数字签名,和/或,根据预设的授权策略验证所述受控环境授权文件的授权是否足够。
根据本发明实施例,所述受控环境建立模块用于记录受控环境信息时,具体用于:
将受控环境信息附着在为所述应用程序创建的对象上;
所述受控环境信息检测模块具体用于:
检测为所述应用程序创建的对象附着的所述受控环境信息。
根据本发明实施例,装置还包括指令处理模块,用于接收第一指令;所述第一指令用于指示建立受控环境;以及,接收第二指令;所述第二指令用于指示撤销所述受控环境。
根据本发明实施例,所述受控环境要求包括:硬件要求;
受控环境建立模块用于根据所述受控环境要求建立受控环境时,具体用于:终止所述硬件要求包括的硬件设备,和/或,终止对所述硬件要求包括的硬件设备的支持;
所述受控环境撤销模块具体用于:根据所述受控环境信息恢复对所述硬件要求包括的硬件设备的支持。
根据本发明实施例,所述受控环境要求包括:共存运行的程序;
受控环境建立模块用于根据所述受控环境要求建立受控环境时,具体用于:
检测所述共存运行的程序,如果所述共存运行的程序当前未运行,启动所述共存运行的程序。
根据本发明实施例,所述受控环境要求包括:不能运行的程序;
所述受控环境建立模块用于根据所述受控环境要求建立受控环境时,具体用于:
所述操作系统内核终止所述不能运行的程序,和/或,终止对所述不能运行的程序的支持;
所述受控环境撤销模块具体用于:根据所述受控环境信息恢复对所述不能运行的程序的支持。
根据本发明实施例,所述受控环境要求包括:内核模块要求;
所述受控环境建立模块用于根据所述受控环境要求建立受控环境时,具体用于:
终止所述内核模块要求包括的内核模块,和/或,终止对所述内核模块要求包括的内核模块的支持;
所述受控环境撤销模块具体用于:根据所述受控环境信息恢复对所述内核模块要求包括的内核模块的支持。
根据本发明实施例,所述受控环境要求包括:网络接口要求;
所述受控环境建立模块用于根据所述受控环境要求建立受控环境时,具体用于:
终止所述网络接口要求包括的网络接口,和/或,终止对所述网络接口要求包括的网络接口的支持;
所述受控环境撤销模块具体用于:根据所述受控环境信息恢复对所述网络接口要求包括的网络接口的支持。
根据本发明实施例,所述受控环境要求包括:应用程序运行时需要保护的第一内存或第一存储空间;
所述受控环境建立模块用于根据所述受控环境要求建立受控环境时,具体用于:
触发所述第一内存或所述第一存储空间的保护机制;
所述受控环境撤销模块具体用于:根据所述受控环境信息撤销所述第一内存或所述第一存储空间的保护机制。
根据本发明实施例,所述受控环境要求包括:在应用程序运行结束时需要清除的第二内存或第二存储空间;
所述受控环境建立模块还用于:在所述应用程序运行结束时,清除所述第二内存或所述第二存储空间。
根据本发明实施例,所述受控环境要求包括:第三内存或第三存储空间的加密要求;
所述受控环境建立模块用于根据所述受控环境要求建立受控环境时,具体用于:
所述操作系统内核使用密钥加密所述第三内存或所述第三存储空间;
所述受控环境撤销模块具体用于:所述操作系统内核根据所述受控环境信息撤销对所述第三内存或所述第三存储空间的加密。
本发明的第三方面,提供了一种电子设备,包括存储器和处理器,所述存储器用于存储计算机指令,其特征在于,所述计算机指令被所述处理器执行以实现第一方面的方法。
本发明的第四方面,提供了一种可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现第一方面的方法。
附图说明
附图示出了本发明的示例性实施方式,并与其说明一起用于解释本发明的原理,其中包括了这些附图以提供对本发明的进一步理解,并且附图包括在本说明书中并构成本说明书的一部分。
图 1是本发明涉及的主要模块示例。
具体实施方式
下面结合附图和实施方式对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施方式仅用于解释相关内容,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分。
需要说明的是,在不冲突的情况下,本发明中的实施方式及实施方式中的特征可以相互组合。下面将参考附图并结合实施方式来详细说明。
本发明实施例基于(一个或多个)安全管理员签名的、为敏感应用程序提供的受控运行环境授权(env.authz),通过由加固的操作系统内核在该敏感应用程序启动时按该受控运行环境授权的要求暂时终止不被授权的硬件设备、应用程序或操作系统内核模块的运行,并在该敏感应用程序终止时按该受控运行环境授权的要求清除该敏感应用在内存和存储中暂存的敏感信息然后恢复其启动时暂时终止的不被授权的硬件设备、应用程序或操作系统内核模块的运行的方式,为敏感应用程序的运行提供受控的安全运行环境,以保护其运行过程不被打扰、其敏感数据在运行过程中不被非法增删改查等。该加固的操作系统内核同时提供接口(系统调用或其他与操作系统内核的交互方式),以供敏感应用程序在运行中主动对其运行环境进行确认并据此采取进一步的安全防护措施。
在一个可选的实施例中,操作系统内核拦截应用程序的启动,随后,检测该应用程序是否具备对应的受控环境授权文件,如果该应用程序是敏感应用程序,则检测到预先为该应用程序配置的受控环境授权文件,操作系统内核解析受控环境授权文件包括的受控环境要求,根据受控环境要求建立受控环境,并在建立的受控环境中启动该应用程序。
在一个可选的实施例中,操作系统内核拦截应用程序的终止,随后,检测该应用程序是否建立了对应的受控环境,以及记录了对应的受控环境信息,如果是,则该应用程序是建立了受控环境的敏感应用程序,应根据受控环境信息撤销受控环境,并在撤销受控环境之前或者之后终止该应用程序。
在一个可选的实施例中,敏感应用程序在运行期间,可以向操作系统内核发送第一请求,从而获取当前的受控环境信息,以及,可以向操作系统内核发送第二请求,基于获取的受控环境信息请求撤回部分或者全部安全措施,或者,恢复撤回的受控环境的部分或者全部安全措施,实现灵活地安全措施管理。
在上述若干实施例中,操作系统内核获取的受控环境要求包括:硬件要求、共存运行的程序、不能运行的程序、内核模块要求、网络接口要求、应用程序运行时需要保护的第一内存或第一存储空间、在应用程序运行结束时需要清除的第二内存或第二存储空间、第三内存或第三存储空间的加密要求中的至少一个。
可选地,操作系统内核解析出的受控环境要求包括硬件要求,操作系统内核根据受控环境要求建立受控环境包括:操作系统内核终止硬件要求包括的硬件设备,和/或,终止对硬件要求包括的硬件设备的支持,例如,操作系统内核在敏感应用程序运行期间,终止对USB端口设备的支持,或者终止对串口设备的支持。随后,操作系统内核适时根据受控环境信息恢复对硬件要求包括的硬件设备的支持,例如,操作系统内核在敏感应用程序运行结束时,恢复对USB端口设备的支持,或者恢复对串口设备的支持。在上述示例中,操作系统内核在敏感应用程序运行期间建立受控环境,然而,操作系统内核亦可被配置为在任意条件下建立受控环境,例如,根据用户指令或者程序指令,建立或者撤销受控环境。在又一实施方式中,操作系统内核始终维持受控环境。
可选地,操作系统内核解析出的受控环境要求包括共存运行的程序,操作系统内核根据受控环境要求建立受控环境包括:操作系统内核检测共存运行的程序,如果共存运行的程序当前未运行,启动共存运行的程序,例如,操作系统内核在敏感程序启动时检测某一安全监控软件是否运行,如果未运行,则启用该安全监控软件,随后,操作系统内核适时根据受控环境信息将计算环境恢复至敏感程序启动前的状态,或者,保留敏感程序运行期间启动的共存运行的程序,例如,停用该安全监控软件。在上述示例中,操作系统内核在敏感应用程序运行期间建立受控环境,然而,操作系统内核亦可被配置为在任意条件下建立受控环境,例如,根据用户指令或者程序指令,建立或者撤销受控环境。在又一实施方式中,操作系统内核始终维持受控环境。
可选地,操作系统内核解析出的受控环境要求包括不能运行的程序,操作系统内核根据受控环境要求建立受控环境包括:操作系统内核终止不能运行的程序,和/或,终止对不能运行的程序的支持,例如,操作系统内核在敏感程序启动时检测预先配置的程序黑名单中的程序是否运行,程序黑名单可以配置为包括若干可能给计算环境带来风险的程序,如果存在此类程序,则终止此类程序或者终止对此类程序的支持。随后,操作系统内核适时根据受控环境信息恢复对不能运行的程序的支持,例如,操作系统内核在敏感应用程序运行结束时,恢复对不能运行的程序的支持。在上述示例中,操作系统内核在敏感应用程序运行期间建立受控环境,然而,操作系统内核亦可被配置为在任意条件下建立受控环境,例如,根据用户指令或者程序指令,建立或者撤销受控环境。在又一实施方式中,操作系统内核始终维持受控环境。
可选地,操作系统内核解析出的受控环境要求包括内核模块要求,操作系统内核根据受控环境要求建立受控环境包括:操作系统内核终止内核模块要求包括的内核模块,和/或,终止对内核模块要求包括的内核模块的支持,具体的内核模块要求预先配置在受控环境授权文件中,例如,当敏感应用程序启动时,终止内核模块要求包括的内核模块。随后,操作系统内核适时根据受控环境信息将计算环境恢复至敏感程序启动前的状态,例如,当敏感应用程序终止时,恢复对内核模块要求包括的内核模块的支持,或者,恢复内核模块要求包括的内核模块的运行。在上述示例中,操作系统内核在敏感应用程序运行期间建立受控环境,然而,操作系统内核亦可被配置为在任意条件下建立受控环境,例如,根据用户指令或者程序指令,建立或者撤销受控环境。在又一实施方式中,操作系统内核始终维持受控环境。
可选地,操作系统内核解析出的受控环境要求包括网络接口要求,操作系统内核根据受控环境要求建立受控环境包括:操作系统内核终止网络接口要求包括的网络接口,和/或,终止对网络接口要求包括的网络接口的支持,例如,在敏感应用程序启动时,断开公网网络连接。随后,操作系统内核适时根据受控环境信息撤销受控环境,例如,在敏感应用程序终止时恢复公网网络连接。在上述示例中,操作系统内核在敏感应用程序运行期间建立受控环境,然而,操作系统内核亦可被配置为在任意条件下建立受控环境,例如,根据用户指令或者程序指令,建立或者撤销受控环境。在又一实施方式中,操作系统内核始终维持受控环境。
可选地,操作系统内核解析出的受控环境要求包括应用程序运行时需要保护的第一内存或第一存储空间;操作系统内核根据受控环境要求建立受控环境,包括:操作系统内核触发第一内存或第一存储空间的保护机制;例如,在敏感应用程序启动时,对敏感应用程序读写的第一内存或第一存储空间启动保护机制,包括但不限于拒绝其它应用程序的访问,拒绝用户的访问等。随后,操作系统内核适时根据受控环境信息撤销受控环境,例如,在敏感程序结束运行时,撤销第一内存或所述第一存储空间的保护机制。在上述示例中,操作系统内核在敏感应用程序运行期间建立受控环境,然而,操作系统内核亦可被配置为在任意条件下建立受控环境,例如,根据用户指令或者程序指令,建立或者撤销受控环境。在又一实施方式中,操作系统内核始终维持受控环境,即始终对第一内存或第一存储空间维持保护机制。
可选地,操作系统内核解析出的受控环境要求包括在应用程序运行结束时需要清除的第二内存或第二存储空间,操作系统内核在撤销受控环境时清除第二内存或第二存储空间,例如,操作系统内核在敏感应用程序结束时,清除敏感应用程序运行期间使用的第二内存或第二存储空间。
可选地,受控环境要求包括:第三内存或第三存储空间的加密要求;操作系统内核根据受控环境要求建立受控环境包括:操作系统内核使用密钥加密第三内存或第三存储空间,例如,操作系统内核在敏感应用程序启动时,对敏感应用程序使用的第三内存或第三存储空间作加密处理。随后,操作系统内核适时根据受控环境信息撤销对第三内存或第三存储空间的加密,例如,操作系统内核在敏感应用程序终止时,撤销对敏感应用程序使用的第三内存或第三存储空间作的加密操作。在上述示例中,操作系统内核在敏感应用程序运行期间建立受控环境,然而,操作系统内核亦可被配置为在任意条件下建立受控环境,例如,根据用户指令或者程序指令,建立或者撤销受控环境。在又一实施方式中,操作系统内核始终维持受控环境,即始终对第三内存或第三存储空间维持加密状态。
操作系统内核在编译时植入(或由安全管理员控制的UEFI/BIOS在启动时以UEFI/BIOS参数等方式传入)一个或多个安全管理员的密码学公钥(或包含安全管理员公钥的安全管理员的X.509证书列表、或签名其X.509证书的CA证书列表),以及签名授权策略(比如所有安全管理员都签名、安全管理员的大多数签名等)。在安装敏感应用程序时,操作系统超级账户配置安全管理员设定并签名的env.authz,以排除操作系统管理员(或其他超级账户)非法创建或篡改该权限的可能。
因为受控运行环境的授权是由一个或多个安全管理员控制、受控环境的建立和撤销是由本发明的加固内核实施,所以哪怕是操作系统超级账户(root)也被限制、难以作恶。同时,未经授权的应用程序也不能非法的要求操作系统内核建立受控运行环境以干扰其他应用程序的合法运行。
图1所示是本发明实施例提供的整体框架架构。操作系统账户(图块101)启动或终止敏感应用程序进程(图块100)。跟所有应用程序进程一样,其启动和(主动或被动)终止时,操作系统内核可以进行拦截或响应。比如,在Linux操作系统上,应用程序的启动通常是通过 fork/exec等系统调用,应用程序的终止通常是通过exit、kill等系统调用。
一个敏感应用程序,其设计者或运营者决定其运行时的受控环境要求(以白名单或/和黑名单的方式),比如其运行时的内核版本、硬件要求、共存运行或/和不能运行的其他应用程序(包括其运行的账户)和内核模块、网络接入(incoming)/拨出(outgoing)连接要求(比如TCP端口及其应用程序)、内存加密要求,运行时需要保护或/和在运行结束时需要清除的内存或存储等。
该敏感应用程序的运营者将如上执行受控环境要求计入受控环境授权(env.authz),并按运行内核的授权策略要求由一个或多个安全管理员对此进行签名。签名之后的受控环境授权,由操作系统管理员配置到运行的操作系统环境。
在该敏感应用程序启动时,操作系统内核(图块102)中的进程启动拦截模块(图块103)检查该应用程序和其运行的操作系统账户对应的安全管理员签名的受控环境授权(env.authz)是否存在。如果存在,则先按授权策略验证其签名的真实性以及授权是否足够。如果授权真实且足够,进程启动拦截模块(图块103)按该受控环境授权的要求确认当前运行的内核版本,暂时终止在该敏感应用运行时不能运行或不能支持的设备、驱动程序、内核模块、应用程序、网络接口(入和出)等。如果该敏感应用程序的内存或/和存储需要加密,则用一次性密钥对其进行加密处理。如果该敏感应用程序要求其内存或存储(比如文件系统)需要拒绝其他应用程序或内核模块访问,则依次进行处理。然后,将这些信息记录在对应该敏感应用程序进程的受控环境信息(图块106)然后启动该敏感应用程序进程。受控环境信息的记录可以附着在操作系统内核为该敏感应用程序进程创建的对象上(比如Linux内核的struct task_struct)。
在该敏感应用程序进程(主动或被动)终止时,操作系统内核(图块102)中的进程终止拦截模块(图块107)检查其是否有对应的受控环境信息(图块106)。如果受控环境信息存在,则按其要求以不可恢复的方式(比如用随机数覆写很多遍)清除内存或存储中的敏感信息(如果有此要求的话),然后逐个恢复在该敏感应用程序进程启动时暂时终止或暂时不能支持的设备、驱动程序、内核模块、应用程序、网络接口(入和出)等。然后清除该敏感应用程序进程对应的受控环境信息。
该敏感应用程序进程在运行中,可以通过该加固的操作系统内核(图块102)提供的受控环境查询或操作接口(为行文方便,将其命名为runtime_env)。该runtime_env接口,可以查询该敏感应用程序进程当前的受控环境信息从而实行主动的安全措施,或者要求操作系统内核放松或重新施加安全管理员签名的环境授权中的一项或多项受控安全措施。
基于本发明实施例的加固内核,能够基于敏感应用的要求,为其提供受控的安全运行环境,确保其运行过程不被恶意打扰、其敏感数据在运行过程中不被非法增删改查、其敏感数据在运行结束时能够及时清除等。
应当理解,这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被该机器执行时,该机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的该程序代码中的指令,执行本发明的各种方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
本领域那些技术人员应当理解在本文所发明的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中发明的所有特征以及如此发明的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中发明的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的发明是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (16)
1.一种应用程序运行环境的控制方法,其特征在于,包括:
操作系统内核拦截应用程序的启动;
操作系统内核检测到受控环境授权文件;其中,所述受控环境授权文件是预先为所述应用程序配置的受控环境授权文件;
操作系统内核获取所述受控环境授权文件,解析所述受控环境授权文件包括的受控环境要求;所述受控环境要求包括以下内容的至少一项:硬件要求、共存运行的程序、不能运行的程序、内核模块要求、网络接口要求、应用程序运行时需要保护的第一内存或第一存储空间、或在应用程序运行结束时需要清除的第二内存或第二存储空间、或第三内存或第三存储空间的加密要求;
所述操作系统内核根据所述受控环境要求建立安全的受控环境,以及,记录受控环境信息;
所述操作系统内核在所述受控环境中启动所述应用程序;
以及,
所述操作系统内核拦截所述应用程序的终止;
所述操作系统内核检测到所述受控环境信息;
所述操作系统内核在终止所述应用程序时,根据所述受控环境信息撤销所述受控环境。
2.如权利要求1所述的方法,其特征在于,还包括:
所述操作系统内核接收所述应用程序的第一请求;
所述操作系统内核根据所述第一请求向所述应用程序返回受控环境信息。
3.如权利要求2所述的方法,其特征在于,还包括:
所述操作系统内核接收所述应用程序的第二请求;
所述操作系统内核根据所述第二请求撤回所述受控环境的部分或者全部安全措施,或者,恢复撤回的所述受控环境的部分或者全部安全措施。
4.如权利要求1所述的方法,其特征在于,
所述操作系统内核记录受控环境信息,包括:
所述操作系统内核将受控环境信息附着在为所述应用程序创建的对象上;
所述操作系统内核检测到所述受控环境信息,包括:
所述操作系统内核检测到为所述应用程序创建的对象附着有所述受控环境信息。
5.如权利要求1所述的方法,其特征在于,所述操作系统内核检测到受控环境授权文件之后,还包括:
所述操作系统内核根据预设的授权策略验证所述受控环境授权文件的一个或多个数字签名且验证通过,和/或,根据预设的授权策略验证所述受控环境授权文件的授权是否足够且验证通过。
6.如权利要求1-5的任一项所述的方法,其特征在于,
所述受控环境要求包括:硬件要求;
所述操作系统内核根据所述受控环境要求建立安全的受控环境,包括:
所述操作系统内核终止所述硬件要求包括的硬件设备,和/或,终止对所述硬件要求包括的硬件设备的支持;
所述操作系统内核根据所述受控环境信息撤销所述受控环境,包括:
所述操作系统内核根据所述受控环境信息恢复对所述硬件要求包括的硬件设备的支持。
7.如权利要求1-5的任一项所述的方法,其特征在于,
所述受控环境要求包括:共存运行的程序;
所述操作系统内核根据所述受控环境要求建立安全的受控环境,包括:
所述操作系统内核检测所述共存运行的程序,如果所述共存运行的程序当前未运行,启动所述共存运行的程序。
8.如权利要求1-5的任一项所述的方法,其特征在于,
所述受控环境要求包括:不能运行的程序;
所述操作系统内核根据所述受控环境要求建立安全的受控环境,包括:
所述操作系统内核终止所述不能运行的程序,和/或,终止对所述不能运行的程序的支持;
所述操作系统内核根据所述受控环境信息撤销所述受控环境,包括:
所述操作系统内核根据所述受控环境信息恢复对所述不能运行的程序的支持。
9.如权利要求1-5的任一项所述的方法,其特征在于,所述受控环境要求包括:内核模块要求;
所述操作系统内核根据所述受控环境要求建立安全的受控环境,包括:
所述操作系统内核终止所述内核模块要求包括的内核模块,和/或,终止对所述内核模块要求包括的内核模块的支持;
所述操作系统内核根据所述受控环境信息撤销所述受控环境,包括:
所述操作系统内核根据所述受控环境信息恢复对所述内核模块要求包括的内核模块的支持。
10.如权利要求1-5的任一项所述的方法,其特征在于,所述受控环境要求包括:网络接口要求;
所述操作系统内核根据所述受控环境要求建立安全的受控环境,包括:
所述操作系统内核终止所述网络接口要求包括的网络接口,和/或,终止对所述网络接口要求包括的网络接口的支持;
所述操作系统内核根据所述受控环境信息撤销所述受控环境,包括:
所述操作系统内核根据所述受控环境信息恢复对所述网络接口要求包括的网络接口的支持。
11.如权利要求1-5的任一项所述的方法,其特征在于,所述受控环境要求包括:应用程序运行时需要保护的第一内存或第一存储空间;
所述操作系统内核根据所述受控环境要求建立安全的受控环境,包括:
所述操作系统内核触发所述第一内存或所述第一存储空间的保护机制;
所述操作系统内核根据所述受控环境信息撤销所述受控环境,包括:
所述操作系统内核根据所述受控环境信息撤销所述第一内存或所述第一存储空间的保护机制。
12.如权利要求1-5的任一项所述的方法,其特征在于,所述受控环境要求包括:在应用程序运行结束时需要清除的第二内存或第二存储空间;
所述操作系统内核根据所述受控环境信息撤销所述受控环境之前,还包括:
所述操作系统内核在所述应用程序运行结束时,清除所述第二内存或所述第二存储空间。
13.如权利要求1-5的任一项所述的方法,其特征在于,所述受控环境要求包括:第三内存或第三存储空间的加密要求;
所述操作系统内核根据所述受控环境要求建立安全的受控环境,包括:
所述操作系统内核使用密钥加密所述第三内存或所述第三存储空间;
所述操作系统内核根据所述受控环境信息撤销所述受控环境,包括:
所述操作系统内核根据所述受控环境信息撤销对所述第三内存或所述第三存储空间的加密。
14.一种应用程序运行环境的控制装置,其特征在于,包括:
受控环境授权文件检测模块,用于检测受控环境授权文件;
受控环境授权文件解析模块,用于获取所述受控环境授权文件,解析所述受控环境授权文件包括的受控环境要求;所述受控环境要求包括以下内容的至少一项:硬件要求、共存运行的程序、不能运行的程序、内核模块要求、网络接口要求、应用程序运行时需要保护的第一内存或第一存储空间、或在应用程序运行结束时需要清除的第二内存或第二存储空间、或第三内存或第三存储空间的加密要求;
受控环境建立模块,用于根据所述受控环境要求建立安全的受控环境,以及,记录受控环境信息;
受控环境信息检测模块,用于检测所述受控环境信息;
受控环境撤销模块,用于在终止所述应用程序时,根据所述受控环境信息撤销所述受控环境;
应用程序拦截模块,用于拦截应用程序的启动,以及,拦截所述应用程序的终止;其中,所述受控环境授权文件是预先为所述应用程序配置的受控环境授权文件;
应用程序放行模块,用于在所述受控环境中启动所述应用程序,以及,终止所述应用程序。
15.一种电子设备,包括存储器和处理器,所述存储器用于存储计算机指令,其特征在于,所述计算机指令被所述处理器执行以实现如权利要求1-13的任一项所述的方法。
16.一种可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令被处理器执行时实现如权利要求1-13的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111052996.7A CN113505376B (zh) | 2021-09-09 | 2021-09-09 | 一种应用程序运行环境的控制方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111052996.7A CN113505376B (zh) | 2021-09-09 | 2021-09-09 | 一种应用程序运行环境的控制方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113505376A CN113505376A (zh) | 2021-10-15 |
CN113505376B true CN113505376B (zh) | 2022-03-08 |
Family
ID=78016771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111052996.7A Active CN113505376B (zh) | 2021-09-09 | 2021-09-09 | 一种应用程序运行环境的控制方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113505376B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115130096B (zh) * | 2022-06-20 | 2023-03-07 | 北京全息智信科技有限公司 | 通过实时审查防范恶意操作、误操作和违规操作的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047701A (zh) * | 2006-03-27 | 2007-10-03 | 北京握奇数据系统有限公司 | 保证应用程序安全运行的系统和方法 |
CN104267994A (zh) * | 2014-09-30 | 2015-01-07 | 北京奇虎科技有限公司 | 一种运行应用程序的装置和终端设备 |
CN108021823A (zh) * | 2017-12-04 | 2018-05-11 | 北京元心科技有限公司 | 基于可信执行环境无痕运行应用程序的方法、装置和终端 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100489728C (zh) * | 2004-12-02 | 2009-05-20 | 联想(北京)有限公司 | 一种建立计算机中可信任运行环境的方法 |
US7725737B2 (en) * | 2005-10-14 | 2010-05-25 | Check Point Software Technologies, Inc. | System and methodology providing secure workspace environment |
US8893222B2 (en) * | 2012-11-13 | 2014-11-18 | Auckland Uniservices Ltd. | Security system and method for the android operating system |
CN103544434B (zh) * | 2013-11-12 | 2016-08-24 | 北京网秦天下科技有限公司 | 用于确保应用程序安全运行的方法和终端 |
CN106815494B (zh) * | 2016-12-28 | 2020-02-07 | 中软信息系统工程有限公司 | 一种基于cpu时空隔离机制实现应用程序安全认证的方法 |
CN109033872A (zh) * | 2018-07-18 | 2018-12-18 | 郑州信大捷安信息技术股份有限公司 | 一种基于身份的安全运行环境构造方法 |
CN111159691B (zh) * | 2019-12-23 | 2022-03-11 | 北京工业大学 | 一种应用程序动态可信验证方法及系统 |
CN112685730B (zh) * | 2021-03-18 | 2021-06-22 | 北京全息智信科技有限公司 | 一种操作系统账户的权限控制方法、装置及电子设备 |
-
2021
- 2021-09-09 CN CN202111052996.7A patent/CN113505376B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047701A (zh) * | 2006-03-27 | 2007-10-03 | 北京握奇数据系统有限公司 | 保证应用程序安全运行的系统和方法 |
CN104267994A (zh) * | 2014-09-30 | 2015-01-07 | 北京奇虎科技有限公司 | 一种运行应用程序的装置和终端设备 |
CN108021823A (zh) * | 2017-12-04 | 2018-05-11 | 北京元心科技有限公司 | 基于可信执行环境无痕运行应用程序的方法、装置和终端 |
Also Published As
Publication number | Publication date |
---|---|
CN113505376A (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11784823B2 (en) | Object signing within a cloud-based architecture | |
US7743260B2 (en) | Firewall+storage apparatus, method and system | |
US8528062B1 (en) | Method and service for securing a system networked to a cloud computing environment from malicious code attacks | |
US20180068117A1 (en) | Method and system for preventing and detecting security threats | |
US8881137B2 (en) | Creating a relatively unique environment for computing platforms | |
JP5635539B2 (ja) | リモートプリブート認証 | |
US8474032B2 (en) | Firewall+ storage apparatus, method and system | |
US10169589B2 (en) | Securely booting a computer from a user trusted device | |
CN107438849B (zh) | 用于验证电子设备的完整性的系统和方法 | |
US8131997B2 (en) | Method of mutually authenticating between software mobility device and local host and a method of forming input/output (I/O) channel | |
US20070101146A1 (en) | Safe distribution and use of content | |
CN108604275A (zh) | 硬件装置及其认证方法 | |
CN108595982B (zh) | 一种基于多容器分离处理的安全计算架构方法及装置 | |
US9851981B2 (en) | Booting a computer from a user trusted device with an operating system loader stored thereon | |
Sze et al. | Hardening openstack cloud platforms against compute node compromises | |
JP2020126586A (ja) | ログデータの完全性保護 | |
CN106911744B (zh) | 一种镜像文件的管理方法和管理装置 | |
KR20130114703A (ko) | 보안 상태 전환을 관리하기 위한 방법 및 장치 | |
CN113505376B (zh) | 一种应用程序运行环境的控制方法、装置及电子设备 | |
EP3356987B1 (en) | Securely writing data to a secure data storage device during runtime | |
US11836254B2 (en) | System and method for securing a series of firmware function calls using session tokens | |
CN109583191B (zh) | 云端程序控制流完整性保护方法及装置 | |
González et al. | A practical hardware-assisted approach to customize trusted boot for mobile devices | |
CN115134146A (zh) | 一种车载娱乐系统及车辆 | |
CN112422292A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |