确定目标程序中恶意功能模块及检测方法、装置及设备制造方法及图纸

技术编号:36083367 阅读:9 留言:0更新日期:2022-12-24 10:58
本说明书实施例提供一种确定目标程序中恶意功能模块的方法、装置及设备,所述方法包括:获取目标程序,对所述目标程序划分出多个功能模块,每个功能模块包括至少一个函数;提取每个所述函数的原始特征,将每个所述函数的原始特征输入至训练好的自编码模型,获取所述自编码模型输出的每个函数的重构特征;其中,所述自编码模型利用多个正常程序训练的,所述自编码模型在训练时的输入是所述正常程序的函数的原始特征;获取每个所述函数的原始特征与重构特征的特征相似度;根据每个所述功能模块包括的各个所述函数的特征相似度,确定每个所述功能模块是否为恶意功能模块。所述功能模块是否为恶意功能模块。所述功能模块是否为恶意功能模块。

【技术实现步骤摘要】
确定目标程序中恶意功能模块及检测方法、装置及设备


[0001]本说明书涉及程序安全
,尤其涉及确定目标程序中恶意功能模块及检测方法、装置及设备。

技术介绍

[0002]随着互联网技术的发展,恶意程序呈现出数量巨大、高速增长、变种技术复杂等诸多特点,对信息安全和隐私产生严重危害。例如,对于云服务厂商,用户规模在逐渐上升,每时每刻都要面对数以万计的黑客攻击。
[0003]一些检测恶意程序的方案,是对已知的恶意程序的恶意代码建立描述其逻辑的规则并存储;检测时将待测软件的代码与已存储的规则进行匹配,确定待测软件是否为恶意软件。建立规则和对待测软件的检测可以利用YARA工具等完成。相关技术中,程序的源代码的信息量巨大,而执行恶意操作的代码往往是其中很少的部分代码,需要分析人员耗费较大的精力,从恶意程序中分析查找出恶意代码。

技术实现思路

