DevSecOps安全研运方法与实践

2023-01-03 15:43

本文整理自开源网安职教中心总监宋荆汉在信息技术应用创新工作委员会“WG11中间件工作组2022年专题会”上的主题演讲。

从DevOps到DevSecOps

虽然DevOps的流行让企业实现快速交付的能力,但如果将安全作为一种业务属性,在软件开发生命周期的每一个阶段植入安全实践,从而让软件获得最终的安全性,则DevOps又将开启向DevSecOps转型的新挑战。

对于技术团队来说,DevSecOps又是一场变革,刚刚通过DevOps的转型将软件的上线交付速度提升到分钟级,现在又要将安全置于流程中,这往往是让业务变慢的主要因素。技术团队将面临如下挑战:

  • 原有的安全过程会降低业务速度;

  • 快速迭代对安全团队资源要求更高;

  • 安全团队与开发团队在专业技术上存在认知鸿沟。

如果说,“安全是阻碍业务速度的原因”,那么为什么还需要DevSecOps?

DevOps为技术团队带来更快更有效的协作方式,实现了业务的快速发展,当发展到了一定程度,速度与安全性的冲突,会让安全性成为DevOps的瓶颈。

DevSecOps通过在DevOps流程的每个阶段或检查点构建安全性,来消除DevOps和信息安全之间的障碍,从而达到更快更安全交付软件的目标。

如何理解DevSecOps

2012年,Gartner创建了“DevSecOps”概念,到了2017年RSA峰会后,DevSecOps开始成为世界范围内的热门话题。而DevSecOps最重要的宗旨就是“将安全性嵌入开发过程的每一个部分”,进而产生了DevSecOps的核心理念:

  1. 人人为安全负责:安全左移的推行,让安全成为技术团队中所有人都要进行的工作;

  2. 安全工作去专家化:用工具替代专业安全人员的知道,减低安全配置的成本;

  3. 安全工具自动化:用自动化的方式将安全工具融入原有流程,减少对业务速度的影响;

  4. 团队协同工作:安全人员与开发人员相互赋能,相互支撑。

面对DevSecOps这个比较抽象的概念,技术团队很难找到一个可落地的方案,通常应用“CI/CD黄金流水线”模型,让DevSecOps高度简化,从而方便落地实施。其中,最重要的实践就是将SASTSCA、IAST工具的融入。



第一,引入SAST(静态应用安全测试)工具实现代码审计,在软件开发什么周期中,帮助开发人员在编码阶段发现并识别代码中的安全缺陷,并快速定位和修复问题,最终解决软件内生安全问题。

第二,引入SCA(软件成分分析)工具实现开源组件治理,SCA工具对应用进行分析,以检测开组件是否带有已知的安全漏洞或功能漏洞,以及需要合适授权许可的商业软件或第三方产品。

第三,引入IAST(交互式应用测试)工具,在应用和API中自动识别和诊断软件漏洞,持续地从内容监控应用中的漏洞,在整个开发生命周期中,IAST通过开发和测试中使用的工具,实时地提供风险报警。

DevSecOps挑战与实践

纵使有“CI/CD黄金流水线”模型这样的简化方案,企业或团队在DevSecOps转型之下,也有相当大的阻力和挑战。从软件工程的三大维度来概括:

人与文化方面:

  • 人们对信息安全的重视程度还是不高;

  • DevSecOps转型增加额外的工作量;

  • 人们缺乏安全能力去修复发现的安全漏洞;

  • 不是所有高层都支持DevSecOps,其价值体现不充分。

技术方面:

  • 软件开发式一个复杂过程,需要DevSecOps提供相应的自动化工具支持;

  • 现有支持DevSecOps的工具的成熟度不够,很难在不增加研运成本的情况下融入安全工具。

流程方面:

  • IT治理模型、流程不适合跨团队合作,人力资源消耗过大;

  • 各个开发团队之间沟通、协作效率低。

从以上挑战可以看出,如何在不影响流程的敏捷性基础上,把安全融入DevOps进程,是实现DevSecOps落地的重要一步。通常情况下的实践方法包括:

  1. 安全部门提供充分的安全培训;

  2. 安全部门参与需求设计、架构设计;

  3. 安全部门提供简单易用的安全工具;

  4. 运维与安全联动监控;

  5. 建立实时安全基线检测;

  6. 为安全扫描的结果建立处理方案。

当我们在实施落地DevSecOps时,需要从四个方面来建设整个体系:

  • 组织运作:开发团队提供产品研发的工作支持,信息安全团队为开发团队提供安全工具、安全设计、安全培训等支持。DevSecOps负责人则是在安全团队和开发团队之间,相互传达诉求,持续运营DevSecOps体系的工作;

  • 工具选型:对SAST、IAST、SCA等工具进行选型和自动化集成,在提升流程的安全性的同时,降低对业务的影响;

  • 安全培训:通过多种形式的培训,提升团队的安全能力和安全意识;

  • 成熟度标准:建立内部的DevSecOps成熟度模型,来对组织能力进行评估。

开源网安在DevSecOps中的探索

纵观DevSecOps的发展与实践,开源网安梳理了来自不同行业中诸多客户的DevSecOps落地案例,总结了集安全技术能力、超前的DevSecOps组织与文化理念、完备的安全服务于一体的实践方法。

开源网安DevSecOps纵深一体化安全研运管理平台,是开源网安为客户打造的,集“产品+工具+服务”于一体的纵深安全防护体系,从根本上补齐了传统DevOps缺失的安全能力。

平台提供了从需求、设计、研发、测试到运营的软件生命周期的流程与数据管理,通过威胁建模和安全工具编排,将安全融入研运全流程。帮助客户在不牺牲交付安全的前提下,以自动化方式提高研发与部署效率。通过智慧研运度量体系和态势感知,以数字化、智能化方式,提高客户持续交付与安全响应能力。

作为国内软件安全行业的创领者,开源网安历经十载,坚持打造自主核心技术,逐年推出了多款具有完全自主知识产权的软件安全产品(SAST、IAST、SCA、FUZZ、RASP、DevSecOps等),填补了国内软件安全产品的空白,构建了完全自研的产品矩阵,更打破了国外技术的垄断。

多年来我们积累了大量与世界500强企业的合作经验,业务覆盖政府、金融、能源、通信、汽车、物联网等多元化场景。期间,我们曾助力多家中国大型企业通过海外软件安全标准的认证,成就大国品质出海。在这十年间,我们屡获国家权威认可,多次参与软件安全相关的国家标准与行业标准的制定。

我们从全生命周期守护客户软件安全,为客户提供软件供应链安全、软件研发安全、安全培训等一站式解决方案与服务,助力客户在安全进行数字化转型的同时,把更多资源用于业务的创新与突破。