云原生安全

2021-07-16 来源:中通服咨询设计研究院有限公司 邓萍萍

1 云原生技术及其发展现状

云计算技术在过去十年发展蓬勃,同时也促进云的形态不断演变。Pivotal公司的Matt Stine2013年最早提出云原生(Cloud Native)的概念,且一直延用到今天。他指出云原生是一系列云技术和企业管理方法思想的集合:云技术包括微服务和敏捷基础设施等;管理方法包括DevOps、康威定律、持续交付和重组等。通过云原生技术与其他工具的结合,我们可以把业务迁移至云平台甚至原生于云,以便更好地帮助用户实现云上数字化转型,从而享受高效和持续的云服务能力。中国信息通信研究院在最新的研究报告中概括云原生为适合云的应用和好用的云架构。

近几年来,随着云原生思想的推广和普及,我国的云原生产业已经进入了迅猛发展阶段。在过去的两年里,容器技术的使用日趋成熟深入,以容器和容器编排技术为核心的云生态趋势,逐步扩大到DevOps、微服务、服务监测分析、应用管理的全链路闭环。阿里云、华为云、腾讯云等领先云服务企业以其较强的综合云服务能力促使云原生技术快速发展变革,不断出现细分生态领域的企业级产品服务,更加聚焦地提供了精细化服务。

随着云原生技术深化、广泛的发展,人们的云上体验、云上生产效率、社会云安全管理乃至国家云计算的发展都为此受到不同程度的影响;同时,新云原生安全风险也由此引入。因此,全社会都非常重视云原生的安全问题。

2 云原生安全挑战

云原生技术在全世界迅速被接受且发展速度迅猛。云原生技术给企业带来了高效云业务体验和数字化转型的优势,同时也带来了新的安全风险和挑战。

2.1 容器化工作负载安全的部署建设

传统模式是以物理机、虚拟机为主的云工作负载安全,而云原生环境容器取代虚拟机成为资源承载调度的最小单元,部署模式也随之改变。在传统模式下,一台服务器只运行几个应用程序;而在云原生模式下,一台机器上运行一百多个应用程序,密度是原来的十多倍。然而,云原生环境下的安全策略、安全工具和流程的设计并未考虑到服务器的可伸缩性,容易引发新的安全风险。

首先,由于容器可能不断生成和不断退出,容器的环境是高度动态变化的,因此容器按照传统模式通过管理虚拟机安全基线来确定运行环境的安全状态是行不通的。其次,容器生态系统会用到许多管理工具,这些工具可以是Kubernetes社区中开放的工具,也可以是云企业自己开发的工具,现实云环境中无法完全统一和管理,且第三方开放源软件的引进也加大了云原生的安全风险。

2.2 基于业务的横向隔离的安全考虑

在传统模式的软件结构中,应用之间由于通过物理设备或者虚拟机来隔离,因此安全事件的影响可以被限制在有限可控制的范围内。但是,在云原生环境中,容器基于进程间的隔离,多个服务实例共享宿主机的操作系统,一旦有服务存在漏洞且被攻击时,会影响到同一台主机运行的其他服务,最终导致大幅增加入侵的安全隐患。另外,多个密切关联的容器一般共享一部分数据,这些容器中如有一个被成功利用的话,就会导致数据的泄露或破坏,大大增加了被攻击面。

2.3  微服务框架下安全边界的重新定义

云原生采用容器技术保证了运行环境的强一致性,为应用服务的拆分解耦提供了前提,加速了应用微服务化的进程,同时也带来新的安全隐患。

首先,微服务将单体架构的传统应用拆分成众多应用,应用间交互的端口数量激增,与单体应用架构集中在一道防护的简单易行,微服务化应用攻击面大幅增加,且在端口防护、访问权限、授权机制等方面的难度陡增。其次,现实情况中很多场景下的多个服务间是紧密联系的,这些强关联的微服务间是以点对点的形式进行沟通连接的。随着连接点的增多,整个连接体系中的单一服务因漏洞被攻破会增加整个系统的破解风险。最后,云原生环境中容器严重依赖网络进行通信,应用微服务化大幅增加了内部网络流量和服务通信端口总量,同时承载负载的容器秒级启动或消失的动态变化,增加了安全监控和保护的难度,传统防火墙基于固定IP的安全策略很难适应这种持续的动态变化,无法准确捕捉容器间的网络流量和异常行为。如果网络端点没有有效的防御措施,或者不慎泄露了数据至外部,就会造成严重的安全隐患。

2.4 软件流转全链路安全的重新构建

