掌桥专利:专业的专利平台
掌桥专利
首页

软件识别方法、装置、计算机可读存储介质及电子设备

文献发布时间:2024-04-18 19:52:40


软件识别方法、装置、计算机可读存储介质及电子设备

技术领域

本发明涉及互联网领域,具体而言,涉及一种软件识别方法、装置、计算机可读存储介质及电子设备。

背景技术

随着网络的发展,计算机恶意软件泛滥的问题也日益严重,对个人、企业乃至国家安全造成了巨大的威胁。

当前恶意软件数量爆发式增长,传统的恶意软件分类技术很难满足新的恶意软件分类需求。在相关技术中,传统的恶意样本分类依赖于软件的静态特征,其通过利用安全研究人员人工分析恶意样本后总结出的特征码(如:特定字节)和特征规则进行分类。但是恶意代码的编写者也会利用“变形”,“加壳”,“多态”,“混淆”等技术来隐藏恶意样本中的研究人员已经掌握的特征码,企图逃避安全软件或安全分析人员的检测与分析,从而造成依赖静态特征的恶意软件识别方式的识别准确度低的问题。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种软件识别方法、装置、计算机可读存储介质及电子设备,以至少解决相关技术中对恶意软件的识别准确度低的技术问题。

根据本发明实施例的一个方面,提供了一种软件识别方法,包括:获取目标软件的可执行文件;对可执行文件的文件内容进行识别,得到可执行文件的至少一个第一特征;执行可执行文件,并基于可执行文件的执行过程提取出可执行文件的至少一个第二特征;基于可执行文件的至少一个第一特征和至少一个第二特征,识别目标软件的目标异常类型。

进一步地,软件识别方法还包括:基于预设的第一映射关系,将每个第一特征与目标信息中的攻击策略以及攻击操作进行匹配,得到每个第一特征的匹配结果,其中,目标信息由多个攻击策略以及每个攻击策略所对应的至少一个攻击操作组成;基于预设的第二映射关系和目标信息,将每个第二特征与目标信息中的攻击策略以及攻击操作进行匹配,得到每个第二特征的匹配结果;基于每个第一特征的匹配结果以及每个第二特征的匹配结果,识别目标软件的目标异常类型。

进一步地,软件识别方法还包括:基于每个第一特征的匹配结果以及每个第二特征的匹配结果,构建第一特征矩阵;获取多个异常类型中每个异常类型匹配的第二特征矩阵;计算第一特征矩阵与每个第二特征矩阵之间的相似度;基于第一特征矩阵与每个第二特征矩阵之间的相似度,识别目标软件的目标异常类型。

进一步地,软件识别方法还包括:获取预设的零矩阵,其中,零矩阵的不同列表征不同的攻击策略,零矩阵的同一列中的不同行表征攻击策略所对应的不同攻击操作;基于每个第一特征的匹配结果,对零矩阵中的元素进行赋值,得到第一初始特征矩阵;基于每个第二特征的匹配结果,对零矩阵中的元素进行赋值,得到第二初始特征矩阵;基于第一初始特征矩阵和第二初始特征矩阵,确定第一特征矩阵。

进一步地,软件识别方法还包括:获取与第一初始特征矩阵对应的第一权重矩阵,并获取与第二初始特征矩阵对应的第二权重矩阵,其中,第一权重矩阵表征第一初始特征矩阵对识别目标异常类型的影响程度,第二权重矩阵表征第二初始特征矩阵对识别目标异常类型的影响程度;计算第一权重矩阵和第一初始特征矩阵的乘积,得到第三初始特征矩阵;计算第二权重矩阵和第二初始特征矩阵的乘积,得到第四初始特征矩阵;将第三初始特征矩阵和第四初始特征矩阵相加,得到第一特征矩阵。

进一步地,软件识别方法还包括:将第一特征矩阵与每个第二特征矩阵之间的相似度和预设阈值进行比较,得到每个第二特征矩阵的比较结果;基于每个第二特征矩阵的比较结果,确定多个第二特征矩阵中是否存在目标特征矩阵;若不存在目标特征矩阵,则确定目标软件的目标异常类型为无异常;若存在目标特征矩阵,则确定目标特征矩阵匹配的异常类型为目标异常类型。

进一步地,软件识别方法还包括:将第一特征矩阵与每个第二特征矩阵之间的相似度和预设阈值进行比较,得到每个第二特征矩阵的比较结果;基于每个第二特征矩阵的比较结果,确定多个第二特征矩阵中是否存在目标特征矩阵;若不存在目标特征矩阵,则确定目标软件的目标异常类型为无异常;若存在目标特征矩阵,则确定目标特征矩阵匹配的异常类型为目标异常类型。

根据本发明实施例的另一方面,还提供了一种软件识别装置,包括:获取模块,用于获取目标软件的可执行文件;第一识别模块,用于对可执行文件的文件内容进行识别,得到可执行文件的至少一个第一特征;提取模块,用于执行可执行文件,并基于可执行文件的执行过程提取出可执行文件的至少一个第二特征;第二识别模块,用于基于可执行文件的至少一个第一特征和至少一个第二特征,识别目标软件的目标异常类型。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的软件识别方法。

