当前位置: 首页 > 专利查询>中山大学专利>正文

一种基于图卷积的恶意软件API调用序列检测方法技术

技术编号:24456997 阅读:48 留言:0更新日期:2020-06-10 15:50
本发明专利技术提出一种基于图卷积的恶意软件API调用序列检测方法,包括以下步骤:采集并记录大量软件样本运行时的进程及子进程的API调用序列信息;对API调用序列信息进行向量化处理;抽取API函数的参数关系、依赖关系以及顺序关系;建立API调用图;将API调用图输入到图卷积神经网络中进行训练,得到恶意软件检测网络模型;将待检测的可执行文件运行时的进程及子进程的API调用序列信息进行采集,构建待检测的可执行文件的API调用图,然后将待检测的可执行文件的API调用图输入恶意软件检测网络模型中,若恶意软件检测网络模型的输出结果为1,则表示判定结果为恶意软件;若恶意软件检测网络模型的输出结果为0,则表示判定结果为正常软件。

A method of malware API call sequence detection based on graph convolution

【技术实现步骤摘要】
一种基于图卷积的恶意软件API调用序列检测方法
本专利技术涉及网络安全
,更具体地,涉及一种基于图卷积的恶意软件API调用序列检测方法。
技术介绍
现有的恶意软件检测技术主要包括静态检测与动态检测,其中静态检测主要是指在不运行软件的条件下,分析程序的二进制文件内容从而实现恶意软件检测,其主要技术包括汇编代码分析、文件头分析、文件图像分析等,一般可以给出恶意软件的特征码用于后续检测;动态检测则通过对软件运行时的行为进行监测和记录,分析并识别其中的异常行为实现恶意软件检测的目的,能够很好地抵抗代码混淆等静态保护措施。目前主流的分析恶意软件方法为动态检测,而现有的基于深度学习的恶意行为检测方法大多以API函数名序列作为分析对象,然而这些方法并不能充分地利用API调用序列中的信息。目前现有的基于深度学习的恶意行为检测方法仅仅将API函数名序列作为序列进行建模,没有考虑API调用之间的各种关系;此外,现有的基于深度学习的恶意行为检测方法仅仅把文件名、注册表项等参数作为普通字符串进行处理,不能很好地利用这些文件和注册表项本身的性质。
技术实现思路
本专利技术为克服上述现有技术所述的没有考虑API调用之间的各种关系、无法充分利用API参数的缺陷,提供一种基于图卷积的恶意软件API调用序列检测方法。为解决上述技术问题,本专利技术的技术方案如下:一种基于图卷积的恶意软件API调用序列检测方法,包括以下步骤:S1:采集并记录大量软件样本运行时的进程及子进程的API调用序列信息,其中,所述API调用序列信息包括API函数和API参数;S2:对所述API调用序列信息进行向量化处理;S3:根据所述经过向量化处理的API调用序列信息,抽取所述API函数的参数关系、依赖关系以及顺序关系;S4:根据所述经过向量化处理的API调用序列信息以及所述抽取的依赖关系建立API调用图;S5:将所述API调用图输入到图卷积神经网络中进行训练,得到恶意软件检测网络模型;S6:将待检测的可执行文件运行时的进程及子进程的API调用序列信息进行采集,执行S2~S4步骤得到所述待检测的可执行文件的API调用图,然后将所述待检测的可执行文件的API调用图输入所述恶意软件检测网络模型中,若所述恶意软件检测网络模型的输出结果为1,则表示判定结果为恶意软件;若所述恶意软件检测网络模型的输出结果为0,则表示判定结果为正常软件。本技术方案中,采用将API调用访问的文件和注册表项编码作为向量,同时结合API之间的依赖关系为将API调用序列建立API调用图,利用图卷积网络构建恶意软件监测模型,并将API调用图及其标签作为输入对所述恶意软件检测模型进行训练,得到完成训练的恶意软件检测模型应用于恶意软件API调用序列检测。优选地,所述S1步骤中,采用动态分析工具采集并记录大量软件样本运行时的进程及子进程的API调用序列信息,通过反病毒引擎或人工分析得到所述软件样本的标签并记录。优选地,所述API调用序列信息中的API函数包括但不仅限于函数名、进程ID、调用时间、线程ID、返回值;所述API调用序列信息中的API参数包括但不仅限于访问的文件名、访问的注册表路径、访问的动态链接库名、文件/注册表句柄、指针。优选地,所述S2步骤中,对所述API调用序列信息进行向量化处理的具体步骤包括:S21:采用word2vec算法对所述API调用序列信息中的函数名进行向量化,得到各函数名的向量化表示;S22:采用metapath2vec算法对所述API调用序列信息中的访问的文件名进行向量化,得到文件名的向量化表示;S23:采用metapath2vec算法对所述API调用序列信息中的访问的注册表路径进行向量化,得到注册表路径的向量化表示。优选地,所述S21步骤中,其具体步骤包括:对所述API调用序列信息进行处理,提取所述API调用序列信息中的函数名,并将所述函数名根据调用时间进行排序,获得函数名序列,然后采用word2vec算法对所述函数名序列进行向量化处理,得到所述函数名序列中各函数名的向量化表示。优选地,所述S22步骤中,其具体步骤包括:对所述调用序列信息进行统计,获得所有访问的文件名集合Sf;以所述文件名集合Sf中的文件名以及软件作为节点,以软件与文件访问关系作为边,建立文件访问关系图,然后在所述文件访问关系图上采用metapath2vec算法进行节点嵌入,得到文件名的向量化表示。优选地,所述S23步骤中,其具体步骤包括:对所述调用序列信息进行统计,获得所有访问的注册表路径集合Sreg;以所述注册表路径集合Sreg中的注册表项和软件作为节点,以所述注册表路径集合Sreg中的软件与注册表的访问关系作为边,建立注册表访问关系图,然后在所述注册表访问关系图上采用metapath2vec算法进行节点嵌入,获得注册表路径的向量化表示。优选地,所述S3步骤中,抽取所述API函数的参数关系、依赖关系以及顺序关系的具体步骤包括:S31:抽取所述API函数的参数关系:若某个API调用使用了文件名或注册表作为参数,则表示API调用与该文件或注册表存在参数关系;S32:抽取所述API函数的参数依赖关系:对每一个API调用序列,遍历其中API调用参数中的指针或句柄,若API调用apia时使用了由API调用apia返回或修改的指针或句柄作为参数,则表示调用apib在参数上依赖于调用apia,存在依赖关系;S33:抽取所述API函数的参数顺序关系:在同一程序中,若API调用apib在API调用apia之后调用,则表示调用apib在参数上与调用apia存在顺序关系;其中,apia和apib表示API函数。优选地,所述S4步骤中,建立API调用图的具体步骤包括:S41:对于每个所述API调用序列信息,将API调用的函数名、访问的文件名、访问的注册表路径作为节点,并在每个节点上附加相应的向量化表示;S42:在所述节点的基础上,根据所述API函数的参数关系、依赖关系以及顺序关系添加节点之间的有向边,并为每条有向边附加一个表示关系类型的向量优选地,所述S42步骤中,根据所述API函数的参数关系、依赖关系以及顺序关系添加节点之间的有向边的具体步骤包括:1)根据所述API函数的参数关系,由API的函数名节点向相应的存在参数关系的参数节点连接一条有向边;2)根据所述API函数的参数依赖关系,由存在参数依赖关系的apia的函数名节点向apib的函数名节点连接一条有向边;3)根据所述API函数的参数顺序关系,由存在顺序关系的apia的函数名节点向apib的函数名节点连接一条有向边。与现有技术相比,本专利技术技术方案的有益效果是:采用将API调用访问的文件和注册表项编码为向量的方法,同时结合API调用之间的参数关系、时序关系以及依赖关系,将API调用序列建模为API调用图,输入到图卷积神经网络中训练,构建恶意软件检测模型,能本文档来自技高网...

