写点什么

腾讯云如何破解落地难题,成功实践 DevSecOps?

  • 2021-02-26
  • 本文字数:3683 字

    阅读完需:约 12 分钟

腾讯云如何破解落地难题,成功实践DevSecOps?

最近几年,国内越来越多的企业和软件开发团队开始践行 DevOps 的研发模式。随着 DevOps 的发展,研发安全保障的思维和技术也在进一步演化,其中,一个重要思想是 DevSecOps。但是,行业中关于 DevSecOps 的具体实践分享比较少,很多企业只能“摸着石头过河”。DevSecOps 诞生的背景是什么?它如何在企业落地?企业怎样在内部塑造 DevSecOps 的文化?...... 针对上述问题,InfoQ 记者采访了腾讯云产品安全负责人、腾讯安全云鼎实验室安全总监 Fooying。

从 DevOps 到 DevSecOps


当今,随着云计算普及,微服务等基础架构的成熟,业务高速发展带来对开发运维更高效的要求,企业开发运维模型也从传统的瀑布模型演变到敏捷模型再到 DevOps。更敏捷的开发运维模式、更快的交付,甚至更小化的可行性产品,这些包含了文化、流程、机制、工具等变化和要求,“其实,这都给安全带来了挑战”。Fooying 说:“所以,必然需要新的安全模式或方法去适应这种变化,保障安全地及时有效性。”


而 DevSecOps 正是一种解决方案。它是一套基于 DevOps 体系的全新 IT 安全实践的框架和模型,糅合了开发、安全及运营理念。

DevSecOps 诠释


众所周知,Gartner 在 2012 年首次提出 DevSecOps 理念。四年后,它发布了一份名为《DevSecOps: How to Seamlessly integrate Security into DevOps》的报告。


这份报告的核心理念是:安全是全体 IT 团队所有成员的责任,要贯穿到业务生命周期的每一个环节。对应 DevOps 快速交付和灵活响应变化,DevSecOps 的价值是在不牺牲安全性的前提下,快速落地和实施安全。


除了强调每个人都对安全负责,DevSecOps 还强调安全前置,以及要柔和的、嵌入到企业现有的开发流程体系。


从 DevSecOps 工具链来看,它分为十个阶段,分别是计划(Plan)、创建(Create)、验证(Verify)、预发布(Preprod)、发布(Release)、预防(Prevent)、检测(Detect)、 响应(Respond)、预测(Predict)、适应(Adapt)。其中,预防(Prevent)旧称配置(Configure)。


在 Fooying 看来,DevSecOps 有三个关键点:人和文化、流程、技术


  • 在人和文化方面,“传统安全里,业务发展优先,安全是‘以后’才会发生的事情,甚至安全被视为业务发展的阻碍,而 DevSecOps 强调的是人人参与安全,人人为安全负责,安全是大家的事。”他说。

  • 在流程方面,要更多地考虑整合流程,建立相关安全流程,加强不同团队间的协作。同时,安全需要低入侵、柔和的嵌入开发和运维流程。

  • 在技术方面,通过构建安全工具链,实现更多的自动化安全检测。


此外,落地实践上,随着 DevSecOps 整体理论和实践的不断成熟,行业专家也提出了一些实践的关键点,比如 2018 年,有专家提出“Golden Pipeline”黄金管道,强调自动化工具链支撑,与 CI/CD 流程的集成;2019 年,有专家在 RSAC 上提出 DevSecOps 九大实践关键因素和文化融合七个阶段,强调文化融合和实践效果度量;2020 年,有人则提出风险管理、合规与治理融入 DevSecOps,聚焦组织内部 DevSecOps 转型,强调人的因素。

腾讯 DevSecOps 的落地实践


随着业务发展和产品的快速迭代,安全始终跟不上业务的脚步,“再多的安全人力也不够”,腾讯希望通过落地 DevSecOps,提高安全效率以及持续降低安全修复成本。


Fooying 说:“整体的实践是跟研发运营模式一起变更的。最早从工具链和 CI/CD 流程中安全的嵌入开始,希望通过提供好用、易用的安全工具,让业务在更早阶段参与安全,用安全工具实现自动化地收敛安全问题。”


在落地过程中,第一大难题是 DevSecOps 文化的塑造。文化塑造绝非易事,也非一时之功,它需要企业持续花费时间和精力。


Fooying 表示,“虽然我们总是通过安全事件反向驱动,让业务团队更重视安全,但其实安全是生命线,它是业务的增值和保障。在腾讯云,大部分的业务团队都很重视安全,只是业务团队有业绩的诉求,所以如何在两者之间寻求平衡,这是很重要的。”


简言之,核心点在于怎样在保障安全有效性的同时能满足业务的快速迭代。


