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

一种Linux平台恶意软件检测方法技术

技术编号:15450568 阅读:132 留言:0更新日期:2017-05-31 12:19
本发明专利技术公开了一种Linux平台恶意软件检测方法,包括以下步骤:用objdump‑D命令反汇编ELF格式的良性软件以及恶意软件样本,生成汇编文件;对生成的汇编文件逐个遍历,读取ELF文件的代码段,同时识别代码段中是否包含main函数;对读取的代码段进行分析,划分基本块,每个基本块用该基本块所含最低的地址标记,向邻接链表添加控制流图中的顶点,建立基本块之间的联系,向邻接链表添加控制流图的边,生成一个基本的控制流图;提取控制流图的特征,将特征写入arff文件;将生成的arff文件作为机器学习工具weka的数据集,进行数据挖掘,构建分类器;用分类器对待测的ELF样本进行分类。本发明专利技术不需要直接比较庞大的特征库,速度更快,能检测未知的恶意软件。

A malicious software detection method for Linux platform

The invention discloses a method for detecting malicious software platform Linux, which comprises the following steps: using objdump D command disassembles the ELF format of the benign software and malware samples, generating assembly documents; the compilation of documents one by one traversal code to read ELF files, and the identification code segment is contained in the main function of; read the code analysis, partition, basic block with the basic block containing the lowest address label each, add to the control flow graph adjacency list of vertices, a basic block connection, add control flow graph edges to the adjacency list, generate a basic control flow graph; extraction control flow chart features, will feature into the ARFF file; will generate the ARFF file as a machine learning tool for Weka data set, data mining, constructing classifier with classifier; Classify the measured ELF samples. The invention does not need to directly compare large feature libraries, and is faster and can detect unknown malware.

