软件物料清单生成方法及装置、设备、存储介质与流程

    技术2025-11-05  2


    本申请涉及电子技术,涉及但不限于软件物料清单生成方法及装置、设备、存储介质。


    背景技术:

    1、根据synopsys在《2022开源安全和风险分析报告》中指出,97%的代码仓库包含开源软件,其中81%的开源软件含有漏洞,在开源软件大量使用的今天,软件供应链攻击值得高度重视。软件供应链攻击是一种面向软件开发人员和供应商的新兴威胁,目标是通过感染合法应用分发恶意软件来访问源代码、构建过程或更新机制。在软件供应链攻击中,上游(供应商)的安全问题会传递到下游(消费者)并被放大,值得注意的是在供应链攻击中受到攻击的是上游厂商,受到威胁的则是上下游厂商。因此,准确的软件物料清单能够帮助企业定位到所使用软件的安全风险,有效应对软件供应链攻击。另外,准确的软件物料清单也有益于提高版权检测的准确性。


    技术实现思路

    1、有鉴于此,本申请提供的软件物料清单生成方法及装置、设备、存储介质,能够识别出实际调用的开源组件,从而提高开源组件识别的准确性,进而提高软件物料清单的准确性。

    2、根据本申请实施例的一个方面,提供一种软件物料清单生成方法,所述方法包括:从待检测程序运行时的函数调用栈信息中,提取出调用的开源组件的组件名称,得到第一组件清单;从所述待检测程序的特定包管理器的配置文件中,提取出包括的引入组件的组件名称和版本号,得到第二组件清单;根据所述第一组件清单和所述第二组件清单,生成软件物料清单。

    3、根据本申请实施例的一个方面,提供一种软件物料清单生成装置,所述装置包括:第一提取模块,配置成从待检测程序运行时的函数调用栈信息中,提取出调用的开源组件的组件名称,得到第一组件清单;第二提取模块,配置成从所述待检测程序的特定包管理器的配置文件中,提取出包括的引入组件的组件名称和版本号,得到第二组件清单;清单生成模块,配置成根据得到的所述第一组件名称和所述第二组件名称,生成软件物料清单。

    4、根据本申请实施例的一个方面,提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请实施例所述的方法。

    5、根据本申请实施例的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的所述的方法。

    6、在本申请实施例中,提供一种软件物料清单生成方法,在生成软件物料清单的方案中,不仅静态解析获取引入组件的组件名称和版本号,还动态解析函数调用栈信息,从中提取调用的开源组件的组件名称;如此,能够识别出待检测程序实际调用的开源组件,从而提高开源组件识别的准确性,进而提高软件物料清单的准确性。

    7、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。



    技术特征:

    1.一种软件物料清单生成方法,其特征在于,所述方法包括:

    2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

    3.根据权利要求1或2所述的方法,其特征在于,所述从待检测程序运行时的函数调用栈信息中,提取出调用的开源组件的组件名称,包括:

    4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:

    5.根据权利要求1至4任一项所述的方法,其特征在于,所述从所述待检测程序的特定包管理器的配置文件中,提取出包括的引入组件的组件名称和版本号,包括:

    6.根据权利要求5所述的方法,其特征在于,所述从所述一个或多个目标配置文件中,确定出所述特定包管理器的配置文件,包括:

    7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

    8.根据权利要求1至4任一项所述的方法,其特征在于,所述从所述待检测程序的特定包管理器的配置文件中,提取出包括的引入组件的组件名称和版本号,包括:

    9.根据权利要求1至8任一项所述的方法,其特征在于,所述根据所述第一组件清单和所述第二组件清单,生成软件物料清单,包括:

    10.根据权利要求9所述的方法,其特征在于,所述至少根据所述第一组件清单的组件名称和相应的版本号,生成软件物料清单,包括:

    11.根据权利要求10所述的方法,其特征在于,所述软件物料清单中还配置有每一组件名称的优先级,其中,属于所述第一组件清单的组件名称的优先级高于所述有版本号且未被调用的引入组件的组件名称的优先级。

    12.根据权利要求11所述的方法,其特征在于,所述软件物料清单还包括所述函数调用栈信息中包括的调用的非开源组件的组件名称和相应的版本号;其中,所述有版本号且未被调用的引入组件的组件名称的优先级高于所述非开源组件的组件名称的优先级。

    13.根据权利要求11或12所述的方法,其特征在于,所述优先级用于标识相应组件的危险程度和/或判断是否存在漏洞的优先级顺序。

    14.根据权利要求9至13任一项所述的方法,其特征在于,所述方法应用于客户端。

    15.根据权利要求1至14任一项所述的方法,其特征在于,所述方法还包括:

    16.一种软件物料清单生成装置,其特征在于,包括:

    17.一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至15任一项所述的方法。

    18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至15任一项所述的方法。


    技术总结
    本申请提供了软件物料清单生成方法及装置、设备、存储介质;其中,所述方法包括:从待检测程序运行时的函数调用栈信息中,提取出调用的开源组件的组件名称,得到第一组件清单;从所述待检测程序的特定包管理器的配置文件中,提取出包括的引入组件的组件名称和版本号,得到第二组件清单;根据所述第一组件清单和所述第二组件清单,生成软件物料清单。

    技术研发人员:邱勤,马禹昇,郑国忠,陈君新,王国宇,汪宇
    受保护的技术使用者:中国移动通信集团有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-36182.html

    最新回复(0)