我的编程空间,编程开发者的网络收藏夹
学习永远不晚

保护持续集成(CI)/持续交付(CD)管道的五个优秀实践

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

保护持续集成(CI)/持续交付(CD)管道的五个优秀实践

开发人员的思维方式是理解问题,构建解决方案,然后找出如何将健壮且安全的解决方案部署到生产环境中。

不幸的是,一旦实现,将安全优秀实践嵌入到解决方案中通常会操作更加复杂和成本高昂,而快速发布创新的压力往往会导致DevOps团队发布安全债务。最佳Devsecops实践是将知识、最佳实践和安全性“左移”到开发过程中,以便敏捷开发团队更有可能将安全性直接融入微服务、应用程序或数据库中。  

但是持续集成(CI)/持续交付(CD)管道呢?当构建、集成、打包和交付代码到环境的人工步骤在CI/CD工具中编写脚本时,这种自动化提高了部署的可靠性。具有强大CI/CD实施的Devops团队通常会采取下一步措施,并考虑为生产环境进行持续部署,这会带来更多风险,但可以实现更频繁的部署。  

开发人员需要考虑以下这些建议和最佳实践,以确保安全和强大的CI/CD管道。  

1.在CI/CD之前建立安全开发实践  

咨询机构凯捷公司敏捷和开发主管KulbirRaina分享了一个首要原则:“安全和质量必须嵌入到代码中,在处理CI/CD管道中的自动化时,不应该让质量关卡来控制。开发人员需要在他们的集成开发环境中集成安全工具,以便正确地检查代码。”  

Linting是一个由识别编码风格偏差和不安全实践的工具执行的过程。更复杂的静态应用程序安全测试(SAST)工具可以发现缓冲区溢出、SQL注入缺陷和其他问题。Raina建议将SAST集成到持续集成中。  

Redgate Software公司Devops倡导者Steve Jones表示,工具很重要,但就像任何Devops流程一样,确保随着时间的推移不断学习和成长。他说:“定期对开发人员进行安全编码实践方面的教育,并确保他们找出简单的漏洞(例如SQL注入),这一点至关重要。”  

Buildkite公司联合创始人兼联合首席执行官Tim Lucas分享了其他的一些最佳实践。他建议查看来自开源和第三方的依赖项,以了解常见漏洞和暴露 (CVE)。Devops团队不要将易受攻击的软件投入生产。他建议,对供应商软件使用可验证的签名,这样如果供应商受到威胁,企业的安全供应链也不会受到损害。

Sonatype公司现场首席技术官lkka Turunen对此表示赞同。他建议说,“最佳实践之一是在搜索开源软件项目时具有选择性,这就像在传统制造业中一样,并非所有部分都是平等的。寻找由敬业且负责任的开发人员维护的项目,不仅可以提高软件供应链的可维护性,还可以减少技术债务、返工和安全风险。”  

这些建议只是在软件开发生命周期中应用最佳安全实践时的冰山一角,但它们是开发安全交付管道的关键先决条件。

2.在CI/CD管道中构建持续测试  

重要的是要认识到CI/CD不仅仅是交付代码。这也是采用左移测试并发展持续测试策略的机会。然后,将测试作为核心原则的团队可以在触发CI/CD管道将版本部署到任何环境之前寻找验证安全性的机会。除了集成SAST安全测试之外,开发团队还应关注:  

  • 触发渗透测试以发现后门和其他入口点漏洞。  
  • 验证安全控制和测试授权。  
  • 使用动态应用程序安全测试 (DAST)工具测试OWASP十个主要的高严重性问题。  

测试自动化还应该考虑修复常见问题的步骤、通知正确的团队以及回滚过程。

3.自动化CI/CD内的数据安全程序  

CI/CD管道还应该用于自动化具有代码和构建依赖项的安全过程。需要关注的一个领域是数据安全,因为版本可能包括新的数据库、更新的数据模型或新的数据集。  

一项经常被忽视的功能是使用从生产环境中提取的数据来更新开发和测试环境。开发团队应使用最近提取的数据来验证功能和测试体验,并使用数据屏蔽来隐藏个人身份信息和其他符合数据合规要求的数据。

Accelario公司首席技术官兼联合创始人Roman Golod建议:“数据屏蔽是CI/CD期间安全自动化的关键部分。开发和测试团队需要真实的数据来确保一切在生产中都能顺利运行,但非生产系统通常不够安全。”

其他技术包括使用合成数据和服务虚拟化。Golod补充说,“模拟真实事物的合成数据集将进一步加强安全性,因为如果该数据库遭到破坏,威胁参与者将一无所获。”  

