CN111291331A - 混源文件许可冲突检测方法 - Google Patents
混源文件许可冲突检测方法 Download PDFInfo
- Publication number
- CN111291331A CN111291331A CN201910559759.6A CN201910559759A CN111291331A CN 111291331 A CN111291331 A CN 111291331A CN 201910559759 A CN201910559759 A CN 201910559759A CN 111291331 A CN111291331 A CN 111291331A
- Authority
- CN
- China
- Prior art keywords
- source file
- file
- mixed
- license
- mixed source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims description 24
- 238000000034 method Methods 0.000 claims abstract description 21
- 230000006870 function Effects 0.000 claims description 120
- 230000009193 crawling Effects 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 description 26
- 238000005516 engineering process Methods 0.000 description 9
- 239000000203 mixture Substances 0.000 description 7
- 238000011160 research Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012502 risk assessment Methods 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241001293057 Anas rubripes Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 102000004169 proteins and genes Human genes 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 238000012038 vulnerability analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种混源文件许可冲突检测方法,包括:步骤1)构建代码许可库和特征知识库;步骤2)混源文件特征值提取;步骤3)获取混源文件的允许属性;步骤4)获取目标开源文件的限制属性;步骤5)将所述混源文件的允许属性与所述目标开源文件的限制属性进行比较,以在相同时,记录所述混源文件的许可证协议合规性为冲突,否则,记录所述混源文件的许可证协议合规性为不冲突;步骤6)、步骤7):对许可证协议合规性的继续判断;步骤8)在记录所述混源文件的许可证协议合规性为冲突,将所述混源文件标记为不合格,否则,标记为合格。通过本发明,能够完成对混源文件复杂结构的解析,实现对混源文件的许可证协议合规性的准确判断。
Description
技术领域
本发明涉及文件检测领域,尤其涉及一种混源文件许可冲突检测方法。
背景技术
目前混源软件中开源代码及第三方插件大量使用,引起的知识产品和安全风险在国外已经引起了一定的关注和重视。已有的成果主要有美国Blackduck和Protecode两款成熟软件,这两套成熟软件在美国律师事务所、知识产权局、企业审计部门、软件承包商等单位广泛应用,并应用到其他国家的大型软件公司和企业审计单位。
(1)Blackduck
Blackduck(黑鸭软件)是目前占有市场份额最大的代码分析软件,但是Blackduck主要实现对源代码进行扫描、审计和代码管理。包括单机版的protex和在线检测版的HUB。软件的Blackduck KnowledgeBase(KB)是目前世界上最大、最全面的开源知识库。
作为Blackduck整个解决方案的基础,KB具有的主要优势包括:
1、包含5300亿行开源源代码;
2、囊括2,000,000个开源软件项目;
3、2500种独一无二的许可证(License);
4、79,000个安全漏洞;
5、数据来自6,500+站点;
6、专业团队负责维护,持续的更新。
Blackduck支持的编程语言超过70种,能够对超过100种文件类型进行扫描和检测,支持代码逐行比对功能,能够在并列窗口中展示出用户代码和开源代码的匹配内容,帮助用户更加准确的确认代码匹配。
Blackduck目前在超过20个国家拥有700多个客户,包括Intel、Cisco、Alcatel-Lucent、Motorola、Qualcomm、Yahoo等。Blackduck的产品和服务还应用于企业并购时的代码审计。
(2)Protecode
Protecode是Synopsys公司研制的一款开源代码质量检查管理工具,可以管理第三方代码的开源内容、发现其安全漏洞和确保license与知识产权的合规性。ProtecodeEnterpriseServer(ES)是针对源代码进行扫描、组成分析、许可证合规性分析及安全漏洞分析的软件。
以下为Protecode ES的功能组成表
表1-1 Protecode ES功能组成表
目前,Blackduck与Protecode均已经成熟应用,占有源代码分析的全球主要用户群,但是由于美国贸易限制,这两款软件的开源代码库均不对国内销售,只能通过上传源代码文件或二进制文件,使用软件的在线检测服务进行软件组成扫描分析,存在保密和安全的问题,这对软件是不允许的,因此无法采用这两套软件的服务进行代码组成分析。
中国国内代码组成和安全风险分析技术研究正处于百花齐放、百家争鸣的阶段,一些大学教授和安全领域专家正在从事一些细分技术领域的研究,绝大部分处于理论分析和技术仿真阶段,距离实用化、系统化和工程化还有很多关键技术需要研究和突破。
山东大学王凤宇教授正在研究基于函数层特征的二进制代码匹配与分析技术,该方法需要反汇编恶意软件并对汇编代码进行分析才能获得函数的特征,所以函数的特征会受混淆技术的干扰,需要采用静态分析和动态分析相结合的方法进行研究,该方法主要用于实现恶意软件的检测、已有研究成果仍停留在实验室论证阶段。
国防大学提出了一种高维特征融合的恶意代码分析方法,对恶意代码的静态二进制文件和反汇编特征等进行提取,借鉴局部敏感性思想,对多维特征进行融合分析和处理,采用典型的机器学习方法对融合后的特征向量进行学习训练,但是该方法仅适用于样本较少的场景,即无法适用于大规模样本场景,这种方法的可扩展性存在较大疑问。
中国人民解放军信息工程大学赵荣彩教授开展了基于特征提取的代码比较技术研究,在定义了基于图的二进制代码描述方法的基础上,从函数和基本块两个层次对近似的二进制代码进行比较,分析出它们之间相同的部分和差异信息,基于特征提取的二进制代码比较技术的实现框架,并列举了它在恶意软件变种分析,但是该方法对于恶意代码变种识别仍存在很多不确定性,该方法不依赖代码知识库的策略难以保证对比结果的可信性。
由此可见,中国开源安全联盟目前只实现了针对二进制代码的安全漏洞扫描分析,缺少对源代码分析的功能,综合能力还无法满足本项目应用需求,并且目前的性能指标还不能满足对高并发高效率代码分析匹配的应用需求。
发明内容
为了解决上述问题,本发明提供了一种混源文件许可冲突检测方法,针对混源代码组成结构复杂的难题,利用函数接口、函数关系、代码结构等多级特征进行智能分析,实现对混源代码的组成分析和开源代码的准确定位,通过分析代码中包含的商用代码许可证信息与开源许可协议信息做对比,实现软件许可证合规性量化分析,为软件的合规性提供数据支撑,围绕开源软件的复杂和许可证的多样性引来的安全和知识产权风险,创新开展软件分析相关的技术研究,重点突破混源代码智能检测分析能力、许可证合规性分析能力、许可证冲突识别定位能力等代码分析能力。
根据本发明的一方面,提供了一种混源文件许可冲突检测方法,所述方法包括:
步骤1)构建代码许可库和特征知识库:定期从开源许可证信息网站爬取许可证信息和特征知识库信息,对许可证信息进行收集以构建代码许可库,对特征知识库信息进行特征值提取以构建特征知识库;
步骤2)混源文件特征值提取:获取混源文件,分析混源文件的文件信息以获取文件名称、文件大小和文件哈希值,分析混源文件中每一个函数的函数信息以获得所述函数的函数名称、函数大小、函数长度和函数哈希值;
步骤3)获取混源文件的允许属性:当所述混源文件中存在License文件即许可证文件时,将所述混源文件的允许属性设置为所述License文件的允许属性,当所述混源文件中不存在License文件时,将所述混源文件的允许属性设置为所述混源文件所在项目的项目属性;
步骤4)获取目标开源文件的限制属性:将所述混源文件的文件哈希值与所述特征知识库中各个开源文件的各个哈希值分别进行匹配,以将匹配到的哈希值对应的开源文件作为目标开源文件,获取所述目标开源文件的限制属性,在匹配失败时,将所述混源文件使用的第三方文件的文件哈希值与所述特征知识库中各个开源文件哈希值分别进行匹配,以将匹配到的哈希值对应的开源文件作为目标开源文件,获取所述目标开源文件的限制属性,在匹配仍失败时,将所述混源文件的每一个函数和函数哈希值与所述特征知识库中各个开源文件内各个函数的函数哈希值进行匹配,以将匹配到的函数哈希值对应的函数所在的开源文件作为目标开源文件,获取所述目标开源文件的限制属性;
步骤5)将所述混源文件的允许属性与所述目标开源文件的限制属性进行比较,以在相同时,记录所述混源文件的许可证协议合规性为冲突,否则,记录所述混源文件的许可证协议合规性为不冲突;
步骤6)当步骤5)结果为不冲突时,将所述混源文件的每一个目标开源文件的限制属性与所述混源文件的其他各个目标开源文件的允许属性分别进行比较,以在与某一个目标开源文件的允许属性相同时,记录所述混源文件的许可证协议合规性为冲突,否则,记录所述混源文件的许可证协议合规性为不冲突;
步骤7)当步骤5)和步骤6)结果都为不冲突时,将所述混源文件的每一个目标开源文件的允许属性与所述混源文件的其他各个目标开源文件的限制属性分别进行比较,以在与某一个目标开源文件的限制属性相同时,记录所述混源文件的许可证协议合规性为冲突,否则,记录所述混源文件的许可证协议合规性为不冲突;
步骤8)在记录所述混源文件的许可证协议合规性为冲突,将所述混源文件标记为不合格,否则,标记为合格。
更具体地,在所述混源文件许可冲突检测方法中:在步骤3)中,当所述混源文件中存在License文件时,对所述License文件进行分析以获得License文件的许可证协议类型名称、允许属性、限制属性和条件属性。
更具体地,在所述混源文件许可冲突检测方法中:在步骤4)中,将所述混源文件的每一个函数和函数哈希值与所述特征知识库中各个开源文件内各个函数的函数哈希值进行匹配,以将匹配到的函数哈希值对应的函数所在的开源文件作为目标开源文件之后,记录匹配到的函数哈希值对应的函数所在的开源文件所在的工程名称和版本信息。
更具体地,在所述混源文件许可冲突检测方法中:在步骤4)中,将所述混源文件的每一个函数和函数哈希值与所述特征知识库中各个开源文件内各个函数的函数哈希值进行匹配,以将匹配到的函数哈希值对应的函数所在的开源文件作为目标开源文件之后,设置所述混源文件的开源率为所述混源文件中匹配成功的函数的个数/所述混源文件中函数总个数*100%,设置所述目标开源文件与所述混源文件的相似度为所述混源文件中匹配成功且位于所述目标开源文件中的函数的个数/所述混源文件中函数总个数*100%。
更具体地,在所述混源文件许可冲突检测方法中:在步骤4)中,还根据所述混源文件的文件哈希值从漏洞库查询对应的漏洞信息并记录。
本发明针对混源代码结构复杂的难题,利用函数接口,代码接口等多级特征来智能分析,实现对混源代码的分析和开源代码的定位,围绕开源软件的复杂和许可证的多样性带来的安全和知识产权分析,重点突破混源代码的智能检测与分析技术。
附图说明
以下将结合附图对本发明的实施方案进行描述,其中:
图1为根据本发明实施方案示出的混源文件许可冲突检测方法的步骤流程图。
图2为根据本发明实施方案示出的混源文件许可冲突检测方法的步骤流程图的详解图。
具体实施方式
下面将参照附图对本发明的混源文件许可冲突检测方法的实施方案进行详细说明。
目前混源软件中开源代码已有的成果主要有美国Blackduck和Protecode两款成熟软件,其缺点在于均不对国内销售,无法做到保密和安全等问题,中国开源安全联盟目前只实现了针对二进制代码的安全漏洞扫描分析,缺少对源代码分析的功能。
为了克服上述不足,本发明搭建了一种混源文件许可冲突检测方法,能够有效解决上述技术问题。
图1为根据本发明实施方案示出的混源文件许可冲突检测方法的步骤流程图,所述方法包括:
步骤1)构建代码许可库和特征知识库:定期从开源许可证信息网站爬取许可证信息和特征知识库信息,对许可证信息进行收集以构建代码许可库,对特征知识库信息进行特征值提取以构建特征知识库;
步骤2)混源文件特征值提取:获取混源文件,分析混源文件的文件信息以获取文件名称、文件大小和文件哈希值,分析混源文件中每一个函数的函数信息以获得所述函数的函数名称、函数大小、函数长度和函数哈希值;
步骤3)获取混源文件的允许属性:当所述混源文件中存在License文件即许可证文件时,将所述混源文件的允许属性设置为所述License文件的允许属性,当所述混源文件中不存在License文件时,将所述混源文件的允许属性设置为所述混源文件所在项目的项目属性;
步骤4)获取目标开源文件的限制属性:将所述混源文件的文件哈希值与所述特征知识库中各个开源文件的各个哈希值分别进行匹配,以将匹配到的哈希值对应的开源文件作为目标开源文件,获取所述目标开源文件的限制属性,在匹配失败时,将所述混源文件使用的第三方文件的文件哈希值与所述特征知识库中各个开源文件哈希值分别进行匹配,以将匹配到的哈希值对应的开源文件作为目标开源文件,获取所述目标开源文件的限制属性,在匹配仍失败时,将所述混源文件的每一个函数和函数哈希值与所述特征知识库中各个开源文件内各个函数的函数哈希值进行匹配,以将匹配到的函数哈希值对应的函数所在的开源文件作为目标开源文件,获取所述目标开源文件的限制属性;
步骤5)将所述混源文件的允许属性与所述目标开源文件的限制属性进行比较,以在相同时,记录所述混源文件的许可证协议合规性为冲突,否则,记录所述混源文件的许可证协议合规性为不冲突;
步骤6)当步骤5)结果为不冲突时,将所述混源文件的每一个目标开源文件的限制属性与所述混源文件的其他各个目标开源文件的允许属性分别进行比较,以在与某一个目标开源文件的允许属性相同时,记录所述混源文件的许可证协议合规性为冲突,否则,记录所述混源文件的许可证协议合规性为不冲突;
步骤7)当步骤5)和步骤6)结果都为不冲突时,将所述混源文件的每一个目标开源文件的允许属性与所述混源文件的其他各个目标开源文件的限制属性分别进行比较,以在与某一个目标开源文件的限制属性相同时,记录所述混源文件的许可证协议合规性为冲突,否则,记录所述混源文件的许可证协议合规性为不冲突;
步骤8)在记录所述混源文件的许可证协议合规性为冲突,将所述混源文件标记为不合格,否则,标记为合格。
接着,继续对本发明的混源文件许可冲突检测方法的具体流程进行进一步的说明。
在所述混源文件许可冲突检测方法中:
在步骤3)中,当所述混源文件中存在License文件时,对所述License文件进行分析以获得License文件的许可证协议类型名称、允许属性、限制属性和条件属性。
在所述混源文件许可冲突检测方法中:
在步骤4)中,将所述混源文件的每一个函数和函数哈希值与所述特征知识库中各个开源文件内各个函数的函数哈希值进行匹配,以将匹配到的函数哈希值对应的函数所在的开源文件作为目标开源文件之后,记录匹配到的函数哈希值对应的函数所在的开源文件所在的工程名称和版本信息。
在所述混源文件许可冲突检测方法中:
在步骤4)中,将所述混源文件的每一个函数和函数哈希值与所述特征知识库中各个开源文件内各个函数的函数哈希值进行匹配,以将匹配到的函数哈希值对应的函数所在的开源文件作为目标开源文件之后,设置所述混源文件的开源率为所述混源文件中匹配成功的函数的个数/所述混源文件中函数总个数*100%,设置所述目标开源文件与所述混源文件的相似度为所述混源文件中匹配成功且位于所述目标开源文件中的函数的个数/所述混源文件中函数总个数*100%。
在所述混源文件许可冲突检测方法中:
在步骤4)中,还根据所述混源文件的文件哈希值从漏洞库查询对应的漏洞信息并记录。
图2为根据本发明实施方案示出的混源文件许可冲突检测方法的步骤流程图的详解图。
如图2所示,本发明是对作为混源文件的代码文件的合规性检测,通过分析获得代码文件的文件信息,文件名称,文件大小,文件hash即文件哈希值。文件对应的函数信息:函数名称,函数大小,函数长度,函数hash即函数哈希值。如果有license文件,分析license文件的许可证协议类型名称,允许属性,限制属性,条件属性,把license的允许属性作为被测文件的允许属性;如果没有把被测代码文件所在项目的项目属性作为被测文件的允许属性,然后遍历所有被测代码文件以及第三方文件的hash值与知识库的所有开源代码文件hash做对比。
如果匹配到源文件,当前被测代码文件作为开源文件,记录其开源协议,记录开源文件所在工程名称,版本信息;如果没有匹配到,检测特征级别,文件或者函数;如果函数为第三方文件,比较开源协议的限制属性与被测文件的允许属性:如果不冲突,记录为被测代码的许可证合规性为不冲突;如果冲突,记录被测代码的许可证合规性为冲突,根据被测代码文件的hash从漏洞库中查询漏洞信息并记录;如果不是第三方文件,将函数的hash值与所有的开源文件的所有函数值做对比:如果没有匹配到,当前被测文件作为非开源文件,许可证合规性为不冲突;如果匹配到了,函数所在的被测代码为开源文件,把匹配到的函数对应的源文件的开源协议记录为被测文件的开源协议,记录开源文件所在的工程名称,版本信息;被测代码文件的开源率为开源个数/函数总个数*100%,开源文件与被测代码文件相似度为被测代码文件相似度为被测代码文件在开源代码中开源的函数个数/被测代码函数总个数*100%,比较开源协议的限制属性与被测文件的允许属性:如果冲突,记录被测代码的许可证合规性为冲突;如果不冲突,记录被测代码文件许可证协议合规性为不冲突,根据被测代码的代码文件的函数hash从漏洞库查询漏洞库信息并记录。
遍历所有开源文件的开源协议的限制属性与其他开源文件的开源协议的允许属性进行比较,如有冲突记录冲突信息,遍历所有开源文件的开源协议的限制属性与被测代码文件的允许属性进行对比,如有冲突记录冲突信息,如果冲突信息不为空,说明不合规;如果为空,说明被测代码文件合规。
其中,许可证信息,特征知识库信息是从开源许可证信息网站通过爬取,对许可证信息进行收集,以及特征值的提取并构建代码许可库与特征知识库,做到定时更新维护,保证数据的完整性。
综上,通过本发明,能够完成对混源文件复杂结构的解析,实现对混源文件的许可证协议合规性的准确判断。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (5)
1.一种混源文件许可冲突检测方法,其特征在于,所述方法包括:
步骤1)构建代码许可库和特征知识库:定期从开源许可证信息网站爬取许可证信息和特征知识库信息,对许可证信息进行收集以构建代码许可库,对特征知识库信息进行特征值提取以构建特征知识库;
步骤2)混源文件特征值提取:获取混源文件,分析混源文件的文件信息以获取文件名称、文件大小和文件哈希值,分析混源文件中每一个函数的函数信息以获得所述函数的函数名称、函数大小、函数长度和函数哈希值;
步骤3)获取混源文件的允许属性:当所述混源文件中存在License文件即许可证文件时,将所述混源文件的允许属性设置为所述License文件的允许属性,当所述混源文件中不存在License文件时,将所述混源文件的允许属性设置为所述混源文件所在项目的项目属性;
步骤4)获取目标开源文件的限制属性:将所述混源文件的文件哈希值与所述特征知识库中各个开源文件的各个哈希值分别进行匹配,以将匹配到的哈希值对应的开源文件作为目标开源文件,获取所述目标开源文件的限制属性,在匹配失败时,将所述混源文件使用的第三方文件的文件哈希值与所述特征知识库中各个开源文件哈希值分别进行匹配,以将匹配到的哈希值对应的开源文件作为目标开源文件,获取所述目标开源文件的限制属性,在匹配仍失败时,将所述混源文件的每一个函数和函数哈希值与所述特征知识库中各个开源文件内各个函数的函数哈希值进行匹配,以将匹配到的函数哈希值对应的函数所在的开源文件作为目标开源文件,获取所述目标开源文件的限制属性;
步骤5)将所述混源文件的允许属性与所述目标开源文件的限制属性进行比较,以在相同时,记录所述混源文件的许可证协议合规性为冲突,否则,记录所述混源文件的许可证协议合规性为不冲突;
步骤6)当步骤5)结果为不冲突时,将所述混源文件的每一个目标开源文件的限制属性与所述混源文件的其他各个目标开源文件的允许属性分别进行比较,以在与某一个目标开源文件的允许属性相同时,记录所述混源文件的许可证协议合规性为冲突,否则,记录所述混源文件的许可证协议合规性为不冲突;
步骤7)当步骤5)和步骤6)结果都为不冲突时,将所述混源文件的每一个目标开源文件的允许属性与所述混源文件的其他各个目标开源文件的限制属性分别进行比较,以在与某一个目标开源文件的限制属性相同时,记录所述混源文件的许可证协议合规性为冲突,否则,记录所述混源文件的许可证协议合规性为不冲突;
步骤8)在记录所述混源文件的许可证协议合规性为冲突,将所述混源文件标记为不合格,否则,标记为合格。
2.如权利要求1所述的混源文件许可冲突检测方法,其特征在于:
在步骤3)中,当所述混源文件中存在License文件时,对所述License文件进行分析以获得License文件的许可证协议类型名称、允许属性、限制属性和条件属性。
3.如权利要求2所述的混源文件许可冲突检测方法,其特征在于:
在步骤4)中,将所述混源文件的每一个函数和函数哈希值与所述特征知识库中各个开源文件内各个函数的函数哈希值进行匹配,以将匹配到的函数哈希值对应的函数所在的开源文件作为目标开源文件之后,记录匹配到的函数哈希值对应的函数所在的开源文件所在的工程名称和版本信息。
4.如权利要求3所述的混源文件许可冲突检测方法,其特征在于:
在步骤4)中,将所述混源文件的每一个函数和函数哈希值与所述特征知识库中各个开源文件内各个函数的函数哈希值进行匹配,以将匹配到的函数哈希值对应的函数所在的开源文件作为目标开源文件之后,设置所述混源文件的开源率为所述混源文件中匹配成功的函数的个数/所述混源文件中函数总个数*100%,设置所述目标开源文件与所述混源文件的相似度为所述混源文件中匹配成功且位于所述目标开源文件中的函数的个数/所述混源文件中函数总个数*100%。
5.如权利要求4所述的混源文件许可冲突检测方法,其特征在于:
在步骤4)中,还根据所述混源文件的文件哈希值从漏洞库查询对应的漏洞信息并记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910559759.6A CN111291331B (zh) | 2019-06-27 | 2019-06-27 | 混源文件许可冲突检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910559759.6A CN111291331B (zh) | 2019-06-27 | 2019-06-27 | 混源文件许可冲突检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291331A true CN111291331A (zh) | 2020-06-16 |
CN111291331B CN111291331B (zh) | 2022-02-22 |
Family
ID=71026507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910559759.6A Active CN111291331B (zh) | 2019-06-27 | 2019-06-27 | 混源文件许可冲突检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291331B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268713A (zh) * | 2021-06-03 | 2021-08-17 | 西南大学 | 基于软件依赖的开源软件许可证选择方法 |
CN113268714A (zh) * | 2021-06-03 | 2021-08-17 | 西南大学 | 一种开源软件许可证条款自动提取方法 |
CN113282965A (zh) * | 2021-05-20 | 2021-08-20 | 苏州棱镜七彩信息科技有限公司 | 开源许可证和版权信息篡改的检测方法及系统 |
CN116302042A (zh) * | 2023-05-25 | 2023-06-23 | 南方电网数字电网研究院有限公司 | 协议要素内容推荐方法、装置和计算机设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1679668A2 (en) * | 1996-09-04 | 2006-07-12 | Intertrust Technologies Corp. | Trusted infrastructure support systems, methods and techniques for secure electronic commerce, electronic transactions, commerce process control and automation, distributed computing, and rights management |
CN104969230A (zh) * | 2013-01-30 | 2015-10-07 | 惠普发展公司,有限责任合伙企业 | 用于确定软件许可之间的兼容性的系统及方法 |
CN106934254A (zh) * | 2017-02-15 | 2017-07-07 | 中国银联股份有限公司 | 一种开源许可证的分析方法及装置 |
CN107977575A (zh) * | 2017-12-20 | 2018-05-01 | 北京关键科技股份有限公司 | 一种基于私有云平台的代码组成分析系统和方法 |
CN108710568A (zh) * | 2018-05-05 | 2018-10-26 | 中科软评科技(北京)有限公司 | 静态代码缺陷的检测方法、计算机设备及存储介质 |
CN109063421A (zh) * | 2018-06-28 | 2018-12-21 | 东南大学 | 一种开源许可证合规性分析与冲突性检测方法 |
-
2019
- 2019-06-27 CN CN201910559759.6A patent/CN111291331B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1679668A2 (en) * | 1996-09-04 | 2006-07-12 | Intertrust Technologies Corp. | Trusted infrastructure support systems, methods and techniques for secure electronic commerce, electronic transactions, commerce process control and automation, distributed computing, and rights management |
CN104969230A (zh) * | 2013-01-30 | 2015-10-07 | 惠普发展公司,有限责任合伙企业 | 用于确定软件许可之间的兼容性的系统及方法 |
CN106934254A (zh) * | 2017-02-15 | 2017-07-07 | 中国银联股份有限公司 | 一种开源许可证的分析方法及装置 |
CN107977575A (zh) * | 2017-12-20 | 2018-05-01 | 北京关键科技股份有限公司 | 一种基于私有云平台的代码组成分析系统和方法 |
CN108710568A (zh) * | 2018-05-05 | 2018-10-26 | 中科软评科技(北京)有限公司 | 静态代码缺陷的检测方法、计算机设备及存储介质 |
CN109063421A (zh) * | 2018-06-28 | 2018-12-21 | 东南大学 | 一种开源许可证合规性分析与冲突性检测方法 |
Non-Patent Citations (3)
Title |
---|
JAMES C. JENISTA: "OoOJava: Software Out-of-Order Execution", 《PROCEEDINGS OF THE 16TH ACM SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING》 * |
刘启林: "混源软件质量模型与度量方法研究", 《计算机科学》 * |
闫晔: "基于开源软件开发专有软件的知识产权保护", 《重庆理工大学学报(社会科学)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282965A (zh) * | 2021-05-20 | 2021-08-20 | 苏州棱镜七彩信息科技有限公司 | 开源许可证和版权信息篡改的检测方法及系统 |
CN113268713A (zh) * | 2021-06-03 | 2021-08-17 | 西南大学 | 基于软件依赖的开源软件许可证选择方法 |
CN113268714A (zh) * | 2021-06-03 | 2021-08-17 | 西南大学 | 一种开源软件许可证条款自动提取方法 |
CN113268714B (zh) * | 2021-06-03 | 2022-10-04 | 西南大学 | 一种开源软件许可证条款自动提取方法 |
CN116302042A (zh) * | 2023-05-25 | 2023-06-23 | 南方电网数字电网研究院有限公司 | 协议要素内容推荐方法、装置和计算机设备 |
CN116302042B (zh) * | 2023-05-25 | 2023-09-15 | 南方电网数字电网研究院有限公司 | 协议要素内容推荐方法、装置和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111291331B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111291331B (zh) | 混源文件许可冲突检测方法 | |
Wang et al. | Rmvdroid: towards a reliable android malware dataset with app metadata | |
Neto et al. | Developing a global data breach database and the challenges encountered | |
CN113111951B (zh) | 数据处理方法以及装置 | |
CN103312887B (zh) | 一种手机应用篡改识别系统、方法及装置 | |
Casey et al. | Digital transformation risk management in forensic science laboratories | |
Johansen | Digital forensics and incident response | |
CN111367566A (zh) | 混源代码特征提取与匹配方法 | |
EP3346412A1 (en) | System and method for consent centric data compliance checking | |
CN115630374B (zh) | 可信数控系统的测试方法、装置、计算机设备和存储介质 | |
Pirch et al. | Tagvet: Vetting malware tags using explainable machine learning | |
CN116881979A (zh) | 数据安全合规的检测方法、装置及设备 | |
Haris | Risk Assessment on Information Asset an academic Application Using ISO 27001 | |
CN117909392B (zh) | 一种智能化数据资产盘点的方法和系统 | |
CN110188537B (zh) | 数据的分离存储方法及装置、存储介质、电子装置 | |
CN106156046B (zh) | 一种信息化管理方法、装置、系统及分析设备 | |
Hemel et al. | Finding software license violations through binary code clone detection-a retrospective | |
Chen et al. | Applying a random forest approach to imbalanced dataset on network monitoring analysis | |
Wang et al. | KRDroid: Ransomware-oriented detector for mobile devices based on behaviors | |
Kim et al. | Human centric security policy and management design for small and medium business | |
Yucel et al. | MAIT: Malware Analysis and Intelligence Tool | |
CN112765016A (zh) | 一种开源软件可用性判定方法及装置 | |
CN118349991B (zh) | 一种App个人信息收集行为自动检测方法、系统及装置 | |
Brüggemann et al. | No risk, more fun! Automating breach of confidentiality risk assessment for Android mobile health applications | |
Pistoia et al. | Automatic detection, correction, and visualization of security vulnerabilities in mobile apps |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 102209 southeast, 6th floor, block B, national power investment Central Research Institute, South District, future science city, Changping District, Beijing Applicant after: BEIJING KEYWARE Co.,Ltd. Address before: 102208 4th floor, Bona south building, Longcheng garden, Changping District, Beijing Applicant before: BEIJING KEYWARE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |