计算机论文哪里有?针对 Docker 镜像所面临的安全问题,本文在第三章提出了相应的解决方法,即 Docker镜像漏洞检测与评估方法。该方法可以划分为镜像漏洞检测和漏洞风险评估两部分,镜像漏洞检测的实现依赖于 Docker 镜像分层构建的特点,通过查询通用漏洞库中镜像各层包含的漏洞信息,得到镜像包含的所有漏洞;镜像漏洞风险评估的实现依赖于通用漏洞评分系统对各个漏洞风险的评分,在得到镜像各层漏洞评分后对镜像整体进行评估。
第一章 绪论
1.2国内外研究现状
目前针对 Docker 容器镜像和引擎安全问题的研究,主要集中在镜像的安全检测和容器运行时的入侵检测。 (1)镜像安全检测
针对镜像的安全检测主要应用在镜像仓库中,以最大的仓库 Docker Hub 为例,它允许个人启动漏洞扫描功能,漏洞扫描功能启用后,Docker Hub 会自动扫描用户上传的镜像并识别容器镜像中的漏洞,使开发人员可以方便的查看容器镜像安全状态,并允许采取相应的措施修复扫描到的漏洞,从而保证镜像的安全。以这种方式检测上传镜像的安全性,从一定程度上保障了镜像的安全,但是这种检测方法并不能保证用户拉取镜像的过程中镜像不被篡改,即中间人攻击。
(2)容器运行时的入侵检测
容器运行时的入侵检测主要有基于主机的入侵检测和基于网络的入侵检测 [10]。其中,基于主机的入侵检测方法侧重于容器内部,监视容器内部全部或部分动态的行为以及整个容器的状态,用作为容器的分析器和监视器,并不对外提供服务。基于主机的入侵检测方法依赖于动态检查数据一致性这一特性,即使是优秀的入侵者,也不可避免的留下入侵时的印迹,通过对这些印迹的处理和分析,能够及时、准确的发现并上报入侵行为[11]。而基于网络的入侵检测方法大多依赖于从网络上传输的消息留中发现潜在攻击行为,并以软硬件结合的方式对发现的漏洞信息、造成拒绝访问及越权访问等威胁计算机系统安全稳定运行的行为进行检测。虽然它有着配置简单、低性能需求和不影响正常业务运行的优点,但是它与基于主机的入侵检测方法相比,有着较高的误报率和性能不足的缺点。
在基于主机的入侵检测方法中,Jian Z 等[12]通过动态检查主机名称空间,实现了容器异常进程的检测,有效防止了逃逸行为,但是这种方法仅能检测通过容器对宿主机的攻击,无法检测到容器内的攻击。为了更加有效的检测容器受到的攻击,在基于主机的入侵检测方法中,大多选择容器运行时产生的系统调用作为检测源进行检测,因为它不仅能直接的反应容器内进行的操作,还能检测到更广的攻击范围。现有基于主机系统调用的入侵检测方法大多基于系统调用序列或频率实现。
第三章 Docker 镜像漏洞检测与评估方法研究
3.1引言
Docker 容器因其轻量级虚拟化的特点,已成为广泛使用的软件部署方式,与传统部署方式相比,容器化的部署方式解决了应用运行环境的差异,保障了应用运行期间运行环境的一致性。在 Docker 容器发展过程中,为了保证它的适配性,让更多的平台支持,Docker 官方在LXC 技术的基础上进行了一次大胆创新,为 Docker 制定了一套标准的配置方法,允许 Docker以镜像的方式将应用及其依赖环境打包,真正实现一次构建处处运行,提升了 Docker 的跨平台性。另外,为了方便开发者,Docker 官方提供了免费的镜像仓库 Docker Hub,方便用户上传和下载镜像。目前 Docker Hub 平台上主要有官方库和社区库这两种类型的公共存储库,其中官方库主要存储供应商(如 Docker、Oracle 和 Red Hat 等)的官方认证镜像,相比之下,任何用户和组织都可以创建社区镜像库[38]。这使得 Docker Hub 在提供方便的同时也带来了严重的安全隐患[39]。开发者在使用 Docker 时通常会选择从官方镜像仓库中下载已有镜像,这些镜像可能来自于软件官方,也可能来自组织和个人,这就使得用户无法确定下载的镜像中是否存在漏洞以及他人恶意植入的后门程序。
2015 年 5 月,Banyan Security 的一名研究员发布了一项关于 Docker Hub 中镜像安全漏洞的文章,文章指出了 Docker Hub 中官方镜像和社区用户镜像中漏洞调研结果。在扫描官方镜像的实验中,他们选取了 75 个官方镜像库共 960 个独立镜像的 1600 个版本。实验结果表明,在所有官方镜像中,超过三分之一的镜像具有高危漏洞,近三分之二具有中高危漏洞,并且这些镜像都具有较高的下载量,实验数据如图 3.1 所示。除官方镜像库外,他们还随机选取了 Docker Hub 中约十万个通用镜像库中的 1700 个镜像进行了漏洞扫描,最终得出通用镜像库漏洞百分比明显高于官方镜像库的结论。通用镜像库的漏洞扫描结果如图 3.2 所示。
第五章 系统设计与实现
5.1系统设计 DSDS 的功能架构如图 5.1 所示,由服务层、管理层和数据处理层 3 层构成。服务层主要由接口服务和 SDK(软件开发工具包)模块组成,用于方便用户以 Restful API 和工具包的形式调用。管理层主要包含用户管理、镜像检测和容器检测三个模块,其中用户管理模块实现了对 DSDS 用户的管理;镜像检测模块实现了容器镜像漏洞的扫描与评估;容器检测模块实现了容器运行时的实时入侵检测。数据处理模块实现了宿主机中 Docker 镜像信息及容器运行时系统调用信息的获取与处理。
DSDS 是本文所提出的 Docker 镜像漏洞检测与评估方法和基于主机系统调用的容器入侵检测方法在实际工作环境中的实现。当主机中部署 DSDS 后,系统会自动对主机中 Docker镜像及容器进行检测并保持实时运行。另外,为了方便用户查看 Docker 镜像漏洞检测与评估结果以及 Docker 容器运行时入侵检测结果,本文在 DSDS 中增加了相应 web 访问界面,界面中的操作并不会影响检测系统的后台运行,DSDS 的 web 界面如图 5.2 所示,图中为 DSDS登录后页面,用户可以通过搜索框中下拉菜单选择查看对应镜像的详细信息。
5.2 系统实现
本文在国产芯片(龙芯 3B3000)大数据一体机中搭建了实验环境并部署了 DSDS。一体机具体配置信息如表 5.1 所示。
DSDS 整体上实现了用户管理、Docker 镜像漏洞检测与评估和 Docker 容器入侵检测,其中核心实现包括 Docker 镜像的漏洞检测与评估和 Docker 容器的入侵检测,下面将对这两部分的实现进行具体说明。
第六章 总结与展望
6.2展望
为了更好的实现国产芯片大数据一体机容器入侵检测,本文还可以做的工作
(1)本文提出的 Docker 镜像漏洞检测与评估方法在已知漏洞的镜像检测中有出色的表现,但该方法无法检测漏洞库中未出现的漏洞,在之后的工作中,可以对镜像漏洞特征进行分析,并结合深度学习技术开发出具有识别镜像潜在漏洞功能的镜像漏洞检测系统。
(2)本文所提出的入侵检测方法仅能检测出容器中的异常操作,并未对异常操作进行分类,在之后的工作中,可以对检测到的异常操作进行具体分类,如 DoS 攻击、容器逃逸等。
(3)本文工作都是针对容器安全的被动防御,旨在通过软件层面及时发现危险的容器镜像及容器运行时存在的入侵行为,并未进行主动防御,在之后的工作中,可以研究容器中各类攻击所具有的特点,制定主动防御策略。
参考文献(略)