基于Docker容器的镜像脆弱性分析和安全加固

2020-05-11 05:54蒋文豪
科教导刊·电子版 2020年2期
关键词:脆弱性镜像安全

蒋文豪

摘 要 Docker脆弱性主要体现在文件系统隔离、进程及通信隔离、设备管理及宿主机资源限制、网络隔离和镜像传输这四个方面。本文对Docker容器的镜像进行其脆弱性分析,为后续Docker安全的研究提供一定价值的参考。

关键词 Docker 镜像 脆弱性 安全

1 Docker概述

Docker 是基于客户端服务器模式设计的,其主要组成可分为 Docker Client、 Docker Daemon、Docker Regeister三部分。

2 Docker容器的镜像脆弱性分析

开发者在构建Docker镜像时可能由于疏忽大意将包括数据库认证密码在内的敏感信息添加到镜像中,为生产环境中部署的应用埋下了相应的安全隐患,因此需要对Docker容器进行镜像脆弱性分析。

3 Docker容器的镜像安全加固

针对Docker容器存在的镜像安全性问题,采用避免使用特权用户等有效措施,对Docker容器进行镜像安全加固。

3.1避免使用特权用户

若在Dockerfile中不使用USER进行指定用户的情况下,将会默认按root的权限进行启动应用程序,为了安全考虑,除非必须使用root权限,绝不使用root权限。

3.2不安装不必要的软件

安装不必要的軟件将扩大攻击面,带来巨大的安全隐患。举个例子,在容器中使用SSH服务将会增加安全管理的复杂性,而容器的SSH服务所提供的shell也能够被替代,因此应避免使用SSH服务。

3.3锁定系统中的重要文件

容器中有许多重要的文件,为避免被入侵时这些重要的文件被修改,所以我们应当锁定相应的文件,以保证不会因重要文件被修改而带来更大的安全隐患。

3.4配置文件的访问权限

在实际使用过程中,为满足业务需求,需要对受信任的用户开放相应的权限,Docker镜像中不正确的权限设置将直接威胁到Docker镜像的安全,因此需要及时发现并对这些文件配置合理的访问权限。

3.5 umask权限掩码设置

在Docker中umask是一个用于确定权限掩码的命令,该掩码决定了为新创建的文件赋予的访问权限。在容器的运行过程中,不可避免的会产生新的文件,为这些新产生的文件配置合理的访问权限以保证Docker容器的安全。

3.6配置SELinux安全加固

SELinux提供了强制访问控制系统,SELinux为目前可用的Linux安全模块中功能全面而且是测试最充分的安全模块。

3.7验证镜像内容

默认情况下内容信任机制是被禁用的,为了保证镜像内容的可信,需要开启Docker的内容信任机制。

3.8 dockerfile中不储存涉密信息

若在dockerfile中储存密码、令牌、密钥和用户机密信息等,出于安全考虑,不应在dockerfile中储存涉密的信息。

3.9删除镜像中setuid和setgid权限

setuid和setgid可用于提升权限,虽然这些权限对有些软件包来说是必须的,但应考虑为镜像中不需要的软件包删除这些权限以提高Docker镜像的安全性。

3.10 Dockerfile中使用COPY指令

COPY指令只是将文件从本体主机复制到容器文件系统内,ADD指令可能会从远程URL下载文件并执行诸如解包等操作。因此,应尽量避免使用ADD指令而选用COPY指令。

3.11容器重启策略配置

若不设置容器重启的策略,重启服务则会不断的尝试重启容器,极端情况可能会造成主机宕机。

3.12验证Docker客户端的身份有效性

Docker Registry是Docker官方提供构建私有镜像仓库的开源工具,但在使用过程中需要保证Docker Registry自身的安全性,需使用相应的安全证书验证、配置密码或双向SSL机制等来验证与仓库进行交互的Docker客户端的身份有效性。

4结论

本文中对 Docker面临的镜像安全威胁进行了梳理,指出了一些可供参考的安全解决方案,可通过Docker容器与传统虚拟技术优势互补达到发挥Docker优势的效果。

参考文献

[1] 鲁涛,陈杰,史军.Docker安全性研究[J].计算机技术与发展,2018,28(06):121-126.

[2] 杨文林,谭曦,郭俊廷.Docker脆弱性分析与安全增强[J].信息安全与技术,2016,7,74(04):23-25+57.

[3] 郭甲戌,胡晓勤.基于Docker的虚拟化技术研究[J].网络安全技术与应用,2017(10).

[4] Kerner,Sean M.Red Hat Summit Highlights Docker, RHEL 7.2 Roadmap and More[J].eWeek,2015.

[5] Aljoscha Prtner&Martin Hoffmann&Sebastian Zug.SwarmRob:A Docker-Based Toolkit for Reproducibility and Sharing of Experimental Artifacts in Robotics Research[C].2018 IEEE International Conference on Systems, Man, and Cybernetics (SMC). IEEE,2018.

猜你喜欢
脆弱性镜像安全
煤矿电网脆弱性评估
杀毒软件中指令虚拟机的脆弱性分析
基于攻击图的工控系统脆弱性量化方法
基于电流介数的电力系统脆弱性评估