□張 峰
Snort 是一個免費的IDS(入侵檢測系統(tǒng))軟件,它的一些源代碼是從著名的tcpdump 軟件發(fā)展而來的。它是一個給予libpcap 包的網(wǎng)絡(luò)監(jiān)控軟件,可以作為一個十分有效的網(wǎng)絡(luò)入侵檢測系統(tǒng)。Snort 是一個輕量級的入侵檢測系統(tǒng),它具有截取網(wǎng)絡(luò)數(shù)據(jù)報文,進行網(wǎng)絡(luò)數(shù)據(jù)實時分析、報警,以及日志的能力。Snort 的報文截取代碼是給予libpcap 庫的,繼承了libpcap 庫的平臺兼容性。簡單說,Snort 是數(shù)據(jù)包的嗅探器,也是數(shù)據(jù)包記錄器,還是NIDS。提供數(shù)據(jù)包嗅探和記錄功能只是Snort 的部分功能,Snort 的特點就是其入侵檢測功能——根據(jù)入侵規(guī)則匹配數(shù)據(jù)包中的內(nèi)容。
Snort 首先根據(jù)遠(yuǎn)端的IP 地址建立目錄,然后將檢測到的包以tcpdump 的二進制格式記錄或者以自身的解碼形式存儲到這些目錄中個,這樣一來,就可以使用snort 來檢測或者過濾所需要的包。Snort 可提供協(xié)議分析、內(nèi)容查找和匹配,可以用來檢測各種攻擊和探測,如緩沖區(qū)溢出、隱蔽端口掃描、CGI 攻擊、SMB 探測、操作系統(tǒng)指紋識別嘗試等,其中的包嗅探、數(shù)據(jù)包記錄和入侵檢測是其重要功能。Snort 的結(jié)構(gòu)決定了它的各種功能,構(gòu)架圖如圖1 所示。而Snort 架構(gòu)由以下4 個基本模塊構(gòu)成:嗅探器、預(yù)處理器、檢測引擎和輸出模塊。
圖1 snort 架構(gòu)圖
實驗中測試環(huán)境圖2 所示。入侵檢測系統(tǒng)測試環(huán)境由Snort 傳感器、Snort 服務(wù)器、分析控制臺組成,其中終端計算機采用Windows XP 操作系統(tǒng),實驗中所需軟件包括Snort、Mysql、WinPcap、ACID、adodb、Apache、PHP 等,這些軟件都是開源的,因此,在實驗過程中可以完整體現(xiàn)Snort 入侵檢測系統(tǒng)的功能。
圖2 入侵檢測環(huán)境實驗拓?fù)?/p>
(一)安裝Snort 以及winpcap。入侵檢測系統(tǒng)采用Winpcap 對網(wǎng)絡(luò)數(shù)據(jù)包進行捕獲,安裝在c:/ids/wincap 目錄下,過程簡單,且無需進行配置。Snort 安裝到c:/ids/snort 目錄下,cmd 命令行利用snort —W 命令測試,如出現(xiàn)小豬形狀,則證明snort 安裝成功。并下載snort 規(guī)則文件覆蓋snort 相應(yīng)原文件,修改snort 配置文件snort.conf。
(二)安裝Apache 服務(wù)器及其組件php、adodb。在實驗環(huán)境中選擇一臺性能較好的終端,在其上安裝Apache 服務(wù)器。入侵檢測系統(tǒng)選擇Apache 與PHP 搭建Web 平臺,將安裝目錄設(shè)置為c:/ids/apache,需要注意的是,安裝Apache 需要開啟80,如果以前已經(jīng)安裝過IIS,會出現(xiàn)沖突情況,務(wù)必更改端口或者停止IIS 服務(wù)。為保證圖形化界面,進一步PHP 和Adodb,并對apache 配置文件httpd.conf 進行修改,增加php 模塊,對PHP 配置文件進行相應(yīng)修改,使得Apache 能夠支持PHP,PHP 能夠支持Mysql。在apache 網(wǎng)頁目錄下編寫php 腳本,http://localhost/a.php 測試apache 是否支持php。Adodb 是用于PHP 的數(shù)據(jù)庫連接插件,無需安裝,直接復(fù)制即可。
(三)安裝Mysql。Mysql 數(shù)據(jù)庫是為了記錄警告信息數(shù)據(jù),便于進行分析并對入侵檢測信息進行相應(yīng)調(diào)整。將Mysql 安裝在c:/ids/Mysql 下,記錄mysql 登錄密碼,便于以后使用。在cmd 命令行下建立snort 數(shù)據(jù)庫、snort_archive 數(shù)據(jù)庫,并使用數(shù)據(jù)庫和snort 安裝目錄下的create_mysql 腳本。圖形組件jpgraph 安裝過程較為簡單,把jpgraph 復(fù)制到php 目錄下即可。
(四)安裝分析控制臺acid。將acid 復(fù)制到在apache 目錄下,并對acid.conf 進行修改,例如alert_dbname、alert_host、alert_user、alert_password 等修改為與mysql 中創(chuàng)建的數(shù)據(jù)庫一致。ChartLib_path 更改為jpgraph 下的src 等。
圖3 snort 測試頁面
(五)測試。修改完成重啟apache,IE 訪問http://localhost/acid,進行測試。圖3 為測試頁面??稍诖嘶A(chǔ)上,利用已有數(shù)據(jù)進行進一步測試。
在Windows 平臺下安裝基于snort 的入侵檢測系統(tǒng),配置簡單,但是作為輕量級的入侵檢測系統(tǒng),必然存在不足之處。其最大的優(yōu)點是源代碼公開,便于在此基礎(chǔ)上進一步研發(fā),從而完善其功能。
[1]張旭珍.基于Snort 的入侵檢測系統(tǒng)教學(xué)實驗設(shè)計與實現(xiàn)[J].實驗室研究與探索,2014
[2]張峰,張靜,王紅.基于信息融合的入侵檢測方法[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014
[3]盧榮.基于Snort 的分布式入侵檢測系統(tǒng)[J].學(xué)術(shù)研究,2015
[4]楊洋.基于入侵檢測系統(tǒng)與防火墻聯(lián)動的設(shè)計[J].計算機安全,2014
[5]張峰.基于信息融合的入侵檢測方法[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014