入侵检测课程设计 柳文会 81010124.docx
- 文档编号:8835891
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:34
- 大小:2.19MB
入侵检测课程设计 柳文会 81010124.docx
《入侵检测课程设计 柳文会 81010124.docx》由会员分享,可在线阅读,更多相关《入侵检测课程设计 柳文会 81010124.docx(34页珍藏版)》请在冰豆网上搜索。
入侵检测课程设计柳文会81010124
甘肃政法学院
入侵检测课程设计
题目基于snort的入侵检测系统
计算机科学学院计算机科学与技术专业
10级计算科学与技术本科班
学号:
_201081010124
姓名:
柳文会
指导教师:
_____金涛____
成绩:
_______________
完成时间:
_2012年_12月
一、课程设计目的
1、通过实验深入理解入侵检测系统的原理和工作方式。
2、熟悉入侵检测工具snort在Windows操作系统中的安装和配置方法。
3、通过使用Snort,了解基于网络和主机的入侵检测系统的工作原理和应用方法。
二、课程设计的原理
1、入侵检测技术简介
入侵检测就是一个监视计算机系统或者网络上发生的事件,然后对其进行安全分析的过程。
它可以用来发现外部攻击与合法用户滥用特权,根据用户的历史行为,基于用户的当前操作,完成对入侵的检测,记录入侵证据,为数据恢复和事故处理提供依据。
入侵检测系统的原理如图A所示:
图A入侵检测的原理图
大多数的入侵检测系统都可以被归入到基于主机、基于网络以及分布式三类。
基于主机的入侵检测系统是一种早期的IDS设计模型,它主要设计用来监视单一的服务器,因为DNS、Email和web服务器是多数网络攻击的目标,这些攻击大约占据全部网络攻击事件的1/3以上,基于主机的入侵检测系统就是为了解决这些问题而设计的,它能够监视针对主机的活动(用户的命令、登录/退出过程,使用数据等等),它的特点就是针对性好而且,效果明显,误报率低。
基于网络的入侵检测系统是后于基于主机入侵检测系统而出现的,它主要用于集中用于监控通过网络互连的多个服务器和客户机,能够监视网络数据发现入侵或者攻击的蛛丝马迹。
分布式IDS通过分布于各个节点的传感器或者代理对整个网络和主机环境进行监视,中心监视平台收集来自各个节点的信息监视这个网络流动的数据和入侵企图。
在入侵检测系统中,系统将用户的当前操作所产生的数据同用户的历史操作数据根据一定的算法进行检测,从而判断用户的当前操作是否是入侵行为,然后系统根据检测结果采取相应的行动。
入侵检测的过程是一个机器(检测工具)与人(黑客)对抗的决策分析过程,其技术基础是基于知识的智能推理,需要用到人工智能的相关技术。
各种入侵检测系统使用的检测方法可以分为两类:
基于特征码的检测方法和异常检测。
使用基于特征码检测方法的系统从网络获得数据,然后从中发现以知的攻击特征。
例如:
在某些URL中包含一些奇怪的Unicode编码字符就是针对IISUnicode缺陷的攻击特征。
此外各种模式匹配技术的应用,提高了这种检测方法的精确性。
使用异常检测的系统能够把获得的数据与一个基准进行比较,检测这些数据是否异常。
例如:
如果一个雇员的工作时间是上9点到下午5点,但是在某个晚上他的计算机记录了他曾经在半夜登录了公司的邮件服务器,这就是一个异常事件,需要深入调查。
现在,大量的统计学方法用于这个领域。
(1)入侵检测系统定义
入侵检测系统(IntrusionDetectionSystem,简称IDS)是一种从计算机网络或计算机系统中的若干关键点收集入侵者攻击时所留下的痕迹,如异常网络数据包与试图登录的失败记录等信息,通过分析发现是否有来自于外部或内部的违反安全策略的行为或被攻击的迹象。
它以探测与控制作为技术本质,起着主动式、动态的防御作用,是网络安全中极其重要的组成部分。
目前入侵检测涉及到的功能有监视分析用户和系统的行为、审计系统配置和漏洞、评估敏感系统和数据的完整性、识别攻击行为、对异常行为进行统计、自动地收集与系统相关的补丁、进行审计跟踪识别违反安全策略的行为、使用诱骗服务器记录黑客行为等功能,使系统管理员可以较有效地监视、审计、评估自己的系统等。
(2)入侵检测系统的作用
入侵检测是防火墙的合理补充,帮助系统对付网络攻击,扩展了系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高了信息安全基础结构的完整性。
它从计算机网络系统中的若干关键点收集信息,并分析这些信息,看看网络中是否有违反安全策略的行为和遭到袭击的迹象。
入侵检测被认为是防火墙之后的第二道安全闸门,在不影响网络性能的情况下能对网络进行监测,从而提供对内部攻击、外部攻击和误操作的实时保护。
(3)入侵检测系统的检测信息来源
入侵检测系统的检测信息来源都是通过自身的检测部分Sensor得到的。
基于网络的入侵检测,主要是通过对网络数据包的截取分析,来查找具有攻击特性和不良企图的数据包的。
在网络里基于网络的入侵检测系统的检测部分Sensor一般被布置在一个交换机的镜象端口(或者一个普通的HUB任意端口),听取流经网络的所有数据包,查找匹配的包,来得到入侵的信息源。
基于主机的入侵检测系统的Sensor不可能直接从系统内部获取信息的,它是要通过一个事先做好的代理程序,安装在需要检测的主机里的,这些代理程序主要收集系统和网络日志文件,目录和文件中的不期望的改变,程序执行中的不期望行为,物理形式的入侵信息。
(4)入侵检测方法介绍
当前入侵检测技术的发展方向主要有两个:
一是基于异常方式的入侵检测(AnomalyDetection),另一个是基于误用方式的入侵检测(MisuseDetection)。
基于异常入侵检测技术是通过检测攻击者与合法用户具有的不同特征来识别入侵行为。
例如,如果用户A仅仅是在早上9点钟到下午5点钟之间在办公室使用计算机,则用户A在晚上的活动是异常的,就有可能是入侵。
异常检测试图通过定量方式描述常规的或可接受的行为,以标记非常规的、潜在的入侵行为。
异常入侵检测的主要前提是入侵性活动作为异常活动的子集,异常检测主要使用概率统计方法,还有顺序模式归纳产生法和神经网络等检测方法。
随着对计算机系统弱点和攻击方法的不断收集和研究,入侵特征化描述的方法越来越有效,这使得误用检测的使用也越来越广泛。
基于误用入侵检测技术是根据己知的入侵模式来检测。
入侵者常常利用系统和应用软件的弱点进行攻击,而这些弱点可以归类为某种模式,如果入侵者攻击方式恰好匹配上检测系统中的模式库,则入侵者即被检测到。
例如,Windows的IIS常见的CGI,SQL等漏洞,就可以根据它的攻击特征进行检测。
误用检测使用的方法主要有专家系统、状态转换分析、基于模型的方法和模式匹配,人工智能技术、免疫检测和自主代理等方法正在实践或者科研当中。
2、Snort简介
Snort是一个强大的轻量级的网络入侵检测系统。
它具有实时数据流量分析和日志IP网络数据包的能力,能够进行协议分析,对内容搜索/匹配。
它能够检测各种不同的攻击方式,对攻击进行实时警报。
此外,Snort具有很好的扩展性和可移植性。
(1)Snort的特点:
Snort是一个强大的清量级的网络入侵检测系统。
它具有实时数据流量分析和日志Ip网络数据包的能力,能够进行协议分析,对内容搜索/匹配。
它能够检测各种不同的攻击方式,对攻击进行实时警报。
此外,Snort具有很好的扩展性和可移植性。
还有,这个软件遵循公用许可GPL,所以只要遵守GPL任何组织和个人都可以自由使用。
①Snort虽然功能强大,但是其代码极为简洁,短小,其源代码压缩包只有200KB不到。
Snort可移植性非常好。
Snort的跨平台性能极佳,目前已经支持Linux系列,Solaris,BSD系列,IRIX,HP-UX,Windows系列,ScoOpenserver,Unixware等。
②Snort具有实时流量分析和日志Ip网数据包的能力。
能够快速地检测网络攻击,及时地发出警报。
Snort的警报机制很丰富。
例如:
Syslog,用户指定文件,UnixSocket,还有使用SAMBA协议向Windows客户程序发出WinPopup消息。
利用XML插件,Snort可以使用SNML(简单网络标记语言.simplenetworkmarkuplanguage)把日志存放在一个文件或者适时警报。
③Snort能够进行协议分析,内容的搜索/匹配。
现在Snort能够分析的协议有TCP,UDP和ICMP。
将来的版本,将提供对ARP.ICRP,GRE,OSPF,RIP,ERIP,IPX,APPLEX等协议的支持。
它能够检测多种方式的攻击和探测,例如:
缓冲区溢出,CGI攻击,SMB检测,探测操作系统质问特征的企图等等。
④Snort的日至格式既可以是Tcpdump的二进制格式,也可以编码成ASCII字符形式,更便于拥护尤其是新手检查,使用数据库输出插件,Snort可以把日志记入数据库,当前支持的数据库包括:
Postagresql,MySQL,任何UnixODBC数据库,MicrosoftMsSQL,还有Oracle等数据库。
⑤使用TCP流插件(TCPSTREAM),Snort可以对TCP包进行重组。
Snort能够对IP包的内容进行匹配,但是对于TCP攻击,如果攻击者使用一个程序,每次发送只有一个字节的数据包,完全可以避开Snort的模式匹配。
而被攻击的主机的TCP西医栈会重组这些数据,将其发送给目标端口上监听的进程,从而使攻击包逃过Snort的监视。
使用TCP流插件,可以对TCP包进行缓冲,然后进行匹配,使Snort具备对付上面攻击的能力。
⑥使用Spade(StatisticalPacketAnomalyDetectionEngine)插件,Snort能够报告非正常的可以包,从而对端口扫描进行有效的检测。
⑦Snort还有很强的系统防护能力。
如:
是用其IPTables,IPFilter插件可以使入侵检测主机与防火墙联动,通过FlexResp功能,Snort能够命令防火墙主动短开恶意连接。
⑧扩展性能较好,对于新的攻击威胁反应迅速。
作为一个轻量级的网络入侵检测系统,Snort有足够的扩展能力。
它使用一种简单的规则描述语言(很多商用入侵检测系统都兼容Snort的规则语言)。
最基本的规则知识包含四个域:
处理动作,协议,方向,端口。
例如LogTcpAnyany->10.1.1.0/2480(谁都看得明白)
⑨Snort支持插件,可以使用具有特定功能的报告,检测子系统插件对其功能进行扩展。
Snort当前支持的插件包括:
数据库日志输出插件,破碎数据包检测插件,断口扫描检测插件,HTTPURI插件,XML网页生成等插件。
⑩Snort的规则语言非常简单,能够对新的网络攻击做出很快的反应。
发现新攻击后,可以很快地根据Bugtrag邮件列表,找到特征码,写出新的规则文件。
(2)Snort的工作模式
Snort有三种工作模式:
嗅探器、数据包记录器、网络入侵检测系统。
嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。
数据包记录器模式把数据包记录到硬盘上。
网路入侵检测模式是最复杂的,而且是可配置的。
我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。
(3)Snort系统工作原理
Snort作为一个基于网络的入侵检测系统(NIDS),在基于共享网络上检测原始的网络传输数据,通过分析捕获的数据包,匹配入侵行为的特征或者从网络活动的角度检测异常行为,进而采取入侵的告警或记录。
从检测模式而言,Snort属于是误用检测,即对已知攻击的特征模式进行匹配。
从本质上来说,Snort是基于规则检测的入侵检测工具,即针对每一种入侵行为,都提炼出它的特征值并按照规范写成检验规则,从而形成一个规则数据库。
其次将捕获得数据包按照规则库逐一匹配,若匹配成功,则认为该入侵行为成立。
入侵行为主要是指对系统资源的非授权使用,可以造成系统数据的丢失和破坏、系统拒绝服务等危害。
对于入侵检测而言的网络攻击可以分为4类:
①检查单IP包(包括TCP、UDP)首部即可发觉的攻击,如winnuke、pingofdeath、land.c、部分OSdetection、sourcerouting等。
②检查单IP包,但同时要检查数据段信息才能发觉的攻击,如利用CGI漏洞,缓存溢出攻击等。
③通过检测发生频率才能发觉的攻击,如端口扫描、SYNFlood、smurf攻击等。
④利用分片进行的攻击,如teadrop,nestea,jolt等。
此类攻击利用了分片组装算法的种种漏洞。
若要检查此类攻击,必须提前(在IP层接受或转发时,而不是在向上层发送时)作组装尝试。
分片不仅可用来攻击,还可用来逃避未对分片进行组装尝试的入侵检测系统的检测。
入侵检测通过对计算机网络或计算机系统中的若干关键点收集信息并进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。
进行入侵检测的软件与硬件的组合就是入侵检测系统。
入侵检测系统执行的主要任务包括:
监视、分析用户及系统活动;审计系统构造和弱点;识别、反映已知进攻的活动模式,向相关人士报警;统计分析异常行为模式;评估重要系统和数据文件的完整性;审计、跟踪管理操作系统,识别用户违反安全策略的行为。
入侵检测一般分为3个步骤,依次为信息收集、数据分析、响应(被动响应和主动响应)。
信息收集的内容包括系统、网络、数据及用户活动的状态和行为。
入侵检测利用的信息一般来自系统日志、目录以及文件中的异常改变、程序执行中的异常行为及物理形式的入侵信息4个方面。
数据分析是入侵检测的核心。
它首先构建分析器,把收集到的信息经过预处理,建立一个行为分析引擎或模型,然后向模型中植入时间数据,在知识库中保存植入数据的模型。
数据分析一般通过模式匹配、统计分析和完整性分析3种手段进行。
前两种方法用于实时入侵检测,而完整性分析则用于事后分析。
可用5种统计模型进行数据分析:
操作模型、方差、多元模型、马尔柯夫过程模型、时间序列分析。
统计分析的最大优点是可以学习用户的使用习惯。
入侵检测系统在发现入侵后会及时作出响应,包括切断网络连接、记录事件和报警等。
响应一般分为主动响应(阻止攻击或影响进而改变攻击的进程)和被动响应(报告和记录所检测出的问题)两种类型。
主动响应由用户驱动或系统本身自动执行,可对入侵者采取行动(如断开连接)、修正系统环境或收集有用信息;被动响应则包括告警和通知、简单网络管理协议(SNMP)陷阱和插件等。
另外,还可以按策略配置响应,可分别采取立即、紧急、适时、本地的长期和全局的长期等行动。
(4)Snort规则
Snort是基于规则的模式匹配的,这种体系结构非常灵活,用户可以到http:
//www.snort.org/dl/signatures/下载最新的规则,在snort.org上几乎每几天就会有新的规则被更新,同时用户也可以自己书写新的规则,Snort规则文件是一个ASCII文本文件,可以用常用的文本编辑器对其进行编辑。
规则文件的内容由以下几部分组成:
●变量定义:
在这里定义的变量可以在创建Snort规则时使用。
●Snort规则:
在入侵检测时起作用的规则,这些规则应包括了总体的入侵检测策略。
●预处理器:
即插件,用来扩展Snort的功能。
如用portscan来检测端口扫描。
●包含文件IncludeFiles:
可以包括其它Snort规则文件。
●输出模块:
Snort管理员通过它来指定记录日志和警告的输出。
当Snort调用告警及日志子系统时会执行输出模块。
规则具体的书写不再做说明,如果想想进行更进一步了解可以到snort.org的文档中心去下载snort的官方文档《SnortUsersManual》中的WritingSnortRules章节(其链接是http:
//www.snort.org/docs/writing_rules/chap2.html#tth_chAp2)。
(5)snort的体系结构
图Bsnort的体系结构
总之,对于世界上各安全组织来讲,Snort入侵检测都是一个优秀入侵检测系统的一个标准的标准。
通过研究它,我们可以学到到所有入侵检测系统的内部框架及工作流程(也包括同类型的商业入侵检测系统的框架及工作流程)。
Snort系统是一个以开放源代码的形式发行的网络入侵检测系统,由MartinRoesch编写,并由遍布在世界各地的众多程序员共同维护和升级。
Snort运行在Libpcap库函数的基础之上,系统代码遵循GNU/GPL协议。
它是一个轻量级的网络入侵检测系统。
这里所谓的轻量级是指在检测时尽可能低地影响网络的正常操作,一个优秀的轻量级的网络入侵检测系统应该具备跨系统平台操作,对系统影响最小等特征,并且管理员能够在短时间内通过修改配置进行实时的安全响应,更为重要的是能够成为整体安全结构的重要成员。
Snort作为网络入侵检测系统中的典型范例,首先它可以运行在多种操作系统平台之上,例如UNIX系列和Windows(需要1ibpcapforwin32--Winpcap的支持),与很多商业产品相比,它对操作系统的依赖性比较低。
其次用户可以根据自己的需要及时在短时间内调整检测策略。
就检测攻击的种类来说,Snort检测规则包括对缓冲区溢出,端口扫描和CGI攻击等等。
另外,Snort还可以作为数据包嗅探器和数据包记录器使用。
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能够报告非正常的可疑包,从而对端口扫描进行有效的检测。
三、课程设计任务
1、Windows环境下安装和配置snort
(1)安装Snort和Wincap包
1)Snort的安装:
图1snort安装协议
图2snort的安装选项
图3snort的安装组件
图4snort的安装路径
图5Snort安装成功
2)Winpcap的安装:
图6Winpcap的安装界面
图7Winpcap安装过程
图8Winpcap安装成功
2.AppServ
(1)AppServ的安装:
图9AppServ安装初始界面
图10AppServ安装协议图
图11AppServ安装路径图
启动AppServ安装文件后,出现如图所示的设置服务器信息界面:
在ServerName中输入域名localhost;
Administrator'sEmailAddress中输入邮箱地址:
694046703@;
监听端口设为8080,如下图:
图12设置服务器信息界面
点击next,进入下一界面:
在出现的界面中输入密码(lwh),如下图:
图13安装MySQLServerCollations
然后单击"Install",进入安装过程,如下图:
图14AppServer的安装过程图
图15AppServer完成安装
安装完成后将C:
\Appserv\php5目录下的php.ini-dist文件改名为php.Ini,如下图:
修改前修改后
图16修改前、后比较
并启动Apache和MySql如下:
(控制面板—管理—服务确保Apache和MySql已启动)
安装完成后可以查看(MySQL启动如下图)
图17MySQL成功启动
在浏览器中输入http:
//localhost:
8080出现如下界面:
界面1表示安装成功!
(2)测试AppServ
首先查看"控制面板"/"管理"/"服务",确保Apache和MySQL已经启动如下:
然后,在浏览器中输入http:
//localhost:
8080/phpinfo.php出现如下界面:
界面2Apache2.2安装成功
通过此界面可以了解php的一些信息。
最后打开浏览器,输入http:
//localhost:
8080/phpMyAdmin/index.php,输入用户名root和密码
可以浏览数据库内容
图18登陆界面
图19信息查看界面
(3)配置AppServ
第一步,编辑Apache服务器配置文件。
打开Apache2.2\conf文件中的httpd.conf,检查相应的一些值。
图20编辑配置文件
图21查看httpd.conf相应值
第二步,编辑phpMyAdmin中的关键文件。
图22编辑phpMyAdmin中的关键文件
打开C:
\AppServ\www\phpMyAdmin\libraries目录下的config.default.php文件,并修改相关信息如下所示:
1 搜索cfg['PmaAbsoluteUri'],设置phpMyAdmin的URL,cfg['PmaAbsoluteUri']='http:
//localhost:
8080/phpmyadmin/'
2 搜索cfg['blowfish_secret'],设定好root密码后,这里也要填写,如root的密码lwh,则设置cfg['blowfish_secret)']=‘lwh’。
3 搜索cfg['DefaultLang'],将其设置为zh-gb2312;
4 搜索$cfg['Servers'][$i]['auth_type'],默认的config是不安全的,推荐使用cook-ie,将其设置为cfg['Servers']['i']['auth_type']='cookie'。
5 搜索cfg['DefaultCharset'],将其设置为gb2312。
第三步,为安全起见,还必须删除Mysql安装后默认的any@%、any@localhost和root@%帐号。
图23删除默认账号
图24成功删除
deletefromdbwhereuser=''andhost='%';#MySQL返回的查询结果为空(即零行)。
deletefromtables_privwhereuser=''andhost='%';#MySQL返回的查询结果为空(即零行)。
deletefromcolumns_privwhereuser=''andhost='%';#MySQL返回的查询结果为空(即零行)。
deletefromuserwhereuser=''andhost='localhost';#MySQL返回的查询结果为空(即零行)。
deletefromdbwhereuser=''andhost='localhost';#MySQL返回的查询结果为空(即零行)。
deletefromtables_privwhereuser=''andhost='localhost';#MySQL返回的查询结果为空(即零行)。
deletefromcolumns_privwhereuser=''andhost='localhost';#MySQL返回的查询结果为空(即零行)。
delete
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 入侵检测课程设计 柳文会 81010124 入侵 检测 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)