根据本发明实施例的另一方面,还提供了一种电子设备,电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的软件识别方法。

在本发明实施例中,采用结合可执行文件的静态特征和动态特征确定目标软件的异常类型的方式,通过获取目标软件的可执行文件,然后对可执行文件的文件内容进行识别,得到可执行文件的至少一个第一特征,接着执行可执行文件,并基于可执行文件的执行过程提取出可执行文件的至少一个第二特征,从而基于可执行文件的至少一个第一特征和至少一个第二特征,识别目标软件的目标异常类型。

在上述过程中,通过对可执行文件的文件内容进行识别,实现了对可执行文件中静态特征的有效提取,通过执行可执行文件,根据可执行的文件执行过程进行特征提取,实现了对可执行文件的文件内容中所无法显现的动态特征的有效提取,进一步地,基于可执行文件的至少一个第一特征和至少一个第二特征对目标软件的目标异常类型进行识别,实现了结合可执行文件的静态特征和动态特征分析目标软件的异常类型,从而有效提高了对恶意软件的识别准确度。

由此可见,本申请所提供的方案达到了结合可执行文件的静态特征和动态特征确定目标软件的异常类型的目的,从而实现了提高对恶意软件的识别准确度的技术效果,进而解决了相关技术中对恶意软件的识别准确度低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的软件识别方法的示意图;

图2是根据本发明实施例的一种可选的识别系统的工作示意图;

图3是根据本发明实施例的一种可选的软件识别方法的流程图;

图4是根据本发明实施例的一种可选的软件识别装置的示意图;

图5是根据本发明实施例的一种可选的电子设备的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种软件识别方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种可选的软件识别方法的示意图,如图1所示,该方法包括如下步骤:

步骤S101,获取目标软件的可执行文件。

可选的,可以通过电子设备、应用系统、服务器等装置获取目标软件的可执行文件,图2是根据本发明实施例的一种可选的识别系统的工作示意图,如图2所示,识别系统包括静态特征映射模块、动态特征映射模块、向量生成模块以及特征对比模块,在本实施例中,通过前述的识别系统获取目标软件的可执行文件,其中,目标软件对应的可执行文件中包括目标软件运行所需的相关程序。

步骤S102,对可执行文件的文件内容进行识别,得到可执行文件的至少一个第一特征。

其中,第一特征为基于可执行文件的文件内容能够直接获取的特征,相当于可执行文件的静态特征,第一特征可以是可执行文件运行时所需的函数、可执行文件中的特征字节等内容。

需要说明的是,通过对可执行文件的文件内容进行识别,实现了对可执行文件中静态特征的有效提取。

步骤S103,执行可执行文件,并基于可执行文件的执行过程提取出可执行文件的至少一个第二特征。

其中,第二特征为基于可执行文件的文件内容无法直接获取的特征,其需要通过对可执行文件的执行过程进行提取得到,相当于可执行文件的动态特征,第二特征可以是可执行文件执行时所表现出的行为等。可选的,识别系统可以对可执行文件的执行过程进行监测,得到监测数据,并结合监测数据和可执行文件的执行结果进行分析,从而提取出第二特征。

需要说明的是,通过执行可执行文件,根据可执行的文件执行过程进行特征提取,实现了对可执行文件的文件内容中所无法显现的动态特征的有效提取。

步骤S104,基于可执行文件的至少一个第一特征和至少一个第二特征,识别目标软件的目标异常类型。

在步骤S104中,如图2所示,识别系统可以将可执行文件的至少一个第一特征和至少一个第二特征与已知的异常类型所匹配的特征集合进行相似度计算,从而基于该相似度结果识别出目标软件的目标异常类型,可选的,识别系统也可以先将可执行文件的至少一个第一特征和至少一个第二特征与攻击策略和攻击手段进行映射,然后将映射结果与已知的异常类型所匹配的映射结果进行相似度计算,从而基于该相似度结果识别出目标软件的目标异常类型,其中,目标异常类型可以为无异常以及多个表征存在异常的异常类型中的至少之一。

需要说明的是,通过基于可执行文件的至少一个第一特征和至少一个第二特征,对目标软件的目标异常类型进行识别,实现了结合可执行文件的静态特征和动态特征对目标软件进行分析,从而有效提高了软件识别的准确度。

基于上述步骤S101至步骤S104所限定的方案,可以获知,在本发明实施例中,采用结合可执行文件的静态特征和动态特征确定目标软件的异常类型的方式,通过获取目标软件的可执行文件,然后对可执行文件的文件内容进行识别,得到可执行文件的至少一个第一特征,接着执行可执行文件,并基于可执行文件的执行过程提取出可执行文件的至少一个第二特征,从而基于可执行文件的至少一个第一特征和至少一个第二特征,识别目标软件的目标异常类型。

