异常系统调用的攻击防御方法、系统及防御装置与流程

文档序号:18414716发布日期:2019-08-13 19:13阅读:181来源:国知局
异常系统调用的攻击防御方法、系统及防御装置与流程

本发明涉及计算机安全领域,尤其涉及一种异常系统调用的攻击防御方法、系统及防御装置。



背景技术:

近年来随着大数据及人工智能时代的来临,各公司许多研究及产品,皆以类神经网络(nn)为基础,结合高算力的gpu设备,以进行各种文字、图片及视频的分类应用。但相较于以上应用,针对于恶意软件所导致的异常系统调用入侵防御的相关研究较少,且大部分研究无法有效的商品化,归咎主因有二:

一、目前所有的人工智能自我学习算法,皆须依赖大量标记过后的训练数据为基础,但恶意软件在大规模扩散之前,必然是未曾出现过的,故大部分网络安全公司能取得的讯练数据,皆为正常的系统调用数据,至于因恶意软件所引起的异常系统调用数据,则相当难以取得,即使能够取得,必然也是过去几年的数据,相对参考价值较低。这样的艰难状况,对于需要大量训练数据为基础的深度学习算法已然成为相当大的阻碍,故目前市面上大部分对于异常系统调用入侵检测产品的防御手法,仅能针对那些已经被清楚分析且了解的网路攻击行为,以人为定义规则库的方式来加以侦测,而其他经由变形方式或针对现有攻击做小幅度修改的攻击手法,往往成为异常系统调用入侵检测的弱点之一,更不用说对于未知攻击而言,此类侦测方式更是毫无招架之力。

二、目前较流行的人工智能算法为深度学习算法,此类算法在图形辨识领域已取得了相当巨大的成功。但深度学习算法须以深度类神经网络(dnn)搭配高算力的gpu硬件作为运算基础,才能进行有效率的自我学习。如欲以深度学习算法进行异常系统调用侦测,则上述类神经网络的结构将随着恶意软件攻击模式的进化变得越来越复杂,故其运算速率及准确率,亦将更需依赖高算力的gpu来提升。一般在家庭计算机、手机、甚至嵌入式系统或芯片中,受安装面积及制造成本的限制,并无法安装此类gpu硬件设备,但这样极可能导致深度学习算法的运算速率及分类准确率大幅降低。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术中的上述缺陷,提供一种异常系统调用的攻击防御方法、系统及防御装置。

本发明解决其技术问题所采用的技术方案是:构造一种异常系统调用的攻击防御方法,应用于服务器端,包括:

接收本地端回传的系统调用序列,并将其存储至数据库;

在训练阶段中,使用编码类神经网络及解码类神经网络,对所述数据库中的所述系统调用序列进行训练,以获取训练好的自编码及解码模块;

在训练完成后,通过所述自编码及解码模块中的第一编码器对所述数据库中的所述系统调用序列进行特征编码,以获取相应的第一特征向量集合;而且,将所述第一编码器的编码参数传送至本地端,以在本地端构建第二编码器,并通过所述第二编码器对本地端的系统调用序列进行特征编码而获取第二特征向量集合;

将所述第一特征向量集合进行回归方程运算,以获取相应的回归方程式,并将所述回归方程式传送至本地端,以使本地端将所述第二特征向量通过所接收的回归方程式在特征空间中进行比对,并根据比对结果判断所述系统调用序列是否为正常系统调用。

本发明还构造一种异常系统调用的攻击防御方法,应用于本地端,包括:

当侦测到有程序执行时,从操作系统上获取系统调用序列,并将所述系统调用序列回传至服务器端;

通过第二编码器对所述系统调用序列进行特征编码,以获取相应的第二特征向量集合,其中,所述第二编码器根据服务器端传入的自编码及解码模块中第一编码器的编码参数构建,而且,服务器端在训练完成后通过所述第一编码器将所接收的系统调用序列进行特征编码,以获取第一特征向量集合;

将所述第二特征向量通过回归方程式在特征空间中进行比对,并根据比对结果确定所述系统调用序列是否为正常系统调用,其中,所述回归方程式由服务器端对所述第一特征向量集合进行回归方程运算而获取并传送。

优选地,将所述系统调用序列传送至服务器端,包括:

实时将所述系统调用序列传送至服务器端;或,

在日志文件中记录所获取的系统调用序列,并在日志文件中的系统调用序列的数量达到预设值时,将所述日志文件中的系统调用序列传送至服务器端;或,

