收藏 分销(赏)

IDS规则匹配算法的改进实现论文.doc

上传人:仙人****88 文档编号:11245458 上传时间:2025-07-10 格式:DOC 页数:57 大小:461KB 下载积分:10 金币
下载 相关 举报
IDS规则匹配算法的改进实现论文.doc_第1页
第1页 / 共57页
IDS规则匹配算法的改进实现论文.doc_第2页
第2页 / 共57页


点击查看更多>>
资源描述
毕业论文 第47页 毕业设计(论文) 设计(论文)题目: IDS规则匹配算法的改进与实现 学生姓名 学生学号 专业班级 指导老师 学院院长 年 5 月 7 日 IDS规则匹配算法的改进与实现 摘 要 随着网络技术的飞速发展,计算机网络在社会、经济、文化及人们的日常生活中扮演着越来越重要的角色。人们在使用计算机网络的同时,也深深的感受到网络安全的重要性。入侵检测正是网络安全的一个重要的守卫士。对入侵检测根据其所采用的方法可以分为:误用检测,异常检测和基于规范的检测。 Snort是一个开放源码的网络入侵检测系统(NIDS),它采用误用检测的方法,具有很强的告警能力,然而Snort在规则匹配方面仍存在缺陷,特别是在高速网络连接下,Snort的规则匹配算法匹配效率较低。因此本文对误用检测中的规则匹配算法进行了研究与改进,结合动态规则匹配技术,改进规则匹配算法,使得Snort的检测效率得到提高。 本文对改进前后的算法做了对比实验。首先,采用Snort入侵检测模型和改进前的算法,构建一个入侵检测系统,进行实验并得到相应的实验结果;然后,使用改进后的算法,将Snort的规则库内容进行动态排序后,进行实验,并将实验结果与改进前进行比较。对比分析结果表明,改进后的算法提高了检测效率。 关键字:规则匹配;规则库;动态匹配 The Implementation And Improvement Of IDS Rule-matching Algorithm ABSTRACT With the rapid development of Internet, computer network has become much more important in many areas, namely, society, economics, culture, and the people's ordinary lives. People is also deeply feel the importance of network security when they use computer networks, Intrusion Detection Network security is an important guard . According to the detection methods of IDS, we can divide IDS into three types: misuse detection ,anomaly detection and standardized detection. Snort is an open source network intrusion detection system (NIDS),which use the misuse detection methods and has a strong warning capability, However Snort have some disadvantage in many respects, Especially in the case of the high-speed network link, the rules matching algorithm of Snort is less efficient. Therefore ,we use dynamic rule-matching technology and make some research in order to make some improvements in the detection efficiency. In this paper, we make two experiments, one experiment we use the Original algorithm, the other we use the improved algorithm. This paper use Snort Intrusion Detection model, built an intrusion detection system in order to do intrusion detection experiments. Then the rules will be adjusted dynamically by algorithm, continue to do experiments, the results will be compared with before, thus proving that the system improved the detection efficiency. Then, conclude the results of this experiment. Keywords: IDS; rules matching; rules lab; dynamic matching 目 录 1 绪论 1 1.1 入侵检测系统的起源 1 1.2 入侵检测系统的现状 1 1.2.1 国外IDS现状 2 1.3 入侵检测系统的分类 3 1.3.1 国内IDS产品 5 1.3.2 国外IDS产品介绍 6 1.4 IDS的体系结构 6 1.5 入侵检测系统的发展方向 7 1.6 本文所做的工作 8 2 Snort的研究 9 2.1 Snort的规则 9 2.2 Snort匹配算法解析 13 2.3 Snort 命令介绍 14 2.4 Snort的工作模式 16 3 规则匹配算法 19 3.1 BMH算法 19 3.2 KMP匹配算法 20 3.3 BM算法 22 4 Snort规则匹配算法的改进 24 4.1 引言 24 4.2 算法改进目的 24 4.3 算法改进思想 24 4.4 改进后的Snort规则机制 25 4.5 改进后的Snort模块图 26 5 Snort实验 28 5.1 实验一: Snort的调试实验 28 5.1.1 实验设备 28 5.1.2 实验目的 28 5.1.3 平台搭建 28 5.1.4 实验方案 40 5.1.5 Snort运行页面 40 5.1.6 实验结果 42 5.2 实验二: Snort的改进实验 42 5.2.1 实验设备 42 5.2.2 实验目的 43 5.2.3 实验方案 43 5.2.4 实验结果 43 5.3 结论 43 6 总结和展望 45 致谢 46 参考文献 47 附录 49 表格目录 表格 21 Snort规则的结构表 11 表格 22 Snort规则头部的结构表 11 表格 31 BM算法的匹配过程表 23 表格 51改进前数据包分析时间表 42 表格 52 改进后数据包分析时间表 43 图目录 图 11 入侵检测系统的部署方式图 7 图 21 Snort的规则树 14 图 41 改进后的规则树图 26 图 42 Snort的改进模块图 27 图 51 Apache Monitor键面 36 图 52 Apache测试成功图 36 图 53 PHP 安装成功图 37 图 54 Snort 数据表建立成功图 39 图 55 告警信息显示图 40 图 56 频率较高的告警显示图 41 图 57 端口告警显示 41 图 58 目的 IP告警图 42 图 59 改进后实验结果图 44 1 绪论 1.1 入侵检测系统的起源 最早的入侵检测概念是1980年由James.Anderson提出的,认为对日志审计追踪可应用于监视系统的入侵行为。1987年,Dorothy E Denning[1]提出了第一个入侵检测模型,称之为入侵检测专家系统(Intrusion Detection Expert System,简称IDES),该模型将异常定义为“稀少和不寻常”(指一些统计特征量不在正常范围内),通过监控若干根据主机系统审计数据建立的正常行为模式集的异常变化发现系统的入侵行为。1988年Teresa Lunt等人在IDES基础上,提出了与系统平台无关的实时检测思想。1990年,Heberlein等人提出第一个基于网络的入侵检测系统,称之为网络安全监控器(Network Security Monitor,简称NSM),该系统根据对网络数据包流的监视分析,发现入侵行为。1990年初IDS商业化迅速发展,代表产品:CMDS、NetProwler、NetRanger 、ISS RealSecure等。入侵检测从最初的实验室研究课题到目前的商业产品,已经有20多年的发展历史。 1.2 入侵检测系统的现状 互联网的开放性为信息共享和交互提供了极大的便利,但随之而来的网络安全问题也日益明显。入侵检测作为一种主动的信心安全保障措施,有效的弥补了传统安全防护技术的缺陷[2]。 入侵检测技术是继“防火墙”、“数据加密”等传统安全保护措施后的新一代安全保护技术。1980年,James. Anderson首次详细阐述了入侵检测的概念和分类方法[6]。之后,一大批的科研机构和科研人员在此基础上进行了深入的研究与开发。入侵检测从最初的实验室里的研究课题到目前的商业IDS(Intrusion Detection System)产品,已经有20多年的发展历史。 根据检测方法的不同,入侵检测系统基本可以分为两大类:误用检测(Misuse Detetion)、异常检测(Anomaly Detetion)[4,5]。误用检测是利用已知的系统缺陷和已知的入侵方法进行入侵活动的检测,类似于病毒检测的原理,因此又称特征检测。异常检测需要建立目标系统正常活动的模型,然后基于这个正常模型对系统和用户的实际活动进行审计,以判断用户的行为是否对系统构成威胁。两种入侵检测方法都有它们各自的优点,但都存在不同的问题,例如,异常检测系统根据使用者的行为或资源使用状况来判断是否入侵,可以发现一些未知的入侵行为,不过只能模糊地报告存在异常行为,而不能准确地报告攻击类型和方式;误用检测系统依赖具体的特征库进行判断,只能检测已知的入侵行为,但准确度非常高;要指出的是,人工智能领域本身发展缓慢,基于异常检测系统的商用化程度并不高。基于误用的模式匹配方法是现在入侵检测产品采用的主流技术[6] 。 1.2.1 国外IDS现状 国外己经有很多研究机构从事入侵检测系统的研究,其中包括Stanford Research Institute的Computer Science Laboratory(SRI/CSL), Purdue University的COAST(Computer Operations Audit and Security Technology)研究小组,Columbia University的Wenke Lee 研究组。University of New Mexico的Stephanie Forrest研究组等[7,8]系结构上,Purdue大学COAST小组首先将自治Agent的概念用到了入侵检测中。在检测机理上,除专家系统、模式匹配等传统人工智能方法的研究外,还有计算机免疫系统的研究,在入侵检测中主要集中在数据文件的完整性保护以及病毒的有效控制方面。 相应的许多国外的厂商也推出了一系列入侵检测系统的相关产品。如Internet Security System公司的RealSecure,Cisco公司的NetRanger, Network Associates公司的CyberCop, Intrusion Detection公司的Kane Security Monitor for NT, Axent Technologies公司的OmniGuard/Intruder Alert等。这些产品各有侧重,RealSecure。以简单高效著称,NetRanger针对企业设计,适用范围主要是广域网。CyberCOP集成了NetRanger的引擎和攻击模式数据库,是NetRanger的局域网管理员版本。Kane Security Monitor for NT则在TCP/IP检测方面做得较好。国内目前也推出了一些入侵检测产品,如“天镜”、“天融信”等。但大部分仍然局限于己知漏洞的检测,对于未知的脆弱性研究较少。国外从事这方面研究的主要有Columbia University的Salvatore Stolfo和Wenke Leet研究小组。 国内IDS现状 国内方面近年来也有很多的高校和研究机构从事入侵检测中的应用研究。在体系结构方面,国防科技大学计算机学院的胡华平等人提出了面向大规模网络的入侵检测与预警系统的体系结构与组成。宋世杰等人研究了基于数据挖掘的网络型误用入侵检测系统,从网络层和应用层两个层次进行了分析和实现。(华中科技大学系统工程研究所的梁京章,赵启斌,陈学广深入的探讨入侵检测技术中的规则匹配算法。北京邮电大学交换技术与通信网国家重点实验室的邹仕洪等人研究了基于CIDF的自适应入侵检测系统。在相关算法方面,哈尔滨工业大学计算机科学与技术学院的杨武等人研究了如何利用各种高效模式匹配算法来优化Snort的性能,武汉大学计算机学院软件工程国家重点实验室的罗敏等进行了基于无监督聚类的入侵检测算法的研究。 1.3 入侵检测系统的分类 目前市场上的IDS产品从技术上看,基本可分为两大类:基于网络的产品和基于主机的产品。混合的入侵检测系统可以弥补一些基于网络与基于主机的片面性缺陷。此外,文件的完整性检查工具也可看做是一类入侵检测产品。   (1) 基于网络的入侵检测产品放置在比较重要的网段内,对每一个数据包或可疑的数据包进行特征分析。商品化的产品包括:国外的ISS RealSecure Network Sensor、Cisco Secure IDS、CA e-Trust IDS、Axent的NetProwler,以及国内的金诺网安KIDS、北方计算中心NISDetector、启明星辰天阗黑客入侵检测与预警系统和中科网威“天眼”网络入侵侦测系统等。   (2) 基于主机的入侵检测产品主要对主机的网络实时连接以及系统审计日志进行智能分析和判断。基于主机的入侵检测系统有:ISS RealSecure OS Sensor、Emerald expert-BSM、金诺网安KIDS等。   (3) 混合式入侵检测系统综合了基于网络和主机的两种结构特点,既可发现网络中的攻击信息,也可从系统日志中发现异常情况。商品化产品有:ISS Server Sensor、NAI CyberCop Monitor、金诺网安KIDS等。   文件完整性检查工具通过检查文件的数字摘要与其他一些属性,判断文件是否被修改,从而检测出可能的入侵。这个领域的产品有半开放源代码的Tripwire。 绝大多数的入侵检测产品都以纯软件的形式出售,但为了达到性能最佳,往往需要对安装的系统进行优化调整。这样,把产品做成“黑盒子”的形式可以达到目的,如Cisco公司的Secure IDS和金诺网安KIDS。随着入侵检测产品日益在规模庞大的企业中应用,分布式技术也开始融入到入侵检测产品中来。同时,集中管理多个传感器的中央控制台也在不断地完善。目前,绝大多数的入侵检测产品,尤其是企业级产品都具有分布式结构。 入侵检测产品中,有几个重要的性能指标值得重视,比如网络入侵检测系统负载能力,网络入侵检测系统是非常消耗资源的,但很少有厂商公布自己的pps (packet per second)参数。网络入侵检测系统可支持的网络类型也是应该考虑的。目前,国内的入侵检测厂商还只是支持以太网和快速以太网。  网络入侵检测系统运行在什么操作系统平台上,网络入侵检测系统的运行平台一般以Unix为主,也有少数使用专有设备或基于windows平台的入侵检测系统。在网络安全领域,随着黑客应用技术的不断“傻瓜化”,入侵检测系统IDS的地位正在逐渐增加。一个网络中,只有有效实施了IDS,才能敏锐地察觉攻击者的侵犯行为,才能防患于未然! 重要的IDS系统根据监测对象不同,IDS系统分为很多种。 (1) NIDS是network intrusion detection system的缩写,即网络入侵检测系统,主要用于检测hacker或cracker通过网络进行的入侵行为。 NIDS的运行方式有两种,一种是在目标主机上运行以监测其本身的通讯信息,另一种是在一台单独的机器上运行以监测所有网络设备的通讯信息,比如hub、路由器。 (2) SIV是system integrity verifiers的缩写,即系统完整性检测,主要用于监视系统文件或者Windows 注册表等重要信息是否被修改,以堵上攻击者日后来访的后门。SIV更多的是以工具软件的形式出现,比如“Tripwire”,它可以检测到重要系统组件的变换情况,但并不产生实时的报警信息。 (3) LFM是log file monitors的缩写,即日志文件监测器,主要用于监测网络服务所产生的日志文件。LFM通过检测日志文件内容并与关键字进行匹配的方式判断入侵行为,例如对于HTTP服务器的日志文件,只要搜索“swatch”关键字,就可以判断出是否有“phf”攻击。 (4) Honeypots 蜜罐系统,也就是诱骗系统,它是一个包含漏洞的系统,通过模拟一个或多个易受攻击的主机,给黑客提供一个容易攻击的目标。由于蜜罐没有其它任务需要完成,因此所有连接的尝试都应被视为是可疑的。蜜罐的另一个用途是拖延攻击者对其真正目标的攻击,让攻击者在蜜罐上浪费时间。与此同时,最初的攻击目标受到了保护,真正有价值的内容将不受侵犯。蜜罐最初的目的之一是为起诉恶意黑客搜集证据,这看起来有“诱捕”的感觉。 1.3.1 国内IDS产品 (1) 曙光GodEye-HIDS主机入侵检测系统 日前,国内唯一一款经过公安部权威认证的增强型主机入侵检测安全软件产品一一曙光GodEye-HIDS主机入侵检测系统正式问世,这是曙光信息产业(北京)有限公司(以下简称曙光公司)面对需求日益高涨的网络安全市场推出的一款面向行业安全应用领域的增强型主机入侵检测产品。该产品采用国际上先进的分布式入侵检测构架,其在管理、检测、防攻击、自身保护及主动防护等方面的卓越表现将卓有成效的弥补现有同类产品的不足,是网络安全领域的一款旗舰产品。据悉,我国虽然在入侵检测技术应用方面有一定的进展,但目前国内真正拥有自身核心技术的品牌产品并不多,而且在管理、自身保护、主动防护、攻击取证等方面的产品技术水平也良莠不齐。 但现有的入侵检测系统仍然存在着漏报、误报以及在自身安全、管理等方面存在着先天的不足。曙光GodEye-HIDS主机入侵检测系统凭借先进的分布式入侵检测技术,有效的实现了“管理周密,简单易用”、“检测严密,主动防护”、“过硬的自我保护功能”、“有效防范近千种黑客攻击”、“攻击取证”等几大功能优势,具有极强的抗欺骗能力和降低漏报误报能力。去年,曙光在推出一、二代网络立体监控系统的基础上推出了第三代天目立体监控系统,使得系统管理员对网络和服务器的管理实现了智能化和人性化。 (2) 清华紫光UnisIDS入侵检测系统 UnisIDS是一个真正实时监测黑客入侵、报警、响应和防范的入侵检测系统。UnisIDS实现了基于主机检测功能和基于网络检测功能的无缝集成。UnisIDS通过对系统事件和网络上传输的数据进行实时监视和分析,一旦.发现可疑的入侵行为和异常数据包,立即报警并做出相应的响应,使用户的系统在受到破坏之前及时截取和终止非法的入侵或内部网络的误用,从而最大程度的降低系统安全风险,有效的保护系统的资源和数据。UnisIDS主要包括管理中心Admin,基于网络的入侵检测引擎Network Agent和基于主机的入侵检测引擎Host Agent三个模块,用户可根据需要选用相应的模块。 1.3.2 国外IDS产品介绍 (1) 入侵检测系统RSNS 5 .0 RSNS 5 .0 是Real Secure Network Sensor 5 .0的简写,它具备更详细的协议分析能力和更出色的碎片重组能力。如何配合ISS公司同时发布Real Secure Guard来实现与防火墙的联动,则可以利用协议分析技术来实时分析是否存在对网络的非法入侵,当检测到非法入侵时做到彻底切断这种网络攻击。ISS公司发布的技术报告称,利用其分组处理驱动程序,可以在不降低网络通讯速度的情况下,正确地实现对网络的高速监控。 (2) 实时入侵检测系统USTAT。 加州大学的KORAL IIgun在Phiillip Porras和Richard Kemmerer的前期工作基础上开发的。他们提出的状态转换分析方法。使用系统状态与状态转换的表达式描述和检测己知的入侵手段,使用反映系统状态转换的图表直观的记载渗透细节。 1.4 IDS的体系结构 入侵检测系统——IDS(Intrusion Detection Systems,简称IDS)。是依照一定的安全策略,对网络、系统的运行状况进行监视,尽可能发现各种攻击企图、攻击行为或者攻击结果,以保证网络系统资源的机密性、完整性和可用性。 我们做一个形象的比喻:假如防火墙是一幢大楼的门锁,那么IDS就是这幢大楼里的监视系统。一旦小偷爬窗进入大楼,或内部人员有越界行为,只有实时监视系统才能发现情况并发出警告。 不同于防火墙,IDS入侵检测系统是一个监听设备,没有跨接在任何链路上,无须网络流量流经它便可以工作。因此,对IDS的部署,唯一的要求是:IDS应当挂接在所有所关注流量都必须流经的链路上。在这里,"所关注流量"指的是来自高危网络区域的访问流量和需要进行统计、监视的网络报文。在如今的网络拓扑中,已经很难找到以前的HUB式的共享介质冲突域的网络,绝大部分的网络区域都已经全面升级到交换式的网络结构。因此,IDS在交换式网络中的位置一般选择在:  (1) 尽可能靠近攻击源。 (2) 尽可能靠近受保护资源。 这些位置通常是: (1) 服务器区域的交换机上。 (2) Internet接入路由器之后的第一台交换机上。 (3) 重点保护网段的局域网交换机上。      经典的入侵检测系统的部署方式如图1-1所示。 图 11 入侵检测系统的部署方式图 1.5 入侵检测系统的发展方向 尽管IDS系统的研究从80年代开始,90年代受到重视,到现在已经得到了长足的发展,也涌现了很多方法,有些方法取得了很好的效果,这种动态主动的保护系统也使得IDS正成为计算机网络安全的核心研究问题,但从文章的分析中可以看出,IDS仍然是个年轻的研究领域,随着Internet技术不断发展,IDS 的各个方面的从理论研究到实际应用中还存在很多的问题和难题有待研究、探索和发展。具体表现如下: 高速网络下,提高网络IDS的实时检测效率和降低误警率问题; (1) IDS对变形和变异已知攻击的检测和对新的攻击的检测问题; (2) IDS 体系结构的融合问题,包括基于主机IDS 和基于网络IDS之间更好的协作问题,以及异常检测和误用检测的联合使用问题等; (3) 未来优化的入侵检测系统应该能够基于事件语义分析,而不是单纯基于事件语法分析的检测; (4) 智能入侵检测技术(神经网络、遗传算法、模糊识别、数据挖掘、免疫系统等)从理论研究到实际应用的问题; (5) 基于大规模的信息采集和网络攻击预警技术的研究问题等; IDS 尽管是计算机网络安全的重要组成部分,但它不是一个完全的计算机网络系统安全解决方案,它不能替代其它安全系统如:访问控制、身份识别与认证、加密、防火墙、病毒的检测与杀除等的功能,但它与其它安全系统如防火墙系统与安全网管系统等的协作以增强IDS 的动态灵活反应和免疫能力,以及进行改善的趋势分析等都是IDS 有待研究的课题。 1.6 本文所做的工作 本文中,我对入侵检测系统模型展开了研究,并在Windows2000下搭建了基于Snort2.6的入侵检测系统,在分析和理解Snort运行机制的基础之上,我做了检测实验,然后我将Snort的匹配算法进行了改进,进行了第二次检测实验。对两次实验结果的分析表明:改进后算法的提高了系统的检测效率。 2 Snort的研究 在当今的企业应用环境中,安全是所有网络面临的大问题。黑客和入侵者已成功的入侵了一些大公司的网络及网站。目前已经存在一些保护网络架构及通信安全的方法,例如防火墙、虚拟专用网(VPN)、数据加密等。入侵检测是最近几年出现的相对较新的网络安全技术。利用入侵检测技术,可以从已知的攻击类型中发现是否有人正在试图攻击你的网络或者主机。利用入侵监测系统收集的信息,可以加固自己的系统,及用作其他合法用途。目前市场中也有很多弱点检测工具,包括商品化的和开放源码形式的,可以用来评估网络中存在的不同类型的安全漏洞。入侵检测系统(IDS)用来发现是否有人正在侵入或者试图侵入你的网络。 Snort是一个开放源码的网络入侵检测系统(NIDS),可以免费得到。NIDS是用来检测网络上的信息流的入侵检测系统(IDS)。IDS也包括安装在特定的主机上并检测攻击目标是主机的行为的系统。IDS迄今为止还是一门相当新的技术,而Snort在IDS中处于领先的地位。Snort的规则存储在文本文件中,并可以用文本编辑器修改。规则以类别分组。不同类别的规则存储在不同的文件中。最后,这些文件被一个叫做snort.conf的主配置文件引用。Snort在启动时读取这些规则,并建立内部数据结构或链表以用这些规则来捕获数据。发现入侵特征并利用规则捕获它们是一项具有技巧性的工作,因为在实时检测中你应用越多的规则,那么你将需要越多的处理能力,所以用尽量少的规则来捕获尽量多的特征是非常重要的。Snort已经预先定义了许多入侵检测规则,并且你可以自由添加自定义的规则。同时,你也可以移除一些内建规则以防止错误告警。 2.1 Snort的规则 如同病毒,大多数入侵行为都具有某种特征,Snort的规则就是用这些特征的有关信息构建的。可以用蜜罐来取得入侵者所用的工具和技术的信息,以及他们都做了什么。此外,还有入侵者会利用的已知的系统弱点数据库,如果入侵者试图利用这些弱点来实施攻击,也可以作为一些特征。这些特征可能出现在包的头部,也可能在数据载荷中。Snort的检测系统是基于规则的,而规则是基于入侵特征的。Snort规则可以用来检测数据包的不同部分。Snort 1.x可以分析第3层和第4层的信息,但是不能分析应用层协议。Snort v 2.x增加了对应用层头部分析的支持。所有的数据包根据类型的不同按顺序与规则比对。 规则可以用来产生告警信息、记录日志,或使包通过(pass):对Snort来说,也就是悄悄丢弃(drop),通过在这里的意义与防火墙或路由器上的意义是不同的,在防火墙和路由其中,通过和丢弃是两个相反的概念。Snort规则用简明易懂的语法书写,大多数规则写在一个单行中。当然你也可以行末用反斜线将一条规则划分为多个行。规则文件通常放在配置文件snort.conf文件中,你也可以用其他规则文件,然后用主配置文件引用它们。 Snort规则可以在网络层和传输层进行操作,另外也有一些方法来探测数据链路层和应用层的异常。Snort规则的第二个部分显示了对应的协议,这里有个非常不好用的规则,事实上,也许是最差的规则,但是它可以很好的检测Snort是否正常工作,并可以产生告警: alert ip any any -> any any (msg: "IP Packet detected";) 你可以在你第一次安装Snort的时候在snort.conf的末尾加上这条规则,这个规则可以使每当捕获一个IP包都产生告警信息,如果你就这样离开的话,你的硬盘空间很快就会被填满。这个规则之所以不可用,是因为它不信任任何信息。难道你用一个永久规则的目的就是为了检测Snort是否在工作吗?它应该是用来在你安装完Snort后做测试,以确定其工作正常,然后就去掉这条规则。下面的部分你可以了解Snort规则的不同部分,但为完整性起见,下面将简要解释一下刚才的那条规则所用的语句: “alert”表示如果包与条件匹配,就产生一个告警信息。条件由下面的语句定义。 “ip”表示规则将被用在所有的IP包上。 第1个“any”是对IP包源地址部分的条件定义,表示来自任何一个IP地址的IP包都符合条件,任何IP包都符合本条件。 第2个“any”用来定义端口号,因为端口号与IP层无关,任何IP包都符合条件。 “->”符号表示数据包传送的方向。 第3个“any”用来定义目的地址的条件,any表示这条规则并不关心所有包的目的地址。 第4个“any”用来定义目的端口条件,再说明一次,因为IP层与端口无关。 最后一部分是规则的选项,,并包含一条将被纪录的告警消息。 如果你想测试Snort,就发送一个ping包。再次重复,它应该是用来在你安装完Snort后做测试,以确定其工作正常,然后就去掉这条规则。以下面的命令为例,你可以向你的网关或其他什么主机发送ICMP包。 命令:ping 192.168.2.1 现在来看一下Snort规则的结构。所有的Snort规则都可以分为两个逻辑组成部分:规则头部和规则选项如表2-1所示: 表格 21 Snort规则的结构表 规则头部 规则选项 Snort 规则的基本结构。 规则的头部包含规则所做的动作的信息,也包含与包所比对的一些条件。选项部分通常包含一个告警消息以及包的那个部分被用来产生这个消息。一条规则可以用来探测一个或多个类型的入侵活动,一个好的规则可以来探测多种入侵特征。规则头部结构如图2-2所示: 表格 22 Snort规则头部的结构表 动作 协议 地址 端口 方向 地址 端口 Snort规则头部结构 动作部分表示,当规则与包比对并符合条件是,会采取什么类型的动作。通常的动作时产生告警或记录日志或向其他规则发出请求。你可以来本章的后面了解关于动作的更多信息。 协议部分用来在一个特定协议的包上应用规则。这是规则所涉及的第一个条件。一些可以用到的协议如:IP,ICMP,UDP等等。 地址部分定义源或目的地址。地址可以是一个主机,一些主机的地址或者网络地址。你也可以用这些部分将某些地址从网络中排除。后面将详细讨论。注意,在规则中有两个地址段,依赖于方向段决定地址是源或者是目的,例如,方向段的值是“->”那么左边的地址就是源地址,右边的地址是目的地址。如果协议是TCP或UDP,端口部分用来确定规则所对应的包的源及目的端口。如果是网络层协议,如IP或ICMP,端口号就没有意义了。 方向部分用来确定那一边的地址和端口是源,哪一边是目的。 例如,看一下规则,当它探测到TTL为100的ICMP ping包的时候,就会产生告警:alert icmp any any -> any any (msg: "Ping with TTL=100"; \ttl: 100;) 括号之前的部分叫做规则头部,括号中的部分叫做规则选项。头部依次包括下面部分: (1) 规则的动作:在这个规则中,动作是alert(告警),就是如果符合下面的条件,就会产生一个告警。记住如果产生告警,默认的情况下是会记录日志的。 (2) 协议:在这个规则中,协议是ICMP,也就是说这条规则仅仅对ICMP包有效,如果一个包的协议不是ICMP, Snort探测引擎就不理会这个包以节省CPU时间。协议部分在你对某种协议的包应用Snort规则的时候是非常重要的。 (3) 源地址和源端口:在这个例子中,它们都被设置成了any,也就是这条规则将被应用在来自任何地方的ICMP包上,当然,端口号与ICMP是没有什么关系的,仅仅和TCP和UDP有关系。 (4) 方向:在这个例子中,方向用->表示从左向右的方向,表示在这个符号的左面部分是源,右面是目的,也表示规则应用在从源到目的的包上。如果是<-,那么就相反。注意,也可以用<>来表示规则将应用在所有方向上。 (5) 目的地址和端口:这个例子中,它们也都是“any”,表示规则并不关心它们的目的地址。在这个规则中,由于any的作用,方向段并没有实际的作用,因为它将被应用在所有方向的ICMP包上。 在括号中的选项部分表示:如果包符合TTL=100的条件就产生一条包含文字:“Ping with TTL=100”的告警。TTL是IP包头部字段。 2.2 Snort匹配算法解析 Snort 将所有已知的攻击以规则的形式存放在规则库中,每一条规则由规则头和规则选项两部分组成。规则头对应于规则树结点RTN(Rule Tree Node),包含动作、协议、源(目的)地址和源(目的)端口及数据流向这样一些公共信息,Snort把这些具有相同条件的规则链接到一个集合中,用RTN结构来描述;规则选项对应于规则选项结点OTN(OptionalTree Node),包含一些特定的检测标志、报警信息、匹配内容等条件,每个选项的匹配子函数(插件)放到FUNC链表中。只有当规则的各个条件都为真时才触发相应的操作。综合起来考虑,组成规则的各元素是“逻辑与” 的关系;同时,规则库的各条规则为一个大的“逻辑或”关系。Snort解析规则时,分别生成TCP、UDP、ICMP和IP这4个不同的规则树,每一个规则树色含独立的三维链表:RTN(规则头),OTN(规则选项)和FUNC(指向匹配子函数的指针)。当Snort捕获一个数据报时,首先对其解码,然后进行预处理,再利用规则树对数据报进行匹配。如图2-l所示,在规则树匹配过程中:根据该数据报的IP协议决定与哪个规则树进行匹配;然后与RTN结点依次进行匹配,当与某个规则头相匹配时,接着向下与OTN结点进行匹配。每个OTN结点都包含了一条规则的全部选项,它包含的一组函数指针就是用来实现对这些条件的匹配操作。当检测得知数据报与某个OTN 结点的所有条件相符合时,即判断此数据报为攻击报文。 图 21 Snort的规则树 为提高规则匹配的速度,Snort采用了Boyer-Moore字符串匹配算法、二维列表递归检索(RTN和OTN)以及函数指针列表(称为“三维列表”)等方法。在保持这些方法的基础上,本文试图将匹配策略并行化,对于各条件(规则头中的和规则选项中的)既按照规则本身进行分类,也按照条件分类;同时引入横向淘汰方法,如果一个规则中的一个条件为假,那么就不匹配此规则中的其他条件,从而能有效地减少数据包的匹配时间。 2.3 Snort 命令介绍 虽然目前网上已经出现了Windows平台下的基于snort.exe程序的图形界面控制程序idscenter.exe,其界面的操作行虽然好了很多,但还是不能避免的需要使用命令,所以还是得来看看Snort的命令及其参数作用的介绍。 Snort的命令行的通用形式为: snort -[options] 各个参数功能如下: -A:选择设置警报的模式为full、fas
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服