容易注意到的是,在上述过程中,通过对可执行文件的文件内容进行识别,实现了对可执行文件中静态特征的有效提取,通过执行可执行文件,根据可执行的文件执行过程进行特征提取,实现了对可执行文件的文件内容中所无法显现的动态特征的有效提取,进一步地,基于可执行文件的至少一个第一特征和至少一个第二特征对目标软件的目标异常类型进行识别,实现了结合可执行文件的静态特征和动态特征分析目标软件的异常类型,从而有效提高了对恶意软件的识别准确度。

由此可见,本申请所提供的方案达到了结合可执行文件的静态特征和动态特征确定目标软件的异常类型的目的,从而实现了提高对恶意软件的识别准确度的技术效果,进而解决了相关技术中对恶意软件的识别准确度低的技术问题。

在一种可选的实施例中,在基于可执行文件的至少一个第一特征和至少一个第二特征,识别目标软件的目标异常类型的过程中,识别系统可以基于预设的第一映射关系,将每个第一特征与目标信息中的攻击策略以及攻击操作进行匹配,得到每个第一特征的匹配结果,然后基于预设的第二映射关系和目标信息,将每个第二特征与目标信息中的攻击策略以及攻击操作进行匹配,得到每个第二特征的匹配结果,从而基于每个第一特征的匹配结果以及每个第二特征的匹配结果,识别目标软件的目标异常类型。其中,目标信息由多个攻击策略以及每个攻击策略所对应的至少一个攻击操作组成。

可选的,在本实施例中,通过第一类知识库存储预设的第一映射关系。其中,第一映射关系为静态特征(也即第一特征)到ATT&CK(对抗性战术,技术以及公共知识库,Adversarial Tactics,Techniques,and Common Knowledge)矩阵的映射关系,ATT&CK矩阵是一个基于现实世界所观察到的攻击向量所组成的一个公开的对抗性战术和技术知识库,ATT&CK矩阵即为前述的目标信息,其由多个攻击策略以及每个攻击策略所对应的至少一个攻击操作组成,其中,攻击策略表征攻击者用于实现攻击目的的策略,攻击操作表征攻击者用于实现攻击策略所采用的操作。

进一步地,第一映射关系中的单个元素由一个三元组组成,例如:某一个三元组为(UPX Packing,Defense Evasion,Obfuscated Files or Information),其中UPX Packing(UPX加壳)是一种静态特征,Defense Evasion(防御绕过)为该特征在ATT&CK矩阵中匹配的攻击策略,Obfuscated Files or Information(混淆文件或信息)为该特征在ATT&CK矩阵中的匹配的攻击操作。

进一步地,图3是根据本发明实施例的一种可选的软件识别方法的流程图,如图3所示,静态特征映射模块可以基于第一类知识库中第一映射关系的元素内容,将每个第一特征与目标信息中的攻击策略以及攻击操作进行匹配,得到每个第一特征的匹配结果,其中,对于每个第一特征,其匹配结果为与第一特征所匹配的攻击策略以及攻击操作(也即匹配结果为第一映射关系中与该第一特征匹配的三元组元素),或者,匹配结果为没有与第一特征匹配的攻击策略以及攻击操作。

可选的,在本实施例中,通过第二类知识库存储预设的第二映射关系。其中,第二映射关系为动态特征(也即第二特征)到ATT&CK矩阵的映射关系,第二映射关系中的单个元素由一个三元组组成,例如:(Query Registry,Discovery,Query Registry),其中QueryRegistry(请求注册表)是一种动态特征,Discovery(发现)为该特征在ATT&CK矩阵中匹配的攻击策略,Query Registry(查询注册表)为该特征在ATT&CK矩阵中的匹配的攻击操作。且需要说明的是,在本实施例中,第一映射关系与第二映射关系所采用的ATT&CK矩阵相同。

进一步地,如图3所示,动态特征映射模块可以基于第二映射关系中的元素内容,将每个第二特征与目标信息中的攻击策略以及攻击操作进行匹配,得到每个第二特征的匹配结果,其中,对于每个第二特征,其匹配结果为与第二特征所匹配的攻击策略以及攻击操作(也即匹配结果为第二映射关系中与该第二特征匹配的三元组元素),或者,匹配结果为没有与第一特征匹配的攻击策略以及攻击操作。

更进一步地,识别系统可以基于每个第一特征的匹配结果以及每个第二特征的匹配结果,识别目标软件的目标异常类型。

需要说明的是,通过将每个第一特征、第二特征分别与目标信息中的攻击策略以及攻击操作进行匹配,实现了对第一特征和第二特征关联的攻击手段的确定,从而能够更进一步地提高识别准确度。

