从 Dev 和 Ops 视角出发,聊聊 DevSecOps 的 What / Why / How

news2024/12/24 2:50:15

近日,极小狐和 TA 的朋友们相聚上海,开展了一场技术 Meetup,从 DevSecOps 的 What、Why、How 出发,通过分享真实应用案例,与参会者交流 DevSecOps 的实践过程和落地经验。

本文整理自极狐(GitLab) 资深云原生架构师郭旭东在会上分享的内容,从 Dev 视角和 Ops 视角聊了聊企业引入 DevSecOps 能解决什么问题,并基于极狐GitLab 的实践经验,分享 DevSecOps 如何落地。Enjoy~

DevSecOps 是覆盖软件开全生命周期的一种安全防护体系,也是一种集众多安全手段于一体的方法。

工具是手段,不是目的” 这是我们一再申明的观点。DevSecOps 最终目的是为了尽早的发现、挖掘软件中潜在的安全问题,以直观的方式呈现给软件开发生命周期上的相关人员,包括 Dev、Ops、Sec、QA 等。

为什么需要 DevSecOps ?


Dev 视角 👀

Dev(研发人员)不小心写了 bug,造成安全漏洞,给研发人员和公司都会带来损失。

为了避免这样的 “悲剧”,研发希望在开发过程中,就进行充分的安全验证,「安全左移」由此而生。

相较于传统「右侧防护」的安全模式,「安全左移」把各种安全实践内建到软件开发的各个关键节点之中,通过尽早引入安全实践以及快速获取安全反馈的方式,从问题的源头着手避免安全问题的产生。

而 DevSecOps 是安全左移的最佳实践:DevSecOps 的关键是将安全性嵌入到整个软件开发生命周期中,从而确保应用程序的安全性能够得到持续不断地改进和维护。

实施 DevSecOps,Dev 会面临什么变化?

一方面,是需要学习新知

  • 安全知识:例如常见的攻击类型、安全漏洞、安全措施等;

  • 工具和技术:例如持续集成和持续交付工具、自动化测试工具、容器化技术等;

  • 测试方法和流程:例如自动化测试、集成测试、安全测试等;

  • DevOps 文化和实践:例如敏捷开发、持续集成和交付、自动化和可观测性等。

另一方面,可能也会面临一些心智负担

  • 压力:例如需要快速响应问题、持续改进工作流程等;

  • 复杂性:可能会增加一定的复杂性,例如需要对多个工具和技术进行整合、需要处理多个团队的反馈等;

  • 变化:例如需要改变工作方式、角色和责任等;

  • 沟通和协作:需要更频繁地进行沟通和协作,需要团队成员具备良好的沟通和协作能力。

Ops 视角 👀

从 Ops 视角看,DevSecOps 的关键在于:确保应用程序的安全性得到持续不断地监控、检测和响应,以保护应用程序在生产环境中的安全性和稳定性。

实施 DevSecOps,Ops 面临什么变化?

一方面,将更加关心自动化和标准化

  • 自动化:DevSecOps 实践中的许多任务都可以通过自动化来实现,例如构建、测试、部署、监控和恢复等。通过自动化,可以实现更快速、更可靠的交付流程,减少人为错误和故障,并提高生产效率和质量;

  • 标准化:标准化可以帮助团队建立统一的流程和规范,以确保开发、测试、部署和运维过程的一致性和可重复性,帮助团队减少错误和风险,提高效率和质量;

  • 流程优化:自动化和标准化可以帮助团队优化整个交付流程,从而更快速、更可靠地交付高质量的软件和服务。流程优化可以使团队更加敏捷和创新,更好地适应快速变化的业务需求。

另一方面,需要更加关注安全和合规性

  • 安全:在 DevSecOps 中,安全是开发和交付流程中必须考虑的关键因素;

  • 合规:开发和交付过程必须符合适用的法规、标准和政策;

  • 安全与合规的融合:在 DevSecOps 中,安全和合规应该融入到整个开发和交付生命周期中,而不是单独的流程,以确保软件和服务在设计和交付时满足安全和合规标准。

实践 DevSecOps 的难点与挑战


难点 1:文化变革

DevSecOps 要求不同团队之间更紧密的协作,这需要打破传统的部门隔离和沟通壁垒,需要进行文化上的变革,提升团队之间的信任和协作能力。

难点 2:工具种类繁多

我们让 ChatGPT 帮忙罗列了一些 DevSecOps 工具,可见之多。

选择适合业务需求的 DevSecOps 工具是一项艰巨的任务。因为每家企业的安全需求不同,团队首先要了解所需安全产品类型及其细分产品;选定细分类别产品后,经过下载、试用和充分比对,才能在众多产品中,挑选出合适的。

难点 3:成本和资源限制

DevSecOps 的实施需要投入大量的人力、物力,这对于小型团队或者资源有限的组织来说可能是一个挑战。

