容器逃逸检测方法、装置、系统及存储介质制造方法及图纸

技术编号:26045225 阅读:85 留言:0更新日期:2020-10-23 21:25
一种容器逃逸检测方法、装置、系统及存储介质,涉及容器安全领域,其中方法包括:逃逸检测组件(12)接收所述容器监测组件(11)上报的被监测容器触发的多个系统调用的信息,逃逸检测组件(12)将所述多个系统调用的发生顺序与逃逸检测规则中的至少一组预设系统调用顺序进行匹配,并根据匹配结果确定所述被监测容器是否发生逃逸,逃逸检测规则中的每组预设系统调用顺序对应于一种容器逃逸行为所触发的多个系统调用的预测发生顺序。能够提高防范容器逃逸的力度。

【技术实现步骤摘要】
【国外来华专利技术】容器逃逸检测方法、装置、系统及存储介质
本申请涉及容器安全领域,特别涉及一种容器逃逸检测方法、装置、系统及存储介质。
技术介绍
云计算(英文:Cloud Computing)是一种通过网络以服务的方式提供动态可伸缩的虚拟化资源的计算模式,其中,平台即服务(英文:Platform as a Service;简称:PaaS)是云计算的一种主要的模式。在PaaS模式中,云计算平台可以为每一个用户分配一个宿主机集群,该宿主机集群可以包括至少一个宿主机,其中,宿主机可以为物理机或虚拟机。用户可以在分配的宿主机集群的宿主机中基于容器镜像创建并运行容器,其中,每一个容器都拥有一个独立的进程运行空间,理想情况下,容器中的进程只能在该容器的进程运行空间中运行。然而,当容器中存在有恶意进程时,该恶意进程很可能会脱离容器的进程运行空间,继而对宿主机或其他容器展开攻击,这种现象被称为容器逃逸。相关技术中,为了防范容器逃逸,在某一容器运行前,宿主机可以判断该容器是否拥有一些敏感的系统权限(例如,该敏感的系统权限可以为dac_override_capability系统权限),在宿主机确定该容器拥有敏感的系统权限时,宿主机可以拒绝该容器的运行,从而避免容器中的恶意进程基于该敏感的系统权限对宿主机或其他容器展开攻击。在实现本申请的过程中,专利技术人发现现有技术至少存在以下问题:相关技术仅能在容器运行前被动地对容器逃逸进行防范,而对容器运行后发生的容器逃逸事件无法检测防范,因此,对容器逃逸的防范力度较低。
技术实现思路
申请提供了一种容器逃逸检测方法、装置、系统及存储介质,能够提高对容器逃逸的防范力度。第一方面,提供了一种计算系统中容器逃逸检测方法,该计算系统包括至少一台宿主机,所述宿主机上运行容器监测组件和至少一个容器,所述计算系统还包括逃逸检测组件,所述逃逸检测组件设置有逃逸检测规则,所述逃逸检测规则包括至少一组预设系统调用顺序,每组预设系统调用顺序对应于一种容器逃逸行为所触发的多个系统调用的预测发生顺序;该方法包括:所述逃逸检测组件接收所述容器监测组件上报的被监测容器触发的多个系统调用的信息;所述逃逸检测组件将所述多个系统调用的发生顺序与所述逃逸检测规则中的至少一组预设系统调用顺序进行匹配,并根据匹配结果确定所述被监测容器是否发生逃逸。在容器逃逸发生的过程中,容器中的恶意进程会不断地通过暴力破解的方式尝试获取宿主机文件的句柄,在获取到宿主机文件的句柄后,该恶意进程可以篡改宿主机中的敏感文件,从而完成容器逃逸攻击,而在暴力破解宿主机文件句柄的过程中,恶意进程往往需要按照一定的顺序使用宿主机中的系统调用(英文:system call)。因此,逃逸检测组件可以根据被监测容器中的进程使用宿主机中的多个系统调用的发生顺序与预设系统调用顺序之间的相似程度,确定第一容器发生容器逃逸的可能性,其中,预设系统调用顺序为发生容器逃逸时,容器中的恶意进程使用宿主机中多个系统调用的预测发生顺序,这使得逃逸检测组件可以对容器运行后发生的容器逃逸事件进行检测,从而提高到了对容器逃逸的防范力度。具体地,逃逸检测组件上可以预先配置逃逸检测规则,该逃逸检测规则包含至少一组预设系统调用顺序,每组系统调用顺序对应于一种容器逃逸行为所触发的多个系统调用的预测发生顺序。当逃逸检测组件获取目标顺序信息之后,可以将目标顺序信息与逃逸检测规则中的至少一组预设系统调用顺序进行匹配以确定第一容器逃逸的可能性,也就是可能性标识。可选地,逃逸检测规则还包括预定义的至少一种与容器逃逸相关的高危系统能力;所述方法还包括:所述逃逸检测组件接收所述容器监测组件上报的被监测容器的启动参数,所述启动参数包含所述被监测容器启用的系统能力;所述逃逸检测组件根据预设的所述逃逸检测规则以及所述被监测容器的启用的系统能力,确定所述被监测容器是否发生逃逸。Shocker攻击运行需要使用一些特定的对系统调用(system call)的能力,例如使用dac_override的能力或者使用dac_read_search的能力。攻击者在启动(docker run)shocker攻击的时候,docker run的命令中会增加一些特定的系统能力参数。逃逸检测组件可以利用容器启动参数中容器启动的系统能力来检测容器的逃逸可能性,在逃逸检测规则中预先配置高危敏感的系统能力,每种高危系统能力对应一个逃逸可能性(可能性标识)。容器监测组件通过调用docker.socket接口可以获取容器启动参数,并上报到容器逃逸检测组件,容器逃逸检测组件根据预设的所述逃逸检测规则以及所述被监测容器的启用的系统能力,确定所述被监测容器是否发生逃逸。可选的,所述逃逸检测组件确定所述被监测容器是否发生逃逸具体包括:获取目标状态机,所述目标状态机包括初始状态、最终状态以及由所述初始状态转移至所述最终状态所需满足的状态转移条件,所述状态转移条件为输入的顺序信息所指示的顺序与所述预设系统调用顺序相同的条件;在所述目标状态机处于所述初始状态时,将所述目标顺序信息输入至所述目标状态机;当所述目标状态机由所述初始状态转移至所述最终状态时,确定所述第一容器发生了容器逃逸。可选的,所述获取目标状态机,包括:获取所述被监测容器的第一进程的进程标识;根据所述第一进程的进程标识查询状态机数据库,所述状态机数据库中存储有至少一组状态机与进程标识的对应关系;当所述状态机数据库中存储有与所述第一进程的进程标识对应的状态机时,将所述状态机获取为所述目标状态机。可选的,所述获取目标状态机,还包括:当所述状态机数据库中没有存储与所述第一进程的进程标识对应的状态机时,根据所述预设系统调用顺序创建状态机;将创建的所述状态机获取为所述目标状态机。可选的,所述逃逸检测规则采用目标决策树表达,所述目标决策树包括至少一个分支,每个分支包括系统能力节点和有序的多个系统调用节点,每个分支的系统能力节点对应于一种高危系统能力,每个分支的多个系统调用节点的预设顺序代表启用该分支的系统能力节点所描述的高危系统能力的容器发生逃逸时所触发的多个系统调用的预测发生顺序,所述目标决策树的每个分支的每个节点上都预先设置有相应的可能性标识;所述逃逸检测组件确定所述被监测容器是否发生逃逸具体包括:所述逃逸检测组件在接收到所述被监测容器的启动参数后,根据获取到的所述被监测容器的启用的系统能力,与所述目标决策树中的各个系统能力节点进行匹配,获取匹配成功的系统能力节点对应的第一可能性标识,将所述第一可能性标识作为所述被监测容器当前的可能性标识;所述逃逸检测组件在接收到所述被监测容器触发的多个系统调用的信息后,确定所述多个系统调用的实际发生顺序,将所述多个系统调用的实际发生顺序与匹配成功的系统能力节点所在的分支的预设顺序进行匹配,若在匹配成功的系统能力节点所在的分支的第n个系统调用节点匹配成功,获取所述第n个系统调用节点所对应的第二可能性标识,使用所述第二可能性标识更新所述被监测容器当前的可能性标识。...

