每当一项新的软件技术出现,InfoSec团队都会有点焦虑。理由是他们的工作是评估和降低风险——而新软件引入了一些未知变量,这些变量等同于企业的额外风险。对新的、不断演进的和复杂的技术做出判断是一项艰难的工作,这些团队克服重重疑虑接受未知的新技术值得赞赏。


这篇文章旨在呼吁世界范围内的InfoSec人士对容器的出现持乐观态度。有些人认为容器=不安全,其实,容器在安全性方面反而具有先天的优势:


不变性


在一个典型的生产环境中,你的服务器上有一系列的管理状态,包括系统镜像、配置管理(CM)和部署工具。 系统的最终状态是非常动态的(特别是对于CM工具),库和包往往基于各种runtime变量。以下是一些可能会出现问题的例子:


  • 你在你的主机上运行的 openssl 版本可能会因你使用的操作系统而异,你的 rhel 6 主机可能有一个版本,而使用不同补丁版本的Ubuntu主机则有不同的版本。即使是这些细微的差异也可以产生明显的影响,并导致近期的OpenSSL漏洞(如Heartbleed)。

  • 如果你没有不同的操作系统,那么如果你在一个特定的主机上运行的CM工具遇到了一个bug,并且在它能够确保包版本(假设你已经定义了显式版本!)之前,会发生什么?现在的情况是,一个过时的软件包在被注意到之前将会一直存在在系统中。在小环境下, 在CM成功运行中, 你可能有一个良好的脉冲, 但在有着数以千计的主机的复杂的大环境中,因为你不了解或者无法解决这些问题,将会有一些主机, 你无法保证它们的一致性。在此环境中,这种缺少确定性的状态会导致对库存和 CVE扫描技术的需求。


这就是容器提供的额外优势。由于容器镜像的不可变性,我可以在部署之前了解runtime的状态。这为我提供了一个点来检查和理解runtime状态。在构建过程中对已知的CVE和其他漏洞进行一次扫描,并在部署之前捕获风险,这比不断地对系统中部署的每个运行库进行清点要容易得多。


隔离


使用容器,Linux 内核被设计为在主机上的容器之间提供隔离。它允许每个进程与其相邻的进程具有不同的runtime。对于InfoSec而言,如果应用程序受到威胁,这将降低***向量对系统其他部分的影响。虽然这种划分不严密,但目前还没有一个真正安全的机制。


开发人员和应用团队易于上手


最后,还有一个原因应该能吸引InfoSec,因为开发人员和应用团队共享的优势,比起仅使用安全性的工具,你可以更容易获得上述所有优点。没有一个安全组织能够在真空中运作,即使是最安全的组织也需要平衡控制和生产率。但是,当你的解决方案同时满足这两个要求时,采用容器并证明所需资源的阻力非常小。尽管这听起来似乎是一个不应该存在的悖论,但在某种程度上可以提高灵活性和容器的安全性。


结论


我希望这篇文章中的观点,能鼓励你进一步探索和了解一下容器技术能如何提高组织机构IT系统的安全性,若你的团队能(哪怕只是在内部)讨论一下是否可将容器技术用于生产环境,那就更好不过了。一如既往地,Rancher团队将助你开启你的容器之旅——加入官方微信交流群与我们联系,在Rancher Blog上查看更多技术文章;如果你准备好与我们展开更详细的讨论,还可以在官网上预约一次demo。


原文来源:Rancher Labs