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年开源软件供应链安全风险研究报告」