摘 要:本文使用抓包库WinPcap,入侵探测器snort,Web服务器Apache,数据库MySQL,入侵数据分析控制台ACID构建了Windows平台下基于snort的网络入侵系统。Snort对监控网络中的数据包进行规则匹配,检测入侵行为,并将日志保存至MYSQL数据库,ACID分析数据库数据,生成网络入侵事件日志图表。
关键词:入侵检测系统;网络安全;snort
随着计算机网络技术的不断发展,人们的工作与生活越来越离不开计算机网络,然而与此同时,网络环境也越来越复杂,安全问题日益突出。目前的网络安全系统使用最多的是防火墙技术。防火墙能够抵挡大部分的外部攻击,不能够对内部攻击进行有效防范,然而实践证明,内部攻击更普遍且更容易实现。入侵检测系统是对防火墙技术的合理补充,能够检测未经授权的访问或入侵,它已经发展成为安全网络体系中的一个关键性组件。
1 入侵检测系统与snort
入侵检测系统对单个系统或网络系统中的行为进行监控,并生成记录进行审核,通过审计等手段识别各种网络入侵行为。入侵检测系统可以是硬件、软件或者两者的结合。它主要的检测技术是特征检测、异常检测和完整性检验。按照功能,网络入侵系统主要分为三类,主机IDS(HIDS)、网络IDS(NIDS)和分布式IDS(DIDS)。
Snort是一个有很多功能的、成熟的开放源代码的NIDS,它的功能有数据包嗅探、数据包记录、入侵检测、实时告警。snort被称为是轻量级的NIDS,这里“轻量级”是指snort占用的资源非常少,且能运行在多种系统平台之上。Snort是基于特征检测的IDS,使用规则的定义来检查网络上中的数据包,当一条规则被触发后,产生相应的告警信息。由于开放源代码的特性,snort日益流行,除了可安装在各种系统平台之上,还能与多种软件配合使用,如MySQL,Oracle数据库,Apache,IIS服务器,PHP或Perl,SSH或Windows终端服务等等。
2 snort入侵检测系统的实现
如图1,在基于snort的入侵检测系统中,抓包引擎从网络获取数据包并传送给分析模块,如果包触发了报警或日志事件,那么该数据包就会发送给输出插件。输出插件将报警和日志以多种格式及形式输出,或保存至关系数据库。入侵数据分析控制台(The Analysis Console for Intrusion Databases,ACID)是与snort数据进行交互的主要途径,它是基于PHP的分析引擎,主要用来处理由安全设备(如防火墙和IDS)产生的安全事件数据库。
2.1 安装Apache+MySQL+PHP环境
在安装snort之前必须已经有能够正常工作的MySQL数据库服务器,因此需要首先安装Apache+MySQL+PHP环境。Apache用于基于Web的ACID浏览器程序服务,MySQL用于存储入侵数据。Appserv是一个PHP环境的集成软件,可快速安装ApacheMySQLPHP环境,安装配置均简单方便。完成安装后可在浏览器打开http://localhost测试Appserv是否安装成功。
2.2 安装snort及WinPcap
WinPcap是libpcap抓包库的Windows版本,snort需要用它来嗅探原始包。我们这里使用的MySQL数据库,应选择有MySQL支持的snort安装版本。安装snort后在MySQL中创建用户名、口令、数据库名称及用户权限,并用snort提供的create_mysql脚本创建数据库所需的表格和数据结构;更改snort的配置文件snort.conf,设置监控网络及规则集,并添加输出插件,使snort把日志写入到MySQL数据库。
2.3 安装ACID
安装ACID前必须要安装ADODB库,ADODB库为PHP访问多种数据库提供通用的访问接口。另外使用ACID的图形功能,需要安装JPGraph库,下载库后解压到PHP可访问的脚本目录就可以了。ACID的配置参数保存在acid_conf.php中,作相应配置后就可以通过Web方式连接到控制台了,登陆后使用ACID DB安装脚本创建用来管理警报数据的表,ACID就可以使用了。
2.4 使用ACID
ACID将snort输出的原始数据以更加容易理解的方式给出警报和入侵数据。入侵检测管理员可直接通过Web交互方式对警报和事件日志数据库进行操作。搜索,ACID使用一套扩展的逻辑运算符来建立查询,查询的类别可以是元数据(如特征、分类、报警时间)、IP头数据、网络层协议和净荷数据;报警组,管理员可以把各种报警进行逻辑上的分组并附加注释,组成一个安全事件;图形化,ACID可以基于时间、报警组成员关系、源端口、目的端口和IP地址生成图形化汇总;数据管理,可通过裁剪(trimming)、归档(archiving)对数据库中的所有报警数据进行维护处理。
3 结束语
在wondows平台下安装配置基于snort的入侵检测系统,配置简单且易于实现,但考虑到稳定性和速度,应该选择UNIX或类UNIX平台,而实验证明,在BSD系列平台下,snort性能发挥更出色。
参考文献:
[1]Jack Koziol.Snort入侵检测使用解决方案[M].吴溥峰 等译.北京:机械工业出版社,2005.
[2]唐正军.入侵检测系统导论[M].北京:机械工业出版社,2004.