在一种可选的实施例中,在基于每个第一特征的匹配结果以及每个第二特征的匹配结果,识别目标软件的目标异常类型的过程中,识别系统可以基于每个第一特征的匹配结果以及每个第二特征的匹配结果,构建第一特征矩阵,然后获取多个异常类型中每个异常类型匹配的第二特征矩阵,接着计算第一特征矩阵与每个第二特征矩阵之间的相似度,从而基于第一特征矩阵与每个第二特征矩阵之间的相似度,识别目标软件的目标异常类型。

可选的,如图3所示,静态特征提取模块可以基于每个第一特征的匹配结果,构建第一初始特征矩阵,以通过第一初始特征矩阵表征所有第一特征的匹配结果,动态特征提取模块可以基于每个第二特征的匹配结果,构建第二初始特征矩阵,以通过第一初始特征矩阵表征所有第二特征的匹配结果。

进一步地,如图3所示,向量生成模块可以将第一初始特征矩阵与第二初始特征矩阵相结合,得到第一特征矩阵,然后获取已知异常类型的可执行文件的特征矩阵,并确定已知异常类型的可执行文件匹配的特征矩阵为该异常类型匹配的第二特征矩阵。

更进一步地,如图2、图3所示,特征对比模块可以计算第一特征矩阵与每个第二特征矩阵之间的相似度,然后将相似度最高且相似度大于预设阈值的第二特征矩阵的异常类型确定为目标异常类型,可选的,识别系统也可以通过结合其它信息,从相似度大于预设阈值的第二特征矩阵的异常类型中选出一个异常类型确定为目标异常类型。

需要说明的是,通过基于各个第一特征、第二特征的匹配结果,构建第一特征矩阵,然后利用计算相似度的方式识别目标软件的目标异常类型,实现了对目标异常类型更有效的识别。

在一种可选的实施例中,在基于每个第一特征的匹配结果以及每个第二特征的匹配结果,构建第一特征矩阵的过程中,识别系统可以获取预设的零矩阵,然后基于每个第一特征的匹配结果,对零矩阵中的元素进行赋值,得到第一初始特征矩阵,接着基于每个第二特征的匹配结果,对零矩阵中的元素进行赋值,得到第二初始特征矩阵,从而基于第一初始特征矩阵和第二初始特征矩阵,确定第一特征矩阵。其中,零矩阵的不同列表征不同的攻击策略,零矩阵的同一列中的不同行表征攻击策略所对应的不同攻击操作。

可选的,静态特征映射模块可以初始化一个m行n列的零矩阵O

其中,列数n与目标信息中的攻击策略的数量相同,行数m为Max(Count_tenc_i),Count_tenc_i是指第i个攻击策略所对应的攻击操作的数量,即行数m与所有攻击策略中对应的攻击操作最多的攻击策略的攻击操作数量相同。

之后,静态特征映射模块在根据某一个第一特征的匹配结果,确定该第一特征与零矩阵O

进一步地,动态特征映射模块同样可以初始化一个m行n列的零矩阵O

可选的,在动态特征映射模块提取第二特征的过程中,动态特征映射模块可以将可执行文件输入到沙箱中执行,从而通过沙箱获取可执行文件的动态特征。其中,在网络安全中,沙箱指在隔离环境中,用以测试不受信任的文件或应用程序等行为的工具。沙箱是一个虚拟系统程序,允许在隔离环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。其创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。

进一步地,样本向量生成模块可以将第一初始特征矩阵和第二初始特征矩阵进行线性运算,以确定第一特征矩阵。

需要说明的是,通过基于各个第一特征或第二特征的匹配结果对零矩阵的元素进行赋值,实现了对匹配结果的表示形式的有效转换。

在一种可选的实施例中,在基于第一初始特征矩阵和第二初始特征矩阵,确定第一特征矩阵的过程中,识别系统可以获取与第一初始特征矩阵对应的第一权重矩阵,并获取与第二初始特征矩阵对应的第二权重矩阵,然后计算第一权重矩阵和第一初始特征矩阵的乘积,得到第三初始特征矩阵,计算第二权重矩阵和第二初始特征矩阵的乘积,得到第四初始特征矩阵,从而将第三初始特征矩阵和第四初始特征矩阵相加,得到第一特征矩阵。其中,第一权重矩阵表征第一初始特征矩阵对识别目标异常类型的影响程度,第二权重矩阵表征第二初始特征矩阵对识别目标异常类型的影响程度。

可选的,如图3所示,向量生成模块可以从预设的存储区域中获取与第一初始特征矩阵对应的第一权重矩阵,并获取与第二初始特征矩阵对应的第二权重矩阵。然后基于如下公式计算第一特征矩阵:

MA=αM

其中,MA表示第一特征矩阵,α表示第一权重矩阵,M

需要说明的是,通过在第一初始特征矩阵和第二初始特征矩阵的基础上,结合权重矩阵计算得到第一特征矩阵,实现了对第一特征矩阵更准确的计算。

