近日,极小狐和 TA 的朋友们相聚上海,开展了一场技术 Meetup,从 DevSecOps 的 What、Why、How 出发,通过分享真实应用案例,与参会者交流 DevSecOps 的实践过程和落地经验。
本文整理自极狐(GitLab) 资深云原生架构师郭旭东在会上分享的内容,从 Dev 视角和 Ops 视角聊了聊企业引入 DevSecOps 能解决什么问题,并基于极狐 GitLab 的实践经验,分享 DevSecOps 如何落地。Enjoy~
DevSecOps 是覆盖软件开全生命周期的一种安全防护体系,也是一种集众多安全手段于一体的方法。
“工具是手段,不是目的” 这是我们一再申明的观点。DevSecOps 最终目的是为了尽早的发现、挖掘软件中潜在的安全问题,以直观的方式呈现给软件开发生命周期上的相关人员,包括 Dev、Ops、Sec、QA 等。
Dev(研发人员)不小心写了 bug,造成安全漏洞,给研发人员和公司都会带来损失。
为了避免这样的 “悲剧”,研发希望在开发过程中,就进行充分的安全验证,「安全左移」由此而生。
相较于传统「右侧防护」的安全模式,「安全左移」把各种安全实践内建到软件开发的各个关键节点之中,通过尽早引入安全实践以及快速获取安全反馈的方式,从问题的源头着手避免安全问题的产生。
而 DevSecOps 是安全左移的最佳实践:DevSecOps 的关键是将安全性嵌入到整个软件开发生命周期中,从而确保应用程序的安全性能够得到持续不断地改进和维护。
实施 DevSecOps,Dev 会面临什么变化?
一方面,是需要学习新知:
另一方面,可能也会面临一些心智负担:
从 Ops 视角看,DevSecOps 的关键在于:确保应用程序的安全性得到持续不断地监控、检测和响应,以保护应用程序在生产环境中的安全性和稳定性。
实施 DevSecOps,Ops 面临什么变化?
一方面,将更加关心自动化和标准化:
另一方面,需要更加关注安全和合规性:
DevSecOps 要求不同团队之间更紧密的协作,这需要打破传统的部门隔离和沟通壁垒,需要进行文化上的变革,提升团队之间的信任和协作能力。
我们让 ChatGPT 帮忙罗列了一些 DevSecOps 工具,可见之多。
选择适合业务需求的 DevSecOps 工具是一项艰巨的任务。因为每家企业的安全需求不同,团队首先要了解所需安全产品类型及其细分产品;选定细分类别产品后,经过下载、试用和充分比对,才能在众多产品中,挑选出合适的。
DevSecOps 的实施需要投入大量的人力、物力,这对于小型团队或者资源有限的组织来说可能是一个挑战。
如果防御成本比被攻破之后损失的成本更高的话,防御就没有意义了。因此需要对成本和资源进行合理的规划和管理,以确保 DevSecOps 的成功实施和持续发展。
DevSecOps 需要考虑到安全风险管理和合规要求,需要对应用程序的整个生命周期进行细致的监控和管理,深入了解各种合规标准和监管要求。
要解决以上几点困难,首先需要的就是获取支持,包括获取领导的支持,争取更多的时间与资源来实践 DevSecOps;获取同事的支持,互相信任,共同完成既定目标。
极狐 GitLab 提供一站式开箱即用的 DevSecOps 方案,帮助用户发现问题、追踪问题、解决问题。
七大安全功能:密钥检测、静态应用安全测试(SAST)、动态应用安全扫描(DAST)、容器镜像扫描、依赖项扫描、License 合规、模糊测试;
全员参与:研发工程师、测试工程师、运维工程师、安全工程师均参与其中,互相协作,共建安全。
安全流程自动化:将安全最佳实践集成到 DevOps 工作流中,通过流水线自动化执行,迅速提升认知,形成反馈闭环。
只要熟悉极狐 GitLab CI 的使用,就可以快速上手,仅需几行代码,就可以收获一个开箱即用的 DevSecOps。
更进一步,极狐 GitLab 还提供了 UI 配置, 即使不熟悉安全功能的 Template,也可以低门槛轻松上手。
如下图 SAST 配置,填写字段后,点击「创建合并请求」,即可自动生成 MR,查看结果。
以往工作流程中,安全工程师测试后,将漏洞报告发送到工作群,请研发工程师逐个修改。但研发工程师只看到了漏洞,而具体的漏洞所在的位置等信息全然不知,修复起来十分低效和繁琐。
极狐 GitLab 提供的漏洞详情和报告如下图,清晰展示了漏洞所在项目、在哪个文件的第几行、漏洞级别等信息;针对需要修复的漏洞,安全工程师一键「创建议题」,研发工程师即可 “对症下药” 开始追溯和修复漏洞,高效明了。
每个扫描器有不同的配置, 在极狐 GitLab 中,可以通过 Variables 来自定义配置,来达到定制部分扫描配置的目的。