DevSecOps能力指南
安全不仅需要左移,更需要“平铺”;正如DevOps中的持续集成与持续交付(CI/CD),还需要持续安全(Continuous Security)。 DevSecOps基于DevOps,但是DevOps开发模式并非对所有场景都是最优解;传统的瀑布流开发模式以及敏捷开发模式依然会大量并行存在。企业在进行相关产品产品的选购时,先要与业务、开发部门等沟通,选择最适合自己的开发模式,再决定选择DevSecOps产品,或者是其他软件开发安全产品。 传统的软件开发安全工具都能在DevSecOps中有自己的价值——但是由于DevSecOps本身有DevOps平台作为基础,传统的软件开发安全工具能否在不同环境中接入各类DevOps平台,是考验DevSecOps工具供应商的一大挑战。 当前采用DevSecOps的客户可以分为三种类型:
• 自身已经基本完成DevOps转型,需要加入安全元素,完成DevSecOps;• 原有的瀑布开发或者敏捷开发模式中已经通过安全开发工具赋能,在向DevOps转型的过程中,将安全并行,完成DevSecOps; • 原有的瀑布开发或者敏捷开发模式中安全能力不足,准备向DevOps转型的同时,建立安全文化,融入安全能力,直接完成DevSecOps建设。 DevSecOps需要软件开发方自上而下进行推动,是将安全融入开发运营体系之中,缺乏合适的管理和流程制度,最终依然是DevOps+Security,而不是DevSecOps。 从当前来看,将相关DevSecOps工具接入DevOps平台是主流;但是未来来看,DevOps平台会逐渐升级成为DevSecOps平台——可能是DevOps平台侧加强安全工具的能力,也可能是安全厂商侧基于开发安全平台赋予软件开发能力。
瀑布开发:尽管瀑布开发面对需求改变频繁的情况会相当低效。但是反而言之,当开发项目庞大,开发目标和各阶段任务明确的时候,瀑布模式依然是非常有效的模式。 敏捷开发:敏捷开发强调了小团队的快速开发,快速迭代,适用于针对快速推出成品,实现功能的场景。 DevOps:DevOps的核心在于将开发和运营相结合,最终实现的不只是产品的功能性,而是业务的实用性。通过开发和运营之间的闭环,基于新的信息,持续交付。
安全需求分析:在安全领域,攻防的区别在于攻击者只需要找到一个攻击点就可以成功,而防御者必须防范大部分区域。在一个软件开发项目中,开发人员,甚至是安全人员本身,都可能由于缺乏对整体项目的把控,对安全的要求、基线、相关合规情况都不够了解。这就需要安全需求分析从整体上对软件项目的合规标准、潜在威胁等方面进行一个总体的评估与分析,建立相关安全要求,制定明确的安全规范。除了通过咨询的方式,进行安全需求分析,搭建威胁模型之外,对于一些不是特别复杂的软件开发项目,也有模板可以直接使用。 安全测试:安全测试是确保开发软件最终是否安全可靠的关键部分。当安全测试从传统软件开发模式变化到DevSecOps模式的时候,需要考虑到和CI/CD的集成,因此测试工具的集成能力与自动化能力就尤为重要。另一方面,由于DevSecOps追求的高效性,安全测试的速度也会成为影响整体开发效率的因素。现在的安全测试主要有以下三种类型: • SAST:静态应用安全测试又称白盒测试,是指在不运行程序本身的情况下,仅通过分析程序的语法、结构、过程、接口等来检测程序的安全性。一般可用于DevOps流程的编码、构建与测试环节。
优势:代码检查更具有可视性、能精确定位到漏洞位置
劣势:误报率高、对集成系统中产生的漏洞难以检测
• DAST:动态应用安全测试又称黑盒测试,在无需了解程序源代码与逻辑结构的情况下,对程序进行安全测试。一般可用于DevOps流程的测试与发布环节。
优势:攻击者视角测试更贴近现实情况、无需源代码
劣势:覆盖面较小、一定程度依赖人员安全能力、无法定位漏洞具体位置
• IAST:交互式应用安全测试又称灰盒测试,结合了SAST和DAST技术的优点,能够模拟验证代码中的已知漏洞是否确实能够在运行的环境中被攻击者使用。通过部署探针或者流量监测等方式,持续分析程序测试时的实时数据,发现程序中存在的漏洞。
优势:易于集成CI/CD、低误报高检出、低安全专家投入
劣势:插桩模式难以检测业务逻辑漏洞、流量模式的数据容易被污染降低检测效果
模糊测试:模糊测试是一种介于手工渗透测试与完全自动化测试之间的安全性测试。通过将准备好的随机或者半随机生成的数据输入程序,通过监视程序的异常状态,发现潜在漏洞。 软件成分分析(SCA):开源软件的兴起大大提升了开发者的开发速度。尤其是近年来,越来越多的企业对开源软件采取了开放的态度,软件项目中超过一半的代码都来自于开源组件。但是,开源软件依然有着大量的安全隐患,从“心脏滴血”到Equifax的数据泄露,其中都有开源软件供应链的因素。因此,在整个开发过程中,软件成分的分析就尤为重要。企业需要首先明确自己的软件项目中都有哪些开源组件,然后才能进一步指导这些开源组件是否还在被维护、当前版本是否存在漏洞等问题。可以说,软件成分分析是当前软件开发安全中不可或缺的能力。 运行时应用自保护(RASP):DevOps的一大关键是将开发和运营结合到了一起,因此当进入DevSecOps的时候,需要关注的不再只是开发安全,还需要考虑到程序上线以后的运营安全。RASP的概念最早在2012年由Gartner提出,通过将安全能力内置到应用自身,通过程序的上下文,判断威胁并采取措施。传统的WAF只能从边界对应用程序进行防护,但是无法知晓边界内部的情况,同时因为WAF的规则配置等问题,容易引起大量误报,RASP的加入则可以补足这些缺陷。但是,RASP也会存在一些问题,比如由于直接内置于程序,或者于程序直接关联,因此可能会影响程序的性能。RASP依然是在逐渐成熟的技术,从应用防护层面来看,值得持续关注。 安全工具集成中心:尽管说最好的DevSecOps是在确保安全的基础上,尽可能减少安全,以及安全人员在开发和运营过程中的存在感,但是当前来看显然还有很长一段路要走。事实上,以企业的转型角度来看,从之前的瀑布式开发模式或者敏捷开发模式,转向DevOps开发模式,在技术架构上已经实属不易;将安全工具迁移到新的环境,更是一项艰巨的任务。因此,虽然无缝、无感知的安全是DevSecOps的目标,在实现过程中显然无法一蹴而就。那么,目前来看,就需要一个安全工具的集成中心,能融入到CI/CD管道中,协助开发人员管理和使用相关的安全工具,而不是在大量“额外”的安全工具中手足无措。
“自上而下”统一安全观念:企业一般的业务流程,是由业务部门提出需求,产品人员基于需求做出相关设计,再和研发进行沟通做出成品。因此,当安全融入到这个流程中时,A公司选择先和业务部门沟通,明确安全合规要求以及安全隐患对业务的影响;再通过基于安全的业务需求,和产品部门沟通安全设计——在业务部门和产品部门都接受了安全的融合后,研发和运维也就自然能推动安全的落地。
因此,在A公司的DevSecOps落地过程中,不仅仅是企业管理结构的“自上而下”的推动,更是企业自身内部业务流程上下游之间的“自上而下”推动。
提出规范:在确定将安全融入开发流程后,需要制定相应的规范:具体哪些代码是违规的、哪些漏洞是需要修复的、开发的程序都应该遵守哪些规范等等。没有相对应的规范,修复行为就会显得很唐突,无据可依。因此,企业的安全规范不仅需要制定,更要确保让业务、产品和研发部门知晓,并严格遵守。
安全工作责任化:在确定规范后,需要将不同职位的工作责任化,确定业务、产品、研发需要履行的安全责任,确保出现安全问题后,能够追溯到责任方。同时,将工作职责文档化输出,根据不同职位的具体工作内容和业务场景,简洁、扼要地明确各职位需要完成的安全要点。
安全工具的集成:默安科技根据企业C现有的Jenkins开发管理流程,将自身的SAST与IAST整合到现有工具链中,完善敏捷开发平台的安全管理,为开发、测试和安全管理人员提供自动化工具,实现代码问题提前发现、及时改进与闭环跟踪。
开发安全项目知识转移:默安科技还协助企业C根据开发安全项目成果,建设文档管理系统,统一管理各类制度、技术规范、项目材料,提升内部团队沟通协作效率。同时,组织相关开发、安全人员进行针对性的安全培训赋能,培训内容包括开发安全意识、安全设计与编码、安全需求评估等,帮助其提升安全开发能力。
满足国家网络安全法、等级保护制度关于主机、数据、应用安全的合规监管要求;
协助建立开发安全管理体系,细化立项、需求、设计、编码、测试、上线各阶段的开发安全工作流程与职责,规范执行开发安全设计、安全编码与检测、提升应用安全防护能力,保障业务安全性和可靠性;
将安全漏洞发现前置到编码和测试阶段,不仅提升了系统安全性,还极大地降低安全修复成本;
在对现有业务影响最小化的前提下,统筹建设、合理规划,完成安全工具平台建设,实现安全漏洞自动化的发现与线上闭环管理,提升了开发团队的工作效率。
DevSecOps平台建设:DevSecOps平台包含了各阶段流程的梳理、评审机制的建立、相关资源库的建设,通过数据接口收集各阶段安全数据、开发数据及漏洞样本,打造覆盖应用开发安全建设和使用全生命周期的智能安全管控平台。平台中的知识库具有丰富安全威胁库、安全基线库、安全需求库、安全设计库、安全组件库、安全用例等,并有机制保障能定期更新升级。适用范围能够覆盖Android、iOS、Web、后台应用等。
同时,兼具针对移动端的自动化检测平台,以及集成网络扫描、主机扫描和数据库扫描为一体的基于爬虫引擎的扫描工具。对上线后的app及web系统还有持续的风险态势检测,及时发现运行过程中发的威胁,并将威胁进行上报,上报后的威胁情报,建立威胁情报库,情报库后续持续优化完善整体开发过程的知识库,不断的丰富知识库的覆盖全面度和准确度。
安全工具融合:爱加密将D银行现有的安全工具进行整体融合,嵌入到开发的各个环节,使开发者在开发过程中自动对代码进行安全扫描,提示开发者代码的安全问题,及时让开发者进行修改。
在系统提交测试环节时,自动化检测系统会分析系统类型,提交到不同的系统中进行自动化检测,同时检测每个系统的安全检测基线,对于不满足基线要求的系统自动打回要求修改等。
安全工具融合后,不再作为独立的安全系统存在,而是自动的嵌入到整体流程中,在流程的流转过程中进行自动的安全处理,并将发现的问题进行反馈整改等工作。安全咨询建设:爱加密基于D银行的实际情况制定安全开发生命周期管理体系,并结合试运行情况进行优化调整。通过构建通用威胁模型,从开发生命周期的角度制定系统开发全生命周期安全控制流程,明确开发生命周期各阶段中安全控制工作的介入时间点与所需完成的工作内容,制定IT项目安全评审流程,建立安全控制点和控制活动,构建安全评审各阶段工具及模板,与现有IT 管理流程和变更流程融合,将安全控制要求和控制活动植入现有流程中,补充完善应用安全开发规范和移动安全开发规范,应对安全漏洞的代码规范,补充完善安全需求测试用例,补充完善代码审计工具中安全规则。
基于D银行现状调研评估,针对银行现有的信息安全隐患与问题进行分析、治理,提供有效解决方案。
开发和集成各种安全工具,减少人工检测评审,通过自动化能力提高应用开发的安全性,降低成本。同时,基于一个平台对安全工具进行统一化管理。
安全需求完善,从相关安全标准、行业法规、监管需求和业内常见最佳实践等多方面进行综合完善;针对与来自行业、国家监管架构、市场要求及系统应用对应业务要求分析,确定系统或软件的安全需求。
安全编码,针对系统源代码从程序结构、系统脆弱性以及安全缺陷等方面进行安全审查及检测,指导开发人员采用安全的编码方法,制定安全编码规范和标准。
实现开发安全平台内的安全数据集成、分析和安全指标可视化。
入选本次DevSecOps工具能力点阵图的安全厂商有12家,分别为:安恒信息、梆梆安全、海云安、开源网安、棱镜七彩、默安科技、奇安信、思客云、孝道科技、悬镜安全、云弈科技、智游网安(爱加密)。其中DevSecOps产品收入为主营业务收入的企业有三家分别为:思客云、悬镜安全、棱镜七彩。 DevSecOps在数世咨询定义的市场成熟度,概念市场、新兴市场、发展市场与成熟市场四个阶段中,位于新兴市场阶段。在数世咨询发布的《中国网络安全能力图谱》中属于“业务场景”维度中的“开发安全“技术领域。
根据调研,国内最早DevSecOps工具出现在2014年,从2018年开始有大量安全厂商进入这个领域。 据本次调研统计,2020年国内DevSecOps市场规模约在3.41亿元左右,综合各家提供商的判断,预计2021年将达到5.47亿元左右,2022年将达到7.66亿元左右。
据调研目前DevSecOps交付模式可分为四种:单一标准化产品、定制化及运营产品、集成模式以及订阅式服务。其中主要以“单一标准化产品”交付的比例占62%、以“定制化运营产品”形式交付占25%,集成模式和订阅模式分别占7%和6%。DevSecOps的定制化需求主要由于客户的技术环境的多样性、DevOps转型的支持,以及客户自身技术与业务环境下的特殊需求。
如下图所示,国内各行业用户对DSO的投入情况,排名前三的为:金融(36%)、互联网企业(8%)、国防(8%)。考虑到应用场景,金融和互联网由于快速迭代与开发和运营的场景结合要求较高的原因,对DevSecOps需求较高。但是,由于除了几家大型互联网公司,其他大部分互联网公司的预算成为其向DevSecOps转型的绊脚石;而金融行业除了本身业务线多,会有许多需要DevOps开发模式的场景之外,本身有足够的预算投入到DevSecOps也是关键原因。
从客户的分布来看,DevSecOps的投入区域最高的是华东区域,占38%,高于华北的29%,同时华南占到了19%。一般而言,安全产品的客户分布占比最高的往往都是华北;而在DevSecOps方面,华东地区成了最高区域。其原因在于金融行业是DevSecOps的主要先行客户,其在华东(长江三角洲)地区有大量客户群体;同样,由于广州、深圳的金融产业,华南地区在DevSecOps的占比也相对较高。
DevSecOps的推动因素主要有两点:开发安全越来越深入人心,以及DevOps的发展。DevSecOps的发展离不开DevOps转型的进程,当越来越多的企业开始关注DevOps的时候,在安全合规、安全开发的影响下,DevSecOps落地自然会更加迅速。 阻碍DevSecOps落地的因素同样有两点:DevOps本身转型的难度,以及开发理念和制度的转变。尽管说DevOps的发展能推动DevSecOps的落地,但反过来说,DevSecOps的落地也受限于DevOps的发展——虽然DevOps在越来越受到关注,技术也在越来越完善,但实际上能进行DevOps实践的企业依然有限。另一方面,DevSecOps不仅仅是安全左移,同时还需要从开发到运营进行整个结构的文化与制度的建设,企业自身内部的推动也会成为DevSecOps的落地难点。
作者:
技术应用分析师:潘颉阳
产业市场分析师:左晶
机构简介:
北京数字世界咨询有限公司,中国数字安全领域中立的第三方调研机构,以数字时代为背景,提供网络安全行业的调查、研究与咨询服务。
联系邮箱:dw@dwcon.cn