当前位置:   article > 正文

浅谈软件供应链安全治理与DevSecOps落地实践_中移集成devsecops落地实践分享 高尉峰

中移集成devsecops落地实践分享 高尉峰

01 背景介绍

近几年,供应链安全事件频发,给安全行业带来了巨大影响,包括大家熟知的log4j远程代码执行漏洞等。Gartner表示,现代软件大多数是被“组装”出来的,不是被“开发”出来的,在软件开发过程中,大量代码来源于开源代码或开源组件,且大量开源组件被复用。

此外,据Sonatype《2021年开源安全和风险分析》报告显示,98%的代码库包含开源代码,全球开放源代码供应年环比增长20%,开发者下载的开源组件同比增长73%。《开源产业白皮书》显示,67%的代码库包含某种形式的开源代码许可证冲突,33%的代码库包含没有可识别许可证的开源组件。

02 开源组件发展现状与趋势

相关报告显示,2021 年 Gitee 上托管的代码仓库超过了 2000 万,Gitee ⽤户总量超过 800 万。开源组织数量已超过了 25 万个,OpenHarmony 作为国内话题性最高的国产开源项目,在 2021 年也获得了广泛关注,随着 OpenHarmony 2.0 的发布,其受关注再创新高,OpenHarmony 组织的关注总数也超过了 3 万。

Java 作为国内目前应用最广泛的语言,在 2021 年仍保持着强大的竞争力,仓库数量在极高存量的情况下仍有不错的增长态势,使用 Java 的仓库数量占比超越了 2020 年的 37%,此外js代码仓库数量超越了2020年的43%而在开源软件漏洞方面,整体呈增长趋势,2020 年增长率略有下降。CVE 官方未收录的开源软件漏洞数逐年递增,且在近 4 年,高危及以上开源漏洞占比均超 40%。同时,开源组件生态中的漏洞数呈上涨趋势,2020 年环比增长 40%。

在这里插入图片描述

图1-高危及以上开源漏洞占比
相关调查结果显示,组件漏洞依赖层级传播范围为:一级传播影响范围扩大 125 倍,二级传播影响范围扩大 173 倍。

03 软件供应链安全关注方向

为何要关注软件供应链安全?上述有提到过,软件开发过程中,大量代码来源于开源代码或开源组件,且大量开源组件被复用。比如在一个商业软件的依赖成分组成中,至少包含33%的开源组件,90%以上的开源代码,67%的代码库包含某种形式的开源代码许可证冲突,33%的代码库包含没有可识别许可证的开源组件。

那么,软件供应链安全要关注哪些方向?关注点有三个,即开源组件、国际纠纷、商业许可。

开源组件

开源组件版本
所涉及开源漏洞情况险
开源组件更新频率
组件黑白名单
组件准入基线
国际纠纷

国外开源组件是否存在后门,断供风
技术封锁
出口管制
商业许可

开源组件包含的许可证协议
知识产权问题
04 DevSecOps落地实践

DevOps及DevSecOps

自2009年Patrick Debois和Andrew Clay Shafer在比利时根特市举办的首届DevOpsDays大会提出了DevOps概念之后,DevOps开始在全球传播,并在2019年达到顶峰。

DevOps是指一种重视软件开发人员和IT运维技术人员之间沟通合作的文化,运动或惯例,区别于传统的瀑布模式,基于敏捷模式,并将敏捷思想和实践从开发扩展到运维。其目标是提升整个研发效能,进行更敏捷,更快速,更可靠的交付,从而提高产品竞争优势。

图2-从传统模式到DevOps模式
DevOps模式基于敏捷开发提高了开发到交付的时效,但是安全测试效率问题依然没有得到很好解决。

在这里插入图片描述

图3-DevOps模式及DevSecOps模式
在软件开发生命周期中,不同阶段修复安全漏洞的成本差距非常大,对于企业来说,把漏洞发现在萌芽状态,防止应用带病上线,是一项非常有价值的工作。因此对应用安全的风险管理越早越经济,漏洞根除或缓解之路就是沿着信息系统生命周期不断向前延伸。

在这里插入图片描述

图4-DevSecOps模式软件开发生命周期
从上图可以观察出,DevSecOps的显著特点即提前发现问题并进行解决。其最终目的就是通过安全左移到开发测试团队,从而使安全评审阶段的时长变短,从而进一步的缩短交付周期,并且它可以在更早的阶段发现并修复漏洞,从而减少上线前发现安全漏洞的返工成本。

实践

Gartner在2019年给出了一个实践清单,它由一系列的关键路径和持续的关键步骤中的措施和机制组成,周而复始地运转。其关注点在于研发过程中的安全漏洞及其引发的各类风险的管控。

在这里插入图片描述

图5-实践清单
各阶段的实施策略如下:(对应上图中序号)

1.plan(需求和设计)

度量指标
安全建模
安全流程和安全工具使用培训
2.create(编码/编译)

idea安全检查插件
3.verify(测试/验证)

这个阶段的应用工具需要被集成到流水线中实现自动化。

SAST
DAST
IAST
SCA
4.Preprod(预发布)

模糊测试
集成测试
5.Prevent(预防)

文件完整性检查
6.Detect(检测)

运行时应用自我保护
7.Respond(响应)

8.Predict(预测)

漏洞相关性分析,威胁情报
在这里插入图片描述

图6-DevSecOps工具在流水线上的融入

05 平台能力展示

代码扫描
在这里插入图片描述
在这里插入图片描述

可信源管理
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

流水线
在这里插入图片描述

到此,软件供应链安全治理主题内容的分享结束。最后,作者为大家推荐一本书籍:DevSecOps实战(机械工业出版社),帮助大家浅显易懂并且有代入感地了解如何将DevSecOps在企业内部落地和实践。

注:【图1】来源

「2021年开源软件供应链安全风险研究报告」

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/436808
推荐阅读
相关标签
  

闽ICP备14008679号