CN115033302A - 一种安全加固方法、装置、设备及介质 - Google Patents

一种安全加固方法、装置、设备及介质 Download PDF

Info

Publication number
CN115033302A
CN115033302A CN202210591394.7A CN202210591394A CN115033302A CN 115033302 A CN115033302 A CN 115033302A CN 202210591394 A CN202210591394 A CN 202210591394A CN 115033302 A CN115033302 A CN 115033302A
Authority
CN
China
Prior art keywords
virtual machine
machine monitor
security
opened
target parameter
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.)
Pending
Application number
CN202210591394.7A
Other languages
English (en)
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.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud Technology Co Ltd
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 Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN202210591394.7A priority Critical patent/CN115033302A/zh
Publication of CN115033302A publication Critical patent/CN115033302A/zh
Priority to PCT/CN2022/141587 priority patent/WO2023226421A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种安全加固方法、装置、设备及介质,若接收到安全容器启动指令,则读取写入了目标参数的配置文件,并调用目标程序中预先定义的解析函数解析出配置文件中的目标参数,若目标参数用于指示虚拟机监控器的安全机制打开,则将目标参数发送给虚拟机监控器,以使虚拟机监控器基于目标参数进行启动,来控制自身的安全机制打开。由于在本申请实施例中,可以通过控制虚拟机监控器的安全机制打开的方式,来对虚拟机监控器进行安全加固,减少虚拟机监控器对外的被攻击暴露面,从而避免虚拟机监控器被攻击,导致主机被破坏的问题,提高了容器环境的安全性。

Description

