概述
CI/CD 安全防护通过自动化检查和测试来保护代码管道,以防止软件交付中出现漏洞。将安全防护融入到管道有助于保护代码免遭攻击,防止数据泄露,确保符合政策规定,并保障质量。
什么是 CI/CD?
CI/CD(持续集成、持续交付和持续部署)是一系列步骤,通常呈现为管道(Pipeline),必须按顺序执行才能交付新版本软件。CI/CD 可在应用开发中引入自动化和持续监控,从而尽可能减少人为错误,保持更快速开发高质量代码的流程。
通常,CI/CD 管道的核心阶段不包括安全防护措施,这意味着应采取额外步骤来保护开发流程。
常见的 CI/CD 安全防护挑战有哪些?
开发和部署的节奏本身就快,没有正确的安全防护会使管道暴露于风险之下,例如:
- 敏感数据暴露给外部来源
- 使用不安全的代码或第三方组件
- 未经授权访问源代码存储库或构建工具
识别和缓解开发周期中的漏洞,可确保代码更改经过全面测试,并符合安全标准,然后再部署到生产环境。
为什么 CI/CD 对于 DevSecOps 非常重要?
DevSecOps(开发、安全防护和运维)是对企业文化、业务自动化和平台设计等方面进行全方位变革,将安全作为整个 IT 生命周期的共同责任。DevSecOps 的一个关键组成部分是引入了安全 CI/CD 管道。
CI/CD 对于 DevSecOps 非常关键,因为它会自动化并在开发流程的早期嵌入安全检查,确保快速反馈潜在漏洞,有利于在应用生命周期中采取主动的安全防护方法。
“左移”的概念是 CI/CD 和 DevSecOps 中的基本概念,是指将特定的安全任务和活动移到软件开发流程的更早期。提前实施安全防护的做法包括自动执行安全漏洞扫描流程,代码更改提交后立即审查,并在开发人员和运维团队中培养积极的安全意识文化。
如何保护 CI/CD 管道
规划阶段:在管道的每个阶段纳入安全防护检查十分重要,可确保代码安全并符合安全标准。第一步是制定产品路线图,这有助于确定潜在的安全威胁。这一步这称为威胁建模。威胁建模时会识别潜在漏洞并制定应对措施来缓解这些风险。
编程:随着开发人员开始编写代码,采取措施确保代码编写符合预定义的标准和设计准则。使用源代码扫描程序来检测可能容易受到安全威胁影响的代码段。
构建:随着开发人员开始向共享存储库提交源代码,确保触发自动化测试以验证构建符合要求。
测试:构建成功后,测试软件是否存在错误。如果增加新功能,将执行更多自动化测试。
红帽能如何提供帮助?
红帽® OpenShift® 允许组织使用 CI/CD 跨本地和公共云平台自动执行应用的构建、测试和部署阶段。红帽 OpenShift、红帽 Ansible® 自动化平台再加上合作伙伴的先进技术,可以为 DevSecOps 奠定稳健基础,为您的整个容器应用生命周期(包括开发、部署和运行时)解决各种安全挑战。
为了让您的业务顺利运行,保护软件供应链、消除潜在漏洞至关重要。但是,云原生应用的软件供应链安全需要无数工程师和开发人员日积月累的努力。红帽可信软件供应链是一系列云服务,帮助企业推进这项工作,将关键漏洞拦截在外,为企业的软件开发生命周期全面护航。
红帽 Kubernetes 高级集群安全防护(ACS)是领先的 Kubernetes 原生安全平台,使企业能够更安全地构建、部署和运行云原生应用。该解决方案有助于保护在所有主流云和混合平台中运行的容器化 Kubernetes 工作负载,包括红帽 OpenShift、Amazon Elastic Kubernetes Service(EKS)、Microsoft Azure Kubernetes Service(AKS)和 Google Kubernetes Engine(GKE)。
红帽可信应用管道(服务预览版)提供默认的管道定义和自动化安全检查,以跨各种不同的编程语言从应用代码中生成软件工件的供应链级别(SLSA)3 级构建镜像。构建包括创建经检验的不可变软件物料清单(SBOM),从而自动为您的开源组件和传递依赖性创建信任链。