一种基于神经网络的入侵检测方法与流程

文档序号:15497738发布日期:2018-09-21 22:02阅读:219来源:国知局

本发明属于一种基于神经网络的入侵检测方法。



背景技术:

随着互联网的发展,互联网极大的方便了人们的生活,越来越多的个人、公司团体或者政府机构都依赖于互联网来开展业务,其中有一些是不愿意被公开的信息或机密。由于有一些我们的敌人或者竞争者可以通过手段获取到未经许可和授权的信息,一个不安全的系统往往会给个人、公司或者政府机构带来损失。网络入侵行为极大地威胁了安全上网和隐私保护。由于网络的复杂性,攻击手段的多样性,攻击者的有目的性,这都加剧了网络入侵检测的难度。目前市场上有许多方法来保证系统安全,例如安装防火墙,加密技术,入侵检测系统等等。本发明主要从入侵检测系统方面来发现甚至减少入侵行为。

入侵检测系统(intrusiondetectionsystems),通常称为ids,是一种通过收集感知系统和网络的各种信息,来分析系统和网络活动,用来防止未经授权的攻击行为。部署ids的目标是监测系统活动,及时发现并阻止可能的入侵行为,减少财产损失或防止隐私泄露等。一个入侵检测系统主要提供了三个功能:监测系统,检测可疑行为以及生成安全警报。生成安全警报是为了让网络管理员及时地进行安全决策。入侵检测系统与防火墙的区别是:防火墙就像一个篱笆,按照一定的规则,对进进出出的流量进行过滤,从而防止入侵,这是一个被动的过程;而入侵检测系统是对主动的去探测并分析系统行为,或者对已经穿透防火墙的行为进行分析,从而报货网络安全。在实际应用中,往往将两者结合起来,相得益彰,共同抵御外来入侵。

目前国内外的入侵检测系统可以从以下三个方面去分类:

1.数据来源:基于流量分析的ids、基于主机的ids以及两者混合的ids

2.入侵检测模型:误用检测(misusedetection)和异常检测(anomalydetection)

3.部署方式:集中式检测系统和分布式检测系统

基于误用的检测系统(anomalybaseddetectionsystem)的核心思想是首先对已知的异常行为进行建模分析,得出他们的一些行为特征,然后在系统中预先定义好这些特征信息,对于网络中的一切行为,如果满足系统中预先定义好的这些特征,则将其判断为攻击行为,否则,判断为正常访问行为。例如,snort,一个开源的轻量级的入侵检测系统,就是典型的这种类型的ids。这种基于误用的检测系统对于已知的攻击行为可以很好地进行阻止,但是对于新的未知的攻击,往往显得束手无策,因此,这种系统需要大量的专家不断地去分析层出不穷的新的攻击方法,对于已经部署了这种系统的用户,也需要经常更新他们的规则。

基于异常的入侵检测系统(anomalybaseddetectionsystem)的核心思想是通过对正常行为进行建模分析,在网络活动中,对于已经超过正常行为的阈值的,将其判定为异常。这种异常检测系统能够发现一些以前未知的攻击行为,也不需要通过分析大量的异常行为来为每一种攻击行为都定义一个规则,大大减少了人力活动。但是这种系统需要正确的区分开来正常行为和异常行为,他们两者之间的界限是比较模糊的,比较难以精确刻画出来,所以这种系统经常会产生一些错误警报。虽然这种“宁可错杀一千,也不愿放过一个”的做法有点极端,但是在网络安全领域,特别是涉及重大隐私或财产的时候,这也是一种保护手段,因此基于异常检测的方法得到广泛的研究。



技术实现要素:

本发明所要解决的技术问题是提供一种基于神经网络的入侵检测方法,用于解决现有技术存在的问题。

本发明解决上述技术问题所采取的技术方案如下:

本发明采取了上述方案以后,

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

下面结合附图对本发明进行详细的描述,以使得本发明的上述优点更加明确。其中,

图1是本发明中入侵检测系统的框架图

