您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 网络安全实验-入侵检测
网络安全实验北京邮电大学信息安全中心武斌实验目标了解Snort的基本原理和关键技术配置Windows下Snort并运行,对入侵行为进行检测。•Snort是由Sourcefire开发的一个开源的网络入侵检测系统。用C语言编写的开放源代码软件。它是一个跨平台、轻量级的网络入侵检测软件。它结合了协议、特征和基于异常的检测,是目前使用最多的IDS/IPS系统。•Snort主要优点:基于libpcap库调用的网络数据包嗅探和日志记录分析的应用工具,代码开源、功能模块标准化,插件模式使用灵活,运行时相比其他IDS占用资源少、支持多种硬件平台,并能运行在几乎所有的操作系统平台上。“Snort”是什么Snort的主要功能截取网络数据报文,进行网络数据实时分析、报警、以及日志的能力。Snort还能够记录网络数据,其日志文件可以是tcpdump格式,也可以是解码的ASCII格式。Snort具有实时报警能力。可以将报警信息写到syslog、指定的文件、套接字或者使用WinPopup消息。Snort的主要功能(contd.)能够进行协议分析,内容搜索、匹配,能够用来检测各种攻击和探测,例如:缓冲区溢出、隐秘端口扫描、CGI攻击、SMB探测、OS指纹特征检测等等。Snort使用一种灵活的规则语言来描述网络数据报文,因此,可以对新的攻击作出快速地解析。SnortWorkingArchitecturePreprocessorOutputmoduleAlertLogPassActiveRuleSnort因特网包解析日志和报警系统检测引擎预处理器插件输出模块输出警告或计入文件Snort支持灵活的插件模式预处理插件检测引擎规则插件报警输出插件在数据包匹配规则链前,完成重组分片数据包,探测数据包头中的一些明显的错误等功能,可以直接做出报警或其他处理对规则链进行遍历,若匹配规则,则被送入输出模块剥离出链路层、网络层、传输层的数据信息并填入snort自定义的包结构体中Snort的组成数据包捕获和解析子系统该子系统的功能为:捕获网络的传输数据,并按照TCP/IP协议的不同层次将数据包进行解析。Snort利用libpcap库函数进行数据采集,该库函数可以为应用程序提供直接从链路层捕获数据包的接口函数,并可以设置数据包的过滤器以来捕获指定的数据。网络数据采集和解析机制是整个NIDS实现的基础,其中最关键的是要保证高速和低丢包率,这不仅仅取决于软件的效率还同硬件的处理能力相关。对于解析机制来说,能够处理数据包的类型的多样性也同样非常重要,目前,snort可以处理以太网、令牌环以及SLIP等多种链路类型的包。检测引擎检测引擎是一个NIDS实现的核心,准确性和快速性是衡量其性能的重要指标。准确性主要取决于对入侵行为特征码的提炼的精确性和规则撰写的简洁实用性。由于网络入侵检测系统自身角色的被动性,只能被动的检测流经本网络的数据,而不能主动发送数据包去探测,所以只有将入侵行为的特征码归结为协议的不同字段的特征值,通过检测该特征值来决定入侵行为是否发生。快速性主要取决于引擎的组织结构,是否能够快速地进行规则匹配。预处理程序预处理程序从Snort版本1.5开始引入,其代码在检测引擎被调用之前先被运行,为检测做铺垫,从而提高检测的准确性和速度。而且预处理机制采用插件形式,用户和程序员能够将模块化的插件方便地融入Snort之中。目前snort现有的预处理程序模块有以下三种:MinfragHTTPDecodePortscanDetectorMinfragMinfrag预处理程序检查给定尺寸限制的分片数据包。数据包被分片通常是由源和目的主机之间的路由器引起的。一般说来,商业网络设备不会产生小于512字节的分片包。可以利用这个事实,来监控含有小分片的流量。HTTPDecodeHTTPDecode用于处理HTTPURL字符串,将串中的数据转化为可读的ASCII字串,用于检测HTTP的数据信息,对付隐蔽的WebURL扫描器和恶意的入侵者。PortscanDetectorSnortPortscan向标准记录设备中记录从一个源IP地址来的端口扫描的开始和结束。如果指定了一个记录文件,在记录扫描类型的同时也记录目的IP地址和端口。端口扫描定义为在时间T(秒)之内向超过P个端口进行TCP连接尝试,或者在时间T(秒)之内向超过P个端口发送UDP数据包。端口扫描可以是对任一IP地址的多个端口,也可以是对多个IP地址的同一端口进行。端口扫描也包括单一的秘密扫描(stealthscan)数据包,比如NULL、FIN、SYNFIN、XMAS等。如果包括秘密扫描的话,端口扫描模块会对每一个扫描数据包告警。日志及报警子系统入侵检测系统的输出结果系统的必要特征是实时性和多样性,一个好的NIDS,更应该提供友好的输出界面或发声报警等等。实时性指能够在检测到入侵行为的同时及时记录和报警;多样性是指能够根据需求选择多种方式进行记录和报警。Snort提供的日志方式Snort是一个轻量级的NIDS,它的另外一个重要功能就是数据包记录器,所以该子系统主要提供了以下几种方式:1.fastmodel:采取TCPDUMP的格式记录信息2.readablemodel:按照协议格式记录,易于用户查看。3.alerttosyslog:向syslog发送报警信息。4.alerttotextfile:以明文形式记录报警信息。值得提出的是,snort考虑到用户需要高性能的时候,即网络数据流量非常大,可以将数据包信息进行压缩从而实时快速的报警。输出模块控制日志和告警系统产生的输出信息的格式。根据配置,输出模块可以做下列事情:简单地在/var/log/snort/alerts文件或其他文件中记录日志发送SNMPtrap将日志记录到类似于MySQL或Oracle的数据库中产生XML输出修改路由其或者防火墙的配置向Windows主机发送SMB消息Snort的部署防火墙路由器外网Snort主机主机1主机2主机nSnort系统监控图Sniffermode:包嗅探模式,此模式下snort从网卡抓包,并实时显示在控制台。Packetloggermode:包记录模式,此模型下snort从网卡抓包,并记录。NetworkIntrusionDetectionmode(NIDS):入侵检测模式,分析数据包并与入侵规则库相匹配来发现入侵行为。Snort的工作模式Snort的规则Rulesaresimilaraspacket-filterexpressionsSnorthas4ruleactionsactivate-alertandthenturnonanotherdynamicruledynamic-remainidleuntilactivatedbyanactivaterule,thenactasalogrulealert-generateanalertusingtheselectedalertmethod,andthenlogthepacketpass-ignorethepacketlog-logthepacket一个小实例运行snort2.9.0.3包嗅探模式于Ubuntu10.04命令行参数-v:进入嗅探模式,显示IP和TCP/UDP/ICMP包头信息-vd:除上之外,显示更为详细的应用层数据-vde:除上之外,显示更为详细的链路层数据抓到的UDP包的链路层、IP、应用层数据信息Snort-c/etc/snort/snort.conf-l/var/log/snort-Afast-ieth1Snort命令行入侵检测模式下运行snort的一个典型命令行如下:-c:指定snort运行入侵检测模式时所需的配置文件snort.conf的路径-l:指定数据包log日志文件的路径-A:指定snort输出报警信息的方式,“fast”表示快速输出模式,报警信息包含的内容简单-i:指定抓取数据包的网卡Snort主要由配置文件snort.conf和命令行参数控制运行时的各项选项。命令行参数的优先级高于配置文件中的设置。目前snort2.9.0.4支持的预处理插件有:frag3、stream5、perfmonitor、http_inspect、ONC-RPC、bo、FTP/TELNET、SMTP、sfportscan、arpspoof、ssh、dcerpc2、dns、ssl、sensitive_data举例:http_inspect:完成url地址规格化、检测数据包大小、是否分片等功能;frag3:对分片的数据包进行重组;Stream5:对数据包进行基于会话状态的检测。关于各个预处理器的详细参数配置见snort.conf和各预处理的readme文件Snort预处理插件preprocessorSnort规则alerttcp$EXTERNAL_NETany-$HOME_NETany(msg:POLICYVNCserverresponse;flow:established;content:RFB0;depth:5;content:.0;depth:2;offset:7;classtype:misc-activity;sid:560;rev:6;)03/25-09:26:23.607928[**][1:560:6]POLICYVNCserverresponse[**][Classification:Miscactivity][Priority:3]{TCP}192.168.0.119:49515-192.168.0.120:5900•msg:报警信息字符串•flow:与数据流和数据流向有关的检测选项,“established”表示已建立的TCP流,其他值还有“to_server”,“to_client”等•content:数据包荷载部分匹配的字符串•depth:content选项修饰符,从搜索位置的起始区域开始搜索的最大深度•offset:content选项修饰符,从数据包荷载处往后一定字节数,然后再开始搜索•classtype:规则分类,见classification.config•Sid:每条规则在所属规则分类下的唯一编号,见sid-msg.map•rev:规则版本号此规则对应的报警信息:报警信息中包含有时间戳、gen、sid、rev、msg、classification、priority、协议类型、源地址、源端口、目的地址、目的端口Snort输出插件目前snort2.9.0.4支持的输出插件有:unified2、syslog、pcap、database、prelude举例:•unified2:统一格式输出模块,将日志和报警信息以unified自己的二进制格式输出,可提高snort的工作效率。Unified2可与Barnyard输出工具一起使用。•database:输出到数据库。可在snort.conf中如下设置为:•syslog:输出到系统日志outputdatabase:log,mysql,user=snortpassword=snortdbdbname=snorthost=localhost基于MS08-067的蠕虫和攻击工具的攻击实验目标主机B安装snort,监测本机流量IP:192.168.0.7攻击主机AIP:192.168.0.6进行MS08-067攻击工具攻击攻击主机CIP:192.168.0.4已感染conficker蠕虫实验拓扑图实验在局域网环境下,三台主机均为windowsxpsp3,测试环境中Snort版本为2.9.0.4,采用官网上更新于2011年3月8日的规则库。测试中攻击使用针对windows下MS08-067漏洞的漏洞利用攻击工具和蠕虫。漏洞利用攻击工具的攻击成功的效果是被攻击主机的4444端口被打开,可以远程连接到被攻击主机。蠕虫为conficker蠕虫。基于MS08-067的蠕虫和攻击工具的攻击实验实验二:(1)关闭攻击主机A,恢复目标主机B到实验一前的状态,运行B上的
本文标题:网络安全实验-入侵检测
链接地址:https://www.777doc.com/doc-6108766 .html