容器安全 101 了解保护容器安全的基础知识 网络安全团队们现在都很清楚,容器的潘多拉魔盒已经打开。开发人 组织要面临的挑战是,首先了解云原生计算环境的不同层之间如何相互交互,然后找到合适的工具来构建一套可重复的流程以保护每一层的安全。特定于容器的网络安全问题包括: 员广泛采用容器,因为它们使构建和部署所谓的云原生应用变得前所未有的简单。容器不仅消除了将应用代码从测试环境移动到生产环境相关的许多常见障碍和摩擦,而且打包为容器的应用代码可以在任何地方运行。与任何应用关联的所有 镜像:漏洞可以像影响任何其他代码一样影响容器镜像。构建材料清单、识别任何嵌入的机密、对镜像的所有层进行分类,这些都是仍待解决的基 本网络安全任务。让情况变得更加复杂的是,在应用环境中运行着大量的容器,且这些容器更新频繁。由于DevOps做法的兴起,组织现在每周多次更新 用说为安全的容器环境建立基准。容器运行时安全问题要求网络安全团队专注于旧有防火墙无法解决的应用安全问题。 容器编排:需使用白名单技术来处理对容器编排平台(例如Kubernetes)的访问控制,防止特权过度的帐户、网络攻击和不必要的横向移动带来的 相关项都包含在容器化应用中,这 容器化应用的情况并不少见。每次更新IT环境中运 行的数千个容器时,都为在该环境中引入漏洞提供 风险,这与处理访问旧有IT环境的方式几乎相同。 使得容器化应用在本地数据中心或公有云上运行的虚拟机或裸机服务器上具备高度可移植性。 如此高的灵活性使得开发人员能够大幅提高生产效率,这种优势不容 了机会。 容器注册表:容器注册表为存储和分发应用镜像提供了便捷、集中化的来源。当今组织可以轻松地将数以万计的镜像存储在其注册表中。注册表是 容器编排平台中的情况有所不同,其中还需要确保多个应用共享的Kubernetes集群上的pod之间的通信安全。 主机操作系统:托管容器环境的操作系统可能是保护容器环境安全最重要却经常被忽视的方面。对主机环境的 忽视。不过,与任何新兴的IT架构一样,云原生应用仍然需要受到保护。容器环境带来了一系列网络安全问题,涉及镜像、容器、主机、运行时、注册表和编排平台,所有这些都需要加以保护。 容器化环境运行方式的核心,因此保护它的安全至 关重要。注册表对于让潜在的容器混乱恢复秩序相 当重要,但其也可以提供让网络犯罪分子轻松危害整个环境的途径。持续监控注册表中漏洞状态的任何更改是一项核心安全要求,需要包括锁定托管注册表的服务器。 容器运行时:容器运行时是容器堆栈中最难保护的部分之一,因为传统的安全工具不是为监控运行中的容器设 计的。旧有工具通常看不到容器内部的情况,更不 任何危害都会为网络犯罪分子访问整个应用环境创 造机会。每个主机都需要有自己的一套安全访问控制措施,并持续监控自部署该主机以来可能发现的任何新漏洞。 23 容安器全的优网势络 容器安全商业工具 仅在去年一年,组织可以依赖的容器安全保护工具在功能 和精密性方面都有所提升。无论DevSecOps的成熟度如何,容器安全工具当前的易获取性都远胜于以往。任何组织都需要采用和掌握的容器网络安全工具包括: 容器监控:作为应用和维护容器安全的所有功能的核心,需要使用容器监控工具来跟踪容器这一有史以来设计的使用时间最短暂的原子计算单元。开发人员在不断舍弃和更换容器,因 此,当试图准确确定在容器化环境中发生了什么时,使网络安全团队和IT运营团队能够对容器应用时间序列标记的监控工具至关重要。 容器扫描工具:在将容器部署到生产环境中之前以及在更换容器之后,都需要持续对容器进行漏洞扫描。开发人员很容易错误地将库纳入 具有已知漏洞的容器中。还须记住,几乎每天都会发现新的漏洞。这意味着,今天看起来非常安全的容器镜像,可能会成为明天分发各种恶意软件的载体。 考虑到与保护容器化应用的安全相关的所有挑战,可以理解为何许多网络安全专业人员对于在生 价值。由于容器被频繁舍弃和更换,与修复漏洞相关的流程变得更加简单。不必等候数月时间才 在生产环境中运行已知漏洞的时长。 可以说,这一功能是最佳 过网络安全审核的应用数量也在稳步增加。 容器防火墙:容器防火墙会检查和保护进出容器的所有流量以及进出外部网络和旧有应用的流量。大多数容器防火墙都作为“外挂” 产环境中部署容器有所保留。虽然在开发人员工作效率方面有一些明显的优势,但大多数组织才刚刚开始了解到用于保护容器化应用的工具和流程的价值。 能将补丁应用于整个单体应用,而是通过舍弃和更换容器将新功能引入应用环境。该过程仅限于应用的子集(称为微服务),通常可在几分钟内,作为由持续集 DevSecOps流程兴起的助推力;开发人员现在可以通过这些流程为实施网络安全控制措施承担更多责任。网络安全团队仍需要定义这些控制措施,然后验证它们 运行,使它们能够管理进出多个容器构成的微服务的各种 流量。 策略引擎:现代网络安全工具让网络安全团队可以定义这样的策略,将有权可以访问任何给定微服务的人员和内容加入白名单。组织需要 然而,虽然这似乎是一项艰巨的 挑战,但容器提供了宝贵的网络安全优势。当然,网络安全团队最初并没有意识到该优势应有的 成/持续部署(CI/CD)平台(如 Jenkins)所支持的应用生命周期管理过程的一部分完成。这一功能意味着现在可以大幅减少应用 是否已实施。不过,由于开发人 员现在要对实施这些控制措施负责,因此随着采用的DevSecOps流程的成熟度不断提高,能够通 一个框架来首先定义这些策略,然后确保它们在高度分布式容器应用环境中得到一致维护。 45 防御混合式攻击范围 既然容器让跨多个平台移植容器化应用变得更加简 单,组织还需要能够首先实施网络安全策略,然后修复跨多个平台引起的任何问题。如今,大多数容器最初都部署在传统虚拟机之上,以确保共享同一平台的应用工作负载之间存在隔离层。 不过,也有一种新兴的用例:由于会产生额外开销,组织不希望部署虚拟机,而这可能会对应用性能造成负面影响。在这些情况下,开发人员更愿意将其容器部署在裸机服务器上,或者部署在一类新兴的较轻量的虚拟机之上。在依赖图形处理器单元(GPU)的环境中,尤其是在容器以外的其他传统虚拟化技术中,这一情况尤其常见。在其他情况下,组织可能选择在裸机服务器上部署容器的另一个原因是,希望无需支付费用即可获得商用虚拟机软件的许可。 无论动机如何,网络安全团队可以相信的是,容器化应用将在本地或多个公有云计算环境中证明自己的优势。每个环境将由运行容器的多种虚拟机和物理机组成,这些虚拟机和物理机都需要通过一个公 共框架进行保护。 让情况变得更加复杂的是,使用容器构建的无服务器计算框架带来了另一种需要保护的攻击范围。无服务器计算框架以事件驱动的架构为基础,允许开发人员按需从应用内调用子进程。这种功能使得无需在应用中包含代码,以运行仅偶尔需要的功能。应用中的代码越少,保护起来就越容易。不过,网络安全团队不应忽视保护无服务器计算框架的必要性。 网络安全悖论 现在已经存在数百万的网络安全职位空缺。随着需 要保护的应用代码数量继续呈指数级增长(主要归功于容器的增加),网络安全团队及其应用开发人员同事能够跟上这一步伐的唯一方法,就是更多地依赖自动化。 即使有更多的网络安全专业人员来填补所有这些职位,大多数组织仍会意识到要留住网络安全专业人员仍然充满挑战。有效减少网络安全人员流动所带来影响的唯一方法,是让尽可能多的现有手动流程实现自 动化。这种方法不仅能让大规模维护网络安全策略变得更简单,而且还能让网络安全人员在恶意软件激活之前将更多时间花在搜寻恶意软件等任务上。 展望未来,网络安全任务是否将实现自动化已不再是问题,重点在于自动化的程度如何。 统一用例 随着容器支持的云原生计算变得越来越普遍,对可 应用于容器和相关无服务器计算框架的网络安全框架的需求越发凸显。不过,这种观点并不局限于云原生计算应用。云原生计算应用不会很快消除企业中部署的所有单体应用代码。到下个十年末,各种规模的组织都将同时运行旧有和新兴的云原生应用。找到使用相同的管理框架在这两个环境中建立和维护网络安全策略的方法,是下一个重大的网络安全挑战。 实现这一目标是PaloAltoNetworks今年早些时候收购Twistlock(容器安全平台提供商)和PureSec(保护无服务器计算框架安全的框架提供商)的主要原因。PaloAltoNetworks已斥资数百万美元开发其 Prisma框架,以便在旧有的单体应用环境中实现网络安全管理的自动化。现在,Prisma进行了扩展,以添加对基于容器和无服务器计算框架的云原生计算应用的支持。 实际上,Prisma将成为有史以来最全面的网络安全生命周期管理平台。 结语 一如往常,这既是网络安全的最佳时期,也是其最 差时期。从许多方面来看,随着IT环境变得比以往更加混杂,维护网络安全的挑战性达到了前所未有的高度。然而,与此同时,网络安全创新的速度也变得空前的快。 不管组织的其他人员最初可能针对网络安全提出的保留意见如何,随着开发人员继续采用创新平台,在未来几个月,任何组织都可能做出的最重要网络安全决策,是确定哪家供应商拥有保护其现有环境以及新兴应用环境安全所需的工具和专业知识。 如需详细了解如何保护这些环境的安全,请访问 www.paloaltonetworks.com/cloud-security 67