【技术实现步骤摘要】
确定目标程序中恶意功能模块及检测方法、装置及设备
[0001]本说明书涉及程序安全
,尤其涉及确定目标程序中恶意功能模块及检测方法、装置及设备。
技术介绍
[0002]随着互联网技术的发展,恶意程序呈现出数量巨大、高速增长、变种技术复杂等诸多特点,对信息安全和隐私产生严重危害。例如,对于云服务厂商,用户规模在逐渐上升,每时每刻都要面对数以万计的黑客攻击。
[0003]一些检测恶意程序的方案,是对已知的恶意程序的恶意代码建立描述其逻辑的规则并存储;检测时将待测软件的代码与已存储的规则进行匹配,确定待测软件是否为恶意软件。建立规则和对待测软件的检测可以利用YARA工具等完成。相关技术中,程序的源代码的信息量巨大,而执行恶意操作的代码往往是其中很少的部分代码,需要分析人员耗费较大的精力,从恶意程序中分析查找出恶意代码。
技术实现思路
[0004]为克服相关技术中存在的问题,本说明书实施例提供了确定目标程序中恶意功能模块及检测方法、装置及设备。
[0005]根据本说明书实施例的第一方面,提供一种确定目标程序中恶意功能模块的方法,所述方法包括:
[0006]获取目标程序,对所述目标程序划分出多个功能模块,每个功能模块包括至少一个函数;
[0007]提取每个所述函数的原始特征,将每个所述函数的原始特征输入至训练好的自编码模型,获取所述自编码模型输出的每个函数的重构特征;其中,所述自编码模型是利用多个正常程序训练的,所述自编码模型在训练时的输入是所述正常程序的函数的原始特征;< ...
【技术保护点】
【技术特征摘要】
1.一种确定目标程序中恶意功能模块的方法,所述方法包括:获取目标程序,对所述目标程序划分出多个功能模块,每个功能模块包括至少一个函数;提取每个所述函数的原始特征,将每个所述函数的原始特征输入至训练好的自编码模型,获取所述自编码模型输出的每个函数的重构特征;其中,所述自编码模型是利用多个正常程序训练的,所述自编码模型在训练时的输入是所述正常程序的函数的特征;获取每个所述函数的原始特征与重构特征的特征相似度;根据每个所述功能模块包括的各个所述函数的特征相似度,确定每个所述功能模块是否为恶意功能模块。2.根据权利要求1所述的方法,所述对所述目标程序划分出多个功能模块,包括:获取所述目标程序的函数调用图,所述函数调用图包括:用于表示函数的节点、用于表示两个函数之间调用关系的节点的边;根据所述函数调用图中各个节点的边,将所述函数调用图中各个节点聚类为多个类簇,每个类簇对应一个功能模块。3.根据权利要求2所述的方法,所述将所述函数调用图中各个节点聚类为多个类簇,包括:利用聚类算法将所述函数调用图中各个节点进行多次聚类处理,直至对所述函数调用图划分出的各个类簇中,每个类簇内的各个节点之间的边的数量,大于该类簇内的各个节点与其他类簇的节点的边的数量。4.根据权利要求3所述的方法,所述聚类算法包括社区发现算法,所述利用聚类算法将所述函数调用图中各个节点进行多次聚类处理,直至对所述函数调用图划分出的各个类簇中,每个类簇内的各个节点之间的边的数量,大于该类簇内的各个节点与其他类簇的节点的边的数量,包括:利用社区发现算法将所述函数调用图中各个节点进行多次社区划分,直至对所述函数调用图划分出的各个社区中,每个社区中内部边的权重之和与所述函数调用图中所有边的权重之比,均大于该社区中外部边权重之和与所述函数调用图中所有边权重之比;其中,社区中内部边是指边连接的两个节点均处于该社区中,社区中外部边是指边连接的两个节点中有一个节点未处于该社区中。5.根据权利要求1所述的方法,所述根据每个所述功能模块包括的各个所述函数的特征相似度,确定每个所述功能模块是否为恶意功能模块,包括:根据每个函数的特征相似度,确定每个函数的恶意度;其中,每个函数的特征相似度与该函数的恶意度呈负相关关系;将每个功能模块包括的各个函数的恶意度的均值,确定每个功能模块的恶意度;根据确定出的每个功能模块的恶意度,确定每个所述功能模块是否为恶意功能模块。6.根据权利要求1或5所述的方法,所述根据确定出的每个功能模块的恶意度,确定每个所述功能模块是否为恶意功能模块,包括:从所述目标程序的多个功能模块中确定掩蔽功能模块;将所述目标程序中非掩蔽功能模块的各个函数的特征输入至程序分类模型,获取所述程序分类模型预测所述目标程序为正常程序的置信度;其中,所述程序分类模型预先利用
预设正常样本程序和预设恶意样本程序训练得到;根据...
【专利技术属性】
技术研发人员:黄伟豪,林超阳,闫秋存,相璐,张志宇,孟国柱,陈恺,孟雷,陈新明,张宗明,
申请(专利权)人:阿里云计算有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。