在一种可选的实施例中,在基于第一特征矩阵与每个第二特征矩阵之间的相似度,识别目标软件的目标异常类型的实施例中,可以将第一特征矩阵与每个第二特征矩阵之间的相似度和预设阈值进行比较,得到每个第二特征矩阵的比较结果,然后基于每个第二特征矩阵的比较结果,确定多个第二特征矩阵中是否存在目标特征矩阵,从而若不存在目标特征矩阵,则确定目标软件的目标异常类型为无异常,若存在目标特征矩阵,则确定目标特征矩阵匹配的异常类型为目标异常类型。

可选的,在本实施例中,通过第三类知识库存储第二特征矩阵以及第二特征矩阵与异常类型的映射关系。如图3所示,特征比对模块可以从第三类知识库中获取第二特征矩阵,并计算第一特征矩阵与每个第二特征矩阵之间的相似度,其中,第一特征矩阵与每个第二特征矩阵具有相同的维度,且每个维度所代表的含义相同。具体地,特征比对模块可以基于如下公式计算第一特征矩阵与每个第二特征矩阵之间的余弦相似度:

其中,S表示第一特征矩阵与第i个第二特征矩阵之间的余弦相似度,S∈[-1,1],T

进一步地,如图3所示,特征比对模块将可以第一特征矩阵与每个第二特征矩阵之间的相似度和预设阈值进行比较,得到每个第二特征矩阵的比较结果,然后基于每个第二特征矩阵的比较结果,确定多个第二特征矩阵中是否存在目标特征矩阵,从而在不存在目标特征矩阵的情况下,确定目标软件的目标异常类型为无异常,在存在目标特征矩阵的情况下,确定目标特征矩阵匹配的异常类型为目标异常类型。

需要说明的是,通过根据第一特征矩阵与每个第二特征矩阵之间的相似度和预设阈值的比较结果,确定目标特征矩阵的目标异常类型,避免了直接将相似度最高的第二特征矩阵的异常类型确定为目标异常类型造成的对无异常的软件的错误判断。

在一种可选的实施例中,在基于每个第二特征矩阵的比较结果,确定多个第二特征矩阵中是否存在目标特征矩阵的过程中,识别系统可以基于每个第二特征矩阵的比较结果,确定多个第二特征矩阵中是否存在至少一个初始目标特征矩阵,从而若存在至少一个初始目标特征矩阵,则从至少一个初始目标特征矩阵中筛选出目标特征矩阵,若不存在至少一个初始目标特征矩阵,则确定不存在目标特征矩阵。其中,第一特征矩阵与至少一个初始目标特征矩阵之间的相似度大于预设阈值,目标特征矩阵对应的相似度大于或等于目标特征矩阵以外的初始目标特征矩阵对应的相似度。

可选的,特征对比模块可以确定多个第二特征矩阵中是否存在相似度大于预设阈值的第二特征矩阵,若存在,则将这些相似度大于预设阈值的第二特征矩阵确定为初始目标特征矩阵,并将初始目标特征矩阵中对应的相似度最高的初始目标特征矩阵确定为目标特征矩阵。反之,若多个第二特征矩阵中不存在相似度大于预设阈值的第二特征矩阵,则确定多个第二特征矩阵中不存在目标特征矩阵,也即目标软件的目标异常类型为无异常。

需要说明的是,通过在满足大于预设阈值的条件下,将相似度最高的初始目标特征矩阵确定为目标特征矩阵,实现了对目标特征矩阵的准确确定。

由此可见,本申请解决了传统静态规则在识别恶意软件类型时的不足,通过引入ATT&CK矩阵以描述恶意软件的静态特征与动态特征,有利于在恶意软件数量巨大的场景下,高效且自动化的确定恶意软件所属类型。本申请所提供的方案达到了结合可执行文件的静态特征和动态特征确定目标软件的异常类型的目的,从而实现了提高对恶意软件的识别准确度的技术效果,进而解决了相关技术中对恶意软件的识别准确度低的技术问题。

实施例2

根据本发明实施例,提供了一种软件识别装置的实施例,其中,图4是根据本发明实施例的一种可选的软件识别装置的示意图,如图4所示,该装置包括:

获取模块401,用于获取目标软件的可执行文件。

其中,目标软件对应的可执行文件中包括目标软件运行所需的相关程序。

第一识别模块402,用于对可执行文件的文件内容进行识别,得到可执行文件的至少一个第一特征。

其中,第一特征为基于可执行文件的文件内容能够直接获取的特征,相当于可执行文件的静态特征,第一特征可以是可执行文件运行时所需的函数、可执行文件中的特征字节等内容。

需要说明的是,通过对可执行文件的文件内容进行识别,实现了对可执行文件中静态特征的有效提取。

提取模块403,用于执行可执行文件,并基于可执行文件的执行过程提取出可执行文件的至少一个第二特征。

其中,第二特征为基于可执行文件的文件内容无法直接获取的特征,其需要通过对可执行文件的执行过程进行提取得到,相当于可执行文件的动态特征,第二特征可以是可执行文件执行时所表现出的行为等。可选的,提取模块可以对可执行文件的执行过程进行监测,得到监测数据,并结合监测数据和可执行文件的执行结果进行分析,从而提取出第二特征。

