概述
CI/CD 安全防护通过自动化检查和测试来保护代码管道,以防止软件交付中出现漏洞。将安全防护融入到管道有助于保护代码免遭攻击,防止数据泄露,确保符合政策规定,并保障质量。
什么是 CI/CD?
CI/CD(持续集成、持续交付和持续部署)是一系列步骤,通常呈现为管道,必须按顺序执行才能交付新版本软件。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 奠定稳健基础,为您的整个容器应用生命周期(包括开发、部署和运行时)解决各种安全挑战。
为了让您的业务顺利运行,保护软件供应链、消除潜在漏洞至关重要。但是,云原生应用的软件供应链安全需要无数工程师和开发人员日积月累的努力。红帽可信软件供应链提供了一套安全防护解决方案,这些解决方案专注于软件开发生命周期早期的软件组件和依赖项的安全防护,并深入构建和发布管道中,以审核并处理安全问题。我们采用 DevSecOps 实践,在软件工厂的每个阶段集成安全防护措施,让您从不一致的手动流程转向一致且可重复的自动化运维,从而缩短价值实现时间。当企业提高软件供应链的弹性时,便能维护并增强用户的信任。
红帽 Kubernetes 高级集群安全防护(ACS)是领先的 Kubernetes 原生安全平台,使企业组织能够更安全地构建、部署和运行云原生应用。该解决方案有助于保护在所有主流云和混合平台中运行的容器化 Kubernetes 工作负载,包括红帽 OpenShift、Amazon Elastic Kubernetes Service(EKS)、Microsoft Azure Kubernetes Service(AKS)和 Google Kubernetes Engine(GKE)。
红帽高级开发人员套件(包括红帽 Trusted Artifact Signer)通过软件工件的自动化签名、加密验证及端到端溯源追踪功能,为您的软件供应链提供全面保护。
红帽官方博客
获取有关我们的客户、合作伙伴和社区生态系统的最新信息。