• 【无标题】


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

  • 相关阅读:
    搭建Android自动化python+appium环境
    【剑指offer】20.表示数值的字符串
    代码随想录算法训练营第29天(贪心)|455.分发饼干、376. 摆动序列、53. 最大子序和
    Doris启停脚本
    LeetCode 2007. 从双倍数组中还原原数组
    java-php-python-ssm面向大学生心理健康服务平台计算机毕业设计
    基于SSM的图书管理系统
    SpringBoot SpringBoot 原理篇 1 自动配置 1.12 bean 的加载控制【注解式】
    25. 答疑 - SAP OData 框架处理 Metadata 元数据请求的实现细节,前后端组件部署在同一台物理服务器
    基于场景分析法的电动车优化调度(Matlab代码实现)
  • 原文地址:https://blog.csdn.net/HarmonyCloud_/article/details/126584475