为了让 DevSecOps 的文化深入组织、深入员工,腾讯采取了以下措施:


  • 在安全文化塑造上,与 HR、QA 团队进行常规的安全培训与意识宣传,提高大家的安全意识,让大家了解安全工具的使用;

  • 在业务团队,设置安全接口人。因为让所有人都重视安全、懂安全,这很难,所以需要先搭桥梁,让作为桥梁的接口人配合安全团队推进一些安全工作,再影响到整个业务团队;

  • 在度量等维度,安全团队和 QA 团队一起,在质量体系中建立安全质量体系,比如安全信誉积分,来实现对不同团队的安全度量;

  • 尝试“安全卓越榜”等安全荣誉体系,通过正向激励让业务团队认知和重视安全工作等。


对腾讯而言,DevSecOps 落地的第二大难题是缺少统一的研发运营流程与平台。


安全的落地需要依托研发运营流程,而腾讯内部不同团队之间使用的工具、平台和流程差异比较大,那么,无论是工具链的构建,还是流程的安全建设与安全管控等,情况都比较复杂。


为解决这个问题,Fooying 他们最开始希望通过强制规范等方式要求业务团队统一,但这种方式阻力太大,不现实,因此,他们又换了一种思路:


  • 在必要环节,安全团队进行额外投入;

  • 针对与研发运营流程和平台强结合的安全动作,安全进行不同流程和平台的适配;

  • 而其他安全团队可控度较高的安全动作维度,安全团队提供多检测方式和能力的支持,统一封装与输出到一个平台。


简言之,通过多种方式来满足业务团队的不同需求,但整体上,Fooying 他们会把握一个点,即安全数据结构统一,以及数据的统一回传。这样,业务团队不管采用哪种方式、哪个平台,他们都能通过数据确认产品接入安全流程的完整度、安全动作覆盖率以及有效性。


“一切的基础就是资产的关联和统一维护,这是挺大的工作量,比如独立提交的静态代码扫描的源码包如何与具体产品关联,可能更多是通过流程等方式辅助进行。”他说。


在工具层面,据 Fooying 介绍:腾讯内部大部分的安全工具是自研的,也采购了部分工具。他们选择工具主要关注工具能力、性能、易用性和扩展性。


能力上,维度比较多,包括检出率、漏报率、支持的风险类型数、支持的开发语言数、检测规则等知识库更新及时性等。


性能上,会关注扫描速度、资源占用等。“在安全嵌入流程后,比如一次扫描花费的时间会直接影响整体流程的时间,而效率与对业务的影响又是 DevSecOps 落地的核心点”。


易用性上,主要是使用体验等维度,比如报告的导出可读性、建立扫描任务是否简单、业务团队是否能直接上手。


扩展性上,不同公司有不同的业务特性,要考虑针对不同的编程语言、框架等不同环境是否快速方便,甚至非安全团队也能用起来,是否影响业务流程,是否支持新爆发风险的检出,检出结果是否需要安全团队或业务团队去处置等。


整体而言,腾讯的 DevSecOps 实践分为三个阶段:


  • 阶段一,把之前模式的安全建设或风险收敛;

  • 阶段二,为解决 DevOps 的挑战,从工具链开始的 DevSecOps 尝试落地。最初是整合和能力建设,来提供好用以及嵌入 CI/CD 的安全检查流程;

  • 阶段三,除工具链的建设外,更多是度量体系、文化、流程等方面的建立和完善。


Fooying 表示,“目前,我们正处于第二阶段到第三阶段间,进行持续的能力补充与建设,同时,开始文化塑造、度量和流程体系等方面的建设。”


据悉,腾讯正持续推进 DevSecOps 的落地 ,现在主要推进工具链的建设,并针对一些新的、重点的安全场景进行能力补齐和增强,比如容器安全、API 安全、开源组件等安全检测能力的建设;


其次,在已有的研发运营流程中柔性嵌入安全动作,主要基于 CI/CD 平台和流程的安全嵌入以及应用推广;


再者,质量度量体系的建设,以及安全意识和培训等文化意识建设从原来的办公行为安全、漏洞防范倾向于安全工具的使用、编码安全的宣导以及安全责任的传播;


最后,以此整体体系和安全能力为基础,细分产品安全的多个场景,比如第三方产品、私有化产品、自研产品等,实现不同场景的适配应用与运营保障,比如 2020 年对腾讯会议的安全建设与保障。



在新尝试上,Fooying 他们主要关注能力的补齐以及流程的落地。能力上,重点做开源组件及容器相关的安全,因为这两个维度如今成为一些主要的安全风险。流程上,除了 CI/CD 的安全嵌入和质量红线的建立,更多是针对不同类型的产品,包括第三方产品、私有化产品、自研产品,进行精细化体系建设与运营,以及整体安全质量度量的事。

