基于图的恶意软件混合检测方法技术

技术编号:38360882 阅读:3 留言:0更新日期:2023-08-05 17:30
本发明专利技术基于图的恶意软件混合检测方法,涉及网络空间安全技术领域,通过提取可执行文件中的代码表示信息,利用广度优先搜索算法生成函数调用图,对可执行文件进行动态行为分析,获得可执行文件运行时的可打印字符串信息,并提取函数调用图中包含任一所述可打印字符串信息的节点,组成顶点集,在函数调用图中提取顶点集中每个函数名称的根子图,将根子图转换为向量,获得特征矩阵,利用机器学习分类器进行训练和分类,实现恶意软件的检测,解决了现有技术中对于恶意软件检测精度低的问题,本发明专利技术适用于恶意软件检测。明适用于恶意软件检测。明适用于恶意软件检测。

【技术实现步骤摘要】
基于图的恶意软件混合检测方法


[0001]本专利技术涉及网络空间安全
,特别涉及基于图的恶意软件混合检测方法。

技术介绍

[0002]网络通信和嵌入式设备被大规模的应用到在工业系统中,极大地提高了生产力和效率。然而,许多物联网设备在生产制造时没有内置有效的安全策略,为僵尸网络这种传播迅速且极具威胁的攻击创造了许多机会。为了保障工业物联网免受僵尸网络入侵,尽力减少恶意软件对网络节点的破坏,所以对工业物联网中僵尸网络检测十分必要。
[0003]目前恶意软件检测方法可以分为静态分析和动态分析两种。静态分析方法检测可以在不执行文件的情况下进行快速分析,但随着代码混淆技术和加密算法被攻击者用于隐藏恶意软件,使得该方法检测精度急剧下降。动态分析通过运行可执行文件来检查其行为,虽然规避了代码混淆影响,但该方法不完整的代码覆盖无法满足多个执行路径需要的触发条件,同时构建完全满足的激活条件以及能够处理多种可执行文件架构的执行环境非常困难。

技术实现思路

[0004]本专利技术所解决的技术问题:提供一种基于图的恶意软件混合检测方法,解决现有技术中对于恶意软件检测精度低的问题。
[0005]本专利技术解决上述技术问题采用的技术方案:基于图的恶意软件混合检测方法,包括以下步骤:
[0006]S1、提取可执行文件中代码表示信息,并标记所有函数名称;
[0007]S2、利用广度优先搜索算法生成函数调用图,所述函数调用图包括节点和边,所述节点为函数,所述边为函数调用关系,并将所述代码表示信息映射于函数调用图中;
[0008]S3、对可执行文件进行动态行为分析,获得可执行文件运行时的可打印字符串信息,并提取函数调用图中包含任一所述可打印字符串信息的节点,组成顶点集;
[0009]S4、遍历函数调用图,提取顶点集中每个函数的根子图;
[0010]S5、将所有根子图转换为向量,获得特征矩阵;
[0011]S6、将特征矩阵投入机器学习分类器中进行训练和分类,实现恶意软件的检测。
[0012]进一步的,S1中,若可执行文件已打包,则先进行解包,利用IDA Pro进行反编译,提取可执行文件中的代码表示信息PSI。
[0013]进一步的,所述代码表示信息包括IP地址、用户名

密码模式、恶意代码注入命令、函数参数、局部变量、常量和字符串字面量。
[0014]进一步的,S2中,利用广度优先搜索算法生成函数调用图包括以下步骤:
[0015]S21、遍历可执行文件的汇编代码,识别所有函数,并保存至函数集中;
[0016]S22、使用入口点函数将函数集中的函数初始化成函数列队;
[0017]S23、将函数列队的队头元素视为函数调用方,并将队头元素从函数列队中移除;
[0018]若队头元素未被存入到函数调用图中,则提取所述队头元素的被调用函数,将队头元素、被调用函数以及调用关系存入函数调用图中;
[0019]若队头元素已作为被调用函数存入到函数调用图中,则提取所述队头元素的被调用函数,将被调用函数及调用关系存入到函数调用图中;
[0020]若队头元素已作为函数调用方存入函数调用图中,则不处理;
[0021]S24、重复步骤S23,直至函数列队为空,获得可执行文件的函数调用图。
[0022]进一步的,S2中,利用广度优先搜索算法生成函数调用图还包括:
[0023]S25、通过代码表示信息PSI识别实际运行中不会被执行的函数调用关系,遍历函数调用图并删除所述实际运行中不会被执行的函数调用关系。
[0024]进一步的,S3中,通过监视可执行文件在沙箱中实际执行时的行为对可执行文件进行动态行为分析,所述行为包括系统调用、文件系统交互、库请求、权限请求和网络行为。
[0025]进一步的,S4中,所述顶点集中每个函数名称的根子图包括:以所述函数为作为函数调用方、函数的所有被调用函数、所有被调用函数再作为函数调用方的被调用函数,直至被调用函数作为函数调用方时不存在被调用函数为止的所有函数,以及各个函数之间的调用关系。
[0026]进一步的,S5中,将所有根子图转换为向量采用Word2vec、Doc2vec、Graph2vec或Subgraph2vec。
[0027]进一步的,S5中,还包括对特征矩阵进行重采样数据平衡处理和数据标准化处理。
[0028]本专利技术的有益效果:本专利技术基于图的恶意软件混合检测方法,通过提取可执行文件中的代码表示信息,利用广度优先搜索算法生成函数调用图,对可执行文件进行动态行为分析,获得可执行文件运行时的可打印字符串信息,并提取函数调用图中包含任一所述可打印字符串信息的节点,组成顶点集,在函数调用图中提取顶点集中每个函数名称的根子图,将根子图转换为向量,获得特征矩阵,利用机器学习分类器进行训练和分类,实现恶意软件的检测,解决了现有技术中对于恶意软件检测精度低的问题。
附图说明
[0029]附图1是本专利技术基于图的恶意软件混合检测方法流程示意图。
具体实施方式
[0030]本专利技术基于图的恶意软件混合检测方法,如附图1所示,包括以下步骤:
[0031]S1、提取可执行文件中代码表示信息,并标记所有函数;
[0032]具体的,若可执行文件已打包,则先进行解包,利用IDA Pro进行反编译,提取可执行文件中的代码表示信息,即为静态PSI,所述代码表示信息包括IP地址、用户名