一种安全加固方法、装置、设备及介质
技术领域
本发明涉及容器安全技术领域,尤其涉及一种安全加固方法、装置、设备及介质。
背景技术
随着越来越多的企业开始上云,业务普遍开始云化,云安全问题已经成为了企业业务防护工作的重中之重,然而云和容器之间有着本质的联系,且云安全离不开容器安全,当然,也不可能脱离容器安全而单独去定义云安全,因此,为了保证容器安全性,业界提出了安全容器的概念,并在短时间内实践并落地了各种安全容器解决方案。
其中,安全容器,主要是防止容器逃逸到主机(Host)上,从而造成对主机的越权访问,进而保证容器环境的稳定性,安全容器目前使用的技术方案主要是把容器放在客户机操作系统(guestOS)上运行,且guestOS是运行在主机(Host)的虚拟机监控器(Qemu)上的,所以即使容器发生逃逸,也只能逃逸到guestOS这一层,不能逃逸到Host上,从而最大程度的保证了Host的安全性和稳固性,但安全容器使用的Qemu本身存在漏洞较多,被攻击面较大的问题,比如,Qemu仅仅在2021年一月至八月短短七个月的时间里,就被纰漏出了25个公共漏洞和暴露(Common Vulnerabilities&Exposure,CVE),在2016年一整年的时间里,甚至纰漏出了91个CVE。
若Qemu被攻击,则可能导致host被破坏,因此对于host得保护度还是不高,容器环境的安全性也不高。
发明内容
本申请提供了一种安全加固方法、装置、设备及介质,用以解决现有技术中若虚拟机监控器被攻击,则有可能导致主机被破坏的问题。
第一方面,本申请实施例提供了一种安全加固方法,所述方法包括:
若接收到安全容器启动指令,则读取写入了目标参数的配置文件,并调用目标程序中预先定义的解析函数解析出所述配置文件中的所述目标参数;
若所述目标参数指示虚拟机监控器的安全机制打开,则将所述目标参数发送给所述虚拟机监控器,以使所述虚拟机监控器基于所述目标参数进行启动,来控制自身的安全机制打开。
进一步地,所述将所述目标参数发送给虚拟机监控器之后,所述方法还包括:
向运行在所述虚拟机监控器上的客户机操作系统发送启动指令,以使所述客户机操作系统完成启动。
第二方面,本申请实施例还提供了一种安全加固方法,所述方法包括:
接收安全容器发送的目标参数;
若所述目标参数指示虚拟机监控器的安全机制打开,则基于所述目标参数进行启动,控制自身的安全机制打开。
进一步地,所述方法还包括:
接收虚拟机安全机制是否打开的查询指令;
查验所述虚拟机监控器是否已经打开了安全机制,获得查验结果,并将所述查验结果输出,其中,若所述虚拟机监控器的安全机制已经打开,则所述查验结果中携带所述目标参数。
第三方面,本申请实施例还提供了一种安全加固装置,所述装置包括:
解析模块,用于若接收到安全容器启动指令,则读取写入了目标参数的配置文件,并调用目标程序中预先定义的解析函数解析出所述配置文件中的所述目标参数;
发送模块,用于若所述目标参数指示虚拟机监控器的安全机制打开,则将所述目标参数发送给所述虚拟机监控器,以使所述虚拟机监控器基于所述目标参数进行启动,来控制自身的安全机制打开。
进一步地,所述发送模块,还用于向运行在所述虚拟机监控器上的客户机操作系统发送启动指令,以使所述客户机操作系统完成启动。
第四方面,本申请实施例还提供了一种安全加固装置,所述装置包括:
接收模块,用于接收安全容器发送的目标参数;
控制模块,用于若所述目标参数指示虚拟机监控器的安全机制打开,则基于所述目标参数进行启动,控制自身的安全机制打开。
进一步地,所述接收模块,还用于接收虚拟机安全机制是否打开的查询指令;
所述装置还包括:
处理模块,用于查验所述虚拟机监控器是否已经打开了安全机制,获得查验结果,并将所述查验结果输出,其中,若所述虚拟机监控器的安全机制已经打开,则所述查验结果中携带所述目标参数。
第五方面,本申请实施例还提供了一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任一所述安全加固方法的步骤。
第六方面,本申请实施例还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一所述安全加固方法的步骤。
第七方面,本申请实施例还提供了一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任一所述安全加固方法的步骤。
第八方面,本申请实施例还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一所述安全加固方法的步骤。
若接收到安全容器启动指令,则读取写入了目标参数的配置文件,并调用目标程序中预先定义的解析函数解析出配置文件中的目标参数,若目标参数用于指示虚拟机监控器的安全机制打开,则将目标参数发送给虚拟机监控器,以使虚拟机监控器基于目标参数进行启动,来控制自身的安全机制打开。由于在本申请实施例中,可以通过控制虚拟机监控器的安全机制打开的方式,来对虚拟机监控器进行安全加固,减少虚拟机监控器对外的被攻击暴露面,从而避免虚拟机监控器被攻击,导致主机被破坏的问题,提高了容器环境的安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种安全加固的过程示意图;
图2为本申请一些实施例提供的一种虚拟机监控器的安全加固过程示意图;
图3为本申请一些实施例提供的一种客户机操作系统启动的过程示意图;
图4为本申请实施例提供的一种安全加固的过程示意图;
图5a为本申请一些实施例提供的一种获得配置文件的过程示意图;
图5b为本申请一些实施例提供的一种获得配置文件的过程示意图;
图5c为本申请一些实施例提供的一种获得配置文件的过程示意图;
图6为本申请实施例提供的一种虚拟机监控器未加固前的整体框架;
图7为本申请实施例提供的一种虚拟机监控器加固后的整体框架;
图8为本申请一些实施例提供的一种安全加固装置结构示意图;
图9为本申请一些实施例提供的一种安全加固装置结构示意图;
图10为本申请一些实施例提供的一种电子设备的结构示意图;
图11为本申请一些实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
若接收到安全容器启动指令,则读取配置文件,并调用预先定义的解析函数解析出配置文件中的目标参数,若目标参数用于指示虚拟机监控器的安全机制打开,则将目标参数发送给虚拟机监控器,以使虚拟机监控器基于目标参数进行启动,来控制自身的安全机制打开。
为了避免虚拟机监控器受到攻击时,主机被破坏,本申请实施例提供了一种安全加固方法、装置、设备及介质。
图1为本申请实施例提供的一种安全加固的过程示意图,该过程包括以下步骤:
S101:若接收到安全容器启动指令,则读取写入了目标参数的配置文件,并调用目标程序中预先定义的解析函数解析出所述配置文件中的所述目标参数。
本申请实施例提供的安全加固方法应用于安全容器,且本申请实施例提供的安全加固方法主要用于对虚拟监控器进行安全加固。
在本申请实施例中,安全容器在接收到安全容器启动指令后,则进行启动操作,具体的,安全容器先读取预先保存的写入了目标参数的配置文件,其中,该写入了目标参数的配置文件为开发人员预先编写了写入了参数赋值字段的程序后,将目标参数赋值给该参数赋值字段后编译生成的配置文件。然后调用目标程序中预先定义的解析函数解析该配置文件中的目标参数,其中,该目标参数指示虚拟机监控器的安全机制是否打开。其中,该目标程序为安全容器本身预先存在和保存的具有解析功能的程序。
其中,该调用目标程序中预先定义的解析函数解析配置文件为现有技术,在此不做赘述。
具体的,可以预先设置目标参数为on时,指示虚拟机监控器的安全机制打开,目标参数为off时,指示虚拟机监控器的安全机制不打开,具体的,可以根据需求配置打开时对应的目标参数以及关闭时对应的目标参数,同时支持多个具体参数组合的方式来进行配置,以此来达到不同的安全控制级别和控制范围,在此不做限制。
S102:若所述目标参数指示虚拟机监控器的安全机制打开,则将所述目标参数发送给所述虚拟机监控器,以使所述虚拟机监控器基于所述目标参数进行启动,来控制自身的安全机制打开。
为了避免虚拟机监控器被攻击时,导致主机也被破坏,在本申请实施例中,可以将虚拟机监控器的安全机制打开。
具体的,若该目标参数是指示虚拟机监控器的安全机制打开的,则安全容器可以将该目标参数发送给虚拟机监控器,以使虚拟机监控器可以基于该目标参数进行启动,来控制自身的安全机制打开,进而来实现对虚拟监控器的安全加固。其中,该虚拟监控器的安全加固就相当于在虚拟机监控器和主机之间引入安全机制,从而使容器环境的整体安全性得到提升。在本申请中,该安全机制为Linux的安全机制(seccomp)。
若该目标参数不是指示虚拟机监控器的安全机制打开的,则后续虚拟监控器启动完成之后,也不能将虚拟机监控器的安全机制打开。
由于在本申请实施例中,可以通过使得虚拟机监控器的安全机制打开的方式,来对虚拟机监控器进行安全加固,减少虚拟机监控器对外的被攻击暴露面,从而避免虚拟机监控器被攻击,导致主机被破坏的问题,提高了容器环境的安全性。
为了使得虚拟机监控器的安全机制完全打开,在上述实施例的基础上,在本申请实施例中,所述将所述目标参数发送给虚拟机监控器之后,所述方法还包括:
向运行在所述虚拟机监控器上的客户机操作系统发送启动指令,以使所述客户机操作系统完成启动。
在本申请实施例中,由于客户机操作系统是运行在虚拟机监控器上的,因此,安全容器在将目标参数发送给虚拟机监控器,以使该虚拟机监控器基于该目标参数进行启动,来控制自身的安全机制打开之后,在本申请实施例中,安全容器还可以向运行在虚拟机监控器上的客户机操作系统发送启动指令,以使得该客户机操作系统完全启动,当该客户机操作系统完全启动之后,该虚拟机监控系统的安全机制才会完全打开。
图2为本申请一些实施例提供的一种虚拟机监控器的安全加固过程示意图;图3为本申请一些实施例提供的一种客户机操作系统启动的过程示意图。现针对图2和图3进行说明。
读取配置文件(configuration.toml),并调用目标程序中预先定义的解析函数解析出配置文件中的目标参数(seccompsandbox参数),则将该目标参数发送给虚拟机监控器,以使虚拟机监控器基于该目标参数进行启动,来控制自身的安全机制打开,如图2所示。
虚拟机监控器的安全机制打开之后,紧接着客户机操作系统(guestOS)会随之启动,进而完后曾虚拟机监控器的安全加固,如图3所示。
图4为本申请实施例提供的一种安全加固的过程示意图,该过程包括以下步骤:
S401:接收安全容器发送的目标参数。
本申请实施例提供的安全加固方法应用于虚拟机监控器。
在本申请实施例中,为了保护主机不被破坏,安全容器会向虚拟机监控器发送获取到的目标参数,该目标参数可以是指示虚拟机监控器的安全机制打开的参数,也可以是指示虚拟机监控器的安全机制不打开的参数,虚拟机监控器将会接收到安全容器发送的目标参数。
在本申请实施例中,可以预先设置目标参数为on时,指示虚拟机监控器的安全机制打开,预先设置目标参数为off时,指示虚拟机监控器的安全机制不打开,具体的,可以根据需求配置打开时对应的目标参数以及关闭时对应的目标参数,同时支持多个具体参数组合的方式来进行配置,以此来达到不同的安全控制级别和控制范围,在此不做限制。
S402:若所述目标参数指示虚拟机监控器的安全机制打开,则基于所述目标参数进行启动,控制自身的安全机制打开。
若目标参数指示虚拟机监控器的安全机制打开,则虚拟机监控器基于该目标参数进行启动,进而控制该虚拟机监控器的安全机制打开,以实现虚拟机监控器的安全加固。
为了便于用户确定虚拟机监控器的安全机制是否打开,在上述各实施例的基础上,在本申请实施例中,所述方法还包括:
接收虚拟机安全机制是否打开的查询指令;
查验所述虚拟机监控器是否已经打开了安全机制,获得查验结果,并将所述查验结果输出,其中,若所述虚拟机监控器的安全机制已经打开,则所述查验结果中携带所述目标参数。
在本申请实施例中,为了便于用户确定虚拟机监控器的安全机制是否打开,可以将该虚拟机监控器的安全机制是否打开的结果信息输出。
具体的,为了确定虚拟机监控器的安全机制是否打开,在本申请实施例中,可以向虚拟机监控器发送查询指令,虚拟机监控器可以在接收到虚拟机安全机制是否打开的查询指令时,对虚拟机的安全机制是否打开进行查验,并获得对应的查验结果,并将该查验结果输出。
具体的,可以将该查验结果通过文字的方式输出,还可以通过语音的方式输出,比如,可以输出“虚拟机监控器已经打开了安全机制”的文字,或者输出“虚拟机监控器已经打开了安全机制”的语音。
在本申请实施例中,由于预先针对虚拟机监控器的安全机制是否已经打开设置了对应的目标参数,因此,在本申请实施例中,该查验结果还可以携带目标参数的结果,比如,若虚拟机监控的安全机制已经打开时对应的目标参数为on,则在查询出虚拟机监控器的安全机制已经打开后,可以输出“虚拟机监控器的状态为on”等等。
为了便于描述,后续以一个具体的实施例进行说明:
为了实现安全加固,首先开发人员预先编写了写入了参数赋值字段的程序,将目标参数赋值给该参数赋值字段后编译生成写入了目标参数的配置文件,后续安全容器在接收到安全容器启动指令之后,则读取配置文件,并调用目标程序中预先定义的解析函数解析出该配置文件中的目标参数,若该目标参数指示虚拟机监控器的安全机制打开,则将该目标参数发送给虚拟机监控器,虚拟机监控器在接收到该目标参数之后,基于该目标参数进行启动,来控制自身的安全机制打开。
图5a-图5c图为本申请一些实施例提供的一种获得配置文件的过程示意图;现针对图5a-图5c进行说明。
获得配置文件的第一个步骤为:开发人员修改Kata Runtime部分的Makefile,新增一个编译宏,该编译宏可以为DEFSECCOMPSANDBOXPARAM,具体的,该编译宏用于控制是否打开虚拟机监控器的安全机制,其中,该安全机制也就是相当于通过减少某类系统调用不被允许的方式,来减小虚拟机监控器对主机攻击面。在本申请实施例中,可以不允许以下类的系统调用:不允许虚拟机监控器使用废弃的系统调用、不允许虚拟机监控器提升优先级来使用所有的setuid/gid系统调用、不允许qemu spawn新的线程和进程以及不允许虚拟机监控器使用进程亲和性和设置调度器优先级等等。
具体的,新增编译宏对应的程序可以为:
DEFSECCOMPSANDBOXPARAM:=on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny
其中,obsolete=deny:表示不允许虚拟机监控器使用废弃的系统调用;elevateprivileges=deny:表示不允许虚拟机监控器提升优先级来使用所有的setuid/gid系统调用;spawn=deny:表示不允许qemu spawn新的线程和进程;resourcecontrol=deny:表示不允许虚拟机监控器使用进程亲和性和设置调度器优先级。
在将Makefile修改完成后,可将修改后的Makefile传入Kata Runtime的编译系统(kata Building System),参见图5a。
获得配置文件的第二个步骤为:修改kata runtime对底层虚拟机监控器qemu的配置文件configuration-qemu.toml.in,新增参数seccompsandbox(目标参数),如下:
seccompsandbox=″@DEFSECCOMPSANDBOXPARAM@″
具体的,在对kata runtime编译时,编译系统会自动解析第一个步骤中的DEFSECCOMPSANDBOXPARAM宏的定义,然后传递给configuration-qemu.toml.in的seccompsandbox参数(目标参数),以便于后续Kata runtime初始化时对其进行解析,然后将该configuration-qemu.toml.in与第一个步骤中修改后的Makefile文件一起传入到Kata Runtime的编译系统,见图5b。
获得配置文件的第三个步骤为:修改katautils config.go的结构体hypervisorstruct,新增SeccompSandbox string`toml:″seccompsandbox″`字段,该新增的SeccompSandbox string`toml:″seccompsandbox″`字段用于接收configuration-qemu.toml.in配置文件里的seccompsandbox参数内容,便于后续对其进行内部处理。
具体的,对应的程序为:
Figure BDA0003665318360000101
获得配置文件的第四个步骤为:修改katautils config.go的newQemuHypervisorConfig函数实现,在生成vc.HypervisorConfig结构体的时候,新增字段SeccompSandbox:h.SeccompSandbox。
newQemuHypervisorConfig被调用的代码路径如下:
loadRuntimeConfig
LoadConfiguration
updateRuntimeConfig
updateRuntimeConfigHypervisor
newQemuHypervisorConfig
获得配置文件的第五个步骤为:修改govmm的代码,对其数据结构Config struct新增字段SeccompSandbox string,用于接收解析configuration-qemu.toml.in配置文件以后的内部存储。
具体的,对应的程序为:
Figure BDA0003665318360000111
获得配置文件的第六个步骤为:修改govmm的代码实现,新增函数appendSeccompSandbox(),使之能解析toml配置文件的seccompsandbox参数
具体的,对应的程序为:
Figure BDA0003665318360000112
其中,appendSeccompSandbox()用于保证后续目标程序可以解析configuration-qemu.toml.in的配置。如果configuration-qemu.toml.in文件配置了seccompsandbox参数,则此函数会把参数内容转换成Kata安全容器的底层虚拟机监控器的启动命令行参数,也就是说,使得虚拟机监控器基于该seccompsandbox参数进行启动,来控制自身的安全机制打开。
获得配置文件的第七个步骤为:修改LaunchQemu代码,使之调用第三个步骤里实现的appendSeccompSandbox():
具体的,对应的程序为:
Figure BDA0003665318360000121
LaunchQemu代码被路径如下:
createSandboxFromConfig
startVM
startSandbox
LaunchQemu
config.appendSandboxOn()
在完成步骤一到步骤七的过程以后,用标准方法重新编译Kata Runtime模块。
具体的,编译步骤如下:
cd$GOPATH/src/github.com/kata-containers/kata-containers/src/runtime
make clean
Make
编译完成后,会得到Kata二进制文件containerd-shim-kata-v2和配置文本文件configuration.toml(写入了目标参数的配置文件),见图5c。
图6为本申请实施例提供的一种虚拟机监控器未加固前的整体框架,图7为本申请实施例提供的一种虚拟机监控器加固后的整体框架,现针对图6和图7进行说明。
虚拟机监控器未加固前,当安全容器(container)被攻击时,客户机操作系统(guestOS)有可能被攻破,参见攻击1,却难以从guestOS攻击到主机,即一般不会出现攻击2的情况。但是攻击者可以从另一个角度来攻击主机,即从虚拟机监控器(Qemu)侧进行攻击,参见攻击3,造成主机被破坏,参见图6。
虚拟机监控器实现安全加固后,也就是说,虚拟机监控器打开了安全机制之后,当安全容器(container)被攻击时,客户机操作系统(guestOS)有可能被攻破,参见攻击1,当安全容器(container)被攻击时,难以从guestOS攻击到主机,即一般不会出现攻击2的情况。且攻击者从虚拟机监控器Qemu侧进行攻击,也不会造成主机被破坏,即也不会出现攻击3的情况。
图8为本申请一些实施例提供的一种安全加固装置结构示意图,该装置包括:
解析模块801,用于若接收到安全容器启动指令,则读取写入了目标参数的配置文件,并调用目标程序中预先定义的解析函数解析出所述配置文件中的所述目标参数;
发送模块802,用于若所述目标参数指示虚拟机监控器的安全机制打开,则将所述目标参数发送给所述虚拟机监控器,以使所述虚拟机监控器基于所述目标参数进行启动,来控制自身的安全机制打开。
在一种可能的实施方式中,所述发送模块802,还用于向运行在所述虚拟机监控器上的客户机操作系统发送启动指令,以使所述客户机操作系统完成启动。
图9为本申请一些实施例提供的一种安全加固装置结构示意图,该装置包括:
接收模块901,用于接收安全容器发送的目标参数;
控制模块902,用于若所述目标参数指示虚拟机监控器的安全机制打开,则基于所述目标参数进行启动,控制自身的安全机制打开。
在一种可能的实施方式中,所述接收模块901,还用于接收虚拟机安全机制是否打开的查询指令;
所述装置还包括:
处理模块903,用于查验所述虚拟机监控器是否已经打开了安全机制,获得查验结果,并将所述查验结果输出,其中,若所述虚拟机监控器的安全机制已经打开,则所述查验结果中携带所述目标参数。
在上述各实施例的基础上,本申请一些实施例还提供了一种电子设备,如图10所示,包括:处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信。
所述存储器1003中存储有计算机程序,当所述程序被所述处理器1001执行时,使得所述处理器1001执行如下步骤:
若接收到安全容器启动指令,则读取写入了目标参数的配置文件,并调用目标程序中预先定义的解析函数解析出所述配置文件中的所述目标参数;
若所述目标参数指示虚拟机监控器的安全机制打开,则将所述目标参数发送给所述虚拟机监控器,以使所述虚拟机监控器基于所述目标参数进行启动,来控制自身的安全机制打开。
进一步地,所述处理器1001,还用于向运行在所述虚拟机监控器上的客户机操作系统发送启动指令,以使所述客户机操作系统完成启动。
上述服务器提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1002用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在上述各实施例的基础上,本申请一些实施例还提供了一种电子设备,如图11所示,包括:处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信。
所述存储器1103中存储有计算机程序,当所述程序被所述处理器1101执行时,使得所述处理器1101执行如下步骤:
接收安全容器发送的目标参数;
若所述目标参数指示虚拟机监控器的安全机制打开,则基于所述目标参数进行启动,控制自身的安全机制打开。
进一步地,所述处理器1101,还用于接收虚拟机安全机制是否打开的查询指令;
查验所述虚拟机监控器是否已经打开了安全机制,获得查验结果,并将所述查验结果输出,其中,若所述虚拟机监控器的安全机制已经打开,则所述查验结果中携带所述目标参数。
上述服务器提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1102用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在上述各实施例的基础上,本申请一些实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现如下步骤:
若接收到安全容器启动指令,则读取写入了目标参数的配置文件,并调用目标程序中预先定义的解析函数解析出所述配置文件中的所述目标参数;
若所述目标参数指示虚拟机监控器的安全机制打开,则将所述目标参数发送给所述虚拟机监控器,以使所述虚拟机监控器基于所述目标参数进行启动,来控制自身的安全机制打开。
进一步地,所述将所述目标参数发送给虚拟机监控器之后,所述方法还包括:
向运行在所述虚拟机监控器上的客户机操作系统发送启动指令,以使所述客户机操作系统完成启动。
在上述各实施例的基础上,本申请一些实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现如下步骤:
接收安全容器发送的目标参数;
若所述目标参数指示虚拟机监控器的安全机制打开,则基于所述目标参数进行启动,控制自身的安全机制打开。
进一步地,所述方法还包括:
接收虚拟机安全机制是否打开的查询指令;
查验所述虚拟机监控器是否已经打开了安全机制,获得查验结果,并将所述查验结果输出,其中,若所述虚拟机监控器的安全机制已经打开,则所述查验结果中携带所述目标参数。
由于在本申请实施例中,可以通过控制虚拟机监控器的安全机制打开的方式,来对虚拟机监控器进行安全加固,减少虚拟机监控器对外的被攻击暴露面,从而避免虚拟机监控器被攻击,导致主机被破坏的问题,提高了容器环境的安全性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种安全加固方法,其特征在于,所述方法包括:
若接收到安全容器启动指令,则读取写入了目标参数的配置文件,并调用目标程序中预先定义的解析函数解析出所述配置文件中的所述目标参数;
若所述目标参数指示虚拟机监控器的安全机制打开,则将所述目标参数发送给所述虚拟机监控器,以使所述虚拟机监控器基于所述目标参数进行启动,来控制自身的安全机制打开。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标参数发送给虚拟机监控器之后,所述方法还包括:
向运行在所述虚拟机监控器上的客户机操作系统发送启动指令,以使所述客户机操作系统完成启动。
3.一种安全加固方法,其特征在于,所述方法包括:
接收安全容器发送的目标参数;
若所述目标参数指示虚拟机监控器的安全机制打开,则基于所述目标参数进行启动,控制自身的安全机制打开。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
接收虚拟机安全机制是否打开的查询指令;
查验所述虚拟机监控器是否已经打开了安全机制,获得查验结果,并将所述查验结果输出,其中,若所述虚拟机监控器的安全机制已经打开,则所述查验结果中携带所述目标参数。
5.一种安全加固装置,其特征在于,所述装置包括:
解析模块,用于若接收到安全容器启动指令,则读取写入了目标参数的配置文件,并调用目标程序中预先定义的解析函数解析出所述配置文件中的所述目标参数;
发送模块,用于若所述目标参数指示虚拟机监控器的安全机制打开,则将所述目标参数发送给所述虚拟机监控器,以使所述虚拟机监控器基于所述目标参数进行启动,来控制自身的安全机制打开。
6.根据权利要求5所述的装置,其特征在于,所述发送模块,还用于向运行在所述虚拟机监控器上的客户机操作系统发送启动指令,以使所述客户机操作系统完成启动。
7.一种安全加固装置,其特征在于,所述装置包括:
接收模块,用于接收安全容器发送的目标参数;
控制模块,用于若所述目标参数指示虚拟机监控器的安全机制打开,则基于所述目标参数进行启动,控制自身的安全机制打开。
8.根据权利要求7所述的装置,其特征在于,所述接收模块,还用于接收虚拟机安全机制是否打开的查询指令;
所述装置还包括:
处理模块,用于查验所述虚拟机监控器是否已经打开了安全机制,获得查验结果,并将所述查验结果输出,其中,若所述虚拟机监控器的安全机制已经打开,则所述查验结果中携带所述目标参数。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于执行存储器中存储的计算机程序时实现上述权利要求1-2任一所述安全加固方法或者上述权利要求3-4任一所述安全加固方法的步骤。
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-2任一所述安全加固方法或者上述权利要求3-4任一所述安全加固方法的步骤。
CN202210591394.7A 2022-05-27 2022-05-27 一种安全加固方法、装置、设备及介质 Pending CN115033302A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210591394.7A CN115033302A (zh) 2022-05-27 2022-05-27 一种安全加固方法、装置、设备及介质
PCT/CN2022/141587 WO2023226421A1 (zh) 2022-05-27 2022-12-23 一种安全加固方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210591394.7A CN115033302A (zh) 2022-05-27 2022-05-27 一种安全加固方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN115033302A true CN115033302A (zh) 2022-09-09

