实验五:入侵检测技术一、实验目的通过实验深入理解入侵检测系统的原理和工作方式,熟悉入侵检测系统的配置和使用。实验具体要求如下:1.理解入侵检测的作用和原理2.理解误用检测和异常检测的区别3.掌握Snort的安装、配置和使用等实用技术二、实验原理1、入侵检测概念及其功能入侵检测是指对入侵行为的发现、报警和响应,它通过对计算机网络或计算机系统中的若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。入侵检测系统(intrusiondetectionsystem,IDS)是完成入侵检测功能的软件和硬件的集合。入侵检测的功能主要体现在以下几个方面:1).监视并分析用户和系统的活动。2).核查系统配置和漏洞。3).识别已知的攻击行为并报警。4).统计分析异常行为。5).评估系统关键资源和数据文件的完整性。6).操作系统的审计跟踪管理,并识别违反安全策略的用户行为。2、入侵检测的分类根据IDS检测对象和工作方式的不同,可以将IDS分为基于网络的IDS(简称NIDS)和基于主机的IDS(简称HIDS)。NIDS和HIDS互为补充,两者的结合使用使得IDS有了更强的检测能力。1).基于主机的入侵检测系统。HIDS历史最久,最早用于审计用户的活动,比如用户登录、命令操作、应用程序使用资源情况等。HIDS主要使用主机的审计记录和日志文件作为输入,某些HIDS也会主动与主机系统进行交互以获得不存在于系统日志的信息。HIDS所收集的信息集中在系统调用和应用层审计上,试图从日志寻找滥用和入侵事件的线索。HIDS用于保护单台主机不受网络攻击行为的侵害,需要安装在保护的主机上。2).基于网络的入侵检测系统。NIDS是在网络中的某一点被动地监听网络上传输的原始流量,并通过协议分析、特征、统计分析等分析手段发现当前发生的攻击行为。NIDS通过对流量分析提取牲模式,再与已知攻击牲相匹配或与正常网络行为原形相比较来识别攻击事件。3、入侵检测系统1).入侵检测系统的特点:入侵检测系统(IntrusionDetectionSystem)是对防火墙有益的补充,它对网络和主机行为进行检测,提供对内部攻击、外部攻击和误操作的实时监控,增强了网络的安全性。在安全防范方面,入侵检测系统可以实现事前警告、事中防护和事后取证。入侵检测系统能够在入侵攻击行为对网络系统造成危害前,及时检测到入侵攻击的发生,并进行报警;入侵攻击发生时,入侵检测系统可以通过与防火墙联动等方式进行报警及动态防护;被入侵攻击后,入侵检测系统可以提供详细的攻击信息日志,便于取证分析。相对于防火墙提供的静态防护而言,入侵检测系统侧重于提供动态实时检测防护,因此防火墙和入侵检测系统的结合,能够给网络带来更全面的防护。2).入侵检测系统的实现原理:入侵检测系统的实现技术可以简单地分为两大类:基于特征的检测和基于异常的检测。基于特征的检测技术主要包括模式匹配和协议分析两种主要检测方法。模式匹配就是将已知入侵事件悼念到网络入侵和系统误用知识库中,对入侵检测系统悼念的信息和知识库中的规则进行比较,以发现入侵行为。协议分析技术则对数据包进行协议解析后进行分析。这种技术需要首先捕捉数据包,然后对数据包进行解析,包括网络协议分析和命令解析,即使在高负载的调整网络上,也能逐个分析所有的数据包。基于牲的检测技术只需收集相关的数据,和所维护的知识库规则比较就能进行判断,检测准确率和效率较高。但是,该技术需要不断进行知识库规则的升级以对付不断出现的新攻击手法,而且,它不能检测未知攻击手段。3).入侵检测系统的部署原则:NIDS总的来说包括探测器和控制台两大部分。探测器是专用的硬件设备,负责网络数据流的捕获、分析检测和报警等功能。控制台是管理探测器的工具,它负责接收探测器的检测日志数据,并提供数据查询和报告生成等功能,一个控制台可以管理多个探测器。HIDS安装在被保护的机器上,在主机系统的审计日志或操作中查找信息源进行智能分析和判断,例如操作系统日志、系统进程、文件访问和注册表访问等信息。由于HIDS安装在需要保护的主机系统上,这将影响应用系统的运行效率。HIDS对主机系统固有的日志与监视能力有很高的依赖性,它一般针对其所在的系统进行检测。4/Snort简介及使用原理:1).Snort是一款免费的NIDS,具有小巧灵便、易于配置、检测效率高等特性,常被称为轻量级的IDS。Snort具有实时数据流量分析和IP数据包日志分析能力,具有跨平台特征,能够进行协议分析和对内容的搜索或匹配。Snort能够检测不同的攻击行为,如缓冲区溢出、端口扫描和拒绝服务攻击等,并进行实时报警。Snort可以根据用户事先定义的一些规则分析网络数据流,并根据检测结果采取一定的行动。Snort有3种工作模式,即嗅探器、数据包记录器和NIDS。嗅探器模式仅从网络上读取数据包并作为连续不断的数据流显示在终端上;数据包记录器模式把数据包记录到硬盘上,以备分析之用;NIDS模式功能强大,可以通过配置实现。2).Snort的结构由四大软件模块组成:(1)数据包嗅探模块。负责监听网络数据包,对网络进行分析。(2)预处理模块。该模块用相应的插件来检查原始数据包,从中发现原始数据的行为。(3)检测模块。该模块是Snort的核心模块。当数据包从预处理器送过来后,检测引擎依据预先设置的规则检查数据包,一旦发现数据包中的内容和某条规则相匹配,就通知报警模块。(4)报警/日志模块。经检测引擎检查后的Snort数据需要以某种方式输出。如果检测引擎中的某条规则被匹配,则会触发一条报警。3).Snort规则。Snort的每条规则逻辑上都可以分成规则头部和规则选项。规则头部包括规则行为、协议、源或目的IP地址、子网掩码、源端口和目的端口;规则选项包含报警信息和异常包的信息(特征码),基于特征码决定是否采取规则规定的行动。对于每条规则来说,规则选项不是必需的,只是为了更加详细地定义应该收集或者报警的数据包。只有匹配所有选项的数据包,Snort都会执行其规则行为。如果许多选项组合在一起,它们之间是“逻辑与“的关系。三、实验步骤实验内容一:Windows平台下Snort的安装与配置由于需要对网络底层进行操作,安装Snort前需要预先安装WinpCap(WIN32平台上网络分析和捕获数据包的链接库)。1.下载Windows平台下的Snort安装程序,选择安装目录为c:\Snort。进行到选择日志文件存放方式时,为简单起见,选择不需要数据库支持或者Snort默认的MySQL和ODBC数据库支持的方式。(即选择Idonotplantologtoadatabase,orIamplanningtologtooneofthedatabaseslistedabove.)2.单击“开始”菜单,选择“运行”命令,输入cmd并按Enter键,在命令行方式下输入如下命令c:\cdc:\Snort\bin,然后输入c:\Snort\binsnort-W。如果Snort安装成功,系统将显示如下图所示信息。3.从返回的结果可知主机上有哪个物理网卡正在工作及该网卡的详细信息。其中第五个是具有物理地址的网卡。输入snort-v–i3命令启用Snort。其中,-v表示使用Verbose模式,把信息包打印在屏幕上;-i3表示监听第五个网卡。如下图所示:4.为了进一步查看Snort的运行状况,可以人为制造一些ICMP网络流量。在局域网段中的另一台主机上使用Ping指令,探测运行Snort的主机。5.回到运行Snort的主机,发现Snort已经记录了这次探测的数据包,Snort在屏幕上输出了局域网中另一台主机到本主机的ICMP数据包头。6.打开c:\Snort\etc\snort.conf(先用下载的snort.conf代替原来的snort.conf),设置Snort的内部和外部网络检测范围。将Snort.conf文件中的varHOME_NETany语句中的Any改为自己所在的子网地址,即将Snort监测的内部网络设置为本机所在的局域网。如本地IP为192.168.1.100,则将Any改为192.168.1.0/24。将varHOME_NETany语句中的HOME_NET的值改为本地网络的标识,即192.168.1.0/247.配置网段内提供网络服务的IP地址,只需要把默认的$HOME_NET改成对应主机地址即可:varDNS_SERVERS$HOME_NET;varSMTP_SERVERS$HOME_NET;varHTTP_SERVERS$HOME_NET;varSQL_SERVERS$HOME_NET;varTELNET_SERVERS$HOME_NET;varSNMP_SERVERS$HOME_NET如果不需要监视某种类型的服务,可用#号将上述语句其注释掉。8.修改设置监测包含的规则。在配置文件末尾,定义了与规则相关的配置,格式如下:include$RULE_PATH/local.rules;include$RULE_PATH/bad-traffic.rules;include$RULE_PATH/exploit.rules。其中变量$RULE_PATH指明了规则文件存放的路径,可以在语句varRULE_PATH../rules中将变量RULE_PATH改为存放规则集的目录,如:c:\snort\rules。9.在Snort.conf文件中,修改配置文件Classification.conf和Reference.conf的路径:includec:\Snort\etc\classification.conf;includec:\Snort\etc\reference.config。其中,Classification.conf文件保存的是和规则的警报级别相关的配置,Reference.conf文件保存了提供更多警报相关信息的链接。实验内容二:Windows平台下Snort的使用1.Snort嗅探器模式。检测Snort安装是否成功时,用到的就是Snort嗅探器模式。输入命令如下:snort-v–i3使Snort只将IP和TCP/UDP/ICMP的包头信息输出到屏幕上。如果要看到应用层的数据,可以输入如下命令:snort-v-d–i3。如果需要输出更详细的信息,输入命令:snort-v-d-e–i3可以显示数据链路层的信息。2.数据包记录器模式。上面的命令只是在屏幕上输出,如果要记录在LOG文件上,需要预先建立一个Log目录。输入下面的命令启用数据包记录器模式:snort-dve–i3-lc:\Snort\log-h192.168.1.0/24-Kascii。其中,-l选项指定了存放日志的文件夹;-h指定目标主机,这里检测对象是局域网段内的所有主机,如不指定-h,则默认检测本机;-K指定了记录的格式,默认是Tcpdump格式,此处使用ASCII码。3.网络IDS模式。Snort最重要的用途还是作为基于误用检测技术的NIDS。输入下面的命令启动IDS模式:snort–i3-dev-l./log-h192.168.1.0/24-Kascii-cc:\Snort/etc/snort.conf。相比数据包记录器模式中使用的命令,该命令只增加了一个选项-c,用于告诉Snort使用Snort.conf中的规则集文件。Snort会对每个包和规则集进行匹配,如符合规则就采取规则所指定的动作。4.下面将通过对运行了Snort的目标主机进行有意攻击,来观察Snort检测入侵的能力。首先,向目标主机发送ICMP长数据包来观测Snort的反映,ICMP长数据包是有潜在危险的,一般会被视为入侵;然后,使用网络端口扫描工具Nmap对目标主机进行扫描,观察Snort的检测情况。具体操作步骤如下:(1)在安装好Snort的目标主机命令行方式下,输入上面第3步的命令,使Snort工作在IDS模式。在局域网的另一台主机上向目标主机发送数据包,输入下面的命令:ping-l45678192.168.1.2(2)在目标主机中打