作者:李思广 周雪梅
来源:《硅谷》2008年第08期
[摘要]入侵检测系统是保障网络信息安全的重要手段,针对现有的入侵检测技术存在的不足,提出了基于机器学习的入侵检测系统的实现方案。简要介绍几种适合用于入侵检测系统中的机器学习算法,重点阐述基于神经网络、数据挖掘和人工免疫技术的入侵检测系统的性能特点。
[关键词]机器学习 入侵检测系统 神经网络 数据挖掘 人工免疫
中图分类号:TP309.2 文献标识码:A 文章编号:1671-7597(2008)0420039-02
入侵检测系统(Intrusion Detection System,IDS)是继防火墙之后新一代的网络安全保障技术,是当前计算机网络安全理论研究的一个热点。IDS从计算机系统和网络中采集、分析数据,查找非授权访问和可疑行为,并采取适当的响应措施来阻挡攻击,降低可能的损失,从检测原理上IDS分为异常检测和误用检测两种主要类型。IDS一般由数据采集、数据分析和响应等三部分构成。正确性是IDS最基本的需求,系统的可扩展性和自适应性也是当今计算机网络环境中IDS所面临的重要问题,随着新的系统安全漏洞和新的攻击手段不断的发现,IDS需要频繁而又及时地更新来适应需求,从而提高入侵检测的效率。传统的IDS存在着以下几个难以解决的问题:对未知网络攻击检测能力不强,误警率过高;算法的参数和系统的阈值难以确定和调整,可扩充性差;对攻击数据的关联和分析功能不足,导致过多的人工参与;检测范围不广,对于现在广泛使用的脚本攻击防御能力差;检测速度慢,实时性不强;占用资源多等。为了适应新的攻击方式的出现,提高入侵检测的效率、降低漏报率和误报率,把机器学习的方法引入到IDS中是当前重要的课题。
一、机器学习理论
(一)机器学习的主要策略
学习是一项复杂的智能活动,学习过程与推理过程是紧密相连的,按照学习中使用推理的多少,机器学习所采用的策略大体上可分为四种机械学习、通过传授学习、类比学习和通过事例学习[1]。学习中所用的推理越多,系统的能力越强。
(二)机器学习的系统模型
机器学习的系统模型如图1所示,环境向系统的学习部分提供某些信息,学习部分利用这些信息修改知识库,以增进系统执行部分完成任务的效能,执行部分根据知识库完成任务,同时把获得的信息反馈给学习部分。在具体的应用中,环境、知识库和执行部分决定了具体的工作内容,学习部分所需要解决的问题完全由上述三部分确定。
图1 机器学习系统模型
机器学习问题可以形式化地表示为:已知变y和输入x之间存在一定的未知依赖关系,即存在一个未知的联合概率P(x,y),学习就是根据n个同分布观测样本:(x1,y1),(x2,y2),…,(xn,yn),在一组函数{F(x,W)}中求一个最优的函数F(x,W),使预测的期望风险:
最小。其中{F(x,W)}称作预测函数集,W∈为函数的广义参数,L(y,F(x,W))为由于F(x,W)对Y进行预测的损失函数。不同类型的学习问题有不同的损失函数,预测函数F(x,w)称为学习机器[2]。
二、基于机器学习的入侵检测技术
一个基于机器学习的入侵检测系统模型如图2所示。系统主要由网络数据包捕获模块、数据预处理模块和机器学习模块组成,其中机器学习模块是该系统的核心。网络数据包捕获模块是实现监视和验证网络实时工作状态和流量的软件,用在网络上截获并分析位于TCP/IP协议模型中各个协议层次上的数据包,这是网络入侵检测系统实现的基石。实现这部分功能的程序被称为数据包嗅探器(Sniffer)。数据预处理模块对网络数据包获取模块送来的原始数据包做进一步的加工处理,包括对数据包进行解码,过滤掉其中的错误数据和重复数据,并产生相应的特征值作为对机器学习模块的输入值。机器学习模块是IDS的核心,通过对该模块的训练,使学习机能够检测到入侵。
图2基于机器学习的入侵检测系统结构
机器学习的方法很多,可以综合利用统计学、神经网络、进化计算等领域的理论与方法,完成数据总结与数据聚类、相关性分析与偏差分析、序列模式发现、概念描述与分类规则提取等任务。从特殊的训练样例中归纳出一般函数是机器学习的中心问题,归纳使得机器学习具有泛化的能力,泛化可以提高入侵检测系统的检测性能。对于正常数据集的泛化,可以降低虚警概率,对于攻击数据的泛化,可以提高系统对于新的攻击类型的检测概率。目前智能IDS中采用的机器学习方法主要有神经网络、数据挖掘和人工免疫等。
(一)神经网络
人工神经网络(Artificial Neural Network, ANN)是模拟人脑加工、存储和处理信息机制而提出的一种智能化信息处理技术,他是由大量简单的处理单元(神经元)进行高度互连而形成的复杂网络系统。人工神经网络实现的是一种从输入到输出的映射关系,其输出由输入样本、神经元间的互连权值以及传递函数决定。神经网络处理过程一般包括模型构建与训练、网络冗余修剪、规则生成等阶段。利用神经网络检测入侵的基本思想是用一系列信息单元训练神经元,通过训练和学习过程来修改网络互连权值,这样在给定一组输入后,就可能预测输出。将其应用于入侵检测,能够根据历史行为自动识别未来的类似行为,降低异常检测系统的误报率,同时使用联想存储可以发现已知攻击的变种,解决误用检测漏报率高的缺点。基于神经网络的IDS不依赖于任何有关数据种类的假设、能处理噪声数据,在误用检测中能很好地工作,但对未知攻击模式则效果不佳,同时神经网络拓扑结构的形成不稳定、易陷于局部极小、学习时间长。
(二)数据挖掘
数据挖掘(Data Mining,DM)一般是从数据仓库中提取隐含的、事先未知的、潜在有用的、易被理解的信息的过程。入侵检测最基本的前提是审计机制能全面地记录系统事件,再利用有效又智能的数据分析工具从大量的审计数据中提取具有代表性的系统或用户特征模式,用于对程序或用户行为做出描述,这是实现安全事件审计系统的关键。为了对审计数据进行全面、高速和准确的分析,使用数据挖掘方法来处理安全事件数据。数据挖掘可以从包含大量冗余信息的数据中提取尽可能多的、蕴藏的安全信息,抽象出有利于进行判断和比较的特征模型,这些特征模型可以是基于异常检测的知识描述模型,也可以是基于异常检测的行为描述模型。根据模型,即可由计算机利用相应的算法判断出行为的性质。
将数据挖掘技术应用于入侵检测领域,利用数据挖掘中的关联分析、序列模式分析、分类分析等算法提取与入侵活动相关的系统特征属性,并根据系统特征属性生成入侵事件的分类模型,用于对入侵事件的自动识别。在基于数据挖掘的入侵检测系统中,系统构造是一个关键环节。利用数据挖掘技术对用户命令进行关联规则及序列模式挖掘,可以有效地发现用户的行为模式。数据挖掘技术应用于IDS,适合于处理海量的计算机网络数据流,能从大量的审计数据中自动生成简洁而精确的检测模型,挖掘出计算机网络系统中入侵行为和正常行为模式。但该方法的实现需要大量的审计数据作为基础,系统学习过程较慢,难以做到实时入侵检测。
(三)人工免疫
人工免疫系统(Artificial Immune System,AIS)是从生物免疫系统的运行机制中获得灵感而得来的计算范式,它借鉴了一些生物免疫系统的功能、原理和模型,并用于复杂问题的求解。
免疫系统的主要工作原理是区分“自我”与“非我”。“自我”是指自身的细胞,“非我”是指机体内的有害病原体。免疫细胞能对“非我”成分产生免疫应答,以消除它们对机体的侵蚀,但对“自我” 成分则不产生应答,以保持内环境的动态稳定。免疫系统的功能就是由这些免疫细胞的交互作用来实现的。免疫系统具有特异性、多样性和自适应性等优良特性,能够进行识别与记忆,满足分布性、自组织性、低消耗性的要求。基于人工免疫的入侵检测系统将正常的网络行为定义成“自我”,而其他异常的行为定义为“非我”。免疫原理应用于入侵检测领域的目的是使检测系统具有分布性、多样性、自适应性、自动应答和自我修复,具有检测异常现象、利用不完备信息进行检测的能力,基于人工免疫的IDS应用特异性和非特异性的免疫机制的多级防御去防御入侵者。
另外,常用于IDS中的机器学习方法还有支持向量机(Support Vector Machine,SVM)、遗传算法(Genetic Algorithm,GA)和粗糙集理论(Rough Set Theory,RST)等。支持向量机是Vapnik等人提出的一种建立在统计学习理论基础之上的机器学习方法。将SVM应用到IDS中,可在先验知识不足的情况下,仍然具有较好的检测效果;遗传算法足一种基于遗传和变异的生物进化方法,采用遗传算法可以在异常入侵检测中取得较好的效果;粗糙集理论是一种处理不精确、不确定与不完全数据的新的数学理论,可以用于研究不完整数据,分析、推理、发现数据间的关系,提取有用属性,RST用于IDS中可以提高系统的检测速度。
三、结束语
基于机器学习的IDS通过对知识库进行及时更新,提高了系统的自动化程度和自适应能力。目前,对于基于机器学习的IDS研究已经取得了一些成果,但其理论还不够完善,系统还缺乏实用性,改进机器学习方法是提高智能IDS的快速性、准确性和完整性指标的关键。根据上面的分析,每种机器学习方法都存在一定的缺陷,为了提高IDS的性能,可以将多种机器学习方法进行融合,充分发挥各种机器学习方法的优势,真正达到智能化入侵检测的目的。
参考文献:
[1]张雪芹、顾春华、林家骏,入侵检测技术的挑战与发展[J].计算机工程与设计,2004,25(7):10961099.
[2]杨德明、潘进、赵爽,基于机器学习的移动自组织网络入侵检测方法[J].计算机应用,2005,25(11):25572576.
作者简介:
李思广,男,汉族,河南省沈丘县人,河南省周口职业技术学院信息科学系副教授,理学硕士,主要从事网络安全方面的研究。下载本文