一种Docker容器的创建方法和创建系统技术方案

技术编号:14363023 阅读:75 留言:0更新日期:2017-01-09 10:29
本发明专利技术提供一种Docker容器的创建方法和创建系统。该Docker容器的创建方法包括:为Docker容器中的镜像定义强制访问控制策略,以使开启Docker容器中的进程时使用强制访问控制策略;在Docker容器创建时,将强制访问控制策略嵌入镜像中的元数据中。该Docker容器的创建方法能使进程中运行镜像时能使用该强制访问控制策略,从而避免了主机内核(如Linux操作系统)在不同的系统调用中运行Docker容器中的进程时对Docker容器的安全形成威胁,加强了Docker容器的安全性;同时还简化了系统调用或访问Docker容器中的进程时的强制访问控制过程。

【技术实现步骤摘要】

本专利技术涉及通信
,具体地,涉及一种Docker容器的创建方法和创建系统
技术介绍
目前,Linux操作系统中,所有容器运行的是相同的强制访问控制类型(即SELinux类型,如svirt_lxc_net_t),该类别允许所有网络端口都能处于监听状态,也允许所有网络端口都能对外发起连接。对于容器而言,例如,在一个容器中运行某个服务程序,一旦该服务程序被成功入侵,该服务程序进程将会连接任何网络端口并成为制造垃圾信息的机器人,也可能会通过网络攻击其他宿主机和容器,这便为容器留下了不可否认的安全问题。Docker容器的安全问题本质上就是容器技术的安全性问题,安全性问题90%以上可以归结为隔离性问题,Docker容器的隔离性主要运用Namespace技术。Namespace技术是Linux操作系统提供的一种内核级别环境隔离的方法。但是,虽然Docker容器可通过Namespace的方式分隔出看似是独立的空间,然而Linux操作系统内核却不能通过Namespace的方式分隔,所以即使Docker容器具有多个独立的空间(Container),但由于所有的Linux操作系统调用其实都是通过主机的内核处理,所以最终还是会为Docker容器留下安全隐患。
技术实现思路
本专利技术针对现有技术中存在的上述技术问题,提供一种Docker容器的创建方法和创建系统。该Docker容器的创建方法能使进程中运行镜像时能使用该强制访问控制策略,从而避免了主机内核(如Linux操作系统)在不同的系统调用中运行Docker容器中的进程时对Docker容器的安全形成威胁,加强了Docker容器的安全性;同时还简化了系统调用或访问Docker容器中的进程时的强制访问控制过程。本专利技术提供一种Docker容器的创建方法,包括:为所述Docker容器中的镜像定义强制访问控制策略,以使开启所述Docker容器中的进程时使用所述强制访问控制策略;在所述Docker容器创建时,将所述强制访问控制策略嵌入所述镜像中的元数据中。优选地,所述为所述Docker容器中的镜像定义强制访问控制策略包括:根据所述镜像的功能为所述强制访问控制策略定义名称;定义所述镜像的强制访问控制类型;定义所述镜像的强制访问控制类型的类型权限上界;为所述镜像的强制访问控制类型定义名称;定义所述镜像的强制访问控制规则。优选地,所述镜像的强制访问控制类型的类型权限上界包括svirt_lxc_net_t。优选地,所述开启所述Docker容器中的进程时使用所述强制访问控制策略包括:当开启所述Docker容器中的进程时,所述进程按照所述强制访问控制规则执行可执行文件,包括:当所述进程的类型和所述可执行文件的类型均属于系统策略中定义的类型集合时,所述进程不能执行所述可执行文件;当所述进程的类型属于所述系统策略中定义的类型集合,且所述可执行文件的类型属于所述强制访问控制策略中定义的类型集合时,判断所述进程的类型权限是否低于所述强制访问控制类型的类型权限上界,如果是,所述进程能执行所述可执行文件,且所述进程的类型能切换为默认类型;否则,所述进程不能执行所述可执行文件,且所述进程的类型不能切换为所述默认类型;当所述进程的类型属于所述强制访问控制策略中定义的类型集合,且所述可执行文件的类型属于所述系统策略中定义的类型集合时,判断所述可执行文件的类型权限是否低于所述强制访问控制类型的类型权限上界;如果是,所述进程能执行所述可执行文件,且所述进程的类型能切换为默认类型;否则,所述进程不能执行所述可执行文件,且所述进程的类型不能切换为所述默认类型;当所述进程的类型和所述可执行文件的类型均属于所述强制访问控制策略中定义的类型集合时,所述进程能执行所述可执行文件,且所述进程的类型能切换为默认类型;其中,所述系统策略中定义的类型集合为系统定义的除所述Docker容器以外的所述系统中的其他进程和文件的类型集合;所述强制访问控制策略中定义的类型集合为给所述Docker容器中的镜像定义的类型集合。本专利技术还提供一种Docker容器的创建系统,包括:定义模块,用于为所述Docker容器中的镜像定义强制访问控制策略,以使开启所述Docker容器中的进程时使用所述强制访问控制策略;嵌入模块,用于在所述Docker容器创建时,将所述强制访问控制策略嵌入所述镜像中的元数据中。优选地,所述定义模块包括:第一定义单元,用于根据所述镜像的功能为所述强制访问控制策略定义名称;第二定义单元,用于定义所述镜像的强制访问控制类型;第三定义单元,用于定义所述镜像的强制访问控制类型的类型权限上界;第四定义单元,用于为所述镜像的强制访问控制类型定义名称;第五定义单元,用于定义所述镜像的强制访问控制规则。优选地,所述镜像的强制访问控制类型的类型权限上界包括svirt_lxc_net_t。优选地,所述定义模块用于在开启所述Docker容器中的进程时,使所述进程按照所述强制访问控制规则执行可执行文件;所述定义模块还用于在所述进程的类型和所述可执行文件的类型均属于系统策略中定义的类型集合时,使所述进程不能执行所述可执行文件;所述定义模块还用于在所述进程的类型属于所述系统策略中定义的类型集合,且所述可执行文件的类型属于所述强制访问控制策略中定义的类型集合时,判断所述进程的类型权限是否低于所述强制访问控制类型的类型权限上界,并根据判断结果确定所述进程是否能执行所述可执行文件和所述进程的类型是否能切换为默认类型;所述定义模块还用于在所述进程的类型属于所述强制访问控制策略中定义的类型集合,且所述可执行文件的类型属于所述系统策略中定义的类型集合时,判断所述可执行文件的类型权限是否低于所述强制访问控制类型的类型权限上界,并根据判断结果确定所述进程是否能执行所述可执行文件和所述进程的类型是否能切换为默认类型;所述定义模块还用于在所述进程的类型和所述可执行文件的类型均属于所述强制访问控制策略中定义的类型集合时,使所述进程能执行所述可执行文件,且所述进程的类型能切换为默认类型;其中,所述系统策略中定义的类型集合为系统定义的除所述Docker容器以外的所述系统中的其他进程和文件的类型集合;所述强制访问控制策略中定义的类型集合为给所述Docker容器中的镜像定义的类型集合。本专利技术的有益效果:本专利技术所提供的Docker容器的创建方法,通过为Docker容器中的镜像提供定制的强制访问控制策略,能使进程中运行镜像时能使用该强制访问控制策略,从而避免了主机内核(如Linux操作系统)在不同的系统调用中运行Docker容器中的进程时对Docker容器的安全形成威胁,加强了Docker容器的安全性;同时还简化了系统调用或访问Docker容器中的进程时的强制访问控制过程。本专利技术所提供的Docker容器的创建系统,通过设置定义模块和嵌入模块,能为Docker容器中的镜像提供定制的强制访问控制策略,以使进程中运行镜像时能使用该强制访问控制策略,从而避免了主机内核(如Linux操作系统)在不同的系统调用中运行Docker容器中的进程时对Docker容器的安全形成威胁,加强了Docker容器的安全性;同时还简化了系统调用或访问Docker容器中的进程时的强制访问控制过程。附图说明图1为本专利技术本文档来自技高网...
一种Docker容器的创建方法和创建系统

