[摘要] 隨著因特網(wǎng)的飛速發(fā)展,電子商務正得到越來越廣泛的應用。電子商務的安全性是影響其成敗的一個關(guān)鍵因素。入侵檢測系統(tǒng)是傳統(tǒng)被動方式的網(wǎng)絡安全檢測手段的重要補充,它是一種主動、實時、自動檢測入侵行為的工具和手段。Snort是國外的一個開放源代碼的入侵檢測系統(tǒng)。通過探討Snort技術(shù)原理,提出如何構(gòu)建入侵檢測系統(tǒng)的應用解決方案,并給出了該網(wǎng)絡監(jiān)控系統(tǒng)的結(jié)構(gòu)圖。
[關(guān)鍵詞] 電子商務 入侵檢測系統(tǒng) Snort 網(wǎng)絡安全
電子商務中蘊藏著巨大的經(jīng)濟利益,因而安全問題也變得越來越突出。如何建立一個安全、便捷的電子商務應用環(huán)境,對信息提供足夠的保護,已經(jīng)成為電子商務的所有參與者十分關(guān)心的話題。電子商務服務器都采用各種安全策略和安全保護手段,但大多數(shù)都是以靜態(tài)防護為主。以防火墻為主的靜態(tài)防護已經(jīng)不能滿足現(xiàn)在的要求,這有必要提出一種新的安全保護理念——網(wǎng)絡入侵檢測技術(shù)在電子商務中的應用。
一、入侵檢測系統(tǒng)的實現(xiàn)
根據(jù)對網(wǎng)絡入侵檢測的研究,我們決定采用Snort來構(gòu)建一個入侵檢測系統(tǒng)。Snort是一個用C語言編寫的免費開放源代碼軟件。Snort是一個跨平臺、輕量級、功能強大的網(wǎng)絡入侵檢測系統(tǒng)。Snort可以被設(shè)置為三種主要的工作模式:嗅探器(sniffer)模式、包記錄器(packet logger)模式和網(wǎng)絡入侵檢測系統(tǒng)(network intrusion detection system,NIDS)模式。嗅探器模式中,Snort簡單的從網(wǎng)絡中讀取數(shù)據(jù)包,并且以連續(xù)流的形式在控制臺(console)上顯示出來。包記錄器模式將數(shù)據(jù)包存入磁盤。網(wǎng)絡入侵檢測模式有最復雜的結(jié)構(gòu),同時它的配置也是最多樣化的。在這個工作模式下,Snort可以分析網(wǎng)絡數(shù)據(jù)流,監(jiān)視其中的數(shù)據(jù)是否和用戶定義的規(guī)則(rule)相符,并且根據(jù)比較結(jié)果做出相應的動作(action)。
我們根據(jù)CIDF提出的通用模型的基礎(chǔ)了,構(gòu)建了基于Windows平臺的Snort入侵檢測系統(tǒng),系統(tǒng)結(jié)構(gòu)如圖所示。
根據(jù)圖所示的結(jié)構(gòu),要完成這個Snort入侵檢測系統(tǒng),我們需要如下組件:Winpcap4.1(Windows版本的Pcap)、Snort2.8(目前是最新的版本)、Mysql-5.0.16-win32.zip(Windows版本的Mysql數(shù)據(jù)庫服務器)、ACID-0.9.6b23.tar.gz(基于php的入侵檢測數(shù)據(jù)庫分析控制臺)、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腳本環(huán)境支持)、JPGRAPH-2.0.tar.gz(PHP下面的圖形庫)、PHPMyAdmin-2.2.7-pl1-php3.zip(基于PHP的Mysql數(shù)據(jù)庫管理程序)。
二、Snort入侵檢測系統(tǒng)的安裝
系統(tǒng)安裝在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,采用默認安裝即可,之后設(shè)置Mysql為服務方式運行,在命令提示符里面輸入:c:\\mysql5\\bin>mysqld-nt –install。啟動Mysql服務:在命令提示符里輸入:net start mysql 或開始→設(shè)置→控制面板→管理工具→服務→啟動“MYSQL”服務。
創(chuàng)建snort 運行必須的snort庫和snort_archive庫:
mysql>use mysql;、mysql>create database snort;和mysql>create database snort_archive;
使用c:\\snort\\contrib 目錄下的create_mysql 腳本建立Snort 運行必須的數(shù)據(jù)表:將C:\\Snort\\schemas下的create_mysql文件拷貝到C:\\mysql5\\bin目錄下后執(zhí)行:
mysql>source create_mysql
為Mysql 建立Snort 和ACID帳號:使ACID能正常訪問Mysql中與snort相關(guān)的數(shù)據(jù)文件:mysql> grant usage on *.* to “acid”@”ocalhost” identified by”acidtest”;和mysql> grant usage on *.* to “snort”@”localhost” identified by “snorttest’;
為acid 用戶和snort 用戶分配相關(guān)權(quán)限:
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 擁護設(shè)置密碼:
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的默認監(jiān)聽端口是80,會和APACHE Web Server沖突,為辟免沖突,將APACHE的監(jiān)聽端口配置成其他不常用端口,如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??截恜hp5ts.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服務:開始→設(shè)置→控制面板→管理工具→服務→啟動“Apache2”服務 。在C:\\apache\\Apache2\\htdocs目錄下新建webinf.php,文件內(nèi)容為: ?,F(xiàn)在就可以使用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 = “l(fā)ocalhost”; 、$alert_port = “3306”;、$alert_user =“acid”和$alert_password = “your password”;
/* Archive DB connection parameters */
$archive_dbname = “snort_archive”;、$archive_host = “l(fā)ocalhost”;、$archive_port = “3306”; 、$archive_user = “acid”;、$archive_password = “your password”;和$ChartLib_path = “c:\\php5\\jpgraph\\src”;
建立acid 運行必須的數(shù)據(jù)庫:打開http://localhost:1080/acid/acid_db_setup.php,按照頁面上的提示操作既可。
到此,Snort入侵檢測系統(tǒng)已經(jīng)安裝完畢,運行snort檢測網(wǎng)絡數(shù)據(jù)包,并使用ACID 監(jiān)視服務器情況。系統(tǒng)安裝后,ACID主界面分類顯示數(shù)據(jù)庫中當前數(shù)據(jù)。主界面顯示信息包括:觸發(fā)安全規(guī)則的網(wǎng)絡流量中各協(xié)議所占比例、警報數(shù)量、入侵主機和目標主機IP地址及端口號等。ACID 控制還提供搜索功能,用戶可根據(jù)時間、IP地址、端口號、協(xié)議類型,以及數(shù)據(jù)凈荷(payload)等條件靈活組合,在入侵事件數(shù)據(jù)庫中進行查詢,以幫助網(wǎng)管員分析。
三、結(jié)語
隨著電子商務的興起,電子商務服務器的安全問題已經(jīng)不能忽視。本文介紹了一個Windows平臺下基于Snort的入侵檢測系統(tǒng),它能很好的保護電子商務服務器。為電子商務的美好未來,添上了濃墨重彩的一筆,使電子商務在更安全的環(huán)境下健康發(fā)展。
參考文獻:
[1]Thomas M.Chen.Intrusion Detection for Viruses and Worms[J].Dept ofElectrical Engineering Southern Methodist University,2004
[2]唐正軍李繼華編著:入侵檢測技術(shù)[M].2001-05
[3]CIDF working group The Common Intrusion Detection Framework Architecture[EB/OL].http://www.Gidos.org/