论文部分内容阅读
随着信息网络的快速发展,人们的生活和工作方式都演变出了更加高效快捷的模式。互联网的开放性和互联互通性赋予了它资源信息共享速度快、传播面广的天然优势,极大地激活了经济、文化和知识的发展。但是,随着人们在众多领域愈发依赖于网络,信息的安全问题凸显出来。鉴于网络数据的巨大价值,安全业务成为各个研究机构和网络安全公司关注的重点,如何筛查和防范攻击和入侵,保障信息网络的安全迫在眉睫。在这种情况下,各种专用入侵检测系统(Intrusion Detection Systems, IDS)相继出现。其中,发展最早也是最著名的当属Martin Roesch编写的Snort[1]。Snort能够有效保护系统的信息安全,深受网络安全领域的重视。但是,随着其应用领域的扩大和人们要求的提高,Snort还是暴露出了一些缺陷。作为一种基于误用检测的网络入侵检测系统(Network Intrusion Detection Systems, NIDS), Snort的检测依赖于自身的规则库进行单一判断,大量的正常行为数据也需要进入规则库进行逐一判断,容易将很多正常的行为误判为攻击行为,造成系统的误报率和漏报率较高;规则以文本文件的形式存储,不能根据网络的实际情况进行动态调整,造成系统的检测速率较低;此外,Snort使用基于特征的匹配方法,只要检测到攻击事件就会上报,容易造成告警泛滥,淹没真正的入侵事件。本课题的研究迎合了网络安全的发展趋势和要求,在充分了解Snort IDS的基础上,针对以上三点不足,设计实现了一种改进的、多模块和高性能的Snort入侵检测系统。该系统充分利用Snort的开源性和可扩展性,在原有Snort系统的基础上,添加三个功能模块:正常行为过滤模块,规则动态优化模块和告警泛滥抑制模块,有针对性的解决Snort入侵检测系统的缺陷。其中,正常行为检测模块过滤大量的正常行为数据,减少Snort检测引擎的工作量;规则动态优化模块根据网络的实际环境调整规则在文本中的顺序;告警泛滥抑制模块有效解决系统有可能出现的告警泛滥现象。同时,该系统将目前流行的数据挖掘技术融入到了系统的改进过程。本文深入了解了数据挖据技术中最常使用的K-means聚类算法,并且针对其K值难以估计和对初始聚类中心敏感两个缺陷给出了一种改进的K-means聚类算法。该算法根据数据的实际分布情况进行动态聚类划分,不需要提前指定K值,用算法确定的初始聚类划分,减少了聚类的迭代次数,获得稳定的聚类结果,改善聚类性能。在本文设计的入侵检测系统中,使用了该算法生成正常行为过滤模块的正常行为模式库,提高了系统的检测性能。最后,完成系统的搭建和功能的实现,并且对系统的性能进行测试,使用kddcup.data10percent测试数据,对比传统的Snort入侵检测系统和本文实现的改进的系统的各项性能指标值。实验结果得出经过改进的Snort入侵检测系统在检测性能上有了较明显的提高。