每间隔预设时段将所述系统调用序列传送至服务器端。

优选地,根据比对结果判断所述系统调用序列是否为正常系统调用,包括:

若所述第二特征向量集合中的特征向量属于所述回归方程式范围,则确定与所述特征向量对应的系统调用序列为正常系统调用;

若所述第二特征向量集合中的特征向量不属于所述回归方程式范围,则确定与所述特征向量对应的系统调用序列为异常系统调用;

所述异常系统调用的攻击防御方法,还包括:

对判断结果进行显示,所述判断结果包括:正常系统调用、异常系统调用。

优选地,还包括:

将判断结果及所述系统调用序列的副本回传至服务器端,以供服务器端后续进行加强式自学习。

本发明还构造一种服务器端防御装置,包括:

数据库,用于存储本地端回传的系统调用序列;

自编码及解码模块,用于在训练阶段中,使用编码类神经网络及解码类神经网络,对所述数据库中的所述系统调用序列进行训练,而且,在训练完成后,所述自编码及解码模块中的第一编码器用于对所述数据库中的所述系统调用序列进行特征编码,以获取相应的第一特征向量集合;

回归方程运算模块,用于将所述第一特征向量集合进行回归方程运算,以获取相应的回归方程式;

第一通讯模块,用于接收本地端回传的系统调用序列;还用于将所述第一编码器的编码参数传送至本地端,以在本地端构建第二编码器,并通过所述第二编码器对本地端的系统调用序列进行特征编码而获取第二特征向量集合;还用于将所述回归方程式传送至本地端,以使本地端将所述第二特征向量通过所接收的回归方程式在特征空间中进行比对,并根据比对结果判断所述系统调用序列是否为正常系统调用。

本发明还构造一种本地端防御装置,包括:

第二通讯模块,用于将从操作系统上获取的系统调用序列传送至服务器端;还用于接收服务器端传入的自编码及解码模块中第一编码器的编码参数,其中,所述第一编码器用于在训练完成后对所接收的系统调用序列进行特征编码,以获取第一特征向量集合;还用于接收服务器端传入的回归方程式,其中,所述回归方程式为服务器端对所述第一特征向量集合进行回归方程运算而获取;

第二编码器,用于根据所接收的编码参数而构建,且用于对所述系统调用序列进行特征编码,以获取相应的第二特征向量集合;

分类运算模块,用于将所述第二特征向量通过所述回归方程式在特征空间中进行比对,并根据比对结果确定所述系统调用序列是否为正常系统调用。

本发明还构造一种服务器端防御装置,包括第一处理器及存储有计算机程序的第一存储器,所述第一处理器在执行所述第一存储器中的计算机程序时实现上述异常系统调用的攻击防御方法的步骤。

本发明还构造一种本地端防御装置,包括第二处理器及存储有计算机程序的第二存储器,所述第二处理器在执行所述第二存储器中的计算机程序时实现上述异常系统调用的攻击防御方法的步骤。

本发明还构造一种异常系统调用的攻击防御系统,包括:

以上所述的服务器端防御装置;及

多个以上所述的本地端防御装置。

实施本发明的技术方案,以非监督式学习的方式提取在正常系统调用序列中最具代表性的序列特征,可有效提升对于未曾见过的恶意软件的侦测有效性。

二、以分布式计算的方式,有效分配运算资源,将须依赖高计算能力的训练过程分配于服务器端主机,仅在本地端进行相对较低计算能力需求的运算。这样,不仅可维持复杂型类神经网络的分类准确度,也同时兼顾演算速率,除此之外,也无需再在本地端设备上安装额外的gpu硬件,这样可大幅降低硬件开销成本。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图中:

图1是本发明异常系统调用的攻击防御方法实施例一的流程图;

图2是本发明异常系统调用的攻击防御方法实施例二的流程图;

图3是本发明异常系统调用的攻击防御系统实施例一的逻辑结构图;

图4是本发明服务器端防御装置实施例一的逻辑结构图;

图5是本发明本地端防御装置实施例一的逻辑结构图。

具体实施方式

下面结合附图详细说明本发明的具体实施方式。

在此记载的具体实施方式/实施例为本发明的特定的具体实施方式,用于说明本发明的构思,均是解释性和示例性的,不应解释为对本发明实施方式及本发明范围的限制。除在此记载的实施例外,本领域技术人员还能够基于本申请权利要求书和说明书所公开的内容采用显而易见的其它技术方案,这些技术方案包括采用对在此记载的实施例的做出任何显而易见的替换和修改的技术方案,都在本发明的保护范围之内。还需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

