遵义师范学院计算机与信息科学学院实验报告(2013—2014学年第1学期)课程名称:网络安全实验班级:学号:姓名:任课教师:.............计算机与信息科学学院实验报告.............实验名称Snort网络入侵检测实验指导教师实验类型操作实验学时4实验时间一、实验目的与要求(1)进一步学习网络入侵检测原理与技术。(2)理解Snort网络入侵检测基本原理。(3)学习和掌握Snort网络入侵检测系统的安装、配置与操作。(4)学习和掌握如何利用Snort进行网络入侵检测应用。二、实验仪器和器材惠普pavilion-G4,corel-i3-2310,内存:4G,虚拟机软件vmware9.0,windowsserver2003,Snort_2_9_2_2_Installer,appserv-win32-2.5.10。Acid,Adodb,Jpgraph,Mysql,PHP,WINPCAP,SNORTRULES。三、实验原理、内容及步骤(一)、实验原理:入侵检测基本原理:入侵检测(IntrusionDetection)是对入侵行为的检测。它通过收集和分析网络行为、安全日志、审计数据、其它网络上可以获得的信息以及计算机系统中若干关键点的信息,检查网络或系统中是否存在违反安全策略的行为和被攻击的迹象。入侵检测作为一种积极主动地安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害之前拦截和响应入侵。因此被认为是防火墙之后的第二道安全闸门,在不影响网络性能的情况下能对网络进行监测。入侵检测通过执行以下任务来实现:监视、分析用户及系统活动;系统构造和弱点的审计;识别反映已知进攻的活动模式并向相关人士报警;异常行为模式的统计分析;评估重要系统和数据文件的完整性;操作系统的审计跟踪管理,并识别用户违反安全策略的行为。入侵检测是防火墙的合理补充,帮助系统对付网络攻击,扩展了系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高了信息安全基础结构的完整性。它从计算机网络系统中的若干关键点收集信息,并分析这些信息,看看网络中是否.............闸门,在不影响网络性能的情况下能对网络进行监测,从而提供对内部攻击、外部攻击和误操作的实时保护。这些都通过它执行以下任务来实现:·监视、分析用户及系统活动·系统构造和弱点的审计·识别反映已知进攻的活动模式并向相关人士报警·异常行为模式的统计分析·评估重要系统和数据文件的完整性·操作系统的审计跟踪管理,并识别用户违反安全策略的行为。对一个成功的入侵检测系统来讲,它不但可使系统管理员时刻了解网络系统(包括程序、文件和硬件设备等)的任何变更,还能给网络安全策略的制订提供指南。更为重要的一点是,它应该管理、配置简单,从而使非专业人员非常容易地获得网络安全。而且,入侵检测的规模还应根据网络威胁、系统构造和安全需求的改变而改变。入侵检测系统在发现入侵后,会及时作出响应,包括切断网络连接、记录事件和报警等。入侵检测系统所采用的技术可分为特征检测与异常检测两种:特征检测(Signature-baseddetection)又称Misusedetection,这一检测假设入侵者活动可以用一种模式来表示,系统的目标是检测主体活动是否符合这些模式。它可以将已有的入侵方法检查出来,但对新的入侵方法无能为力。其难点在于如何设计模式既能够表达“入侵”现象又不会将正常的活动包含进来。异常检测(Anomalydetection)的假设是入侵者活动异常于正常主体的活动。根据这一理念建立主体正常活动的“活动简档”,将当前主体的活动状况与“活动简档”相比较,当违反其统计规律时,认为该活动可能是“入侵”行为。异常检测的难题在于如何建立“活动简档”以及如何设计统计算法,从而不把正常的操作作为“入侵”或忽略真.............正的“入侵”行为Snort入侵检测系统:Snort简介:在1998年,MartinRoesch先生用C语言开发了开放源代码(OpenSource)的入侵检测系统Snort.直至今天,Snort已发展成为一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(NetworkIntrusionDetection/PreventionSystem),即NIDS/NIPS.Snort符合通用公共许可(GPL——GUNGeneralPubicLicense),在网上可以通过免费下载获得Snort,并且只需要几分钟就可以安装并开始使用它。snort基于libpcap。Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网络入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。Snort原理:Snort能够对网络上的数据包进行抓包分析,但区别于其它嗅探器的是,它能根据所定义的规则进行响应及处理。Snort通过对获取的数据包,进行各规则的分析后,根据规则链,可采取Activation(报警并启动另外一个动态规则链)、Dynamic(由其它的规则包调用)、Alert(报警),Pass(忽略),Log(不报警但记录网络流量)五种响应的机制。Snort有数据包嗅探,数据包分析,数据包检测,响应处理等多种功能,每个模块实现不同的功能,各模块都是用插件的方式和Snort相结合,功能扩展方便。例如,预.............处理插件的功能就是在规则匹配误用检测之前运行,完成TIP碎片重组,http解码,telnet解码等功能,处理插件完成检查协议各字段,关闭连接,攻击响应等功能,输出插件将得理后的各种情况以日志或警告的方式输出。Snort工作过程:Snort通过在网络TCP/IP的5层结构的数据链路层进行抓取网络数据包,抓包时需将网卡设置为混杂模式,根据操作系统的不同采用libpcap或winpcap函数从网络中捕获数据包;然后将捕获的数据包送到包解码器进行解码。网络中的数据包有可能是以太网包、令牌环包、TCP/IP包、802.11包等格式。在这一过程包解码器将其解码成Snort认识的统一的格式;之后就将数据包送到预处理器进行处理,预处理包括能分片的数据包进行重新组装,处理一些明显的错误等问题。预处理的过程主要是通过插件来完成,比如Http预处理器完成对Http请求解码的规格化,Frag2事务处理器完成数据包的组装,Stream4预处理器用来使Snort状态化,端口扫描预处理器能检测端口扫描的能力等;对数据包进行了解码,过滤,预处理后,进入了Snort的最重要一环,进行规则的建立及根据规则进行检测。规则检测是Snort中最重要的部分,作用是检测数据包中是否包含有入侵行为。例如规则alerttcpanyany-202.12.1.0/2480(msg:”misclargetcppacket”;dsize:3000;)这条规则的意思是,当一个流入202.12.1.0这个网段的TCP包长度超过3000B时就发出警报。规则语法涉及到协议的类型、内容、长度、报头等各种要素。处理规则文件的时候,用三维链表来存规则信息以便和后面的数据包进行匹配,三维链表一旦构建好了,就通过某种方法查找三维链表并进行匹配和发生响应。规则检测的处理能力需要根据规则的数量,运行Snort机器的性能,网络负载等因素决定;最后一步就是输出模块,经过检测后的数据包需要以各种形式将结果进行输出,输出形式可以是输出到alert文件、其它日志文件、数据库UNIX域或Socket等。.............Snort部署与运行:Snort的部署非常灵活,很多操作系统上都可以运行,可以运行在windowxp,windows2003,linux等操作系统上。用户在操作系统平台选择上应考虑其安全性,稳定性,同时还要考虑与其它应用程序的协同工作的要求。如果入侵检测系统本身都不稳定容易受到攻击,就不能很好的去检测其它安全攻击漏洞了。在Linux与Windows操作系统相比较之下,Linux更加健壮,安全和稳定。Snort的运行,主要是通过各插件协同工作才使其功能强大,所以在部署时选择合适的数据库,Web服务器,图形处理程序软件及版本也非常重要。Snort部署时一般是由传感器层、服务器层、管理员控制台层三层结构组成。传感器层层就是一个网络数据包的嗅探器层,收集网络数据包交给服务器层进行处理,管理员控制台层则主要是显示检测分析结果。部署Snort时可根据企业网络规模的大小,采用三层结构分别部署或采用三层结构集成在一台机器上进行部署,也可采用服务器层与控制台集成的两层结构。Snort的有三种模式的运行方式:嗅探器模式,包记录器模式,和网络入侵检测系统模式。嗅探器模式仅仅是从捕获网络数据包显示在终端上,包记录器模式则是把捕获的数据包存储到磁盘,入侵检测模式则是最复杂的能对数据包进行分析、按规则进行检测、做出响应。(二)、实验内容:(1)在Windows下安装Sort工具。(2)Snort入侵检测系统配置。(3)Snort入侵检测系统检测ICMPPING扫描。(4)Snort入侵检测系统来自外网的ICMPPING扫描。(5)Snort入侵检测系统与防火墙联动。.............(三)、实验步骤(因为此次实验在windows系统下进行,所以软件安装步骤较多,具体如下):1.Windows下安装Snort以及其他工具安装1)首先在windows下先安装apachewindows服务器,并安装至C:\IDS\APACHE文件夹内,在弹出来的因为此版本是集成了PHP,MYSQL的,所以直接点击安装。安装过程中会提示输入SQL密码以及apache的root名和管理员邮箱,输入即可。.............在此处我们输入的邮箱为tokyolaw@outlook.com,帐户名为Tokyo,密码设置为123456.2)将C:\ids\php5\Php5ts.dll复制到WINDOWS和WINDOWS\system32目录.............3)添加GD图形库的支持,将C:\WINDOWS下的PhP.ini中把“;extension=php_gd2.dll”和“;extension=php_mysql.dll”这两条语句前面的分号去掉。4)将C:\ids\php5\ext下的文件php_gd2.dll,php_mysql.dll复制至C:\windows下;将php_mysql.dll复制至C:\windows\system32下;.............5)添加APACHE对PHP的支持。在C:\ids\apache\conf\httpd.conf的末尾添加以下语句:LoadModulephp5_modulec:/ids/php5/php5apache2_2.dllAddTypeapplication/x-httpd-php.php6)重启APACHE。.............7)在C:\ids\APACHE\htdocs目录下新建TEST.PHP,内容:?phpinfo();?。在IE中测试PHP是否成功安装。8)安装WINPCAP。此处安装了一个带有winpcap的软件,由于前次实验已经安装在电脑上就不再安装。9)安装SNORT至C:\ids\snort。安装时会提示选择组件以及是否用数据库,这里我们先不选择数据库,组件默认四个全部安装,安装完成后运行一次MYSQL,,安装目录如下图:.............10)在命令行方式下,进入c:\ids\snort\bin,执行命令:snort–W,测试SNORT是否成功安装。出现以下提示则安装成功。11)将C:\IDS\Snort\schemas里面的create_mysql复制到C:\根目录