基于系统调用的恶意程序行为识别方法和系统与流程

文档序号:11156194阅读:247来源:国知局
基于系统调用的恶意程序行为识别方法和系统与制造工艺
本发明涉及软件行为识别分析
技术领域
,尤其是涉及基于系统调用的恶意程序行为识别方法和系统。
背景技术
:近年来,恶意程序的数量在持续增长,世界范围内拥有大量待分析的恶意程序样本,由恶意代码引发的信息安全事件造成了巨大的经济损失。安全研究人员和软件用户迫切希望准确有效地对恶意程序进行识别。程序行为识别其核心技术是对程序的行为语义结构的类型和功能特征进行特征抽取和鉴别分类的技术,按照技术原理划分,当前的程序行为识别技术分为静态分析技术与动态分析技术。其中,静态分析技术能够覆盖到所有执行流程,保证了分析的全面性,但是由于静态分析的代码和实际执行的代码存在的不一致性,恶意代码常常采用自我保护技术,产生了大量可用于分析的执行路径分支,且其中大部分是冗余路径,使得需要进行分析的程序分支数骤增。动态分析技术在近年有了长足的发展,但仍然存在一些局限,主要体现在缺乏对系统调用进行监控,从而很难对内核级别的恶意代码进行分析。另一方面,动态分析覆盖的执行路径数有限,从而很难保证恶意代码分析的完整性,对分析检测的准确性造成影响。技术实现要素:有鉴于此,本发明的目的在于提供基于系统调用的恶意程序行为识别方法和系统,使用二进制工具分析程序行为,并从多个维度提取程序特征,提高系统的准确率和效率,大大降低系统的安全风险。第一方面,本发明实施例提供了基于系统调用的恶意程序行为识别方法,包括:获取特征样本,对所述特征样本进行预处理,得到系统调用信息;将所述系统调用信息进行分类,构建三元组模型;将所述三元组模型中的元素进行量化,根据量化的元素得到所述系统调用的相似度,并根据所述系统调用的相似度得到系统调用序列的相似度;将所述特征样本进行挖掘聚类,得到挖掘结果,将所述挖掘结果与检测结果进行比对,得到比对概率;根据所述比对概率确定所述特征样本的安全状态。结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述获取特征样本,对所述特征样本进行预处理,得到系统调用信息包括:载入所述特征样本;对所述特征样本进行二进制插桩,得到所述系统调用信息;记录所述系统调用信息。结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述将所述系统调用信息进行分类,构建三元组模型包括:将所述系统调用信息按照功能划分,得到多个类别信息;分别提取多个所述类别信息对应的参数特征信息;统计每一类别所述系统调用执行的时间戳;按照所述类别信息、所述参数特征信息和所述时间戳构建所述三元组模型。结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述将所述三元组模型中元素进行量化包括:提取所述系统调用的语义部分的特征信息;通过所述语义部分的特征信息对所述三元组模型中的所述类别信息、所述参数特征信息和所述时间戳进行量化。结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述根据量化的元素得到所述系统调用的相似度包括:根据下式计算所述系统调用的相似度:Simfunction=category*Vcategory+parameter*Vparameter+time*Vtime其中,Simfunction为所述系统调用的相似度,category为类别,parameter为参数特征,time为时间戳,Vcategory、Vparameter、Vtime分别代表给category、parameter、time分配的权值。结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述特征样本进行挖掘聚类,得到挖掘结果,将所述挖掘结果与检测结果进行比对,得到比对概率,包括:将各类别中所述系统调用的数量和所述系统调用序列的相似度进行聚类挖掘,采用聚类算法并设定阈值,得到所述挖掘结果;从知识数据库中选取与所述挖掘结果相关的所述检测结果,将所述挖掘结果与所述检测结果进行比对,得到所述比对概率,并将所述挖掘结果作为所述检测结果存入所述知识数据库中。结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述检测结果包括正常样本和恶意样本,所述根据所述比对概率确定所述特征样本的安全状态包括:当所述挖掘结果与所述正常样本进行比对时,得到正常概率;当所述挖掘结果与所述恶意样本进行比对时,得到恶意概率;当所述正常概率大于所述恶意概率时,所述特征样本为正常程序状态;当所述正常概率小于所述恶意概率时,所述特征样本为恶意程序状态。第二方面,本发明实施例还提供基于系统调用的恶意程序行为识别系统,包括:特征提取模块、系统调用分类器、比对模块和数据挖掘模块;所述特征提取模块,与所述系统调用分类器相连接,用于获取特征样本,对所述特征样本进行预处理,得到系统调用信息;所述系统调用分类器,与所述比对模块相连接,用于将所述系统调用信息进行分类,构建三元组模型;所述比对模块,与所述数据挖掘模块相连接,用于将所述三元组模型中元素进行量化,根据量化的元素得到所述系统调用的相似度,并根据所述系统调用的相似度得到系统调用序列的相似度;所述数据挖掘模块,与所述比对模块相连接,用于将所述特征样本进行挖掘聚类,得到挖掘结果,将所述挖掘结果与检测结果进行比对,得到比对概率,并根据所述比对概率确定所述特征样本的安全状态。结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述检测结果包括正常样本和恶意样本,所述数据挖掘模块,还用于在所述挖掘结果与所述正常样本进行比对的情况下,得到正常概率;在所述挖掘结果与所述恶意样本进行比对的情况下,得到恶意概率。结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述数据挖掘模块,还用于在所述正常概率大于所述恶意概率的情况下,确定所述特征样本为正常程序状态;在所述正常概率小于所述恶意概率的情况下,确定所述特征样本为恶意程序状态。本发明实施例提供了基于系统调用的恶意程序行为识别方法和系统,包括获取特征样本,对特征样本进行预处理,得到系统调用信息;将系统调用信息进行分类,构建三元组模型;将三元组模型中的元素进行量化,根据量化的元素得到系统调用的相似度,并根据系统调用的相似度得到系统调用序列的相似度;将特征样本进行挖掘聚类,得到挖掘结果,将挖掘结果与检测结果进行比对,得到比对概率,根据比对概率确定特征样本的安全状态。本发明使用二进制工具分析程序行为,并从多个维度提取程序特征,提高系统的准确率和效率,大大降低系统的安全风险。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一提供的基于系统调用的恶意程序行为识别方法流程图;图2为本发明实施例一提供的基于系统调用的恶意程序行为识别方法中步骤S100的流程图;图3为本发明实施例一提供的基于系统调用的恶意程序行为识别方法中步骤S110的流程图;图4为本发明实施例一提供的基于系统调用的恶意程序行为识别方法中步骤S120的流程图;图5为本发明实施例一提供的基于系统调用的恶意程序行为识别方法中步骤S130的流程图;图6为本发明实施例一提供的基于系统调用的恶意程序行为识别方法中步骤S140的流程图;图7为本发明实施例二提供的基于系统调用的恶意程序行为识别系统的结构示意图。图标:10-特征提取模块;20-系统调用分类器;30-比对模块;40-数据挖掘模块。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。目前,静态分析技术能够覆盖到所有执行流程,保证了分析的全面性,但是由于静态分析的代码和实际执行的代码存在的不一致性,恶意代码常常采用自我保护技术,产生了大量可用于分析的执行路径分支,其中大部分是冗余路径,使得需要进行分析的程序分支数骤增。动态分析技术在近年有了长足的发展,但仍然存在一些局限,主要体现在缺乏对系统调用进行监控,从而很难对内核级别的恶意代码进行分析。另一方面,动态分析覆盖的执行路径数有限,从而很难保证恶意代码分析的完整性,对分析检测的准确性造成影响。基于此,本发明实施例提供基于系统调用的恶意程序行为识别方法和系统。为便于对本实施例进行理解,首先对本发明实施例所公开的一种基于系统调用的恶意程序行为识别方法进行详细介绍。实施例一:图1为本发明实施例一提供的基于系统调用的恶意程序行为识别方法流程图。参照图1,基于系统调用的恶意程序行为识别方法包括以下步骤:步骤S100,获取特征样本,对特征样本进行预处理,得到系统调用信息;步骤S110,将系统调用信息进行分类,构建三元组模型;步骤S120,将三元组模型中的元素进行量化,根据量化的元素得到系统调用的相似度,并根据系统调用的相似度得到系统调用序列的相似度;步骤S130,将特征样本进行挖掘聚类,得到挖掘结果,将挖掘结果与检测结果进行比对,得到比对概率;步骤S140,根据比对概率确定特征样本的安全状态。具体地,如图2所示,上述实施例基于系统调用的恶意程序行为识别方法中,步骤S100可采用如下步骤实现,包括:步骤S201,载入特征样本;步骤S202,对特征样本进行二进制插桩,得到系统调用信息;步骤S203,记录系统调用信息。这里,采用二进制插桩工具,对程序动态执行过程中的系统调用以及其参数进行记录。具体地,如图3所示,上述实施例基于系统调用的恶意程序行为识别方法中,步骤S110可采用如下步骤实现,包括:步骤S301,将系统调用信息按照功能划分,得到多个类别信息;步骤S302,分别提取多个类别信息对应的参数特征信息;步骤S303,统计每一类别系统调用执行的时间戳;步骤S304,按照类别信息、参数特征信息和时间戳构建三元组模型。这里,对每一个系统调用的结构与特征进行分析,统计各个类别系统调用出现的频率,并且建立系统调用三元组模型;其中,三元组模型Table<category,parameter,time>包括以下三个元素:category表示该系统调用所属的类别。我们将所有系统调用按照执行时的功能划分成五大类:注册表操作类型、文件操作类型、进程控制类型、内存管理类型、网络管理类型。其中每一类别又按照操作性质等规则又划分了如表1的子类别:表1系统调用的分类parameter表示系统调用函数所传进来的参数信息,根据不同的分类类型记录需要提取的相关特征,如表2所示:表2系统调用提取的参数特征类别提取的参数特征注册表操作KeyHandle、ObjectAttributes、SetData等文件操作FileHandle、Buffer、Routine等进程控制ProcessHandle、ThreadHandle、AttributeList等内存管理BaseAddress、MemoryInformation等网络管理InputBuffer、OutputBuffer、IP、Port等time为时间戳,表示该系统调用执行时所在的位置。具体地,如图4所示,上述实施例基于系统调用的恶意程序行为识别方法中,步骤S120中将三元组模型中的元素进行量化,可采用如下步骤实现,包括:步骤S401,提取系统调用的语义部分的特征信息;步骤S402,通过语义部分的特征信息对三元组模型中的类别信息、参数特征信息和时间戳进行量化。具体地,上述实施例基于系统调用的恶意程序行为识别方法中,步骤S120中根据量化的元素得到所述系统调用的相似度,可采用如下步骤实现,包括:根据公式(1)计算所述系统调用的相似度:Simfunction=category*Vcategory+parameter*Vparameter+time*Vtime(1)其中,Simfunction为系统调用的相似度,category为类别,parameter为参数特征,time为时间戳,Vcategory、Vparameter、Vtime分别代表给category、parameter、time分配的权值。这里,将上述结果做归一化表示后输出;进一步的,并根据系统调用的相似度得到系统调用序列的相似度包括:根据公式(2)计算系统调用序列的相似度:Simsequence[i][j]=max(Sim[i-1][j],Sim[i][j-1],Sim[i-1][j-1]+Simfunction[i][j])(2)其中,Simsequence[i][j]表示两个系统调用序列的相似度,Simsequence[i]包括i个系统调用的相似度,Simsequence[j]包括j个系统调用的相似度,最终输出的结果即是Simsequence[lena][lenb],lena、lenb分别代表两个系统调用序列的长度。具体地,如图5所示,上述实施例基于系统调用的恶意程序行为识别方法中,步骤S130可采用如下步骤实现,包括:步骤S501,将各类别中系统调用的数量和系统调用序列的相似度进行聚类挖掘,采用聚类算法并设定阈值,得到挖掘结果;步骤S502,从知识数据库中选取与挖掘结果相关的检测结果,将挖掘结果与检测结果进行比对,得到比对概率,并将挖掘结果作为检测结果存入知识数据库中。这里,为了提升系统的准确性和挖掘速度,采用聚类算法,在每一类别的数据中选取最具有代表性的一种或几种,设定阈值,将多条数据合并,降低了算法的空间复杂度,也提升了系统的效率,因此,本系统可以支持大数据背景下的恶意程序行为检测;进一步的,聚类和挖掘是一个不断迭代的过程。挖掘-聚类-挖掘-聚类,先挖掘数据,然后得到结果去聚类,之后通过聚类的结果不断提升挖掘的准确性,不断对比挖掘结果和检测结果,不断学习,提升自己下一次判断的准确率;具体地,首先进行原始挖掘过程,在系统初始情况下有一部分相关的挖掘结论,随着程序样本的不断增多,进行增量挖掘过程,在系统运行期间,读取上次增量挖掘之后的检测结果,并从先验知识库中读取有关程序的样本知识,然后将检测结果融入到知识数据库中,使得这些先验知识库的中心发生少量变化以适应最新的检测结果,并不断校正先验知识产生的挖掘算法。其中,本系统调用的增量挖掘算法包括贝叶斯分类模型、决策树分类模型等对数据进行增量挖掘,最后将挖掘结果重新存入挖掘结果中,替换原本结果形成新的增量挖掘库,使其能够对该新的恶意样本进行识别,增强数据挖掘的准确率。例如:将需要测试的程序特征样本A进行挖掘,将上次挖掘过的作为检测结果B存入增量挖掘的知识数据库中,然后从库中选取与我们特征样本相关的检测结果‘A,将特征样本A和检测结果‘A,进行比对,得到一个比对概率,下次判别时,将A作为检测结果存入库中。具体地,如图6所示,上述实施例基于系统调用的恶意程序行为识别方法中,步骤S140可采用如下步骤实现,包括:步骤S601,当挖掘结果与正常样本进行比对时,得到正常概率;步骤S602,当挖掘结果与恶意样本进行比对时,得到恶意概率;步骤S603,当正常概率大于恶意概率时,特征样本为正常程序状态;步骤S604,当正常概率小于恶意概率时,特征样本为恶意程序状态。其中,检测结果包括正常样本和恶意样本,通过两种不同样本与挖掘结果进行比对,得到正常概率与恶意概率,再将两者进行比较,来确定特征样本的安全状态。本发明实施例提供的基于系统调用分类与序列比对的恶意程序行为识别方法,从底层系统调用的角度出发,将系统调用分类,统计各个类别出现的数量,并声称系统调用序列的相似度,最终通过数据挖掘的过程保证系统的最终结果。该方法从多个维度描述程序的行为特征,能够更准确和快速地识别恶意软件行为,提升系统的安全性。实施例二:参照图7,基于系统调用的恶意程序行为识别系统,包括特征提取模块10、系统调用分类器20、比对模块30和数据挖掘模块40;特征提取模块10,与系统调用分类器20相连接,用于获取特征样本,对特征样本进行预处理,得到系统调用信息;系统调用分类器20,与比对模块30相连接,用于将系统调用信息进行分类,构建三元组模型;比对模块30,与数据挖掘模块40相连接,用于将三元组模型中元素进行量化,根据量化的元素得到系统调用的相似度,并根据系统调用的相似度得到系统调用序列的相似度;数据挖掘模块40,与比对模块30相连接,用于将特征样本进行挖掘聚类,得到挖掘结果,将挖掘结果与检测结果进行比对,得到比对概率,并根据比对概率确定特征样本的安全状态。进一步的,检测结果包括正常样本和恶意样本,数据挖掘模块40,还用于在挖掘结果与正常样本进行比对的情况下,得到正常概率;在挖掘结果与恶意样本进行比对的情况下,得到恶意概率。进一步的,数据挖掘模块40,还用于在正常概率大于恶意概率的情况下,确定特征样本为正常程序状态;在正常概率小于恶意概率的情况下,确定特征样本为恶意程序状态。本发明实施例提供的基于系统调用的恶意程序行为识别系统,与上述实施例提供的基于系统调用的恶意程序行为识别方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。本发明实施例所提供的基于系统调用的恶意程序行为识别方法和系统的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1