【技术保护点】
一种计算系统中容器逃逸检测方法,其特征在于,所述计算系统包括至少一台宿主机,所述宿主机上运行容器监测组件和至少一个容器,所述计算系统还包括逃逸检测组件,所述逃逸检测组件设置有逃逸检测规则,所述逃逸检测规则包括至少一组预设系统调用顺序,每组预设系统调用顺序对应于一种容器逃逸行为所触发的多个系统调用的预测发生顺序;/n所述方法包括:/n所述逃逸检测组件接收所述容器监测组件上报的被监测容器触发的多个系统调用的信息;/n所述逃逸检测组件将所述多个系统调用的发生顺序与所述逃逸检测规则中的至少一组预设系统调用顺序进行匹配,并根据匹配结果确定所述被监测容器是否发生逃逸。/n

【技术特征摘要】
【国外来华专利技术】20180316 CN PCT/CN2018/079338一种计算系统中容器逃逸检测方法,其特征在于,所述计算系统包括至少一台宿主机,所述宿主机上运行容器监测组件和至少一个容器,所述计算系统还包括逃逸检测组件,所述逃逸检测组件设置有逃逸检测规则,所述逃逸检测规则包括至少一组预设系统调用顺序,每组预设系统调用顺序对应于一种容器逃逸行为所触发的多个系统调用的预测发生顺序;
所述方法包括:
所述逃逸检测组件接收所述容器监测组件上报的被监测容器触发的多个系统调用的信息;
所述逃逸检测组件将所述多个系统调用的发生顺序与所述逃逸检测规则中的至少一组预设系统调用顺序进行匹配,并根据匹配结果确定所述被监测容器是否发生逃逸。


