首页> 中国专利> 一种基于图卷积网络和主题模型的恶意代码分类的方法

一种基于图卷积网络和主题模型的恶意代码分类的方法

摘要

本发明提出一种基于图卷积网络和主题模型的恶意代码同源性方法。本方法可以自动地从恶意代码中提取函数调用图和函数指令分布,使用图卷积网络对函数调用图进行嵌入,使用主题模型对指令分布进行变换和降维。主要包括以下几个步骤:(1) 提取恶意代码的函数调用图;(2) 提取恶意代码的函数指令分布;(3) 选取最佳的主题数量;(4) 将函数指令分布变换为函数主题分布;(5) 将函数主题分布和函数调用图输入到分类模型中,训练模型;(6) 将训练好的模型用于判定对恶意代码的家族分类。

著录项

  • 公开/公告号CN112329013A

    专利类型发明专利

  • 公开/公告日2021-02-05

    原文格式PDF

  • 申请/专利权人 四川大学;

    申请/专利号CN201910715247.4

  • 发明设计人 方勇;刘亮;张磊;刘凯;

    申请日2019-08-05

  • 分类号G06F21/56(20130101);G06K9/62(20060101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构

  • 代理人

  • 地址 610065 四川省成都市武侯区一环路南一段24号

  • 入库时间 2023-06-19 09:47:53

说明书

技术领域

本发明涉及机器学习与网络安全技术领域。

背景技术

近年来,全球网络安全攻防博弈态势日趋严峻,各种利用恶意代码谋取政治、经济等利益的攻击事件层出不穷。当前的恶意代码存在几个特点:

1)恶意代码的数量保持急剧增长的趋势;

2)绝大多数恶意代码属于已知恶意代码家族;

3)大多数同一家族的恶意代码存在某种共性。

根据以上几点可以得出结论,通过提取特征对恶意代码进行家族分类可以实现对绝大多数恶意代码的同源性判定。目前恶意代码的同源性分析技术包括动态分析和静态分析两大类。静态分析技术具有分析速度快,无须运行的优点。目前常用的恶意代码静态特征包括结构特征,指令特征,函数特征和数据特征等几类。函数调用图是常用的结构特征,可以体现出程序的设计特点。但目前传统的函数调用图匹配方法计算复杂度非常高。此外,反汇编指令也是恶意代码同源性分析中常用的特征。但指令的数量较多,存在一些冗余指令。鉴于此种情况,本发明提出一种基于图卷积网络和主题模型的恶意代码同源性分析方法,降低恶意代码函数调用图的匹配复杂度,提高同源性分析效果。

发明内容

本发明提出一种基于图卷积网络和主题模型的恶意代码同源性方法。本方法可以自动地从恶意代码中提取函数调用图和函数指令分布,使用图卷积网络对函数调用图进行嵌入,使用主题模型对指令分布进行变换和降维。本方法通过构建神经网路,实现对恶意代码的家族分类,具体技术方案如下。

提出一种基于图卷积网络和主题模型的恶意代码同源性分析方法,所述方法包括。

A.提取恶意代码的函数调用图,并存储为邻接矩阵,提取恶意代码中每个函数的指令分布。

B.利用图卷积网络实现对函数调用图邻接矩阵的卷积,得到节点嵌入矩阵,通过注意力机制对节点嵌入加权求和得到函数调用图的图嵌入。

C.利用主题模型对恶意代码的指令分布进行变换和降维,得到恶意代码的函数主题分布,使用自适应最大池化得到恶意代码的主题分布。通过比较分类效果选取最佳的主题数量。

D.将图嵌入和恶意代码主题分布相连后作为恶意代码的特征向量,输入到全连接层和Softmax层得到恶意代码家族分类的结果。

附图说明

为了进一步阐述本发明的实现目标、实现方法和特性,将结合附图进行详细描述。

图1是一个展示本发明提出的方法的具体实现的总体流程图。

图2 是一个说明本发明中注意力机制实现的示意图。

图3 是一个说明本发明中自适应最大池化实现的示意图。

具体实施方式

本发明是基于图卷积网络和主题模型对恶意代码进行家族分类,主要针对windows系统下的PE格式的恶意代码。首先提取恶意代码的函数调用图和函数指令分布,然后输入到分类模型进行家族分类。分类模型包括多层图卷积网络,注意力层,主题层,池化层,全连接层和Softmax层。为了进一步阐述本发明的具体实施方式,将结合附图加以详细的说明。本发明提出一种基于图卷积网络和主题模型的恶意代码同源性分析方法,可以降低函数调用图的匹配复杂度。

提取恶意代码的函数调用图:首先遍历恶意代码的所有函数,去除IDA无法解析的函数和孤立的函数。孤立函数是指没有被其他函数调用且没有调用其他函数的一类函数。初始化全为0的邻接矩阵,遍历所有函数的调用函数,并将邻接矩阵对应元素置1。

提取恶意代码的函数指令分布:首先遍历恶意代码的所有函数,获取函数的起止点,获取函数中的每条指令,去除操作数,保留操作码,保存每个函数的操作码出现的次数。

获取最佳的主题数量:抽取一部分恶意代码的函数指令分布,将每一个函数的主题分布看作一个文本,使用one-hot进行编码,将主题数量的范围设置为1-24,训练主题模型,获取每个函数的主题分布。将每个恶意代码的所有函数主题分布输入到分类模型中,不使用函数调用图,观察不同主题数量对分类结果的影响,选择最佳的主题数量。

获取函数主题分布:使用最佳的主题数量,重新训练主题模型,调整迭代次数,将每个恶意代码的函数主题分布存储为json文件。

训练分类模型:图卷积网络会计算函数调用图的节点嵌入,注意力机制由节点嵌入得到图嵌入。自适应最大池化可以由恶意代码的函数主题分布得到恶意代码的主题分布。

恶意代码分类:选定与训练集不存在交叉的恶意代码测试集,测试分类模型的效果,并与已有的方法进行对比。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号