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迷.

版权声明:
作者:siwei
链接:https://www.techfm.club/p/29675.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>