APP下载

基于神经网络的入侵检测原型研究

2015-07-13黄海燕薛焕堂张保龙

电脑知识与技术 2015年13期
关键词:入侵检测神经网络模块

黄海燕 薛焕堂 张保龙

摘要:网络已经渗透到人们生活的各个领域,随着网络用户的大幅度增长,受到攻击的系统越来越多。网络安全技术的研究已经成为重点。入侵检测能进行安全审计、监视网络数据,识别网络攻击,并能及时响应,但是误报率高。神经网络具有很好的并行计算,自适应计算,抗干扰和智能判断的特征,可以准确处理失真信号。这些特征能优化现有的入侵检测方法。分析了网络攻击的分类和入侵检测原型总体结构,设计了入侵检测原型的详细设计,规范了相关数据结构,根据特征对执行流程进行提取,指出了检测网络的攻击范围。提出神经网络的训练流程,概括了神经网络检测的程序算法。

关键词:神经网络;入侵检测;模块

中图分类号:TP393 文献标志码:A 文章编号:1009-3044(2015)13-0171-02

网络给我们带来巨大机会和发展的同时也给我们带来了恶意入侵的危险。就现在的整体情况来看,经常使用的网络安全技术还局限于防火墙等一些静态的安全保护方式,要是没有积极主动的一些安全防护方式相配合,他的安全性能就是有残缺的。开发一种主动防御、及时控制的技术就很有必要。入侵检测技术恰恰就是这样的一种技术。入侵检测在国内有很多文献进行研究,目前入侵检测存在的最大问题是检测中误报率较高。所以我们要提高入侵检测的智能型。神经网络顾名思义模仿人的大脑,具有很好的并行计算,自适应计算,抗干扰和智能判断的特征,可以准确处理失真信号。这些特征能优化现有的入侵检测方法,是发展的必然趋势。

1网络攻击的分类

从攻击的技术手段方面看,网络攻击分为两大类。第一类分析攻击行为,并在数据包的载荷部分把其特征隐藏。有字符串结合而成的,服务于系统的一些常用命令,没有被显示出来。但是一旦点击包含此字符串的对象,入侵行为就被激活。这种利用计算机本身系统结构特点和应用层协议的一些漏洞产生的攻击称为高层网络攻击。第二类攻击称为低层网络攻击。主要攻击发生在网络连接的时间和数据流量上,这类攻击主要是针对TCP/IP协议栈中的基础协议的漏洞进行攻击。

2入侵检测原型总体结构

图1描述了原型的总体结构模型。对主要模块的总体功能进行如下介绍。

1)数据捕获模块,捕获在系统中运行的数据包,预处理模块处理这些数据包。在实现时,将网络接口设成混杂模式,方便数据流通,并同时监听经过设备的数据[1]。

2)数据预处理模块分析网络上获得的信息,对数据包根据协议类型一层一层解析。记录和计算TCP连接信息,半开连接信息,保护网络主机不同端口连接信息和半开连接信息,并对SYN报文和FIN报文的链表状态和链表结点进行维护。IP协议处理函数中进行碎片信息的处理和记录,目的是把基于碎片的拒绝服务攻击提供给神经网络模块。总结信息并把信息转化,进行归一化处理,结合TCP数据报的标志位送入神经网络检测模块,检测攻击的存在。最后把得到的特征用于ICMP协议的扫描或攻击检测。

3)数据预处理模块把得到的特征传给神经网络检测模块,神经网络检测模块负责计算输出层的输出结果,并根据结果判断攻击。神经网络检测模块有三大模块构成。能检测网络漏洞扫描和TCP协议中拒绝服务攻击的TCP神经网络检测模块;能通过检测到拒绝服务攻击和ICMP的IP神经网络检测模块;基于ICMP的主机活性扫描和拒绝服务攻击的检测被神经网络检测模块实现。

4)神经网络训练模块对己知的网络攻击离线训练,以矩阵形式将训练好的神经网络的各层连接权存入磁盘文件中,在系统开始运行时神经网络检测模块读入磁盘中的权值到神经网络结构中。神经网络训练模块也可分为TCP神经网络训练模块、m神经网络训练模块和ICMP神经网络训练模块[1]。

5)响应报警模块报告当前的被检测数据对象是否存在攻击的迹象,判断依据是神经网络的输出。

3基于神经网络入侵检测原型详细设计