[0004]为克服相关技术中存在的问题,本说明书实施例提供了确定目标程序中恶意功能模块及检测方法、装置及设备。
[0005]根据本说明书实施例的第一方面,提供一种确定目标程序中恶意功能模块的方法,所述方法包括:
[0006]获取目标程序,对所述目标程序划分出多个功能模块,每个功能模块包括至少一个函数;
[0007]提取每个所述函数的原始特征,将每个所述函数的原始特征输入至训练好的自编码模型,获取所述自编码模型输出的每个函数的重构特征;其中,所述自编码模型是利用多个正常程序训练的,所述自编码模型在训练时的输入是所述正常程序的函数的原始特征;<br/>[0008]获取每个所述函数的原始特征与重构特征的特征相似度;
[0009]根据每个所述功能模块包括的各个所述函数的特征相似度,确定每个所述功能模块是否为恶意功能模块。
[0010]根据本说明书实施例的第二方面,提供一种程序的检测方法,所述方法包括:
[0011]获取待测程序;
[0012]利用预设规则检测所述待测程序是否包含恶意功能模块;其中,所述预设规则是利用前述第一方面所述方法确定出的恶意功能模块的代码生成的。
[0013]根据本说明书实施例的第三方面,提供一种确定恶意程序中恶意功能模块的装置,所述装置包括:
[0014]划分模块,用于:获取目标程序,对所述目标程序划分出多个功能模块,每个功能模块包括至少一个函数;
[0015]特征获取模块,用于:提取每个所述函数的原始特征,将每个所述函数的原始特征
输入至训练好的自编码模型,获取所述自编码模型输出的每个函数的重构特征;其中,所述自编码模型是利用多个正常程序训练的,所述自编码模型在训练时的输入是所述正常程序的函数的原始特征;
[0016]相似度获取模块,用于:获取每个所述函数的原始特征与重构特征的特征相似度;
[0017]恶意确定模块,用于:根据每个所述功能模块包括的各个所述函数的特征相似度,确定每个所述功能模块是否为恶意功能模块。
[0018]根据本说明书实施例的第四方面,提供一种程序检测装置,所述装置包括:
[0019]获取模块,用于:获取待测程序;
[0020]恶意检测模块,用于:利用预设规则检测所述待测程序是否包含恶意功能模块;其中,所述预设规则是利用前述第一方面所述方法实施例中确定出的恶意功能模块的代码生成的。
[0021]根据本说明书实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述第一方面所述方法实施例的步骤。
[0022]根据本说明书实施例的第六方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现前述第一方面所述方法实施例的步骤。
[0023]本说明书的实施例提供的技术方案可以包括以下有益效果:
[0024]本说明书实施例中,设计了以函数为粒度提取特征,可以减少语义信息的丢失;并且,考虑到正常程序数量较多且未包含恶意功能模块,设计了利用正常程序训练自编码模型;若目标程序中恶意函数的特征被输入至模型时,使自编码模型学习到正常函数的信息,自编码模型将难以较好地对输入的恶意函数的特征进行很好的重构,因此,每个所述函数的原始特征与重构特征的特征相似度表征了函数的恶意程度,因此可以利用自编码模型定位出恶意函数,从而确定出恶意的功能模块。本实施例能够准确地定位出目标程序中的恶意功能模块,减少了人力的分析。
[0025]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
[0026]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
[0027]图1A是本说明书根据一示例性实施例示出的一种确定目标程序中恶意功能模块的方法的流程图。
[0028]图1B是本说明书根据一示例性实施例示出的一种网络示意图。
[0029]图1C是本说明书根据一示例性实施例示出的一种自编码模型的示意图。
[0030]图2是本说明书根据一示例性实施例示出的一种程序检测方法的流程图。
[0031]图3是本说明书根据一示例性实施例示出的一种确定目标程序中恶意功能模块的装置所在计算机设备的框图。
[0032]图4是本说明书根据一示例性实施例示出的一种确定目标程序中恶意功能模块的装置的框图。
[0033]图5是本说明书根据一示例性实施例示出的一种程序检测装置的框图。
具体实施方式
[0034]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
[0035]在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0036]应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0037]恶意程序(Malicious Software,Malware),是实施破坏计算机或移动设备操作、收集敏感信息,获取私有计算机系统访问权限本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种确定目标程序中恶意功能模块的方法,所述方法包括:获取目标程序,对所述目标程序划分出多个功能模块,每个功能模块包括至少一个函数;提取每个所述函数的原始特征,将每个所述函数的原始特征输入至训练好的自编码模型,获取所述自编码模型输出的每个函数的重构特征;其中,所述自编码模型是利用多个正常程序训练的,所述自编码模型在训练时的输入是所述正常程序的函数的特征;获取每个所述函数的原始特征与重构特征的特征相似度;根据每个所述功能模块包括的各个所述函数的特征相似度,确定每个所述功能模块是否为恶意功能模块。2.根据权利要求1所述的方法,所述对所述目标程序划分出多个功能模块,包括:获取所述目标程序的函数调用图,所述函数调用图包括:用于表示函数的节点、用于表示两个函数之间调用关系的节点的边;根据所述函数调用图中各个节点的边,将所述函数调用图中各个节点聚类为多个类簇,每个类簇对应一个功能模块。3.根据权利要求2所述的方法,所述将所述函数调用图中各个节点聚类为多个类簇,包括:利用聚类算法将所述函数调用图中各个节点进行多次聚类处理,直至对所述函数调用图划分出的各个类簇中,每个类簇内的各个节点之间的边的数量,大于该类簇内的各个节点与其他类簇的节点的边的数量。4.根据权利要求3所述的方法,所述聚类算法包括社区发现算法,所述利用聚类算法将所述函数调用图中各个节点进行多次聚类处理,直至对所述函数调用图划分出的各个类簇中,每个类簇内的各个节点之间的边的数量,大于该类簇内的各个节点与其他类簇的节点的边的数量,包括:利用社区发现算法将所述函数调用图中各个节点进行多次社区划分,直至对所述函数调用图划分出的各个社区中,每个社区中内部边的权重之和与所述函数调用图中所有边的权重之比,均大于该社区中外部边权重之和与所述函数调用图中所有边权重之比;其中,社区中内部边是指边连接的两个节点均处于该社区中,社区中外部边是指边连接的两个节点中有一个节点未处于该社区中。5.根据权利要求1所述的方法,所述根据每个所述功能模块包括的各个所述函数的特征相似度,确定每个所述功能模块是否为恶意功能模块,包括:根据每个函数的特征相似度,确定每个函数的恶意度;其中,每个函数的特征相似度与该函数的恶意度呈负相关关系;将每个功能模块包括的各个函数的恶意度的均值,确定每个功能模块的恶意度;根据确定出的每个功能模块的恶意度,确定每个所述功能模块是否为恶意功能模块。6.根据权利要求1或5所述的方法,所述根据确定出的每个功能模块的恶意度,确定每个所述功能模块是否为恶意功能模块,包括:从所述目标程序的多个功能模块中确定掩蔽功能模块;将所述目标程序中非掩蔽功能模块的各个函数的特征输入至程序分类模型,获取所述程序分类模型预测所述目标程序为正常程序的置信度;其中,所述程序分类模型预先利用
预设正常样本程序和预设恶意样本程序训练得到;根据...

【专利技术属性】
技术研发人员:黄伟豪林超阳闫秋存相璐张志宇孟国柱陈恺孟雷陈新明张宗明
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1