DevSecOps 成功落地的关键


通过 DevSecOps 的落地,不仅实现了对业务的快速安全支持和保障,保证了业务及产品的安全稳定。同时,安全效率的提高也降低了安全团队的人力投入。并且,文化和度量体系的建立对安全建设的价值体现更加明显。


DevSecOps 在腾讯的实践,让 Fooying 对 DevSecOps 有了更深的理解和认识。在他看来,企业能否成功落地 DevSecOps 取决于三个方面:


第一,工具链的建设,主要是 AST、SCA 等。只有具备相关的能力,才有后续的落地,其中的关键是 CI/CD 流程的安全嵌入;


第二,人和文化非常重要。不仅有业务团队对安全的重视,而且不同团队的协作同样是让更多安全动作落地的必要因素,甚至包括老大们对安全的重视和投入;


第三,体系和流程的建立。值得注意的是,企业一定要结合自己业务的情况进行,这样才能让事情事半功倍。

2021-02-26 10:263220
用户头像
万佳 前InfoQ编辑

发布了 677 篇内容, 共 356.6 次阅读, 收获喜欢 1800 次。

关注

评论

发布
暂无评论
发现更多内容

一线互联网大厂面经分享:阿里三面+头条四面(1),java基础入门第二版电子版

Java 程序员 后端

【设计模式】原型模式,java基础入门第二版第四章课后答案

Java 程序员 后端

一个项目了解 SpringBoot 集成 MyBatis(1),面试必备知识点

Java 程序员 后端

一招教你搞定微信小程序-登录+支付(后台Java,windows内核编程全套视频教程

Java 程序员 后端

【计算机网络】局域网原理与技术,一次哔哩哔哩面试经历

Java 程序员 后端

【设计模式】适配器模式,手动实现一个简单的AOP框架

Java 程序员 后端

一文参透:缓存一致性策略以及雪崩、穿透等问题,java系统架构设计详解

Java 程序员 后端

一口气说出 Redis 16 个常见使用场景,rxjava原理

Java 程序员 后端

一文带你吃透Spring Cloud相关微服务组件及Spring Cloud Config框架

Java 程序员 后端

一文看透Java高并发:Synchronized锁的性质、原理及其缺陷

Java 程序员 后端

【牛客】从青铜到王者01,java基础入门第二版第二章答案

Java 程序员 后端

【程序猿历程】2020年总结,java高级课程视频

Java 程序员 后端

一见面就脱裤子?这份Spring Cloud微服务笔记应对面试怎么这么骚?

Java 程序员 后端

一文彻底弄懂如何选择抽象类还是接口,java序列化和反序列化面试

Java 程序员 后端

【设计模式】代理模式,java面试官常问的问题

Java 程序员 后端

一个即将从《蚂蚁金服》离职的Java工程师个人经历与总结

Java 程序员 后端

一文带你理解Spring Cloud高并发微服务架构核心理念的五脏六腑

Java 程序员 后端

一个非常强大和友好的nginx基于lua-nginx-module(openresty)

Java 程序员 后端

一文读懂 spring MVC 请求处理流程,java程序设计教程第三版

Java 程序员 后端

一篇文章!彻底弄透Java处理GMT-UTC日期时间,java百度天气接口api

Java 程序员 后端

一篇神文让你“一夜封神“Mycat 中间件 (最详细讲解),linux操作系统实用教程文东戈课后答案

Java 程序员 后端

【线程】,东软集团Java笔试题

Java 程序员 后端

【金九银十冲刺】Java岗面试题核心每日知识点,kafka原理图

Java 程序员 后端

【阿里Java岗的魔鬼三面】狠心刷完这6份pdf,Java开发经验谈

Java 程序员 后端

一篇文章带你深入了解MySQL 索引相关,linux视频教程下载

Java 程序员 后端

【自我感悟&&致学弟学妹】大三上的感悟,linux学习教程

Java 程序员 后端

一夜之间火爆GitHub的好文!!阿里资深架构师整理分享,疯狂膜拜

Java 程序员 后端

一篇文章带你快速理解JVM运行时数据区 、程序计数器详解 (手画详图

Java 程序员 后端

一个专科生和云计算的故事,java注解处理器工作原理及过程

Java 程序员 后端

一元稀疏多项式计算器 【 数据结构课设作业 】 带界面

Java 程序员 后端

一线互联网大厂面经分享:阿里三面+头条四面,Java面试心得必备技能储备详解

Java 程序员 后端

腾讯云如何破解落地难题,成功实践DevSecOps?_安全_万佳_InfoQ精选文章