详细设计分为数据捕获模块、数据预处理模块、神经网络训练模块、神经网络测试模块、响应报警模块五个模块。

数据捕获模块。网络数据的捕获通过Libpcap编程接口实现。这种接口是网络数据包的标准捕获接口,它效率高、独立性和移植性强。使用具有快速的网络数据包过滤功能的BPF数据包捕获机制。数据捕获过程中通过Libpcap截获网络数据包。

数据预处理模块。数据预处理模块接收网络数据包,这些数据包由数据捕获模块送过来。接收后先处理这些数据包,并将处理的结果转化为向量送入神经网络检测模块检测。数据预处理模块处理的数据包分别针对三种协议:IP、TCP、ICMP。IP协议的预处理主要提取针对基于m碎片的攻击特征;TCP协议的预处理针对基于TCP协议网络扫描并对拒绝服务攻击特征提取。

神经网络训练模块。采用双隐层BP神经网络作为神经网络训练模块的网络结构。离线状态下运行神经网络训练模块。网络攻击和正常网络流通的一些知识,让检测模块在对网络攻击事件进行检查入侵之前学会。提供给神经网络训练模块已知攻击的输入特征向量和与之对应的期望输出向量由系统管理员负责。本原型输入特征向量是预处理模块得到的可描述攻击行为的特征向量;期望输出数据一般为一串二进制0、1串指示了是何种具体的攻击。本原型对基于IP、ICMP、TCP协议的网络扫描和拒绝服务攻击进行检测,相应定义了三种(IP、ICMP、TCP)神经网络[2]。

神经网络检测模块。神经网络检测模块接受的特征向量是由预处理模块送来,这些特征向量做为神经网络的输入向量,是由神经网络的各层计算出结果,然后把结果在输出层输出。输出结果可能显示的是正常的数据流,可能指示某一种网络攻击,也可能是未知的结果即这个结果在神经网络训练时没有定义。针对这种情况,对于前两种情况,系统管理员应记录下这时神经网络的输入向量和输出向量,在神经网络进行训练时,加入这两种情况。对于后一种情况,需要在进行分析。

响应报警模块。响应报警模块对接受神经网络输出向量,根据编码的对应关系,判断攻击行为。发现对应的攻击。就会有相应的消息打印在屏幕上,并会有指示这种攻击的全局变量在系统中设置;若没有找到对应攻击,则不打印消息。理论上讲训练神经网络时,对输出向量的编码是0、1串。但真正的输出不会严格的是0、1串,所以约定,数值大于0.7的按1对待,小于0.3的按0对待。

改进后BP神经网络的训练

4神经网络训练流程

P代表样本总数。

F代表不合格样本数。

M代表正确率,设在1%-100%之间。

E为网络训练后要达到的精度,设为小数。

5神经网络检测

对参数和变量进行初始化;

从记事本文件中读取检测样本、期望值、权值、阈值;

for(n=1;n<=I;n++) /*n为样本数量*/

{放入矩阵第一行;

{for(n=1;n<=I;n++)/*第二层样本数*/

根据阈值和权值的到线性输出,放入矩阵第二行;

}

if(小于正确率) 不合格样本数++;

}

输出该组数据的检测结果;

end

正确率输出结果越接近l,表明可能受到攻击。

6 结束语

本文调研了常见的网络攻击手段,探讨了入侵检测技术的研究方法、入侵检测的发展方向。根据神经网络的特点,将神经网络与入侵检测结合。设计了一个简化的基于神经网络的网络入侵检测原型。原型通过统计底层网络协议的数据流量信息数据包协议头的信息,将这些信息预处理后送入已训练过的神经网络模块,以此判断当前网络数据流量存在的攻击或扫描行为。此原型提出了具有更高检测率并且能检测变种攻击的模块设计。

参考文献:

[1] 张文修,梁怡.基于包含度的不确定推理[M]. 北京:清华大学出版社,2007.

[2] 冯立颖.改进的BP神经网路算法及其应用[J]. 计算机仿真,2010(12):173-175.

[3] 张金梅.基于神经网络的高校教学质量评价体系的设计与实现[D]. 太原:太原理工大学, 2005.

猜你喜欢

入侵检测神经网络模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
神经网络抑制无线通信干扰探究
基于入侵检测的数据流挖掘和识别技术应用
艺术类院校高效存储系统的设计
基于关联规则的计算机入侵检测方法
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定
集成水空中冷器的进气模块