需要说明的是,通过执行可执行文件,根据可执行的文件执行过程进行特征提取,实现了对可执行文件的文件内容中所无法显现的动态特征的有效提取。

第二识别模块404,用于基于可执行文件的至少一个第一特征和至少一个第二特征,识别目标软件的目标异常类型。

可选的,第二识别模块可以将可执行文件的至少一个第一特征和至少一个第二特征与已知的异常类型所匹配的特征集合进行相似度计算,从而基于该相似度结果识别出目标软件的目标异常类型,可选的,第二识别模块也可以先将可执行文件的至少一个第一特征和至少一个第二特征与攻击策略和攻击手段进行映射,然后将映射结果与已知的异常类型所匹配的映射结果进行相似度计算,从而基于该相似度结果识别出目标软件的目标异常类型,其中,目标异常类型可以为无异常以及多个表征存在异常的异常类型中的至少之一。

需要说明的是,通过基于可执行文件的至少一个第一特征和至少一个第二特征,对目标软件的目标异常类型进行识别,实现了结合可执行文件的静态特征和动态特征对目标软件进行分析,从而有效提高了软件识别的准确度。

容易注意到的是,在上述过程中,通过对可执行文件的文件内容进行识别,实现了对可执行文件中静态特征的有效提取,通过执行可执行文件,根据可执行的文件执行过程进行特征提取,实现了对可执行文件的文件内容中所无法显现的动态特征的有效提取,进一步地,基于可执行文件的至少一个第一特征和至少一个第二特征对目标软件的目标异常类型进行识别,实现了结合可执行文件的静态特征和动态特征分析目标软件的异常类型,从而有效提高了对恶意软件的识别准确度。

由此可见,本申请所提供的方案达到了结合可执行文件的静态特征和动态特征确定目标软件的异常类型的目的,从而实现了提高对恶意软件的识别准确度的技术效果,进而解决了相关技术中对恶意软件的识别准确度低的技术问题。

需要说明的是,上述获取模块401、第一识别模块402、提取模块403以及第二识别模块404对应于上述实施例中的步骤S101至步骤S104,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。

可选的,第一识别模块还包括:第一匹配单元,用于基于预设的第一映射关系,将每个第一特征与目标信息中的攻击策略以及攻击操作进行匹配,得到每个第一特征的匹配结果,其中,目标信息由多个攻击策略以及每个攻击策略所对应的至少一个攻击操作组成;第二匹配单元,用于基于预设的第二映射关系和目标信息,将每个第二特征与目标信息中的攻击策略以及攻击操作进行匹配,得到每个第二特征的匹配结果;识别单元,用于基于每个第一特征的匹配结果以及每个第二特征的匹配结果,识别目标软件的目标异常类型。

可选的,在本实施例中,通过第一类知识库存储预设的第一映射关系。其中,第一映射关系为静态特征(也即第一特征)到ATT&CK(对抗性战术,技术以及公共知识库,Adversarial Tactics,Techniques,and Common Knowledge)矩阵的映射关系,ATT&CK矩阵是一个基于现实世界所观察到的攻击向量所组成的一个公开的对抗性战术和技术知识库,ATT&CK矩阵即为前述的目标信息,其由多个攻击策略以及每个攻击策略所对应的至少一个攻击操作组成,其中,攻击策略表征攻击者用于实现攻击目的的策略,攻击操作表征攻击者用于实现攻击策略所采用的操作。

进一步地,第一映射关系中的单个元素由一个三元组组成,例如:某一个三元组为(UPX Packing,Defense Evasion,Obfuscated Files or Information),其中UPX Packing(UPX加壳)是一种静态特征,Defense Evasion(防御绕过)为该特征在ATT&CK矩阵中匹配的攻击策略,Obfuscated Files or Information(混淆文件或信息)为该特征在ATT&CK矩阵中的匹配的攻击操作。

进一步地,如图2所示,第一匹配单元可以基于第一类知识库中第一映射关系的元素内容,将每个第一特征与目标信息中的攻击策略以及攻击操作进行匹配,得到每个第一特征的匹配结果,其中,对于每个第一特征,其匹配结果为与第一特征所匹配的攻击策略以及攻击操作(也即匹配结果为第一映射关系中与该第一特征匹配的三元组元素),或者,匹配结果为没有与第一特征匹配的攻击策略以及攻击操作。

可选的,在本实施例中,通过第二类知识库存储预设的第二映射关系。其中,第二映射关系为动态特征(也即第二特征)到ATT&CK矩阵的映射关系,第二映射关系中的单个元素由一个三元组组成,例如:(Query Registry,Discovery,Query Registry),其中QueryRegistry(请求注册表)是一种动态特征,Discovery(发现)为该特征在ATT&CK矩阵中匹配的攻击策略,Query Registry(查询注册表)为该特征在ATT&CK矩阵中的匹配的攻击操作。且需要说明的是,在本实施例中,第一映射关系与第二映射关系所采用的ATT&CK矩阵相同。

