[摘要] 随着因特网的飞速发展,电子商务正得到越来越广泛的应用。电子商务的安全性是影响其成败的一个关键因素。入侵检测系统是传统被动方式的网络安全检测手段的重要补充,它是一种主动、实时、自动检测入侵行为的工具和手段。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。
4.安装php5:安装php5,并添加apache对php的支持与php对mysql的支持。解压文件安装php-5.1.1-win32.zip到c:\php5。拷贝php5ts.dll文件到c:\winnt\system\system32,拷贝php.ini-dist 至c:\winnt\system\php.ini。将php.ini中的extension=php_gd2.dll、extension=php_mysql.dll钱的“#”去掉,同时拷贝c:\php5\extension下的php_gd2.dll与php_mysql.dll至c:\winnt\system\。
添加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]./