【技术实现步骤摘要】
软件成分检测方法、电子设备及计算机可读存储介质
[0001]本申请涉及软件成分检测
,具体涉及一种软件成分检测方法、电子设备及计算机可读存储介质。
技术介绍
[0002]现代软件开发,开源组件的使用越来越多,据Gartner调查统计,绝大多数的软件开发中都或多或少地使用了各类开源的软件组件,各种便利的开源组件给开发人员带来了极大的便利。然而任何的便利,都会带来风险的一面,开源组件的广泛普及和使用带来的风险不容忽视:如开源组件的运维和管理风险、漏洞和数据安全风险、合规和知识产权风险等。针对此情况,当前市场上已经有很多软件成分分析工具(SCA工具)应运而生,通过软件成分分析技术可以分析项目应用中所含的第三方开源成分及其漏洞和许可的风险情况。目前软件成分分析技术通常是利用源码检测,在源码检测上可通过包管理器,代码函数特征等方式来进行检测,而二进制检测相对源码检测具有很大的难度,目前尚未出现成熟的二进制检测技术方案。
技术实现思路
[0003]本申请的目的在于提供一种软件成分检测方法、电子设备及计算机可读存储介质,能够基于二进制文件进行检测。
[0004]为实现上述目的,本申请提供了一种提供了一种基于二进制文件检测的软件成分检测方法,包括:
[0005]建立特征库的步骤:
[0006]将源码库中的各组件的源码分别编译成二进制文件;
[0007]对各所述二进制文件分别进行反编译形成汇编程序;
[0008]分别从各所述汇编程序中提取所包含的常量字符串;
[00 ...
【技术保护点】
【技术特征摘要】
1.一种软件成分检测方法,其特征在于,包括:建立特征库的步骤:将源码库中的各组件的源码分别编译成二进制文件;对各所述二进制文件分别进行反编译形成汇编程序;分别从各所述汇编程序中提取所包含的常量字符串;将提取到的所有常量字符串及其与各组件的第一对应关系存储在所述特征库中;匹配步骤:将待检软件的待检二进制文件进行反编译形成待检汇编程序并从所述待检汇编程序中提取所包含的待匹配常量字符串;将若干所述待匹配常量字符串依次与所述特征库中的常量字符串进行匹配以根据匹配结果和所述特征库中的第一对应关系对所述特征库中的组件进行第一步筛选。2.如权利要求1所述的软件成分检测方法,其特征在于,如果存在唯一的组件使所述待检软件的所有待匹配常量字符串均匹配到其常量字符串,则结束筛选并将该组件作为筛选成功组件来返回筛选结果;如果存在至少两个组件使所述待检软件的所有待匹配常量字符串均匹配到其常量字符串,则该至少两个组件进入下一步筛选;如果不存在使所述待检软件的所有待匹配常量字符串均匹配到其常量字符串的组件,且存在至少两个组件使所述待检软件的部分待匹配常量字符串匹配到其常量字符串,则该至少两个组件进入下一步筛选;如果仅存在一个组件使所述待检软件的至少预设字符串数量的待匹配常量字符串匹配到其常量字符串,则结束筛选并将该组件作为筛选成功组件来返回筛选结果。3.如权利要求1或2所述的软件成分检测方法,其特征在于,所述建立特征库的步骤还包括:基于各所述汇编程序建立每一所述组件的函数与所述常量字符串的第二对应关系并存储在所述特征库中;所述匹配步骤还包括:基于所述待检汇编程序建立所述待检软件的函数与所述待匹配常量字符串的第三对应关系;将所述待检软件的所述第三对应关系分别与所述第一步筛选过来的组件的所述第二对应关系进行匹配;如果存在唯一的组件使所述待检软件的所有第三对应关系均匹配到其第二对应关系,则结束筛选并将该组件作为筛选成功组件来返回筛选结果;如果存在至少两个组件使所述待检软件的所有第三对应关系均匹配到其第二对应关系,则该至少两个组件进入下一步筛选;如果不存在使所述待检软件的所有第三对应关系均匹配到其第二对应关系的组件,且存在至少两个组件使所述待检软件的部分第三对应关系匹配到其第二对应关系,则该至少两个组件进入下一步筛选;如果仅存在一个组件使所述待检软件的至少预设关系数量的第三对应关系匹配到其第二对应关系,则结束筛选并将该组件作为筛选成功组件来返回筛选结果。
4.如权利要求3所述的软件成分检测方法,其特征在于,如果不存在组件使所述待检软件的至少预设关系数量的第三对应关系匹配到其第二对应关系,结束筛选并返回筛选结果。5.如权利要求1至4任一项所述的软件成分检测方法,其特征在于,所述...
【专利技术属性】
技术研发人员:汪杰,万振华,王颉,李华,董燕,
申请(专利权)人:深圳开源互联网安全技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。