免费NIDS的构建与应用
在“ 免费与付费IDS孰优孰劣? ”一文,针对免费与付费IDS的不同,为用户介绍了免费或付费IDS的选购要点,下面我们以免费IDS为例,具体介绍如何构建和应用免费NIDS。
一般说来,一个典型的网络攻击是以大量的端口扫描等手段获取所攻击对象的信息的,这个过程必然产生大量异常的网络流量,它预示着即将到来的真正攻击。这就要求网管人员对网络运行状态进行实时监控,以便随时发现可能的入侵行为,并进行具体分析,及时、主动地进行干预,从而取得防患于未然的效果。完成这种功能的安全产品之一是网络入侵检测系统(Network Intrusion Detection Systems,NIDS)。
目前,NIDS产品可分为硬件和软件两种类型,但无论选择哪种,都有一个共同的特点: 昂贵。即便在单点安装的情况下,无论是硬件类型的费用,还是软件类型的许可费,动辄数万元乃至十余万元。相对于规模不是很大、费用支出有限的企业,承受起来勉为其难。是不是安全防御可以不搞了?答案是否定的。
事实上,互联网在给我们带来挑战的同时,也给我们带来无数的宝贵资源,只等我们去开发、利用。开放源代码软件(Open Source Software)便是其中之一。本文试图从这一角度,讲述利用互联网上免费的开放源代码软件实现构建完整NIDS的过程。
一、系统概述
本处描述的NIDS采用三层分布式体系结构,它包括网络入侵探测器、入侵事件数据库和基于Web的分析控制台。为了避免不必要的网络流量,本例将网络入侵探测器和入侵事件数据库整合在一台主机中,利用标准浏览器,异地访问主机上的Web服务器,并把它作为分析控制台,两者之间的通信采用HTTPS安全加密协议传输。
由于实现本系统所需的软件较多,笔者在此做一简要说明(见附表)。
上述软件都是开放软件,用户可以直接登录相应软件的正式网站下载源代码。
附表
软件名称 | 功能简述 | 正式网址 | 软件版本 |
Snort | 网络入侵探测器 | www.snort.org/ | 1.8.6 |
Libpcap | Snort所依赖的网络抓包库 | www.tcpdump.org/ | 0.7.1 |
MySQL | 入侵事件数据库 | www.mysql.org/ | 3.23.49 |
Apache | Web服务器 | www.apache.org/ | 1.3.24 |
Mod_ssl | 为Apache提供SSL加密功能的模块 | www.modssl.org/ | 2.8.8 |
OpenSSL | 开放源代码的SSL加密库,为mod_ssl所依赖 | www.openssl.org/ | 0.9.6d |
MM | 为Apache的模块提供共享内存服务 | www.engelschall.com | 1.1.3 |
ACID | 基于Web的入侵事件数据库分析控制台 | www.cert.org/kb// | 0.9.6b21 |
PHP | ACID的实现语言 | www.php.net/ | 4.0.6 |
GD | 被PHP用来即时生成PNG和JPG图像的库 | www.boutell.com/gd | 1.8.4 |
ADODB | 为ACID提供便捷的数据库接口 | php.weblogs.com/ | 2.00 |
PHPlot | ACID所依赖的制图库 | www.phplot.com/ | 4.4.6 |
需要特别说明的是,虽然本例中构建NIDS所采用的系统平台基于Solaris 8 for Intel Platform,但由于在其他种类的系统平台上(如Linux、OpenBSD以及Windows 2000等)构建NIDS的步骤大同小异,用户仍可学有所用。