NIST 特别出版物800-190 容器安全指南
web应用防护系统Murugiah Souppaya
John Morello
Karen Scarfone
该出版物可通过以下网址免费获取:
/10.6028/NIST.SP.800-190 计算机安全
计算机系统技术报告
美国国家标准技术研究院(NIST)的信息技术实验室(ITL)通过为美国的测量和标准基础设施提供技术指导,促进了美国经济和公共福利的发展。ITL 开发测试、测试方法、参考数据、概念验证、以及技术分析,促进信息技术的开发和生产使用。ITL 的职责包括制定管理、行政、技术和物理标准以及指南,以经济有效地保护联邦信息系统中除国家安全相关信息以外的安全性和隐私。特别出版物800 系列报告了ITL 在信息系统安全性方面的研究、指南和探究工作,以及与行业、政府和学术组织的合作活动。
摘要
容器技术,也称为容器,是操作系统虚拟化与应用软件打包相结合的一种形式。容器提供了一种可移植、可重用的自动化方式来打包和运行应用。该出版物解释了与容器使用相关的潜在安全隐患,并对解决这些隐患提出了建议。
关键词
应用;应用软件打包;容器;容器安全;隔离;操作系统虚拟化;虚拟化
执行摘要
操作系统(OS)虚拟化为每个应用单独提供了一个操作系统虚拟化视图,从而使每个应用与服务器上的所有其它应用隔离开来。每个应用只能看到并影响自身。近年来,由于OS 虚拟化易用性程度提高、并提高了开发人员敏捷性等关键效益,OS 虚拟化已变得越来越流行。当今的OS 虚拟化技术主要致力于提供一种可移植、可重用的自动化方式来打包和运行应用(app)。术语“应用容器”或简称为“容器”经常用于指代这些技术。
该文档的目的是解释与容器技术有关的安全问题,并为规划、实施和维护容器时解决这些问题提出切实可行的建议。许多建议是针对容器技术架构(如图  1 所示)中的具体组件或层而提出的。
图1:容器技术架构的层和组件
组织机构应遵循这些建议,以确保其容器技术的实施和使用安全:
(1)通过使用容器,可以调整组织机构的运营方式和技术流程,支持以全新方式来开发、
运行和支持应用。
采用容器技术可能会破坏组织机构内的现有方式和软件开发方法。传统的开发实践、补丁技术和系统升级过程可能无法直接应用到容器化环境中,因此员工愿意适应这种新模型,这一点非常重要。应鼓励员工采纳本指南中涵盖的在容器内安全构建和运行应用的推荐做法,并且组织机构应愿意反思现有程序,充分利用容器。应向软件开发生命周期内所涉及的所有人提供有关技术和运行方式的教育与培训。
(2)使用容器专用主机操作系统而不是通用操作系统以减少攻击面。
容器专用主机操作系统是一种极简操作系统,仅设计用于运行容器,而禁用所有其它服务和功能,并且部署了只读文件系统和其它加固措施。当使用容器专用主机操作系统时,攻击面通常比使用通用主机操作系统小很多,所以攻击和入侵容器专用主机操作系统的几率更小。因此,组织机构应尽量使用容器专用主机操作系统来降低风险。但重要的是要注意,专用主机操作系统随着时间的推移也会有漏洞需要修复。
(3)只将具有同样目的、敏感性和威胁态势的容器组合放在同一主机操作系统内核中,以提高纵深防
御能力。
虽然大多数容器平台在将容器与容器隔离、将容器与主机操作系统隔离方面做的卓有成效,但在同一主机操作系统上运行不同敏感级别的应用时会存在不必要的风险。依据目的、敏感性和威胁态势来将容器分隔开来,可以提高纵深防御能力。组织机构按照这种方式对容器分组,入侵某一组容器的攻击者就很难横向移动到其它组容器。这提高了发现和控制入侵的可能性,并且确保任何残留数据,如缓存或加载临时文件的本地数据卷,保留在安全区域内。
在数以百计的主机和数以千计的容器这样大规模的环境中,自动化分组才具有现实可操作性。幸运的是,容器技术通常包含某种机制,能够将应用组合在一起,而且容器安全工具可以使用像容器名称和标签等属性来对容器执行安全策略。
(4)采用容器专用的漏洞管理工具和过程,防止镜像遭到入侵。
传统的漏洞管理工具对主机持久性和应用更新机制及频率做了很多假设,但这与容器化模型完全不相符。例如,传统的漏洞管理工具常常假定,某一服务器长时间运行一组相同的应用,但不同的容器实际上可能是根据资源可用性情况,在任何给定时间在不同的服务器上运行。此外,传统工具往往无法检测容器内的漏洞,从而产生一种虚假的安全感。组织机构使用的工具应采用声明式、分步构建的方法,并将容器和镜像的不变性融入其设计中,从而提供更可行、更可靠的结果。
这些工具和过程应考虑到镜像软件漏洞和配置设置。组织机构应采用工具和过程来验证并强制确保镜像符合安全配置最佳惯例。这应包括对每个镜像的合规性状态进行集中报告和监控,防止运行不合规镜像。
(5)考虑采用基于硬件的防范措施,为可信计算提供基础。
安全应扩展到整个容器技术的所有层。目前,实现这一目标的方法是将安全建立在硬件可信根之上,例如行业标准的可信平台模块(TPM)。在硬件可信根中存储了主机的固件、软件和配置数据的测量结果。在启动主机前用存储的测量结果验证当前的测量结果,这就保证了可以信任主机。硬件的可信链可以扩展到操作系统内核和操作系统组件,从而可以实现针对启动机制、系统镜像、容器运行时和容器镜像的密码验证。可信计算为构建、运行、编排和管理容器提供了一种安全方式。
(6)使用容器感知的运行时防御工具。
部署和使用能够在容器运行时预防、检测和响应威胁的专用容器安全解决方案。传统的安全解决方案,如入侵防御系统(IPS)和Web 应用防火墙(WAF),通常无法对容器提供恰当防护。这些传统的安全解决方案可能无法运行在大规模的容器上,无法管理容器环境中的频繁变更,也无法检测容器内部的活动。利用容器原生安全解决方案能够监视容器环境,并能够精确检测其中的异常情况和恶意活动。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。