【技术保护点】
一种Docker容器的创建方法,其特征在于,包括:为所述Docker容器中的镜像定义强制访问控制策略,以使开启所述Docker容器中的进程时使用所述强制访问控制策略;在所述Docker容器创建时,将所述强制访问控制策略嵌入所述镜像中的元数据中。

【技术特征摘要】
1.一种Docker容器的创建方法,其特征在于,包括:为所述Docker容器中的镜像定义强制访问控制策略,以使开启所述Docker容器中的进程时使用所述强制访问控制策略;在所述Docker容器创建时,将所述强制访问控制策略嵌入所述镜像中的元数据中。2.根据权利要求1所述的Docker容器的创建方法,其特征在于,所述为所述Docker容器中的镜像定义强制访问控制策略包括:根据所述镜像的功能为所述强制访问控制策略定义名称;定义所述镜像的强制访问控制类型;定义所述镜像的强制访问控制类型的类型权限上界;为所述镜像的强制访问控制类型定义名称;定义所述镜像的强制访问控制规则。3.根据权利要求2所述的Docker容器的创建方法,其特征在于,所述镜像的强制访问控制类型的类型权限上界包括svirt_lxc_net_t。4.根据权利要求2所述的Docker容器的创建方法,其特征在于,所述开启所述Docker容器中的进程时使用所述强制访问控制策略包括:当开启所述Docker容器中的进程时,所述进程按照所述强制访问控制规则执行可执行文件,包括:当所述进程的类型和所述可执行文件的类型均属于系统策略中定义的类型集合时,所述进程不能执行所述可执行文件;当所述进程的类型属于所述系统策略中定义的类型集合,且所述可执行文件的类型属于所述强制访问控制策略中定义的类型集合时,判断所述进程的类型权限是否低于所述强制访问控制类型的类型权限上界,如果是,所述进程能执行所述可执行文件,且所述进程的类型能切换为默认类型;否则,所述进程不能执行所述可执行文件,且所述进程的类型不能切换为所述默认类型;当所述进程的类型属于所述强制访问控制策略中定义的类型集合,且所述可执行文件的类型属于所述系统策略中定义的类型集合时,判断所述可执行文件的类型权限是否低于所述强制访问控制类型的类型权限上界;如果是,所述进程能执行所述可执行文件,且所述进程的类型能切换为默认类型;否则,所述进程不能执行所述可执行文件,且所述进程的类型不能切换为所述默认类型;当所述进程的类型和所述可执行文件的类型均属于所述强制访问控制策略中定义的类型集合时,所述进程能执行所述可执行文件,且所述进程的类型能切换为默认类型;其中,所述系统策略中定义的类型集合为系统定义的除所述Docker容器以外的所述系统中的其他进程和文件的类型集合;所述强制访问控制策略中定义的类型集合为给所述Docker容器中的镜像定...

【专利技术属性】
技术研发人员:熊微徐雷王志军
申请(专利权)人:中国联合网络通信集团有限公司
类型:发明
国别省市:北京;11

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

1