一种容器安全保护方法和电子设备
文献发布时间:2023-06-19 11:49:09
技术领域
本发明涉及互联网技术,具体涉及一种容器安全保护方法和电子设备。
背景技术
容器是一种轻量化的操作系统级别虚拟化技术。目前对于容器安全的防护方案,有一种实现方式是,通过将应用容器(Docker)引擎及其可执行程序建立在主机操作系统之上,当监控到Docker获取到新镜像文件时进行度量,产生镜像的基准哈希(hash)值,并当用户发出启动应用容器时,对应用容器的镜像再进行度量,通过比较两次度量结果,判断容器是否可以启动。实际中两次度量结果往往是相同的,起不到完整性度量的作用。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种容器安全保护方法和电子设备。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种容器安全保护方法,所述容器安全保护方法应用于容器安全保护装置中,所述方法包括:
在基本输入输出系统(BIOS,Basic Input Output System)上电启动后,启动操作系统及启动所述容器安全保护装置;所述容器安全保护装置至少包括用于对应用容器引擎进行度量的文件系统度量模块;
在应用容器引擎首次启动时,所述文件系统度量模块对所述应用容器引擎的可执行文件和配置文件进行度量,获得第一度量结果;
间隔预设时长后,所述文件系统度量模块再次对所述应用容器引擎的可执行文件和配置文件进行度量,获得第二度量结果;
比较所述第一度量结果和所述第二度量结果是否一致,根据比较结果确定所述应用容器引擎是否被篡改。
上述方案中,对所述应用容器引擎的可执行文件和配置文件进行度量,包括:获取所述应用容器引擎的可执行文件和配置文件的以下信息的至少之一:版本信息、开启的服务、开放的端口;基于所述版本信息、开启的服务和开放的端口中的至少一种信息确定哈希值,基于所述哈希值获得所述第一度量结果或所述第二度量结果。
上述方案中,所述方法还包括:启动所述容器安全保护装置后,启动应用容器引擎,获取镜像文件;所述文件系统度量模块基于所述镜像文件确定度量值,以及获得基准测量值;所述基准度量值基于来自本地的初始镜像文件确定;
比较所述度量值和基准度量值是否一致,根据所述比较结果确定所述镜像文件是否被篡改。
上述方案中,所述方法还包括:在所述初始镜像文件来自本地的情况下,所述文件系统度量模块对所述初始镜像文件进行度量,获得基准度量值;
发送所述初始镜像文件至镜像服务器;
相应的,所述获取镜像文件,包括:从所述镜像服务器获取所述镜像文件。
上述方案中,在所述镜像文件来自公共镜像服务器、私有镜像服务器或者来自本地的情况下,所述方法还包括:基于所述镜像文件启动容器;
在所述容器运行的过程中,所述容器安全保护装置中的进程监控模块对所述容器对应的进程进行监控,拦截满足预设条件的进程;
其中,所述拦截满足预设条件的进程,包括以下其中之一:拦截未出现在预设白名单中的进程;拦截出现在预设黑名单中的进程;拦截满足设置的拦截策略的进程。
上述方案中,在所述镜像文件来自公共镜像服务器、私有镜像服务器或者来自本地的情况下,所述方法还包括:
基于所述镜像文件启动容器;
在所述容器运行的过程中,所述容器安全保护装置中的网络监控模块基于预先配置的网络地址集合和/或端口集合、以及配置的网络监控策略对所述容器的网络访问状态进行监控。
本发明实施例还提供了一种电子设备,所述电子设备包括:处理组件和容器安全保护装置;其中,所述容器安全保护装置至少包括文件系统度量模块;其中,
所述处理组件,用于在BIOS上电启动后,启动操作系统及启动所述容器安全保护装置;
所述文件系统度量模块,用于在应用容器引擎首次启动时,对所述应用容器引擎的可执行文件和配置文件进行度量,获得第一度量结果;间隔预设时长后,再次对所述应用容器引擎的可执行文件和配置文件进行度量,获得第二度量结果;比较所述第一度量结果和所述第二度量结果是否一致,根据比较结果确定所述应用容器引擎是否被篡改。
上述方案中,所述文件系统度量模块,用于获取所述应用容器引擎的可执行文件和配置文件的以下信息的至少之一:版本信息、开启的服务、开放的端口;基于所述版本信息、开启的服务和开放的端口中的至少一种信息确定哈希值,基于所述哈希值获得所述第一度量结果或所述第二度量结果。
上述方案中,所述处理组件,还用于启动所述容器安全保护装置后,启动应用容器引擎,获取镜像文件;
所述文件系统度量模块,还用于基于所述镜像文件确定度量值,以及获得基准测量值;所述基准度量值基于来自本地的初始镜像文件确定;比较所述度量值和基准度量值是否一致,根据比较结果确定所述镜像文件是否被篡改。
上述方案中,所述文件系统度量模块,还用于在所述初始镜像文件来自本地的情况下,对所述初始镜像文件进行度量,获得基准度量值;
所述处理组件,还用于发送所述初始镜像文件至镜像服务器;还用于从所述镜像服务器获取所述镜像文件。
上述方案中,所述容器安全保护装置还包括进程监控模块;
所述处理组件,还用于在所述镜像文件来自公共镜像服务器、私有镜像服务器或者来自本地的情况下,基于所述镜像文件启动容器;
所述进程监控模块,用于在所述容器运行的过程中,对所述容器对应的进程进行监控,拦截满足预设条件的进程;其中,所述拦截满足预设条件的进程,包括以下其中之一:拦截未出现在预设白名单中的进程;拦截出现在预设黑名单中的进程;拦截满足设置的拦截策略的进程。
上述方案中,所述容器安全保护装置还包括网络监控模块;
所述处理组件,还用于在所述镜像文件来自公共镜像服务器、私有镜像服务器或者来自本地的情况下,基于所述镜像文件启动容器;
所述网络监控模块,用于基于预先配置的网络地址集合和/或端口集合、以及配置的网络监控策略对所述容器的网络访问状态进行监控。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例所述的容器安全保护方法的步骤。
本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明实施例所述的容器安全保护方法的步骤。
本发明实施例提供的容器安全保护方法和电子设备,所述容器安全保护方法应用于容器安全保护装置中,所述方法包括:在BIOS上电启动后,启动操作系统及启动所述容器安全保护装置,所述容器安全保护装置至少包括用于对应用容器引擎进行度量的文件系统度量模块;在应用容器引擎首次启动时,所述文件系统度量模块对所述应用容器引擎的可执行文件和配置文件进行度量,获得第一度量结果;间隔预设时长后,所述文件系统度量模块再次对所述应用容器引擎的可执行文件和配置文件进行度量,获得第二度量结果;比较所述第一度量结果和所述第二度量结果是否一致,根据比较结果确定所述应用容器引擎是否被篡改。采用本发明实施例的技术方案,一方面,本实施例的容器安全保护装置在主机BIOS上电启动以及操作系统系统后随之启动,能够实现在应用容器引擎启动之前启动本实施例的容器安全保护装置,从而实现在应用容器引擎启动之前启动容器安全保护;另一方面,通过在应用容器引擎启动之前启动容器安全保护,在应用容器引擎首次启动的情况下实现了对可执行文件和配置文件的可靠度量,提升了作为基准的第一度量结果的可靠性;又一方面,将首次启动应用容器引擎的场景下获得的第一度量结果作为基准,将后续再次启动应用容器引擎而获得的第二度量结果与作为基准的第一度量结果进行比较,从而判定应用容器引擎是否被篡改,实现了容器安全保护。
附图说明
图1为本发明实施例的容器安全保护方法的流程示意图一;
图2为本发明实施例的容器安全保护方法应用的系统架构示意图;
图3为本发明实施例的容器安全保护方法的流程示意图二;
图4为本发明实施例的容器安全保护方法的流程示意图二;
图5为本发明实施例的电子设备的组成结构示意图一;
图6为本发明实施例的电子设备的组成结构示意图二;
图7为本发明实施例的电子设备的组成结构示意图三;
图8为本发明实施例的电子设备的硬件组成结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细的说明。
本发明实施例提供了一种容器安全保护方法,所述容器安全保护方法应用于容器安全保护装置中。图1为本发明实施例的容器安全保护方法的流程示意图一;如图1所示,所述方法包括:
步骤101:在BIOS上电启动后,启动操作系统及启动所述容器安全保护装置;所述容器安全保护装置至少包括用于对应用容器引擎进行度量的文件系统度量模块;
步骤102:在应用容器引擎首次启动时,所述文件系统度量模块对所述应用容器引擎的可执行文件和配置文件进行度量,获得第一度量结果;
步骤103:间隔预设时长后,所述文件系统度量模块再次对所述应用容器引擎的可执行文件和配置文件进行度量,获得第二度量结果;
步骤104:比较所述第一度量结果和所述第二度量结果是否一致,根据比较结果确定所述应用容器引擎是否被篡改。
本实施例的容器安全保护方法应用于容器安全保护装置中,所述容器安全保护装置加载在主机的操作系统中。
图2为本发明实施例的容器安全保护方法应用的系统架构示意图;如图2所示,主机可以理解为物理机,主机(即物理机)上安装的操作系统也可称为宿主系统(Host OS)。则本实施例中的容器安全保护装置可以通过插件的方式加载在主机的操作系统中。进一步可在操作系统上利用虚拟化工具虚拟出若干虚拟分区。在各虚拟分区中,可通过镜像文件启动容器,在容器运行过程中可加载应用程序(APP)。其中,应用容器引擎(Docker engine)是整个容器的主体,负责管理主机上的所有容器,并负责接收和处理主机上的所有容器及其应用对资源的所有请求。
本实施例中,由于应用容器引擎在正常安装并使用后,可能会遭到攻击者的篡改或植入木马、病毒等,从而给应用容器引擎带来安全隐患。而应用容器引擎是容器安全的基础,一旦应用容器引擎被篡改,则主机上的容器的安全性将无法保障。因此,本实施例的一个目的是对应用容器引擎的安全保护。
本实施例中,将首次启动的应用容器引擎判定为安全的、未经篡改的应用容器引擎,将判定为安全的、未经篡改的应用容器引擎下的可执行文件和配置文件的第一度量结果作为基准;后续在应用容器引擎在运行过程中、或者退出后再次启动后,对再次启动的应用容器引擎下的可执行文件和配置文件的再次度量获得的第二度量结果,与作为基准的第一度量结果进行比较,根据比较结果确定所述应用容器引擎是否被篡改。
其中,应用容器引擎首次启动指的是在主机的BIOS上电启动后,启动操作系统,再启动本实施例的容器安全保护装置,在容器安全保护装置已启动的情况下,启动应用容器引擎,并通过容器安全保护装置中的文件度量模块对启动的应用容器引擎的可执行文件和配置文件进行度量。其中,所述应用容器引擎首次启动可以理解为,终端在启动操作系统后首次启动该应用容器引擎,即首次启动应用容器引擎之前,未启动过应用容器引擎,也未使用容器服务。
本实施例中的所述预设时长可依据需要设定任意取值,本实施例中对此不做限定。
本实施例中,对于同一资源池或者同一业务系统来说,通常来说,主机上运行的是同一套应用容器引擎程序。因此,对于同一版本配置相同的应用容器引擎可以共用作为基准的第一度量结果。
在本发明的一种可选实施例中,所述根据比较结果确定所述应用容器引擎是否被篡改,包括:在所述第一度量结果和所述第二度量结果一致的情况下,确定所述应用容器引擎未被篡改;在所述第一度量结果和所述第二度量结果不一致的情况下,确定所述应用容器引擎被篡改。
本实施例中,在第一度量结果和第二度量结果一致的情况下,则可判定应用容器引擎未被篡改,则可允许正常启动应用容器引擎。相应的,在判定应用容器引擎未被篡改的情况下,所述方法还包括:确定允许启动应用容器引擎。在第一度量结果和第二度量结果不一致的情况下,则可判定应用容器引擎被篡改,在这种情况下不可正常启动应用容器引擎。相应的,在判定应用容器引擎被篡改的情况下,所述方法还包括:输出提示信息,所述提示信息用于表示应用容器引擎可能被篡改。其中,所述提示信息可用于建议管理人员暂不启动应用容器引擎,而进行进一步的安全检测甚至修复。
在本发明的一种可选实施例中,对所述应用容器引擎的可执行文件和配置文件进行度量,包括:获取所述应用容器引擎的可执行文件和配置文件的以下信息的至少之一:版本信息、开启的服务、开放的端口;基于所述版本信息、开启的服务和开放的端口中的至少一种信息确定哈希值,基于所述哈希值获得所述第一度量结果或所述第二度量结果。
本实施例中,在主机上电后首次启动应用容器引擎的场景下、对应用容器引擎的可执行文件和配置文件进行度量,度量的内容可包括版本信息、开启的服务、开放的端口中的至少一种信息,基于所述版本信息、开启的服务和开放的端口中的至少一种信息确定哈希(hash)值,即第一度量结果可包括由版本信息、开启的服务、开放的端口中的至少一种维度的信息确定的哈希值;相应的,第二度量结果中包括的信息类型可与第一度量结果中包括的信息类型相同。
下面结合具体的应用场景对本发明实施例的容器安全保护方法进行详细说明。
图3为本发明实施例的容器安全保护方法的流程示意图二;本实施例中的容器安全保护方法应用于容器安全保护装置中,容器安全保护装置中可包括用于对应用容器引擎(即Docker引擎)进行度量的文件系统度量模块。如图3所示,所述方法可包括:
步骤201:应用容器引擎所在的主机的BIOS上电启动,主机上的操作系统正常启动。
步骤202:启动所述容器安全保护装置,也即启动了文件系统度量模块。
步骤203:应用容器引擎首次启动,文件系统度量模块检测到该应用容器引擎,也即主机之前尚未启动应用容器引擎,也未使用容器服务。
步骤204:文件系统度量模块对应用容器引擎的可执行文件和配置文件进行度量,获得第一度量结果,并将第一度量结果保存到所述容器安全保护装置的加密存储模块中。
其中,第一度量结果将作为该主机上应用容器引擎的基准度量值,也即,度量模块将主机上电后首次安装尚未使用的应用容器引擎认定为安全的、未被篡改的。
步骤205:在主机上的应用容器引擎退出并再次启动的场景下,文件系统度量模块再次检测到主机部署应用容器引擎,对应用容器引擎的可执行文件和配置文件进行度量,获得第二度量结果。
步骤206:比较第二度量结果与所述加密存储模块中保存的第一度量结果是否一致。
步骤207:在第二度量结果与第一度量结果比较一致的情况下,则确定应用容器引擎未被篡改,允许启动应用容器引擎;
步骤208:在第二度量结果与第一度量结果比较不一致的情况下,则确定应用容器引擎有可能被篡改,输出提示信息,所述提示信息表征应用容器引擎可能被篡改,并向管理人员建议暂不启动应用容器引擎而进行进一步安全检测和修复。
采用本发明实施例的技术方案,一方面,本实施例的容器安全保护装置在主机BIOS上电启动以及操作系统系统后随之启动,能够实现在应用容器引擎启动之前启动本实施例的容器安全保护装置,从而实现在应用容器引擎启动之前启动容器安全保护;另一方面,通过在应用容器引擎启动之前启动容器安全保护,在应用容器引擎首次启动的情况下实现了对可执行文件和配置文件的可靠度量,提升了作为基准的第一度量结果的可靠性;又一方面,将首次启动应用容器引擎的场景下获得的第一度量结果作为基准,将后续再次启动应用容器引擎而获得的第二度量结果与作为基准的第一度量结果进行比较,从而判定应用容器引擎是否被篡改,实现了容器安全保护。
基于前述实施例,本发明实施例还提供了一种容器安全保护方法,所述容器安全保护方法应用于容器安全保护装置中。图4为本发明实施例的容器安全保护方法的流程示意图三;如图4所示,所述方法包括:
步骤301:在BIOS上电启动后,启动操作系统及启动所述容器安全保护装置;所述容器安全保护装置至少包括用于对应用容器引擎进行度量的文件系统度量模块;
步骤302:启动应用容器引擎,获取镜像文件;
步骤303:所述文件系统度量模块基于所述镜像文件确定度量值,以及获得基准测量值;所述基准度量值基于来自本地的初始镜像文件确定;
步骤304:比较所述度量值和基准度量值是否一致,根据比较结果确定所述镜像文件是否被篡改。
本实施例中,镜像文件可用于启动容器。镜像文件的来源包括:1、用户在本地制作镜像文件,制作完成的镜像文件可发送到公共镜像服务器供用户或其他用户获取,或者也可以发送到私有的镜像服务器中供用户获取;2、从公共镜像服务器或私有的镜像服务器获得所需要的镜像文件,这种方式所获得的镜像文件可以是用户上传的镜像文件,也可以是其他用户上传的镜像文件。
则在本发明的一种可选实施例中,所述方法还包括:在所述初始镜像文件来自本地的情况下,所述文件系统度量模块对所述初始镜像文件进行度量,获得基准度量值;发送所述初始镜像文件至镜像服务器;相应的,所述获取镜像文件,包括:从所述镜像服务器获取所述镜像文件。
针对在本地制作镜像文件的场景下,本地制作的镜像文件可记为初始镜像文件;初始镜像文件在上传到公共镜像服务器或私有的镜像服务器之前,该初始镜像文件可被认定为是安全的、未被篡改的。基于此,可对初始镜像文件进行度量,确定基准度量值,并将基准度量值保存在加密存储模块或安全的数据库中。
本实施例中,所述获取镜像文件,包括:从镜像服务器获得所述镜像文件。其中,所述镜像服务器可以是公共镜像服务器,也可以是私有的镜像服务器,无论从公共镜像服务器或是私有的镜像服务器中获取镜像文件,所获得的镜像文件均有可能被篡改。基于此,本实施例基于度量值和基准度量值进行比较,根据比较结果确定所述镜像文件是否被篡改。
在本发明的一种可选实施例中,所述根据所述比较结果确定所述镜像文件是否被篡改,包括:在所述度量值和所述基准度量值一致的情况下,确定所述镜像文件未被篡改;在所述度量值和所述基准度量值不一致的情况下,确定所述镜像文件被篡改。
本实施例中,在度量值和基准度量值一致的情况下,可确定镜像文件未被篡改,可基于该镜像文件启动容器。在度量值和基准度量值不一致的情况下,可确定镜像文件被篡改,可输出用于表示镜像文件被篡改的提示信息,所述提示信息可用于建议管理人员进行进一步的安全检测甚至修复。
本实施例中,对所述镜像文件进行度量获得度量值;其中,对镜像文件进行度量的内容包括但不限于以下至少之一:镜像文件的镜像层、只读层、初始化层、读写层以及镜像中所有的软件包以及对应的版本信息等,还可包括镜像文件内的关键文件,如“/etc/ssh/ssh_host_dsa_key”、“/home/user/.ssh/id_rsa”等内容。进一步基于度量的各部分内容确定度量值,所述度量值具体可以是哈希(hash)值。相应的,基准度量值与度量值的度量内容以及确定方式相近,这里不再赘述。
下面结合具体的应用场景对本发明实施例的容器安全保护方法进行详细说明。本应用场景中的容器安全保护方法应用于容器安全保护装置中,容器安全保护装置中可包括用于对镜像文件进行度量的文件系统度量模块以及加密存储模块。
1、主机BIOS上电启动,启动操作系统及启动容器安全保护装置,启动应用容器引擎(即Docker引擎);
2、从镜像服务器获取镜像文件,文件系统度量模块对镜像文件进行度量,获得度量值;
3、从加密存储模块或数据库中获取该镜像文件对应的基准度量值;其中,基准度量值基于本地制作的镜像文件(也可称为初始镜像文件)而确定;
4、比较度量值与基准度量值;若度量值与基准度量值比较一致,则判定镜像文件是安全的、未被篡改的,基于该镜像文件启动容器;若度量值与基准度量值比较不一致,则判定镜像文件有可能被篡改,建议管理人员进行进一步的安全检测和修复之后再使用。
针对从镜像服务器中获取镜像文件的场景,由于缺乏镜像文件的基准度量值,因此无法对这种场景下的镜像文件进行完整性度量。因此,本实施例对基于镜像文件启动容器后的运行过程进行监测。
在本发明的一种可选实施例中,在所述镜像文件来自公共镜像服务器、私有镜像服务器或者来自本地的情况下,所述方法还包括:基于所述镜像文件启动容器;在所述容器运行的过程中,所述容器安全保护装置中的进程监控模块对所述容器对应的进程进行监控,拦截满足预设条件的进程;
其中,所述拦截满足预设条件的进程,包括以下其中之一:拦截未出现在预设白名单中的进程;拦截出现在预设黑名单中的进程;拦截满足设置的拦截策略的进程。
本实施例中,通过所述进程监控模块对容器运行过程中的进程进行监控。示例性的,所述进程监控模块可根据容器运行的业务安全需求,由管理员动态灵活配置监控策略,基于监控策略对容器运行过程中的进程进行监控。
在一种实施方式中,可根据所述监控策略预先设置白名单或黑名单,所述进程监控模块基于白名单对进程进行监控,对所述白名单中不存在的进程进行拦截;所述进程监控模块基于黑名单对进程进行监控,对所述黑名单中的进程进行拦截。在另一种实施方式,还可基于用户配置的或自定义的监控策略对进程进行进程监控。
在本发明的一种可选实施例中,在所述镜像文件来自公共镜像服务器、私有镜像服务器或者来自本地的情况下,所述方法还包括:基于所述镜像文件启动容器;在所述容器运行的过程中,所述容器安全保护装置中的网络监控模块基于预先配置的网络地址集合和/或端口集合、以及配置的网络监控策略对所述容器的网络访问状态进行监控。
本实施例中,通过网络监控模块对容器运行过程中的网络访问状态进行监控。所述网络监控模块可根据容器运行的业务安全需求,由管理员动态灵活配置监控策略,基于监控策略对容器运行过程中的网络访问状态进行监控。
在一种实施方式中,可根据监控策略预先设置IP白名单和/或端口白名单,基于IP白名单和/或端口白名单对网络访问状态进行监控。在另一种实施方式中,还可基于用户配置的或自定义的监控策略对网络访问状态进行监控。
示例性的,所述网络监控模块获得IP白名单和/或端口白名单(即网络地址集合和/或端口集合),将IP白名单和/或端口白名单转换为IP表(IP tables)文件,基于该IP表(IP tables)文件实现对网络访问状态的监控。另一方面,所述网络监控模块还可检测容器的开放端口,并要求启用双向认证,确定端口白名单,由此确定允许容器与之通信的主机的IP地址及端口。
本实施例中的进程监控和网络访问状态监控适用于从镜像服务器中获得的镜像文件、基于该镜像文件运行的容器,也适用于本地制作的镜像文件、基于该镜像文件运行的容器。
采用本发明实施例的技术方案,第一方面,本实施例的容器安全保护装置在主机BIOS上电启动以及操作系统系统后随之启动,能够实现在应用容器引擎启动之前启动本实施例的容器安全保护装置,从而实现在应用容器引擎启动之前启动容器安全保护;第二方面,通过在应用容器引擎启动之前启动容器安全保护,在应用容器引擎首次启动的情况下实现了对可执行文件和配置文件的可靠度量,提升了作为基准的第一度量结果的可靠性;第三方面,将首次启动应用容器引擎的场景下获得的第一度量结果作为基准,将后续再次启动应用容器引擎而获得的第二度量结果与作为基准的第一度量结果进行比较,从而判定应用容器引擎是否被篡改,实现了容器安全保护;第四方面,通过对镜像文件的度量实现了镜像文件是否被篡改的判定,以及通过进程监控和/或网络访问状态监控,实现了在容器运行过程中的保护。
本发明实施例提供了一种电子设备。图5为本发明实施例的电子设备的组成结构示意图一;如图5所示,所述电子设备包括:处理组件41和容器安全保护装置42;其中,所述容器安全保护装置42至少包括文件系统度量模块421;其中,
所述处理组件41,用于在BIOS上电启动后,启动操作系统及启动所述容器安全保护装置42;
所述文件系统度量模块421,用于在应用容器引擎首次启动时,对所述应用容器引擎的可执行文件和配置文件进行度量,获得第一度量结果;间隔预设时长后,再次对所述应用容器引擎的可执行文件和配置文件进行度量,获得第二度量结果;比较所述第一度量结果和所述第二度量结果是否一致,根据比较结果确定所述应用容器引擎是否被篡改。
在本发明的一种可选实施例中,所述文件系统度量模块421,用于在所述第一度量结果和所述第二度量结果一致的情况下,确定所述应用容器引擎未被篡改;在所述第一度量结果和所述第二度量结果不一致的情况下,确定所述应用容器引擎被篡改。
在本发明的一种可选实施例中,所述文件系统度量模块421,用于获取所述应用容器引擎的可执行文件和配置文件的以下信息的至少之一:版本信息、开启的服务、开放的端口;基于所述版本信息、开启的服务和开放的端口中的至少一种信息确定哈希值,基于所述哈希值获得所述第一度量结果或所述第二度量结果。
在本发明的一种可选实施例中,所述处理组件41,还用于启动所述容器安全保护装置42后,启动应用容器引擎,获取镜像文件;
所述文件系统度量模块421,还用于基于所述镜像文件确定度量值,以及获得基准测量值;所述基准度量值基于来自本地的初始镜像文件确定;比较所述度量值和基准度量值是否一致,根据比较结果确定所述镜像文件是否被篡改。
在本发明的一种可选实施例中,所述文件系统度量模块421,还用于在所述初始镜像文件来自本地的情况下,对所述初始镜像文件进行度量,获得基准度量值;
所述处理组件41,还用于发送所述初始镜像文件至镜像服务器;还用于从所述镜像服务器获取所述镜像文件。
在本发明的一种可选实施例中,所述文件系统度量模块421,还用于在所述度量值和所述基准度量值一致的情况下,确定所述镜像文件未被篡改;在所述度量值和所述基准度量值不一致的情况下,确定所述镜像文件被篡改。
在本发明的一种可选实施例中,如图7所示,所述容器安全保护装置还包括进程监控模块422;
所述处理组件41,还用于在所述镜像文件来自公共镜像服务器、私有镜像服务器或者来自本地的情况下,基于所述镜像文件启动容器;
所述进程监控模块422,用于在所述容器运行的过程中,对所述容器对应的进程进行监控,拦截满足预设条件的进程;其中,所述拦截满足预设条件的进程,包括以下其中之一:拦截未出现在预设白名单中的进程;拦截出现在预设黑名单中的进程;拦截满足设置的拦截策略的进程。
在本发明的一种可选实施例中,如图7所示,所述容器安全保护装置还包括网络监控模块423;
所述处理组件41,还用于在所述镜像文件来自公共镜像服务器、私有镜像服务器或者来自本地的情况下,基于所述镜像文件启动容器;
所述网络监控模块423,用于基于预先配置的网络地址集合和/或端口集合、以及配置的网络监控策略对所述容器的网络访问状态进行监控。
本发明实施例中,所述电子设备中的处理组件41、所述容器安全保护装置42(包括所述文件系统度量模块421、进程监控模块422和网络监控模块423),在实际应用中均可由中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital SignalProcessor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)实现。
需要说明的是:上述实施例提供的电子设备在进行容器安全保护时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将电子设备的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的电子设备与容器安全保护方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例还提供了一种电子设备,图8为本发明实施例的电子设备的硬件组成结构示意图,如图8所示,所述电子设备50包括存储器52、处理器51及存储在存储器52上并可在处理器51上运行的计算机程序,所述处理器51执行所述程序时实现本发明实施例所述方法的步骤。
可以理解,电子设备50中还可包括通讯接口53。电子设备50中的各个组件可通过总线系统54耦合在一起。可理解,总线系统54用于实现这些组件之间的连接通信。总线系统54除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统54。
可以理解,存储器52可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器52旨在包括但不限于这些和任意其它适合类型的存储器。
上述本发明实施例揭示的方法可以应用于处理器51中,或者由处理器51实现。处理器51可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器51中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器51可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器51可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器52,处理器51读取存储器52中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,电子设备50可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、FPGA、通用处理器、控制器、MCU、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例所述方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
- 一种容器安全保护方法和电子设备
- 一种数据安全保护方法、装置、介质及电子设备