基于Snort的入侵检测系统

上传人:汽*** 文档编号:510479376 上传时间:2023-03-30 格式:DOC 页数:55 大小:311.68KB
返回 下载 相关 举报
基于Snort的入侵检测系统_第1页
第1页 / 共55页
基于Snort的入侵检测系统_第2页
第2页 / 共55页
基于Snort的入侵检测系统_第3页
第3页 / 共55页
基于Snort的入侵检测系统_第4页
第4页 / 共55页
基于Snort的入侵检测系统_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《基于Snort的入侵检测系统》由会员分享,可在线阅读,更多相关《基于Snort的入侵检测系统(55页珍藏版)》请在金锄头文库上搜索。

1、基于Snort的入侵检测系统用Snort,Apache,MySQL,PHP及ACID构建高级IDS第一章 入侵检测系统及Snort介绍在当今的企业应用环境中,安全是所有网络面临的大问题。黑客和入侵者已成功的入侵了一些大公司的网络及网站。目前已经存在一些保护网络架构及通信安全的方法,例如防火墙、虚拟专用网(VPN)、数据加密等。入侵检测是最近几年出现的相对较新的网络安全技术。利用入侵检测技术,我们可以从已知的攻击类型中发现是否有人正在试图攻击你的网络或者主机。利用入侵监测系统收集的信息,我们可以加固自己的系统,及用作其他合法用途。目前市场中也有很多弱点检测工具,包括商品化的和开放源码形式的,可以

2、用来评估网络中存在的不同类型的安全漏洞。一个全面的安全系统包括很多种工具:l 防火墙:用来阻止进入及走出网络的信息流。防火墙在商业化产品和开放源码产品中都有很多。最著名的商业化防火墙产品有Checkpoint (http:/), Cisco (http:/)及Netscreen(http:/)。最著名的开放源码防火墙是Netfilter/Iptables(http:/filter.org)。l 入侵检测系统(IDS):用来发现是否有人正在侵入或者试图侵入你的网络。最著名的IDS是Snort,可以在http:/www.snort.org下载。l 弱点评估工具:用来发现并堵住网络中的安全漏洞。弱点

3、评估工具收集的信息可以指导我们设置恰当的防火墙规则,以挡住恶意的互联网用户。现在有许多弱点评估工具,比如Nmap(http:/www.nmap.org/)和Nessus(http:/www.nessus.org/).以上这些工具可以配合使用,交互信息。一些产品将这些功能捆绑在一起,形成一个完整的系统。Snort是一个开放源码的网络入侵检测系统(NIDS),可以免费得到。NIDS是用来检测网络上的信息流的入侵检测系统(IDS)。IDS也包括安装在特定的主机上并检测攻击目标是主机的行为的系统。IDS迄今为止还是一门相当新的技术,而Snort在IDS中处于领先的地位。本书由入侵检测介绍及相关概念入手

4、,你将学习如何安装及管理Snort以及与Snort协同工作的其他产品。这些产品包括MySQL数据库(http:/www.mysql.org)、入侵数据库分析管理工具ACID(http:/www.cert.org/kb/acid)。Snort能够将日志数据(例如告警和其他日志消息)记录到数据库中。MySQL用作存储所有这些数据的数据库引擎。利用ACID及Apache (http:/)Web服务器,我们可以分析这些数据。Snort、Apache、MySQL及ACID的共同协作,使我们可以将入侵检测数据记录到数据库,然后用web界面察看和分析这些数据。此书的组织结构使读者能够跟着随后的章节一步一步的

5、建立一个完整的入侵检测系统。安装及整合各种工具的步骤将在如下的章节逐步介绍:第二章将介绍编译及安装Snort的基本知识。在这一章中,你将能够用基本安装及默认规则建立一个能够工作的IDS,同时能够建立可以记录入侵活动的日志文件。第三章介绍Snort规则的有关知识,Snort规则的组成及如何根据你的系统环境及需要建立自己的规则。建立良好的规则是构建入侵检测系统的关键,因此本章非常重要。本章同时也介绍Snort不同版本间规则的不同。第四章介绍input及output插件。插件与Snort一同编译,并用来调整检测引擎的输入和输出部分。Input插件用在实际检测过程发生前准备好捕获的数据包。Output