进一步地,如图2所示,第二匹配单元化可以基于第二映射关系中的元素内容,将每个第二特征与目标信息中的攻击策略以及攻击操作进行匹配,得到每个第二特征的匹配结果,其中,对于每个第二特征,其匹配结果为与第二特征所匹配的攻击策略以及攻击操作(也即匹配结果为第二映射关系中与该第二特征匹配的三元组元素),或者,匹配结果为没有与第一特征匹配的攻击策略以及攻击操作。

更进一步地,识别单元可以基于每个第一特征的匹配结果以及每个第二特征的匹配结果,识别目标软件的目标异常类型。

需要说明的是,通过将每个第一特征、第二特征分别与目标信息中的攻击策略以及攻击操作进行匹配,实现了对第一特征和第二特征关联的攻击手段的确定,从而能够更进一步地提高识别准确度。

可选的,识别单元还包括:构建子模块,用于基于每个第一特征的匹配结果以及每个第二特征的匹配结果,构建第一特征矩阵;获取子模块,用于获取多个异常类型中每个异常类型匹配的第二特征矩阵;计算子模块,用于计算第一特征矩阵与每个第二特征矩阵之间的相似度;识别子模块,用于基于第一特征矩阵与每个第二特征矩阵之间的相似度,识别目标软件的目标异常类型。

可选的,如图3所示,构建子模块可以基于每个第一特征的匹配结果,构建第一初始特征矩阵,以通过第一初始特征矩阵表征所有第一特征的匹配结果,构建子模块可以基于每个第二特征的匹配结果,构建第二初始特征矩阵,以通过第一初始特征矩阵表征所有第二特征的匹配结果。

进一步地,如图3所示,构建子模块可以将第一初始特征矩阵与第二初始特征矩阵相结合,得到第一特征矩阵,然后获取子模块获取已知异常类型的可执行文件的特征矩阵,并确定已知异常类型的可执行文件匹配的特征矩阵为该异常类型匹配的第二特征矩阵。

更进一步地,如图3所示,计算子模块可以计算第一特征矩阵与每个第二特征矩阵之间的相似度,然后由识别子模块将相似度最高且相似度大于预设阈值的第二特征矩阵的异常类型确定为目标异常类型,可选的,识别子模块也可以通过结合其它信息,从相似度大于预设阈值的第二特征矩阵的异常类型中选出一个异常类型确定为目标异常类型。

需要说明的是,通过基于各个第一特征、第二特征的匹配结果,构建第一特征矩阵,然后利用计算相似度的方式识别目标软件的目标异常类型,实现了对目标异常类型更有效的识别。

可选的,构建子模块还包括:第一获取子单元,用于获取预设的零矩阵,其中,零矩阵的不同列表征不同的攻击策略,零矩阵的同一列中的不同行表征攻击策略所对应的不同攻击操作;第一处理子单元,用于基于每个第一特征的匹配结果,对零矩阵中的元素进行赋值,得到第一初始特征矩阵;第二处理子单元,用于基于每个第二特征的匹配结果,对零矩阵中的元素进行赋值,得到第二初始特征矩阵;第一确定子单元,用于基于第一初始特征矩阵和第二初始特征矩阵,确定第一特征矩阵。

可选的,第一获取子单元可以初始化一个m行n列的零矩阵O

其中,列数n与目标信息中的攻击策略的数量相同,行数m为Max(Count_tenc_i),Count_tenc_i是指第i个攻击策略所对应的攻击操作的数量,即行数m与所有攻击策略中对应的攻击操作最多的攻击策略的攻击操作数量相同。

之后,第一处理子单元在根据某一个第一特征的匹配结果,确定该第一特征与零矩阵O

进一步地,第一获取子单元同样可以初始化一个m行n列的零矩阵O

可选的,在提取第二特征的过程中,可以将可执行文件输入到沙箱中执行,从而通过沙箱获取可执行文件的动态特征。其中,在网络安全中,沙箱指在隔离环境中,用以测试不受信任的文件或应用程序等行为的工具。沙箱是一个虚拟系统程序,允许在隔离环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。其创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。

进一步地,第一确定子单元可以将第一初始特征矩阵和第二初始特征矩阵进行线性运算,以确定第一特征矩阵。

需要说明的是,通过基于各个第一特征或第二特征的匹配结果对零矩阵的元素进行赋值,实现了对匹配结果的表示形式的有效转换。

可选的,第一确定子单元还包括:第二获取子单元,用于获取与第一初始特征矩阵对应的第一权重矩阵,并获取与第二初始特征矩阵对应的第二权重矩阵,其中,第一权重矩阵表征第一初始特征矩阵对识别目标异常类型的影响程度,第二权重矩阵表征第二初始特征矩阵对识别目标异常类型的影响程度;第一计算子单元,用于计算第一权重矩阵和第一初始特征矩阵的乘积,得到第三初始特征矩阵;第二计算子单元,用于计算第二权重矩阵和第二初始特征矩阵的乘积,得到第四初始特征矩阵;第三计算子单元,用于将第三初始特征矩阵和第四初始特征矩阵相加,得到第一特征矩阵。

