2020 年 9 月 25 、26 日,GOPS 全球运维大会(深圳站)举办圆满成功。在本届大会上,来自腾讯、阿里、京东、平安的行业内顶尖专家面向互联网及传统行业、广大运维技术人员,传播先进技术思想和理念,分享业内最佳实践。作为腾讯云旗下 DevOps 一站式研发管理平台提供商,CODING 受邀参与了本届大会。在两天时间里,CODING 与 1000 多位现场来宾进行了深入交流; CODING CEO 张海龙接受了媒体专访,简要介绍 CODING 产品和分享 CODING 的愿景; CODING 资深技术专家周纪海也在腾讯专场中分享了 DevSecOps 工具与实践议题。
以下为周纪海在腾讯专场分享的演讲内容——
一般谈起 DevOps 自动化,都是先从工具来实现。工具横跨了开发周期,项目管理、CI/CD 等环节。在每一个环节里面都有比较经典的工具,很多工具大家也都用过。
而近几年,业界兴起了一站式平台,从端到端打造一整套工具,囊括项目管理、代码托管、自动化部署、自动化测试等,在其中某一环节可以加入质量卡点和质量门禁去保证质量。无论是华为、腾讯还是阿里近年来都陆续出现了一些产品,腾讯云旗下的 一站式 DevOps 平台,更集中在开发侧,涵盖了从项目管理一直到最后代码交付上线等环节。腾讯的这套自动化工具平台,通过对外输出帮助客户解决痛点,可以在整个环节,例如构建、规范制定等环节解决客户的问题。腾讯有相关的公有云和私有云方面的产品,帮助客户在整个研发流程上进行实现。
DevSecOps 的概念很早之前就有,以前被称为 DevOpsSec,16 年有一本书名叫“DataOPsSec”,为什么会从 DataOPsSec 变成 DevSecOps 呢?有两种说法,一种说法是 DataOPsSec 的缩写是 DOS,这就有了重名,为了避免单词的重复就改了名字;另外一种说法是 DataOPsSec 还是传统模式的顺序,开发、测试、运维,最后在上线之前做信息安全。然而信息安全应该横跨整个流程,嵌入到每一个环节当中,因此变成了 DevSecOps 。
那么为什么需要 DevSecOps ? DevOps 已经做好了,速度很快,质量很好,信息安全的作用是什么?下图就说明了为什么需要 DevSecOps 。传统模式下,从需求开始到整个开发测试需要 3 周的时间,上线之前,信息安全部门介入进行安全评估,这可能需要 1 周时间。而通过 DevOps,我们把前面进行压缩,比如说通过自动化、微服务、敏捷等手段把协作做得更好,效率提高,变成了 1 周。但是因为传统的 DevOps 没有考虑信息安全,在上线之前还是要进行安全的评估扫描,这个时间并没有缩短。DevSecOps 通过在 DevOps 流程的每个阶段或检查点构建安全性来消除 DevOps 和信息安全之间的障碍,从而更快、更安全地生成高质量的代码。
DevSecOps 的好处有很多,以下概括 3 点:
目前有一个 DevSecOps 社区每年都会发布 DevSecOps 报告,报告显示很多人都觉得信息安全很重要,但是连续三年仍然有接近一半的开发者承认他们没有时间去处理安全问题。再次验证了多数人对于安全层面仍然是知识口头层面的重视。同时,社区也给了参考,100 个开发人员对应了 10 个运维人员,对应 1 个信息安全的人员,信息安全方面的人才依旧很稀缺。
实现 DevSecOps 的挑战,我们在推进的过程中发现有多方面的阻力。
在推动层面,一般会先推工具,因为工具会很快看到效果。安全工具大体分为以下 4 类:
接下来的内容是总结腾讯内部有哪些实践,或者帮助客户解决了哪些问题。
DevOps 工具都强调自动化,不能给开发运维同学有任何的负担;而做信息安全,不能因为做信息安全需要花更多的精力,而是希望通过自动化,扫描以后产生报告告诉你结果就可以。DevOps 模式下,安全和业务互相不理解,安全同学对业务不是特别的熟悉,业务觉得安全不是特别重要。如果不出事的话,大家会觉得信息安全离自己非常远,对安全意识也没有那么强。所以在工作当中,更多时候都要考虑如何提高大家的安全意识。
以下是在银行做 DevSecOps 的模型,其实也是业界通用的:
第一阶段:信息安全工具。将 DevSecOps 工具嵌入到 CI/CD 流水线中实现自动化安全漏洞扫描,生成并公开信息安全漏洞报表;
第二阶段:信心安全培训。很多同学要么没有这方面的意识,要么没有这方面的能力,更多需要通过培训把意识和能力提高起来。
第三阶段:信息安全意识和“专家”。团队需要建立信息安全意识和文化,培养开发团队中的“信息安全专家”。
目前腾讯内部自研了一些 DevSecOps 工具。SAST 层面,有代码层面的安全漏洞扫描工具 Xcheck,用于敏感信息扫描的啄木鸟; DAST/IAST 层面,自研的洞犀能够通过收集 CGI 和参数,模拟黑客行为对端口进行安全扫描;还有 FOSS 层面,荷鲁斯主要针对第三方开源的安全扫描,CODING 的制品 /镜像安全扫描功能主要是针对第三方开源的安全扫描。
上图可以看到,针对于 CODING 这个产品,各类安全工具和规范在 DevOps 流程里的集成。
刚才说的是工具层面,具体解决问题还是要落地到人的层面。所以我们内部也会提供相关的安全培训,帮助同学们提高安全意识。腾讯内部经常有安全课程和活动;为客户提供 DevOps 解决方案时,对方在 DevSecOps 上也需要指导。比如,开发人员需要熟练掌握安全工具,即在扫描出安全漏洞后能够处理问题;高危安全漏洞必须要在上线前进行解决,中危漏洞可以协商在 1 个月内解决,低危安全漏洞作为一个技术负债,有空的时候再进行解决等等。
对 DevSecOps 未来的展望,基于我个人的理解和业界的讨论,主要分为两个方面。首先我个人认为安全会进一步的左移。比如在架构设计时就考虑安全。英国有一款工具,在工具里面设计架构图,通过制定一些安全规则来警告哪些架构图可能存在风险。第二点基于网上的讨论,认为 DevSecOps 离不开目前热门的 AI,是否能通过 AI 来解决 DevSecOps 的问题?是不是可以通过机器学习减少误报率?大家可以一起期待。
CODING CEO 张海龙接受专访
CODING 展位工作人员合影
其他精彩瞬间
以上便是本次大会分享内容,点击报名上海站活动,我们 11 月 20 - 21 日 GOPS 全球运维大会(上海站)不见不散!