甘肃政法学院入侵检测课程设计题目snort入侵检测系统学院专业2011级班学号:姓名:指导教师:成绩:_________________完成时间:2013年12月Snort入侵检测系统一、课程设计目的(1)通过实验深入理解入侵检测系统的原理和工作方式。(2)熟悉入侵检测工具snort在Windows操作系统中的安装和配置方法二.课程设计的原理入侵检测系统(IntrusionDetectionSystem,简称IDS)是一种从计算机网络或计算机系统中的若干关键点收集入侵者攻击时所留下的痕迹,如异常网络数据包与试图登录的失败记录等信息,通过分析发现是否有来自于外部或内部的违反安全策略的行为或被攻击的迹象。全国的很多企业或团体都很重视自己内部保密文件的泄露与盗取,但网络传输方式有的就存在着漏洞,很多的黑客就是通过一个企业或团体的所拥有的网站通过这些漏洞来拿到这个企业的服务器,竟而获得它的内部保密文件,但是安全部门也通过电脑审计功能或其它的各种方式来对于入侵公司的“人员”获得他们入侵的记录,做出相应的法律措施,来保证每一个企业或团体的文件安全。随着网络技术的快速发展,网络入侵行为也越来越严重,本论文主要讨论snort入侵检测系统。Snort是一个免费的IDS(入侵监测系统)软件。它的一些源代码是从著名tcpdump软件发展而来的。它是一个基于libpcap包的网络监控软件,可以作为一个十分有效的网络入侵监测系统。Snort首先根据远端的ip地址建立目录,然后将检测到的包以tcpdump的二进制格式记录或者以自身的解码形式存储到这些目录中.这样一来,你就可以使用snort来监测或过滤你所需要的包.三、入侵检测系统的起源和发展随着网络的普及,每个人都通过不同的方式来访问网络,尤其是在B/S模式的网络结构中,比如很多的公司机密资料、广大人群的购物交易、安全部门为人们了解国家所发布的文章都是通过网络来传输,有很多的“不良分子”在利益的驱使下,通过攻击web的漏洞,来获取的自己所要的东西,已达到自己不可告人的目的。Snort是一个轻量级的入侵检测系统,它具有截取网络数据报文,进行网络数据实时分析、报警,以及日志的能力。snort的报文截取代码是基于libpcap库的,继承了libpcap库的平台兼容性。它能够进行协议分析,内容搜索/匹配,能够用来检测各种攻击和探测,例如:缓冲区溢出、隐秘端口扫描、CGI攻击、SMB探测、OS指纹特征检测等等。snort使用一种灵活的规则语言来描述网络数据报文,因此可以对新的攻击作出快速地翻译。snort具有实时报警能力。可以将报警信息写到syslog、指定的文件、UNIX套接字或者使用WinPopup消息。snort具有良好的扩展能力。它支持插件体系,可以通过其定义的接口,很方便地加入新的功能。snort还能够记录网络数据,其日志文件可以是tcpdump格式,也可以是解码的ASCII格式。而且,Snort对硬件没有特殊的要求,对Snort来说,硬件系统的处理器频率越高越好,不同网络使用的网卡和硬盘空间大小会制约Snort捕捉数据包和存储数据包的功能。主要来说,Snort作为一个基于网络的入侵检测系统(NIDS),在基于共享网络上检测原始的网络传输数据,通过分析捕获的数据包,匹配入侵行为的特征或者从网络活动的角度检测异常行为,进而采取入侵的告警或记录。从检测模式而言,Snort属于是误用检测,即对已知攻击的特征模式进行匹配。从本质上来说,Snort是基于规则检测的入侵检测工具,即针对每一种入侵行为,都提炼出它的特征值并按照规范写成检验规则,从而形成一个规则数据库。其次将捕获得数据包按照规则库逐一匹配,若匹配成功,则认为该入侵行为成立。同时snort还是一个自由、简洁、快速、易于扩展的入侵检测系统,已经被移植到了各种UNIX平台和Win98,Win2000上。它也是目前安全领域中,最活跃的开放源码工程之一。在Snort.org上几乎每天都提供了最新的规则库以供下载,由于snort本身是自由的源码开放工程所以在使用snort时除了必要的硬件外软件上基本上不需要有任何额外的开销。这相对于少则上千多则上万的商业入侵检测系统来说,无疑是最好的替代产品之一。Snort入侵系统概述Snort作为一个基于网络的入侵检测系统(NIDS),在基于共享网络上检测原始的网络传输数据,通过分析捕获的数据包,匹配入侵行为的特征或者从网络活动的角度检测异常行为,进而采取入侵的告警或记录。从检测模式而言,Snort属于是误用检测,即对已知攻击的特征模式进行匹配。从本质上来说,Snort是基于规则检测的入侵检测工具,即针对每一种入侵行为,都提炼出它的特征值并按照规范写成检验规则,从而形成一个规则数据库。其次将捕获得数据包按照规则库逐一匹配,若匹配成功,则认为该入侵行为成立。Snort系统的特点1)Snort是一个轻量级的入侵检测系统它虽然功能强大,但是代码却极为简洁、短小,其源代码压缩包不到2兆。2)Snort的可移植性很好Snort的跨平台性能极佳,目前已经支持Linux,Solaris,BSD,IRIX,HP-UX,windows等系统。采用插入式检测引擎,可以作为标准的网络入侵检测系统、主机入侵检测系统使用;与Netfilter结合使用,可以作为网关IDS(GatewayIDS)等系统指纹识别工具结合使用,可以作为基于目标的IDS(Target—basedIDS)。3)Snort的功能非常强大Snort具有实时流量分析和日志IP网络数据包的能力。能够快速地检测网络攻击,及时地发出报警。Snort的报警机制很丰富,例如:syslog、用户指定的文件、一个UNIX套接字,还有使用SAMBA协议向Windows客户程序发出WinPopup消息。利用XML插件,Snort可以使用SNML(简单网络标记语言,simplenetworkmarkuplanguage)把日志存放到一个文件或者适时报警。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(StatisticalPacketAnomalyDetectionEngine)插件,Snort能够报告非正常的可疑包,从而对端口扫描进行有效的检测。4)扩展性能较好,对于新的攻击威胁反应迅速作为一个轻量级的网络入侵检测系统,Snort有足够的扩展能力。它使用一种简单的规则描述语言。最基本的规则只是包含四个域:处理动作、协议、方向、注意的端口。还有一些功能选项可以组合使用,实现更为复杂的功能。Snort支持插件,可以使用具有特定功能的报告、检测子系统插件对其功能进行扩展。Snort当前支持的插件包括:数据库日志输出插件、碎数据包检测插件、端口扫描检测插件、HTTPURINormalization插件、XML插件等。同时,它支持多种格式的特征码规则输入方式,如数据库、XML等。Snort的规则语言非常简单,能够对新的网络攻击做出很快的反应。发现新的攻击后,可以很快根据其特征码,写出检测规则。因为其规则语言简单,所以很容易上手,节省人员的培训费用。5)多用途性Snort系统不但可以作为入侵检测系统,还可以作为数据包嗅探器、数据包记录器使用。6)遵循公共通用许可证GPLSnort遵循GPL,所以任何企业、个人、组织都可以免费使用它作为自己的入侵检测系统。但是,Snort系统也有很大的局限性,其系统结构决定了其检测规则只能使用落后的简单模式匹配技术,适应目前不断出现的新的攻击方式的能力有限:并且它在网络数据流量很大的时候容易产生漏报和误报,这对于目前的宽带潮流是一个很大的缺点。四、Windows下Snort的集成式安装(一)安装Snort和Wincap包Snort安装1Snort安装2Snort安装3Snort安装4(2)Winpcap的安装界面Winpcap安装1Winpcap安装2Winpcap安装3Winpcap安装42.安装AppServ启动AppServ安装文件后,出现如图所示的设置服务器信息界面:在ServerName中输入域名localhost:Administrator'sEmailAddress中输入邮箱地址:1298785661@qq.com监听端口设为8080。点击next,进入下一界面:在出现的界面中输入密码(123):CharacterSetsandCollations选择GB2312SimplifiedChinese,先将C:\Appserv\php5目录下的php.ini-dist文件改名为php.Ini,然后启动Apache和MySql。点击finish。在控制面板—》管理—》服务中查看服务,确保Apache和MySql已启动。安装完成后可以查看Apache和MySql是不是可以正常运行。Mysql正常运行在浏览器中输入运行成功(2)测试AppServ首先查看控制面板/管理/服务,确保Apache和MySQL已经启动,然后,在浏览器中输入(下图)可以了解php的一些信息。最后打开浏览器,输入下图)输入用户名root和密码,可以浏览数据库内容。(3)配置AppServ第一步,编辑Apache服务器配置文件。打开C:\AppServ\Apache2.2\conf文件中的httpd.conf,检查相应的一些值进入Apache服务器配置文件需要检查一下一些值:LoadModulephp5_moduleC:/AppServ\php5\php5apache2_2.dllServerNamelocalhost:8080DocumentRootC:/AppServ/第二步,编辑phpMyAdmin中的关键文件。打开C:\AppServ\目录下的config.default.php文件。设置phpMyadmin的URL,$cfg['PmaAbsoluteUri']='['blowfish_secret']='123'$cfg['DefaultLang']='zh-gb2312'$cfg['DefaultCharset']='gb2312'$cfg['Servers'][$i]['auth_type']='cookie'第三步,为安全起见,还必须删除Mysql安装后默认的any@%、any@localhost和root@%帐号。deletefromdbwhereuser=''andhost='%'deletefromtables_privwhereuser=''andhost='%'deletefr