论文部分内容阅读
摘要:本文对snort入侵检测系统及基于免疫原理的入侵检测技术进行了探讨和研究,利用snort系统作为误用检测系统,把人工免疫的算法应用到异常检测,用于检测未知攻击。在此基础上设计了混合模式入侵检测系统。
关键词:入侵检测;免疫原理;误用检测;异常检测
中图分类号:TP311文献标识码:A 文章编号:1009-3044(2009)22-00000-00
随着信息技术的发展,计算机成为社会活动中的必不可少的工具,大量重要的信息存储在系统中,同时,连入网络中的计算机数量也在成倍增加,这些都使得信息安全问题日益严重。网络安全是网络及应用领域中一直研究的关键问题,常见的网络安全技术主要有身份验证、访问控制、加密技术、数字签名技术、防火墙技术与入侵检测技术。入侵检测技术是防火墙技术的有利补充,是一种对网络传输进行实时监视,在发现可以传输时发出报警或者采取主动反应措施的网络安全技术。入侵检测已经成为网络安全的一个重要的研究领域。
本文对snort入侵检测系统及基于免疫原理的入侵检测技术进行了探讨和研究,利用snort系统为误用检测系统,把人工免疫的算法应用到异常检测,用于检测未知攻击。在此基础上设计了混合模式入侵检测系统。
1 入侵检测技术介绍
入侵检测技术主要有两种:误用检测和异常检测。
Snort的基本功能是数据包嗅探器,数据包嗅探是Snort工作的开始,Snort取得数据包后先用预处理插件处理,然后经过检测引擎中的所有规则链,如果检测到有符合规则链的数据包,则系统就会根据输出设置把该信息记录到文件并报警。Snort的预处理器、检测引擎和报警模块都是插件结构,插件程序按照Snort提供的插件接口完成,使用时动态加载,在不用修改核心代码的前提下使Snort的功能和复杂性扩展更容易。既保障了插件程序和snort核心代码的紧密相关性,又保障了核心代码的良好扩展性。
3 人工免疫原理与入侵检测
3.1 生物免疫系统
生物免疫系统(Biology Immune System, BIS)是一个分布式、自组织和具有动态平衡能力的自适应复杂系统。它对外界入侵的抗原(Antigen, Ag),可由分布全身的不同种类的淋巴细胞产生相应的抗体(Antibody, Ab),其目标是尽可能保证整个生物系统的基本生理功能得到正常运转。生物免疫系统具有良好的多样性、耐受性、免疫记忆、分布式并行处理、自组织、自学习、自适应等特点,这些诱人特性,引起研究人员的普遍关注。
人工免疫系统(Artificial Immune System, AIS)就是研究、借鉴、利用生物免疫系统的原理、机制而发展起来的各种信息处理技术、计算技术及其在工程和科学中的应用而产生的多种智能系统的统称。计算机免疫系统是人工免疫、计算机科学的一个分支,是继神经网络、模糊系统、进化计算、人工免疫等研究之后的又一个研究热点。在众多的研究领域中,引入免疫概念后取得了满意的成果,特别在计算机病毒防治、网络入侵检测上,基于免疫的网络安全技术克服了传统网络入侵检测系统的缺陷,被认为是一条非常重要且有巨大实际应用前景的研究方向。
3.2 免疫算法
Forrest 等研究人员受生物免疫系统启发提出了否定选择算法。否定选择,又称阴性选择。否定选择的主要思想是:建立一个随机检测器集,从中进行选择,将对系统无害的自体信息排除,剩下的则认为是异常体的集合。
本文提出的检测器生成器算法(如图2)是在原有的否定算法的基础上进行了改进。利用误用检测模式先检测出已经确定的攻击模式,对于未知的异常数据则用免疫算法的检测器检测,因此本文的检测器生成是以少量的异常数据为基础生成的,而不是一种不可能存在的模式,这样,产生的检测器数量不会像原始算法产生的那么多,这些检测器是有效的,有利于提高检测效率,节约存储空间。
4 系统设计
4.1 系统设计思路
Snort基于误用检测技术,其检测能力受到规则数据库中规则的限制,无法检测到未知类型的入侵行为,而基于免疫的异常检测技术的优点是能够检测到未知类型的入侵行为。
一般情况下,网络中绝大部分数据包都是正常的,可以在Snort检测引擎之前加入异常检测引擎来过滤掉大部分正常数据。减少Snort检测引擎的负担,提高其检测效率;由于Snort支持插件方式,因此将异常检测引擎编写成插件,通过Snort提供的插件接口,使用时动态加载,可方便地实现在Snort中添加异常检测的功能。对于那些不符合网络正常行为模型的数据包,可将其视为异常数据包,先送至误用检测引擎作进一步的检测。经过误用检测引擎未发现入侵行为的异常数据包很可能是新的入侵行为产生的数据包,对这些异常数据包再通过免疫的异常检测模块可以判断是否新的入侵行为模式,然后将这些入侵行为模式转换为Snort入侵检测规则并添加到规则库中,这样误用检测引擎就可以检测到新的入侵行为。
4.2 系统架构
本文提出的检测模型系统架构如图3所示。
系统主要包括6个功能模块:
数据包捕获和解码子系统,用来捕获网络的传输数据并按照TCP/IP协议的不同层次将数据包进行解析;
数据预处理,是介于解码器与检测引擎之间的可插入模块,提供一些对解码后的数据包及一些应用层协议的附加处理及解码功能;
异常检测引擎,负责对数据包进行检测,并过滤掉正常的数据包;并将可疑的异常数据包输出到snort误用检索引擎模块;
Snort误用检测引擎模块,把获得的网络数据与规则库进行比较,如果匹配,则报警;否则,作为异常数据存入异常文件;
基于免疫原理检测模块,对异常文件数据进行免疫检测,检测出新的入侵行为模式,调用报警模块,并转换为符合snort规则语法的入侵检测规则,然后添加到规则库中。
该系统的主要优点:结合了误用检测与异常检测的优点,提高了检测效率,应用免疫原理提高了检测未知攻击的检测的能力,可以不断更新规则库,检测某些新变种的入侵。
4.3 系统实现
本文改进模型的实现是基于开源网络入侵检测系统Snort及其相关组件的,这些都可以通过互联网免费获得。具体实现过程分为以下几步进行:
1)在Windows系统下部署一个简单的snort网络入侵检测系统。用到的主要软件有:Snort、Winpcap、jpgraph、Mysql、Apache、php、ADODB、ACID等.对这些软件进行合理的安装和配置,构建起一个功能较完善的snort入侵检测系统。
2)将可疑数据存入可疑数据库并对其进行分类,使新的人侵数据和正常数据分开。这部分通过在ACID(AnalysisConsole for Intrusion Databases)中加入相应的处理页面来人机交互实现。
3)利用数据挖掘算法构建正常行为模式库并实现异常检测引擎模块。异常检测引擎模块在Snort程序中使用C语言来实现。
4)对异常数据进行向量转换,利用免疫算法对异常入侵数据进行检测,如果是攻击数据则转换成适合Snort的规则。这部分使用C语言来实现。
5 结束语
本文提出了—个混合型的入侵检测系统,利用snort的预处理技术进行异常检测分类过滤掉大量正常数据,提高人侵检测系统的数据处理能力。再利用误用检测引擎检测已知类型的攻击。对于无法确定的攻击则由后续的基于免疫原理异常检测模块做二次检验;该系统可以进行在线的检测工作,可以自动更新规则库,记忆新类型的攻击,灵活性较高,检测性较强。
参考文献:
[1] 宋劲松.网络入侵检测[M].国防工业出版社,2006.
[2] 杨义先,钮心忻.入侵检测理论与技术[M].高等教育出版社,2007.
[3] 郭文忠,陈国龙,陈庆良,等.基于粒子群和人工免疫的混合入侵检测系统研究[J].计算机工程与科学,2007(29,10).
[4] 袁晖.基于Snort的入侵检测系统安全性研究[J].计算机科学,2008(35,4).
[5] 盘红华.基于数据挖掘的Snort入侵检测模型设计[J].计算机与数字工程,2008(8).
关键词:入侵检测;免疫原理;误用检测;异常检测
中图分类号:TP311文献标识码:A 文章编号:1009-3044(2009)22-00000-00
随着信息技术的发展,计算机成为社会活动中的必不可少的工具,大量重要的信息存储在系统中,同时,连入网络中的计算机数量也在成倍增加,这些都使得信息安全问题日益严重。网络安全是网络及应用领域中一直研究的关键问题,常见的网络安全技术主要有身份验证、访问控制、加密技术、数字签名技术、防火墙技术与入侵检测技术。入侵检测技术是防火墙技术的有利补充,是一种对网络传输进行实时监视,在发现可以传输时发出报警或者采取主动反应措施的网络安全技术。入侵检测已经成为网络安全的一个重要的研究领域。
本文对snort入侵检测系统及基于免疫原理的入侵检测技术进行了探讨和研究,利用snort系统为误用检测系统,把人工免疫的算法应用到异常检测,用于检测未知攻击。在此基础上设计了混合模式入侵检测系统。
1 入侵检测技术介绍
入侵检测技术主要有两种:误用检测和异常检测。
![](/img/pic.php?url=http://img1.qikan.com/qkimages/dnjl/dnjl200922/dnjl20092217-2-l.jpg)
Snort的基本功能是数据包嗅探器,数据包嗅探是Snort工作的开始,Snort取得数据包后先用预处理插件处理,然后经过检测引擎中的所有规则链,如果检测到有符合规则链的数据包,则系统就会根据输出设置把该信息记录到文件并报警。Snort的预处理器、检测引擎和报警模块都是插件结构,插件程序按照Snort提供的插件接口完成,使用时动态加载,在不用修改核心代码的前提下使Snort的功能和复杂性扩展更容易。既保障了插件程序和snort核心代码的紧密相关性,又保障了核心代码的良好扩展性。
3 人工免疫原理与入侵检测
3.1 生物免疫系统
生物免疫系统(Biology Immune System, BIS)是一个分布式、自组织和具有动态平衡能力的自适应复杂系统。它对外界入侵的抗原(Antigen, Ag),可由分布全身的不同种类的淋巴细胞产生相应的抗体(Antibody, Ab),其目标是尽可能保证整个生物系统的基本生理功能得到正常运转。生物免疫系统具有良好的多样性、耐受性、免疫记忆、分布式并行处理、自组织、自学习、自适应等特点,这些诱人特性,引起研究人员的普遍关注。
人工免疫系统(Artificial Immune System, AIS)就是研究、借鉴、利用生物免疫系统的原理、机制而发展起来的各种信息处理技术、计算技术及其在工程和科学中的应用而产生的多种智能系统的统称。计算机免疫系统是人工免疫、计算机科学的一个分支,是继神经网络、模糊系统、进化计算、人工免疫等研究之后的又一个研究热点。在众多的研究领域中,引入免疫概念后取得了满意的成果,特别在计算机病毒防治、网络入侵检测上,基于免疫的网络安全技术克服了传统网络入侵检测系统的缺陷,被认为是一条非常重要且有巨大实际应用前景的研究方向。
3.2 免疫算法
Forrest 等研究人员受生物免疫系统启发提出了否定选择算法。否定选择,又称阴性选择。否定选择的主要思想是:建立一个随机检测器集,从中进行选择,将对系统无害的自体信息排除,剩下的则认为是异常体的集合。
本文提出的检测器生成器算法(如图2)是在原有的否定算法的基础上进行了改进。利用误用检测模式先检测出已经确定的攻击模式,对于未知的异常数据则用免疫算法的检测器检测,因此本文的检测器生成是以少量的异常数据为基础生成的,而不是一种不可能存在的模式,这样,产生的检测器数量不会像原始算法产生的那么多,这些检测器是有效的,有利于提高检测效率,节约存储空间。
4 系统设计
4.1 系统设计思路
Snort基于误用检测技术,其检测能力受到规则数据库中规则的限制,无法检测到未知类型的入侵行为,而基于免疫的异常检测技术的优点是能够检测到未知类型的入侵行为。
一般情况下,网络中绝大部分数据包都是正常的,可以在Snort检测引擎之前加入异常检测引擎来过滤掉大部分正常数据。减少Snort检测引擎的负担,提高其检测效率;由于Snort支持插件方式,因此将异常检测引擎编写成插件,通过Snort提供的插件接口,使用时动态加载,可方便地实现在Snort中添加异常检测的功能。对于那些不符合网络正常行为模型的数据包,可将其视为异常数据包,先送至误用检测引擎作进一步的检测。经过误用检测引擎未发现入侵行为的异常数据包很可能是新的入侵行为产生的数据包,对这些异常数据包再通过免疫的异常检测模块可以判断是否新的入侵行为模式,然后将这些入侵行为模式转换为Snort入侵检测规则并添加到规则库中,这样误用检测引擎就可以检测到新的入侵行为。
4.2 系统架构
本文提出的检测模型系统架构如图3所示。
系统主要包括6个功能模块:
数据包捕获和解码子系统,用来捕获网络的传输数据并按照TCP/IP协议的不同层次将数据包进行解析;
数据预处理,是介于解码器与检测引擎之间的可插入模块,提供一些对解码后的数据包及一些应用层协议的附加处理及解码功能;
异常检测引擎,负责对数据包进行检测,并过滤掉正常的数据包;并将可疑的异常数据包输出到snort误用检索引擎模块;
Snort误用检测引擎模块,把获得的网络数据与规则库进行比较,如果匹配,则报警;否则,作为异常数据存入异常文件;
基于免疫原理检测模块,对异常文件数据进行免疫检测,检测出新的入侵行为模式,调用报警模块,并转换为符合snort规则语法的入侵检测规则,然后添加到规则库中。
该系统的主要优点:结合了误用检测与异常检测的优点,提高了检测效率,应用免疫原理提高了检测未知攻击的检测的能力,可以不断更新规则库,检测某些新变种的入侵。
4.3 系统实现
本文改进模型的实现是基于开源网络入侵检测系统Snort及其相关组件的,这些都可以通过互联网免费获得。具体实现过程分为以下几步进行:
1)在Windows系统下部署一个简单的snort网络入侵检测系统。用到的主要软件有:Snort、Winpcap、jpgraph、Mysql、Apache、php、ADODB、ACID等.对这些软件进行合理的安装和配置,构建起一个功能较完善的snort入侵检测系统。
2)将可疑数据存入可疑数据库并对其进行分类,使新的人侵数据和正常数据分开。这部分通过在ACID(AnalysisConsole for Intrusion Databases)中加入相应的处理页面来人机交互实现。
3)利用数据挖掘算法构建正常行为模式库并实现异常检测引擎模块。异常检测引擎模块在Snort程序中使用C语言来实现。
4)对异常数据进行向量转换,利用免疫算法对异常入侵数据进行检测,如果是攻击数据则转换成适合Snort的规则。这部分使用C语言来实现。
5 结束语
本文提出了—个混合型的入侵检测系统,利用snort的预处理技术进行异常检测分类过滤掉大量正常数据,提高人侵检测系统的数据处理能力。再利用误用检测引擎检测已知类型的攻击。对于无法确定的攻击则由后续的基于免疫原理异常检测模块做二次检验;该系统可以进行在线的检测工作,可以自动更新规则库,记忆新类型的攻击,灵活性较高,检测性较强。
参考文献:
[1] 宋劲松.网络入侵检测[M].国防工业出版社,2006.
[2] 杨义先,钮心忻.入侵检测理论与技术[M].高等教育出版社,2007.
[3] 郭文忠,陈国龙,陈庆良,等.基于粒子群和人工免疫的混合入侵检测系统研究[J].计算机工程与科学,2007(29,10).
[4] 袁晖.基于Snort的入侵检测系统安全性研究[J].计算机科学,2008(35,4).
[5] 盘红华.基于数据挖掘的Snort入侵检测模型设计[J].计算机与数字工程,2008(8).