DevSecOps 与软件开发安全

时间:2023-01-11 11:19:57

随着技术的发展和企业对快速交付软件的需求日益提升,DevOps 因为其让开发、运维、测试协同作战的理念,能够提高研发效率、实现高效交付、实现敏捷开发而受到企业的追捧。

DevOps 能够大幅提高企业应用的迭代速度,但安全如果不能跟上步伐,不仅会抵消 DevOps 变革带来的提升,拖慢企业数字化转型进程,还会导致漏洞与风险的出现。

因此,在提升软件开发效能的同时,保证软件安全开发同样重要。而 DevSecOps 则是将安全防护流程有机地融入传统的 DevOps 流程中,通过与 IT 安全团队、软件开发人员和运营团队合作,在标准 DevOps 周期中建立关键的安全原则,为研发安全提供强有力保证。

安全开发为什么重要?

安全与开发质量息息相关,如果开发过程控制良好,后期修补缺陷的成本就会大幅降低。研发验证是安全前置实践的关键所在,而保证研发阶段的安全又是整体安全左移实现的关键,所以在软件开发过程中,要时刻关注代码程序安全,避免引入风险。

代码是软件应用服务开发的最初形态,其缺陷或漏洞是导致安全问题的导火索,做好安全编码,并尽早发现源码缺陷能够大大降低修复安全问题的成本。美国国家标准与技术研究所(NIST)统计数据显示,编码阶段的修复成本远远低于发布后执行代码修复的成本。

DevSecOps 与软件开发安全

::: hljs-center

研发运营各阶段代码漏洞修复成本

:::

业界安全开发实践

Gartner 表示,各类安全漏洞扫描、开源组件版本检查等工具可以让研发人员在编码时就发现和消除一些潜在的安全风险。

安全开发如此重要,使得企业在追求开发效率提升的同时,不得不关注安全问题。下面就为大家盘点一下各个企业的 DevSecOps 和软件安全开发实践:

百度在 DevSecOps 工具链中提出,在开发阶段要做好源码漏洞安全检查、仓库安全检查、供应链安全检查、高危框架检查和安全编码规范检查。 腾讯在 DevSecOps 工具链中提出,在开发编码环节使用的工具 / 机制需要有安全开发库、安全相关的基础设施 & 框架机制,IDE 中的代码质量工具、代码 review 需要有安全加固的统一编译构建环境和腾讯软件源。 微软在研发运营全生命周期安全管理中提出,在开发阶段要做好第三方组件的安全管理、使用经过安全性检查并认可的工具、执行静态应用程序。 思科在研发运营全生命周期安全管理中提出,要利用工具了解潜在的第三方软件安全威胁,不断更新已知第三方软件威胁和漏洞列表,并对产品团队进行告警;建立内部的安全编码标准,维护经过审核的通用安全模块。 Vmware 在研发运营全生命周期安全管理中提出要明确产品中开源及第三方组件中的安全漏洞,在发布前期进行修复,通过静态代码分析与漏洞扫描等手段保证研发阶段的安全。

企业实现安全开发的关键

关于如何落地 DevSecOps,保证开发阶段的安全,通过上文不难发现很多企业都有自己独特的方法。但其中使用安全的工具、安全编码、对开源和第三方组件进行管理这三个方面往往必不可少。

使用安全的工具

工欲善其事,必先利其器。工具的安全性是保证安全开发的关键一环,开发团队使用的编辑器、链接器等相关工具,可能会涉及一些安全相关的环节,因此在使用工具的版本上,需要提前与安全团队进行沟通,使用经过安全性检查并认可的工具、安全加固的编译构建环境,以确保编码实际安全。

安全编码

安全编码对保证产品和服务的安全至关重要。一直以来,缺陷和错误都是导致可被普遍利用的软件漏洞的主要原因。安全编码可以通过遵循已建立的威胁模型来降低与安全相关的脆弱性、漏洞数量和集成错误,从而防止安全漏洞的意外引入。

对开源和第三方组件进行管理

随着开源软件的盛行,其成为现代软件开发最基础的原材料。混源(兼有闭源软件和开源软件的一种混合体)软件开发已经成为目前软件交付的主要方式,对它的全面风险审查应考虑从第三方开源组件缺陷及后门、自研代码通用漏洞、自研代码业务逻辑漏洞、潜藏恶意代码等维度综合审计。并不断更新已知第三方软件威胁和漏洞列表,对于产品团队进行告警,保证软件供应链的安全。

SoFlu 软件机器人助力企业实现安全开发

SoFlu 软件机器人是一款让企业快速实践 DevSecOps 的绝佳工具,其能够实现全自动化软件开发,在开发人员和安全专业人员之间创建一个协作环境,使企业能够更快、更轻松地构建安全代码。

SoFlu 软件机器人改变了原来手工编码的作业模式,通过可视化拖拽组件以及参数配置就能实现等同于编写复杂代码的业务逻辑,在设计业务逻辑时就完成了微服务应用开发,也就是 “业务即图,图即代码”, 实现 “一人一项目、十人抵百人” 的开发效果。

DevSecOps 与软件开发安全

关于安全编码,SoFlu 软件机器人制定了自己的代码规范。比如,限定每行代码的写法、有些地方不允许 SQL 拼接、Join 不允许超过三次等。此外,所有的代码还必须接受严格检测,确定没问题后才会被提交到代码仓库;同理,所有组件也必须经过代码质量管理工具扫描无误后才让用户使用。由此保证代码的质量和安全。

关于开源和第三方组件,因为 SoFlu 软件机器人覆盖了软件开发全流程,可以独立完成整个软件项目的开发,且 SoFlu 软件机器人融入了 CMMI 经验和 DevSecOps 理念,其开发的软件天然就符合规范,所以开发者在开发过程完全无需引入第三方工具和组件,从而从根本上杜绝使用开源和第三方组件带来的潜在风险。

目前,SoFlu 软件机器人已经应用于医疗、金融、教育、零售等八大行业的上百家企业,帮助它们实现高质量、高效率、高安全性的软件开发。中国石油的信息化团队曾在 5 个 SoFlu 软件机器人的帮助下仅投入 9 人 + 45 天就完成传统开发模式下需要 27 人 + 300 多天才能完成的大型电商平台的系统重构,且平台上线至今的两年多时间里一直保持稳定运行,其安全性得到有效保障。

图灵奖得主大卫・帕特森曾对 SoFlu 软件机器人评价道,“SoFlu 软件机器人能够通过自动化的方式变革传统软件工程模式、大大提高工作效率。新的开发模式、最佳实践的沉淀、人工智能的赋能,打开了创新的大门,让软件行业迎来了黄金时代。”