版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机科学学院入侵检测技术期末课程设计题 目 snort入侵检测系统 学 号 xxx 班 级 xxx 姓 名 xxx 指导教师 xxx 成 绩 完成时间 2012 年 6 月snort入侵检测系统一、课程设计目的(1)通过实验深入理解入侵检测系统的原理和工作方式。(2)熟悉入侵检测工具snort在Windows操作系统中的安装和配置方法二、课程设计的原理1 引言snort是一个免费的基于libpcap的轻量级网络入侵检测系统。它能够跨系统平台操作,自带轻量级的入侵检测工具可以用于监视小型的TCP/IP网络,在进行网络监视时snort能够把网络数据和规则进行模式匹配,从而检测出可能的入侵企图,同
2、时它也可以使用SPADE插件,使用统计学方法对网络数据进行异常检测,这些强大的检测功能为网络管理员对于入侵行为做出适当的反击提供了足够的信息。snort使用一种易于扩展的模块化体系结构,开发人员可以加入自己编写的模块来扩展snort的功能。这些模块包括:HTTP解码插件、TCP数据流重组插件、端口扫描检测插件、FLEXRESP插件以及各种日志输入插件等。同时snort还是一个自由、简洁、快速、易于扩展的入侵检测系统,已经被移植到了各种UNIX平台和Win98,Win2000上。它也是目前安全领域中,最活跃的开放源码工程之一。在S上几乎每天都提供了最新的规则库以供下载,由于sno
3、rt本身是自由的源码开放工程所以在使用snort时除了必要的硬件外软件上基本上不需要有任何额外的开销。这相对于少则上千多则上万的商业入侵检测系统来说,无疑是最好的替代产品之一。本文主要论述了snort的背景知识以及它的基于规则的入侵检测机制,同时对于如何使用也作了概括说明。2 入侵检测技术简介入侵检测就是一个监视计算机系统或者网络上发生的事件,然后对其进行安全分析的过程。它可以用来发现外部攻击与合法用户滥用特权,根据用户的历史行为,基于用户的当前操作,完成对入侵的检测,记录入侵证据,为数据恢复和事故处理提供依据。入侵检测系统的原理如图A所示:图A入侵检测的原理图大多数的入侵检测系统都可以被归入
4、到基于主机、基于网络以及分布式三类。基于主机的入侵检测系统是一种早期的IDS设计模型,它主要设计用来监视单一的服务器,因为DNS、Email和web服务器是多数网络攻击的目标,这些攻击大约占据全部网络攻击事件的1/3以上,基于主机的入侵检测系统就是为了解决这些问题而设计的,它能够监视针对主机的活动(用户的命令、登录/退出过程,使用数据等等),它的特点就是针对性好而且,效果明显,误报率低。基于网络的入侵检测系统是后于基于主机入侵检测系统而出现的,它主要用于集中用于监控通过网络互连的多个服务器和客户机,能够监视网络数据发现入侵或者攻击的蛛丝马迹。分布式IDS通过分布于各个节点的传感器或者代理对整个
5、网络和主机环境进行监视,中心监视平台收集来自各个节点的信息监视这个网络流动的数据和入侵企图。在入侵检测系统中,系统将用户的当前操作所产生的数据同用户的历史操作数据根据一定的算法进行检测,从而判断用户的当前操作是否是入侵行为,然后系统根据检测结果采取相应的行动。入侵检测的过程是一个机器(检测工具)与人(黑客)对抗的决策分析过程,其技术基础是基于知识的智能推理,需要用到人工智能的相关技术。各种入侵检测系统使用的检测方法可以分为两类:基于特征码的检测方法和异常检测。使用基于特征码检测方法的系统从网络获得数据,然后从中发现以知的攻击特征。例如:在某些URL中包含一些奇怪的Unicode编码字符就是针对
6、IIS Unicode缺陷的攻击特征。此外各种模式匹配技术的应用,提高了这种检测方法的精确性。使用异常检测的系统能够把获得的数据与一个基准进行比较,检测这些数据是否异常。例如:如果一个雇员的工作时间是上9点到下午5点,但是在某个晚上他的计算机记录了他曾经在半夜登录了公司的邮件服务器,这就是一个异常事件,需要深入调查。现在,大量的统计学方法用于这个领域。3 Snort简介snort是一个基于libpcap的轻量级网络入侵检测系统。根据,轻量级入侵检测系统是这样定义的:首先它能够方便地安装和配置在网络的任何一个节点上,而且不会对网络运行产生太大的影响,同时轻量级入侵检测系统还应该
7、具有跨系统平台操作,最小的系统要求以及易于部署和配置等特征,并且管理员能够利用它在短时间内通过修改配置进行实时的安全响应。Snort是一个典型的轻量级入侵检测系统,首先可以运行在多种操作系统平台,例如UNIX系列和Win9X,Win2000(需要libpcap for Win32的支持),与很多商业产品相比,它对操作系统的依赖性比较低。它的分发源码文件压缩包大约只有100KB,在一台一般性能的计算机上编译安装时大约只需几分钟的时间,另外配置激活也大约只需要十几分钟的时间,安装以后即便不对它进行维护也能长时间稳定运行。其次用户可以根据自己的需要及时在短时间内调整检测策略。就检测攻击的种类来说,据
8、最新的规则包文件snortrules-stable.tar.gz(Sep 4 02:15:18 2002)snort共有33类,1867条检测规则,其中包括对缓冲区溢出,端口扫描和CGI攻击等等。3.1 Snort规则Snort是基于规则的模式匹配的,这种体系结构非常灵活,用户可以到/dl/signatures/下载最新的规则,在上几乎每几天就会有新的规则被更新,同时用户也可以自己书写新的规则,Snort规则文件是一个ASCII文本文件,可以用常用的文本编辑器对其进行编辑。规则文件的内容由以 下几部分组成:l 变量定义:在这里定义的变量可
9、以在创建Snort规则时使用。l Snort规则:在入侵检测时起作用的规则,这些规则应包括了总体的入侵检测策略。l 预处理器:即插件,用来扩展Snort的功能。如用portscan来检测端口扫描。l 包含文件Include Files:可以包括其它Snort规则文件。l 输出模块:Snort管理员通过它来指定记录日志和警告的输出。当Snort调用告警及日志子系统时会执行输出模块。规则具体的书写不再做说明,如果想想进行更进一步了解可以到的文档中心去下载snort的官方文档Snort Users Manual中的Writing Snort Rules章节(其链接是http:/ww
10、/docs/writing_rules/chap2.html#tth_chAp2)。3.2 Snort与tcpdump的比较如果用尽量简单的话来定义tcpdump,就是:Dump the traffic on a network.,即根据使用者的定义对网络上的数据包进行截获的包分析工具。作为互联网上经典的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的工具之一。顾名思义,tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or
11、、not等逻辑语句来帮助你去掉无用的信息。从表面上看来,Snort与tcpdump是非常相似的,Snort与它的最大的共同之处在于都是基于libpcap的并且支持BPF过滤机制,所以本质上都是调用的捕获数据包的库函数,但是snort的目的不仅仅是在于记录这个数据包而是从安全的角度考虑出发来解析它,并且tcpdump主要是分析第二层或者第三层的报文来进行网络故障诊断,而snort则主要针对于应用层的数据进行分析从而实现检测入侵行为。除此之外,由于tcpdump旨在快速完整地记录流量,所以它制定了特殊的输出格式,速度快,但是不易看懂,而snort就提供了更为友好的输出格式,有利于系统管理员的直接分
12、析。4 snort的体系结构图B snort的体系结构4.1 数据包捕获和解码子系统(Decoder)该子系统的功能为捕获网络得传输数据并按照TCP/IP协议的不同层次将数据包进行解析。Snort利用libpcap库函数进行采集数据, 该库函数可以为应用程序提供直接从链路层捕获数据包的接口函数并可以设置数据包的过滤器以来捕获指定的数据。网络数据采集和解析机制是整个NIDS实现的基础,其中关键的是要保证高速和低的丢包率,这不仅仅取决于软件的效率还同硬件的处理能力相关。对于解析机制来说,能够处理数据包的类型的多样性也同样非常重要,目前,snort可以处理以太网,令牌环以及SLIP等多种类型的包。4
13、.2 检测引擎(the detect engine)检测引擎是snort的核心,准确和快速是衡量其性能的重要指标,前者主要取决于对入侵行为特征码的提取的精确性和规则撰写的简洁实用性,由于网络入侵检测系统是被动防御的只能被动的检测流经本网络的数据,而不能主动发送数据包去探测,所以只有将入侵行为的特征码归结为协议的不同字段的特征值,通过检测该特征值来决定入侵行为是否发生。后者主要取决于引擎的组织结构,是否能够快速地进行规则匹配。为了能够快速准确地进行检测,snort将检测规则利用链表的形式进行组织,分为两部分:规则头和规则选项。前者是所有规则共有的包括IP地址、端口号等,后者根据不同规则包括相应的
14、字段关键字。下图C是Snort的创始人Martin Roesch所作的检测规则的示意图。图C检测规则的结构示意图当进行规则的匹配时,在链表的两个方向同时进行,检测引擎只检测那些在一开始在规则解析器中设置好了的规则选项。当检测引擎检测到第一个与被解码的包相匹配的规则时,检测引擎触发相应的动作并返回。4.3 日志/报警子系统snort对每个被检测的数据包都定义了如下的三种处理方式:alert(发送报警信息),log(记录该数据包)和pass(忽略该数据包)。这其实是具体定义在检测规则中的。其具体的完成是在日志/报警子系统中完成的,日志子系统允许你将包解码收集到的信息以可读的格式或以tcpdump格
15、式记录下来。报警子系统使其将报警信息发送到syslog、flat文件、Unix套接字或数据库中。三、课程设计任务 1、Windows环境下安装和配置snort(1)、安装Snort和Wincap包2.AppServ(1)安装AppServ启动AppServ安装文件后,出现如图所示的设置服务器信息界面:在Server Name中输入服务器IP地址:localhost:Administrators Email Address 中输入邮箱地址:监听端口设为8080点击next,进入下一界面:在出现的界面中输入密码(123):Character Sets and Collations选择G
16、B 2312Simplified Chinese,如下图所示:然后单击Install,进入安装过程,出现下图:安装完成后将C:Appservphp5目录下的php.ini-dist 文件改名为php.Ini,并启动Apache和MySql。(控制面板管理服务 确保Apache和MySql已启动)安装完成后可以查看(MySQL启动如下图)在浏览器中输入http:/localhost :8080 出现:表示安装成功!(2)测试AppServ首先查看控制面板/管理/服务,确保Apache和MySQL已经启动,然后,在浏览器中输入http:/localhost :8080/phpinfo.php,(下
17、图)可以了解php的一些信息。最后打开浏览器,输入http:/localhost :8080/phpMyAdmin/index.php,下图)输入用户名root和密码,可以浏览数据库内容(3)配置AppServ第一步,编辑Apache服务器配置文件。打开Apache2.2conf文件中的httpd.conf,检查相应的一些值进入Apache服务器配置文件需要检查一下一些值:LoadModule php5_module D:/AppServphp5php5apache2_2.dll# Main server configuration# The directives in this sectio
18、n set up the values used by the main# server, which responds to any requests that arent handled by a# definition. These values also provide defaults for# any containers you may define later in the file.# All of these directives may appear inside containers,# in which case these default settings will
19、 be overridden for the# virtual host being defined.# ServerAdmin: Your address, where problems with the server should be# e-mailed. This address appears on some server-generated pages, such# as error documents. e.g. #ServerAdmin # ServerName gives the name and port that the
20、 server uses to identify itself.# This can often be determined automatically, but we recommend you specify# it explicitly to prevent problems during startup.# If your host doesnt have a registered DNS name, enter its IP address here.#ServerName localhost:8080# DocumentRoot: The directory out of whic
21、h you will serve your# documents. By default, all requests are taken from this directory, but# symbolic links and aliases may be used to point to other locations.#DocumentRoot D:/AppServ/www# Each directory to which Apache has access can be configured with respect# to which services and features are
22、 allowed and/or disabled in that# directory (and its subdirectories). # First, we configure the default to be a very restrictive set of # features. # Options FollowSymLinks ExecCGI Indexes AllowOverride None Order deny,allow Deny from all Satisfy all# Note that from this point forward you must speci
23、fically allow# particular features to be enabled - so if somethings not working as# you might expect, make sure that you have specifically enabled it# below.# This should be changed to whatever you set DocumentRoot to.#第二步,编辑phpMyAdmin中的关键文件。打开D:AppServwwwphpMyAdminlibraries目录下的config.default.php文件设
24、置phpMyadmin的URL,$cfgPmaAbsoluteUri = http:/localhost:8080/phpmyadmin/$cfgblowfish_secret = 123$cfgDefaultLang = zh-gb2312$cfgDefaultCharset = gb2312$cfgServers$iauth_type = cookie第三步,配置php.ini。打开C:WINDOWS|php.ini文件第四步,配置php.ini。打开C:WINDOWS|php.ini文件。修改后的值如下图:第五步,对Mysql进行修改。首先需要建立Snort运行必需的Snort 库和Sn
25、ort_archive库:创建表schema和event的代码如下所示:CREATE TABLE schema ( vseq INT UNSIGNED NOT NULL, ctime DATETIME NOT NULL, PRIMARY KEY (vseq);INSERT INTO schema (vseq, ctime) VALUES (107, now(); CREATE TABLE event ( sid INT UNSIGNED NOT NULL, cid INT UNSIGNED NOT NULL, signature INT UNSIGNED NOT NULL, timestamp
26、 DATETIME NOT NULL, PRIMARY KEY (sid,cid), INDEX sig (signature), INDEX time (timestamp);执行结果如下图所示:第六步,使用C:Snortschemas目录下的create_MySQL脚本建立Snort运行必需的数据表。在此,可以通过MySQL提示符下运行SQL语句show tables来检验配置的正确性其中c:Snort为Snort的安装目录,打开命令提示符,运行以下命令:mysql -D Snort -u root -p c:Snortschemascreate_mysqlmysql -D Snort_a
27、rchive -u root -p 把“# var HOME_NET /24”改成“var HOME_NET /24”你自己LAN内的地址,把前面的#号去掉。2把“var RULE_PATH ./rules”改成“var RULE_PATH /etc/snort”3把“# output database: log, mysql, user=root password=test dbname=db host=localhost”改成“output database: log, mysql, user=root password=123 dbname=snor
28、t host=localhost”把前面的#号去掉。4把“# include $RULE_PATH/web-attacks.rules# include $RULE_PATH/backdoor.rules# include $RULE_PATH/shellcode.rules# include $RULE_PATH/policy.rules# include $RULE_PATH/porn.rules# include $RULE_PATH/info.rules# include $RULE_PATH/icmp-info.rules#include $RULE_PATH/virus.rules
29、# include $RULE_PATH/chat.rules# include $RULE_PATH/multimedia.rules# include $RULE_PATH/p2p.rules”前面的#号删除。修改完毕后,保存退出。(5)、系统测试 1)、phpMyAdmin测试Snort系统全部安装完以后,用户将可以使用root、acid、snort3个账户ID登录phpMyAdmin。这3个用户能否顺利登陆关系到整个snort系统能否顺利运行,因此必须进行检测。登陆时先后输入3个用户名和密码,如图:如果用户不慎忘记数据库acid密码,可以通过程序组中的AppServ组内的重置密码命令恢
30、复acid的密码,如图:phpMyAdmin重置密码界面1phpMyAdmin重置密码界面2 2)、命令行界面测试用户可以使用如下命令测试snort是否正常工作: d:snortbinsnort -cd:snortetcsnort.conf -l d:snortlog -d -e -X重新启动snort后,经过一系列初始化,如果看到“小猪”,就标志着snort已经正常启动了。然后用另外一台主机ping 本机,snort 即可监控到如下图的情况:snort成功捕捉数据包,2、Windows下Snort的使用 IDScenter是一款Windows平台下基于Snort的界面工具。它虽然简化了Snort的的使用,但我们仍然必须掌握Snort和网络的相关知识。他不但具有省去了敲代码的繁琐工作,而且提供了管理功能。主要特点有:支持Snort的2.0,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第1课时 1000以内数的认识
- 第2章 一元二次方程(单元自测-拔尖卷)(解析版)
- 2026资源共享面试题及答案
- 2026年一建市政实务考前密押通关试卷及答案
- 2026年一建民航实务考前仿真测评冲刺试卷及答案
- 2026年一建矿业实务考前高分冲刺通关试卷及答案
- 2026年一建经济考前摸底测评试卷及答案
- 2026儿童旅行证面试题及答案
- 2026高架桥噪音面试题及答案
- 2026购物车支付面试题及答案
- 2026年三力测试全真模拟试题集
- 2026中国心理咨询服务行业发展现状与前景分析报告
- 多维度医院成本智能分析看板构建
- 2026青海海西州乌兰县人民法院临聘财务辅助岗招聘1人备考题库及完整答案详解一套
- 会计事务所客户风险评价表样本
- 2025-2030中国茶叶礼品跨境电商运营模式分析报告
- 2026年哈尔滨铁路局校园招聘考试备考题库及答案解析
- 雨课堂学堂在线学堂云《雷达原理与系统(中国人民解放军战略支援部队信息工程)》单元测试考核答案
- 团餐内部管理制度及流程
- 教师数字档案袋制度
- 供方认可及人员资格管理指南 2025
评论
0/150
提交评论