基于SNORT的入侵检测系统的研究与应用
近年来,互联网的爆炸式发展,给人类社会、经济、文化等带来了无限的机遇,同时也给信息安伞带来严峻挑战。人们采用反病毒,防火墙和入侵检测等技术手段来保i|F|)。9络信息安全。随着嘲络安全技术的1i断发展,入侵检测技术已经成为网络安全体系结构中不可或缺的一部分。
Snort入侵检测系统作为一种著名的开源网络入侵检测系统,能够有效保护系统信息安全,在业界得到了广泛研究和使用。但随着网络带宽不断提高,以及网络攻击种类的急剧增加,致使Snort的检测任务越来越重,从而有可能漏掉一些造成严重后果的网络攻击行为。因此,如何提高Snort的性能己成为入侵检测领域研究的一个热点。 本文以Snort系统为研究对象,分析Snort系统的基本架构,并探讨了Snort系统的具体应用。论文工作主要包含以下三个方面:
1、在介绍入侵检测系统的基础上,对Snort系统结构、主要模块功能、上作流程和规则结构进行细致剖析。
2、通过对Snort的深入分析,提出了改进Snort的四种方法:第一、采用内存映射技术和NAPI技术来改进Snort的包捕获性能。第二、采用规则优化技术创建高效的规则集以提高规则匹配的速度。第三、利用高速缓存策略提高检测效率。第四、存预处理模块设定阈值忽略统计到的频繁连接的包。
3、分析Snort系统与防火墙技术配合使用的必要性,结合实际提出了一个Snort系统的典型应用方案。
关键词:入侵检测:检测性能:Snort应用 Abstract
Recent years,the internet has got explosive development,which brings the human society,economy,culture infinite opportunity,meanwhile,it also brings information security rigorous challenge.People adopt ani—virus,firewall,intrusion detection technology etc to assure the network security.With the development of network technology,the intrusion detection technology has become the necessary component of network security architecture.
Snort intrusion detection system,as a famous open source NIDS,could protect system information security effectively,which gets vast research and appl ication in industry.The Snort detect ion engine adopts the simple pattern matching strategy.Wi th the increase of net—band and rule—set,the detection load of Snort iS becoming heavier:therefore,it iS possible that Snort may neglect some severe attacks.So it is crucial to design high efficient pattern matching algorithm for intrusion detection system. The main works of this paper include the following three parts: 1、Based on introducing Intrusion Detection System,the paper get through a deep research on Network Intrusion Detection System named Snort.Through analyzing modules of the Snort’S architecture,working flow and rules,the paper points out the performance bottleneck of the
Snort
2、Based on which the paper gives out the methods to improve snort’S performance:First,the technology of the improved packet capture, whi ch can improve the performance of packet capture by using Memory
mapping,NAPI:Second,Third,the technology of optimization rules,which can improve the speed of matching rules by creating efficient rule
sets:Third,a dynamiC Cache strategy iS put forward,in which the recent frequentIy used rule node pointers ale stored in a Cache block:Fourth, Set threshold to i gnore the star i st i cal connect i on between the packet. 3、Unified actually proposed a Snort system model application plan
KeyWords:Intrusion detection:Detection Performace:Application of Snort 基于Snort的入侵检测系统的研究与应用 第一章绪论
1.1课题研究背景
中国互联蚓络信息中心(CNNIC)报告了截至2008年12月31日的我国互联网络情况:我国网民数量规模达到2.98亿人,我同国际m口带宽总量640286.67M。计算机网络飞速发展,已经渗入现代社会生活的方方而面。很多单位建立了自己的局域网,通过局域网实现资源共享和协同工作,从而提高工作效率。但人们在享受计算机网络带来的种种便利的同时,也不得不面对网络上存在。的严重的安全问题。2008年,公安部网络安全状况调查结果显示:被调查的12000余家企业有62.7%发生过网络信息安全事件。而发生安全事件的企业中,72%的企业感染了计算机病毒、蠕虫和木马程序,22%的企业受到垃圾电子邮件干扰和影响,50%的企业发生网络端口扫描、拒绝服务攻击和网页篡改等安全事件。 为对付“黑客”们层出不穷的攻击,人们采取各种各样的反攻击手段:外部防御、外部威慑、内部防御、内部威慑、入侵检测、诱骗技术、入侵对抗、陷阱或假目标等。所有这些反攻击手段可以分为两大类:被动型和主动型l。被动型反攻击手段的典型代表是防火墙。它们主要是基于各种形式的静态禁止策略。被动型反攻击手段对于改善网络安全有很实际的意义,而且也是对所有网络安全最基本的响应措施。但是被动型防御机制也有它自己的局限性。例如,防火墙虽然能够通过过滤和访问控制,制止多数对系统的非法访问,但却不能抵御某些入侵攻击,尤其是在防火墙系统存在配置上的错误、没有定义或没有明确定义系统安全策略时,都会危及整个系统的安全。另外,由于防火墙主要是在网络数据流的关键路径上,通过访问控制来实现系统内部与外部的隔离,而针对恶意的移动代码(病毒、木马、缓冲溢出等)攻击以及来自内部的攻击等,防火墙将无能为力。
主动型反攻击手段的典型代表就是本论文将要研究的入侵检测系统。它是一种能自动识别系统中异常操作和未授权访问、检测各种网络攻击的技术。入侵检测是最近发展起来的一种动态的监控、预防或抵御系统入侵行为的安全机制,主要通过监控网络、系统的状态、行为以及系统的使用情况,来检测系统用户的越权使用以及系统外部入侵者利用系统的安全缺陷对系统进行入侵的企图。和传统的预防性安全机制相比,入侵检测是一种事后处理方案,具有智能监控、第。章绪论实时探测、动态响应、易于配置等特点。入侵榆测技术的引入,使得网络、系统的安全性得到进。。步的提高(例如,可以检测出内部人员偶然或故意提高他们的用户权限的行为,避免系统内部人员对系统的越权使用)。入侵检测技术是网络安全体系中重要的组成部分,它的开发和应用可以增大网络与系统安全的保护力度。入侵监测技术作为一种主动的信息安伞保障措施,有效地弥补了传统安伞防护技术的缺陷。通过构建动态的安全循环,可以最大限度地提高系统的安全保障能力,减少安全威胁对系统造成的危害。目前,入侵检测已经成为网络安全工具的主要研究和开发方向。
1.2国内外发展现状
Snort是目前最著名、最活跃的开放源码网络入侵检测系统。Snoa定位于
轻量级的入侵检测系统,已经实现了网络探测器和许多第三方的管理及日志分析 -丁具,是月前世界上使用最广泛的开源入侵检测系统之一。Snon可以完成实时 流量分析和对记录网络IP数据包的能力,能够进行协议分析、内容查找/匹配, 能够检测到缓冲区溢出,端口扫描、CGI(comnlon gateway interface)攻击、SMB (server message block)探测、操作系统指纹探测企图等。Snort可以运行于
Linux/Unix系列,Windows等操作系统,具有良好的跨平台性,并提供丰富的报 警机制。Snort遵循GPL(general public license),所以任何企业、个人、组织都可 以免费使用它作为自己的网络入侵检测系统。Snon整体设计编码简洁明了,攻击 检测规则集已成一定规模,它的规则集已经被很多其他开放源码IDS项目所兼
容。历经数年的发展,Snort已经发展到了2.8.4版本。Snort基本架构在SnortI.6 版本时确立,2.0版本开始采用了新型的入侵检测引擎,功能更加完善和强大。 Snoa已经成为学习和研究入侵检测系统的经典实例。
目前,许多商业入侵检测系统都是在Snon入侵检测系统的基础上发展来的, 有些甚至是Snon的翻版。国内也开发了不少商用入侵检测系统,例如扁明星辰 公司的“天阗入侵检测系统”,中科网威的“天眼入侵检测系统”,绿盟科技的“冰 之眼”入侵检测系统,联想也开发了“联想网御入侵检测系统”。虽然日前市面 上的商用入侵检测系统种类繁多,但是分析其本质,这些入侵检测系统都借鉴了 Snort的设计思想。 2
基于Snon的入侵检测系统的研究与戍用 1.3本文的研究内容及章节安排 1.3.1本文的研究内容
Snort已经成为基于特征的网络入侵检测系统的典型代表,因此研究和分析 Snort系统对于提高。。般基于特征的入侵检测系统的性能有很大意义。本论文以 著名的开源入侵检测系统Snort为研究平台,开展如下三方面工作:
1、在介绍入侵检测系统的基础上,对Snort系统结构、主要模块功能、工 作流程和规则结构进行细致剖析。
2、通过对Snort的深入分析,提出了改进Snort的四种方法:第一、采用内
存映射技术和NAPI技术来改进Snort的包捕获性能。第二、采用规则优化技术创 建高效的规则集以提高规则匹配的速度。第三、利用高速缓存策略提高检测效率。 第四、在预处理模块设定阈值忽略统计到的频繁连接的包。 3、结合实际提出了一个Snort系统的典型应用方案。 1.3.2章节安排
本文共分为六个部分: 第‘‘章是绪论,阐述课题研究背景、本文的研究内容以及本文的内容安排。 第二章介绍了入侵检测系统的基本原理,对IDS进行了分类,对IDS的发展 趋势进行了展望。
第三章给出了基于Snort的入侵检测系统的分析,分析了Snort的特性,给 出了Snort的模块结构以及各个模块功能,并从规则解析和规则匹配对Snort的 入侵检测流程进行了解析。
第四章对Snort的性能瓶颈进行分析,从数据包捕获机制,规则优化和减少
检测流量等几方面着手,总结这几方面所采用的改进技术,并在最后给出了优化
Snort性能的综合检测模型。
第五章为Snort系统的应用实例,先分析了Snort作为入侵检测系统与防火 墙的配合问题,随后提出了一个典型应用方案。 第六章为结束语,阐述了下一步研究的方向。 第二章入侵检测系统慨述 第二章入侵检测系统概述
入侵检测系统已经发展成为安全网络体系中的一个关键性组件.本章主要 对入侵检测的定义、分类、模型进行简单介绍,并对入侵检测系统存在的’‘些问 题进行探讨。
2.1入侵检测系统I DS构成与工作流程
入侵检测系统【61是一种主动的安伞防护工具,它从计算机系统或网络环境中 采集数据,分析数据,发现可疑攻击行为或者异常事件,并采取一定的响应措施 拦截攻击行为,降低可能的损失。提供了对内部攻击、外部攻击和误操作的实时 防护,在计算机网络和系统受到危害之前进行报警、拦截和响应。它具有以下主 要作用:.
1、监视、分析用户及系统活动: 2、系统构造和弱点的审计;
3、识别已知进攻的活动模式,并产生告警; 4、异常行为的统计分析;
5、评估重要系统和数据文件的完整性;
6、操作系统的审计跟踪管理,并识别用户违反安全策略的行为。 2.1.1入侵检测系统的组成
DARPA(美国幽防部高级计划局)提出的CIDF(公共入侵检测框架)是一
个入侵检测系统的通用模型口3。该入侵检测系统由事件产生器、事件分析器、事 件数据库、响应单元和目录服务器组成。
l、事件产生器:负责收集原始数据,它对数据流、日志文件等进行追踪然 后将搜集到的原始数据转换成事件,并向系统的其他部分提供此事件。 2、事件分析器:对接受到的事件信息进行分析;以判断它们是否属于入侵 行为或-异常现象,然后将判断结果转换成报警信息。 3、事件数据库:负责存放中间数据和最终数据。
4、响应单元:根据事件分析器传来的报警信息做出反应。 4
基于Snon的入侵检测系统的研究与应用
5、目录服务器:负责控制各组件传递的数据并认证其他组件的使用,以防 止IDS本身受到攻击。
2.1.2入侵检测系统工作流程
通用的入侵检测的工作流程主要分为以下四步:
第一步:信息收集。信息收集的内容包括系统、网络、数据及用户活动的状 态和行为。这一步非常重要,凶为入侵检测很大程度上依赖于收集信息的可靠性 和正确性。
第二步:信息分析。是指对收集到的数据信息,进行处理分析。一般通过协 议规则分析、模式匹配、通缉分析和完整性分析几种手段来分析。
第三步:信息存储。当入侵检测系统捕获到有攻击发生时,为了便于系统管 理人员对攻击信息进行查看和对攻击行为进行分析,还需要将入侵检测系统收集
到的信息进行保存,这些数据通常存储到用广指定的同志文件或特定的数据库 巾。
第四步:攻击响应。对攻击信息进行了分析并确定攻击类型后,入侵检测系 统会根据用户的设置,对攻击行为进行相应的处理,如发出警报、给系统管理员 发邮件等方式提醒用户。或者利用自动装置直接进行处理,女Jl切断连接,过滤攻 击者的IP地址等,从而使系统能够较早的避开或阻断攻击。 2.2入侵检测系统的分类 2.2.1入侵检测系统分类
入侵检测系统的分类方法不是唯一的,有两种比较常用标准:按照信息源和
分析方法的标准来分类的旧1。入侵检测系统根据数据来源分为基于主机的入侵检 测系统(HIDS)和基于网络的入侵检测系统(NIDS)以及混合型入侵检测系统:根据 分析方法分为异常检测(AD)和误用检测(MD):根据响应方式分为被动响应系统和 主动响应系统。入侵检测系统的分类架构如图2—1所示: 第二章入侵检测系统概述 2.2.2基于主机的入侵检测 图2-1入侵检测系统分类
基于主机的入侵检测系统卜m1为早期的入侵检测系统结构,其检测的目标主 要是主机系统和系统本地用户。检测原理是根据主机的审计数据和系统日志发现 可疑事件。检测系统可以运行在被检测的主机或单独的主机}:。系统结构图如图 2-2:
图2—2基于主机的入侵检测系统
从技术发展的历程米看,入侵检测是在丰机审计的罐础上发展起米的,因而 早期的入侵检测系统都是基于主机的入侵检测系统。主机型入侵检测系统保护的 一般足所在的主机系统。 6 统 统 深 曛 烈 翮 溅 澍 瓢溯缆 检 检 斟捡系 侵 侵 侵经测 扒 入 川~埝 试
式 的的侵 劣 方
栅络二<溺 溺 应 应
割嘲型渤 捌 嗡 嗡
手予台脖 制 动 动 r; 通常,基于主机的IDS叮以监测系统、事件齐fiWindowNT下的安全记录以及UNIX 环境下的系统记录,从l|l发现可疑行为。当有文件发生变化时,IDS将新的记录 条目与攻tlJ.标记相比较,看它们是否匹配。如果匹配,系统就会向管理员报警并 向别的目标报告,以采取措施。对关键系统文件和可执行文件的入侵检测的一个 常用方法,足通过定期检查校验和来进行的,以便发王见意外变化。反应的快慢与 轮询间隔的频率有直接的关系。此外,许多IDS还监听端口的活动,并在特定端 口被访问时向管理员报警。 尽管基于主机的入侵检测系统不如基于网络的入侵检测系统快捷,但它却具 有基于网络的入侵检测系统无法比拟的优点。这些优点n铂包括: 1、能够确定攻击是否成功。主机足攻击的最终目标所在,所以基于主机的 IDS使用含有已发生的事什信息,可以比基丁刚络的IDS更加准确地判断攻击是否 成功。 2、监控粒度更细。基于主机的IDS监控目标明确、视野集中,可以检测一些 基于网络的IDS不能柃测的攻击。它可以很容易地监测一些活动,包括对敏感文 件、目录、程序或端口的存取。例如,基于主机的IDS町以监督所有用户登录及 退出登录的情况,以及每位用户在联接到网络以后的行为。它还可以监视通常只 有管理员才能实施的非正常行为。针对系统的一些活动,有时并不通过网络传输 数据,有时虽然通过网络传输数据,但所传输的数据并不能提供足够多的信息, 从而使基于网络的IDS检测不到这些行为,或者很难检测到这个程度。 3、配置灵活。每一台主机都有其自身基于主机的IDS,用户可根据自己的实 际情况对其进行配置。 4、对网络流量不敏感。基于主机的IDS一般不会因为网络流量的增加而放弃 对网络行为的监视。 5、适用于加密的以及交换的环境。加密和交换设备加大了基于网络的IDS 收集信息的难度,但由于基于主机的IDS安装存耍监控的主机上,根本不会受这 些因素的影响。 6、一般由软件实现,不需要额外的硬件。基于主机的IDS存在的主要问题: 一是占用主机资源,在服务器上产生额外的负载:二是缺乏平台支持,可移植性 差,使刖范围受限。 笫二章入侵检测系统慨述 2.2.3基于网络的入侵检测 基于网络的入侵检测系统怕‘1。一纠引,通过在共享网段上对通信数据的脏听、 采集,分析可疑现象。其数据源是网络上的数据包,监听本例段内的数据包并进 行判断,分辨出攻击者。当前的大部分入侵检测系统产品是基于网络的入侵检测 系统。它们应用模式匹配技术,将采集到的网络数据包同规则库中的规则进行模 式匹配,根据分析结果采取相应的行动。系统结构图如下: 安全配置构造 网络安全数据库 分析引擎 传感器 传感器 传感器 图2—3基于网络的入侵检测系统 基于网络的IOS具有许多基于主机的ms无法提供的功能。基于网络的Ins有 以下优点u71: 1、检测速度快。基于网络的传感器通常能在微秒或秒级发现问题。而人多 数基于主机的产品则耍依靠对最近几分钟内审计记录的分析。 2、隐蔽性好。一个网络.卜的传感器不像一个主机那样显眼和易被存取,因 而也不那么容易遭受攻击。基于网络的传感器不运行其他的应用程序,不提供网 络服务,可以不响应其他计算机。因此可以做得比较安全。 3、视野更宽。基于网络的IDS可以检测一些主机检测不到的攻击,如基于网 络的SYN攻击、泪滴攻击等,还可以检测不成功的攻击和恶意企图。 4、较少的传感器。南于使用一个传感器就可以保护一个共享的网段,所以 不需要很多的传感器。相反,如果基于主机,则要在每台主机上配置一个代理, 这样的话,不但花费昂贵,而且难于管理。 8 基于Snort的入侵枪测系统的研究与席_l{】 5、攻击者不易转移证据。基于网络的IDS使用正在发生的网络通信进行实时 攻击的检测。所以攻击者无法转移证据。被捕获的数据不仪包括攻击的方法,.向 且还包括可以识别黑客身份和对其进行起诉的信息。许多黑客都熟知审记记录, 他们知道如何操纵这些文件掩盖他们的作案痕迹,如何阻止需要这些信息的基于 主机的系统去检测入侵。 6、操作系统无关性。基丁例络的IDS作为安全监测资源,与主机的操作系统 无关。与之相比,基于主机的系统必须在特定的、没有遭到破坏的操作系统中才 能正常工作,生成有用的结果。 7、占资源少。在被保护的设备上不用占用任何资源。 基于网络的IDS存在的问题:一是只能舱{!!l!本网段的活动,精确度不高o.二是 在交换环境下难以配置:三是防入侵欺骗能力较差:四是难以定位入侵者。 2.2.4一种混合的方法 混合入侵检测是将基于网络的入侵检测系统和基于主机的入侵检测系统结 合在一起的入侵检测系统。由于基于网络的入侵检测系统和基于主机的入侵检测 系统各有利弊,将二者的技术结合在一起,将会优势互补,极大地提高系统防范 入侵和防范误用的能力。这也是入侵检测系统发展的方向之一。 2.2.5误用入侵检测 误用检测⋯一H们又称为基于特征的检测,其基本思想是:根据已经发现的入侵 行为,定义相应的入侵模式,然后在实际的审计数据中检测是否出现这些入侵模 式来完成检测功能。误用检测的原理如图2—4所示。 惨改已有规刚 图2_4误用检测原理 9 第二章入侵检测系统{i}【述 该模型优点是町以根据具体的入侵模式特征库进行判断,检测准确牢很高。 缺点是检测范丽受到己有的入侵模式特征库知识的局限,只能检测己知的攻击模 式,而无法检测未知的攻讲模式。 常用的误用检测技术有: 1、模式匹配 SandeePKumar提出了基于模式匹配(Pattern Matching)的入侵检测方法 陋引。模式匹配是最为常用的误用检测技术,特点是原理简单、检测效率高、实时 性强。模式匹配虽然存在检测能力弱、漏报率较高的问题,但由于系统的实现、 配置、维护都非常方便,因此得到了广泛的应用。本文研究的网络入侵检测系统 Snort就是基于模式匹配实现的。 2、专家系统心司 基于专家系统的入侵检测技术是入侵检测的另外一个特别值得重视的研究 方向瞳一281,基于规蚍0的分析方法是最常用的方式,即根据安全专家对可疑行为的 分析经验来形成一套推理规则,然后再在此基础之上构成相应的专家系统。该方 法的优点是响应速度快,当规则比较准确时,入侵检测能力比较强。但因不断有 新的入侵方式出现,专家系统还是需要不断更新,专家系统需要自学习能力进行 规则的扩充和修正,而规则的修正和扩充受到专家知识的限制和系统学刊能力的 限制,当网络数据和预期的入侵模式相差很大时,即对新的入侵模式检测能力差, 容易发生漏报k引。 3、入侵签名分析 入侵签名分析采用与专家系统相同的知识获取方法,但在检测时对这些关于 入侵活动的知识的使用方式则不同。专家系统把知识表示成规则,检测时,对系 统审计数据记录进行抽象处理,然后再看是否符合规则,判断是否存在入侵活动。 而入侵签名分析则把获得的入侵攻击的知识翻译成可以在系统审计迹-I-直接发 现的信息。例如,一个入侵攻击事件可以用它所产生的一系列审计事件或在系统 审计迹中可以匹配处理的数据模式表示。这种技术简单有效,在现有的商用IDS 中应用广泛。 2.2.0异常入侵检测 异常入侵检测根据异常行为和使用计算机资源情况检测出来的入侵。其试图 10 基于Snort的入侵检测系统的研究与应用 用定量方式描述可以接受的行为特征,以区分非正常的、潜在的入侵性行为。异 常检测的原理如图2—5所示。 更氟轮廓 动态生成新的轮廓 图2-5异常入侵检测原理图 它的主要优点是可以检测出大部分的入侵行为,而且它的误报率相对较小; 它可以检测出己知的入侵和未知的入侵。但是如果不能枚举所有的正常使用规 则,那么会导致有些正常使用的行为会被误认为是入侵行为,即有误报产生。 另外,在近年来的研究中,出现了一些新的入侵检测技术。它们不能简单 地归类为异常检测或者误用检测,而是提供了一种有别于传统入侵检测视角的技 术。例如,基于数据挖掘、免疫系统、遗传算法的入侵检测技术【22】等。它们或者 提供了更具普遍意义的分析技术,或者提出了新的检测系统架构,无论对于误用 检测还是异常检测来说,都町以得到很好的应用。目前,这些新的检测技术大都 处于研究阶段,还不够成熟。 2.3入侵检测面临的挑战和发展趋势 2.3.1入侵检测面临的挑战‘删‘引1 1、误报、漏报率132J较高 当前的入侵检测系统通常采用了模式匹配、统计分析和协议分析等检测技 术,而这些检测技术都存在各种各样的缺陷。例如,模式匹配的可扩展性和适应 性较差,且不能检测未知攻击;统计分析方法中的阐值很难准确设定,太小会产 生大量的虚警,而太大则产生大量的漏报,并且入侵者还可以通过逐步“训练”, 使入侵事件符合正常操作的统计规律,从而透过入侵榆测系统:协议分析检测方 第二章入侵检测系统慨述 法中,~般的入侵柃测系统只简单地处理了常用的协议,如HTTP、FTP、SMTP 等,而其余大量的协议报文一I一存在的异常行为有可能被漏报,如果分析所有支持 的协议类型,则计算成本将无法承受,这就需要探索新的入侵检测技术以解决计 算成本问题。 2、缺乏有效的协同 现有的入侵检测系统大多只针对特定网段、特定主机的数据进行分析,还不 能将来自4i同源的信息进行协同分析,影响了对某些攻击的检测。另外,对.丁以 下方面的协同,现有的入侵检测系统还没有完全做到。例如:同一系统中不同入 侵检测部件之间的协作,特别是基于主机的IDS和基于网络的IDS之间的协作, 以及异构平台部件之间的协作;不同安伞工具之间的协作,如IDS和防火墙、IPS 的协作;不同厂家的安全产品之间的协作,等等。 3、有限的响应能力 传统的入侵检测系统将注意力集中在对攻击的检测上。虽然检测出了网络入 侵,但由于被动的IDS本身并不试图降低所造成的破坏,也不主动地对攻击者 采取反击行动,而管理员常常无法立即分析入侵柃测系统的报告,并采取相应的 行动,这就使攻击者在系统管理员采取行动前有机可乘。冈此,传统的被动的响 应方式,已不能适应入侵检测系统发展的需要。 4、性能有待提高 目前的入侵检测系统己不能适应交换技术和高速网络的发展,在人流量情况 下会造成入侵检测系统的丢包甚至瘫痪,因此需要探索新的入侵检测方法、技术 和模型。 2.3.2入侵检测面l临的发展趋势 在入侵检测技术发展的同时,入侵技术也在更新,一些黑客组织己经将如fll』 绕过IDS或攻击IDS系统作为研究重点。高速网络,尤其是交换技术的发展以及 通过加密信道的数据通信,使得通过共享网段侦听的网络数据采集方法显得不 足,而大量的通信量对数据分析也提出了新的要求。随着信息系统对一个国家的 社会生产与国民经济的影响越来越重要,信息战己逐步被各个国家重视,信息战 中的丰要攻m“武器”之一就是网络的入侵技术,信息战的防御.丰要包括“保护”、 “检测”与“响应”,入侵检测则是其“检测”与“响应”环节不可缺少的部分。 12 基于Snort的入侵检测系统的研究与虑J【}j 近年对入侵柃测技术有几个主要发展方向。州: 1、应用层入侵检测 许多入侵的语义只有在应用层才能理解,而目前的IDS仅能检测如wEB之类的 通用协议,而不能处理岔HLotus Notes、数据库系统等其他的应用系统。许多基 于客户、服务器结构与中间件技术及对象技术的大型应用,需要应用层的入侵检 测保护。 2、智能的入侵检测 入侵方法越来越多样化与综合化,随着机器学习技术研究领域的发展,很多 新的方法也被应用到入侵检测领域中,包括关联规则、神经网络、决策树、遗传 算法、贝叶斯网络等口制,但是这只是一些尝试的研究工作,需要对智能化的IDS 加以进~步的研究以解决其自学习与自适应能力。 3、入侵检测的评测方法 用户需对众多的IDS系统进行评价,评价指标包括IDS检测范围、系统资源占 用、IDS系统自身的可靠性。从而设计通用的入侵检测测试与评估方法与平台, 实现对多种IDS系统的检测已成为当前IDS的重要研究与发展领域。 4、体系结构由集中式向分布式发展 分布式入侵检测具有使用分布式的方法米检测分布式的攻击的能力,其中的 关键技术为检测信息的协I刊处理与入侵攻击的全局信息的提取。分布式的体系 结构具有可扩充性、高适应性和抗攻击性等优点,成为当前入侵检测系统发展的 方向。 5、响应方式由被动式向主动式发展 入侵检测响应分为主动响应和被动响应。多数IDS目前只能做到被动报警。 当榆测出网络攻击后,IDS只会发出告警,将发生的不正常情况报告给管理员, 本身并不试图降低所造成的破坏,更不会主动地对攻击者采取反击行动。只有被 动报警的IDS,需要专人对其进行维护、管理和事件分析,这是目前IDS不能被广 泛使用及其功用被怀疑的主要原因。为了得到进一步发展,实现IDS主动响应是 当务之急。主动响应,就是要在收集相关信息的基础上,通过调整被攻击系统的 状态,阻止或减轻攻击影响,如断开网络连接、增加安全同志、杀死可疑进程等。 总之,入侵检测作为+一种积极主动的安全防护技术,提供了对内部攻击、外部攻 击和误操作的实时保护,在网络系统受到危害之前拦截和响应入侵。 第二章入侵检测系统慨述 2.4本章小节 本章主要介绍了入侵检测系统的组成和工作流程,并分析了入侵检测系统 的分类以及各类型的特点,最后对入侵检测技术而临的挑战和发展趋势做了分析 与概括。 14 基于Snon的入侵检测系统的研究与虑.}}j 第三章网络入侵检测系统Snort分析 3.1 Snort概述 Snort。“3是一个强大的轻量级的网络入侵检测系统。通过研究它,可以学到所 有入侵检测系统的内部框架及工作流程(也包括同类型的商业入侵检测系统的框 架及工作流程)。其特点如下: 1、Snort是一个开放源代码的免费软件(free software),它是一个用C 语言编写的开发源代码软件,任何组织和个人都可以自由使用。 2、Snort代码极为简洁,短小,其源代码压缩包只有200KB,但其功能强大。 Snort具有实时流量分析和日志IP网络数据包的能力,能够快速检测网络攻击, 及时发出报警。利用XML捅件,Snort可以使用SNML(简单嘲络标志语言)把日 志放到一个文件或者适时报警。Snort能够进行协议分析和内容的搜索/匹配, 现在Snort能分析的协议有TCP、UDP、ICMP,将来可能增加对ARP、IPX等协 议的支持。它能够检测多种方式的攻击和探测,例如缓冲区溢出、秘密端口扫描、 CGI攻击、SMB探测、探测存在系统指纹特征的企图等。 3、Snort可以运行在多种操作系统平台,例如UNIX系列和Windows(需要 1ibpcap for Win32的支持)卜。与许多商业产品相比,它对操作系统的依赖性 比较低,Snort具有很好的扩展性和可移植性。 4、Snort的规则具有简单、高效、灵活、更新迅速的特点。它的规则选项 概念清楚明确,选项之间没有从属关系,规则之间除了启动与被启动之外没有其 他关系。规则所提供的选项基本上能完全描述~个数据包的特征,通过对选项加 以组合基本上就能清楚地描述出基于单包的攻击,绝大多数规则只需要一行代码 就行,这样也使规则匹配引擎能够高效、高速的处理。规则从技术类型、攻击类 型、威胁类型等角度进行了分类,而且还定义了优先级,虽然不太科学完整,但 在实现运用中还是相当实用的,可以比较方便地针对各种网络环境做出调整,对 规则集加以剪裁。尽管与商业的入侵检测工具相比起来,它的规则语言比较简陋, 在报警方式和图形化使用界而上也显露出不足之处,但是程序的整体结构清晰, 规则语言简单实用并提供插件的功能支持,用广可以添加自己的检测规则和处理 函数,这对于规则库的及时更新有着极为现实的意义。 第一章网络入侵检测系统Snort分析 5、作为~种开放源代码的免费软件,Snort有着其他商用软件无法比拟的 特点。网上有相当多的人关心Snort的进展,热性地提供支持维护,冈此它的更 新非常迅速,往往一有新的攻m出米在几个小时以内就会有相应的检测规则出 现。这使用户在第一时间就能获得发现攻击的能力,使其很快能补上漏洞。 6、Snort管理、配置简单,从而使非专业人员非常容易地获得网络安伞。 而且,入侵检测的规模可根据J删络威胁、系统构造和安全需求的改变而改变。入 侵检测系统在发现入侵后,能够及时做出响应,包括切断网络连接、记录事什和 报警等。检测网络的流量如果在binary格式进行输出,Snort可监控1000M的 高速网络。 7、Snort目前版本支持的数据库有mssql、mysql、postgresql、oracle和 odbc,这也为构建基于Snort入侵检测系统中进行数据融合以至数据挖掘创造了 条件。 总之,Snort作为一个自由、简介、快速、健壮、高性能、易于扩展的入侵 检测系统,越来越受到人们的关注。 3.2 Snort系统结构的分析 3.2.1 Snort的主要模块结构 Snort可分为5个主要的组件。州。第一个是捕包装置。Snort依赖一个外部 捕包程序库1ibpcap来抓包。在包以原始状态被捕获后,要送给包解码器。解码 器是进入Snort自身体系的第一步。包解码器将特殊协议元素翻译成内部数据结 构。在最初的捕包和解码完成后,由预处理程序处理流量。在许多插入式预处理 器程序对包进行检查或操作后将他们交给下一个组件:检测引擎。榆测引擎对每 个包进行检测判断入侵。最后是输出组件,它对可疑行为产生警报。图3一l是一 个简单的数据流程示意图。 16 基于Snort的入侵检测系统的研究与应朋 图3-1 Snort组件数据流图 下面将详细介绍数据包嗅探器,预处理器,检测引擎,输出/报警各个组成 模块的-丁作原理。 3.2.2数据包嗅探器 数据包嗅探器模块,丰要实现数据包捕获和解析的功能。将捕获的网络数据 包按照TCP/IP协议族的不I司层次将数据包进行解析。Snort利用Libpcap库函 数进行数据采集,该库函数可以为应用程序提供直接从链路层捕获数据包的接口 函数,并可以设置数据包的过滤器来捕获指定的数据。网络数据采集和解析机制 是整个网络入侵检测系统实现的基础,其中最关键的是要保证高速和低丢包率, 这不仅仅取决于软件的效率,还同硬件的处理能力相关。对于解析机制来说,能 够处理数据包的类型的多样性也同样非常重要。目前,Snort可以处理以太网、 令牌环以及SLIP等多种链路类型的包。 3.2.3预处理器 预处理模块使得Snort的功能可以很容易地扩展,用广和程序员能够将模块 化的插件方便地融入Snort之中。Snort预处理分用来针对可疑行为检查包或者 修改包以便检测引擎能对其正确解释。预处理的参数可以通过snort.conf配置 文件调整。该文件允许根据需要添加或删除预处理程序。 ‘ 第■章网络入侵检测系统Snort分析 3.2.4检测引擎 检测引擎模块足入侵检测系统实现的核心,准确性和快速性足衡量其忤能的 重要指标。前者主耍取决丁.对入侵行为特征码的提炼的精确性和规则撰写的简洁 实用性,由于网络入侵检测系统自身角色的被动性——只能被动的检测流经木网 络的数据,而不能主动发送数据包去探测,所以只有将入侵行为的特征码归结为 协议的不同字段的特征值,通过榆测该特征值来决定入侵行为是否发生。后者主 要取决于引擎的组织结构和采用的模式匹配算法。当数据包从预处理器送过来 后,检测引擎依据预先设置的规则检查数据包,~旦发现数据包-it的内容和某条 规则相匹配,就通知报警模块。 3.2.5输出/报警 检测引擎检查后的Snort数据需要以某种方式输出。如检测引擎中的某条规 则被匹配,则会触发一条报警,这条报警信息会通过网络、UNIX socket,Windows Popup(SMB)或SNMP协议的trap命令送给日志文件。报警信息也可以记入SQL数 据库,如MySQL等。另外,还有各种专为Snort开发的辅助工具,如各种各样基 于WEB的报警信息显示插件。用Perl或PHP开发插件可以更直观地显示报警信 息。报警信息以文本文件的形式保存或保存在MySQL等数据库中。 3.3 Snort工作流程 基于规则的匹配的是Snort的核心检测机制,其工作流程。“1为:Snort首 先读取规则文件,从规则文件中读取每一条规则并对其进行解析,用对应的语 法表示出来,然后在内存中建立规则语法树,并初始化和解析规则树,分别生 成TCP、UDP、ICM和IP四个不同的规则树,每一个规则树包含独立的三维 链表:RTN(规则头), OTN(规910选项)和指向匹配函数的指针。当Snort捕获一 个数据包时,首先分析该数据包使用哪个IP协议以决定将与某个规则树进行 匹配:然后与RTN结点依次进行匹配,当与一个头结点相匹配时,向下与该 头结点的OTN结点进行匹配。每个OTN结点包含一条规则所对应的全部选项, 同时包含一组函数指针,用来实现对这些选项的匹配操作。当数据包与某个OTN 结点相匹配时,即判断此数据包为攻击数据包,而规则匹配流程图如图3—2。 18 基于Snort的入侵检测系统的研究与虑川 t 一嘲l l 7l缮历”粥 I 毒 i-譬舯行J |嬲棼豫俺鼬F囝l L‘~ I 1 1 锄协健;--窜霹l镑攮,蔷器r印镣z I i唆戚一甓盔器I 薅用序室朗撙髓 I 理备圯爱黔喙譬 棚锄瞳L l i ~\⋯~ 1%贸嬲■鹫制埝 冀雕壤l —’翻^漕}钌惫 工Y l 日毫—l出i 羁麓I 旧要:然竺j ⋯A I摹亍蛇焉亭”㈣悯l— N ▲ 。f I锗庸l 。 3.4 Snort的规则 图3—2 Snort工作流程 Snort采用基于规则的网络入侵模式搜索机制,对网络数据包进行模式匹配, 从中发现入侵或恶意攻击行为。Snort舰则就是使用一种简单的捕述语言来刻画 网络上的带有攻击标识的数据包。这种描述语言在形式上虽然不够完备,但是相 当灵活,且具有很强的描述性。 3.4.1规则组成 所有的Snort规则都可以分为两个逻辑组成部分:规则头部和规则选项。规 则的头部包含规则所做的动作的信息,也包含与包所比对的一些条件。选项部分 通常包含一个告警消息以及包的那个部分被用来产生这个消息。一条规则可以用 来探测一个或多个类型的入侵活动,一个好的规则可以来探测多种入侵特征。 Snort规则头部的主要结构如图3~3所示: 19 第■章网络入侵检测系统Snort分析 图3-3 Snort规则头部结构 规则头定义了规则的动作、所匹配网络报文的协议、源地址、目的地址、源 端口以及目标端口等信息;规则选项部分则包含了所要显示给用户查看的警告信 息以及用来判定报文是否为攻击报文的其他信息。 3.4.2 Snort的规则树 泣托文.摇础q分 黉 盹l”{砑 Il,a ·rJT■ 伍尹⋯匹习⋯”{习⋯一甲 ,≈眭∞境F4诌 图3-4规则树的结构图 ⋯J一圈 从规则树的结构图3-4可知整个三维链表中有四类结点:动作链表结点、协 议链表结点、规则树结点RTN,选项树结点OTN。 Snon规则树有5个单独的规则链,这些链作为“树”顶部的链表头。 1、Activation报警并且开肩另外‘个动态规则。 2、Dynamic当被上层的激活规则调朋时记录网络流量的日志。 20 基于Snort的入侵检测系统的研究与应刖 3、Alert产生报警并记录这个数据包。 4、Pass忽略这个数据包。 5、Log记录网络的流量(不报警)。 对于五个规则链中的每~个,都有单独的被协议关闭的链表,树中的这一层 被称为规则树节点(RTN)。规则树节点支持以下四个协议: 1、TCP协议,如SMTP,HTTP,FTP。 2、UDP协议,如DNS。 3、ICMP协议,如ping,traceroute。 4、IP协议,如IPSec,IGMP。 每一个协议链表中的是规则选项,称为选项树节点(OTN)。 (1)Content中的内容,是具体采用BM或AC模式匹配算法进行查找的特 征字符串。 (2)Flow中的内窖是系统根据设置,指定要链接到的检测插件。初始化时, Snort读入规则文件,把规则集合组织成~个二维的链表结构,这个链表结构包 含:规则树节点(Rule Tree Nodes,RTN)和选项树节,点(Option TreeNodesOTN)。 规则树节点(RTN)Ll·包含规则的通.H]属性,例如,源IP地址、源端口号、目的地 址、目的端口号、协议类型(TCP,ICMP.UDP)等。选项树节点(OTN)中包含一些 可被添加到每条规则中的各种各样的信息,例如,TCP标志、ICMP代码、类型、 包负载的人小,影响效率的主要瓶颈,要查找的内容等。RTN节点从左到右组 成一个链,并作为各个OTN链的链头,即OTN链是链在与之相关的RTN节点 的下面的。按照给定的规则集对包进行检查的时,首先沿着RTN链从左向右进 行匹配直到找到一个匹配的RTN节点,当要检查的包与某一个RTN节点匹配时, 沿着链在它下面的0TN链继续向下查找,对每个OTN中的选项的检查采用相应 的插件函数进行,这些插件函数也同样被组织成链表的形式,当OTN节点中的 一个选项与包匹配时,当前的捅件函数调用链表中的下一个捅件函数对该OTN 节点中下一个选项进行检查。如果一个选项检查失败,则跳出该OTN节点,对 OTN链表中的下一个OTN节点进行检查。为了提高效率,先对不需要对包内容 进行检查的选项进行检查,然后再对需要对包内容进行榆查的选项进行榆查,以 减少不必要的匹配所需的计算量。如果需要对包的内容进行检查,则使用著名的 BM算法或经过优化的AC算法,将OTN节点选项所要求检查的模式串与包的 第■章网络入侵检测系统Snort分析 内容进行精确的模式匹配。如果包中没有包含要找的串,继续与链表中下一个 OTN节点·l,的选项所要查找的模式串进行匹配,直到住包·}-找到所要查找的内 容或所要查找的串全部查找一遍为止。 3.4.3规则的分析 Snort规则的本质就是简单模式匹配,即通过对数据包的分析得到所需信息, 用以匹配自身的规则库。如果能够匹配某一规则就产生事件报警或者做H志记 录,否则就丢弃(即便是属于攻击)。主要包括以下几种匹配类型: l、协议匹配通过协议分析模块,将数据包按照协议分析的结果对协议相应 的部分进行检测。比如,TCP包的标志位,协议异常等。 Alert tcp$EXTERNAL—NET anyj$HOME—NET any(msg:””SCAN NULL””:flags:0:seq:0:ack:O:reference:arachnids, 4:classtype:attempted—recon:sid:623:rev:1:)其中就对TCP的flags,seq, ack进行了协议位置的匹配。协议匹配需要对特定协议进行分析,Snort对 IP厂rCP~DP/ICMP进行了分析,但是没有对应用协议分析。 2、字符串匹配根据某个攻击的数据包或者攻击的原凶,提取其中的数据包 字符串特征。通常Snort经过协议分析后,进行字符串的匹配。比女¨: alert tcp$EXTERNALET any>$HTTP_SERVERS$HTTP—PORTS(msg:’’ WEBN兀ACKS ps commandanempt”;flow:to—server,established; uriconteni:0/bin/ps”:noease:sid:1 328:classtype:web—application_attack; rev:4:)该事件中要进行匹配的字符串就是“/bin/ps”. 3、大小匹配,或者长度匹配。多数情况下,这也应该属于字符串匹配的一 种,不过,这种匹配方式是对数据包中某段数据的长度而不是对具体的字符串进 行匹配。比如,通过数据长度限制来对缓冲区溢出攻击进行检测。 Al ert tcp$EXTERNAL__NET any--->$HTTP_SERVERS$HTTP—PORTS(msg:“WEB—I IS ISAPI.ida attempt’S:uricontent:”.ida?)):nocase:dsize:>239:flow: to_server,established:reference:arachnids,552:classtype:web—applicati on—attack:refernce:bugtraq,1065:reference:cve,CAN一2000=007l:Sid:1243: rev:6:)其巾的关键字dsize就是对数据包的负载进行匹配,如果请求的命令总 长度大于239,那么就检测出一条ida溢出企图的事件。 22 基于Snort的入侵检测系统的研究与戍用 3.5本章小结 本章首先介绍了Snort的特点,分析了Snort的体系结构并对各个模块功能 进行了分析,然后从规则解析和规则匹配两方而对Snort的入侵检测流程进行了 解析。最后对Snort的规则结构和匹配类型进行了详细的分析。 第四章Snort性能分忻 第四章Snort性能分析 文献1371建立了实验环境,利用标准测试数据和实际测试数据对Snort性能进 行了测试。测试表明,Snort系统数据包捕获大约占用了系统时问的20%;其一l-大 量的时间用于软中断和系统调用。攻讲检测约占用了系统时问的57%,其中大 量的时间用于模式匹配。随着网络流量的逐渐增加,Snort系统的丢包率不断上升, 造成大量漏报,因此在高速网络环境下有必要对Snort的性能进行改进。下文将 对如何提高Snort的性能进行分析。 4.1 Snort数据捕获机制分析 数据包捕获是入侵检测的基础部件。目前Snort还没有自己的捕包工具,直 接从网卡捕包的任务由捕包程序Libpcap承担。 Libpcap是一个与实现无关的访问操作系统所提供的分组捕获机制的分组 捕获函数库,用于访问数据链路层。这个库为不同的平台提供了一致的编程接口, 在安装了Libpcap的平台上,以Libpcap为接El写的程序、应用,能够自由的跨 平台使用。它也是用户态的数据包截获API函数接口,有独立性和可移植性。 最初,Libpcap是为了健壮TCPDump而编写的。它支持BPF过滤机制。Snort就 是依赖于Libpcap库进行数据包截取的程序之一(还有Ethereal等)。它的优点是 可以从任何Unix内核平台上截取数据包,而不考虑网卡的芯片类型和驱动程序。 更重要的是,它可以使开发人员编写自己的解码。Libpcap广泛应用于各种领域, 包括网络统计软件、入侵检测系统、网络调试等。在Windows32环境下使用 WinPcap库进行抓包,它是Libpcap的Win32版本。Libpcap系统框架如图4—1 所示【38J。 24 基于sⅡon的入侵检测系统的研究与应坩 l”m“fri l=:__膊尹焉嗲 蜥蜥吉皇每雷龛 :.t 圈4_1 Libpc印系统框架 由上图可知Libpcap通过对数据帧的过滤、缓冲、拷见,将数据帧传递到各 个应用程序缓冲区。在这个过程中,数据包经历了从网}到内核空间、从内核空 间到用户空间两次数据包拷贝。在Libt)cap技术构架下开发完成的snort系统必 然存在如下性能问题: 1、多次数据拷贝造成性能降低: 2、在Libl】cap和应用程序之间拷贝数据帧,系统必须不断地在核心态和用 户态之间不断切换,这将消耗丈量的系统资源; 3、分析程序中包含的多种复杂算法需要实时运行。但在libpcap构架中. 分析程序作为普通进程,运行于操作系统用户态,受到其他进程的影响, 性能极不稳定,导致大量丢包。 针对数据包在内存中多次拷贝产生的教率问题,可采用零拷贝技术提高数据 采集性能。零拷贝技术通过精简怫议,完全旁路操作系统,这样就可以避免数据 在内存中多次拷贝产生的效率问题。目前实现零拷贝用到的最主要技术是DMA 数据传输技术和内存区域映射技术。针对频繁的系统调用产生的效率问题,可以 采用NAPI技术㈣提高数据包捕获的效率。 41 1内存映射技术 内存映射技术的丰要思想是通过使内核空间和用户空问共享一段内存区域, 避免系统调用,从而提高捕获数据包的效率。 第四章Snort性能分忻 Linux是一个具有保护模式的操作系统。内存被分为两个部分:内核空间和用 户空间。内核空间存放并运行着核一tl,代码,JHj户空问存放并运行用户程序。用户 进程不能访问内核区域的地址空间也不能访问其他用户进程的地址空间,同样,内 核进程也不能访问用户进程的地址空l’日J。用户进程如果需要访问内核空间中的数 据,需要通过系统调用。因此,Snort从内核卒间读取数据包必须通过recv from系 统调用完成。系统调用是非常消耗系统资源的,而月.,每次系统调用都会带来一次 上下文切换,对Cache的命中率有很大的影响。随着网络流量的增大,网络中数据 包的增加,系统调用就会非常频繁,严重影响Snort的性能。因此,系统调用已经成 为Snort的性能瓶颈了。 为了避免频繁的上下文切换,可将分析程序放到系统核心态,以内核模式运 行,这样数据帧不再被传递到应用程序分析,系统就彳i需要频繁地在核心态和用 户念之间切换。对数据帧的实时分析功能全部在核心念完成,不再受操作系统进 程调度的约束,性能得到提高。 4.1.2 NAPI技术 NAP I是一种能够在L inux系统中提高网络性能的方法。它结合了中断方式 与轮询方式的优点,提出了一个中间道路——在轻负载情况下,处理方式趋近于 中断;在重负载的情况下,处理方式趋近于轮询 NAPI的基本思想是:一批数据包中的第一个数据包到达时,采用中断方式通 知系统,系统将该设备注册到一个设备轮询队列中,并关闭对该设备的中断响应。 l一时,激活一个软中断,对轮询队列中注册的网络设备进行轮询,从中读取数据 包。为了能够保证对各个网络设备的公平调度,NAPI技术引入了配额概念。所谓 配额,是指刚络设备每次向当前CPU发送的数据包的最大个数,这个数值是可以配 置的,记为P。如果网络设备发送了P个数据包,而设备的数据包接收缓冲区中仍然 有数据,就将该设备重新注册到轮询队列的末尾,等待下一次轮询到该设备时继 续向内核提交数据包:甭则,将该设备从轮询队列中注销,同时打开对该设备的中 断的响应。这样,在系统中有多个网络设备的情况下,可以保证各个设备的公平调 度。 26 基于Snort的入侵检测系统的研究与应用 4.2提高检测性能关键技术分析 检测引擎是Snort系统中最重要的模块,其设计的好坏直接影响到系统的性 能。从上而分析可知至少有以下二个方面来提高Snort的检测性能: (1)改进模式匹配算法.攻击柃测的大部分工作量是在模式匹配上。囚此提 高模式匹配的效率是提高系统攻击检测速度的关键,它直接影响系统的性能。目 前,对提高模式匹配速度的研究已经很多,也提出了许多高效的匹配算法。 (2)规则优化。即将Snort规则集进行一定的优化,使得可以在数据包进行 检测的时候,迅速定位到一个较小的规则集合中进行检测。 (3)减少需要检测的网络流量。 4.3规则优化技术 4.3.1规则优化思想 针对Snort的每一个数据包都要对所有规则进行匹配的缺陷,提出了一种规 则优化的方案。该方法的主要思想是:将Snort的规则划分为多个子集,使得每 一个数据包匹配时仅一个规则集与之匹配,从而只需要在这个规则集内对这个包 进行匹配。 规则优化创建的规则集必须满足以下两个原则: (1)尽量创建最小的,最有效率的规则集; (2)创建独立的规则集,使得每一个被检测的数据包,只需要对一个规则 集进行匹配。 规则优化在系统初始化时通过使.Hj惟一的规则参数来创建规则集,例如源端 口、目的端口和规则内容选项等。对于每个传输协议米说所选的参数是不同的, 因为每个协议都有不I司的标志。规则优化采用那些能惟一确定某一规则的参数来 形成不同的子规则集,从而使得多规则检测引擎只需检测较小的规则集。更重要 的是,这使得不同类型的数据包根据其自身特点被归到一个子规则集中。 4.3.2规则集的划分 Snort主要检测IP,1CMP,TCP/UDP等TCP/1P协议。对于TCP协议来说,根 27 第四章Snort性能分忻 据源端口和目的端13的不同,可以使规则集具有唯一性;而对于ICMP协议来说, 根据规则I|I ICMP的类型就能使它具有唯‘性。规则优化主要根据这些参数彤成 规则子集。这样,就可以为规则检测引擎提供更小的规则集进行检测。更重要的 是,它能够根据数据包的特征为每个数据包选择唯一的一个规则子集。下面按 Snort检测使用的协议分类详细讨论分类方法: 1、TCP/UDP TCP/UDP协议中最独立的属性是源端口和目标端13。因特嗍上的计算机通 信是采用客户.服务器方式。客户在发起通信请求时,必须先知道对方服务器的 IP地址和端口号。凶此,TCP/UDP端口可分为以下两类:服务器端使用的端口 号和客户端使用的端口号。服务器端使用的端口号又可分为两类:熟知端口号 (0~1023)和登记端口号(1024~49151)。这意味着主机之间大部分通讯有一个 熟知端u(通常是服务器端)和另一是非熟知端【J(大于1024且通常是客户端)。 该属性允许规则优化器使用熟知端13作为独立参数。Snort所检测的数据包是从 客广到服务器和从服务器到客广的。因此不必应用所有规则到客广通讯和服务器 通讯的每一个数据包。规则优化器根据独立端口位于源端口或还是位于目标端口 来对规则分组。如果独立端口位于源端口,通常数据流来自服务器,选择服务器 响应规则。而当独立端口位于目标端口时,通常数据流米自客户端,选择客户请 求规则。如果源端口和目标端口都是非熟知端口时,这样情况的比较少,使用通 用规则对其进行处理。女lJ图4.2所示。 上上上上 I 客户请求规则服务器响应规则已定义独立冲突规则通用规则 上上上上 图4-2 TCP/UDP规则的细化 2、ICMP ICMP规则只朋ICMP类型域来优化ICMP规则集。没有类型域的规则被认 为是通用ICMP规则并且被加到规则集后面。这样,当ICMP类型的某类数据包 28 基于Snon的入侵枪测系统的研究与麻州 到来时,使用相应类型的规则进行处理,没有类型域则使用通用规则加以处理。 例如,类型代码8(回显请求)的ICMP数据包把类型代码8作为参数选择类型 8的规则集加以检测,而不需要检测其它规则。如图4.3所示。 图4-3 IC肝规则的细化 3、lP 规则优化器使用IP传输协议域作为独立参数米对IP协议进行优化。包括 TCP/UDP或ICMP在内的所有lP规则被分解成特殊的协议规则集。而除 TCP/UDP或ICMP之外的其它协议根据传输协议域被分解成的IP规则集。而不 包括IP协议域的规则被认为足通用IP规则并被添加到TCP~DP、IP利ICMP 规则集后面。如图4—4所示。 图4—4 IP规则细化 当获得一个数据包后,首先判断是台具有IP协议域,如果没有,使用通用 IP规则加以处理;如果有lP协议域,则进一步判断是TCP/UDP,ICMP和其它, 如果是TCP/UDP则根据独立参数据使用相应规则集予以处理,如图4.2所示: 如果足ICMP类型则根据其独立参数,使用相应规则集予以处理,如图4.3;否 则使IP规则加以处理;最后根据检测结果,判断是否是恶意的数据包或发生了 29 第四章Snort性能分忻 入侵。规则集优化总体结构如图4.5。 图4-5优化规则集的总体结构 4.4利用高速缓存策略提高检测效率 4.4.1基本思想 基本思想是将最近匹配的规则结点存储起来,捕获的数据包经过预处理后先 与缓存中的规则进行匹配,如果不匹配再继续与规则库中的规则进行二次匹配。 一次攻击可以展开成百上千个包,这些包可能匹配的规则相同,采用缓存可以提 高检测效率。将缓存中存放的规则集称为最近匹配规则集。该规则集CBX结构体 定义如下: typedef struct_CBX( unsigned int num; OTNX*omx; Struct CBX木next: )CAC; 30 基于Snort的入侵检测系统的研究与应心 typedef struct—otnx一{ OptTreeNode卑otn; RuleTreeNode木rtn; unsigned int content—length; )OTNX; 结构体中包含两个指针变量和一个整型变量,其中otnx指向在规则集划分中 新引入的OTNX结构体,next指针指向下一个CBX结构体,unsigned int类型的变 量num用来表示当前结点的命巾次数,每当结点匹配成功时,将num的取值加l, 取值较小的CBX结点是命中率较低的规则结点,应当作为动态更新时的替换对象。 缓存的数据结构如图4-6所示范。 4.4.2关键技术 图4-6缓存数据结构 在Snort中引入Cache策略需要解决以下两个个关键问题: 1、缓存大小设置 与任何类型的缓存·一样,缓存的合适尺寸取决于最频繁访问的数据集合(规 则集)的大小,这个数值就是缓存配置的一个临界值。当缓存的大小超过这个临 界值后,缓存命中率随缓存加大而上升的比率将变得非常缓慢,匹配速度的改进 也变得不明显。当前的网络环境蠕虫广泛传播并且每天都有不同的变种出现,这 些蠕虫变种存存着极高的相似性。因此,在进行规则匹配时,先与缓存中的己匹 配规则进行匹配,就可以提高匹配速度。对于访问频度非常低的规则缓存是没有 太大意义的。因此合适的缓存大小取决于规则成功感匹配的分布程度,对于完全 蘑 第凹章Snort性能分忻 随机分布的规则,除非将整个规则集缓存到内存中,否则扩大缓存配置是不会有 太大效果的。冈此,缓存的大小设定由网络管理员根据以往历史记录确定。 最初的缓存规则集为空,Snort启动之后,若是匹配成功报警,就将匹配的 规则结点放入缓存,直到缓存空间减少至零。之后缓存结点匹配成功时,将Bum 的取值加l。 2、动态更新缓存 当缓存到达最大容量时,按照”最少使用”原则将使用频率最小的规则从缓 存中删除,即修改命中率较低的CBX结点中otnx指针,使其指向最近用到的规则结 点。 4.5设定阀值忽略统计到的频繁连接的包 为使高流量的网络一{·基于Snort的入侵检测系统尽量做到不漏报和误报,对 已被Snort捕获并经过协议解析的数据包,进行过滤处理,忽略一些无需检测的 数据包,提高系统的检测效率。 系统中正常连接模式占主导地位,统计表明,一个放置在防火墙后面的入侵 检测系统所处理的网络数据包中,入侵包与正常包的比一般低丁0.0001n们。并彳i 是所有的数据包都包含有规则库中所预定义的入侵特征,因此当把这些不含任何 入侵特征字符串的数据包与规则库中的规则进行匹配时会作大量的无用计算,降 低了入侵检测的效率。 将出现频率高的正常连接模式称为高频连接模式。设定一个阀值,以下为此 阀值的求解过程。 假设:在训练阶段系统没有遭受攻m,这时1 ibpcap将捕获到的数据包交付过 滤器模块,设共捕获数据包特征为m个,共有n种连接,统计第i种连接的个 数为n,则连接特征i的频率为:n,/m,其中i=l,2,⋯,n可知特征数据包头的出 现频率的期望为: Ef=善刀,×刀/ (4.1) 还可以知道,总的特征数据包头的出现频率方差为: 32 基于Snort的入侵检测系统的研究与应川 Df=Σ]ni-E(I (4.2) ,=l 因为,根据契比雪夫不等式设随机变量£有数学期望E号及方差D号zlflJJ对于任何止 数£,下列不等式成立: 尸q孝一£fI≥s)≤-D.Y (4.3) 这里令D孝/s 2 =0.0001,则£可求知,N--I£I,就是所求得的阀值。在相同 源和目的地址和端口情况下,凡是个数在N以上的连接特征只作简单忽略(PaSS) 处理,不对其所有连接特征分析。这样就大大节省了检测系统的开销,降低漏报 率,提高系统可靠性。 4.6综合检测模型 在前面讨论的基础上,将数据包捕获机制、规则优化、缓存策略相结合,得 到一个综合检测模型,如图4-6所示: 图4-6综合检测模型 第四章Snort性能分析 在入侵榆测系统启动的时候,需要先对规则集进行优化,生成用于榆测的 经过优化的链表结构。采|Hj改进的包捕获机制捕获数据包,协议分析后预处理插 件过滤频繁连接的包,待检测的数据流先.与缓存中的规则集匹配,如果不匹配再 与优化的规则库进行二次匹配。 4.7本章小结 本章通过对Snort的分析,提出了改进Snort的四种方法:第一、采用内存 映射技术和NAPI技术来改进Snort的包捕获性能。第二、采用规则优化技术创 建高效的规则集以提高规则匹配的速度。第三、利用高速缓存策略提高检测效率。 第四、在预处理模块设定阈值忽略统计到的频繁连接的包。并在最后给出了优化 snort性能的综合检测模型。 34 基于Snort的入侵检测系统的研究与麻川 第五章Snort系统的应用实例 5.1 Snort系统防火墙技术的配合使用 随着网络技术的快速发展,如今的网络安全不再仅仅是靠防火墙或者个别安 全设备就可以完全抵御的,攻击手法和方式的多样化要求网络安全产品整合\协 同工作。防火墙、杀毒软件、安全策略早已被大多数用户采用的,更出现了IPS、 IDP等高端的安全产品.就L}一小企业而言,入侵检测系统与防火墙协同工作就能基 本解决网络安全的需要。而以免费的Snort作为网络入侵检测系统与防火墙配合 使用,就是一个廉价而高效的解决方案。 5.1.1传统网络安全防护及缺陷 传统的信息安全技术都集中在系统自身的加固和防护上:比如,在网络出口 配置防火墙、在信息传输和存储中采用加密技术、使用集中的身份认证产品等。 然而,单纯的防护技术有许多方面的问题。首先,单纯的防护技术容易导致系统 的盲目建设,这种盲目包括两方面:一方面是4i了解安全威胁的严峻和当前的安 全现状;另一方面是安全投入过大而又没有真正抓住安全的关键环节,导致不必 要的浪费,也就是说没有建立成熟的检测机制以保证安全并在发现问题以后迅速 做出响应。其次,防火墙策略对于防范黑客有其明显的局限性。防火墙技术是内 部网最主要的安全技术之一,其主要作用就是控制对受保护网络的非法访问,它 通过限制、监视、更改通过网络的数据流,一方面尽可能屏蔽内部网的拓扑结构, 另一方面对内屏蔽外部危险站点,用以防范外对内、内对外的非法访问。但也有 其明显的局限性: l、防火墙难丁防内。防火墙的安全控制只能用于外对内或者内对外,即: 对外可屏蔽内部网的拓扑结构,封锁外部网的用户连接内部网的主要站点或者端 13,对内可屏敝外部危险站点,但它很难解决内部网控制内部人员的安全问题, 即防外不防内。而据权威部门统计信息表明,网络上的安全攻击事件80%来自内 部网络的攻击。 2、防火墙难丁.管理和配置,易造成安全漏洞。防火墙的管理和配置相当复 杂,要想成功的维护防火墙,要求防火墙管理员对网络攻击的手段及其与系统配 第五章Snort系统的应用实例 置的关系有相当深刻的了解。防火墙的安全策略无法进行集中管理。一般来说, 由多个系统(路由器,过滤器,代理服务器,网关,主机)组成的防火墙,管理上 有所疏忽是在所难免的。 3、防火墙的安全控制主要是基于IP地址的,难于为用户在防火墙内外提供 一致的安伞策略。许多防火墙对用户的安伞控制主要足基于用户所用机器的IP 地址而不是用户的身份,这样就很难为同一用户存防火墙内外提供一致的安全策 略,限制了企业网的物理范围。 4、防火墙只实现了粗粒度的访问控制,且不能与企业内部使用的其它安全 机制(如访问控制)集成使用。这样,企业就必须为内部的身份验证和访问控制管 理维护单独的数据库。 刚络入侵检测系统能够实时检测数据包,及采取相应的防护手段,如记录 证据用于跟踪、恢复、断开网络连接等,弥补防火墙的不足。因此,将免费的 Snort作为网络入侵检测系统与防火墙配合使用,是一个比较高效的解决方案。 5.2一个基于Snort的入侵检测系统实现方案 该方案是根据某公安局实际情况专门设置的,经过一段时间的应用,运行良好, 现介绍该方案的具体实现. 5.2.1现状分析 公安局网络划分成内网、外网、公安信息网三套网络,外网与互联网相联, 为用户提供访问互联刚的服务;内刚为用户提供U常的-L作和I勺部信息的发前j: 簟网为业务争用网络与卜下级的、№务网相连。三套删络物理隔离。现一t要针对公 安信息网进行讨论。 公安信息网由省、市、县二级组成,目前未采用域的方_=【\=管理。网络拓扑如 图5一l所示。 36 基于Snort的入侵检测系统的研究与应脚 市公安局网络拓朴图 田5—1公安局网络拓扑圉 该部门所涉及的信息带有机密性,因此其信息安争问题,如敏感信息的泄露、 冀客的侵扰、网|并资源的非浊使用吐及计算机病毒等.部将对该部门信息安全构 成威胁。为保证网络系统的安全,宵必要对公安信息网进行安全设计。 总结近期所发生的各娄病毒危害事件.曰l椅公安网的安全保障工作丰要存在 以下隐患和不足: 1、公安信息网上的训算机系统统1竽在漏洞现象普遍,由于现代锅毒的网络 化传播,已经清除过病毒的计算机刚I:网.马J:就又被jC他带毒的计算机感染, 致使讲葬机和H络上的痛再柏H感染,难以清系干净。由于病毒多是在网络上快 速{士播.这些病毒旦大范围发作,持会m塞剐络,导致网络m法正常运行。 2、没有病毒整体防护的技术支撑系统,以车对公安信息网上嫡毒的分布和 扩散隋况不能进行有效监删,不能及叫定忙稍毒的感染i15[和受感染的计算机,对 病毒的查杀缺乏针对性和统性.*致网络病毒住公安信息网上长{!日存在。 3、尚未建立起一套较完牲的舫病毒安全管邢和成急娃雕预案机制,难以应 对大面积爆发的紧急柚毒事件。 第Ⅱ$s帖n系《的&Ⅲ%Ⅷ 引对上述分析,为该部门量身定制一种宜=牟=高教的网络安争解决方案。 I、安全的删络边缘防护。存叫荚处部署硬件防毒墙,提供针对HTTP、FTP、 SMTP和POP3协议内容检商,清除病毒的能力,同时通过规则设定在网络环 境中的内外网之间建立一道功能强大的防火墙体系.以保护内部资源不受外部网 络的威胁。 2、配置入侵检测系统Snort,监控公安专用网的网络流量,若发现异常数据 包,产生报警和日志,并记录在入侵检测数据库·I·。本系统共配置3个探针。探 针均位于防火墙内部。探针1用于监视DNS服务器、邮件服务器、短信平台服 务器等内部服务器,探针2和3用于检测所有对内部用户的攻击,凶网络流量较 人.所以设置2个探制。 防火墙与入侵检测系统Snort具体部署如罔5-2所示。 图5—2公安信息网防火墙与入侵检测系统部署圈 5 2 3入侵检测系统的具体实现 绌合实际使用情况,本系统采用“传感器一数据库一分析平台”的¨二层分布式 基于Snort的入侵检测系统的研究与廊J}lJ 体系结构,总体上它主要由3个核心功能模块构成:网络入侵柃测系统、同志 数据库服务器和日志分析显示控制台,在Windows系统上实现。系统所川软件 包括:MySQL,APACHE,ACID,PHP,ADODB,OpenSSL,SnortCenter。 SnortCenter是一款基于WEB方式升级和维护Snort配置的管理应用软件, 使用的足PHP/MySOL WEB界面,包括基于PHP的管理应用软件和SnortCenter 代理,SnortCenter管理控制台安装在Snort服务器上,而SnortCenter传感器 代理被安装在所管理的传感器中。ACID是一个基T PHP的分析引擎,用于查询 和管理Snort产生的数据库。MySQL数据库用于保存各探针的日志等记录,Apache 服务器则提供系统所需的WEB服务。 5.2.3.1网络入侵检测模块 Snort网络入侵检测模块主要包括使用Snort管理配置工具对Snon进行配 置,配置Snoff的数据库输}H插件和建立Snon入侵检测系统。传感器即网络数 据包捕获转储程序。WinPcap作为系统底层网络接口驱动,Snort作为数据报捕 获、筛选和转储程序,二者即‘叮构成IDS的传感器部件。 为了实现基于Web方式的配置Snort系统的功能,需要安装相应的基于Web 的Snort服务管理软件。本系统选用的是APACHE+PHP,这个组合的运行效率较 高而且安全配置简单。 5.2.3.2日志数据库服务器 日志数据库服务器主要是从入侵检测模块中收集报警日志数据并将它导入 到一个关系数据库中。本系统中入侵检测模块提供了很多种日志报警方式,可以 将日志信息存入到文本文件中,并不一定需要关系数据库。然而,利用关系数据 库存放口志,是对数量庞大的报警数据进行有效组织管理的最实用的方法,可利 用该数据库进行复杂的查询,并能更好的对报警信息进行管理操作。本系统采用 的是MySQL数据库。从MySQL的官方网站上下载MySQL数据库的源文件, 然后编译源文件后进行安装,或者可直接下载RPM包文件,直接进行安装。因 为入侵检测模块中需要用到MySQL的共享头文件,所以还需要安装MySQL的 共享库。如果需要在主机上操作MySQL数据库,还需要安装MySQL的客户端 工具。安装完毕后,可启动MySQL服务,进入其命令行状态,创建存放入侵检 测系统日志的数据库,并建立入侵检测系统所需要的数据表,删来存放数据包日 志信息。从系统的安全性方面考虑,需要为入侵检测系统专f-jg,j建一个新的用户, 39 第五章Snort系统的应用实例 用以连接同志数据库,查询、更新同志数据。 5.2.3.3日志分析控制台 日志分析控制台模块丰要包括日志数据库接口,日志分析控制台和图表化 显示。数据库接口用来从日志数据||车中提取日志数据,日志分析控制台对日志数 据进行相应的分析处理,并同图表化显示工具配合,最终以图形化界面的形式显 示给用户。为了实现该模块的功能,需要丌发基于B/S结构的入侵检测日志分 析模块,通过Web浏览器来实现日志数据的分析、查询和管理。该系统使用PHP 语言,以开源的日志分析系统ACID(analysis console for intrusion databases)为基 础,实现了基于Web的日志分析控制台功能。日志分析控制台可安装在运行入 侵检测系统的主机上,但出于访问控制和避免其干扰入侵检测系统的考虑,将它 安装在另外的一台专用主机上。因为该分析控制台是基于W曲的方式进行浏览 操作的,需要Web服务器工具Apache的支持。使用Adodb做为分析控制台的 数据库接口。日志分析控制台的核心功能是分析入侵检测系统的口志信息,能按 照不同的方式对其进行分类统计,并将结果显示给用户。本模块以ACID为基 础,对其做了少量的修改,使其满足本系统的要求。 以上是针对本系统的3个核心功能模块分别分析了其功能和实现,当完成 上述系统的实现.与配置后,就可将该系统部署在网络服务器上,用米对网络上的 数据包信息进行实时监控。 5.2.4系统运行结果及评价 入侵检测系统启动后,将实时监控网络上的数据包,并通过数据库输出接口 将日志数据导入到关系数据库中,而日志分析控制台则会通过对应的数据库接口 读取日志,并显示在Web控制台上。图3-3为日志分析控制台所产生的入侵事 件分析统计信息。其中显示的信息有:报警事件的数量,入侵主机和目标主机的 IP地址,对应的端口号,以及异常网络流量中各协议所占的比例等。该控制台 还提供了强大的检索功能,网络管理员可定义检索的事件、协议类型、IP地址、 端口号码等各种条件,系统会根据这些条件快速搜索出相应的记录。 40 基于Snob的^侵检测系统的研究~应用 :∞∞=:。:∞:k。。 涨:2二。节”。釜‘;l一 ‘搿⋯,, ’1溉1戳营薅:!善舞j :嚣.i篇=:==譬”·~⋯ 图5-3日志分析控制台 通过日志分析控制台,还可查看具体的报警日志数据,如:每条报警记录的 ID号码、报警信息,报警时间,目标/源IP地址,目标/源端口号,协议类型等 信息。图5-4为具体的报警日志信息。在该控制台上还可以对特定的日志信息 进行处理,如:删除该条口志,管理员可以创建不同的口志组,能将日志信息加 入到该组中.井能将日志记录发送到设定的邮箱中,由其它人员进行分析处理等 功能。 熹罴=黑!=!.—一 ;-鼍材j::j:“ 5.3本章小节 图514报警日志信息 本章首先介缁了Snort系统与防火墙技术配台使用的必要性,并提出了一个 Snort系统的具体麻川方案。针对目前公安网存在的安仝隐患,将免费的Snort 作为网络入侵检测系统与防火墙配合.达到了舫御和检测的良好效果。 第入章总结与展望 6.1总结 第六章总结与展望 随着网络的普及和发展,网络安全问题也日益突出。入侵检测技术作为一种 重要的安全技术,已经成为网络安全体系中不可缺少的一部分。入侵检测系统已 成为目前安全工具的主要研究和开发方向。 本文主要在分析入侵监测系统结构和开放源代码入侵检测系统snort规则和 结构特点的基础上,以提高snort的性能作为出发点,提出改进方案。主要研究 工作如下: l、在介绍入侵检测系统的基础上,对Snort系统结构、主要模块功能、工 作流程和规则结构进行细致剖析。 。2、通过对Snort的深入分析,提m了改进Snort的四种方法:第一、采用内 存映射技术iNNAPI技术来改进Snort的包捕获性能。第■、采用规则优化技术创 建高效的规则集以提高规则匹配的速度。第三、利用高速缓存策略提l亩检测效率。 第四、在预处理模块设定阈值忽略统计到的频繁连接的包。 3、结合实际提出了一个snort系统的典犁应用方案。 6.2展望 大量高速网络技术如千兆以太网、G比特光纤网等在近年得到J“泛应用,在 此背景下,各种宽带接入手段层出不穷。如何实现高速网络环境下的入侵检测成 为一个现实的问题,入侵检测系统面临吏大的挑战。为解决这些问题,未来可以 从如。卜-两方面来展开工作: (1)进一步研究高效的预处理算法。目前很多高效的模式匹配算法都大大提 高了规则匹配的速度。但是它们的共同点在于对于每个从网络上获取的数据包都 要进行规则匹配。然而并不是所有的数据包都包含有规则库r}I所预定义的入侵特 征,冈此当把这些不含任何入侵特征字符串的数据包与规则库一}·的规则进行匹配 时会作大量的无用计算,降低了入侵检测的效率。如果在进行精确匹配之前能将 状取的数据包集合中不含任何入侵特征字符串的数据包进行一定的过滤,使得过 滤后的每个数据包至少包含一个特征字符串。这样得到的候选数据包集合包含入 42 基于Snort的入侵检测系统的研究与应州 侵特征的机半将大大增JJ口,使后续进行精确匹配的数据包集合减小,从而口J’以降 低模式匹配的运算消耗。如何进行过滤,是下。步研究工作的重点。 (2)研究模式匹配技术.与先进检测算法的结合。虽然模式匹配算法能够较为 准确的发现已知攻击类型,但是对于未知的攻击类型却无能为力。近些年来一些 先进的检测技术如计算机免疫技术,神经网络技术利遗传算法等在网络安全领域 得到了蓬勃的发展。因此有必要研究误用检测技术与先进检测技术的融合,这样 既能检测到已知攻击,又能发现未知攻击,使得系统的漏报率和误报率维持在一 个比较合理的水平,进~步满足网络安全的需求。 43 参考文献 [1] [2] [3] [4] [5] [6] [7] 参考文献 中lf4互联叫络信息中心.中州互联网络发展状况统计报打[R].2009年1月http://www.cnniC.net.cn Wi 11 iam R C.Steven M B.Firewall and Internet Security Repell ing the Wi Iv Hacker[M].U.S.A:Addison—Wesley Publish,2004,12:106 卿斯汉,蒋建春.入侵榆测技术研究综述[N].通信学报,2004,25(7):19-30 Vigna G,Robertson 1|I『,Kher V,etal.A Stateful IntrusionDetection System for World-Wide Web Servers[R].In Proceedings of the 19th Annual Computer Security hppl icat ions Conference(ACSAC 2003),LasVegas,2003:34—43 唐正军,李建华.入侵检测技术[M].北京:清华大学出版社,2004:134-147 薛英花,只述掣等.入侵榆测系统研究[J].计算机工程与应用.2003,Ol Yang W,Fang B.Liu B.Intrusion Detect ion System for High—speed Network.Computer Communicat ions.2004.27(13):1288—1294 宋普选,心锦鑫.入侵检测技术研究综述[J]军【屯两朋技术与产品2005(7):38—40 李效锋.符合ClDF标准的入侵检测系统[D].浙江大学硕士学能论文.浙江大学 ]D.E.Denning .An intrusion—detection model[J].IEEE Transaction on software engineering,V01.SE一13.No.2,Feb.1987:222—232 [11]Y.Liao.Machine learning in intrusion detection [D].The degree of Dector of Philosophy,[Iniversity of California,2005 [12]K.Ilgun,R.A.Kemmerer and P.A.Porras.State transition analysiS:A rule-based intrusion detectionapproach[J].IEEE Transaction on Software Engineering。V01.21,No.3,March.1995:181—199 [13]G.Vigna,W.Robertson,、『f Kher and R.A。Kemerer.A stateful intrusion detect ion system for World-Wide Web Servers[C].In Proc.19” Annual.Computer Secutity Applications Conference,Dec.2003:34—43 [14] [152 16 17 18 19 20 [21] [22: W.1ee.A data mining framework for constructiong features and modelS for intrusion detection system[D:.The degree of Doctor of Phi losophy,Columbia University,1999 X,Zhu.Anomaly detection through Statistics-based machine learning for computer networks[D].The degree of Doctor of Philosophy,The University of Arizona,2006 杨警.分布式协作入侵检测系统的报警信息管理[D].中国科学院研究生院硕上学位论文,中国科学院 薛英花,吕述凝等.入侵检测系统研究[J].计算机丁程与I·V川.2003,Ol 潘振业.基丁.模式匹配硐l协议分析的入侵检测系统设汁[D].IHi安电子科技人学,2005年 梁弧声,汪永益,刘京菊等.计算机网络安全技术教程[M].机械T业}I{版社,2004年8月 S.T.Eckmann.The STATL Attack Detection Langage[D].The degree of Doctor of Philosophy,Uni、rersity of California Santa Barbara.June。2002 吴新民.两种典型的入侵检测办法研究[J].计算机T程与心Ⅷ,2001,10:181—184 Y.Wang.A hybrid intrusion detect ion[Dj.The degree of Dectot of Pbj losophy.Lowa State University。2004 44 基于Snort的入侵检测系统的研究与应用 [23]宋献涛.卢.康俊,李祥和.入侵检测系统的分类学研究[J].计算机上程与心Hj,2002,8:132-135 [24]S.Kumar,E·H.SPafford,加APP 1ication of Pattem Mattaching in Intrusion Detection[z]。 Teehnical RePort。CSD--TR-94—012.1994 [25]任相仡.草于生物免j立的入侵榆测系统的研究1j实现[D].哈尔滨理l:大学颂十论文.哈 尔滨理+1j大学 [26]S.David,Bauer.E.MiChael,KoblentZ.Nidx-an expert System for real一t ime network intrusion deteetion[S].In IEEE Computer Networking Symposium,1998:98106 [27]F.Lunt。R.Jagannathan, MenloPark.A Prototype Real—ti啦Intrusion—Detection Expert System[S].proeeeding of thel988 symPosium on seeurity And Privacy,1988:59—65 [28]U,Lindqvist,Phillip,A.PorraS.DeteetingComputerand networkMisuse Through the [29] [30] [31] [32] [32] [33] [34] Produetion—Based Expert System Tool set[S].IEEE SymposiaOn Seeurity and Privaly,1999:146 ·——166 吴忠胜,基于代理的分布式入侵检测系统的设计与实现[D].山东大学硕士论文.山东入学 张雪芹,顾春华,林家骏.入侵检测技术的挑战与发展.计算机丁程与设it。,2004年7月第25卷第7 期:P1096—1099 入侵检测存在的三个『口j题和未来发展方向 b!!卫;』!!!!:£!!卫型£:!!呈!!£!垒曼兰£壁££Q!皇[::!Q三!!!皇兰兰!璺2望窒望!!鱼璺苎!:b!婴 崔蔚,任继念,徐水红.入侵检测系统的研究现状及发展趋势[N].西安邮电学院学报.2006,1:66-68 哭溥峰,孙默等.Snort入侵检测实用解决方案[z].北京:机械工业出版社.2005. Tansel 0 zyel’,Reda Alhajj,Ken Barker.Intrusion detect ion by int egrat ingBoost ing genet ie fuzz)。classifier and data sining criteria for rule Pre‘——screening Journal of Network and Computel\"Applications 30(2007):99-113 [35]RoesehM.Snort-Light weight Intrusion Deteet ion for Network[C].In ProeeedingsOf the 13“ 36 37 38 Systems AdministratiOff Conferenee 1999. 府正军.网络入侵检测系统的设计与实现[Z].北京:电子工业出版社2002.4 汕i世义.基十Snort的入侵检测系统研究[D].人连:人连舜工大学.2005. Degioanni L,Baldi M。Risso F,et a1.Profiling and optimization of software—based network—analysi sapplication [EB/OL].http://嗍.winpcap.orgldocs/WinPcap-SBAC03.pdf。 2003一I l—19 [39]SalimJ H,Olsson R,KuznetSOY A.Beyond Softnet[J].Proeeedings of the Fifth Annual Linux Showcase&Conferenee,oakland,CA,November.2001. [40]Smaha,S.E.Haystack.An intrusion detect ion system.Proe.of the IEEE 4th Aerospace Computer Seeuri ty Appl icat ions Conferenee.Orlando,FL.Dec.1988,37—44 45 致谢 致谢 在我的硕士论文完成之际,谨向在我攻读硕士学位过程中指导过我的老师, 帮助过我的同学,’和所有帮助过我的人致以深深的谢意! 特别感谢导师吴顺祥老师。在研究生学习期间,吴老师在学习上和科研上都 给了我极大的指导和帮助,他严谨的治学精神对我影响甚深。 感谢厦门大学自动化系的所有老师,是他们传授了我许多专业的理论课程, 使我在工作和学习上积累了丰富的知识和经验。 感谢在百忙之中抽出时间审稿和参加论文答辩的老师们,感谢对本文的意见 与建议,这样我能更快意识到自己的不足,加以改正。 最后感谢我的家人,他们对我的宽容和无私的支持是我不断进取的动力。 硕士学位毕业论文完成了,但学习的道路还很漫长,我愿在未来的学习和工 作研究过程·I|’以更加丰厚的成果来答谢曾经关心、帮助和支持过我的所有领导、 老师、同-5'-\"。 46 基于Snort的入侵检测系统的研究与虑_}lj 附录攻读硕士期间发表的论文目录 [1]魏葆雅,吴顺祥.基于SNORT的入侵榆测系统研究与改进.科技信息,2009年 第十二期 47 基于SNORT的入侵检测系统的研究与应用 作者:魏葆雅 学位授予单位:厦门大学 本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y1520444.aspx__ 因篇幅问题不能全部显示,请点此查看更多更全内容