云原生技术带来巨大价值的同时,也带来了诸多基于云原生视角的新型安全挑战。为了让广大客户更加详细地了解云原生安全,默安科技推出“云原生安全之变”系列文章,为各位逐一介绍云原生技术各阶段所面临的风险挑战与解决方案。本篇文章是本系列的最后一期,主要对云原生下的DevSecOps进行阐述。
1 DevOps是云原生的重要构成
CNCF将云原生定义为——“使组织能够在现代化和动态的环境(例如公共云、私有云和混合云)中,构建和运行可进行容量伸缩的应用程序。其代表技术包括容器、服务网格、微服务、不可变基础设施和声明性API”。而DevOps被认为是云原生的重要技术构成。
云原生下的DevOps才真正实现了快速、高效、弹性等优势:
容器和Kubernetes的出现将底层计算、存储和网络资源进行解耦,基础设施抽象化程度提高,有利于资源的弹性伸缩。云原生下开发和运维效率将得到大幅提升,开发人员可以更加专注于开发本身而无需担心程序运行在什么环境中,运维工作变得更加规范和标准化。同时虚拟化和容器化进一步拉通了开发和生产环境的一致性,从技术角度来说构建和部署阶段不再割裂,符合DevOps的自动化、持续集成与持续部署诉求。
云原生下应用程序的构建和运行,DevOps是最佳选择:
云原生应用程序通常是频繁且快速开发构建、自动部署到云基础架构上的,其独特的特性使得应用程序必须基于一组跨越开发和生产的工具集合与流程,而DevOps是所有开发模式中最符合云原生场景的。DevOps不仅集成了全部工具、在容器和Kubernetes技术的加持下通过CI/CD管道实现开发、构建、部署到运行全流程的自动化,打通了开发阶段与运维阶段的壁垒。总之,DevOps使应用程序的开发和部署更加灵活高效。
DevOps能支撑更快速的需求响应:
看IT架构发展的本质,都是为了更快速的业务迭代,以更迅速地满足用户需求,由此来吸引更多的用户,抢占更大的市场。云原生架构也是为了这个终极目标而诞生的。开发过程体系,在目前的时代下最快速的方式就是DevOps,因此云原生才会明确把DevOps纳入其中。可以试想一下,如果开发模式仍然采用瀑布模式,但是运行时又采用微服务架构,那么瀑布式的开发模式必然将拖慢迭代速度,部署和运行时做得再灵活快速,也于事无补。
2 云原生DevOps面临的风险
DevOps本就面临着诸如安全合规、开源漏洞、软件供应链投毒等风险,为适应DevOps的工具化和自动化的需求,采用DevSecOps将安全控制和流程嵌入到 DevOps 工作流程中,力求实现自动化的安全风险闭环。
云原生将容器化架构引入DevOps全流程,在生产、构建、发布、运维阶段均需要考虑云原生带来的风险,如:
> 构建的容器镜像是否安全
> 上线的IAC是否有缺陷
> 开发过程中的开源组件安全问题
> 开发过程中的应用安全漏洞
> 持续优化流水线策略
3 云原生下的DevSecOps如何实践
从DevOps的必要性与风险性可以看出,要建设安全的云原生体系,必然离不开DevSecOps体系的建设。默安科技建议云原生DevSecOps可从以下几点重新考量应用程序安全:
4 更进一步,开发、部署、运行时安全贯通
在目前国内很多企业处于云原生体系的建设阶段,安全更是处于起步建设阶段,因此用户会将更多的目光放在运行时阶段,这与传统安全的建设思路比较类似,先建设防护设备、再建设漏洞检测设备、最后到SDL建设。但在云原生体系中,开发与运行时,更多的是一体化的过程,皮之不存,毛将焉附,应用云原生体系的企业,其软件开发过程基本都是DevOps方式。因此在云原生安全建设的初期,可以先建设云原生运行时安全,但也应在规划阶段就考虑DevSecOps的建设,以及如何把开发安全->部署->运行时安全过程打通。
默安科技尚付CNAPP云原生保护平台(以下简称“尚付CNAPP”),具备完整的云原生DevSecOps能力,可以将开发阶段、部署阶段、运行时阶段的各类安全数据在统一平台上进行统一处理和计算。
01 从开发关联运行时
在很多企业中,开发过程中的信息,往往与运行时中的信息割裂,开发过程中的平台与运行时的运维平台也区分得非常明显,其原因在于传统的开发模式中,开发与运维本就是不同的阶段与工种,互相之间的联系更少,但在DevSecOps提出后,开发、测试、运维过程在加速融合,更加强调一体化。默安科技尚付CNAPP,既有开发阶段的安全能力,也有运行时阶段的安全能力,通过数据关联,能做到将开发阶段信息与运行时阶段关联,能够直接在开发项目中看到此项目发布后是运行在哪些资源中、资源的安全状态如何。
同样,尚付CNAPP也可以从运行时阶段,直接透视到此资源上,清晰地展示出所运行的应用程序在开发阶段存在哪些风险、哪些已修复、哪些未修复。
这对于安全治理、漏洞响应而言,尚付CNAPP同样具备很高的使用价值。以A组件高危漏洞爆发为例,用户可在“开发项目管理”中,筛选出使用了A组件的开发项目,由于开发项目能够直接关联到运行时资源,企业管理员可以立即确认哪些资源受A组件漏洞的影响,不需要跟通过人工excel表格来进行关联,再找一个又一个开发组进行沟通推进修复。
02 从开发关联部署
在部署阶段,往往会进行“准入卡点”,多数厂商对容器准入部分的控制项有三个维度:容器基线、镜像安全、签名校验,并没有判断应用是否带病上线;默安科技尚付CNAPP,除以上维度之外,还将开发过程中未修复的安全风险作为准入的控制项之一,如微服务在开发测试期间是否存在高危风险漏洞、是否使用了带有漏洞的第三方组件库或带有错误配置的IaC等等,这些在开发测试期间发现的安全风险都有可能致使微服务上线后产生安全风险,因此在准入阶段就需要再次做好安全卡点,防止应用带病上线。
尚付CNAPP在开发、部署、运行时的关联分析与控制能力,兼具创新性和独到性,是行业中同类产品所少有的。
默安科技自成立之初,就开始了DevSecOps、CWPP等能力的布局,经过多年沉淀,成为DevSecOps领域的国内优秀产品和方案提供商,加上公司对容器安全、CSPM等方面的产品创新,在2022年正式推出了“尚付 CNAPP云原生应用保护平台”,帮助客户打造完整、体系化的云原生安全解决方案。默安科技希望对未来的一些预见,能够帮助广大政企客户建设更安全、更稳定的云原生体系。