在传统的开发模式中,安全测试卡点主要出现在上线前的应用部署环节,通过静态扫描和分析来识别漏洞和弱点,应用构建安全主要关注编译环境与代码安全问题,且大量零散的安全工具相互独立,没有形成整体。云原生通过自动化使所有安全工具集成到流水线,应用构建安全还需要考虑基础镜像、依赖库、构建过程等安全问题,形成基于不同开发项目在各阶段的研发安全看板管理。

由于软件全生命周期流转链路长、涉及人员组成复杂,传输过程中攻击篡改难校验,因此安全管控难度较高。我们需考虑在整个业务应用全生命周期中,为各个环节引入自动化安全保护,不仅避免各个环节的潜在风险,而且提高应用安全交付的效率。

2.5 可变云基础设施导致的组织挑战

云基础设施和云服务的不断发展变化是云原生时代最大的安全挑战。最初,云服务仅限于基本的云存储与虚拟服务器。近几年来,托管容器环境、无服务器计算、基于云的大数据服务、监控服务等多种云服务增加了云作业负荷的安全风险,未来云服务也将更加复杂和多样化。组织要适应云计算的变化,迅速调整相应云原生的安全工具和战略。

安全建设和云基础设施关系紧密,这导致企业的安全职责需要被重新考虑,安全组织和信息化其他组织的关系无法简单定义为谁主管、谁建设、谁负责。应用上云后也会提出安全服务化的诉求,开发团队短期找不到现成的安全服务时,可能自行使用开源安全工具,但却难以兼顾安全责任。

2.6 云原生时代各类应用场景的安全需求

自云原生技术快速发展以来,云原生技术体系在金融、电子商务、工业互联网等领域得到广泛的应用。同时,云原生服务面向的客户对不同安全场景有着不同的安全需求:零售行业用户关注企业内部IT资产的安全,需要满足用户的角色权限控制、证书管理与审计、全链路双向认证;金融银行类用户在意数据的运行是否安全,针对业务数据进行全链路加密和时刻告警监控;游戏厂商用户则关注是否能高效管控包括云资源、业务数据等各方的权限,需要进行密钥管理以避免泄露容器的敏感信息。企业级用户往往安全要求高、业务场景复杂,云平台基本的安全性不足以完全契合用户的实际需求。云原生时代,需要满足各类典型应用场景的安全需求,为云原生技术的发展提供有力保障。

2.7 云环境下其他新技术引入的安全思考

首先,引入新的云原生技术,需要重新研究并制定相应安全策略,短期内是无法满足安全需求的;其次,在引入无服务器计算技术时,用户代码管理业务的工作量将大大降低,控制权限也将大幅减少,云原生服务商实施的安全策略直接决定了云用户工作负载的安全性;再次,引入软件定义一切技术,使得云原生基础设施更灵活、更有弹性,但无法保证精准跟踪和安全隔离;最后,引入更多的云原生技术,增大原生攻击的范围。

3 云原生安全应对策略

3.1 构建端到端的云原生安全架构模型

在传统模式下,代码安全、主机安全、网络安全和运行安全是我们关注的重点。但是,随着云原生时代的到来,我们要综合考虑云原生环境引入的新的危险和挑战,搭建一个真正端到端的纵深防御的云原生系统。

这里我们把云原生系统安全模型分为5个层次,即基础设施安全、容器安全、应用安全、研发安全和管理安全。云原生系统安全模型如图1所示。

1 云原生系统安全模型

1)基础设施安全

云原生的基础设施安全需求主要体现在主机安全、网络安全和运行环境安全三个方面,即用户使用的最主要的计算资源和连通计算资源的网络方面的安全防护和隔离。对于云上用户来说,其云上应用和业务都是直接或者间接(通过上层云服务)地构建和运行在计算(主机和容器)和网络服务的基础模块之上,因此,基础设施安全为用户的云上上层业务安全提供了坚实的基础。

主机安全考虑的安全能力包括资产管理、漏洞管理、基线检查、病毒检测、入侵检测、威胁响应与处置等,以实现云上工作负载的安全防护。网络安全通过DDoS防护、云防火墙和Web应用防火墙等技术,实现云原生网络的安全防护。云原生基础设施利用可信计算技术,在关键服务器上采用了系统可信和应用可信的功能,通过度量和验证以保证云原生平台运行环境的安全,以及通过对白名单应用的监测管理确保应用的运行安全。

2)容器安全

在用户的应用全链路中,包括从应用的开发、测试、构建、部署到运行阶段,通过策略、镜像检测、合规基线检测、运行时检测和防护、容器网络隔离、安全运行环境实现云上容器的安全防护,构建安全的容器生命周期。

