- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
如何构建安全的入侵检测系统(IDS)
商业用的以网络为基础的IDS通常是很昂贵的。从另一方面说,要配置开源IDS是很困难的。最近,笔者有机会安装台一个开源IDS,发现并不是想象中的那么难。用户完全可以在一天之内构建一个开源IDS。
这篇文章并不是教你如何一步一步构建和管理这样一个IDS,在网上你可以搜出一大堆这样的资料。如果你曾经尝试着构建一个开源的IDS而没有成功,现在你可以从我的这片文章中得到启示。
Snort & BASE
要想构建一个有效的开源数据库,Snort 和 BASE (Basic Analysis Security Engine基本分析安全引擎)这两个工具是必须的。Snort最早是由Martin Roesch1998年开发出来的,当时的主要是作为商用的IDS信息包的一个替代品。BASE是入侵数据库分析控制台(Analysis Console for Intrusion Databases)的计划的一部分。
正如许多开源应用程序一样,在Linux 或Windows的操作操作系统中,Snort可以作为一种源代码或是二元的安装包。但是BASE却不同,他是独立于操作系统的。因此,这两种方法都可以应用于Linux 或Windows操作操作系统中,效果并没多少差距。
现在言归正传,笔者将展示在一台老式的电脑上构建一个IDS,主要以在Linux操作系统上构建一个Snort 的IDS,在Windows系统上构建这样一个IDS也是差不多的。如果你已经操作系统中安装过IDS,那这里你就可以稍加改动完成在Linux操作系统上的安装。
准备系统
IDS在网络中的布置是很关键的。IDS布置的地方必须是能够监控局域网和Internet之间的所有流量。也就是说要么布置在镜像连接之间,要么就是在局域网和Internet联系的网络中心。如果只有一道防火墙和唯一的IDS入侵检测系统,那么入侵检测系统就应该布置在防火墙和局域网之间,我们将在随后讨论为什么要这么做。
选择什么样的机器主要依赖于环境和数据的要求。一个Snort IDS应该包括一台或是几台独立的机器,或是很多台向中央数据库服务器报告的机器。被监测的数据之间的连接速度越快,那么机器的记录能力也就越强。
我们这里主要是讨论在网络的边缘安装单机IDS。对于Linux的安装来说,用一台几年的台式机足矣。只要它的配置满足如下要求即可: 最低256M的内存,20G的硬盘,600兆赫的处理器和CD驱动,只要是近几年的计算机都是满足这一条件的。
对于安装基本的Linux操作系统来说,创制安装盘是必需的。能够运行Burn4Free(免费的标准刻盘软件)的Windows操作系统环境就够了。除此外,在你安装Linux操作系统之前,你应该先确定好网络参数以及保证IDS机器的连接。
先下载Fedora 7 Live iso文件或是Linux系列的其它流行安装文件。Fedora 7 Live是能够在单碟上运行的Fedora Linux系列的最小的安装文件。下一步的注意点就是Fedora Live 7了,如果有必要的话,它是很容易调整,然后把iso文件刻到Windows机器上的CD中。
在IDS机器上,安装CD盘,然后设置BIOS运行CD(如Windows的安装一样)。机器将会自动的运行Fedora 7 Live,不需要人工干预。这样等到它自动进入一个图形用户界面,有一个默认的帐号。
点击安装硬件图标。回答安装是出现的问题,绝大多数问题和Windows安装时的问题是一样的。完成之后,拿出CD盘,重启机器。好了,现在你的机器可以准备安装运行IDS所需要的软件了。
必要的应用程序
Snort本质上的工作原理是模式匹配,也就是它判断攻击是以已知攻击样本的特征为依据的,如今这样的样本特征描述数以千记。把Snort看作是一个智能嗅探器:它能够实时跟踪网络的出流量和入流量,然后通过对比特征库,对数据进行实时分析。要想通过人工来做这样的事情几乎是不可能的。
如果被检测的信息包含有这些特征的话,就会发出警报。要想从这些警报中找出有用的信息可不是一件容易的事情,因为数据的信息量相当大并且是以原始文件的形式出现的。因此,我们需要找出一种方法从总体上来收集和分析这些数据。
MySQL可以作为数据库应用程序,但是微软的SQL 服务器或Oracle也可以用来作为警报数据库。安装一个设计良好的数据库,并且使用Snort的信息对于信息分类是必须的,对于网络嗅探的分析,分析这样一个数据库就实在太耗费人力了。
针对这一问题,使用BASE就迎刃而解了。它可以显示Snort的警报数据,这样就给网络或是安全管理者来确认和减少威胁提供一种依据。
其它一些支持的应用程序包含Apache网络服务器,GCC编译器和PHP以及HTML脚本语言。在google或baidu等搜索引擎中,你可以找到关于怎么样安装Snort/BASE IDS的建议以及相关的应用程序,当然其它的一些文件在一些关于Snort的论坛中可以找到。
管理IDS
在成功的安装之后,指向IDS的网络浏览器将会产生如下的警报日志窗口。图表1是BASE警报窗口
从这里,你可以看到,入侵检测数据会得到有效的分析。BASE提供了很多数据收集和陈述的工具。例如,图表2展示的就是一个星期的警报日志:
每一个警报都被单独的或是整体的分析。在上面的例子中,大多数的警报都是虚报,因为有些流量可能是不正常的,但却是没有威胁的特征。例如,有这样一个警报(表三)产生了,当时正在开的一个远程会议莫名其妙的中断了,很可能是用户没有正确的关闭远程桌面程序。
之前提到过IDS入侵检测系统应该布置在局域网和防火墙之间。假如说图表三的警告是真的话,防火墙就应该布置在阻止来自于攻击源地址的所有流量。在布置防火墙之后就不应该有新的警报了,因此能有效的减少威胁。
有了IDS我们还应该做什么?
构建一个功能性的IDS检测设备只是第一步。一旦安装之后,IDS的管理员应该花大量的时间来扫描系统的警报和性能。如果你想建造一座庞大的建筑,你就不能仅仅打一个地基,构建Snort/BASE入侵检测系统也是一样的道理。
随着威胁的出现,我们需要不断的将病毒、攻击样本的特征加到病毒特征库里,用户只要花费很少的费用就可以享受Snort的潜在危险规则的订阅服务,对于注册用户来说,在服务到期后的30天内也可以享受到免费服务。例如Oinkmaster工具,此类工具可以从网上得到。
除此之外,你也可以手动的建立病毒特征,或者创建一个跳过规则来防止产生更多的虚警。很多情况警报实际上是正常的网络流量,但仅仅因为可能产生很多虚警报而不即使更新病毒库是很愚蠢的做法。其它的一些开源工具有MRTG, ntop 和tcpdump,把它们与服务器和网络设备日志分析一起使用的话,就可以为IDS的配置提供更全面的数据。
Snort可以布置在中央分布环境中,在这一环境中,多重传感器将会把信息传输给单一的数据库服务器。对于大型企业的网络来说,这是很有效的,它既可以分析相关事件,又可以简单的把信息从多点网络中分离出来。在局域网的安全边界布置Snort是很正常的,例如在管理员服务器和本地机之间。
以特征库为基础的网络IDS只不过是一个加强你公司安全策略的工具而已。想通过安装IDS或是类似的安全系统来解决所有的安全威胁,这并不现实的,也是一种错误的安全观。但深入研究IDS,你将会迅速的得到回报和甜头。
上一篇:轻松接触
SQL
Server
服务管理器
下一篇:讨论主流网页过滤方法剖析