Family

ID=83121786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210591394.7A Pending CN115033302A (zh) 2022-05-27 2022-05-27 一种安全加固方法、装置、设备及介质

Country Status (2)

Country Link
CN (1) CN115033302A (zh)
WO (1) WO2023226421A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023226421A1 (zh) * 2022-05-27 2023-11-30 天翼云科技有限公司 一种安全加固方法、装置、设备及介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345604A (zh) * 2013-07-16 2013-10-09 湘潭大学 基于轻量虚拟机监控器的沙盒系统及用其监控os的方法
CN103902885A (zh) * 2014-03-04 2014-07-02 重庆邮电大学 面向多安全等级虚拟桌面系统虚拟机安全隔离系统及方法
CN106529284A (zh) * 2016-11-02 2017-03-22 深圳前海生生科技有限公司 基于安全芯片的虚拟机监控器安全加固方法
CN109358949A (zh) * 2018-10-18 2019-02-19 郑州云海信息技术有限公司 一种虚拟机系统安全受控装置
CN109858288A (zh) * 2018-12-26 2019-06-07 中国科学院信息工程研究所 实现虚拟机安全隔离的方法与装置
CN110008001A (zh) * 2019-03-29 2019-07-12 网御安全技术(深圳)有限公司 虚拟机监控器的安全加固方法、系统及硬件安全监控卡
CN110825499A (zh) * 2020-01-13 2020-02-21 中软信息系统工程有限公司 基于统一容器云平台的安全隔离的实现方法及装置
CN111190692A (zh) * 2019-12-26 2020-05-22 山东乾云启创信息科技股份有限公司 一种基于鲲鹏处理器的监控方法、系统及可读介质
CN111400702A (zh) * 2020-03-24 2020-07-10 上海瓶钵信息科技有限公司 一种虚拟化的操作系统内核保护方法
CN112364343A (zh) * 2020-11-16 2021-02-12 支付宝(杭州)信息技术有限公司 虚拟机监控器秘密的保护方法、装置和电子设备
CN113448682A (zh) * 2020-03-27 2021-09-28 支付宝(杭州)信息技术有限公司 一种虚拟机监控器加载方法、装置及电子设备
CN114253655A (zh) * 2020-09-24 2022-03-29 电科云(北京)科技有限公司 基于mips64指令集的安全容器隔离方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11663337B2 (en) * 2018-07-20 2023-05-30 George Mason University Methods and systems for system call reduction
KR102186009B1 (ko) * 2019-03-08 2020-12-04 한국전자통신연구원 컨테이너 인스턴스의 보안 프로파일 생성 시스템 및 방법
CN110059453B (zh) * 2019-03-13 2021-02-05 中国科学院计算技术研究所 一种容器虚拟化安全加固装置及方法
CN114035886B (zh) * 2021-09-28 2023-10-03 中国科学院信息工程研究所 一种针对内核数据的容器安全加固系统及方法
CN115033302A (zh) * 2022-05-27 2022-09-09 天翼云科技有限公司 一种安全加固方法、装置、设备及介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345604A (zh) * 2013-07-16 2013-10-09 湘潭大学 基于轻量虚拟机监控器的沙盒系统及用其监控os的方法
CN103902885A (zh) * 2014-03-04 2014-07-02 重庆邮电大学 面向多安全等级虚拟桌面系统虚拟机安全隔离系统及方法
CN106529284A (zh) * 2016-11-02 2017-03-22 深圳前海生生科技有限公司 基于安全芯片的虚拟机监控器安全加固方法
CN109358949A (zh) * 2018-10-18 2019-02-19 郑州云海信息技术有限公司 一种虚拟机系统安全受控装置
CN109858288A (zh) * 2018-12-26 2019-06-07 中国科学院信息工程研究所 实现虚拟机安全隔离的方法与装置
CN110008001A (zh) * 2019-03-29 2019-07-12 网御安全技术(深圳)有限公司 虚拟机监控器的安全加固方法、系统及硬件安全监控卡
CN111190692A (zh) * 2019-12-26 2020-05-22 山东乾云启创信息科技股份有限公司 一种基于鲲鹏处理器的监控方法、系统及可读介质
CN110825499A (zh) * 2020-01-13 2020-02-21 中软信息系统工程有限公司 基于统一容器云平台的安全隔离的实现方法及装置
CN111400702A (zh) * 2020-03-24 2020-07-10 上海瓶钵信息科技有限公司 一种虚拟化的操作系统内核保护方法
CN113448682A (zh) * 2020-03-27 2021-09-28 支付宝(杭州)信息技术有限公司 一种虚拟机监控器加载方法、装置及电子设备
CN114253655A (zh) * 2020-09-24 2022-03-29 电科云(北京)科技有限公司 基于mips64指令集的安全容器隔离方法和装置
CN112364343A (zh) * 2020-11-16 2021-02-12 支付宝(杭州)信息技术有限公司 虚拟机监控器秘密的保护方法、装置和电子设备