开发、测试与构建应用阶段,从供应链侧利用镜像安全扫描,用户可以提前感知应用镜像上的安全风险,也可开启云容器镜像服务中指定的仓库的镜像签名能力,自动在推送镜像上签名;部署应用前,云容器服务提供统一的策略管理平台,集群的安全管理员可以为各类集群里的应用系统提供个性化的安全性治理;成功部署应用后,容器服务提供面向用户的安全管理中心,用户可以保障运行中的容器应用安全,构筑整个纵深防御的容器安全能力。

3应用安全

用户在云上构建的应用需要得到妥善的安全保护。应用安全为用户提供了应用数据安全、应用配置安全和应用环境安全的功能。

用户在云上应用数据安全,是云用户的生命线,也是云原生安全能力体系的一个重要体现。通过漏洞扫描、代码托管、代码审计和安全加固等技术,保证应用数据的机密性、完整性和可用性,以实现云原生应用数据的安全防护。通过创建加密配置技术,实现云原生应用配置的安全防护。

4)研发安全

在云原生环境下,最容易受攻击且又最可控的部分就是程序代码。在开发阶段执行资产的安全变更及安全服务的选择;未发布时,需要定期在镜像仓库及制品库进行安全检查;上线发布即安全,脆弱性修补通过开发重新部署完成;对于运行发现的安全问题,需要在开发测试环境下进行持续跟踪。通过TLS访问加密、第三方依赖的相关安全漏洞的修复、静态代码分析、动态探测攻击等技术资源,实现研发安全的防护。

5)管理安全

云原生安全运营中心通过对云上资产进行统一的安全运营与管理,提供互联网攻击面测绘、云安全风险评估、流量威胁感知、日志监测与审计、资产自动化盘点、安全自动化编排与响应等功能,通过预防、检测、响应、处置的闭环流程,为云用户提供全局可视、自动化运营的安全管理服务。

总之,云原生时代的基础设施安全、容器安全、应用安全、研发安全和管理安全比传统模式更细化且风险更大。只有每一层实践最佳的安全防护,才能切实保障云原生的安全。

3.2 “内生安全”理念指导云原生安全落地

目前,云原生安全系统化不足,缺乏体系化的规划和建设实践,安全建设模式以“部分改善”为主要措施,云内碎片化严重,安全协调与弹力恢复能力严重不足,对云原生安全的动态的、全局的理解不够清晰。因此,云原生安全应进化到“内生安全”时代,改变单一的栅栏式的防护现状,演变到与云业务融合的多维度、全方位的防御。

云内生安全框架包括三个重点:首先,系统地、因地制宜地梳理所有的云原生安全能力需求,规划实际的能力组合;其次,将安全能力合理地分配部署建设,做到深度融合、全面覆盖;最后,确保云业务系统持续安全运行,实现云原生安全管理和响应闭环。

3.3 安全“三同步”保障云原生安全的机制

《中华人民共和国网络安全法》提出“网络安全三同步”的概念,明确了关键信息基础设施安全建设的要求。云原生技术作为云计算基础设施的关键和新常态,为了保障云原生平台、用户及云原生产品的安全运行,需在云原生安全的规划、建设和使用阶段持续贯彻落实“三同步”要求。

在项目规划阶段,同步考虑并规划云原生安全设施建设需求,包括需要的云原生平台、用户及云原生产品的安全技术保障能力和如何建设云原生安全管理平台等,以确保云原生安全成为云原生系统的有机组成。

在项目建设阶段,需要从云原生建设的各个方面引入并融合安全能力,确定各方的安全责任,确保云原生安全设施严格按照规划设计的要求同步建设,上线验收时确保云原生系统和产品通过安全风险评估或符合等级保护要求。

在项目使用阶段,确保云网的所有环节都充分对接,确保云安全设施正常运行、云上安全识别、监测、处置的各项流程贯通,一旦发生安全事件能迅速响应和处置。

3.4 促进云原生安全标准的体系化建设和完善

云原生的新技术、新架构给云计算产业带来了新的安全风险,我们需要建立完善的云原生安全标准体系,确保云原生在规划、建设、运营各阶段的安全,以应对云原生在基础设施安全、容器安全、应用安全、研发安全和安全管理等领域面临的安全风险和挑战。中国信息通信研究院、阿里巴巴和腾讯目前虽然已经制定了一些云原生安全架构和流程,但尚未明确云原生安全的标准规范体系,亟须在联盟标准、行业标准、国家标准等多个方面共同推进云原生安全的标准化工作,全面考虑云原生安全技术要求、云用户安全需求、等级保护要求和监管要求等,以保障云原生平台、云用户和云产品的安全。

4 总结和展望

未来,我们将迎来更新的云原生网络结构和技术,更丰富的云业务场景与云业务形态,为了保障云原生时代云平台和产品的健康发展,应尽早分析云原生可能带来的各种安全隐患和风险,并提前采取应对措施,通过有效的云原生安全技术和管理手段,守护云原生时代的美好未来。