Devops 之 CI/CD 安全管理的 13 个最佳实践
查看这 13 个最佳实践,以管理快节奏的 CI/CD 管道,同时保持安全性。
DevOps 的基石是持续集成(Continuous Integration)和持续交付(Continuous Delivery) (CI/CD)。通过在整个开发生命周期中提供自动化和监控,持续集成/持续开发(或部署)为软件生产增加了价值。
CI/CD 管道是软件开发人员遵循的一组程序,以便处理更小的代码块并提高整体生产力和效率。
快节奏、自动化、技术驱动的环境迅速转变为无安全区。安全经理必须在保护管道和允许灵活性之间取得平衡。
为避免数据泄露,最佳方法是将安全性纳入开发生命周期。以下是管理 CI/CD 安全性的 13 个最佳实践的列表。
1) Map 威胁
安全威胁存在于多种技术的交汇处。由于自动化工具数量众多,CI/CD 管道包含许多易受攻击的连接点。
为了确保管道在接缝处安全,请通过定位漏洞并安装额外的安全层来调查潜在漏洞。定期更新和修补连接到生产线的所有设备,并禁止任何不符合安全要求的设备。
2) 安全的 Git
对于 CI/CD 操作,版本控制解决方案是必不可少的。由于 Git 包含源代码和知识产权,因此错误配置它是攻击者的金矿。在 Git 中,暴露的漏洞可能会产生严重影响。
双重身份验证可确保安全访问版本控制系统。向开发人员介绍 Git 协议以及如何正确使用.gitignore文件。
3) 提交前检查
在将任何代码提交到存储库之前,请运行一系列安全测试。IDE 插件有助于实时检测源代码中的漏洞。
同行评审也是一个好主意,尤其是对于新的编码人员。为开发人员创建清单以帮助检测合规性问题和数据安全性。确保代码或硬编码中没有密码、密钥、令牌或其他敏感数据。
4) 审查提交的代码
将代码提交到存储库后,再次检查它。在不运行应用程序的情况下,静态代码分析工具可以帮助提供对提交的洞察、生成报告并提供有用的建议。
为确保跟踪和解决问题,请使用错误跟踪系统。检查 Git 历史记录中的任何可疑活动并采取适当的措施。
5) 部署后监控
安装软件后,请确保定期对其进行监控。持续监控有助于检测不良行为并提供有用的基于数据的见解。
创建可视化仪表板和警报机制,使查找信息更容易。
6) 执行权限
尽管权限会减慢测试过程并且通常被视为一种痛苦,但请确保它们到位并且它们是必需的。开发人员必须遵守规则并将任务分离视为一项关键的安全功能。
为每个存储库定义访问角色,并仅提供保持管道运行所需的信息。
7) 安全凭证
确保您用于访问各种开发程序的凭据是安全的。API 令牌、SSH 密钥、密码和其他类型的证书可用。盗窃和数据泄露是由密码保护不当造成的。
使用密钥管理平台,以自动方式强制实施加密密钥安全。应使用密码管理软件,并应定期轮换安全令牌。
8) 清理
在快节奏的氛围中,在完全整理之前进行下一个项目是很常见的。应关闭任何临时资源,例如虚拟机、容器和进程。
为避免后门和潜在的有害进入点,请定期删除多余的程序和实用程序。
9) 将 IaC 实施到流水线中
基础设施即代码 (IaC) 可自动设置标准化的开发和测试环境。IaC 顺利集成到 DevOps 流程中,并协助创建可重用配置和可扩展设置。
10) 扫描开源漏洞
为了创建应用程序,需要开源软件。另一方面,此类软件易于更改和代码升级。更新这些软件包时,会产生安全风险,这会对使用它们的软件产生间接影响。
跟踪组件、文件和第三方工具,以掌握开源漏洞。使用错误跟踪器和软件组合分析技术来跟踪和评估所有潜在的缺陷。
11) 扫描基础设施即代码模板
DevOps 团队已将 IaC 模板(例如 Amazon CloudFormation、Azure 资源管理器和 Hashicorp Terraform)与自动化结合使用,以快速部署、下拉和管理基础设施。
但是,Unit 42 Cloud Threat 对 IaC 模板进行的研究表明,其中相当一部分包含不符合最佳实践或业务安全规则的错误配置。因此,部署了易受攻击的基础设施,可能导致漏洞利用和破坏。
这个问题可以通过结合 IaC 模板扫描和使用专门构建的安全软件来解决:
- 与现有的 DevOps 流程无缝集成,包括 IDE、PR 和 CI/CD 管道步骤(如上所述)。
- 提供扫描结果、发现的错误配置以及解决安全问题所需的任何其他相关信息。
12) 扫描 Kubernetes 应用程序清单
在 Kubernetes 平台上部署应用程序最常用的方法是在应用程序清单(一个 YAML 文件)中声明所有基本参数。然而,根据同样的 Unit 42 分析,42% 的基于开源软件的 Docker 容器具有不安全的默认值,这可能导致部署有风险的容器和应用程序。
美国国家标准与技术研究院的应用程序容器安全指南 (NIST SP 800-190) 概述了容器和容器化应用程序的控制措施,这些控制措施应包括在内以保护这些应用程序。
将可以扫描这些控件的安全技术整合到 DevOps IDE、PR 流程和 CI/CD 管道阶段有助于合规性和其他最佳实践。
安全扫描可以在部署之前发现不安全和不合规的配置,让 DevOps 团队有机会进行必要的修改和更新。
例如,安全扫描可以检测容器映像是否以 root 用户身份执行或具有升级功能,并通知工程师。在这个早期阶段而不是在部署容器之后检测漏洞,可以显着减少团队摩擦。
13) 扫描 Kubernetes 应用程序清单
扫描容器镜像——一个轻量级的、独立的可执行软件——是第三个也是最后一个阶段。容器镜像可能是容器化系统的主要威胁向量,因为它们经常从公共存储库中获取——本质上是不受信任的来源。
但是,通过在生成映像并再次在 CI/CD 管道中进行映像扫描,可以使用专用安全工具在开发和部署周期的各个阶段向 DevOps 团队提供精确的漏洞信息。
扫描结果包括漏洞的详细描述、其严重性、修复状态以及修复漏洞的软件包版本。
结论
阅读本文后,您应该对 CI/CD 安全性应该如何工作有一个坚实的概念。最后,最好的方法是避免让开发人员被安全指南淹没。
相反,通过将安全性包含到管道中,使安全性成为开发过程的自动化组件。
The post Devops 之 CI/CD 安全管理的 13 个最佳实践 first appeared on Linux迷.
共有 0 条评论