Copado公司战略服务高级副总裁Daniel Riedel为开发团队增加了一个关键起点。他说:“开发团队需要了解自己的数据,特别是监管该数据的安全和合规政策。一旦了解了这些政策,需要仔细构建一个出色的安全自动化框架,而该框架经过充分测试,涵盖了这些政策中规定的规则和控制。”  

4.应用零信任原则来保护CI/CD管道  

Devops团队应该如何锁定管道,以便只有授权的人员才能触发它们?Redgate Software公司的Devops倡导者Grant Fritchey提出了一项建议:“在Devops管道中实现安全性自动化的关键与始终保持良好安全性的关键是完全相同的:最小特权原则。如果确保只为管道提供足够的权限,那么在管道内部、周围和内部实现安全自动化将很简单,并提供想要的结果。”  

一些基本实践包括隐藏API密钥、在CI/CD工具中定义基于项目和角色的安全凭证,以及确保远程Devops团队成员的访问安全。

5.通过将CI/CD与AIops和安全自动化集成来验证部署

一旦将代码部署到生产环境,Devops团队的职责就不会结束。这就是对可观察性和监控的投资成为重要的运营反馈工具的地方。Devops团队应与运营团队和工具合作,以响应事件并识别技术债务何时成为运营或安全问题。以下是一些细节:  

  • AIops工具集中运营数据,将警报与事件相关联,并帮助围绕性能和可靠性问题自动响应事件。  
  • 安全自动化可以防止威胁和攻击,同时启用设置权限、修补系统和响应安全事件的自动化。  
  • 许多CI/CD工具提供与AIops、安全自动化和其他通用IT自动化工具的双向集成。作为CI/CD管道的一部分,DevOps团队应触发这些工具的通知,以通知操作和信息安全有关代码交付的信息。它们还应该允许IT运营和信息安全自动化来触发构建或回滚,以支持运营和安全需求。  

Devops工作流程显示了从规划到监控部署的连续路径,以确保团队可靠、安全地规划、交付、发布和运行系统。CI/CD是主要的Devops实践之一,因此在管道之前、内部和之后嵌入安全性是一项关键的责任。

原文5 best practices for securing CI/CD pipelines,作者:Isaac Sacolick

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

保护持续集成(CI)/持续交付(CD)管道的五个优秀实践

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

保护持续集成(CI)/持续交付(CD)管道的五个优秀实践

开发人员需要从一开始就通过持续测试、自动化、零信任和AIops构建安全性。

保护持续集成(CI)/持续交付(CD)管道的6个优秀实践

研究表明,很多网络犯罪分子正在利用持续集成(CI)/持续交付(CD)管道中的漏洞窃取敏感信息、挖掘加密货币,以及输入恶意代码。

什么是持续集成(CI)/持续交付(CD)管道?

持续集成(CI)/持续交付(CD)管道是一系列步骤,其中包括从CI/CD流程开始的所有阶段,并负责创建自动化和无缝的软件交付。而使用CI/CD管道,软件发布工件可以从代码检入阶段到测试、构建、部署和生产阶段一直在管道中前进。

PHP 持续集成中的 CI/CD 管道:实现持续交付的奥秘

PHP 持续集成 (CI) 和持续交付 (CD) 管道可帮助开发人员自动化软件开发流程,确保代码质量和快速交付。本文将深入探讨 CI/CD 管道的构建和实施,揭示持续交付的奥秘。
PHP 持续集成中的 CI/CD 管道:实现持续交付的奥秘
2024-02-17

Node.js CI/CD 的魅力:实现软件开发的连续集成与持续交付

Node.js CI/CD 的魅力在于能够实现软件开发的连续集成与持续交付,从而提高开发效率和软件质量。本文将介绍 Node.js CI/CD 的基本概念,常用的工具和实践,以及如何实施 CI/CD 流程。
Node.js CI/CD 的魅力:实现软件开发的连续集成与持续交付
2024-02-25

Node.js CI/CD 与容器技术的集成:实现现代化应用的持续交付

为了在当今竞争激烈的市场中保持领先地位,企业需要在持续交付和快速迭代方面具备强大的竞争力。本文将探讨利用Node.js、CI/CD和容器技术进行现代化应用程序持续交付的最佳实践,以帮助您更快地将功能发布给用户,同时确保生产环境的稳定性。
Node.js CI/CD 与容器技术的集成:实现现代化应用的持续交付
2024-02-25

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录