密码模式、恶意代码注入命令、函数参数、局部变量、常量和字符串字面量,特别的,某些情况下,提取的PSI会使用相同的混淆机制进行模糊处理或加密,因此,是否加密无法对PSI产生实质影响,并且此类PSI中通常包含重要的语义信息,可以揭示攻击者的意图。
[0033]S2、利用广度优先搜索算法生成函数调用图,所述函数调用图包括节点和边,所述节点为函数,所述边为函数调用关系,并将所述代码表示信息映射于函数调用图中;
[0034]具体的,利用广度优先搜索算法生成函数调用图,包括以下步骤:
[0035]S21、遍历可执行文件的汇编代码,识别所有函数,并保存至函数集中;
[0036]具体的,通过查看汇编代码中的标签识别所有函数,所示标签包括“_start:”和“func1:”等,并将函数保存至FunSet的函数集中。
[0037]S22、使用入口点函数将函数集中的函数初始化成函数列队;
[0038]具体的,入口点函数指示代码执行跳转到另一个函数。可以在函数调用的地址处确定函数的入口点,以此实现函数列队中包括函数的调用关系。
[0039]S23、将函数列队的队头元素视为函数调用方,并将队头元素从函数列队中移除;
[0040]若队头元素未被存入到函数调用图中,则提取所述队头元素的被调用函数,将队头元素、被调用函数以及调用关系存入函数调用图中;
[0041]若队头元素已作为被调用函数存入到函数调用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于图的恶意软件混合检测方法,其特征在于,包括以下步骤:S1、提取可执行文件中代码表示信息,并标记所有函数;S2、利用广度优先搜索算法生成函数调用图,所述函数调用图包括节点和边,所述节点为函数,所述边为函数调用关系,并将所述代码表示信息映射于函数调用图中;S3、对可执行文件进行动态行为分析,获得可执行文件运行时的可打印字符串信息,并提取函数调用图中包含任一所述可打印字符串信息的节点,组成顶点集;S4、遍历函数调用图,提取顶点集中每个函数的根子图;S5、将所有根子图转换为向量,获得特征矩阵;S6、将特征矩阵投入机器学习分类器中进行训练和分类,实现恶意软件的检测。2.根据权利要求1所述的基于图的恶意软件混合检测方法,其特征在于,S1中,若可执行文件已打包,则先进行解包,利用IDA Pro进行反编译,提取可执行文件中的代码表示信息PSI。3.根据权利要求1或2所述的基于图的恶意软件混合检测方法,其特征在于,所述代码表示信息包括IP地址、用户名

密码模式、恶意代码注入命令、函数参数、局部变量、常量和字符串字面量。4.根据权利要求1所述的基于图的恶意软件混合检测方法,其特征在于,S2中,利用广度优先搜索算法生成函数调用图包括以下步骤:S21、遍历可执行文件的汇编代码,识别所有函数,并保存至函数集中;S22、使用入口点函数将函数集中的函数初始化成函数列队;S23、将函数列队的队头元素视为函数调用方,并将队头元素从函数列队中移除;若队头元素未被存入到函数调用图中,则提取所述队头元素的被调用函数,将队头元素、被调用函数以及调用关系存入函数调用图中...

【专利技术属性】
技术研发人员:宋晨丁相岚夏勇丁旭阳
申请(专利权)人:中国电建集团成都勘测设计研究院有限公司
类型:发明
国别省市:

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

1