在本发明中,“系统调用”是指一软件要达成某一特定任务时,需调用操作系统的一连串底层程序,以有效达成该任务需求。而“正常系统调用”是指:该软件所调用的底层程序为经广大用户所认可的不具有安全风险的程序,即,使用该软件后的安全风险与使用该软件前相同。反之,则为“异常系统调用”。在系统调用序列收集后,可通过大量的系统调用序列进行机器学习,以得到正常系统调用序列的运作规律。

图1是本发明异常系统调用的攻击防御方法实施例一的流程图,该实施例的攻击防御方法应用于服务器端,且具体包括:

步骤s11.接收本地端回传的系统调用序列,并将其存储至数据库;

步骤s12.在训练阶段中,使用编码类神经网络及解码类神经网络,对所述数据库中的所述系统调用序列进行训练,以获取训练好的自编码及解码模块;

步骤s13.在训练完成后,通过所述自编码及解码模块中的第一编码器对所述数据库中的所述系统调用序列进行特征编码,以获取相应的第一特征向量集合;而且,将所述第一编码器的编码参数传送至本地端,以在本地端构建第二编码器,并通过所述第二编码器对本地端的系统调用序列进行特征编码而获取第二特征向量集合;

步骤s14.将所述第一特征向量集合进行回归方程运算,以获取相应的回归方程式,并将所述回归方程式传送至本地端,以使本地端将所述第二特征向量通过所接收的回归方程式在特征空间中进行比对,并根据比对结果判断所述系统调用序列是否为正常系统调用。

图2是本发明异常系统调用的攻击防御方法实施例二的流程图,该实施例的攻击防御方法应用于本地端,且具体包括:

步骤s21.当侦测到有程序执行时,从操作系统上获取系统调用序列,并将所述系统调用序列回传至服务器端;

步骤s22.通过第二编码器对所述系统调用序列进行特征编码,以获取相应的第二特征向量集合,其中,所述第二编码器根据服务器端传入的自编码及解码模块中第一编码器的编码参数构建,而且,服务器端在训练完成后通过所述第一编码器将所接收的系统调用序列进行特征编码,以获取第一特征向量集合;

步骤s23.将所述第二特征向量通过回归方程式在特征空间中进行比对,并根据比对结果确定所述系统调用序列是否为正常系统调用,其中,所述回归方程式由服务器端对所述第一特征向量集合进行回归方程运算而获取并传送。

上述实施例的技术方案具有以下有益效果:

一、以非监督式学习的方式提取在正常系统调用序列中最具代表性的序列特征,此举可有效提升对于未曾见过的恶意软件的侦测有效性。

二、以分布式计算的方式,有效分配运算资源,将须依赖高计算能力的训练过程分配于服务器端主机,仅在本地端进行相对较低计算能力需求的运算。这样,不仅可维持复杂型类神经网络的分类准确度,也同时兼顾演算速率,除此之外,也无需再在本地端设备上安装额外的gpu硬件,这样可大幅降低硬件开销成本。

另外,该技术方案也具相当的弹性,不仅可应用于恶意软件的防御应用,也可以将该技术方案直接扩充至各种文字、图片及视频的分类应用,且无须再修改系统架构。而且,该技术方案的实施无地域、时间的限制,具有鉴别迅速、正确直观,成本低廉等优点。

在一个可选实施例中,步骤s21中,将所述系统调用序列传送至服务器端,包括:

实时将所述系统调用序列传送至服务器端;或,

在日志文件中记录所获取的系统调用序列,并在日志文件中的系统调用序列的数量达到预设值时,将所述日志文件中的系统调用序列传送至服务器端;或,

每间隔预设时段将所述系统调用序列传送至服务器端。

在一个具体实施例中,在步骤s23中,根据比对结果判断所述系统调用序列是否为正常系统调用,即,对第二特征向量进行特征分类的运算,而且,包括:

若所述第二特征向量集合中的特征向量属于所述回归方程式范围,则确定与所述特征向量对应的系统调用序列为正常系统调用;

若所述第二特征向量集合中的特征向量不属于所述回归方程式范围,则确定与所述特征向量对应的系统调用序列为异常系统调用。

而且,进一步地,在步骤s23之后,本发明的异常系统调用的攻击防御方法还包括:

对判断结果进行显示,所述判断结果包括:正常系统调用、异常系统调用。

在一个可选实施例中,在步骤s23之后,本发明的异常系统调用的攻击防御方法还包括:

