【51CTO.com快译】容器(当然是指在公共云上运行的容器)现在其实是老古董。这些独立的轻量级软件包带有自己的运行时环境,可以在平台之间移动,通常无需大幅改动代码。容器包括应用程序及其依赖项,比如库、其他二进制代码以及运行它们所需的配置文件。
容器是最流行的应用程序开发方法之一,也支持“包装”存在于容器中的应用程序,但容器面临系统性的缺陷和漏洞。因此,使用容器成为云安全专家最害怕的事情之一,也是不法分子的首选攻击途径。
核心问题是任何暴露很容易牵扯连接到容器的其他系统、应用程序和数据。此外,这些组件中的缺陷可能使攻击者能够控制系统以及系统可以访问的任何敏感数据。这时候会发生糟糕的事情。
检测容器漏洞的最佳方法是什么?更重要的是,可以做些什么来最大程度地减少对必须使用容器构建系统的人造成的干扰?
答案实际上分为两部分:扫描漏洞和构建以避免漏洞。
考虑到扫描是CI/CD(持续集成和持续交付)管道的一部分,扫描是最常见的方法。在创建、测试、审查和部署代码时以及操作期间,扫描可查找安全问题。自动化扫描过程可以发现漏洞,而且在一些情况下,无需开发人员的任何参与即可自动纠正漏洞。
扫描注册中心或查遍存储库集合查找异常可一次查看多个容器映像。当容器映像从注册中心实例化到生产系统时,无论是不是在云端,这些都成为运行中的容器。
运行时环境扫描是另一种方法,旨在扫描执行中的容器以查找安全问题。
最好的办法是利用类型尽可能多的漏洞扫描,从而消除构建和部署基于容器的应用程序方面的部分(但不是全部)风险。
构建以避免漏洞常常是利用常识——考虑可能因愚蠢的做法而引入的漏洞,比如使用来自不可靠来源的基础映像。其他方法将是充分利用经过安全审计部门审查的工具,仅使用来历清楚的代码,并为开发人员提供特殊培训,以便在构建安全容器时做出正确的选择。
选择合适的工具用于扫描,并对构建、测试、暂存和部署的容器加大扫描力度。检查每个阶段的安全问题其实并不减慢进度,而是完全可以降低风险。
这不是什么艰深的科学。您充分利用已有的经过验证的工具。话虽如此,许多容器开发人员并没有使用一些最基本的安全工具和方法。考虑到大多数迁移到云的IT部门是高度依赖容器的,我们需要解决这个问题。
原文When containers become a nightmare,作者:David Linthicum
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】