构建安全的 DevOps 模型
今天是3月18日,22年前,美国思想家、哲学家埃里希·弗洛姆 Erich Fromm 去世。在他的作品《爱的艺术》中,弗洛姆告诉我们:爱是人与人之间的创造力,而不是感情(咦~)。
如果说,生命是一个跋涉的旅程,对刚进入软件行业的小白,发现 DevOps 模型的理念某种程度上也算是一个旅程。
弗洛姆认为,爱是一门艺术,要求人们有这方面的知识并付出努力。在今天充满对抗的世界,各种主义的固化时点,弗洛姆的精神依然可贵,我们应该更多地去合作、创造、去爱,而非寻求对抗。
如果,生命中与遇到的人相处是一个创造情感与信任的旅程,那么DevSecOps也等比例于创造一个值得信任与安全的开发之旅。
(1900年3月23日—1980年3月18日 )
埃里希·弗洛姆 Erich Fromm
一、什么是 DevOps
通过实践和工具的结合,提高比传统软件开发流程更快地交付和服务能力,更好地服务客户并争取更有效的竞争力,就是DevOps。
在不牺牲安全性的情况下不降低速度和减小规模,将安全性构建到软件开发生命周期中,同时最大限度地降低风险、确保合规性并减少摩擦和成本,就是 DevSecOps 。
瀑布开发和敏捷开发后,为跟上不断提高的软件开发速度和吞吐量巨大的实际需要,同时针对软件开发交付生命周期更全面的方法的需求,产生了DevOps。
DevOps 正在从根本上改变当今的开发和运营方式。
转向 DevOps 和 DevSecOps 并不是一个目标,是一个旅程。
我们可以用 DevOps 和 DevSecOps 帮助开发、运营和安全团队在安全性和合规性与交付速度之间取得平衡,并将安全性构建到完整的软件开发生命周期中(SDLC)中。
DevOps的定义:
简单地说,DevOps 是消除传统开发上孤立的团队、开发和运营之间的障碍。
在 DevOps 模型下,开发和运营团队在整个软件生命周期中协同工作,从开发、测试到部署、运营,都有可能交替进行
二、DevOps 的方法论
DevOps 是敏捷开发的进化版后代。敏捷开发是几种迭代软件开发方法的总称,其中许多的方法论已经延续到 DevOps:
- Scrum —— 一个框架,人们可以在其中解决复杂的适应性问题,同时交付具有最高价值的产品。
- 看板 —— 一种管理产品创建的方法,重点是持续交付,同时不会使开发团队负担过重。 与 Scrum 一样,看板是一个旨在帮助团队更有效地合作的过程。
- Scaled Agile Framework (SAFe) —— 一组组织和工作流模式,SAFe 是一种使用频繁的框架之一,主要是解决在扩展单个团队时遇到的问题。
- 精益开发 —— 将精益制造原则和实践转化为软件开发领域。精益提供了一个概念框架、价值观和原则,以及从经验中得出的最佳实践,支持敏捷组织。
- 极限编程 (XP) —— 旨在提高软件质量和对不断变化的客户需求的响应能力的软件开发方法。XP 提倡在较短的开发周期内频繁发布,旨在提高生产力并引入可以采用新客户需求的检查点。极限编程的其他元素包括成对编程进行广泛的代码审查、对所有代码进行单元测试、在需要时才对功能进行编程、扁平的管理结构、代码简单、预期客户的需求会随着时间的推移而发生变化,以及简化问题以便理解等。
三、什么是 DevSecOps
DevOps 安全称为DevSecOps ,指通过策略、流程和技术来保护整个 DevOps 环境的纪律和实践。
DevSecOps 的理念:安全性应该构建到 DevOps 生命周期的每个部分,包括启动、设计、构建、测试、发布、支持、维护等。
A、传统的安全立场:一旦设计了系统,就可以在发布之前确定和纠正其安全缺陷。
B、传统的安全缺点:传统的安全实践在开发周期中出现得太晚,并且对于迭代构建的软件的设计和发布太慢。因此,它们可能成为快速交付应用程序和服务的主要障碍。
A、DevSecOps的立场:安全成为 DevOps 团队中每个人的关注焦点。
B、DevSecOps 的目标:在不牺牲安全性的情况下快速、大规模地实施安全决策。
四、DevSecOps 的意义
· 协调工程师和安全团队之间持续、灵活的协同作业,实现一个可信任的旅程。
· 简化流程: “交付的速度”和“构建安全代码”整合为一个“被认可的标准”!
· 提高效率:安全测试是在迭代中完成的,不会减慢交付周期。
· 安全性更可靠:关键的安全问题会在它们变得明显时就处理,而不是在威胁或危害发生后进行处理,以免误漏。
构建安全的 DevSecOps 模型
构建一个安全的DevOps 模型,国内外均有一些软件辅助工具,帮助开发人员基于 DevSecOps 下获得最佳的软件安全测试效果。
国外:Synopsys 、Fortify 、checkmarx等公司的软件安全测试工具。
国内
开源网安:CodeSec -SAST
泛联新安: CodeSense 源代码缺陷分析、 BinSearch 二进制同源分析平台
此外,还有奇安信、啄木鸟、海云安、思客云等公司的测试类工具。