6、插件用来将数据数据格式化,以用于特定的目的,例如一种output插件可以将输出的检测信息转换成SNMP trap信息,而另外一种output插件可以将信息转换成数据库信息。这一章将详细介绍如何配置及使用这些插件。第五章介绍MySQL数据库与Snort的共同工作。MySQL插件使Snort能够将日志数据记录到数据库以便随后的分析。在这一章中,你将了解如何在MySQL中建立数据库,如何配置数据库插件,以及将日志数据记录到数据库中。第六章介绍ACID,以及如何用ACID取得你在第五章建立的数据库中的信息,并用Apache服务器显示它。ACID一种提供丰富的数据分析能力的重要工具,你可以用它来取得攻击

7、频率、攻击类别、察看这些攻击方法的相关资源等等。ACID用PHP脚本语言、图形显示库(GD library)和PHPLOT(一种用来绘制图表的工具)来工作,可以分析SQL中的数据并绘制图表。第七章主要介绍可以和Snort一起工作的其他一些有用的工具。在读完此书后,你将建立一个完整的,具有多个组件的系统,如图1-1所示。在图中你可以看到,Snort捕获并分析数据,然后用output插件将数据储存在MySQL数据库中。Apache服务器在ACID,PHP、GD library及PHP包的帮助下使连接到服务器的用户能够通过浏览器显示数据。用户可以在网页上应用不同的查询来分析、备份、删除数据或者显示图

8、表。基本上,你可以将Snort、MySQL、Apache、PHP、ACID、GD库以及ACID都安装到一台计算机上,而实际上在读完本书后,你可以建立一个类似于如图1-2所示得更加贴近实际应用的系统。在企业中,人们通常使用多个Snort探测器,在每个路由器或者防火墙后面都放置探测器。在这种情况下,你可以用一个集中的数据库来收集所有探测器的信息,并在这个数据库服务器上运行Apache Web服务器,如图1-3所示。1 1 什么是入侵检测?入侵检测是指用来检测针对网络及主机的可疑活动的一系列技术和方法。入侵检测系统基本可以分为两大类:基于特征的入侵检测系统和异常行为检测系统。入侵者常具有用软件可以检

9、测到的特征,如病毒。入侵检测系统将检测包含已知入侵行为特征或者异常于IP协议的数据包。基于一系列的特征及规则,入侵检测系统能够发现并记录可疑行为并产生告警。基于异常的入侵检测系统通常是分析数据包中协议头部的异常,在某些情况下这种方式要比基于特征的入侵检测系统要更好一些。通常情况下,入侵检测系统在网络上捕获数据包与规则比对或者检测其中的异常。Snort基本上是一个基于规则的IDS,但是input插件可以分析协议头部异常。Snort的规则存储在文本文件中,并可以用文本编辑器修改。规则以类别分组。不同类别的规则存储在不同的文件中。最后,这些文件被一个叫做snort.conf的主配置文件引用。Snor

10、t在启动时读取这些规则,并建立内部数据结构或链表以用这些规则来捕获数据。发现入侵特征并利用规则捕获它们是一项具有技巧性的工作,因为在实时检测中你应用越多的规则,那么你将需要越多的处理能力,所以用尽量少的规则来捕获尽量多的特征是非常重要的。Snort已经预先定义了许多入侵检测规则,并且你可以自由添加自定义的规则。同时,你也可以移除一些内建规则以防止错误告警。111 一些定义在详细了解入侵检测及Snort之前,你需要了解一些网络安全相关的定义,这些定义将在这本书的随后章节中重复应用。对这些名词的基本了解对于理解其他更加复杂的安全概念是非常必要的。1111 IDS入侵检测系统或IDS是一种用来检测入