将判断结果及所述系统调用序列的副本回传至服务器端,以供服务器端后续进行加强式自学习。

图3是本发明异常系统调用的攻击防御系统实施例一的逻辑结构图,该实施例的攻击防御系统包括有:服务器端防御装置10、多个本地端防御装置20、…、20′。结合图4,服务器端防御装置包括有:数据库11、自编码及解码模块12、回归方程运算模块13、第一通讯模块14。结合图5,本地端防御装置包括有:第二编码器21、分类运算模块22、第二通讯模块23。下面具体说明每个模块:

数据库11用于存储本地端回传的系统调用序列,具体地,该数据库11可为(但不限于)一种位于服务器端的数据库,本数据库主要储存各本地端防御装置在本地端程序执行时所传回的系统调用序列,例如:open,read,mmap,mmap,open,getrlimit,mmap,close。

自编码及解码模块12用于在训练阶段中,使用编码类神经网络及解码类神经网络,对数据库11中的系统调用序列进行训练,而且,在训练完成后,自编码及解码模块12中的第一编码器121用于对数据库11中的系统调用序列进行特征编码,以获取相应的第一特征向量集合。具体地,自编码及解碼模块12可为(但不限于)一种基于类神经网络的自编码模型,其架构可视需求自由调整,主要分为第一编码器(encoder)121、译码器(decoder)122。在训练阶段中,将输入数据库11中的数据,并使用编码类神经网络及解码类神经网络进行训练。训练完成后,可透过其中的第一编码器将数据库11中的数据进行特征编码,最后输出一组与数据库中的数据对应的特征向量集合。

回归方程运算模块13用于将所述第一特征向量集合进行回归方程运算,以获取相应的回归方程式。具体地,回归方程运算模块13为(但不限于)一种可将特征向量集合输入并自动进行回归方程运算的模块,本模块最后可输出对应所输入的特征向量集合的回归方程式。

第一通讯模块14用于接收本地端回传的系统调用序列;还用于将第一编码器121的编码参数传送至本地端,以在本地端构建第二编码器,并通过第二编码器21对本地端的系统调用序列进行特征编码而获取第二特征向量集合;还用于将回归方程式传送至本地端,以使本地端将所述第二特征向量通过所接收的回归方程式在特征空间中进行比对,并根据比对结果判断所述系统调用序列是否为正常系统调用。

第二通讯模块23用于将从操作系统上获取的系统调用序列传送至服务器端;还用于接收服务器端传入的自编码及解码模块12中第一编码器121的编码参数,其中,第一编码器121用于在训练完成后对所接收的系统调用序列进行特征编码,以获取第一特征向量集合;还用于接收服务器端传入的回归方程式,其中,回归方程式为服务器端对所述第一特征向量集合进行回归方程运算而获取。

第二编码器21用于根据所接收的编码参数而构建,且用于对所述系统调用序列进行特征编码,以获取相应的第二特征向量集合。具体地,第二编码器21为(但不限于)一种可经由服务器端传入的编码参数进行特征编码的类神经网络模块,其类神经网络架构需与服务器端的第一编码器121相同,主要用于实时侦测阶段中,将系统调用序列的数据,透过第二编码器21将系统调用序列的数据进行特征编码,最后输出一组与系统调用序列数据x对应的特征向量z。

分类运算模块22用于将所述第二特征向量通过所述回归方程式在特征空间中进行比对,并根据比对结果确定所述系统调用序列是否为正常系统调用。具体地,分类运算模块22为(但不限于)一种可经由服务器端传入的回归方程式,结合本地端特征向量集合进行特征分类的运算模块。主要用于实时侦测阶段中,将系统调用序列数据x所对应的特征向量z,通过服务器端传入的回归方程式,在特征空间中进行比对,如z属于该回归方程式范围,则本系统调用序列数据x定义为正常系统调用,反之则为异常系统调用。

最后,分类运算模块22可将分类结果显示于本地端,并向服务器端回传分类结果及实时系统调用序列数据x的副本,以供后续进行服务器端进行加强式自我学习使用。

本发明还构造一种服务器端防御装置,其包括第一处理器及存储有计算机程序的第一存储器,而且,第一处理器在执行第一存储器中的计算机程序时实现图1所示的攻击防御方法的步骤。

本发明还构造一种本地端防御装置,其包括第二处理器及存储有计算机程序的第二存储器,而且,第二处理器在执行第二存储器中的计算机程序时实现图2所示的攻击防御方法的步骤。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何纂改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1