根据权利要求1所述的方法,其特征在于,所述逃逸检测规则还包括预定义的至少一种与容器逃逸相关的高危系统能力;
所述方法还包括:
所述逃逸检测组件接收所述容器监测组件上报的被监测容器的启动参数,所述启动参数包含所述被监测容器启用的系统能力;
所述逃逸检测组件根据预设的所述逃逸检测规则以及所述被监测容器的启用的系统能力,确定所述被监测容器是否发生逃逸。


根据权利要求1或2所述的方法,其特征在于,还包括:
所述逃逸检测组件接收所述容器监测组件上报的敏感文件篡改信息,所述敏感文件篡改信息是所述容器监测组件在监测到所述被监测容器中的进程对所述被监测容器的宿主机中预设的敏感文件进行写操作后发送的;
所述逃逸检测组件基于所述敏感文件篡改信息,确定所述被监测容器发生了容器逃逸。


根据权利要求1-3任一项所述的方法,其特征在于,还包括:
所述逃逸检测组件根据所述被监测容器是否发生逃逸,发送容器逃逸事件报告或逃逸告警。


根据权利要求1-4任一项所述的方法,其特征在于,所述逃逸检测规则采用目标决策树表达,所述目标决策树包括至少一个分支,每个分支包括系统能力节点和有序的多个系统调用节点,每个分支的系统能力节点对应于一种高危系统能力,每个分支的多个系统调用节点的预设顺序代表启用该分支的系统能力节点所描述的高危系统能力的容器发生逃逸时所触发的多个系统调用的预测发生顺序,所述目标决策树的每个分支的每个节点上都预先设置有可能性标识,所述可能性标识的大小指示容器逃逸的可能性大小;
所述逃逸检测组件确定所述被监测容器是否发生逃逸具体包括:
所述逃逸检测组件在接收到所述被监测容器的启动参数后,根据获取到的所述被监测容器的启用的系统能力,与所述目标决策树中的各个系统能力节点进行匹配,获取匹配成功的系统能力节点对应的第一可能性标识,将所述第一可能性标识作为所述被监测容器当前的可能性标识;
所述逃逸检测组件在接收到所述被监测容器触发的多个系统调用的信息后,确定所述多个系统调用的实际发生顺序,将所述多个系统调用的实际发生顺序与匹配成功的系统能力节点所在的分支的预设顺序进行匹配,若在匹配成功的系统能力节点所在的分支的第n个系统调用节点匹配成功,获取所述第n个系统调用节点所对应的第二可能性标识,使用所述第二可能性标识更新所述被监测容器当前的可能性标识。


