本文在cidf通用模型基础之上,提出一种企业入侵检测模型(如图2)。系统基于windows平台,数据库采用sqlserver。ids直接运行在服务器端,实时监测各个客户端的数据库调用。 图2:企业应用系统入侵检测模型 2.1 主要功能模块介绍 模型主要由四个主要模块组成: 数据采集:主要由sqlserver跟踪日志给出,相当于事件产生器; 检测单元:主要由神经网络训练出一个相对稳定的正常模型,用于检测异常调用,相当于事件分析器; 特征数据库:主要利用误用检测的特点,实现快速检测各种已知的异常调用,并直接反馈倒报警单元,相当于事件数据库,其中特征数据库与被监控数据库分离存储; 报警单元:主要是杀掉异常调用的客户端进程,反馈给系统管理员并记录到自定义日志文件,相当于响应单元。 2.2 流程介绍 系统主要流程是:首先通过采集的样本数据经过训练后形成检测单元,建立相应特征数据库并完成日志文件初始化工作;然后实时监测客户端调用,将数据直接和特征数据库进行匹配,如有匹配则送入报警单元,反之则送入检测单元;检测单元将数据作为输入向量与正常模型比较,如果泛化输出值大于期望值,则列为异常,直接送入误用数据库存储,并通知报警单元,反之继续监测各调用。 下面从数据采集和神经网络学习两方面来讨论系统具体实现的关键技术。 3 关键技术实现 3.1数据采集 入侵检测的关键是用户行为特征的提取。本文主要研究客户端对主机数据库的安全调用,所以考虑sqlserver跟踪各客户端的数据库调用作为数据源,主要利用sqlserver的事件探察器,建立新的跟踪文件,针对tsql、存储过程、安全审核、会话等事件,选取objectid, loginname, cpu, read, write clientprocessid, spid 七个数据列作为输入向量。分别表示客户端对数据库表、存储过程和视图的调用;客户数据库登陆名;cpu占用时间;对数据库的读写操作;客户端进程号和系统分配进程号。这七种数据在对数据库的调用过程中相对稳定。loginname中则主要考虑客户端默认调用sa,采集到的数据都是十进制数据,不需要额外的数据预处理,符合神经网络输入的要求。 3.2 神经网络学习 系统采用vogl改进批处理bp学习算法,采用三层神经网络:输入单元为七个,分别对应上述七个处理向量;输出层为一个神经单元,输出结果规定在(0,1)范围内,用0表示为正常行为,用1表示为异常行为;隐层结点通过试验确定为6个;权值和阈值为小的随机数;学习率为0.1;隐含层和输出层采用sigmoid函数f(x)=(1+e-x)-1为激发函数,该函数具有非线性放大功能,可以把输入从负无穷大放大到正无穷大的信号,变换到0到1之间的输出,可以逼近非线性输入/输出关系。我们将七种特征向量作为神经网络的输入向量,训练的结果就是确定了bp网络的权值,而这些权值就存储了行为的特征模式,将训练后的神经网络用于实际的工作,就可以判断是否有异常的调用,如发现了新的非权限异常调用,则把检测到的模式存储到特征数据库。 系统在正常运行一周内,从跟踪文件中随机选取了1000个样本作为训练样本,500个样本作为检测样本。构建的正常行为模型85%以上的能够检测到未知的异常操作;而误用数据库则几乎100%的可以快速检测得到各种已知的异常调用。 4 结束语 本文利用改进bp神经网络成功解决了mis系统内部安全隐患的问题。是运用智能检测技术对企业mis安全保障的有效尝试。提出的入侵检测模型和数据采集方法为今后的工作打开了思路。进一步的工作是要深入研究智能入侵技术的其他方法,例如模式识别和数据挖掘理论等,结合应用到mis入侵检测系统中,使其逐渐完善。 参考文献: [1] 刘美兰,姚京松.神经网络在入侵检测系统中的应用[j].计算机工程与应用,1999, (6):37-42. [2] 撖书良,蒋嶷川,张世永.基于神经网络的高效智能入侵检测系统[j].计算机工程,2004,30[10]:69-70. [3] 陈瑾,罗敏,张焕国.入侵检测技术概述[j].计算机工程与应用,2004,(2):133-136. [4] 王士同,陈慧萍,赵跃华,钱旭.人工智能教程[m].北京:电子工业出版社,2002. [5] lippmann r p,cunningham r k.improving intrusion detection performance using keyword selection and neural networks. computer networks,(2000),34:597-603