入侵检测护航电子商务
[摘要] 随着因特网的飞速,商务正得到越来越广泛的应用。电子商务的安全性是影响其成败的一个关键因素。入侵检测系统是传统被动方式的安全检测手段的重要补充,它是一种主动、实时、自动检测入侵行为的工具和手段。Snort是国外的一个开放源代码的入侵检测系统。通过探讨Snort技术原理,提出如何构建入侵检测系统的应用解决方案,并给出了该网络监控系统的结构图。
[关键词] 电子商务 入侵检测系统 Snort 网络安全
电子商务中蕴藏着巨大的利益,因而安全问题也变得越来越突出。如何建立一个安全、便捷的电子商务应用环境,对信息提供足够的保护,已经成为电子商务的所有参与者十分关心的话题。电子商务服务器都采用各种安全策略和安全保护手段,但大多数都是以静态防护为主。以防火墙为主的静态防护已经不能满足现在的要求,这有必要提出一种新的安全保护理念——网络入侵检测技术在电子商务中的应用。
一、入侵检测系统的实现
根据对网络入侵检测的研究,我们决定采用Snort来构建一个入侵检测系统。Snort是一个用C语言编写的免费开放源代码软件。Snort是一个跨平台、轻量级、功能强大的网络入侵检测系统。Snort可以被设置为三种主要的工作模式:嗅探器(sniffer)模式、包记录器(packet logger)模式和网络入侵检测系统(network intrusion detection system,NIDS)模式。嗅探器模式中,Snort简单的从网络中读取数据包,并且以连续流的形式在控制台(console)上显示出来。包记录器模式将数据包存入磁盘。网络入侵检测模式有最复杂的结构,同时它的配置也是最多样化的。在这个工作模式下,Snort可以分析网络数据流,监视其中的数据是否和用户定义的规则(rule)相符,并且根据比较结果做出相应的动作(action)。
我们根据CIDF提出的通用模型的基础了,构建了基于Windows平台的Snort入侵检测系统,系统结构如图所示。

