近日,极小狐和 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 来自定义配置,来达到定制局部扫描配置的目标。