0 引言
2020年RSA Conference于2月24日至28日在美国旧金山如期召开,今年的会议主题为“Human Element”,人为因素被认为是影响未来网络安全发展最深远的主题。基于参会人员的关注热度,RSAC发布了2020年网络安全行业十大趋势,DevSecOps再次成为大家关注的焦点之一。其中,有着“全球网络安全风向标”之称的RSA创新沙盒,进入十强的安全厂商中近半数聚焦在应用安全领域,BluBracket和ForAllSecure就是今年DevSecOps领域的创新厂商代表。作为国内DevSecOps的主要推动力量之一,在这里对近几年DevSecOps战略框架的发展做个系统梳理,并分享我们悬镜安全这些年探索的落地实践方案。
1 何为DevSecOps?
1.1 DevSecOps的定义
DevSecOps(Development Security Operations的缩写),一套基于DevOps体系的全新IT安全实践战略框架,最早由Gartner咨询公司研究员David Cearley在2012年提出,它是一种糅合了开发、安全及运营理念的全新安全管理模式。2016年9月,Gartner发布报告《DevSecOps: How to Seamlessly Integrate Security into DevOps》,对该模型及配套解决方案进行详细的分析,核心理念为:“安全是整个IT团队(包括开发、测试、运维及安全团队)所有成员的责任,需要贯穿整个业务生命周期的每一个环节。
1.2 DevSecOps的意义
随着云计算、微服务和容器技术的快速普及,不仅IT基础架构发生了巨大的变化,政企组织的业务交付模式也迎来巨大变迁,传统SDLC开发模式向DevOps敏捷开发和持续交付模式迁移,在业务应用交付规模不断扩大、交付速度不断提高、开发运营场景一体化的大环境下,如何保障业务安全成了安全部门相对较大的难题。DevSecOps为此应运而生,它通过一套全新的方法论及配套工具链将安全能力嵌入到整个DevOps体系中,在保证业务快速发展的情况下实现安全内生和自成长。
DevSecOps的广泛应用将标志着软件供应链的安全保障进入到一个全新的时代,将安全作为管理对象的一种属性,从软件供应链开发早期开始进行全生命周期的安全管理,将彻底改善企业和机构在软件和IT基础设施的安全现状。
1.3 DevSecOps实践的关键角色
如上文所述,如何把安全无缝柔和地集成到敏捷和DevOps开发中,就是DevSecOps重点关注的方向。总的来说,文化、技术和流程的协同在DevSecOps的落地实践中扮演着重要的角色。
◆文化:协作共识
传统文化:业务发展优先,安全是“以后”才会发生的事情,会阻碍业务的发展。
DevSecOps文化:安全是大家的事。DevSecOps每一个项目都不是纯安全部门的事,是安全和产品、研发、测试、运维等部门一起参与的项目,每一个人皆为安全负责。
◆技术:持续自动化
DevSecOps背后的哲学就是安全前置,从开发源头做威胁管控, 相关工具链技术不仅可以在需求设计阶段实现威胁建模、开发测试阶段威胁发现,还应支持Jenkins等CI/CD管道,支撑DevOps敏捷开发和快速部署。
◆流程:柔和低侵入
柔和低侵入性是指配套工具链技术的实施尽可能对原业务流程产生微小的影响。好的实践方案尽可能去依附企业原有的开发测试平台来做,比如安全工具接入代码管理、项目管理及第三方单点登录系统等平台,尽可能做到对政企用户的透明自动化。
2 从RSAC看DevSecOps的进化
2.1 RSAC2017
◆明确DevSecOps实践主体内容,提出左移安全前置的思想
DevSecOps于2017年引入RSAC,大会甚至专门为它设置研讨会。DecSecOps机构总监Shannon Lietz在本次研讨会上做了《下一代安全需要你!》的专题分享,她认为DevSecOps是一套体系化的方法论,由战略驱动,一种通过初始创建并依据真实有效反馈的持续改进实现产品价值、运维、安全等各方面需求的实践,通过开发、运维和安全团队共同努力将安全和合规作为属性嵌入整个流程,并获得配套工具链支撑。
图2.1 RSAC2017 DevSecOps机构总监Shannon Lietz对“DevSecOps”的定义
通过本次研讨会,业内同行对DevSecOps实践的主体内容有了基本共识,论证了DevSecOps的实践会对政企组织现有IT开发与运营模式的颠覆性影响。
Ø 安全工作前置(Shift Left)。通过在软件开发早期融入安全环节来降低解决问题的成本,前期介入的内容主要包括对开发测试人员的安全意识培训、编码人员安全开发规范的培训、前期安全需求(非功能需求)的导入、开发时源码审计工作、上线前安全审查等内容。在运营阶段增加的内容主要集中在对新安全需求实现情况的验证以及软件整体安全评估。虽然在DevSecOps模式中,安全工作环节增加了,但是从软件整个生命周期的开发与维护成本来看,提前发现问题会使安全成本大幅降低。
Ø 柔和嵌入现有开发流程体系。为了避免安全工作成为应用开发交付的阻碍, DevSecOps采用快速迭代的开发方式,安全技术的实现与现有开发平台实现无缝对接,并将安全工作导入现有的开发工作流程和工具中,包括将安全需求导入至统一需求管理流程与工具、安全测试工作与CI/CD(持续集成/部署)对接、安全测试结果导入至缺陷管理工具等诸多环节。
通过RSAC2017的DevSecOps专题研讨,我们不难发现此时在国际上DevSecOps仍然处于萌芽探索阶段,DevSecOps暂时还没有一个通用化的标准或实践指南,但对于DevSecOps实践的主体内容有了相对统一的行业共识。
2.2 RSAC2018
◆首提“Golden Pipeline”概念,强调自动化工具链支撑
RSAC2018出现了一个新概念“Golden Pipeline”,姑且翻译为“黄金管道”,特指一套通过稳定的、可落地的、安全的方式自动化地进行应用CI/CD的软件流水线体系,其中工具链的自动化支撑程度是缩短调度成本实现快速迭代的关键,它为DevSecOps提供了一种便于理解和落地的实现方式。其中,涉及DevSecOps开发安全的主要包括以下四大关键安全活动:“Golden-Gate”、AST应用安全测试、SCA第三方组件成分分析、RASP运行时应用自我保护。
综上,要真正实现DevSecOps Golden Pipeline的有效落地,关键点在于如何缩短调度成本,提高自动化的效率,而这又取决于流水线中工具链的自动化支撑程度。
图2.2 DevSecOps Golden Pipeline开发流程体系
Ø Golden-Gate安全门
同行代码评审,由2位以上经验丰富的工程师进行代码评审,反馈讨论之后,如果结果为通过,代码将通过“Golden-Gate”进入真正的Golden Pipeline,这道工序被形象地称为Golden-Gate,象征着通过这道桥梁正式进入高度自动化的Golden Pipeline。
Ø AST应用安全测试
AST(Application Security Testing)包括传统SAST白盒静态应用安全测试、黑盒DAST动态应用安全测试以及新一代IAST交互式应用安全测试技术。
SAST的优点是CI阶段就引入的代码安全评审辅助手段,并可以支持多语言,缺点是对于执行流不可见,误报太高,传统商业SAST工具误报率甚至高达40%,对于甲方开发人员造成严重的修复排查负担,实际落地效果一般。DAST主要依赖网页爬虫技术,可以做到应用平台无关性,较好地支持手工测试调试,但是缺点也很明显比如检测覆盖率较低、对SPA框架等现代复杂应用支持较差、执行效率较低等,更适合上线后资产安全扫描。
相比传统SAST和DAST,IAST技术是Gartner公司提出的新一代交互式应用程序安全测试技术,通过运行时插桩、流量代理/VPN或旁路流量镜像等技术手段,收集、监控Web应用程序的使用流量,并与检测分析引擎进行实时交互,高效、准确的识别安全缺陷及漏洞,同时可准确定位漏洞所在的代码文件、行数、函数及参数。
当前业内比较有争议的是IAST技术到底是否局限于运行时插桩?笔者认为我们应该站在更加广义的角度看待这个问题,从发展的视角评估该项新技术的引入对政企开发用户CI/CD环节业务安全测试能力提升所带来的巨大价值。
从IAST的原始定义及这项技术引入的初衷来说,代理/VPN、旁路流量镜像、主机流量嗅探等技术也都属于交互式测试的手段之一,他们的综合引入,丰富了政企用户复杂的应用开发场景,真正做到了IAST对CD流程的柔和低侵入,规避了单一应用插桩技术受限于特定开发语言平台及对业务性能影响的缺点。
Ø SCA第三方组件成分分析
SCA第三方组件成分分析(Software Composition Analysis)技术,主要就是针对开源软件(OSS)以及第三方商业软件涉及的各种源码、模块、框架和库,以识别和清点开源软件(OSS)的组件及其构成和依赖关系,并识别已知的安全漏洞或者潜在的许可证授权问题,把这些风险排查在应用系统投产之前,同时也适用于应用业务运行中的诊断分析。
当CI阶段结束,将进行常规的冒烟测试和单元测试。由于开源代码库已关联完成,平台可以在这个阶段通过任务调度自动引入第三方组件成分分析及缺陷检测(SCA),并自动与权威漏洞库进行关联(美国国家漏洞库NVD和中国国家信息安全漏洞库CNNVD)。多数情况下,企业会选择在功能测试的同时开展上线前的IAST灰盒应用安全测试,以便充分发现应用及业务交互中存在的潜在威胁。
Ø RASP运行时应用自保护
在2014年的时候,Gartner引入了“Runtime application self-protection”概念,简称为RASP。它是一种新型应用安全保护技术,它将保护程序像疫苗一样注入到应用程序中(运行时插桩),与应用程序融为一体,能实时检测和阻断安全攻击,使应用程序具备自我保护能力,当应用程序遭受到实际攻击伤害,就可以自动对其进行防御,而不需要进行人工干预。
与传统WAF不同的是,由于运行时插桩可以拿到应用上下文信息,RASP可以完全掌握应用程序的输入输出,因此它可以根据具体的数据流定制合适的保护机制,从而可以达到非常精确的实时攻击识别和拦截。
提到RASP,不得不提与之相关联的主动性IAST技术,二者的技术原理非常相似,都是通过应用插桩获取测试流及上下文信息,并动态分析应用的安全性。主要的区别是主动IAST重在测试,通过CI/CD集成,不阻止访问;而RASP重在线上运营生产环节,可以进行阻断操作,大多数场景可以用来替代WAF方案。
2.3 RSAC2019
◆聚焦文化融合与实践效果度量
作为第三次设立的”DevSecOps day”,RSAC2019的主题是“DevOps Connect”,强调了DevSecOps落地实践过程中文化融合的意义,并期望通过CI/CD管道辅以有效度量机制来实现效率上的提升。文化冲突和融合成为了本届会议聚焦的重点话题之一,比如红队文化和开发人员之间的冲突,技术人员和非技术人员的冲突、管理者和被管理者的冲突等。以红队与开发者的冲突场景来举例:红队习惯制造“惊喜”(找出问题但不提供解决方案)、获取“机密”(用红队做掩护而获取隐私数据),而这些都很难被开发人员以及组织所接受。
为了尝试解决DevSecOps具体实施过程带来的文化冲突,重要手段之一就是文化变革。为此,安全专家Larry Maccherone在会议中提出了DevSecOps宣言:
Ø 建立安全而不仅仅是依赖安全;
Ø 依赖赋能的工程团队而不仅仅是安全专家;
Ø 安全地实现功能而不仅仅是安全功能;
Ø 持续学习而不是闭门造车;
Ø 采用一些专用或常用的最佳实践而不是“伪”全面的措施;
Ø 以文化变革为基础而不仅仅依赖规章制度;
DevSecOps融合文化的建立和变革不仅要运用培训宣传、会议沟通这类手段,还需要对组织的重新设计,比如建立“拧麻花”式的开放式组织,将安全人员融入每一个开发团队,而不是建立封闭的部门。这种方式,使得掌握安全能力的人员深入业务、开发、运维等各个领域,让DevSecOps真正创造价值,避免成为效率瓶颈。
作为减少组织间不信任或冲突的一种有效方式之一,评估(度量)机制在本届会议上被广泛传播。它的好处就是量化效率提升的具体效果,用数字说话。为此,Larry Maccherone也提出了DevSecOps的 9个关键实践点和文化融合的7个阶段:
图2.3 DevSecOps实践的9个关键
这九个关键实践点中,安全意识、同行评审、评估以及团队合作协议等都对应着企业组织对DevSecOps的理念修正以及文化融合。
图2.4 DevSecOps文化融入的7个阶段
通过对9个关键实践点进行对应7个阶段的度量标注,运用不同颜色直观展示DecSecOps在组织中的实践和接受程度,使政企组织对其安全开发能力和发展状态的全貌有了更加直接的认识,为打破DevSecOps理念与传统文化的壁垒提供指南,也为后续持续和深度的改进夯实基础。
2.4 RSAC2020
◆聚焦组织内部DevSecOps转型,强调人的因素
RSAC2020于 2 月 24 日至 28 日在旧金山如期召开。本届RSAC组委会通过对收到的2400份世界网络安全专家提交的演讲主题汇总分析,发布了2020年网络安全行业10大趋势,这是全球网络安全专业人员对2020年乃至今后行业发展的判断,其中,“Human Element”被认为是影响未来网络安全发展最深远的主题,涉及安全前置的开发安全主题被重点做了讨论。
Ø 人为因素:人的行为自始至终就与数据,威胁,风险,隐私及管理等因素交织在一起。今年的议题中,有大量内容从以人为本的角度出发,平衡IT框架、对风险管理策略进行汇总、降低新威胁带来的隐患、以及建立一个安全为中心的新技术文化。
Ø DevSecOps:今年的DevSecOps出现了一些有意思的新议题,如将风险管理、合规与治理融入DevSecOps的实践探索等。此外,还重点探讨了从业者如何在组织内部调整并向 DevSecOps 转型,详细解析了组织所面临阻碍其进步的问题类型,以及如何从公司的各个层面上获得支持帮助等内容展开讨论。同时,如何招聘、培养DevSecOps的人才与团队也成为焦点议题。
Ø 产品研发与维护的安全性:由于大量的演讲申请聚焦在产品安全开发,今年RSAC新增了“产品安全与开源工具”方面的论坛。议题包含了保护开发生命周期与框架、连接产品和设备的安全性、开源代码安全等内容。
Ø 安全意识与培训:说到人对安全的影响,安全意识必然是被重点关注的领域之一。今年安全意识方面的议题从多个方面进行,其中“安全开发实训”、“网络安全靶场”、“道德安全意识普及”等议题被频繁提及。
从RSAC 2017年设立DevSecOps day至今,DevSecOps体系日趋成熟,相关方法论、技术与实践经验都有了明显的提升,配套工具链技术也日趋完善,这其中多少要感谢一些国际技术创新力量的贡献。这里对往届RSAC大会出现的部分创新厂商做个简单总结,他们的创新技术方案为DevSecOps年度行业探索做了一定的指引。
图2.5 往届RSAC中涉及DevSecOps的创新力量
3 悬镜的思考与实践
3.1 开发安全的一些思考
◆安全是一门平衡艺术
随着数字化转型浪潮的来袭,国内网络安全的重要性被提到了更高的地位。业务的发展离不开安全体系的保驾护航,其中,安全是一个动态平衡艺术,有两层含义:
Ø 拥抱变化是安全建设的基石。不同阶段的政企组织,面临的安全需求及迫切度不一样,并且是阶段性动态变化的。小微企业大部分精力在为了生存奔波,业务安全的合规是他们当前能应付的主要需求;中大型企业组织更加侧重阶段性安全建设,基础安全防御及服务化安全能力(即插即用)是他们当前的主要需求,比如开发安全里急需的灰盒安全测试工具、运营安全里的攻防演练服务等;行业头部客户更加注重中长期安全体系建设,内生安全是他们的战略目标,建立适配业务场景的高级威胁检测防御一体化能力是他们的长期需求,比如基于DevSecOps或SDL的开发安全体系建设。
Ø 安全的本质是风险和信任的平衡。在数字化时代的业务安全目标,更加强调对风险和信任的评估分析,这个分析的过程就是一个动态平衡的过程,告别过去传统安全门式允许/阻断的处置方式,旨在通过情境分析来评估业务风险,放弃追求绝对的安全,不要求零风险,不要求100%信任,寻求一种0和1之间的风险与信任的平衡。比如CD/CD管道中的IAST灰盒安全测试,我们的目标是重点解决90%以上的中高危安全漏洞,在多数情况下是允许低危漏洞流转到线上运营环节的。
◆人是安全的基本尺度
人及团队文化在整个安全体系建设中有着巨大的影响力,我们的行为自始至终就与数据,威胁,风险,隐私及管理等因素交织在一起,也是整个DevSecOps实践框架中最不稳定的因素,为此RSAC2020的主题专门设定为“Human Element”。一个完善的开发安全体系建设,不仅要全流程考虑人和技术的因素, 更要从源头抓起,早期的安全意识培训、需求阶段的威胁建模等都是十分必要的安全活动。
根据NIST(National Institute of Standards and Technology)调查,接近92%的已知安全漏洞都发生在应用程序中,且软件应用中每1000行代码至少出现一个业务逻辑缺陷。可见,程序员安全素养的高低对业务安全有着直接的影响,DevSecOps的左移安全前置实践非常有必要,能更早地发现问题、解决问题。
◆攻防对抗是安全的脉搏
孙子兵法中曾言:“用兵之法,无恃其不来,恃吾有以待也;无恃其不攻,恃吾有所不可攻也。”攻防对抗是网络安全建设过程中永恒的主题,是检验现有安全体系防御应对未知威胁成效能力最为直接的方式,RSCA2018中黄金管道涉及的BUG悬赏,本质也是鼓励主动建立攻防对抗体系,如持续的安全众测、不定期进行攻防演练并辅以配套的检测响应手段等。
3.2 悬镜的落地实践
微软2003年开始实施的SDL(Security Development Lifecycle)安全开发理论框架,距今已有十多年历史,当年的直接落地成果Windows Vista也已经退出历史舞台,而国内的SDL建设主要还是停留在互联网大甲方的定制化场景中,通用的SDL落地方案及做起来的乙方厂商几乎没有,为什么?因为SDL体系本身的场景化属性太重,大甲方的SDL建设经验是不太可能直接拿出来做复制的,如果没有适合落地的支撑技术,强行SDL会对政企组织现有的流程和文化产生比较大的挑战。这也是为什么RSAC自2017开始兴起DevSecOps战略框架,并于2018年首次提出DevSecOps黄金管道的理念,重点强调了其中CI/CD的自动化工具链技术。
虽然国内的金融、能源、交通等产业头部用户没有像美国Comcast那样做DevSecOps的深度转型,大部分还是现有的SDL体系,但这并不妨碍他们开始积极拥抱DevSecOps的理念及黄金管道涉及的五大关键活动。正是这些关键活动涉及的新兴技术的逐渐成熟和DevSecOps新理念的普及,推动了国内SDL安全开发体系的逐渐落地,关键标志之一就是像悬镜这样专注DevSecOps的创新安全厂商开始涌现,他们的通用技术方案开始被越来越多的行业头部用户采纳,并分阶段持续为甲方建立起逐渐完善的安全开发体系。
结合多年的DevSecOps实践经验,悬镜探索出了DevSecOps智适应威胁管理体系,它作为DevSecOps全流程安全赋能平台,从构筑之初就注重技术落地的柔和低侵入性,从驱动DevSecOps CI/CD管道持续运转的几大关键实践点入手,通过对威胁建模、威胁发现、威胁模拟及检测响应等关键技术创新赋能政企组织现有人员,帮助甲方建立起更加高效完善的安全开发和安全运营体系。
图3.1 悬镜DevSecOps智适应威胁管理体系
小结:伴随着DevSecOps战略框架的日趋完善和近3年RSAC的热捧,国内相关领域的建设也迅速开展起来,但并不是所有甲方都适合直接套用DevSecOps实践经验,还要根据自身的组织发展目标、文化特点及业务场景做进一步论证。传统SDL理念也并未过时,可以进一步融入这些年DevSecOps实践的一些发展成果,将一些好落地的新兴工具链技术(如IAST、SCA、自动化渗透测试等)及配套效率度量机制逐步柔和地嵌入现有IT体系中,将安全长远规划与阶段性实施相结合,逐步摸索出甲方自己的安全能力体系。
4 参考文献
[1] Ernest Mueller.What Is DevOps?[EB/OL].https://theagileadmin.com/what-is-devops/,2010-08-02.
[2] Shannon Lietz.What is DevSecOps?[EB/OL].https://www.devsecops.org/blog/2015/2/15/what-is-devsecops,2015-06-01.
[3] Ian Head, Neil MacDonald.DevSecOps: How to Seamlessly Integrate Security Into DevOps[EB/OL].https://www.gartner.com/en/documents/3463417/devsecops-how-to-seamlessly-integrate-security-into-devo,2016-09-30.
[4] Sam Olyaei, Peter Firstbrook, Brian Reed,Prateek Bhajanka, Neil MacDonald, Top 10 Security Projects for 2019[R].Gartner,2019.
[5] Kasey Panetta,Gartner Top 7 Security and Risk Trends for 2019 [R].Gartner, 2019
[6] Neil MacDonald, Seven Imperatives to Adopt aCARTA Strategic Approach[R].Gartner, 2018.