图2是本发明中神经网络——多层感知机结构图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本发明的目的是为了克服基于误用检测系统无法及时发现新的攻击行为的缺点,以及克服针对传统神经网络计算量大、超参数选择等问题,以及新的攻击行为层出不穷的问题,提出了一种基于神经网络的待反馈的自适应的入侵检测系统,该系统主要包括以下几个步骤:

步骤1)检测

检测主要是为了负责检测系统,例如流量嗅探,有哪些端口打开或者关闭,有哪些程序正在运行,收集系统中的重要信息,并通过这些信息来判断系统是否收到了攻击或即将收到攻击。本发明是一种基于流量数据包的入侵检测系统,所以在这个模块里面主要是嗅探捕获连接主机的流量信息。

步骤2)数据预处理

该步骤是为了检测异常。对于给定的大量的训练样本,该步骤确定了从特征选择,到数据预处理,再到识别异常的这个过程。

步骤3)分类

分类算法可以是决策树模型、支持向量机或者神经网络模型等。在本发明中使用神经网络算法来分类各种攻击。

步骤4)警报

警报是为了对于ids已经检测到的攻击事件予以通知,以便网络管理员能及时地做出决策,减少攻击行为带来的损失。

模块5)反馈

网络管理员会根据系统产生的警报对当前的系统做出一系列的操作;然而,对于虚警报即系统将正常访问行为判断为攻击行为以及错误警报即将攻击行为判断为正常行为的情况,系统管理员可以将这种系统产生的误差反馈给系统,让它不断的学习,以便以后遇到这种情况可以正确的做出决策。

上述技术方案中步骤2)又可以分为以下基本子步骤:

步骤2-1)特征选择

采集到的数据包流量信息里面包含了大量的特征,但是在实际应用当中,并不是所有的都能够用得到,有些甚至会影响检测效果,而且特征太多会增加神经网络的规模,增加计算开销,所以本发明采用了基于特征工程的方法来进行特征选择,在不降低检测精度的情况下,能够减少特征数量。

步骤2-2)特征编码

特征中有一些事标称属性的,需要通过采用伪编码的方式将其转换为数值属性的。

步骤2-3)特征向量标准化

针对特征矩阵中的列数据,有一些数值的极差比较大,而且量纲也不统一,为此,采用z-score方法将数值进行了标准化。

神经网络在真正能够分类之前,需要有大量的样本集进行训练,本发明采用kdd99数据集进行训练。

相比于基于误用的入侵检测系统,本发明是基于异常的检测,可以有效的发现未知的新的攻击行为;采用神经网络的分类模型,依靠其强大的非线性拟合能力,可以提高检测的精度。针对神经网络训练时候超参数选择的困难问题,本发明采用gridsearch法,可以高效的选择出一组适合当前任务的超参数;采用特征工程,对大量的网络特征进行筛选,能够减少输入规模,降低计算开销;采用反馈的机制,是系统成为一个闭环,能够在使用中不断地提升检测攻击能力。

1.基于svm的特征选择;

2.基于mlp的入侵检测模型;

3.反馈机制使系统成为一个闭环,在实战中不断优化模型;

基于gridsearch的超参数选择;

步骤1),采用开源软件winpcap来捕获数据包,采集到的数据包格式应该设置为跟训练集kddcup1999中的格式一样。

步骤2),数据预处理部分主要包括特征选择、数据编码和数据标准化三个子步骤:

步骤2-1),选择特征的直接决定算法分类的精度的上限,特征对于检测结果的重要性排序是特征选择的基本准则。在大量的特征中,需要确定哪些特征比较重要,哪些的重要性一般,哪些是无用的。通过特征选择的方法,可以消除一部分无用甚至有害的特征信息,这对于提高系统检测精度有很大作用;此外,也可以消除一些对结果影响比较小的特征,这样可以减少系统的检测时间。最全面得特征选择方法就是组合选出所有特征的子集,然后对于每个子集都进行训练测试,看哪个效果最好且时间开销比较低。假如有n个特征,则有2n个子集,这对于小规模的特征集合是比较实用的,但是对于网络数据包信息这种包含大量的属性特征来说是不太合适。因此本发明采用了另外一种“删除法”来进行特征重要性排序。具体算法如下:

基于svm的特征选择算法:

输入:kddcup1999的41个所有特征和所需要的特征个数k

输出:子特征集合

算法:

1.构建训练集和测试集

对于特征集合中的每个特征

2.从训练集和测试集中删除掉其中一个特征

3.使用剩下的特征来训练分类器

4.分析分类器的性能,包括检测精度和预测时间开销

排序所有特征的重要性,取前k个特征最为最终的特征

本发明主要采用了整体的检测精度和预测时间开销两个标准来进行评价。根据将svm应用于原始带有41个特征的数据集和删除一个特征之后的40个数据集进行对比,每一个特征属性都会标记为“重要”、“次要”和“一般”三个等级。定义了以下规则:

注:以上都是含有40个特征的数据集与含有41个特征的数据集进行对比。

因为最终是要从41个特征中选出k个特征值,按照从“重要”到“次重要”再到“一般”的顺序,在里面找精度最小的前k个即可。

步骤2-2),特征编码主要是针对标称属性。神经网络的输入是要求全部都是数值,而标称属性是一系列的类别,所以需要将它们进行转换。在这里主要采用一种称为伪编码(dummycode)的方式。具体来说就是,假如一个特征有5中类别,对于某一个样本在该特征属性上取值为cls_2,则最终将该特征表示为{0,1,0,0,0},由一个特征拓展到5个特征。

步骤2-3),标准化是针对训练数据的一列进行标准化,将样本的特征值转换到同一个量纲下,经过处理后的数据符合正太分布。在这里采用了z-score方法:

其中,μ是所有样本数据的均值,σ是所有样本数据的标准差。

步骤3),分类是入侵检测的核心组件。本发明采用具有强大非线性拟合能力的神经网络作为分类算法,多层感知机(mlp)是一种常用的神经网络算法。多层感知机由一系列级联的神经单元和非线性激活函数组成,包括输入层、隐藏层和输出层,如说明书附图2所示,后面一层的输入是前面一层的输出结果。mlp是个有监督学习算法,包括前向传播和误差反向传播两个过程。在前向传播过程中,

z(l+1)=w(l)a(l)+b(l)

a(l+1)=f(z(l+1)),forl=0,1,2,...,n

其中,a0是输入,我们用来表示连接第l的第j个神经单元和第l+1的第i个神经单元之间的参数,是用-0.01和0.01之间的随机数初始化;

同样的,用来表示在第l+1的第i个神经单元的偏置量,初始化为零;f(z)是激活函数,像sigmoid或者tanh等。

其中e表示以自然数。

我们通过梯度下降来训练我们的神经网络。更加形式化表示,对于一个训练样本(x,y),关于这个训练样本的代价函数定义为:

其中hw,b(x)表示给定输入x,经过神经网络计算的结果。

在反向传播过程中,我们利用如下公式来更新我们的参数。

其中α是学习率,j(w,b)表示损失函数。

步骤4),产生警报是为了当入侵检测系统检测到有非正常访问行为时候及时通知网络管理员。

步骤5),基于异常检测的入侵检测系统通常会有较高的虚报警率,为了降低虚报警率,采用反馈机制。反馈机制的具体操作是当系统产生了报警时候,但是实际没有攻击,这时候系统会将这个原始数据和错误的分类结果同步跟新到数据中心。然后定期的会重新训练神经网络算法,更新里面的参数。通过反馈机制,将系统形成一个闭环,可以让系统在使用过程中不断地变得“聪明”,分类结果更加准确。

上面所述是整个系统的运行过程,但是在分类算法能够进行分类之前,还需要对mlp进行训练。

本发明采用gridsearch(格搜索)法来进行训练。gridsearch具体操作就是首先定义一系列需要优化的超参数,在这里包括{隐藏层的层数以及每一层的神经单元的个数,激活函数的选择sigmoid或者tanh,是否加入l2正则化},然后再通过排列组合的方式,组合出所有可能的形式,最后针对每一组超参数的设置进行训练,选择分类精度最高的一组超参数作为最终的参数设置。

需要说明的是,对于上述方法实施例而言,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。

而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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