您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 第10章--Snort入侵检测系统
第10章Snort入侵检测系统入侵检测系统已经成为了安全市场上新的热点,不仅越来越多地受到人们的关注,而且已经开始在各种不同的环境中发挥着关键的作用。本章将介绍入侵检测的基本概念、Snort的安装与使用、Snort的配置、以及Snort规则的编写等内容。10.1入侵检测简介传统上,企业网络一般采用防火墙作为安全的第一道防线,但随着攻击工具与手法的日趋复杂多样,单纯的防火墙策略已经无法满足对网络安全的进一步需要,网络的防卫必须采用一种纵深的、多样化的手段。入侵检测系统是继防火墙之后,保护网络安全的第二道防线,它可以在网络受到攻击时,发出警报或者采取一定的干预措施,以保证网络的安全。本节主要介绍网络安全的基础知识、网络攻击的类型、入侵检测系统的组成与工作原理等内容。10.1.1网络安全网络安全是指提供网络服务的整个系统的硬件、软件、以及数据要受到保护,不会因为偶尔或恶意的原因而遭到破坏、更改、泄露或者中断服务,确保系统能连续、可靠、正常地运行。网络安全是一门涉及计算机科学、应用数学、信息论、密码技术、网络技术、通信技术、信息安全技术等多种学科的综合性学科。在不同的应用和环境下,网络安全会被赋予不同的内容。10.1.2常见的网络攻击类型防范网络攻击是保证网络安全的一项重要内容,黑客攻击网络的手法虽然五花八门,但也是有一定规律的。具体来说,黑客常用的攻击手法有以下几种类型。1.漏洞扫描2.密码破解3.DoS和DDoS攻击4.缓冲区溢出5.系统后门与木马程序10.1.3入侵检测系统入侵检测系统可以分为基于网络、基于主机以及分布式三类。图10-1所示的是典型的入侵检测系统的结构模型。10.2Snort的安装与使用Snort是Linux平台上最常用的遵循GNUGPL的入侵检测系统,同时它还是一个非常优秀的数据包抓取工具。本节将介绍Snort的功能特点,Snort软件的获取、安装与运行,Snort命令的格式、Snort作为抓包工具时的使用方法等内容。10.2.1Snort简介Snort是一种开放源代码、免费、跨平台的网络入侵保护和检测系统,它使用了一种规则驱动的语言,支持各种形式的插件、扩充和定制,具有实时数据流量分析、对IP网络数据包进行日志记录、以及对入侵进行探测的功能。虽然Snort的功能非常强大,但其代码非常简洁,可移植性非常好。迄今为止数百万的下载量使得Snort成为使用最为广泛的入侵保护和检测系统,并且成为了事实上的行业标准。10.2.2Snort的安装与运行Snort是一种开放源代码的软件,可以从其主页下载源代码进行编译安装,目前最新的稳定版本是2.8.3.2版。另外,在其主页的下载页面中还提供了ForRHEL5的RPM软件包,其文件名是snort-2.8.3.2-1.RH5.i386.rpm。除此之外,在/usr/sbin目录下还有一个名为snort的符号链接文件,要链接到/usr/sbin/snort-plain文件,以后执行snort命令时,实际上真正执行的是/usr/sbin/snort-plain文件。10.2.3Snort命令的格式Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。Snort工作在嗅探器模式时相当于一个抓包软件,仅仅是从网络上读取数据包并连续不断地显示在终端上。工作在数据包记录器模式时,Snort把数据包记录到磁盘中。网络入侵检测模式是最复杂的,用户可以通过配置让Snort分析网络数据包,并与用户定义的一些规则进行匹配,然后根据检测结果采取一定的动作。Snort命令的格式如下:snort[-options]filteroptions10.2.4用Snort抓取数据包除了使用Snort作为入侵检测工具外,Snort还具有强大的数据包抓取功能,可以作为数据包分析工具使用。在snort命令格式中,如果不使用“-c”选项指定规则文件,则Snort将简单地从网络抓取数据包,在屏幕上显示或保存到文件中。10.3配置SnortSnort最主要的功能是对入侵进行检测,其工作方式是对抓取的数据包进行分析后,与特定的规则模式进行匹配,如果能匹配,则认为发生了入侵事件。此时,执行snort命令时需要用“-c”选项指定入侵检测时所使用的配置文件。Snort默认安装时,已经在/etc/snort目录提供了一个例子配置文件,其文件名是snort.conf,本节主要以该文件的内容为中心,介绍一下Snort的配置方法。10.3.1定义Snort变量/etc/snort/snort.conf文件是snort命令运行时的主配置文件,为了使用的方便,用户可以在其中定义许多变量,以便以后在其它位置进行引用。另外,Snort系统本身也使用某些名称的变量,用户赋予的值将影响Snort的工作状态。变量的值一般是文件系统中的路径、IP地址、端口号等。10.3.2配置Snort选项执行snort命令时,可以通过指定命令行选项使Snort工作于不同的状态,实际上,很多的命令行选项都可以在snort.conf文件中进行配置,于是,就不需要在snort命令行中指定了。除了命令行选项外,在snort.conf文件中还可以指定其它一些不能在命令行中使用的选项。配置Snort选项的格式如下:configdirective[:value]10.3.3配置Snort预处理模块预处理程序从1.5版的Snort开始引入,它可以使用户和程序员能够将模块化的插件方便地集成到Snort中,使Snort的功能非常容易地得到扩展。预处理程序代码在数据包解码之后,并在入侵检测引擎被调用之前运行,这样,数据包就可以通过额外的方法被分析或修改。1.Frag3模块2.HTTPInspect模块3.SMTP解码器10.3.4配置Snort输出插件配置输出插件可以允许Snort为用户提供更加人性化的输出,它们在Snort的报警和日志模块中被调用,以便把预处理和入侵检测引擎中产生的数据输出。每一个输出插件与某一事件相联系,当该事件发生时,这些输出模块将依次被调用。10.3.5配置Snort规则文件Snort软件包本身并不提供规则,用户如果需要,可以从Snort的主页下载。Snort网站为三种不同的用户提供不同的规则更新服务。为了获取Snort规则,需要在网站上注册一个用户账号,接着在主页上选择Rules及VRTRules链接,然后在页面中间找到为注册用户提供的2.8版的规则集,并单击Download链接下载。下载后的文件约为66M,文件名是snortrules-snapshot-2.8.tar。10.4编写Snort规则前面介绍了Snort规则的获得、配置与使用,这些规则是由各种组织或厂商提供的。有时用户也希望能够自己编写Snort规则,以便能对最新的入侵行为作出反应。下面介绍一下有关Snort规则的编写方法。10.4.1Snort规则基础Snort使用一种简单的,轻量级的规则描述语言,这种语言灵活而强大。一条Snort规则包含两个逻辑部分:规则头和规则选项。书写Snort规则时,所有的内容都应该在一个单行上,如果需要分成多行书写的,要在行尾加上分隔符“\”。另外,snort.conf文件中定义的变量都可以在规则中使用,最常用的变量是HOME_NET和EXTERNAL_NET,分别表示本地子网和其它网段。10.4.2Snort规则头规则头定义了一个数据包的who,where和what信息,以及当数据包满足了规则定义的所有选项的值时,将对数据包采取什么样的动作。在规则头中,紧跟着规则动作的下一个域是协议类型。Snort当前可以分析的协议类型有四种:TCP、UDP、ICMP和IP,这已经包括了Internet最主要的协议。接下来的域是IP地址。除了单个IP地址外,还可以使用以IP地址和CIDR块组成的IP地址段。10.4.3Snort规则选项Snort的规则选项是入侵检测引擎的核心,所有的入侵行为都可以通过Snort规则选项将其表达出来,使用起来非常灵活。所有的snort规则选项和选项值之间用“:”分隔,而规则选项本身由“;”进行分隔。10.5小结入侵检测系统是对网络攻击进行主动防范的一种手段,是保证网络安全的一种重要措施。本章首先介绍有关入侵检测的基础知识,包括网络安全的定义、网络攻击的类型、入侵检测系统的定义等内容。然后介绍最知名的开源入侵检测系统——Snort,包括它的三种运行方式、配置方法、规则的使用和编写等内容。
本文标题:第10章--Snort入侵检测系统
链接地址:https://www.777doc.com/doc-5337849 .html