可选的,如图3所示,第一确定子单元可以从预设的存储区域中获取与第一初始特征矩阵对应的第一权重矩阵,并获取与第二初始特征矩阵对应的第二权重矩阵。然后基于如下公式计算第一特征矩阵:

MA=αM

其中,MA表示第一特征矩阵,α表示第一权重矩阵,M

需要说明的是,通过在第一初始特征矩阵和第二初始特征矩阵的基础上,结合权重矩阵计算得到第一特征矩阵,实现了对第一特征矩阵更准确的计算。

可选的,识别子模块还包括:第一比较子单元,用于将第一特征矩阵与每个第二特征矩阵之间的相似度和预设阈值进行比较,得到每个第二特征矩阵的比较结果;第二确定子单元,用于基于每个第二特征矩阵的比较结果,确定多个第二特征矩阵中是否存在目标特征矩阵;第三确定子单元,用于若不存在目标特征矩阵,则确定目标软件的目标异常类型为无异常;第四确定子单元,用于若存在目标特征矩阵,则确定目标特征矩阵匹配的异常类型为目标异常类型。

可选的,在本实施例中,通过第三类知识库存储第二特征矩阵以及第二特征矩阵与异常类型的映射关系。如图3所示,识别子模块可以从第三类知识库中获取第二特征矩阵,并计算第一特征矩阵与每个第二特征矩阵之间的相似度,其中,第一特征矩阵与每个第二特征矩阵具有相同的维度,且每个维度所代表的含义相同。具体地,特征比对模块可以基于如下公式计算第一特征矩阵与每个第二特征矩阵之间的余弦相似度:

其中,S表示第一特征矩阵与第i个第二特征矩阵之间的余弦相似度,S∈[-1,1],T

进一步地,如图3所示,识别子模块将可以第一特征矩阵与每个第二特征矩阵之间的相似度和预设阈值进行比较,得到每个第二特征矩阵的比较结果,然后基于每个第二特征矩阵的比较结果,确定多个第二特征矩阵中是否存在目标特征矩阵,从而在不存在目标特征矩阵的情况下,确定目标软件的目标异常类型为无异常,在存在目标特征矩阵的情况下,确定目标特征矩阵匹配的异常类型为目标异常类型。

需要说明的是,通过根据第一特征矩阵与每个第二特征矩阵之间的相似度和预设阈值的比较结果,确定目标特征矩阵的目标异常类型,避免了直接将相似度最高的第二特征矩阵的异常类型确定为目标异常类型造成的对无异常的软件的错误判断。

可选的,第二确定子单元还包括:第二比较子单元,用于基于每个第二特征矩阵的比较结果,确定多个第二特征矩阵中是否存在至少一个初始目标特征矩阵,其中,第一特征矩阵与至少一个初始目标特征矩阵之间的相似度大于预设阈值;筛选子单元,用于若存在至少一个初始目标特征矩阵,则从至少一个初始目标特征矩阵中筛选出目标特征矩阵,其中,目标特征矩阵对应的相似度大于或等于目标特征矩阵以外的初始目标特征矩阵对应的相似度;第五确定子单元,用于若不存在至少一个初始目标特征矩阵,则确定不存在目标特征矩阵。

可选的,第二确定子单元可以确定多个第二特征矩阵中是否存在相似度大于预设阈值的第二特征矩阵,若存在,则将这些相似度大于预设阈值的第二特征矩阵确定为初始目标特征矩阵,并将初始目标特征矩阵中对应的相似度最高的初始目标特征矩阵确定为目标特征矩阵。反之,若多个第二特征矩阵中不存在相似度大于预设阈值的第二特征矩阵,则确定多个第二特征矩阵中不存在目标特征矩阵,也即目标软件的目标异常类型为无异常。

需要说明的是,通过在满足大于预设阈值的条件下,将相似度最高的初始目标特征矩阵确定为目标特征矩阵,实现了对目标特征矩阵的准确确定。

由此可见,本申请解决了传统静态规则在识别恶意软件类型时的不足,通过引入ATT&CK矩阵以描述恶意软件的静态特征与动态特征,有利于在恶意软件数量巨大的场景下,高效且自动化的确定恶意软件所属类型。本申请所提供的方案达到了结合可执行文件的静态特征和动态特征确定目标软件的异常类型的目的,从而实现了提高对恶意软件的识别准确度的技术效果,进而解决了相关技术中对恶意软件的识别准确度低的技术问题。

实施例3

根据本发明实施例的另一方面,还提供了计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的软件识别方法。

实施例4

根据本发明实施例的另一方面,还提供了一种电子设备,其中,图5是根据本发明实施例的一种可选的电子设备的示意图,如图5所示,电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的软件识别方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术分类

06120116335799