【技术保护点】
1.一种基于图卷积的恶意软件API调用序列检测方法,其特征在于,包括以下步骤:/nS1:采集并记录大量软件样本运行时的进程及子进程的API调用序列信息,其中,所述API调用序列信息包括API函数和API参数;/nS2:对所述API调用序列信息进行向量化处理;/nS3:根据所述经过向量化处理的API调用序列信息,抽取所述API函数的参数关系、依赖关系以及顺序关系;/nS4:根据所述经过向量化处理的API调用序列信息以及所述抽取的依赖关系建立API调用图;/nS5:将所述API调用图输入到图卷积神经网络中进行训练,得到恶意软件检测网络模型;/nS6:将待检测的可执行文件运行时的进程及子进程的API调用序列信息进行采集,执行S2~S4步骤得到所述待检测的可执行文件的API调用图,然后将所述待检测的可执行文件的API调用图输入所述恶意软件检测网络模型中,若所述恶意软件检测网络模型的输出结果为1,则表示判定结果为恶意软件;若所述恶意软件检测网络模型的输出结果为0,则表示判定结果为正常软件。/n

【技术特征摘要】
1.一种基于图卷积的恶意软件API调用序列检测方法,其特征在于,包括以下步骤:
S1:采集并记录大量软件样本运行时的进程及子进程的API调用序列信息,其中,所述API调用序列信息包括API函数和API参数;
S2:对所述API调用序列信息进行向量化处理;
S3:根据所述经过向量化处理的API调用序列信息,抽取所述API函数的参数关系、依赖关系以及顺序关系;
S4:根据所述经过向量化处理的API调用序列信息以及所述抽取的依赖关系建立API调用图;
S5:将所述API调用图输入到图卷积神经网络中进行训练,得到恶意软件检测网络模型;
S6:将待检测的可执行文件运行时的进程及子进程的API调用序列信息进行采集,执行S2~S4步骤得到所述待检测的可执行文件的API调用图,然后将所述待检测的可执行文件的API调用图输入所述恶意软件检测网络模型中,若所述恶意软件检测网络模型的输出结果为1,则表示判定结果为恶意软件;若所述恶意软件检测网络模型的输出结果为0,则表示判定结果为正常软件。