【技术实现步骤摘要】
一种Linux平台恶意软件检测方法
本专利技术涉及到计算机恶意软件检测
,具体涉及一种适用于Linux操作系统ELF格式的恶意软件检测方法。
技术介绍
恶意软件是指在未经用户许可的情况下,对用户计算机进行破坏,侵犯用户合法权益的软件,包括病毒、蠕虫、木马等。近年来,恶意软件泛滥成灾,对用户的工作、生活造成严重影响。据国内安全厂商360的研究报告,2014年,共新增恶意程序样本3.24亿个,平均每天新增恶意程序样本88.8万个,拦截恶意程序攻击572.7亿次,平均每天拦截恶意程序攻击约1.57亿次。Linux操作系统是一个完全开放的操作系统,任何人都可以获取源代码以进行二次开发,经过多年的发展,已成为一个较为成熟、完善的系统,越来越多的个人用户也开始选择这种操作系统作为日常使用、开发。随着Linux操作系统的广泛应用,越来越多的骇客关注这个平台,Linux平台的恶意软件也逐渐增多,以往对于Linux操作系统很安全、不存在恶意软件的认知逐渐被颠覆,Linux平台的安全问题越来越突出。Linux平台的恶意软件检测研究不多,主要采用基于特征码的检测方式。在当前形势下,传统的基于代码特征的检测方式通过提取恶意软件的特征码,构成一个特征码数据库,然后通过扫描软件的信息,再跟特征码数据库中的特征码对比,得出检测结论。这种方法对于检测已知的恶意软件来说切实有效,因此被广泛应用于现有的杀毒软件中。这种方法目前的发展主要在于提高特征码的准确度以及检测速度。但考虑到目前恶意程序的发展,该方法不能检测新的恶意软件,检测滞后,需要频繁更新特征库,劣势逐渐扩大。一些新的恶意软件检测方法未使用特征码,而是基于软件的行为特征来进行检测或者基于软件的头部信息来进行对比分类。这些方法都是通过挖掘恶意软件局部信息,来构建一个指标集,利用该指标集对软件进行分类,但是仍然存在一些不足。基于行为特征的检测对于使用模糊以及多态的恶意软件,其局部特征不固定,将其与指标集对比分类,难以得到一个较为准确的结果,所以该方法判断这类恶意软件时准确率不高。基于软件头部信息的检测使用的指标是软件的描述信息,这些信息并不能准确反应软件的行为,对于有经验的恶意软件开发者来说,也比较容易被修改、混淆,使得该种检测方法的检测效果大幅降低。
技术实现思路
本专利技术所要解决的技术问题是提供一种Linux平台恶意软件检测方法,解决基于代码特征的检测方法不能检测新的或未知的恶意软件、特征库的大小和特征的匹配时间指数增大和需要及时不断地更新的问题,应用机器学习的方法来检测恶意软件。为解决上述技术问题,本专利技术所采用的技术方案是:一种Linux平台恶意软件检测方法,包括以下步骤:步骤1:在Linux操作系统中,用objdump-D命令反汇编ELF格式的良性软件以及恶意软件样本,生成汇编文件;步骤2:对生成的汇编文件逐个遍历,读取ELF文件的代码段,同时识别代码段中是否包含main函数;步骤3:对步骤2中读取的代码段进行分析,若代码段中有main函数,则从main函数的入口地址开始,否则从代码段的入口地址开始,按照地址增序,遍历所有的汇编指令,划分基本块,每个基本块用该基本块所含最低的地址标记,向邻接链表添加控制流图中的顶点;步骤4:再次对步骤2中读取的代码段进行分析,若代码段中有main函数,则采用顺序与递归结合的方式,从main函数的入口地址开始,否则从代码段入口地址开始,按照地址增序,根据控制流图的构建规则,分析每一个分支、跳转指令,忽略间接跳转、分支指令,确定分支、跳转指令的目标地址,建立基本块之间的联系,向邻接链表添加控制流图的边,同时确定基本块的类型,生成一个基本的控制流图;步骤5:提取步骤4中所生成的控制流图的特征,将所有样本提取出的特征写入arff文件;步骤6:将步骤5中生成的arff文件作为机器学习工具weka的数据集,使用基于决策树的C4.5算法、RandomForest算法、lazy分类算法中的IBK和贝叶斯分类算法中的NaiveBays算法中的一种进行数据挖掘,并用m-fold交叉验证产生训练集和决策树,在其中选择分类效果最好的算法来构建分类器,用构建的分类器对待测样本进行分类;步骤7:对待测的ELF样本构建控制流图,提取控制流图的特征,写入arff文件,将该文件作为步骤6中所构建的分类器的输入,分类器的输出即为分类结果。根据上述方案,在所述步骤4中,还包括对生成的控制流图进行补充和修复。根据上述方案,在所述步骤3中,基本块的划分规则为:程序入口地址为一个基本块;直接跳转、分支指令目标地址为一个基本块,该跳转、分支指令按照地址增序,下一个不为空操作的指令的地址为一个基本块;间接跳转指令忽略,直接跳转、分支指令的目标地址为自身地址的指令忽略。根据上述方案,在所述步骤4中,控制流图的建立规则为:一个基本块为控制流图的一个顶点,用基本块的入口地址标识,边无权重;对于每条直接跳转、分支指令都用控制流图中的有向边来表示;对于无条件直接跳转、分支指令,建立一条由该指令所在基本块指向目标地址标记的基本块的有向边,对于条件跳转、分支指令则建立两条有向边;返回指令所在基本块有一条指向“与该返回指令所对应的跳转指令的顺序下条指令”所在基本块的有向边;对于递归调用,仅添加一条基本块指向自身的有向边。根据上述方案,提取的特征为22个,分别为:顶点总数、边的总数、导入表函数顶点数目、最大出度、反汇编时识别出函数名的顶点数目、入度为零的顶点数、出度为零的顶点数、图的最大度数、最大入度、最大连通子图所含顶点数、指向导入表顶点的边的数目、出入度都为零的顶点数、指向反汇编时识别出函数名的顶点的边的数目、导入表顶点占总顶点的比例、连通子图的数目、识别出函数名的顶点占比、入度为零的顶点占比、出度为零的顶点占比、最大连通子图所含顶点占比、出入度均为零的顶点占比、指向导入表顶点的边占总边的数目的比例、指向识别出函数名的顶点的边的占比。与现有技术相比,本专利技术的有益效果是:1)不需要直接比较庞大的特征库,速度更快,且能检测未知的恶意软件。2)分类器较小,所用的特征为提取的22个特征的子集,训练速度较快。3)分类器更新时只需扩大、更新数据集来训练分类器,耗时较少,随着分类器的更新,检测时间也不会显著增大。4)相较于基于软件描述信息、局部特征的方法,本方法较稳定性更高,恶意软件开发者较难做出针对性的应对以逃避检测。附图说明图1是本专利技术一种Linux平台恶意软件检测方法检测流程示意图。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步详细的说明。如图1所示,本专利技术提供的一种Linux平台恶意软件检测方法,包括以下步骤:步骤1:在Linux操作系统中,gcc为标准的编译器,objdump命令是gcc中提供的强大的二进制分析工具,用objdump-D命令反汇编ELF(ExecutableandLinkingFormat)格式的良性软件以及恶意软件样本,生成汇编文件。步骤2:对生成的汇编文件逐个遍历,读取节“.text”,即ELF文件的代码段,同时识别代码段中是否包含main函数以及该汇编文件所用的指令集。步骤3:对步骤2中读取的代码进行分析,如果代码段中有main函数,则从main函数的入口地址开始,本文档来自技高网
...
一种Linux平台恶意软件检测方法

