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

一种基于内存取证和图神经网络的恶意代码检测方法技术

技术编号:36523409 阅读:16 留言:0更新日期:2023-02-01 16:00
本发明专利技术公开了一种基于内存取证和图神经网络的恶意代码检测方法,涉及软件安全技术领域,本发明专利技术利用内存取证和图神经网络相结合的方式,减少了检测方法对于专家知识的依赖,同时提高了针对加壳恶意代码的检测效率以及对于未知样本的泛化能力。该方法包括如下步骤:获取目标程序的内存镜像。从内存镜像中提取目标程序中的函数以及函数之间的调用关系。利用自然语言处理NLP(Natural Language Processing)方法获取内存镜像中每个函数的语义表示,获得每个函数的语义向量。利用函数的语义向量构建目标程序的语义嵌入的函数调用图FCG(FunctionCall Graph),利用图神经网络GNN(Graph Neural Network)模型来分析语义嵌入的FCG以进行恶意代码识别,获得检测结果。获得检测结果。获得检测结果。

【技术实现步骤摘要】
一种基于内存取证和图神经网络的恶意代码检测方法


[0001]本专利技术涉及软件安全
,具体涉及一种基于内存取证和图神经网络 的恶意代码检测方法。

技术介绍

[0002]恶意代码是指带有攻击意图所编写的一段代码,包括陷门、逻辑炸弹、特 洛伊木马、蠕虫、病毒等多种形式,会对计算机或网络系统造成严重危害。
[0003]恶意代码是当今互联网用户面临的主要威胁之一,恶意代码可以对计算机 造成各种形式的损害,它会导致电脑具有运行速度变慢甚至崩溃、磁盘空间减 少、网络互动增加等异常行为,还可以被用来获取互联网用户的个人信息,如 银行信息、密码等,已经严重危害到了人们的数据和财产安全。这些恶意代码 可以根据它的传播方式或行为特性进行分类,主要包括病毒、蠕虫、木马、间 谍软件、勒索软件等。根据AV

Test最近的报告,到2021年,互联网上总共出 现了13.12亿个恶意软件,这些海量的恶意程序对软件安全构成了严重威胁。
[0004]恶意代码检测是一种能够识别出恶意程序的方法,主要分为静态检测和动 态检测两种。静态检测是指利用静态特征(例如,字节序列和字符串)来检测 可疑程序而不执行它们。静态方法的主要优点是快速且可扩展地检测恶意程序。 但是,如果目标程序采用高级混淆技术(例如加密和打包),则静态方法将无法 区分良性程序和恶意程序。与静态方法不同,动态方法依赖于分析程序的运行 时特性,需要先运行目标程序。即使程序被很好地打包或加密,恶意行为最终 也会在运行时暴露出来。因此,动态方法能够识别隐藏其恶意活动的高级恶意 软件。
[0005]鉴于基于签名和启发式检测方法的缺陷,研究人员和网络安全公司将注意 力转向了深度学习方法,尤其是卷积神经网络在图像处理领域取得了十分优异 的成绩。因此在进行恶意代码检测时,通常会把恶意程序转化为图像或者矩阵, 然后再按照深度学习的步骤进行训练,最终获得一个检测准确率较高的模型。
[0006]将恶意程序转换为图像后进行深度学习的方法有很多种,较常见的方法有 以下两种:
[0007]方法一:通过静态分析目标二进制程序将其转换为灰度图。一个二进制程 序的每个字节范围在00到0xFF之间,可以对应灰度图的0到255。通过设置长 和宽,可将程序的字节序列转换为矩阵。其中,矩阵中每一项可对应灰度图中 每一个像素点。最后,利用深度学习算法对灰度图进行分析,识别对应的恶意 程序。
[0008]方法二:将样本程序运行时调用的API序列信息转换为一个矩阵。利用APIHook或者程序插桩技术分析恶意程序在系统运行时调用的API序列信息,将每 个API调用信息转化为词向量,而每个样本程序运行时获得到的API序列列表 则抽象成一个矩阵。最后,通过深度学习算法对矩阵进行分析,以识别对应的 恶意程序。
[0009]加壳是指在原代码的执行流程前加入一段加密的过程,加壳程序在执行时 需要
先解压再执行。早期,技术人员可以直接通过检测程序是否加壳或者混淆 来判断该程序是否具有恶意行为。但是加壳技术不仅能阻止恶意代码被分析, 对于正常程序也开始采用加壳技术来保护程序的知识产权。因此,加壳文件被 判定为恶意代码的方法并不可取,需要新的技术对程序进行检测。加壳的过程 包括:
[0010]1)原始代码的代码段、数据段、资源段被加壳器进行加密和压缩,将这些 字节段作为新程序的数据段。
[0011]2)在加壳部分的前面再加上一个新的PE头。
[0012]3)将解密所用到的密钥保存在新程序中。如图1所示。
[0013]加壳后的文件包括:新的PE头、加壳部分、解压存根——用于解压代码。 在加壳过程中,原来的入口点和加壳区会被重新定向。新的程序和正常程序一 样都是可执行的,但是其行为通过反汇编可以看出,该程序只有一个函数就是 对加壳的部分进行解压,再执行。这个过程使得识别导入地址表(IAT)和原始入 口点变得很困难。在函数导入表中主要是解密函数,如Base64编码和哈希算法 等函数,该类函数主要是对加壳部分的文件进行解密,解密后恢复出原始程序 的PE头和不同的节区,再执行原始的程序。对加壳的程序进行反汇编或者提取 特征后的结果相差不大,因为提取到的特征都是壳体的特征,所以该机理能够 有效地躲避静态检测和特征提取。
[0014]加壳程序在执行时相当于执行两个程序,首先运行解压程序进行解压,再 执行原程序的真正功能。对于恶意代码,该方法能够阻止安全专家通过调试分 析其执行流程从而提取特征;对于正常程序,以往的破解人员能够通过调试程 序逆向创建盗版程序或者通过调试对程序的注册码认证过程进行逆向破解,从 而开发注册码生成器等工具。即通过加壳能够防止不法分子的逆向破解,因此 仅仅通过判断加壳就断定一个程序是否恶意具有很高的误报率。
[0015]目前对于加壳恶意程序的检测技术目前较少,大都基于专业人员手工分析。 而手工分析方法人力成本高,检测效率低,很难应对当下复杂的互联网环境。
[0016]许多动态获取到的恶意程序特征可能会被恶意程序干扰,例如利用沙箱获 取到的恶意程序API信息。但这些API信息可能是恶意程序故意调用进行伪装 的,因此分析这些信息可能会对检测结果造成一定的影响。
[0017]机器学习和深度学习方法学习到的特征过于单一,往往只是关注了恶意程 序中某一方面的行为,导致特征与特征之间没有逻辑性。现有的网络模型对于 恶意文件主要是通过LSTM、CNN等算法进行建模。这种基于语义或者基于空间 结构的模型对于未知程序的泛化能力较弱。
[0018]因此针对加壳恶意程序目前依旧存在检测困难的问题,如何提高针对加壳 恶意代码的检测效率以及提升未知样本的泛化能力,是目前亟待解决的问题。