2.根据权利要求1所述的恶意软件API调用序列检测方法,其特征在于:所述S1步骤中,采用动态分析工具采集并记录大量软件样本运行时的进程及子进程的API调用序列信息,通过反病毒引擎或人工分析得到所述软件样本的标签并记录。


3.根据权利要求2所述的恶意软件API调用序列检测方法,其特征在于:所述API调用序列信息中的API函数包括但不仅限于函数名、进程ID、调用时间、线程ID、返回值;所述API调用序列信息中的API参数包括但不仅限于访问的文件名、访问的注册表路径、访问的动态链接库名、文件/注册表句柄、指针。


4.根据权利要求3所述的恶意软件API调用序列检测方法,其特征在于:所述S2步骤中,对所述API调用序列信息进行向量化处理的具体步骤包括:
S21:采用word2vec算法对所述API调用序列信息中的函数名进行向量化,得到各函数名的向量化表示;
S22:采用metapath2vec算法对所述API调用序列信息中的访问的文件名进行向量化,得到文件名的向量化表示;
S23:采用metapath2vec算法对所述API调用序列信息中的访问的注册表路径进行向量化,得到注册表路径的向量化表示。


5.根据权利要求4所述的恶意软件API调用序列检测方法,其特征在于:所述S21步骤中,其具体步骤包括:对所述API调用序列信息进行处理,提取所述API调用序列信息中的函数名,并将所述函数名根据调用时间进行排序,获得函数名序列,然后采用word2vec算法对所述函数名序列进行向量化处理,得到所述函数名序列中各函数名的向量化表示。


6.根据权利要求4所述的恶意软件API调用序列检测方法,其特征在于:所述S22步骤中,...

【专利技术属性】
技术研发人员:金舒原李维龙
申请(专利权)人:中山大学
类型:发明
国别省市:广东;44

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

1