【技术保护点】
一种Linux平台恶意软件检测方法,其特征在于,包括以下步骤:步骤1:在Linux操作系统中,用objdump‑D命令反汇编ELF格式的良性软件以及恶意软件样本,生成汇编文件;步骤2:对生成的汇编文件逐个遍历,读取ELF文件的代码段,同时识别代码段中是否包含main函数;步骤3:对步骤2中读取的代码段进行分析,若代码段中有main函数,则从main函数的入口地址开始,否则从代码段的入口地址开始,按照地址增序,遍历所有的汇编指令,划分基本块,每个基本块用该基本块所含最低的地址标记,向邻接链表添加控制流图中的顶点;步骤4:再次对步骤2中读取的代码段进行分析,若代码段中有main函数,则采用顺序与递归结合的方式,从main函数的入口地址开始,否则从代码段入口地址开始,按照地址增序,根据控制流图的构建规则,分析每一个分支、跳转指令,忽略间接跳转、分支指令,确定分支、跳转指令的目标地址,建立基本块之间的联系,向邻接链表添加控制流图的边,同时确定基本块的类型,生成一个基本的控制流图;步骤5:提取步骤4中所生成的控制流图的特征,将所有样本提取出的特征写入arff文件;步骤6:将步骤5中生成的arff文件作为机器学习工具weka的数据集,使用基于决策树的C4.5算法、RandomForest算法、lazy分类算法中的IBK和贝叶斯分类算法中的NaiveBays算法中的一种进行数据挖掘,并用m‑fold交叉验证产生训练集和决策树,在其中选择分类效果最好的算法来构建分类器,用构建的分类器对待测样本进行分类;步骤7:对待测的ELF样本构建控制流图,提取控制流图的特征,写入arff文件,将该文件作为步骤6中所构建的分类器的输入,分类器的输出即为分类结果。...

【技术特征摘要】
1.一种Linux平台恶意软件检测方法,其特征在于,包括以下步骤:步骤1:在Linux操作系统中,用objdump-D命令反汇编ELF格式的良性软件以及恶意软件样本,生成汇编文件;步骤2:对生成的汇编文件逐个遍历,读取ELF文件的代码段,同时识别代码段中是否包含main函数;步骤3:对步骤2中读取的代码段进行分析,若代码段中有main函数,则从main函数的入口地址开始,否则从代码段的入口地址开始,按照地址增序,遍历所有的汇编指令,划分基本块,每个基本块用该基本块所含最低的地址标记,向邻接链表添加控制流图中的顶点;步骤4:再次对步骤2中读取的代码段进行分析,若代码段中有main函数,则采用顺序与递归结合的方式,从main函数的入口地址开始,否则从代码段入口地址开始,按照地址增序,根据控制流图的构建规则,分析每一个分支、跳转指令,忽略间接跳转、分支指令,确定分支、跳转指令的目标地址,建立基本块之间的联系,向邻接链表添加控制流图的边,同时确定基本块的类型,生成一个基本的控制流图;步骤5:提取步骤4中所生成的控制流图的特征,将所有样本提取出的特征写入arff文件;步骤6:将步骤5中生成的arff文件作为机器学习工具weka的数据集,使用基于决策树的C4.5算法、RandomForest算法、lazy分类算法中的IBK和贝叶斯分类算法中的NaiveBays算法中的一种进行数据挖掘,并用m-fold交叉验证产生训练集和决策树,在其中选择分类效果最好的算法来构建分类器,用构建的分类器对待测样本进行分类;步骤7:对待测的ELF样本构建控制流图,提取控制流图的特征,写入arff文件,将该文件作为步骤6中所构建的分类器的输入,分类器的输出即为分类结果。2.如权利要求1所述的一种Linux...

【专利技术属性】
技术研发人员:王俊峰刘留徐宝新
申请(专利权)人:四川大学北京东方通科技股份有限公司
类型:发明
国别省市:四川,51

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

1