Non-Patent Citations (12)

* Cited by examiner, † Cited by third party
Title
ALESSANDRO RANDAZZO; ILENIA TINNIRELLO: "Kata Containers: An Emerging Architecture for Enabling MEC Services in Fast and Secure Way", 2019 SIXTH INTERNATIONAL CONFERENCE ON INTERNET OF THINGS: SYSTEMS, MANAGEMENT AND SECURITY (IOTSMS), 23 December 2019 (2019-12-23), pages 209 - 214 *
DAHUKKK: "云原生安全 — seccomp应用最佳实践", Retrieved from the Internet <URL:https://developer.aliyun.com/article/891215#slide-10> *
EDUARDO OTUBO: "QEMU Sandboxing for dummies", Retrieved from the Internet <URL:https://www.slideshare.net/EduardoOtubo/qemu-sandboxing-for-dummies> *
HOWIEYUEN: "使用seccomp 限制容器的系统调用", Retrieved from the Internet <URL:https://github. com/kubernetes/website/commit/0523f824bd8flc2b38200450j76e5cc339d545e8> *
公众号:ITIL之家: "Linux系统安全加固指南(万字长文)", Retrieved from the Internet <URL:https://blog.csdn.net/qq_15350605/article/details/123606623> *
徐莺;王运兵;雷波;张玲;: "云计算虚拟化安全测评方法研究", 通信技术, no. 12, 10 December 2017 (2017-12-10), pages 2807 - 2814 *
林园致;杨新章;何震苇;严丽云;黄丹池;: "Kata容器关键技术研究", 广东通信技术, no. 09, 15 September 2020 (2020-09-15), pages 48 - 53 *
林钢: "云环境下基于SGX的安全数据库研究", 中国优秀硕士学位论文全文数据库 (信息科技辑), no. 01, 15 January 2022 (2022-01-15), pages 138 - 102 *
林雪峰: "基于oVirt/Qemu/Kvm云平台系统分析与安全加固设计", 中国优秀硕士学位论文全文数据库 (信息科技辑), no. 03, 15 March 2016 (2016-03-15), pages 138 - 151 *
皮振向: "[qemu][seccomp]虚拟化安全sandbox技术分析", Retrieved from the Internet <URL:https://cloud.tencent.com/developer/article/1162100> *
看雪: "2021看雪SDC议题回顾 | 基于Qemu/kvm硬件加速的下一代安全对抗平台", Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/426476684?utm_id=0> *
龙恺;卿昱;王强: "虚拟机监控器的安全威胁及规避措施", 信息安全与通信保密, no. 04, 10 April 2014 (2014-04-10), pages 89 - 92 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023226421A1 (zh) * 2022-05-27 2023-11-30 天翼云科技有限公司 一种安全加固方法、装置、设备及介质