如果防御成本比被攻破之后损失的成本更高的话,防御就没有意义了。因此需要对成本和资源进行合理的规划和管理,以确保 DevSecOps 的成功实施和持续发展。

难点 4:风险与合规管理

DevSecOps 需要考虑到安全风险管理和合规要求,需要对应用程序的整个生命周期进行细致的监控和管理,深入了解各种合规标准和监管要求

难点 5:获取支持

要解决以上几点困难,首先需要的就是获取支持,包括获取领导的支持,争取更多的时间与资源来实践 DevSecOps;获取同事的支持,互相信任,共同完成既定目标。

实践落地难?极狐GitLab 来帮忙


极狐GitLab 提供一站式开箱即用的 DevSecOps 方案,帮助用户发现问题、追踪问题、解决问题。

  • 七大安全功能:密钥检测、静态应用安全测试(SAST)、动态应用安全扫描(DAST)、容器镜像扫描、依赖项扫描、License合规、模糊测试;

  • 全员参与:研发工程师、测试工程师、运维工程师、安全工程师均参与其中,互相协作,共建安全。

  • 安全流程自动化:将安全最佳实践集成到DevOps工作流中,通过流水线自动化执行,迅速提升认知,形成反馈闭环。

三步完成 DevSecOps 配置,低学习成本和心智负担

只要熟悉极狐GitLab CI 的使用,就可以快速上手,仅需几行代码,就可以收获一个开箱即用的 DevSecOps。

  • Step 1 导入:极狐GitLab  DevSecOps 七大安全功能都有各自的 Template,用户各取所需,导入即可;

  • Step 2 自动识别:自动识别提交代码的语言,进行扫描;

  • Step 3 MR:漏洞报告直接显示在 Merge Request 中。

更进一步,极狐GitLab 还提供了 UI 配置, 即使不熟悉安全功能的 Template,也可以低门槛轻松上手。

如下图 SAST 配置,填写字段后,点击「创建合并请求」,即可自动生成 MR,查看结果。

漏洞详情一目了然,高效杜绝代码安全隐患

以往工作流程中,安全工程师测试后,将漏洞报告发送到工作群,请研发工程师逐个修改。但研发工程师只看到了漏洞,而具体的漏洞所在的位置等信息全然不知,修复起来十分低效和繁琐。

极狐GitLab 提供的漏洞详情和报告如下图,清晰展示了漏洞所在项目、在哪个文件的第几行、漏洞级别等信息;针对需要修复的漏洞,安全工程师一键「创建议题」,研发工程师即可 “对症下药” 开始追溯和修复漏洞,高效明了。

支持自定义配置,灵活匹配用户需求

每个扫描器有不同的配置, 在极狐GitLab 中,可以通过 Variables 来自定义配置,来达到定制部分扫描配置的目的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/440074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爬虫日常-selenium登录12306,绕过验证

文章目录 前言代码设计 前言 hello兄弟们,这里是无聊的网友。愉快的周末过去了,欢迎回到学习频道。书接上文,我们说到了再用selenium登录12306时遇到了滑块验证的问题。当前的网站几乎每家都会在登录模块添加一个认证,来规避各种…

js 同步与异步

一、js 执行机制 JavaScript语言的一大特点就是单线程,即(同一时间只能做一件事情)。因为JavaScript是为了处理页面中用户的交互,以及操作DOM而诞生的。比如对某个DOM元素进行添加和删除操作。不能同时进行,应该先进行…

一文带你通俗理解23种软件设计模式(推荐收藏,适合小白学习,附带C++例程完整源码)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、设计模式是什么? 设计模式是为了解决在软件开发过程中遇到的某些问题而形成的思想。同一场景有多种设计模式可以应…

第18章_JDK8-17新特性(上)