技术实现思路

[0019]有鉴于此,本专利技术提供了一种基于内存取证和图神经网络的恶意代码检测 方法,本专利技术利用内存取证和图神经网络相结合的方式,减少了检测方法对于 专家知识的依赖,同时提高了针对加壳恶意代码的检测效率以及对于未知样本 的泛化能力。
[0020]为达到上述目的,本专利技术提供的一种基于内存取证和图神经网络的恶意代 码检
测方法,包括如下步骤:
[0021]步骤一:获取目标程序的内存镜像。
[0022]步骤二:从内存镜像中提取目标程序中的函数以及函数之间的调用关系。
[0023]步骤三:利用自然语言处理NLP方法获取内存镜像中每个函数的语义表示, 获得每个函数的语义向量。
[0024]步骤四:利用函数的语义向量构建目标程序的语义嵌入的函数调用图FCG, 利用图神经网络GNN模型来分析语义嵌入的FCG以进行恶意代码识别,获得检 测结果。
[0025]进一步地,步骤一中,获取目标程序的内存镜像,具体为:采用Procdump 工具来提取目标程序的内存镜像,获得目标程序的内存dump文件然后分析其中 的程序代码,所提取的内存dump文件中包含目标程序的整个虚拟内存地址空间。
[0026]进一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于内存取证和图神经网络的恶意代码检测方法,其特征在于,包括如下步骤:步骤一:获取目标程序的内存镜像;步骤二:从所述内存镜像中提取目标程序中的函数以及函数之间的调用关系;步骤三:利用自然语言处理NLP方法获取所述内存镜像中每个函数的语义表示,获得每个函数的语义向量;步骤四:利用函数的语义向量构建所述目标程序的语义嵌入的函数调用图FCG,利用图神经网络GNN模型来分析语义嵌入的FCG以进行恶意代码识别,获得检测结果。2.如权利要求1所述的一种基于内存取证和图神经网络的恶意代码检测方法,其特征在于,所述步骤一中,获取目标程序的内存镜像,具体为:采用Procdump工具来提取目标程序的内存镜像,获得目标程序的内存dump文件然后分析其中的程序代码,所提取的内存dump文件中包含目标程序的整个虚拟内存地址空间。3.如权利要求1或2所述的一种基于内存取证和图神经网络的恶意代码检测方法,其特征在于,所述步骤二中,从所述程序内存镜像中提取程序汇编指令序列以及程序的控制流图CFG,Control Flow Graph,具体为:获取目标程序的内存镜像后,利用SMDA工具从所述内存镜像中提取程序汇编指令序列并恢复程序的控制流图,具体地:所述SMDA工具利用递归反汇编算法和启发式规则来识别内存中的函数及函数之间的调用关系;所述SMDA工具为每个识别的函数分配一个置信度值,过滤置信度值低于设定阈值的函数。4.如权利要求1或2所述的一种基于内存取证和图神经网络的恶意代码检测方法,其特征在于,所述步骤三:利用自然语言处理NLP方法获取所述内存镜像中每个函数的语义...

【专利技术属性】
技术研发人员:田东海李骐元张博马锐宋文爱胡昌振
申请(专利权)人:中北大学
类型:发明
国别省市:

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

1