01 背景介绍
此外,据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 软件供应链安全关注方向
那么,软件供应链安全要关注哪些方向?关注点有三个,即开源组件、国际纠纷、商业许可。
开源组件
国际纠纷
商业许可
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(编码/编译)
3.verify(测试/验证)
这个阶段的应用工具需要被集成到流水线中实现自动化。
4.Preprod(预发布)
5.Prevent(预防)
6.Detect(检测)
7.Respond(响应)
8.Predict(预测)
图6-DevSecOps工具在流水线上的融入
05 平台能力展示
代码扫描
可信源管理
流水线
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!