第18章_JDK8-17新特性(上) 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 本章专题与脉络 1. Java版本迭代概述 1.1 发布特点(小步快跑,快速迭代…

安装TortoiseGit后桌面文件夹和用户文件夹中显示红色叹号

✨ TortoiseGit作为一个很好用的git图形化工具,能够很方便的进行版本控制。但在安装这个软件之后就遇到了一个问题。 👀问题描述:我们知道,安装TortoiseGit之后,当自己版本库中文件发生更改,但还没有提交到受控库时&am…

信息系统管理工程师好考吗?如何去备考呢?

信息系统管理工程师有点难度,侧重于IT技术的中级资格考试,主要适合系统管理员等专业技术人员去考 一、信息系统管理工程师考试介绍: 考试科目有两科,且成绩不延续,考试都合格后的证书是永久有效的。 报考条件&#x…

文件改名,如何将文件复制到指定文件夹里,并设置自动编号同名文件

在工作中,我们经常会遇到要将文件进行备份的时候,那么文件名称相同的情况下要如何批量备份呢?又如何自动编号同名文件?今天小编就给大家分享一下我的操作办法。 首先,第一步我们要进入“文件批量改名高手”的主页面并…

pot lib:optimal transport python库

文章目录 transport1. [计算最优传输(Computational Optimal Transport)](https://zhuanlan.zhihu.com/p/94978686)2. 离散测度 (Discrete measures), 蒙日(Monge)问题, Kantorovich Relaxation (松弛的蒙日问题)3. scipy.stats.wasserstein_distance 距…

CVPR2023活体检测Instance-Aware Domain Generalization for Face Anti-Spoofing学习笔记

论文链接:https://arxiv.org/pdf/2304.05640.pdf 代码链接:GitHub - qianyuzqy/IADG: (CVPR 2023) Instance-Aware Domain Generalization for Face Anti-Spoofing(尚未公布) 研究动机 此前的基于域泛化(domain gen…

信号完整性分析:关于传输线的三十个问题解答(二)

11.对于 50 欧姆带状线的纵横比,什么是好的经验法则?(What is a good rule of thumb for the aspect ratio of a 50-Ohm stripline?) 在带状线几何形状和 FR4 基板中,线宽和平面之间的电介质间距的纵横比为 。由于有两个平面,带…

如何快速建立一个podman环境

本文介绍如何安装podman,并创建podman容器 环境 Centos8 安装podman Podman 是一个容器环境,首先在主机上安装 Podman。执行下面命令来安装podman: [rootlocalhost ~]# yum -y install podman然后修改一下用户命名空间的大小&#xff1a…

202305读书笔记|《因思念而沉着》——任何赞美都是身外之物唯自由可随身携带

《因思念而沉着》作者巴哑哑,忘了是什么时候加入的书架,昨天下班地铁上读完的书。是美的! 部分节选如下: 羽叶茑萝举着熄灭的花青色的小枣落了一地所以哭泣沾染上了你的脸 在没落下 当我们开始生活 就是开始患上了眼疾你独自悲伤…

互联网求职指南2023版(内含腾讯、阿里、字节真实面经)

0. 缘起 五年前,小编曾经写过一篇文章,文章主要带大家了解当时的互联网巨头公司、独角兽公司。并给出了互联网的求职建议。从简历、知识储备、暑期实习、面试上给出了中肯的建议。现在看来也是很受用的,感兴趣的可以点击链接《互联网求职指南…

【人工智能概论】 构建神经网络——以用InceptionNet解决MNIST任务为例

【人工智能概论】 构建神经网络——以用InceptionNet解决MNIST任务为例 文章目录 【人工智能概论】 构建神经网络——以用InceptionNet解决MNIST任务为例一. 整体思路1.1 两条原则1.2 四个步骤 二. 举例——用InceptionNet解决MNIST任务2.1 模型简介2.2 MNIST任务2.3 完整的程序…

【ChatGPT 】ChatGPT Sidebar 实战:自定义 ChatGPT 搜索页面回复模板(示例开发和文员专用模板)

目录 一、前言 二、ChatGPT Sidebar 通用配置 (1)通用配置入口 (2)设置 ① 如何访问 ChatGPT ② 语言 ③ 主题 三、ChatGPT Sidebar 搜索页面 (1)搜索页面入口 (2)设置 …

Node 05-Node.js模块化

Node.js 模块化 介绍 什么是模块化与模块 ? 将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为 模块化 其中拆分出的 每个文件就是一个模块,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用…

【问题解决】Git报错:failed to push some refs to xxxxx

Git报错:failed to push some refs to xxxxx To https://xxxxxxxxxxxx.git ! [rejected] master -> master (fetch first) error: failed to push some refs to ‘https://xxxxxxxx.git’ hint: Updates were rejected because the remote contains work that yo…

AI+明厨亮灶智能算法 yolo

AI明厨亮灶智能算法通过pythonyolo网络模型分析算法,AI明厨亮灶模型算法可接对后厨实现如口罩识别、厨师服穿戴、夜间老鼠监测、厨师帽识别、厨师玩手机打电话识别、抽烟识别等实时分析监测。Python是一种由Guido van Rossum开发的通用编程语言,它很快就…

领导力专题︱聊聊领导力的主要问题

本文内容结构 一、领导力的主要问题:领导者与下属 1、让人敬佩的领导者的能力与技巧 2、下属的期望 (1)热情 (2)重视 (3)欣赏 (4)归属感 3、下属(追随…

微结构MRI参数估计的神经网络:在白质扩散-弛豫模型中的应用

导读 通过使用生物物理模型来解释弛豫-扩散MRI大脑数据,可以研究白质微观结构的具体特征。尽管更复杂的模型有可能揭示组织的更多细节,但也会导致参数估计耗时较长,由于简并拟合地形中普遍存在局部最小值,这些参数估计可能会收敛…