(计算机应用技术专业论文)windows平台下基于snort入侵检测系统的设计与实现.pdf_第1页
(计算机应用技术专业论文)windows平台下基于snort入侵检测系统的设计与实现.pdf_第2页
(计算机应用技术专业论文)windows平台下基于snort入侵检测系统的设计与实现.pdf_第3页
(计算机应用技术专业论文)windows平台下基于snort入侵检测系统的设计与实现.pdf_第4页
(计算机应用技术专业论文)windows平台下基于snort入侵检测系统的设计与实现.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机应用技术专业论文)windows平台下基于snort入侵检测系统的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

i 摘摘 要要 随着计算机网络的不断发展,信息全球化己成为人类发展的大趋势。但由 于计算机网络具有连接形式多样性、终端分布不均匀性和网络开放性、互联性 等特征,致使网络易遭受黑客、骇客、恶意软件和其它攻击,所以网上信息的 安全和保密是一个相当重要的问题。对于军用的自动化指挥网络和银行等传输 敏感数据的计算机网络系统而言,其网上信息的安全性和保密性尤为重要。因 此,上述的网络必须有足够强的安全措施,否则该网络将是个无用的、甚至会 危及国家的网络安全。无论是在局域网还是在广域网中,都存在着自然或人为 等诸多因素的脆弱性和潜在的威胁。因此,网络安全变得越来越重要。 snort 入侵检测系统是一个典型的开放源代码的网络入侵检测系统,目前 多数商用入侵检测系统都是在其设计原理和实现特点的基础上研发的。 对snort 入侵检测系统的研究具有较强的学术意义和较高的商业价值。本文就是围绕 snort 检测技术进行的研究,进一步开发出 windows 平台下基于 snort 的入侵 检测系统。 文章首先介绍了入侵检测系统的一些相关知识,其中包括:入侵检测技术 的定义,常见入侵技术,入侵检测方法以及对 snort 网络入侵检测系统进行了 介绍和分析。然后,具体研究了入侵检测系统中重要的单模式 bm 算法,多模式 ac 算法和 ac-bm 算法,在此基础上提出了一种改进的模式匹配算法,通过实验 验证改进后的算法提高了入侵检测的效率。接下来,针对原有 snort 界面不友 好的特点,在 windows 系统平台利用改进后的算法在其基础上设计并开发了具 有图形界面的入侵检测系统, 并针对 vc 列表控件开发了相应的入侵检测系统输 出插件。弥补了原有 snort 系统由于基于控制台界面,配置繁琐,操作复杂等 的缺点,提高了其与 windows 系统上其它程序交互的能力,在加速 snort 在 windows 平台的普及上具有重要的实用价值。最后,通过实验演示,证明改进 后的入侵检测系统能够很好的满足在 windows 平台的应用需要。 关键字:关键字:snort,模式匹配算法,图形用户接口,列表输出插件 ii abstract with the development of computer network,globalization of information has become latest trend in human progress. however, because the diversity of networks connection, the asymmetry of terminals distribution, the interconnection of computer and the attack of hacker, cracker, vicious softwares and so on, security and safeguarding of information on computer networks have become one of the most significant problems. furthermore, it is more important for militarys automatic commanding network and banks whose network transmits sensitive data. thus we should apply sufficient safeguarding to these networks, otherwise the computer network will be useless,even maybe imperil the national security. the lans and wans are vulnerable and face plenty of potential threats owing to so many natural or anthropogenic factors. therefore, the security and safeguarding of the computer network becomes more and more indispensable. the snort is a typical net intrusion detection system with open source. at present, most popular commercial intrusion detection systems are all based on the design principle and implement characteristics of the system. there is intensely academic and commercial value to research the snort. in this paper, according to study the snort detection technology, the new snort intrusion detection system which is based on the windows platform has been developed. firstly, some correlative knowledge of the intrusion detection system is introduced in this paper, such as the definition of ids, hacking techniques, detection methods and the introduction and analysis of the snort network intrusion detection system. secondly, we study the main pattern matching algorithms now using in ids such as bm、ac and ac-bm. based on this, we present an improved algorithm, and experiments indicate that the algorithm improve the efficiency of the intrusion detection system. according to the improved algorithm, we design and develop intrusion detection system with a graphical interface aiming at the intrinsic unsightly snort interface. we also develop a homologous output plug-ins of the intrusion detection system aiming at the vc list control. compensate for the original snort system based on the console interface which has configuration cumbersome and complicated to operate and improve the interactive ability with other procedures in windows system. it has practical value for popularization of iii accelerating snort in the windows platform. finally,the experiments prove that the improved intrusion detection system can do well for the needs of the application in windows. keywords: snort,pattern matching algorithm,gui,list output plug-ins 南昌航空大学硕士学位论文原创性声明 本人郑重声明:所呈交的硕士学位论文,是我个人在导师指导下, 在南昌航空大学攻读硕士学位期间独立进行研究工作所取得的成果。尽 我所知, 论文中除已注明部分外不包含他人已发表或撰写过的研究成果。 对本文的研究工作做出重要贡献的个人和集体,均已在文中作了明确地 说明并表示了谢意。本声明的法律结果将完全由本人承担。 签名: 日期: 南昌航空大学硕士学位论文使用授权书 本论文的研究成果归南昌航空大学所有,本论文的研究内容不得以 其它单位的名义发表。本人完全了解南昌航空大学关于保存、使用学位 论文的规定, 同意学校保留并向有关部门送交论文的复印件和电子版本, 允许论文被查阅和借阅。本人授权南昌航空大学,可以采用影印、缩印 或其他复制手段保存论文,可以公布论文的全部或部分内容。同时授权 中国科学技术信息研究所将本学位论文收录到中国学位论文全文数据 库 ,并通过网络向社会公众提供信息服务。 (保密的学位论文在解密后适用本授权书) 签名: 导师签名: 日期: 南昌航空大学硕士学位论文 第 1 章 绪论 - 1 - 第 1 章 绪论 1.1 入侵检测技术的研究背景 随着个人计算机的普及,以及网络技术的快速发展,人与人之间的沟通越来 越方便。计算机网络在人类活动中发挥着越来越重要的作用,然而人们也应该清 楚的认识到,计算机网络引发的安全问题也日益严重。根据调查:美国每年因为 网络安全造成的经济损失超过 170 亿美元,75%的公司报告财政损失是由于计算 机系统的安全问题造成的,超过 50%的安全威胁来自内部,而只有 17%的公司愿 意报告是黑客入侵,其他的由于担心负面影响而未敢声张,59%的事实可以定量 估算,平均每个组织损失 402000 美元,从这些数字可以看出网络安全给系统带 来的损失是不可估量的,单纯的防火墙技术暴露出明显的不足和弱点,如无法解 决安全后门问题,不能阻止网络内部攻击,而调查发现 50% 以上的攻击都来自 内部 1。在这种情况下,网络入侵检测技术应运而生。 入侵检测系统 ids ( intrusion detection system),是用于检测任何损害 或企图损害系统的保密性、完整性、可用性行为的系统。它通过监控受保护系统 的状态和活动,发现非授权的或恶意的系统及网络行为,为防范入侵行为提供有 效手段的一种网络安全技术 2-4,正是在此情况下,本课题试图以 snort 的入侵 检测为基础开发出基于 windows 平台交互性更好的入侵检测软件,其优点在于: 操作可以说是“所见即所得”,所有的东西都摆在你眼前,只要移动鼠标,单击 或双击即可完成。同时更好的完成与 windows 程序的交互能力,在互联网日益普 及和网络安全形式日益严峻的背景下,如何提供更易于使用、更智能化的网络安 全产品是网络安全领域面临的重大挑战, 只有充分发挥不同网络安全设备或功能 之间的合力,充分利用不同网络安全设备的资源,加以关联、分析、整合,形成 行之有效的安全策略,并自动实施,甚至与网络设备密切协同配合,才能更好地 保障网络的整体安全。这正是当前网络安全发展的大趋势 8。 本课题来源于江西省重大攻关招标项目(编号:2005a016)基于多层次 安全代理的集成访问控制系统。本人为课题主要成员,负责入侵检测模块的研究 与实现工作。 南昌航空大学硕士学位论文 第 1 章 绪论 - 2 - 1.2 入侵检测技术的国内外研究现状 入侵检测系统的概念于 1980 年由 james anderson 提出,到现在已经经历了 基于主机的入侵检测系统、基于多主机的入侵检测系统、基于网络的入侵检测系 统、分布式入侵检测系统、面向大规模的入侵检测系统五个发展阶段 6;作为一 种积极的安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在 网络系统受到危害之前拦截和响应入侵。从网络安全立体纵深、多层次防御的角 度出发,入侵检测理应受到人们的高度重视,这从国外入侵检测产品市场的蓬勃 发展就可以看出。在国内,随着上网的关键部门,关键业务越来越多,迫切需要 具有自主版权的入侵检测产品。 但现状却是大部分入侵检测产品仅仅停留在研究 和实验样品阶段,或者是在防火墙中集成较为初级的入侵检测模块。可见,入侵 检测产品还具有较大的发展空间。从技术途径来讲,除了完善常规的、传统的技 术(模式识别和完整性检测) 外,应重点加强统计分析在入侵检测中应用的相关 技术研究,在许多行业,尤其是国家的关键要害部门,一些黑客乃至一些有着高 技术的不法分子们也常常对电信里的服务器进行攻击,意图牟取非法利益。一个 自主研发的具有知识产权的入侵检测系统,可用于电信,国家关键部门,企事业 单位等,市场前景远大。 由于国外在入侵检测技术领域里起步早,产品也出来的早,人们对入侵检测 的市场认识要深刻得多,技术也成熟一些。目前国外有许多实验室和公司在从事 入侵检测系统的研究和开发, 并己完成一些原型系统和商业产品。 如 iss 公司 (国 际互联网安全系统公司)的 realsecure 入侵检测系统,nfr 公司的 nid 入侵检 测系统, 思科(cisco)公司的入侵检测系统, 还有著名的开源入侵检测系统snort。 这些产品使用的入侵检测技术各有各的特色, 但总体依据的主要基本原理都基本 类似。同时,各家厂商为了保证自己产品的市场领先地位,都很重视入侵检测的 前沿技术 8-9。 由于市场前景广阔,在国内对入侵检测进行研究的大学和公司也日渐增多, 如上海金诺网络安全技术发展股份有限公司的入侵检测系统, 中联绿盟信息技术 有限公司 “冰之眼”入侵检测系统,北京启明星辰信息技术有限公司的“天 阗”入侵检测系统,网威的天眼入侵检测系统(nids),西安交大捷普网络科技有 限公司 jump 入侵检测系统等等。但总的来说国内的入侵检测系统起步比较晚, 研究所取得的成果也不是很显著,需要进一步的发展。很多的产品都还是跟在国 外同类产品后面走。不过,现在很多的国内软件厂商已经意识到了这一点,正在 追加在入侵检测领域的研发投入,追赶国外先进水平。同时,国家对入侵检测技 南昌航空大学硕士学位论文 第 1 章 绪论 - 3 - 术也开始重视,并将其列为国家高技术研究发展计划(863 计划)信息安全技术主 题的重点专题之一,即大规模入侵检测与战略预警技术 10。相应的一些国内和 国外合作的公司也开始涉足这个领域,加速这个领域的发展。例如,华为赛门铁 克合资公司最近推出的 nip 网络入侵检测系统就是一种高效、 准确和智能化的网 络攻击检测产品, 它能实时采集网络系统中的信息数据, 并通过综合分析和比较, 判断是否有入侵和可疑行为的发生,并采用多种方式实时告警,记录攻击,阻断 攻击者的进攻,从而起到保护用户网络和系统免受外部和内部的攻击的作用。 1.3 论文结构及特色 本课题通过对入侵检测技术的研究, 并且有针对性的对目前主流的 snort 网 络入侵检测系统(nids)进行了分析,提出针对 windows 环境具有图形界面接口 (gui)的网络入侵检测系统(nids)模块的解决方案, 提出新的数据分析检测算法, 开发出一套 windows 平台下高效的基于特征匹配技术的网络入侵检测系统。具 有以下几个特色: 1) 根据指定环境需求(windows 平台,开发工具为 visual c+ 6.0,入侵检 测系统为整个安全代理的一个重要模块,需要具有与其他模块进行交互的功能) 在 snort 的基础上设计 ids 模型并规划出系统功能模块并最终实现。 2) 分析了几种常用的模式匹配算法,在此基础上提出了一种改进的算法, 将改进后的算法运用到入侵检测系统中,提高了系统的检测效率。 3) 针对本入侵检测模块检测告警需要,开发了针对列表控件的告警输出插 件,一旦系统发现入侵行为,新的告警方式立即做出响应。 在论文的结构做了如下的设计: 第 1 章为绪论部分,阐述了本文所研究的目的及意义,介绍了当前国内外的 研究现状和本文的结构与特色。 第 2 章为计算机入侵检测技术综述,其中主要介绍了入侵检测技术的定义、 常见的入侵技术、一些检测入侵的方法,以及 snort 入侵检测系统的原理、现状 和研究意义。 第 3 章探讨了入侵检测系统检测引擎的核心技术各种匹配算法的设计 实现,并在其基础上提出改进的方法。 第 4 章介绍了本系统的结构及功能模块的设计与实现过程,对规则配置过 程、抓包过程,包解码过程,规则树建立过程等都做了讲解,最后通过系统演示 南昌航空大学硕士学位论文 第 1 章 绪论 - 4 - 展现改进后的系统的优越性。 第 5 章总结了论文的研究成果,并对后续的研究工作做出展望。 南昌航空大学硕士学位论文 第 2 章 入侵检测相关技术简介 - 5 - 第 2 章 入侵检测相关技术简介 2.1 入侵检测技术定义 入侵检测系统(intrusion detection system,简称 ids)是一种从计算机网 络或计算机系统中的若干关键点收集入侵者攻击时所留下的痕迹, 如异常网络数 据包与试图登录的失败记录等信息, 通过分析发现是否有来自于外部或内部的违 反安全策略的行为或被攻击的迹象。 它以探测与控制作为技术本质, 起着主动式、 动态的防御作用,是网络安全中极其重要的组成部分。 目前入侵检测涉及到的功能有监视分析用户和系统的行为、 审计系统配置和 漏洞、评估敏感系统和数据的完整性、识别攻击行为、对异常行为进行统计、自 动地收集与系统相关的补丁、进行审计跟踪识别违反安全策略的行为、使用诱骗 服务器记录黑客行为等功能,使系统管理员可以较有效地监视、审计、评估自己 的系统等 11-13。 从其检测的数据源角度来区分,入侵检测分为基于主机的入侵检测系统 (hids)和基于网络的入侵检测系统 (nids)。 此次研究的入侵检测系统是以snort 为基础主要针对来自网络中的各种信息进行捕获, 对网络中的入侵信息进行识别 和处理。它的针对性很强,特征库可以不断更新。同时加入预扫描的功能,可以 对本地机器的端口进行检测,发现漏洞,通知用户及时处理,从而可以确保系统 的安全 16。 2.2 常见入侵技术简介 入侵攻击到如今这种泛滥的趋势也是有一个过程的, 早期一些专业人士通过 对系统进行攻击是为了检测发现系统漏洞,它是作为一种安全测试工作,根据测 试结果改变系统结构、设计方式、算法流程,从而提高系统的安全性和可靠性。 直到现在这种手段仍被大量运用在检测系统的安全性和可靠性上, 不过采用的攻 击方法、原理以及工具也随之扩散开来。一个具备有计算机基础知识的人通过网 络,书籍等一些途径可以很轻松的学会一些攻击方式,然后利用一些常用的攻击 南昌航空大学硕士学位论文 第 2 章 入侵检测相关技术简介 - 6 - 工具很轻易的就可以对其它系统实施攻击。 “知己知彼,百战不殆” ,要做好网络安全就需要了解敌人,了解黑客,了 解入侵攻击技术及其原理,以下就简单的介绍一些目前最常见的入侵技术: (1) 扫描技术:扫描技术包括:端口扫描,漏洞扫描等,通过对网络中特定 网络或者计算机进行扫描,然后分析扫描结果,能够发现许多有用的信息,从而 发现系统存在的安全漏洞。 (2) 网络嗅探技术:通过解码网络中的数据包,捕获帐户、口令等信息。通 过安装嗅探器截获流经本机网卡的指定数据来监视网络数据流, 从而获取连接网 络系统时的特定数据。 (3) 拒绝服务:攻击者想办法让目标机器停止提供服务或资源访问,这些资 源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。 (4) arp 欺骗:arp 欺骗分为二种:一种是对路由器 arp 表的欺骗;另一种 是对内网 pc 的网关欺骗。 第一种 arp 欺骗的原理是截获网关数据。它通知 路由器一系列错误的内网 mac 地址,并按照一定的频率不断进行,使真实的地址 信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的 mac 地址,造成正常 pc 无法收到信息。第二种 arp 欺骗的原理是伪造网关。 它是建立假网关,让被它欺骗的 pc 向假网关发数据,而不是通过正常的路由器 途径上网。在 pc 看来就是上不了网了。 (5) 特洛伊木马:特洛伊木马是指那些表面上是有用的软件,实际目的却是 危害计算机安全并导致严重破坏的计算机程序。它是具有欺骗性的文件(宣称是 良性的,但事实上是恶意的),是一种基于远程控制的黑客工具,具有隐蔽性和 非授权性的特点。 (6) 恶意软件:恶意广告软件(adware)、间谍软件(spyware)、恶意共享软 件(malicious shareware)等等都处在合法商业软件和电脑病毒之间的灰色地 带。它们既不属于正规商业软件,也不属于真正的病毒;既有一定的实用价值, 也会给用户带来种种干扰。 (7) 缓冲器溢出: 指当计算机向缓冲区内填充数据位数时超过了缓冲区本身 的容量溢出的数据覆盖在合法数据上, 理想的情况是程序检查数据长度并不允许 输入超过缓冲区长度的字符, 但是绝大多数程序都会假设数据长度总是与所分配 的储存空间相匹配, 这就为缓冲区溢出埋下隐患操作系统所使用的缓冲区又被称 为堆栈.。在各个操作进程之间,指令会被临时储存在堆栈当中,堆栈也会出现缓 冲区溢出。 (8) 暴力破解:用软件猜出口令。通常的做法是通过监视通信信道上的口令 南昌航空大学硕士学位论文 第 2 章 入侵检测相关技术简介 - 7 - 包,破解口令的加密形式。 (9) 社会工程:攻击者利用人际关系的互动性所发出的攻击,通常攻击者如 果没有办法通过物理入侵的办法直接取得所需要的资料时, 就会通过电子邮件或 者电话对所需要的资料进行骗取, 再利用这些资料获取主机的权限以达到其本身 的目的 17-20 15。 2.3 入侵检测方法介绍 当前入侵检测技术的发展方向主要有两个:一是基于异常方式的入侵检测 (anomaly detection),另一个是基于误用方式的入侵检测(misuse detection)。 基于异常入侵检测技术是通过检测攻击者与合法用户具有的不同特征来识 别入侵行为。例如,如果用户 a 仅仅是在早上 9 点钟到下午 5 点钟之间在办公室 使用计算机,则用户 a 在晚上的活动是异常的,就有可能是入侵。异常检测试图 通过定量方式描述常规的或可接受的行为,以标记非常规的、潜在的入侵行为。 异常入侵检测的主要前提是入侵性活动作为异常活动的子集, 异常检测主要使用 概率统计方法,还有顺序模式归纳产生法和神经网络等检测方法。随着对计算机 系统弱点和攻击方法的不断收集和研究,入侵特征化描述的方法越来越有效,这 使得误用检测的使用也越来越广泛。 基于误用入侵检测技术是根据己知的入侵模式来检测。 入侵者常常利用系统 和应用软件的弱点进行攻击,而这些弱点可以归类为某种模式,如果入侵者攻击 方式恰好匹配上检测系统中的模式库,则入侵者即被检测到。例如,windows 的 iis 常见的 cgi,sql 等漏洞,就可以根据它的攻击特征进行检测。误用检测使用 的方法主要有专家系统、状态转换分析、基于模型的方法和模式匹配,人工智能 技术、免疫检测和自主代理等方法正在实践或者科研当中。 下面是几种入侵检测系统常用的检测方法: (1)基于统计分析 这种入侵检测方法是基于对历史数据、早期的证据或模型的基础上进行建 模,系统实时检测用户对系统的使用情况与保存的概率统计模型进行比较,当发 现有可疑的用户行为发生时,保持跟踪并检测与记录该用户的行为。 (2)基于神经网络的分析方法 这种方法对用户的行为具有自学习和自适应的能力, 能够根据实际检测到的 信息有效地加以处理并做出入侵可能性的判断。但该方法尚不成熟,也没有较完 南昌航空大学硕士学位论文 第 2 章 入侵检测相关技术简介 - 8 - 善的入侵检测系统出现。 (3)基于专家系统的分析方法 这种方法根据安全专家对可疑行为的分析经验建立一套推理规则, 在此基础 上建立相应的专家系统,从而自动对所涉及的入侵行为进行分析与检测。该方法 可随着经验的积累和利用自学习功能进行规则的扩充和修正。 这种方法目前在大 部分的入侵检测系统中得到应用 21-27。 2.4 snort 简介 snort 系统是一个以开放源代码的形式发行的网络入侵检测系统, 由 martin roesch 编写,并由遍布在世界各地的众多程序员共同维护和升级。snort 运行在 libpcap 库函数的基础之上,系统代码遵循 gnu/gpl 协议。它是一个轻量级的网 络入侵检测系统。 这里所谓的轻量级是指在检测时尽可能低地影响网络的正常操 作,一个优秀的轻量级的网络入侵检测系统应该具备跨系统平台操作,对系统影 响最小等特征,并且管理员能够在短时间内通过修改配置进行实时的安全响应, 更为重要的是能够成为整体安全结构的重要成员。snort 作为网络入侵检测系统 中的典型范例,首先它可以运行在多种操作系统平台之上,例如 unix 系列和 windows (需要 1ibpcap for win32-winpcap 的支持),与很多商业产品相比, 它对操作系统的依赖性比较低。 其次用户可以根据自己的需要及时在短时间内调 整检测策略。就检测攻击的种类来说,snort 检测规则包括对缓冲区溢出,端口 扫描和 cgi 攻击等等。另外,snort 还可以作为数据包嗅探器和数据包记录器使 用 28-31。 (1) snort 系统工作原理 snort 作为一个基于网络的入侵检测系统(nids),在基于共享网络上检测原 始的网络传输数据,通过分析捕获的数据包,匹配入侵行为的特征或者从网络活 动的角度检测异常行为,进而采取入侵的告警或记录。从检测模式而言,snort 属于是误用检测,即对已知攻击的特征模式进行匹配。从本质上来说,snort 是 基于规则检测的入侵检测工具,即针对每一种入侵行为,都提炼出它的特征值并 按照规范写成检验规则,从而形成一个规则数据库。其次将捕获得数据包按照规 则库逐一匹配,若匹配成功,则认为该入侵行为成立。 (2) snort 系统的特点 1 ) snort 是一个轻量级的入侵检测系统它虽然功能强大,但是代码却极为 南昌航空大学硕士学位论文 第 2 章 入侵检测相关技术简介 - 9 - 简洁、短小,其源代码压缩包不到 2 兆。 2 ) snort 的可移植性很好 snort 的跨平台性能极佳,目前已经支持 linux,solaris,bsd,irix, hp-ux,windows 等系统。采用插入式检测引擎,可以作为标准的网络入侵检 测系统、主机入侵检测系统使用;与 netfilter 结合使用,可以作为网关 ids (gateway ids)等系统指纹识别工具结合使用,可以作为基于目标的 ids(targetbased ids)。 3 ) snort 的功能非常强大 snort 具有实时流量分析和日志 ip 网络数据包的能力。能够快速地检测 网络攻击,及时地发出报警。snort 的报警机制很丰富,例如:syslog、用户 指定的文件、一个 unix 套接字,还有使用 samba 协议向 windows 客户程序发 出 winpopup 消息。利用 xml 插件,snort 可以使用 snml(简单网络标记语言, simple network markup language)把日志存放到一个文件或者适时报警。 snort 能够进行协议分析,内容的搜索/匹配。现在 snort 能够分析的协 议有 tcp,udp,icmp 等。将来,可能提供对 arp、icrp、gre、ospf、 rip、 ipxipx 等协议的支持。它能够检测多种方式的攻击和探测,例如:缓冲区溢 出、秘密端口扫描、cgi 攻击、smb 探测、探测操作系统指纹特征的企图等等。 snort 的日志格式既可以是 tcpdump 式的二进制格式, 也可以解码成 asch 字符形式,更加便于用户尤其是新手检查。使用数据库输出插件,snort 可以 把日志记入数据库,当前支持的数据库包括: postagresql、mysql、oracle、 任何 unixodbc 数据库等。 使用 tcp 流插件(tcpstream),snort 可以对 tcp 包进行重组。snort 能够 对 ip 包的内容进行匹配,但是对于 tcp 攻击,如果攻击者使用一个程序,每 次发送只有一个字节的 tcp 包,完全可以避开 snort 的模式匹配。而被攻击的 主机的 tcp 协议栈会重组这些数据,将其送给在目标端口上监听的进程,从而 使攻击包逃过 snort 的监视。使用 tcp 流插件,可以对 tcp 包进行缓冲,然后 进行匹配,使 snort 具备了对付上面这种攻击的能力。 使用 spade(statistical packet anomaly detection engine)插件,snort 能够报告非正常的可疑包,从而对端口扫描进行有效的检测。 4 ) 扩展性能较好,对于新的攻击威胁反应迅速 作为一个轻量级的网络入侵检测系统, snort 有足够的扩展能力。它使 用一种简单的规则描述语言。 最基本的规则只是包含四个域: 处理动作、 协议、 方向、注意的端口。还有一些功能选项可以组合使用,实现更为复杂的功能。 南昌航空大学硕士学位论文 第 2 章 入侵检测相关技术简介 - 10 - snort 支持插件,可以使用具有特定功能的报告、检测子系统插件对其功 能进行扩展。snort 当前支持的插件包括:数据库日志输出插件、碎数据包检 测插件、端口扫描检测插件、http uri normalization 插件、xml 插件等。同 时,它支持多种格式的特征码规则输入方式,如数据库、xml 等。 snort 的规则语言非常简单,能够对新的网络攻击做出很快的反应。发现 新的攻击后,可以很快根据其特征码,写出检测规则。因为其规则语言简单, 所以很容易上手,节省人员的培训费用。 5 ) 多用途性 snort 系统不但可以作为入侵检测系统,还可以作为数据包嗅探器、数据 包记录器使用。 6 ) 遵循公共通用许可证 gpl snort 遵循 gpl,所以任何企业、个人、组织都可以免费使用它作为自己 的入侵检测系统。但是,snort 系统也有很大的局限性,其系统结构决定了其 检测规则只能使用落后的简单模式匹配技术, 适应目前不断出现的新的攻击方 式的能力有限:并且它在网络数据流量很大的时候容易产生漏报和误报,这对 于目前的宽带潮流是一个很大的缺点。 (3) snort 系统的现状 1 ) 发展现状 由于遍布世界各地的众多程序员共同维护和升级, 目前 snort 系统的更新 是很快的,目前版本 ,其系统结构日趋合理,功能不断增强,检测规 则也不断增新和完善,但系统的基本架构没有变。而且,自由软件开发人员陆 续开发了众多辅助性的软件。这些软件包括图形化的管理系统、日志分析工具、 检测插件、图形化的规则编写软件,以及规则自动升级软件等。对这些软件进 行合理地选择、集成,可以形成一套比较完善的网络入侵检测系统。 2 ) 应用现状 snort 作为自由软件,二次开发费用低廉,预算比较紧张的企业,目前广 泛的应用 snort 作为主要网络入侵检测系统。而且 snort 系统是非常典型的网 络入侵检测系统,它的体系结构是多数商用软件结构的基础,目前国内现有的 大多数网络入侵检测产品的设计模式都是以 snort 系统的基本架构为基础的, 其检测方式也多与 snort 系统类似。 3 ) 研究意义及研究现状 a. 学术上的意义 作为典型的网络入侵检测系统,其系统架构和检测方式是非常有代表性 南昌航空大学硕士学位论文 第 2 章 入侵检测相关技术简介 - 11 - 的。对其源代码的彻底剖析和对其规则的分析是将来对通用入侵检测架构标准 进一步研究所必须要做的前期工作,对系统的详细分析也是将来对其功能进行 升级革新的前提。同时,研究 snort 系统对于改变国内目前入侵检测系统研发 的落后局面,也具有非常重要的意义。 b. 商业应用上的意义 snort 系统是自由软件,相对于昂贵的商业入侵检测系统,应用 snort 作 为入侵检测系统和对其进行专用性的二次开发的费用是非常低的。同时,它的 强大功能和多功能性对企业也具有很大吸引力。而且,国内目前多数的入侵检 测系统都是以 snort 系统的基本原理和结构为基础的。因此,对 snort 系统的 研究无疑具有很大的商业意义。 c. 对于保密工作的意义 如多数自由软件一样,snort 系统是否含有未知的可能导致泄密的隐藏代 码同样需要搞清楚,这对于 snort 系统在机要、国防方面的应用是非常重要的。 彻底的对整个 snort 系统进行解析是最好的方法。目前国内对 snort 系统的研 究取得了一定成果,而对 snort 系统基本架构的研究尚处于起步阶段,对架构 的研究仅限于系统的大体流程,对于各模块细节的研究远远不够,还没有出现 以详细流程图的形式对 snort 系统基本架构及的细致描述。对于 snort 规则的 研究也不彻底,缺乏细致的剖析。而本文以系统结构和规则为主要研究对象, 对其进行详细的剖析 28-32。 2.5 本章小结 本章介绍了入侵检测技术的定义、常见的入侵技术、检测入侵的方法,以及 snort 入侵检测系统的原理、现状和研究意义,在后面的章节中将具体对 snort 总体结构进行系统的分析,对其检测算法进行改进,并开发出针对 windows 平台 的友好性更强的具有图形化接口的 snort 入侵检测系统。 南昌航空大学硕士学位论文 第 3 章 入侵检测系统检测技术的分析与改进 - 12 - 第 3 章 入侵检测系统检测技术的分析与改进 入侵检测系统的检测引擎的设计是提高系统速度的关键技术。 对于已知的入 侵行为通过分析我们得到了入侵数据包的特征, 在有了入侵行为特征代码的情况 下,通过匹配算法就可以完成既定的功能。模式匹配算法的性能直接影响检测引 擎的检测效率,研究一种高效的匹配算法是很有必要的。下面先对传统算法进行 分析,然后提出改进后的匹配算法。 3.1 传统的匹配算法 (1) bm 算法 bm 匹配算法是 boyer 和 moore 两人在 kmp 算法的启发下,提出的一种字符 串快速匹配算法。它采用自右向左的方式扫描模式(p 表示)与正文(t 表示) ,一 旦发现正文中出现模式中没有的字符时就可以将模式、 正文进行一个大幅度的偏 移。模式与正文在匹配比较的过程中,将 p 与 t 左对齐,即 p1与 t1对齐。 匹配从 p 的最右端字符开始,判断 pstrlen(p)(strlen(p)为模式长度)与 tstrlen(p)是否匹配, 如果匹配成功, 则继续判断 pstrlen(p)-1与 tstrlen (p)-1是否匹配,如此反复比较,直到 p 中的所有字符全部匹配成功或是有不匹 配的字符出现。其移动遵循以下规律: a坏字符移动,当发生不匹配时,移动模式串使得不匹配的正文字符与该 字符在模式串中的最右出现对齐。如果字符没有在模式中出现,移动距离为字符 到模式首位的长度;如果字符在模式中出现,移动模式中字符出现位置到正文字 符处; b好后缀移动,当匹配过程中发生不匹配时,如果已匹配子串长度不为0, 且匹配子串在模式串中有相同的其他子串, 移动模式串使得已匹配部分与该部分 在模式串中的最右端出现对齐。 如果同时满足两个条件,选取两者中的较大者作为模式串右移的距离。 例如:设正文为“otootowtmwotwom”要在其中搜索“ttowtow” ; 正文text : otoo otowtmwotwom 模式pattern: ttow wtow 初始状态 模式pattern: ttowtow 根据坏字符移动 模式pattern: ttowtow 根据好后缀移动 根据坏字符移动规则,失配字符o在模式中出现在p3,模式可以右移的距 南昌航空大学硕士学位论文 第 3 章 入侵检测系统检测技术的分析与改进 - 13 - 离为1个字符,根据后缀移动移动规则,已成功匹配的子串tow在模式前端有再次 出现,可移动3个字符。比较两种偏移值,实际bm算法的偏移量为两者中较大的, 这里选择移动3个字符。 bm 算法先对模式 p 进行预处理,计算两个偏移函数:bad_char(针对某个字 符)和 good_suffix(针对某个子串),然后将文本和模式对齐,从右往左进行匹 配,当文本字符与模式字符失配时,根据函数 badchar 和 good_suffix 计算出 的偏移值,取两者中的大者,将文本指针往右移,匹配成功则予以输出。 bm 算法的在于缺点,在进行负载内容匹配时,使用 bm 算法检查包含在链表 选项中的整个数据包负载内容,算法对单个字符串的搜索行之有效,但在本系统 中,入侵检测系统需要应用规则库中近千条规则对数据包负载内容进行匹配。这 时,bm 算法明显不理想。在上述的匹配过程中,如果匹配失败,ids 沿着链表移至 下一个链表选项进行匹配。而下一个链表选项中,很可能除负载内容与当前链表 选项有些许差异外,其它内容完全相同。 (2) ac 算法 ac 算法是基于 fsa(有限状态自动机)的,在进行匹配之前先对模式串集合 p 进行预处理,形成树型 fsaac 状态机(ac state machine),然后只需对文本 串 t 扫描一次就可以找出与其匹配的所有模式串。 有限自动机的基本思想是根据 输入和当前的状态决定下一个状态和输出,接着再进入下一次输入。在字符串多 模式匹配中,向自动机输入所要查找的目标字符串,自动机可以输出查找到的模 式串以及模式串在目标串中的位置。 有限自动机的构造过程是将模式串集合变换 成由转向函数,失效函数和输出函数组成的树型有限自动机。模式匹配的处理过 程就变成了状态转换的处理过程。 有限自动机的构造中, 每个模式串的字符是从前到后依次加到树型的有限自 动机中的,在匹配时,目标串的输入,即匹配过程,也是按照从前到后的次序。 预处理生成 3 个函数:goto(转移)函数,failure(失效)函数和 output(输 出)函数。 设 u=0,1,2为状态集合,转移函数 g:(u,sp)u 为一映射,其建立 过程为:逐个取出 sp 中模式串的每个字符,从状态 0 出发,由当前状态和新取 出的字符决定下一状态。如果有从当前状态出发并标注该字符的矢线,则将矢线 所指的状态赋为当前状态,否则,添加一个标号比已有状态标号大 1 的新状态, 并用一条矢线从当前状态指向新加入的状态,并将新加入的状态赋为当前状态。 sp 中的所有模式串处理完后,再画一条从 0 状态到 0 状态的自返线,标注的字 符为不能从 0 开始的字符集。 例如, sp=he,she,his,hers的 goto 函数如图 5-2 所示: 南昌航空大学硕士学位论文 第 3 章 入侵检测系统检测技术的分析与改进 - 14 - 图 3-1 goto 函数图 失效函数 f 用来指明当某个模式与文本匹配不成功时,应处理的下一状态。 f 的构造方法为:所有第一层状态的失效函数为 0,如 f(1)=f(3)=0;对于非第 一层状态 s, 若其父状态为 r (即存在字符 a,使 g(r,a)=s) , 则 f(s)=g(f(s*),a), 其中状态 s*为追溯 s 的祖先状态得到的第一个使 g(f(s*),a)存在的状态。如 f(4)=g(f(3),h)=g(0,h)=1,f(5)=g(f(4),e)=g(1,e)=2。失效函数把一个状态匹 配到另一个状态。f 的值如表 3-1 所示: 表 3-1 失效函数表 i 1 2 3 4 5 6 7 8 9 f(i) 0 0 0 1 2 0 3 0 3 输出函数 output 的作用是在匹配过程中输出已经匹配的模式串。output 的 构造分两步,第一步是在构造转移函数 g 时,每处理完一个模式串,则将该模式 串加入到当前状态 s 的输出函数中,如 output(2)=he,output(5)=she。第 二步是构造失效函数f时, 若f(s)=s,则output(s)=output(s)output(s), 如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论