11、侵行为的软件、硬件或者两者的结合。Snort是大众可以获得的开放源码的IDS。IDS的实际能力依赖于组件的复杂度及精巧性。实体的IDS是硬件和软件的结合,很多公司可以提供及决方案。如前面提到的,IDS可以采用特征分析技术、异常检测技术,或者两者同时应用。1112 网络IDS或NIDSNIDS是用来捕获在网络介质上传播的数据并与特征数据库比对的入侵检测系统。跟据数据包与特征数据库的匹配情况,IDS产生告警或者将日志记录到文件或数据库中。Snort主要是作为NIDS来使用的。1113 主机IDS或HIDS面向主机的入侵检测系统或称HIDS作为一个代理安装在一台主机上,这种入侵检测系统可以分析系统及

12、应用程序日志来检测入侵行为。其中一些HIDS是被动状态的,只有当某些事情发生了才会通知你,另外一些是主动状态的,可以嗅探网络中针对某一主机的通信状况并实时产生告警。1114 特征特征是数据包中包含信息的特点。特征用来检测一种或多种攻击行为。例如,目标是你的web服务的包中如果出现“scripts/iisadmin”,可能意味着一个入侵尝试。根据攻击行为本质的不同,特征数据可能会出现在数据包中的不同位置。例如,你可能会在IP包头、传输层头(TCP或UDP头)及/或应用层头或载荷中发现攻击特征。你将在本书的后面更多的了解攻击特征。通常IDS依靠特征来发现入侵行为。在发现新的入侵特征时,某些商业化的

13、IDS需要从厂商那里得到更新的特征库。另外一些IDS,比如Snort,你可以自己更新特征库。1115 告警告警是任何一种对入侵行为的通知。当IDS检测到入侵者,它将用告警来通知安全管理员。告警的形式可以使弹出窗口、终端显示及发送e-mail等等。告警同时也被存储到日志文件或者数据库中,以便供安全专家察看。在本书的后面,你将得到关于告警的详细信息。Snort的告警由output插件控制,并可以产生多种形式的报警。Snort也可以将同一个告警发送到不同的目标,例如,将告警发送到数据库的同时,产生SNMP trap信息。一些插件可以修改防火墙配置,使入侵者在防火墙或者路由器上被控制。1116 日志日

14、志信息通常存放在文件中。默认情况下,Snort将这些信息存放在/var/log/snort目录下,但是也可以在启动Snort时用命令行开关来改变这个目录。日志信息可以存储为文本格式或者二进制格式,二进制格式的文件可以供Snort或者Tcpdump随后访问,现在也有一个叫做Barnyard的新工具可以分析Snort产生的二进制日志文件。将日志存放为二进制文件可以有更高的效率,因为这种格式开销相对较低。将Snort应用在高速网络环境中,将日志存放为二进制文件是非常必要的。1117 误告警误告警是错误的将非入侵行为报告为入侵行为的告警。例如,内部主机的错误配置有时会产生触发规则,从而产生误告警。某些

15、路由器,例如Linksys家用路由器,会产生一些信息,导致UpnP相关的告警。为了避免误告警,你要修改和调试默认规则,在某些情况下,你也许需要停止一些规则的使用,以避免误告警。1118 探测器运行入侵检测系统的机器也叫做探测器,因为它用来“探测”网络中的活动。在本书的后面部分,如果用到探测器这个词,那么它是指运行Snort的计算机或者其他设备。112 IDS应该放在网络中的什么位置?根据你的网络拓扑结构的不同,你应该在一个或多个位置放置IDS。IDS放置的位置也要取决于你想检测的入侵行为的种类:内部入侵、外部入侵,或者两个都要检测。例如,如果你想仅仅检测外部入侵活动,并且你只有一个路由器接到Internet,那么放置IDS的最佳位置也许紧靠着路由器或者防火墙的内部网络接口。如果你有多条接入Internet的借口,也许你希望在每个入口处放置一台IDS。有时你也希望能够检测来自内部的威胁,那么可以在每个网段都放置一台IDS。在很多情况下,你并不需要在所有网段都实施入侵检测,你可以仅仅在敏感区域放置IDS。要知道,越多的IDS就意味着越多的工作量和维护费用。因此IDS的部署要取决于你的安全策略,也就是你想防范什么样的入侵。图1-4表示通常放置IDS的典型位置

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号