CN117972699A - 一种基于软件基因的第三方开源组件风险分析方法及系统 - Google Patents
一种基于软件基因的第三方开源组件风险分析方法及系统 Download PDFInfo
- Publication number
- CN117972699A CN117972699A CN202410236971.XA CN202410236971A CN117972699A CN 117972699 A CN117972699 A CN 117972699A CN 202410236971 A CN202410236971 A CN 202410236971A CN 117972699 A CN117972699 A CN 117972699A
- Authority
- CN
- China
- Prior art keywords
- classification
- open source
- classification result
- result
- source component
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012502 risk assessment Methods 0.000 title claims abstract description 20
- 238000004458 analytical method Methods 0.000 claims abstract description 65
- 239000013598 vector Substances 0.000 claims abstract description 60
- 238000013145 classification model Methods 0.000 claims abstract description 50
- 238000012549 training Methods 0.000 claims abstract description 22
- 230000003068 static effect Effects 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 11
- 230000007547 defect Effects 0.000 claims description 11
- 238000010801 machine learning Methods 0.000 claims description 10
- 230000006399 behavior Effects 0.000 claims description 6
- 238000013527 convolutional neural network Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 4
- 244000035744 Hura crepitans Species 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 229920006235 chlorinated polyethylene elastomer Polymers 0.000 claims description 3
- 238000000136 cloud-point extraction Methods 0.000 claims description 3
- 230000004927 fusion Effects 0.000 claims description 3
- 230000008676 import Effects 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 abstract description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及恶意软件检测处理技术领域,尤其涉及一种基于软件基因的第三方开源组件风险分析方法及系统,该方法包括以下步骤:获取软件基因信息;对软件基因信息进行特征提取得到特征向量;对提取到的特征向量进行静态分析,并将得到的第一分析结果输入至第一机器算法模型进行训练,得到第一分类模型;对提取到的特征向量进行动态分析,并将得到的第二分析结果输入至第二机器算法模型进行训练,得到第二分类模型;分别输入开源组件代码至第一分类模型和第二分类模型中,得到第一分类结果和第二分类结果;两个结果进行融合,当结果一致时,将结果作为最终分类结果输出;当结果不一致时,使用组件家族溯源方法对开源组件代码进行分析。
Description
技术领域
本发明涉及恶意软件检测处理技术领域,尤其涉及一种基于软件基因的第三方开源组件风险分析方法及系统。
背景技术
软件基因是软件体上具有功能或承载信息的二进制片段,是软件功能实现的原子单位,支撑着软件的基本构造,一个软件基因的长度比较短,代表的功能一般也比较简单,一个程序的某个复杂功能需要由多个软件基因组合起来共同完成;现代软件在开发过程中,第三方开源组件所占据的比重越来越高,然而在使用第三方开源组件时,无法保证其安全性,故需要对其中的风险进行分析。
现有技术中,如申请公布号为CN108171059A的中国发明专利申请于2018年6月15日公开了一种基于软件基因的恶意代码检测与识别方法及装置,其通过先构建恶意代码软件基因库,然后再通过恶意代码软件基因库对恶意代码进行检测及识别;然而发明人发现,上述方案在进行实施时,随着恶意代码井喷式的增长,传统的恶意代码匹配的方式导致检测的效率越来越低,同时也需要大量的计算机资源来进行支持;
再例如,申请号为201910557072.9的发明专利公开了一种基于马尔科夫模型的内存中软件基因动态提取方法,包括:步骤1:建立内存捕获系统;步骤2:基于所述内存捕获系统在加壳恶意代码执行时进行虚拟机相关内存转储;步骤3:基于未加壳恶意代码中提取的恶意代码软件基因构建马尔科夫模型;步骤4:基于非恶意代码中提取的代码片段构建第一状态转换矩阵;步骤5:利用所述第一状态转换矩阵对所述马尔科夫模型进行优化,得到加壳软件基因检测模型;步骤6:通过所述加壳软件基因检测模型对加壳恶意代码进行恶意代码软件基因提取。然而发明人发现,上述马尔科夫模型的性能取决于训练数据的质量和数量,缺乏代表性的数据可能会导致软件基因提取的准确性不足。
发明内容
本申请提供一种基于软件基因的第三方开源组件风险分析方法及系统,通过将静态分析方法和动态分析方法相结合,并分别将第一分析结果和第二分析结果使用第一机器学习算法模型和第二机器学习算法模型进行训练,从而将得到的第一分类结果和第二分类结果进行融合,结合两种分析方法,大大提高分析结果的准确性。
根据本发明的第一方面,提供一种基于软件基因的第三方开源组件风险分析方法,包括以下步骤:
获取软件基因信息,所述软件基因信息包括第一代码特征库和第二代码特征库,所述第一代码特征库为恶意代码特征库,所述第二代码特征库为合法代码特征库;
对所述软件基因信息进行特征提取得到特征向量;
对提取到的特征向量进行静态分析,得到第一分析结果,并将所述第一分析结果输入至第一机器算法模型进行训练,得到第一分类模型;
对提取到的特征向量进行动态分析,得到第二分析结果,并将所述第二分析结果输入至第二机器算法模型进行训练,得到第二分类模型;
分别输入开源组件代码至所述第一分类模型和第二分类模型中,得到第一分类结果和第二分类结果;
将所述第一分类结果和第二分类结果进行融合,当所述第一分类结果和第二分类结果一致时,将所述第一分类结果和第二分类结果作为最终分类结果输出;当所述第一分类结果和第二分类结果不一致时,使用组件家族溯源方法对所述开源组件代码进行分析;
在使用组件家族溯源方法对所述开源组件代码进行分析时,包括以下步骤:
根据所述开源组件代码的组件清单,通过比照CVE漏洞特征库中的漏洞涉及的CPE,识别出所述开源组件代码包含的CVE漏洞清单,基于所述开源组件代码逆向后的中间语言表达,通过CWE缺陷模型的相似度匹配,识别出所述开源组件代码包含的CWE缺陷清单。在本发明的一些实施方式中,在对提取到的特征向量进行静态分析时,包括以下步骤:
获取反汇编跳转块,对所述反汇编跳转块进行处理得到指令序列数据;
获取控制流图,对所述控制流图进行处理得到API调用图,所述API调用图包括API的循环起点信息、循环类型信息以及链接API名称的字符串信息;
通过执行所述指令序列数据对所述API调用图进行处理,生成所述API的特征向量调用关系;
对所述API的特征向量调用关系进行分析,得到所述第一分析结果。
在本发明的一些实施方式中,在对提取到的特征向量进行动态分析时,包括以下步骤:
将目标程序文件导入沙箱中执行,获取所述目标程序文件执行过程中产生的行为特征、网络特征数据;
获取PE文件的特征数据,所述特征数据包括字节频率、二元字符频率、导入表以及元数据;
对所述PE文件的特征数据进行预处理,生成所述PE文件的特征向量;
对所述行为特征、网络特征数据以及所述PE文件的特征向量调用关系进行分析,得到所述第二分析结果。
在本发明的一些实施方式中,所述第一机器算法模型为深度神经网络,所述第一分类模型通过以下方法训练得到:
获得所述第一分类模型的期望值并设置第一阈值,通过以下公式计算第一差值:
其中,GA表示所述第一差值,k1表示第一系数,N表示所述第一分析结果中所述特征向量的数量,i表示所述特征向量中的第i个,gi表示实时获得的所述第一分类模型的第i个输出值,ti表示所述第一分类模型的第i个期望值;
当所述第一差值大于所述第一阈值时,通过以下公式校正:
其中,GB表示所述第一差值的调整值,k2表示第二系数,N表示所述第一分析结果中所述特征向量的数量,M表示所述第一分类模型的期望值的数量,i表示所述特征向量中的第i个,j表示所述第一分类模型的期望值的第j个,fij表示第i个第一分类模型的期望值的第j个元素的值,n1表示第一参考值,n2表示第二参考值。
在本发明的一些实施方式中,所述第二机器算法模型为卷积神经网络,所述第二分类模型通过以下方法训练得到:
所述卷积神经网络接收所述特征向量,根据所述特征向量创建特征抽象池;
所述特征抽象池内包含所述第一代码特征库中的缺陷。
在本发明的一些实施方式中,当所述第一分类结果和所述第二分类结果不一致时,还包括从所述第一分类结果和所述第二分类结果中搜集新信息,将所述新信息输入第一机器学习算法模型或第二机器学习算法模型进行训练。
根据本发明的第二方面,提供了一种基于软件基因的第三方开源组件风险分析系统,包括:
软件基因信息获取模块,用于获取软件基因信息,所述软件基因信息包括第一代码特征库和第二代码特征库,所述第一代码特征库为恶意代码特征库,所述第二代码特征库为合法代码特征库;
特征向量提取模块,用于对所述软件基因信息进行特征提取得到特征向量;
静态分析模块,用于对提取到的特征向量进行静态分析,得到第一分析结果,并将所述第一分析结果输入至第一机器算法模型进行训练,得到第一分类模型;
动态分析模块,用于对提取到的特征向量进行动态分析,得到第二分析结果,并且所述第二分析结果输入至第二机器算法模型进行训练,得到第二分类模型;
分类结果获取模块,用于分别输入开源组件代码至所述第一分类模型和第二分类模型中,得到第一分类结果和第二分类结果;
分类结果融合模块,用于将所述第一分类结果和第二分类结果进行融合,当所述第一分类结果和第二分类结果一致时,将所述第一分类结果和第二分类结果作为最终分类结果输出;当所述第一分类结果和第二分类结果不一致时,使用组件家族溯源方法对所述开源组件代码进行分析。
根据本发明的第三方面,还提供了一种电子设备,包括:
处理器;以及,
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任一项所述的方法。
根据本发明的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面中任一项所述的方法。
本发明的有益效果为:本发明通过将静态分析方法和动态分析方法相结合,并分别将第一分析结果和第二分析结果使用第一机器学习算法模型和第二机器学习算法模型进行训练,从而将得到的第一分类结果和第二分类结果进行融合,结合两种分析方法,大大提高分析结果的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中基于软件基因的第三方开源组件风险分析方法的步骤流程图;
图2为本发明实施例基于软件基因的第三方开源组件风险分析系统的结构示意图;
图3为本发明实施例中电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的,并不表示是唯一的实施方式。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
图1是本申请根据一示例实施例示出的基于软件基因的第三方开源组件风险分析方法的流程示意图。如图1所示,本实施例提供的方法,包括以下步骤:
步骤S101:获取软件基因信息,所述软件基因信息包括第一代码特征库和第二代码特征库,所述第一代码特征库为恶意代码特征库,所述第二代码特征库为合法代码特征库;
步骤S102:对所述软件基因信息进行特征提取得到特征向量;
步骤S103:对提取到的特征向量进行静态分析,得到第一分析结果,并将所述第一分析结果输入至第一机器算法模型进行训练,得到第一分类模型;
步骤S104:对提取到的特征向量进行动态分析,得到第二分析结果,并将所述第二分析结果输入至第二机器算法模型进行训练,得到第二分类模型;
步骤S105:分别输入开源组件代码至所述第一分类模型和第二分类模型中,得到第一分类结果和第二分类结果;
步骤S106:将所述第一、第二分类结果进行融合,当所述第一分类结果和第二分类结果一致时,将所述第一分类结果和第二分类结果作为最终分类结果输出;当所述第一分类结果和第二分类结果不一致时,使用组件家族溯源方法对所述开源组件代码进行分析;
步骤S107:在使用组件家族溯源方法对所述开源组件代码进行分析时,包括以下步骤:根据所述开源组件代码的组件清单,通过比照CVE漏洞特征库中的漏洞涉及的CPE,识别出所述开源组件代码包含的CVE漏洞清单,基于所述开源组件代码逆向后的中间语言表达,通过CWE缺陷模型的相似度匹配,识别出所述开源组件代码包含的CWE缺陷清单。
在具体实施中,在对提取到的特征向量进行静态分析时,包括:
获取反汇编跳转块,对所述反汇编跳转块进行处理得到指令序列数据;
获取控制流图,对所述控制流图进行处理得到API(Application ProgrammingInterface,应用程序编程接口)调用图,所述API调用图包括API的循环起点信息、循环类型信息以及链接API名称的字符串信息;
通过执行所述指令序列数据对所述API调用图进行处理,生成所述API的特征向量调用关系;
对所述API的特征向量调用关系进行分析,得到所述第一分析结果。
在具体实施中,在对提取到的特征向量进行动态分析时,包括以下步骤:
将目标程序文件导入沙箱中执行,获取所述目标程序文件执行过程中产生的行为特征、网络特征数据;
获取PE(Portable Executable,可移植的可执行)文件的特征数据,所述特征数据包括字节频率、二元字符频率、导入表以及元数据;
对所述PE文件的特征数据进行预处理,生成所述PE文件的特征向量;
对所述行为特征、网络特征数据以及所述PE文件的特征向量调用关系进行分析,得到所述第二分析结果。
在具体实施中,所述第一机器算法模型为深度神经网络,所述第一分类模型通过以下方法训练得到:
获得所述第一分类模型的期望值并设置第一阈值,通过以下公式计算第一差值:
其中,GA表示所述第一差值,k1表示第一系数,N表示所述第一分析结果中所述特征向量的数量,i表示所述特征向量中的第i个,gi表示实时获得的所述第一分类模型的第i个输出值,ti表示所述第一分类模型的第i个期望值;
当所述第一差值大于所述第一阈值时,通过以下公式校正:
其中,GB表示所述第一差值的调整值,k2表示第二系数,N表示所述第一分析结果中所述特征向量的数量,M表示所述第一分类模型的期望值的数量,i表示所述特征向量中的第i个,j表示所述第一分类模型的期望值的第j个,fij表示第i个第一分类模型的期望值的第j个元素的值,n1表示第一参考值,n2表示第二参考值。
在具体实施中,所述第二机器算法模型为卷积神经网络,所述第二分类面模型通过以下方法训练得到:
所述卷积神经网络接收所述特征向量,根据所述特征向量创建特征抽象池;
所述特征抽象池内包含所述第一代码特征库中的缺陷。
在具体实施中,在使用组件家族溯源方法对所述开源组件代码进行分析时,包括以下步骤:根据所述开源组件代码的组件清单,通过比照CVE(Common Vulnerabilities&Exposure,通用漏洞披露)漏洞特征库中的漏洞涉及的CPE(Common PlatformEnumeration,通用平台枚举项),识别出所述开源组件代码包含的CVE漏洞清单,基于所述开源组件代码逆向后的中间语言表达,通过CWE(Common Weakness Enumeration,通用弱点枚举)缺陷模型的相似度匹配,识别出所述开源组件代码包含的CWE缺陷清单。
在具体实施中,当所述第一分类结果和所述第二分类结果不一致时,还包括从所述第一分类结果和所述第二分类结果中搜集新信息,将所述新信息输入第一机器学习算法模型或第二机器学习算法模型进行训练。
图2是本申请根据一示例实施例示出的一种基于软件基因的第三方开源组件风险分析系统的结构示意图。如图2所示,本实施例提供的基于软件基因的第三方开源组件风险分析系统,包括:
软件基因信息获取模块31,用于获取软件基因信息,所述软件基因信息包括第一代码特征库和第二代码特征库,所述第一代码特征库为恶意代码特征库,所述第二代码特征库为合法代码特征库;
特征向量提取模块32,用于对所述软件基因信息进行特征提取得到特征向量;
静态分析模块33,用于对提取到的特征向量进行静态分析,得到第一分析结果,并将所述第一分析结果输入至第一机器算法模型进行训练,得到第一分类模型;
动态分析模块34,用于对提取到的特征向量进行动态分析,得到第二分析结果,并将所述第二分析结果输入至第二机器算法模型进行训练,得到第二分类模型;
分类结果获取模块35,用于将开源组件代码分别输入所述第一分类结果和第二分类模型中,得到第一分类结果和第二分类结果;
分类结果融合模块36,用于将所述第一分类结果和第二分类结果进行融合,当所述第一分类结果和第二分类结果一致时,将所述第一分类结果和第二分类结果作为最终分类结果输出,当所述第一分类结果和第二分类结果不一致时,使用组件家族溯源方法对所述开源组件代码进行分析。
图3是本申请根据一示例实施例示出的电子设备的结构示意图。如图3所示,本实施例提供的一种电子设备400包括:处理器401以及存储器402;其中:
存储器402,用于存储计算机程序,该存储器还可以是flash(闪存)。
处理器401,用于执行存储器存储的执行指令,以实现上述方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。
可选地,存储器402既可以是独立的,也可以跟处理器401集成在一起。
当所述存储器402是独立于处理器401之外的器件时,所述电子设备400还可以包括:
总线403,用于连接所述存储器402和处理器401。
本实施例还提供一种可读存储介质,可读存储介质中存储有计算机程序,当电子设备的至少一个处理器执行该计算机程序时,电子设备执行上述的各种实施方式提供的方法。
本实施例还提供一种程序产品,该程序产品包括计算机程序,该计算机程序存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得电子设备实施上述的各种实施方式提供的方法。
本申请实施例提供的基于软件基因的第三方开源组件风险分析方法及系统,通过将静态分析方法和动态分析方法相结合,并分别将第一分析结果和第二分析结果使用第一机器学习算法模型和第二机器学习算法模型进行训练,从而将得到的第一分类结果和第二分类结果进行融合,结合两种分析方法,大大提高分类结果的准确性。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD ROM、或技术领域内所公知的任意其它形式的存储介质中。
本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (9)
1.一种基于软件基因的第三方开源组件风险分析方法,其特征在于,包括以下步骤:
获取软件基因信息,所述软件基因信息包括第一代码特征库和第二代码特征库,所述第一代码特征库为恶意代码特征库,所述第二代码特征库为合法代码特征库;
对所述软件基因信息进行特征提取得到特征向量;
对提取到的特征向量进行静态分析,得到第一分析结果,并将所述第一分析结果输入至第一机器算法模型进行训练,得到第一分类模型;
对提取到的特征向量进行动态分析,得到第二分析结果,并将所述第二分析结果输入至第二机器算法模型进行训练,得到第二分类模型;
分别输入开源组件代码至所述第一分类模型和第二分类模型中,得到第一分类结果和第二分类结果;
将所述第一分类结果和第二分类结果进行融合,当所述第一分类结果和第二分类结果一致时,将所述第一分类结果和第二分类结果作为最终分类结果输出;当所述第一分类结果和第二分类结果不一致时,使用组件家族溯源方法对所述开源组件代码进行分析;
在使用组件家族溯源方法对所述开源组件代码进行分析时,包括以下步骤:
根据所述开源组件代码的组件清单,通过比照CVE漏洞特征库中的漏洞涉及的CPE,识别出所述开源组件代码包含的CVE漏洞清单,基于所述开源组件代码逆向后的中间语言表达,通过CWE缺陷模型的相似度匹配,识别出所述开源组件代码包含的CWE缺陷清单。
2.根据权利要求1所述的基于软件基因的第三方开源组件风险分析方法,其特征在于,在对提取到的特征向量进行静态分析时,包括以下步骤:
获取反汇编跳转块,对所述反汇编跳转块进行处理得到指令序列数据;
获取控制流图,对所述控制流图进行处理得到API调用图,所述API调用图包括API的循环起点信息、循环类型信息以及链接API名称的字符串信息;
通过执行所述指令序列数据对所述API调用图进行处理,生成所述API的特征向量调用关系;
对所述API的特征向量调用关系进行分析,得到所述第一分析结果。
3.根据权利要求1所述的基于软件基因的第三方开源组件风险分析方法,其特征在于,在对提取到的特征向量进行动态分析时,包括以下步骤:
将目标程序文件导入沙箱中执行,获取所述目标程序文件执行过程中产生的行为特征、网络特征数据;
获取PE文件的特征数据,所述特征数据包括字节频率、二元字符频率、导入表以及元数据;
对所述PE文件的特征数据进行预处理,生成所述PE文件的特征向量;
对所述行为特征、网络特征数据以及所述PE文件的特征向量调用关系进行分析,得到所述第二分析结果。
4.根据权利要求1所述的基于软件基因的第三方开源组件风险分析方法,其特征在于,所述第一机器算法模型为深度神经网络,所述第一分类模型通过以下方法训练得到:
获得所述第一分类模型的期望值并设置第一阈值,通过以下公式计算第一差值:
其中,GA表示所述第一差值,k1表示第一系数,N表示所述第一分析结果中所述特征向量的数量,i表示所述特征向量中的第i个,gi表示实时获得的所述第一分类模型的第i个输出值,ti表示所述第一分类模型的第i个期望值;
当所述第一差值大于所述第一阈值时,通过以下公式校正:
其中,GB表示所述第一差值的调整值,k2表示第二系数,N表示所述第一分析结果中所述特征向量的数量,M表示所述第一分类模型的期望值的数量,i表示所述特征向量中的第i个,j表示所述第一分类模型的期望值的第j个,fij表示第i个第一分类模型的期望值的第j个元素的值,n1表示第一参考值,n2表示第二参考值。
5.根据权利要求1所述的基于软件基因的第三方开源组件风险分析方法,其特征在于,所述第二机器算法模型为卷积神经网络,所述第二分类模型通过以下方法训练得到:
所述卷积神经网络接收所述特征向量,根据所述特征向量创建特征抽象池;
所述特征抽象池内包含所述第一代码特征库中的缺陷。
6.根据权利要求1所述的基于软件基因的第三方开源组件风险分析方法,其特征在于,当所述第一分类结果和所述第二分类结果不一致时,还包括从所述第一分类结果和所述第二分类结果中搜集新信息,将所述新信息输入第一机器学习算法模型或第二机器学习算法模型进行训练。
7.一种基于软件基因的第三方开源组件风险分析系统,其特征在于,包括:
软件基因信息获取模块,用于获取软件基因信息,所述软件基因信息包括第一代码特征库和第二代码特征库,所述第一代码特征库为恶意代码特征库,所述第二代码特征库为合法代码特征库;
特征向量提取模块,用于对所述软件基因信息进行特征提取得到特征向量;
静态分析模块,用于对提取到的特征向量进行静态分析,得到第一分析结果,并将所述第一分析结果输入至第一机器算法模型进行训练,得到第一分类模型;
动态分析模块,用于对提取到的特征向量进行动态分析,得到第二分析结果,并且所述第二分析结果输入至第二机器算法模型进行训练,得到第二分类模型;
分类结果获取模块,用于分别输入开源组件代码至所述第一分类模型和第二分类模型中,得到第一分类结果和第二分类结果;
分类结果融合模块,用于将所述第一分类结果和第二分类结果进行融合,当所述第一分类结果和第二分类结果一致时,将所述第一分类结果和第二分类结果作为最终分类结果输出;当所述第一分类结果和第二分类结果不一致时,使用组件家族溯源方法对所述开源组件代码进行分析。
8.一种电子设备,其特征在于,包括:
处理器;以及,
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410236971.XA CN117972699A (zh) | 2024-03-01 | 2024-03-01 | 一种基于软件基因的第三方开源组件风险分析方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410236971.XA CN117972699A (zh) | 2024-03-01 | 2024-03-01 | 一种基于软件基因的第三方开源组件风险分析方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117972699A true CN117972699A (zh) | 2024-05-03 |
Family
ID=90861064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410236971.XA Pending CN117972699A (zh) | 2024-03-01 | 2024-03-01 | 一种基于软件基因的第三方开源组件风险分析方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117972699A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160021174A1 (en) * | 2014-07-17 | 2016-01-21 | Telefonica Digital Espana, S.L.U. | Computer implemented method for classifying mobile applications and computer programs thereof |
CN112632537A (zh) * | 2020-12-23 | 2021-04-09 | 北京鸿腾智能科技有限公司 | 恶意代码检测方法、装置、设备及存储介质 |
CN113626817A (zh) * | 2021-08-25 | 2021-11-09 | 北京邮电大学 | 恶意代码家族分类方法 |
CN115544517A (zh) * | 2022-10-08 | 2022-12-30 | 上海安般信息科技有限公司 | 一种基于静态分析的固件供应链安全系统 |
WO2023031931A1 (en) * | 2021-09-01 | 2023-03-09 | B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University | Systems and methods for detecting unknown portable executables malware |
CN115828239A (zh) * | 2022-11-23 | 2023-03-21 | 昆山九华电子设备厂 | 一种多维数据决策融合的恶意代码检测方法 |
CN116611064A (zh) * | 2023-05-15 | 2023-08-18 | 西北工业大学 | 一种基于门控循环单元的混合模型恶意软件检测方法 |
-
2024
- 2024-03-01 CN CN202410236971.XA patent/CN117972699A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160021174A1 (en) * | 2014-07-17 | 2016-01-21 | Telefonica Digital Espana, S.L.U. | Computer implemented method for classifying mobile applications and computer programs thereof |
CN112632537A (zh) * | 2020-12-23 | 2021-04-09 | 北京鸿腾智能科技有限公司 | 恶意代码检测方法、装置、设备及存储介质 |
CN113626817A (zh) * | 2021-08-25 | 2021-11-09 | 北京邮电大学 | 恶意代码家族分类方法 |
WO2023031931A1 (en) * | 2021-09-01 | 2023-03-09 | B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University | Systems and methods for detecting unknown portable executables malware |
CN115544517A (zh) * | 2022-10-08 | 2022-12-30 | 上海安般信息科技有限公司 | 一种基于静态分析的固件供应链安全系统 |
CN115828239A (zh) * | 2022-11-23 | 2023-03-21 | 昆山九华电子设备厂 | 一种多维数据决策融合的恶意代码检测方法 |
CN116611064A (zh) * | 2023-05-15 | 2023-08-18 | 西北工业大学 | 一种基于门控循环单元的混合模型恶意软件检测方法 |
Non-Patent Citations (1)
Title |
---|
YUEMING WU ET AL.: "The softwarre genome project: venture to the genomic pathways of open source software and its applications", 《ARXIV》, 16 November 2023 (2023-11-16), pages 1 - 13 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110348214B (zh) | 对恶意代码检测的方法及系统 | |
CN109101817B (zh) | 一种识别恶意文件类别的方法及计算设备 | |
CN111931179B (zh) | 基于深度学习的云端恶意程序检测系统及方法 | |
CN109740347B (zh) | 一种针对智能设备固件的脆弱哈希函数的识别与破解方法 | |
CN109598124A (zh) | 一种webshell检测方法以及装置 | |
CN111639337A (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及系统 | |
CN112000952B (zh) | Windows平台恶意软件的作者组织特征工程方法 | |
CN111092894A (zh) | 一种基于增量学习的webshell检测方法、终端设备及存储介质 | |
CN111428236A (zh) | 一种恶意软件的检测方法、装置、设备及可读介质 | |
CN113297580B (zh) | 基于代码语义分析的电力信息系统安全防护方法及装置 | |
CN112966271A (zh) | 一种基于图卷积网络的恶意软件检测方法 | |
CN115100739B (zh) | 人机行为检测方法、系统、终端设备及存储介质 | |
CN113536308B (zh) | 软件基因视角下多粒度信息融合的二进制代码溯源方法 | |
CN115098857A (zh) | 一种可视化恶意软件的分类方法及装置 | |
CN114282258A (zh) | 截屏数据脱敏方法、装置、计算机设备及存储介质 | |
CN108229168B (zh) | 一种嵌套类文件的启发式检测方法、系统及存储介质 | |
CN112464237B (zh) | 一种静态代码安全诊断方法及装置 | |
CN113626810A (zh) | 基于敏感子图的安卓恶意软件检测方法及系统 | |
CN113190847A (zh) | 一种脚本文件的混淆检测方法、装置、设备及存储介质 | |
CN115688107B (zh) | 一种涉诈app检测系统和方法 | |
CN111832610A (zh) | 一种3d打印组织预测的方法、系统、介质以及终端设备 | |
CN109660676B (zh) | 异常对象的识别方法、装置及设备 | |
CN117972699A (zh) | 一种基于软件基因的第三方开源组件风险分析方法及系统 | |
CN114579965A (zh) | 一种恶意代码的检测方法、装置及计算机可读存储介质 | |
CN113836297A (zh) | 文本情感分析模型的训练方法及装置 |
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 |