根据权利要求1-4任一项所述的方法,其特征在于,所述逃逸检测组件确定所述被监测容器是否发生逃逸具体包括:
获取目标状态机,所述目标状态机包括初始状态、最终状态以及由所述初始状态转移至所述最终状态所需满足的状态转移条件,所述状态转移条件为输入的顺序信息所指示的顺序与所述预设系统调用顺序相同的条件;
在所述目标状态机处于所述初始状态时,将所述多个系统调用的发生顺序输入至所述目标状态机;
当所述目标状态机由所述初始状态转移至所述最终状态时,确定所述被监测容器发生了容器逃逸。


一种计算系统中容器逃逸检测方法,其特征在于,所述计算系统包括至少一台宿主机,所述宿主机上运行容器监测组件和至少一个容器,所述计算系统还包括逃逸检测组件,所述逃逸检测组件设置有逃逸检测规则,所述逃逸检测规则包括至少一组预设系统调用顺序,每组系统调用顺序对应于一种容器逃逸行为所触发的多个系统调用的预测发生顺序;
所述方法包括:
所述容器监测组件对被监测容器的运行情况进行监测;
所述容器监测组件向所述逃逸检测组件上报所述被监测容器触发的多个系统调用的信息,所述多个系统调用的发生顺序用于与所述逃逸检测规则进行匹配以确定所述被监测容器是否发生逃逸。


根据权利要求7所述的方法,其特征在于,还包括:
所述容器监测组件向所述逃逸检测组件上报所述被监测容器的信息,所述被监测容器的信息包括所述被监测容器的ID或所述被监测容器的启动的进程ID;
所述容器监测组件接收所述逃逸检测组件根据所述被监测容器的信息下发的审计规则,所述审计规则指示所述容器监测组件对所述被监测容器的系统调用事件进行审计;
所述容器监测组件向所述逃逸检测组件上报所述被监测容器触发的多个系统调用的信息包括:
所述容器监测组件在监测到所述被监测容器触发的系统调用事件后,向所述逃逸检测组件上报审计报告,所述审计报告携带所述被监测容器触发的多个系统调用的信息。


根据权利要求7或8所述的方法,其特征在于,所述逃逸检测规则还包括预定义的至少一种与容器逃逸相关的高危系统能力;
所述方法还包括:
所述容器监测组件在监测到所述被监测容器启动后,向所述逃逸检测组件上报所述被监测容器的启动参数,所述启动参数包含所述被监测容器启用的系统能力,所述被监测容器启用的系统能力用于与所述逃逸检测规则进行匹配以确定所述被监测容器是否发生逃逸。


根据权利要求9所述的方法,其特征在于,所述容器监测组件向所述逃逸检测组件上报被监测容器的启动参数包括:
所述容器监测组件调用docker socket接口获取所述被监测容器的启动参数,向所述逃逸检测组件上报携带所述被监测容器的启动参数的docker run命令。


根据权利要求7-10任一项所述的方法,其特征在于,还包括:
所述容器监测组件向所述逃逸检测组件上报敏感文件篡改信息,所述敏感文件篡改信息是所述容器监测组件在监测到所述被监测容器中的进程对所述被监测容器的宿主机中预设的敏感文件进行写操作后发送的。


一种计算系统中容器逃逸检测方法,其特征在于,所述计算系统包括至少一台宿主机,所述宿主机上运行容器监测组件和至少一个容器,所述计算系统还包括逃逸检测组件,所述逃逸检测组件设置有逃逸检测规则,所述逃逸检测规则包括预定义的至少一种与容器逃逸相关的高危系统能力;
所述方法包括:
所述逃逸检测组件接收所述容器监测组件上报的被监测容器的启动参数,所述启动参数包含所述被监测容器启用的系统能力;
所述逃逸检测组件根据预设的所述逃逸检测规则以及所述被监测容器的启用的系统能力,确定所述被监测容器是否发生逃逸。


根据权利要求12所述的方法,其特征在于,所述逃逸检测规则还包括至少一组预设系...

【专利技术属性】
技术研发人员:张煜匡大虎俞岳陈宇
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1