根据图所示的结构,要完成这个Snort入侵检测系统,我们需要如下组件:Winpcap4.1(Windows版本的Pcap)、Snort2.8(目前是最新的版本)、Mysql-5.0.16-win32.zip(Windows版本的Mysql数据库服务器)、ACID-0.9.6b23.tar.gz(基于php的入侵检测数据库分析控制台)、ADODB465.tgz(ADODB(Active Data Objects Data Base)库for PHP)、APACHE_2055-win32.msi(Windows版本的APACHE Web服务器)、PHP-5.1.1-Win32.zip(Windows版本的PHP脚本环境支持)、JPGRAPH-2.0.tar.gz(PHP下面的图形库)、PHPMyAdmin-2.2.7-pl1-php3.zip(基于PHP的Mysql数据库管理程序)。
二、Snort入侵检测系统的安装
系统安装在Windows 2000 Server平台上,安装过程如下:
1.安装snort2.8.exe与winPCAP:采用默认安装。打开C:/Snort/etc下的snort.conf文件(可以使用记事本或是写字板打开)。配置:var RULE_PATH c:/snort/rules、include c:/snort/etc/classification.config和include C:/Snort/etc/reference.config
配置snort的输出插件:
output database: alert, mysql, host=localhost port=3306 dbname=snort user=root password=your_password sensor_name=n encoding=ascii detail=Full
2.安装Mysql:安装时可以选择将Mysql安装在c:/mysql5,采用默认安装即可,之后设置Mysql为服务方式运行,在命令提示符里面输入:c:/mysql5/bin>mysqld-nt –install。启动Mysql服务:在命令提示符里输入:net start mysql 或开始→设置→控制面板→管理工具→服务→启动“MYSQL”服务。
创建snort 运行必须的snort库和snort_archive库:
mysql>use mysql;、mysql>create database snort;和mysql>create database snort_archive;
使用c:/snort/contrib 目录下的create_mysql 脚本建立Snort 运行必须的数据表:将C:/Snort/schemas下的create_mysql文件拷贝到C:/mysql5/bin目录下后执行:
mysql>source create_mysql
为Mysql 建立Snort 和ACID帐号:使ACID能正常访问Mysql中与snort相关的数据文件:mysql> grant usage on *.* to “acid”@”ocalhost” identified by”acidtest”;和mysql> grant usage on *.* to “snort”@”localhost” identified by “snorttest’;
为acid 用户和snort 用户分配相关权限:
mysql> grant select,insert,update,delete,create,alter on snort.* to“acid”@”localhost”;
mysql> grant select,insert on snort .* to “snort”@”localhost”;
mysql> grant select,insert,update,delete,create,alter on snort_archive .* to >”acid”@”localhost”;
为acid拥护和snort 拥护设置密码:
mysql>set password for “snort”@”localhost” = password(‘your password‘);
mysql>set password for“acid”@”localhost”=password(‘your password’);
3.安装APACHE:在安装过程中选择“Service for All Users”选项,这样会在Windows启动的时候自动运行APACHE,并把APACHE服务作为一个独立与用户登录的服务运行。在安装时要注意,如果安装了IIS并起用了web server ,由于IIS Web Server的默认监听端口是80,会和APACHE Web Server冲突,为辟免冲突,将APACHE的监听端口配置成其他不常用端口,如1080。修改C:/apache/Apache2/conf文件夹下面的httpd.conf文件,修改Listen 80为Listen 1080。安装apache后将它做为服务方式运行,在命令提示符下输入:C:/apache/apache2/bin>apahce kinstall。
添加gd库的支持,在C:/apache/Apache2/conf/httpd.conf中添加LoadModule php5_module “c:/php5/php5apache2.dll”与AddType application/x-httpd-php .php。
启动Apache服务:开始→设置→控制面板→管理工具→服务→启动“Apache2”服务 。在C:/apache/Apache2/htdocs目录下新建webinf.php,文件内容为: 。现在就可以使用http://localhost:1080/webinf.php查看服务器的PHP、Mysql、Aapche等配置信息。
5.ADODB、JPGRAPH、ACID的安装:解压缩ADODB456.zip 至c:/php5/adodb 目录下;安装安装JPGRAPH库:解压缩jpgraph-2.0.tar.gz 至c:/php5/jpgraph;安装ACID:解压缩ACID-0.9.6b23.tar.gz 至c:/apache/apache2/htdocs/acid 目录下。修改acid_conf.php 文件 :
$DBlib_path = “c:/php5/adodb”;、$alert_dbname = “snort”;、$alert_host = “localhost”; 、$alert_port = “3306”;、$alert_user =“acid”和$alert_password = “your password”;
/* Archive DB connection parameters */
$archive_dbname = “snort_archive”;、$archive_host = “localhost”;、$archive_port = “3306”; 、$archive_user = “acid”;、$archive_password = “your password”;和$ChartLib_path = “c:/php5/jpgraph/src”;
建立acid 运行必须的数据库:打开http://localhost:1080/acid/acid_db_setup.php,按照页面上的提示操作既可。
到此,Snort入侵检测系统已经安装完毕,运行snort检测数据包,并使用ACID 监视服务器情况。系统安装后,ACID主界面分类显示数据库中当前数据。主界面显示信息包括:触发安全规则的网络流量中各协议所占比例、警报数量、入侵主机和目标主机IP地址及端口号等。ACID 控制还提供搜索功能,用户可根据时间、IP地址、端口号、协议类型,以及数据净荷(payload)等条件灵活组合,在入侵事件数据库中进行查询,以帮助网管员分析。
三、结语
随着商务的兴起,电子商务服务器的安全问题已经不能忽视。本文介绍了一个Windows平台下基于Snort的入侵检测系统,它能很好的保护电子商务服务器。为电子商务的美好未来,添上了浓墨重彩的一笔,使电子商务在更安全的环境下健康。
:
[1]Thomas M.Chen.Intrusion Detection for Viruses and Worms[J].Dept ofElectrical Engineering Southern Methodist University,2004
[2]唐正军李继华编著:入侵检测技术[M].2001-05
[3]CIDF working group The Common Intrusion Detection Framework Architecture[EB/OL].http://www.Gidos.org/