Also Published As

Publication number Publication date
WO2023226421A1 (zh) 2023-11-30

Similar Documents

Publication Publication Date Title
Grace et al. Systematic detection of capability leaks in stock android smartphones.
JP5985631B2 (ja) 信頼レベルのアクティブ化
JP3572016B2 (ja) 信頼されないプログラムを実行するための方法
US9811663B2 (en) Generic unpacking of applications for malware detection
Rice Container security: Fundamental technology concepts that protect containerized applications
US20150332043A1 (en) Application analysis system for electronic devices
US20070113062A1 (en) Bootable computer system circumventing compromised instructions
JP6588945B2 (ja) 仮想マシンにおける悪意のあるファイルを分析するシステム及び方法
US20090271867A1 (en) Virtual machine to detect malicious code
US20220382869A1 (en) Secure execution guest owner environmental controls
US20060174078A1 (en) System and method for executing a process on a microprocessor-enabled device
US20150222620A1 (en) System and method for providing application security in a cloud computing environment
JP2023500166A (ja) 権限管理のための方法および装置、コンピュータ機器ならびに記憶媒体
CN115033302A (zh) 一种安全加固方法、装置、设备及介质
CN112134905B (zh) 基于安卓系统的签名方法、装置以及设备
US11500981B2 (en) Shadow stack enforcement range for dynamic code
CN107209815B (zh) 用于使用返回导向编程的代码混淆的方法
US10296737B2 (en) Security enforcement in the presence of dynamic code loading
US20230222211A1 (en) Unified workload runtime protection
CN104699618A (zh) 指定用户对高权限进程自动化测试的方法及装置
CN110990874A (zh) 一种用于Android文件的安全防护方法和系统
JP6304837B2 (ja) 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ
Grechko et al. Secure software developing recommendations
US11354407B2 (en) Techniques for library behavior verification
WO2018023368A1 (en) Enhanced security using scripting language-based hypervisor

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