如何构建廉价而强大的入侵检测系统(图)(1)


我们常说的入侵检测系统(IDS)是硬件和软件产品的组合,它可以用于分析通过网络上的一个节点的网络通信。对于廉价的IDS而言,主要指一些开源的软件产品。这种软件可以分析数据,以搜索恶意内容的特定特征(或称为已知的通信模式),甚至可以立即采取行动以终止连接,并向相关人员发出警告或对当前的活动加以记录。

基于网络的入侵检测系统(IDS)是分层的IT安全策略的一个完整组成部分。在网络犯罪越来越猖獗的时代背景下,如果您的总体的安全系统并没有包含基于网络的安全检测,现在就是考虑实施一个IDS软件包的好时机。

商业类的基于网络的IDS通常是相当昂贵的。另外一方面,人们通常都有一种直觉,认为实施一个开源的IDS是相当复杂的。近来,笔者有机会安装了一个开源IDS,发现了恰恰相反的事实,因为笔者只用了不到一天的时间就成功构建了一个强大的、基于开源的IDS。

本文的目的并不在于为安装和管理一个开源的IDS提供一个按部就班的指南,因为关于这方面现在有大量的可用资源。本文的目的在于为您构建一个健全的IDS打下一个基础。如果您曾经考虑实施过一个开源的IDS,却在研究如何操作时感到无所适从,不妨看看本文。

Snort 和 BASE

在这里,有两个可以创建高效的开源数据库的程序包即Snort 和 BASE ,后者即所谓的基本分析安全引擎(Basic Analysis Security Engine)。Snort最初是由Martin Roesch在1998年创建,这是一个商业类软件包的替代性的开源选择。BASE是根据销声匿迹的ACID(Analysis Console for Intrusion Databases)项目构建的。

作为开源的应用程序,Snort既有源代码可以利用,又有Linux或Windows操作系统下的二进制安装程序包。另外一方面,BASE是一个独立于操作系统的开源软件。因此,这二者都可以在一台Linux或Windows机器上安装,而且用几乎相似程度的努力就可以完成。

本文的目的是展示用较老的(所谓廉价之意)一台计算机去构建一个入侵检测系统,因此重点关注在一个Linux系统上构建Snort IDS,不过在一个Windows系统上安装的方法也是极相似的。不管Linux的发行版本有多大的进展,如果您已经安装了Windows,您也可以轻而易举地就能将Snort安装到Linux系统中。

准备您的系统

决定网络内的IDS的放置位置是至关重要的。IDS机器必须连接到一个可以查看、监视局域网和互联网之间全部数据通信的端口上。这意味着可将其安装到一个互联网连接和局域网之间的镜像交换机端口上。如果您的网络仅使用了一个防火墙和一个IDS检测器,那么此检测器应被置于防火墙和局域网之间,如此做的理由将在后面涉及到。

选择使用的机器类型依赖于环境和所需要的数据。一个Snort 入侵检测系统的安装涉及到一台或几台机器,或者涉及到向一个中心数据库服务器报告的多台计算机。连接被监视的速度和记录水平都体现出机器的性能。

简单地讲,本文着重于在网络的边缘安装一个独立的IDS系统。对于一次Linux中的安装来说,几年前的一台桌面计算机已经足够了,也就是说至少要有256MB的内存,20GB的硬盘,600兆赫的处理器,一个CD驱动器等。

对于安装一个基本的Linux系统来说,需要一台创建安装CD盘片的计算机。一台能够运行Burn4Free的Windows计算机运行就很出色了。此外,在Linux安装之前,就应该决定网络参数(IP地址等等)和IDS计算机的网络连接。

您可以下载Fedora 7 Live ISO或另外一个Linux发行版本。Fedora 7 Live是Fedora Linux发行版本的最小化安装,它在一个CD上就可以运行。下面的说明尤其适用于Fedora Live 7,不过如果您愿意,可以轻松地对其调整以适应其它的发行版本。请在Windows计算机上将ISO镜像烧录成一张CD。

在安装IDS的计算机上插入CD,并将BIOS设置为从CD启动(正如在Windows中安装那样)。计算机会在无用户干预情况下自动运行Fedora 7 Live。让它运行,直至用默认的用户自动登录到图形用户界面。

单击“Install to Hard Drive”(安装到硬盘)图标,然后回答所出现的问题;大多数选项与在Windows安装中一样。在完成之后,取出CD并重新启动机器。现在计算机已经为安装需要运行和管理的IDS软件作好了准备。

需要的应用软件

从本质上讲,Snort按照模式匹配方式工作,并通过将数据包与已知攻击的特征相比较而实现。现在这种特征有成千上万种之多。可以将Snort看作是一个智能的嗅探器:它不断地跟踪进入的和发往互联网的数据通信,并通过实时地与特征数据库相比较而实现分析跟踪的目的。

如果一个数据包与选择特征中的一个模式匹配,就会生成一个警告。由于数据的数量巨大以及其原始格式的表达方式的复杂性,从而分析这些警告以获得有意义的数据并不是轻松的工作。需要一种方法来收集数据并能够对其进行群组分析。

本示例采用MySQL作为数据库应用程序,不过微软的SQL Server或Oracle也可以用作警告数据库程序。通过Snort信息对具有丰富格式的数据库进行组装对于信息的分类是非常有必要的,因为就嗅探器的分析来说,分析这种数据库的过程是相当繁重的任务。

这正是BASE发挥功能的所在。BASE是一个数据库系统的Web前端,可以提供Snort警告数据。它提供了相关信息,据此,网络管理员或安全管理员可以确认威胁并实施控制以减少威胁。

所需要的其它支持性应用程序包括Apache Web服务器,GCC编译器,还有PHP HTML脚本语言。大家可访问Guru.com,此网站上有一篇Patrick Harper所写的非常出色的指南,详细描述了如何安装一个Snort/BASE IDS系统和所有相关的应用程序。此外,在Snort Web站点上还有其它的文档和用户论坛。


相关内容