入侵检测实验报告
入侵检测实验报告
一、实验课题:snort策略配置分析
二、实验目的:熟悉snort的环境,掌握其使用方法,理解其策略配置过程。三、实验内容:
snrot使用一种简单的轻量级的规则描述语言来描述它的规则配置信息,它灵活而强大。Snort规则被分成两个逻辑部分:规则头和规则选项。规则头包含规则的动作,协议,源和目标ip地址与网络掩码,以及源和目标端口信息;规则选项部分包含报警消息内容和要检查的包的具体部分。下面是一个规则范例:
alerttcpanyany->192.168.1.0/24111(content:"|000186a5|";msg:"mountdaccess";)括号前的部分是规则头,括号内的部分是规则选项。规则选项部分中冒号前的单词称为选项关键字。注意:不是所有规则都必须包含规则选项部分,选项部分只是为了使对要收集或报警,或丢弃的包的定义更加严格。组成一个规则的所有元素对于指定的要采取的行动都必须是真的。当多个元素放在一起时,可以认为它们组成了一个逻辑与(AND)语句。同时,snort规则库文件中的不同规则可以认为组成了一个大的逻辑或(OR)语句。
在snort中有五种动作:alert,log和pass,activate和dynamic。1.Alert-使用选择的报警方法生成一个警报,然后记录(log)这个包2.Log-记录这个包
3.Pass-丢弃(忽略)这个包
4.报警然后打开另外一个dynamic规则
5.等待一个activate来激活,在被激活后,向log规则一样记录数据包规则的下一部分是协议。Snort当前分析可疑包的ip协议有三种:tcp,udp和icmp。将来可能会更多,例如arp,igrp,gre,ospf,rip,ipx等。IP地址:规则头的下一个部分处理一个给定规则的ip地址和端口号信息。关键字"any"可以被用来定义任何地址。Snort没有提供根据ip地址查询域名的机制。地址就是由直接的数字型ip地址和一个cidr块组成的。Cidr块指示作用在规则地址和需要检查的进入的任何包的网络掩码。/24表示c类网络,/16表示b类网络,/32表示一个特定的机器的地址。例如,192.168.1.0/24代表从192.168.1.1到192.168.1.255的地址块。在这个地址范围的任何地址都匹配使用这个192.168.1.0/24标志的规则。这种记法给我们提供了一个很好的方法来表示一个很大的地址空间。在“例一”中,源ip地址被设置为任何连接的计算机,而目标地址被设置为192.168.1.0上的c类网络。有一个操作符可以应用在ip地址上,它是否定运算符(negationoperator)。这个操作符告诉snort匹配除了列出的ip地址以外的所有ip地址。否定操作符用"!"表示。例如,使用否定操作符对“例一”做一个简单修改,使它对任何来自本地网络以外的流都进行报警,如:
alerttcp!192.168.1.0/24any->192.168.1.0/24111(content:"|000186
a5|";msg:"externalmountdaccess";)
这个规则的ip地址代表“任何源ip地址不是来自内部网络而目标地址是内部网络的tcp包”端口号:
端口号可以用几种方法表示,包括"any"端口,静态端口定义,范围,以及通过否定操作符定义。"any"端口是一个通配符,表示任何端口。静态端口定义表示一个单个端口号,例如:111表示portmapper,23表示telnet,80表示http等等。端口范围用范围操作符“:”表示。范围操作符可以有几种使用方法,如:
logudpanyany->192.168.1.0/241:1024
记录来自任何端口的,目标端口范围在1到1024的udp数据流logtcpanyany->192.168.1.0/24:6000
记录来自任何端口,目标端口小于等于6000的tcp流logtcpany:1024->192.168.1.0/24500:
记录来自任何小于等于1024的特权端口,目标端口大于等于500的tcp流
规则选项组成了snort入侵检测引擎的核心,既易用又强大还灵活。所有的snort规则选项用分号“;”隔开。规则选项关键字和它们的参数用冒号“:”分开。按照这种写法,snort中有一下一些规则选项关键字。1、msg-在报警和包日志中打印一个消息
2、logto-把包记录到用户指定的文件中而不是记录到标准输出3、ttl-检查ip头的ttl的值4、tos-检查ip头的tos域的值5、id-检查ip头的分片id值6、ipoption-检查ip头的option域7、fragbits-检查ip头的分片标志位8、dsize-检查包的数据部分大小
9、content-在包的数据部分中搜索指定的样式
10、offset-content选项的修饰符,设定开始搜索的位置11、depth-content选项的修饰符,设定搜索的最大深度12、nocase-指定对content字符串大小写不敏感13、content-list在数据包中搜索多种可能匹配14、flags-检查tcpflags的值15、seq-检查tcp顺序号的值16、ack-检查tcp应答(acknowledgement)的值17、itype-检查icmptype的值18、icode-检查icmpcode的值
19、session-记录指定会话的应用层信息的内容20、icmp_id-检查ICMPECHOID的值
21、icmp_seq-检查ICMPECHO顺序号的值22、ipoption-监视IPoption的特定代码23、rpc-监视特定应用/进程调用的RPC服务24、resp-主动反应(切断连接等)25、reference-外部参考id26、sid-snort的规则id27、rev-规则的修正号
28、classtype-规则的分类号29、priority-规则的优先级
30、uricontent-在数据包的URI部分搜索指定的匹配31、tag-高级记录动作
32、ip_proto-ip头的协议值
33、sameip-源地址和目标地址相同34、stateless-无状态连接35、regex-通配符模式匹配例如:dsize:
选项用于检查包的数据区的大小。它可以设置成任意值,可以使用大于/小于符号来指定范围。例如,如果你知道某个特定的服务有一个特定大小的缓冲区,你可以设定这个选项来监视缓冲区溢出的企图。它在检查缓冲区溢出时比检查数据区内容的方法要快得多。格式:dsize:[>|192.168.1.0/24143(content:"|90C8C0FFFFFF|/bin/sh";
msg:"IMAPbufferoverflow!";)
在snort配置文件中可以指定多个输出插件。如果对同一种类型(报警、日志)指定了几个输出插件,那么当事件发生时,snort就会顺序调用这些插件。使用标准日志和报警系统,默认情况下,输出模块就会将数据发送到/var/log/snort目录,或者用户使用-l命令行开关指定的目录。在规则文件中,输出模块使用output关键词指定:格式:outputname:
outputalert_syslog:LOG_AUTHLOG_ALERT
可用的输出模块:alert_syslog:
使用这个输出模块,snort把报警信息发送到syslog,与-s命令行开关非常类似。这个输出模块允许用户在规则文件中指定loggingfacility和优先级,给用户以更大的灵活性。
数据库输出模块:
snort的数据库输出模块是JedPickel开发的,用来将snort产生的数据送到各种SQL数据库系统。如果要获得安装和配置这个模块更为详尽的信息,可以参考ncident.orgwebpage。这个插件使用的参数是记录snort日志的数据库名和参数表。参数表使用这种格式:parameter=argument。有如下参数可以使用:
1).host:数据库所在的主机。如果指定了一个非零字符串,snort就使用TCP/IP协议连接以此命名的主机。如果没有主机名,snort就使用一个本地UNIX-domain套接字连接本地主机。2).port:数据库所在服务器的端口号,或者一个UNIX-domain套接字文件。3).dbname:数据库名字。4).user:数据库用户名。5).passwd:密码。
6).sensor_name:指定这个snort触发器的名字,如果没有指定就自动产生。
7).encoding:因为数据包的负载和选项都是二进制数据,所以没有一种简单和可移植的方式将snort的数据保存在数据库。所以在snort数据库输出插件中提供了一些选项,让你自己决定使用那种编码。下面是这几种编码的优点和缺点:
hex:默认编码选项,使用16进制字符串代表二进制数据。存储空间:两倍于二进制数据搜索性:极好可读性:极差
base64:使用base64字符串代表二进制数据。存储空间:大约是直接存储二进制数据的1.3倍搜索性:可能无须后续处理。可读性:不可读需要后续处理。
ascii::使用ASCII字符串代替二进制数据。非ASCII字符使用.
代替。如果你选择这个选项,那么IP和TCP包头的选项会仍然使用hex表示。
存储空间:比直接存储二进制数据稍大。
搜索性:非常便于二进制数据中搜索文本字符串。可读性:很好。
8).detail:设置你要保存多少细节数据,有如下选项:
full:保存引起报警的数据包的所有细节,包括IP/TCP包头和负载数据。fast:只记录少量的数据。如果选择这种记录方式,不利于以后对
数据的分析,但在某些情况下还有其用处。使用这种方式,将记录数据包的以下域:时间戳(timestamp)、签名(signature)、源地址、目的地址、源端口、目的端口、TCP标志和协议。
还需要定义日志方法和数据库类型。有两种日志方法:log和alert。如果使用log,snort就会调用log输出,将日志数据记录到数据库;如果设置为alert,snort就会调用alert输出,在数据库中记录报警信息。
当前版本中,snort可以使用四种数据库:MySQL、PostgreSQL、Oracle以及和unixODBC兼容的数据库。可以使用你喜欢的数据库。格式:database:,,示例:outputdatabase:log,mysql,dbname=snortuser=snorthost=localhostpassword=xyz
四、实验结论:
在开发高效、高速的snort规则时,有几个概念要铭记于心。
1.关键词content指定的内容是大小写敏感的,除非你使用nocase选项不要忘记content规则选项指定的内容是大小写敏感的,许多程序一般使用大写表示命令。FTP就是一个很好的例子。请比较下面两条规则:
alerttcpanyany->192.168.1.0/2421(content:"userroot";msg:"FTProotlogin";)
alerttcpanyany->192.168.1.0/2421(content:"USERroot";msg:"FTProotlogin";)
第二条规则可以使snort捕获大多数使用root用户名的自动登录企图,而在数据包中从来就没有小写的user。
2.提高snort对含有content规则选项的规则的检测速度
snort检测引擎对各个规则选项的测试顺序与其在各条规则中所处的位置无关。在各个规则选项中,检测引擎最后测试的总是content规则选项。因此,在开发规则时,要尽量使用快速的选项筛选掉根本不必对其内容进行检查的包。例如,如果实现了一个TCP会话过程,那么在会话过程的大部分时间内,双方传输的数据包的TCP标志ACK、PSH都被置位。而测试包头的TCP标志比对数据包的内容进行模式匹配需要的计算量要小的多。所以,在开发相关的检测规则时,需要设置flags规则选项对PSH和ACK没有置位的数据包进行过滤。而这样做,增加的额外计算量微乎其微。例如:alerttcpanyany->192.168.1.0/2480
(content:"cgi-bin/phf";flags:PA;msg:"CGI-PHFprobe";)
扩展阅读:入侵检测技术实验报告
甘肃政法学院
本科生实验报告
(一)
姓名:学院:计算机科学学院专业:计算机科学与技术
班级:实验课程名称:入侵检测技术实验日期:指导教师及职称:实验成绩:开课时间:201*学年第二学期
甘肃政法学院实验管理中心印制
实验题目局域网网络扫描入侵及安全评估实验小组合作学号否姓名班级一、实验目的:掌握网络端口扫描器的使用方法,熟悉常见端口和其对应的服务程序,掌握发现系统漏洞的方法。掌握综合扫描及安全评估工具的使用方法,了解进行简单系统漏洞入侵的方法,了解常见的网络和系统漏洞以及其安全防护方法。二、实验环境:安装有WINDOWSXP系统安装有superscan4、Fluxay5软件的计算机。三、实验内容与步骤:1、使用ipconfig/all命令测试本机的计算机名、IP地址、MAC地址:2、使用arp命令查看本机的arp表;(1)先使用arp命令查看本机的arp表;(2)通过网上邻居访问几个计算机后,再查看arp表,比较两次查看结果的区别。3、使用ping命令测试网络的连通性(1)ping本机的ip地址;(2)ping相邻计算机的ip地址;(3)ping网关地址;(4)ping两个网络域名二、使用PacketTacer进行网络连通练习1)拖动两台计算机PC0、PC1到PT界面,再拖动一台计算机2960到桌面;(2)使用直连线连接计算机和交换机;(3)将两台计算机IP地址分别设为192.168.1.10和192.168.1.20,子网掩码都设为255.255.255.128;(4)在PT上计算机的命令行模式使用ping命令查看网络是否连通。在PT上计算机的命令行模式使用ping命令两台电脑相通2)、建立包含两个子网的网络(1)在前面网络的基础上,再拖动两台计算机PC2、PC3到PT界面;(2)使用直连线连接计算机和交换机;(3)将两台计算机IP地址分别设为192.168.1.210和192.168.1.220,子网掩码都设为255.255.255.128;(4)在PT上计算机的命令行模式使用ping命令查看4台计算机之间网络是否连通,并分析测试结果。(5)自己试着改变各个计算机的IP地址,再进行测试。通过用ping命令,发现1和2相通,3和4相通,通过设置3和4的ip地址,再次使用ping命令,4台电脑都相通.三,利用Superscan进行网络端口扫描,利用流光进行综合扫描和安全评估,.常见的TCP端口如下:..常见的UDP端口如下:使用流光Fluxay5综合扫描工具并分析结果各部份功能:1:暴力破解的设置区域2:控制台输出3:扫描出来的典型漏洞列表4:扫描或者暴力破解成功的用户帐号5:扫描和暴力破解的速度控制6:扫描和暴力破解时的状态显示7:中止按钮8:探测记录查找选择“文件(F)”→“高级扫描向导(W)”可打开高级扫描向导,设置扫描参数。使用“高级扫描向导”配置高级扫描外,还可以在探测菜单中直接选取高级扫描工具设置:IPC是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。利用IPC$,连接者可以与目标主机建立一个空连接而无需用户名和密码,从而可以得到目标主机上的用户列表,并可能破解用户密码。1),开始---运行---REGEDIT,(2),找到HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\LanmanServer\\Paramaters并选中它(3),在右窗格的任意空白区域中单击鼠标右键,在弹出的快捷菜单中选择"新建"---"DWORD值"选项,命名为AutoShareWks,双击该键值,在弹出的"编辑DWORD值"对话框的"数值数据"文本框中输入1表示打开磁盘共享,单击"确定"按钮.(4),关闭注册表编辑器,重起电脑使设置生效.另外可用netshareipc$开启IPC$相关命令:1.建立和目标的ipc$连接命令:netuse\\\\目标IP\\ipc$“密码”/user:“ADMIN”(管理员账号),如:netuse\\\\192.168.27.128\\ipc$“”/user:"administrator"输入:netuse\\\\192.168.10.36\\ipc$“”/user:”administrator”2.映射网络驱动器命令(将目标主机的盘映射到本地磁盘):netuse本地盘符\\\\目标IP\\盘符$,如:netusez:\\\\192.168.27.128\\c$输入:netusem:\\\\192.168.27.23\\c$
四、实验过程与分析:这次实验是第一次接触使用PacketTacer进行网络连通行检查,如何建立局域网等操作。以及如何使用入侵检测的SuperScan端口扫描工具和流光Fluxay5等工具,经行端口扫描和安全评估,在老师同学的帮助下,完成了大部分实验内容。五、实验总结:这次实验是我掌握利用SuperScan端口扫描工具和流光Fluxay5综合扫描工具对于网络端口扫描器的使用方法,熟悉常见端口和其对应的服务程序,掌握发现系统漏洞的方法,以及综合扫描及安全评估工具的使用方法。六、指导教师评语及成绩:实验过程与结果完整,实验分析得当。教师签名
成绩批阅日期
友情提示:本文中关于《入侵检测实验报告》给出的范例仅供您参考拓展思维使用,入侵检测实验报告:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。