既然说到DevSecOps,就不得不提DevOps,二者从字面上的差距就是前者多了一个“Sec”,也就是安全的意思。显然,安全在软件开发流程中越来越重要。在讲DevSecOps之前,我们先来回顾一下DevOps。
DevOps可拆分为两部分:Devlopment与Operations,也就是开发与运营的组合。该流程促进开发人员和运营人员协作,简化了软件开发流程,以确保更快、更高效地部署。
开发人员和运营人员共同参与到软件开发的生命周期中,共同管理维护这个流程,团队协作效率大大提升,避免了很多不必要的沟通壁垒,大大提高了软件的开发效率。
开发和运营是 DevOps 的核心。这两个团队之间有非常紧密的协作关系,开发流程中的其他模块都要围绕这两个部分设计。此外,高效的pipeline也是 DevOps 发挥作用的关键一环。以下DevOps流程图涵盖了从plan(计划)到release(发版)的所有环节,同时也包括软件交付流程
DevOps的核心是敏捷性,其将开发、测试、管理、运营等角色紧密地结合起来,将软件开发生产力推到的一个新的高度。
另外,自动化在 DevOps 中起着至关重要的作用,其可实现软件的快速一键部署。Jenkins、Docker 和 Kubernetes 等工具在开发流程中被广泛使用。
DevSecOps 是development, security, operations三个的单词的组合,也就是开发、安全和运营的组合,是在软件和应用程序开发生命周期中持续集成安全的实践,以确保最佳的安全和性能效率。
DevSecOps的核心是将安全集成到了SDLC(软件开发生命周期)中的每个阶段。简单来说就是:
软件的安全指标会影响软件的开发、测试、发版、运营等各个阶段。举个例子:
在软件发布前会经过一系列的安全测试(包括SAST、IAST、DAST等),若发现了一些中高危的安全漏洞(不满足软件安全性标准),是不允许发布的,必须对漏洞进行修复。
软件达到安全标准才可以进行下一个阶段。
DevSecOps 强调开发、安全和运营团队之间的协作和集成。其强调安全性不应该是事后的想法,而应该从项目的最初阶段就考虑。这是一种责任共担的文化,所有团队共同努力,确保在软件开发生命周期的所有阶段都妥善解决安全性问题。DevSecOps 的核心是专注于自动化和持续集成,这将确保快速、一致地实施安全措施。
软件开发流程的Security检测有很多方法,大家可以先看一下这张图:
各阶段的Securtity通常会涉及以下部分(包括但不限于):
威胁建模和风险评估:在设计阶段进行威胁建模,识别潜在风险点,并制定针对性的_安全策略_
安全架构设计:最小权限原则、纵深防御、微服务安全边界设计等
安全开发规范:编写和更新_安全编码指南_等
SAST 静态代码分析工具(白盒,分析对象为项目源代码)
SCA 软件依赖项扫描(旨在发现软件使用的第三方组件中的安全漏洞,通常以分析二进制文件、容器为主,也可分析源码)
权限及配置管理
角色权限管理
安全配置管理
...
日志监控及审计
IDS/IPS/WAF等安全软件
漏洞管理与补丁更新
DAST 动态应用安全测试(黑盒,如:渗透测试)
IAST 交互式应用安全测试(灰盒,白盒与黑盒的结合,通常通过插桩方式实现)
RASP(Runtime Application Self-Protection):软件运行时的保护措施
监控软件行为(日志分析等)
SIEM(安全信息和事件管理):SIEM还可以与其他安全工具集成,支持安全事件响应流程(SOAR)的自动化
漏洞扫描:发现漏洞及时修复
其他安全工具的监控(IDS/IPS等)
将安全融入开发的早期阶段,而不是等到开发后期或者产品发布之后才进行安全审查。这意味着安全不再是开发流程的附加环节,而是与开发和运维紧密结合,大大减少了因安全问题引发的延迟和额外成本。
通过自动化工具和CI/CD流水线集成安全测试,比如_静态代码分析_、_动态应用安全测试_等,可以快速检测和修复安全漏洞,可以在确保软件安全性的前提下,显著提升软件的交付速度。
通过预防性的安全措施,减少了后期修复安全问题所需的时间和人力成本。同时,由于安全工作贯穿整个开发过程,可以有效避免因安全问题导致的_重构、停机_等操作。
DevSecOps团队在应对安全事件时拥有更快的响应速度,各团队之间紧密合作,安全贯穿始终,团队能够更快地发现、修复安全问题,对应急事件做出更快更有效的响应。
在安全团队与开发、运营团队协作的过程中,开发及运营人员的安全意识也会得到显著的提高,这对企业来说是一个隐性的潜在价值。安全意识的提升有助于应对突发的安全事件。
推荐阅读
代码属性图CPG系列文章(白盒/静态代码分析方向):超万字的详细讲解,文章理论与实践相结合,示例代码可拿来即用,通俗易懂,这样的文章你爱了吗!
技术交流群
社群大佬云集,可与各领域大咖面对面交流技术
定期做做优质技术分享,提升自己的技术能力
自我提升,不仅限于技术,还有圈子
与笔者交个朋友
点击公众号底部菜单栏“点击进群”,扫码加笔者好友(备注"进群")
聊点两毛钱的
能够看到这篇文章,就是我们的缘分,坚持输出优质内容是笔者一直在做的事情。若文章对你有帮助,感谢点个免费的 点赞、在看,大家的鼓励是我最大的动力
关注我,交个朋友~