Presentation is loading. Please wait.

Presentation is loading. Please wait.

實驗 7:安裝及建置入侵偵測防禦系統.

Similar presentations


Presentation on theme: "實驗 7:安裝及建置入侵偵測防禦系統."— Presentation transcript:

1 實驗 7:安裝及建置入侵偵測防禦系統

2 實驗 7:安裝及建置入侵偵測防禦系統 簡介 實驗目標:
本實驗之目的是讓學生學習如何架設輕量級入侵偵測系統Snort,並且將Snort所偵測到的alert資訊導入MySQL Database;接著架設Apache Http Server,結合adodb與jpgraph套件,架設ACID(Analysis Console for Intrusion Databases) for Snort的網站,讓使用者可以使用瀏覽器與ACID所提供的圖形介面便可即時監控Snort的偵測狀況。 參考資料: 參考資料:

3 實驗 7:安裝及建置入侵偵測防禦系統 實驗所需工具與簡介: 實驗所需工具與簡介
Snort 2.4.4(Snort_244_Installer.exe):Snort為Marty Roesch在1998年所發展出來的輕量級入侵偵測系統(Intrusion Detection System, IDS),是一個免費的跨平台的套裝軟體,用作監視小型TCP/IP網的嗅探器(sniffer)、日誌記錄、入侵偵測器。它可以運行在Linux/UNIX和Win32系統上。我們採用舊版Snort 2.4(目前最新版為 ,2008/02/19)。 Snort 2.4版最新Rule更新檔(snortrules-snapshot-2.4.tar.gz):目前snort 2.6、2.7與2.8版皆有持續更新rule,2.4與2.5只更新到2007年9月,我們所使用的是07年9月的版本。 WinPcap 3.1版(3.1-WinPcap.exe):WinPcap是windows下用來抓取網路封包的引擎,Snort需配合WinPcap使用。 MySQL Server 4.0版(mysql win.zip):MySQL Database目前已出5.1版,用來記錄Snort所發出的alert。 NavcateMySQL v7.0:其提供GUI以方便讓使用者對MySQL Datebase進行設定。

4 實驗 7:安裝及建置入侵偵測防禦系統 實驗所需工具與簡介
Apache http server (apache_ win32-x86-no_ssl.msi):用來架設Http server,配合PHP與ACID運行,將可讓管理者由遠端即時監看Snort的偵測狀況。 PHP 4.4.8(php Win32.zip):搭配Apache http server使用。 Adodb4.8.1(adodb481.zip):由於PHP的資料庫存取函數沒有標準化,Adodb可以讓程式開發者很簡單的去切換資料庫。PHP4支援連結變數(session variables),使用者可以透過ADODB儲存連結資訊,以達成真正的可攜性及彈性。 jpgraph-1.2.2(jpgraph-1.22.tar.gz):這是個方便的繪圖物件,可以讓開發者在開發PHP網頁時方便的自動生成圖片與製作報表。 ACID-0.9.6b23(acid-0.9.6b23.tar.gz):ACID(Analysis Console for Intrusion Databases)套件是專為Snort設計的網頁操作介面,由Roman Danyliw所開發。關於Snort配合ACID使用的說明在snort官方網站中有做說明,link為:

5 實驗 7:安裝及建置入侵偵測防禦系統 實驗步驟 Step 1 安裝snort Step 2 安裝WinPcap Step 3 安裝MySQL
Step 4 安裝MySQL管理工具NavicateMySQL Step 5 安裝Apache Server Step 6 安裝PHP 4 Step 7 安裝acid Step 8 安裝adodb及Jpgraph Step 9 設定acid Step 10 啟動Snort Step 11 使用ACID

6 實驗 7:安裝及建置入侵偵測防禦系統 Step 1 安裝snort 安裝Snort 2.4.4 持續按Next直到安裝完成

7 實驗 7:安裝及建置入侵偵測防禦系統 Step 1 安裝snort
安裝完之後,開啟C:\Snort\etc的snort.conf尋找並修改下列設定的屬性如下: var HOME_NET /24 (自行修改) var RULE_PATH C:/Snort/rules output database: log, mysql, user=snort password=snort dbname=snort host=localhost (user與password使用者可自訂) include C:\Snort\etc\classification.config Snort安裝完後,並沒有附上rule檔,因此必需上網download最新的rule檔,在Snort官方網上,會針對使用者的權限提供不同的rule,在此,使用者分成三種: Subscriber:可以取得最新最即時更新的rules Registered:能取得更新時間超過30天的rules Unregistered:只能得到幾個較重要的rule 更新Snort Rules 將下載的rule檔(snortrules-snapshot-2.4.tar.gz)解壓縮後放置C:\snort\rules下 (Snort的安裝目錄\Rules) 參考資料:

8 實驗 7:安裝及建置入侵偵測防禦系統 Step 2 安裝WinPcap 安裝WinPcap 3.1
按Next直到安裝完成,安裝完成後請重新開機。

9 實驗 7:安裝及建置入侵偵測防禦系統 Step 3 安裝MySQL 安裝MySQL ,並選擇Typical 直到安裝完成

10 實驗 7:安裝及建置入侵偵測防禦系統 Step 3 安裝MySQL
安裝完MySQL 之後,請至windowsXP的控制台系統管理工具服務將MySQL設為啟動。

11 實驗 7:安裝及建置入侵偵測防禦系統 Step 4 安裝NavicateMySQL 安裝MySQL管理工具NavicateMySQL
按下一步直到安裝完成

12 實驗 7:安裝及建置入侵偵測防禦系統 Step 4 安裝NavicateMySQL 安裝完成後,執行NavicateMySQL
點擊連線:舊版MySQL server沒對root設定密碼,因此,主機名稱:localhost/或MySQLserver的ip,埠3306,使用者名稱root,密碼無,進行連線。若連線失敗,請至控制台服務MySQL查看是否有運作。

13 實驗 7:安裝及建置入侵偵測防禦系統 Step 4 安裝NavicateMySQL
連線後,幫snort建新一個新的資料庫名為snort,在localhost上按右鍵,選擇「新增資料庫」 之後就會多出一個snort的資料庫,裡面的表單是空的。接著匯入snort專用的schema,在localhost上按右鍵,選擇「執行批次任務檔案」

14 實驗 7:安裝及建置入侵偵測防禦系統 Step 4 安裝NavicateMySQL
載入C:\Snort\schemas\Create_mysql (沒有副檔名) 就可以看到snort的表單被建立完成。

15 實驗 7:安裝及建置入侵偵測防禦系統 Step 4 安裝NavicateMySQL 接著點擊NavicateMySQL的「管理使用者」
@%代表由remote連線至MySQL Server的所有使用者 @localhosts代表直接在本機對MySQL Serve進行存取的所有使用者

16 實驗 7:安裝及建置入侵偵測防禦系統 Step 4 安裝NavicateMySQL
接著建立snort要存取MySQL Server的帳號,例如snort/snort 點擊 「加入使用者」 按確定即可,需針對remote與localhost各建立一組snort連線(如果使用者會由外部對MySQL server存取snort所偵測到的alert時需要建立remote,反之,則只需要建立localhost的即可。) 設定好後在localhost的圖示上按右鍵選擇「關閉連線」,接著localhost的圖示上按右鍵選擇「連線內容」輸入root的密碼,便可連線。 接著要為snort的帳號設定可以存取snort資料表的權限 點擊NavicateMySQL的「管理使用者」

17 實驗 7:安裝及建置入侵偵測防禦系統 Step 5 安裝Apache Server 安裝Apache HTTP Server 2.0.63
設定網域Domain、與Server Name

18 實驗 7:安裝及建置入侵偵測防禦系統 Step 5 安裝Apache Server Type選擇Typical
按Next>直到安裝結束。

19 實驗 7:安裝及建置入侵偵測防禦系統 Step 6 安裝PHP 4 PHP4.4.8:
PHP(4.4.8版):將PHP解壓安裝在C:\Snort\php,安裝完畢時,須在php的目錄進行下列動作: 將php4ts.dll複製到C:\WINDOWS\system32下 將php.ini-dist複製到C:\WINDOWS下,並變更檔名為php.ini,開啟php.ini檔尋找並修改下列設定的屬性如下: max_execution_time = 60 extension_dir = "C:\Snort\php\extensions“ session.save_path = "C:\Snort\php\sessiondata“ 在C:\Snort\php底下新增資料夾,命名為sessiondata,這是為了稍後會使用的ACID而設立。 在安裝完PHP後,切換到Apache預設的安裝目錄C:\Program Files\Apache Group\Apache2\conf開啟httpd.conf,並增加下列兩行設定: LoadModule php4_module "C:\Snort\php\sapi\php4apache2.dll" AddType application/x-httpd-php .php PHP4.4.8:

20 實驗 7:安裝及建置入侵偵測防禦系統 Step 7 安裝acid
只需使用Tarball套件安裝時所用到的acid-0.9.6b23.tar.gz檔案即可,將該壓縮檔中所有檔案解壓縮至C:\Program Files\Apache Group\Apache2\htdocs\acid,並開啟acid_conf.php 檔尋找並修改下列設定的屬性如下: /* Path to the DB abstraction library */ $DBlib_path = "C:\Snort\php\adodb"; /* The type of underlying alert database */ $DBtype = "mysql"; /* Alert DB connection parameters */ $alert_dbname = "snort"; $alert_host = "localhost"; $alert_port = "3306"; $alert_user = "snort"; $alert_password = "之前設定的snort使用者密碼"; /* Archive DB connection parameters */ $archive_dbname = "snort"; $archive_host = "localhost"; $archive_port = "3306"; $archive_user = "snort"; $archive_password = "之前設定的snort使用者密碼"; /* Path to the graphing library */ $ChartLib_path = "C:\Snort\php\jpgraph-1.22\src";

21 實驗 7:安裝及建置入侵偵測防禦系統 Step 8 安裝adodb及Jpgraph 安裝adodb及Jpgraph
分別將adodb481.zip及jpgraph-1.22.tar.gz的檔案解壓縮到 C:\Snort\php\adodb C:\Snort\php\jpgraph-1.22 開啟C:\Snort\php\jpgraph-1.22\src下的jpgraph.php檔,並增加一行設定如下: // For internal use only DEFINE("_JPG_DEBUG",false); DEFINE("_FORCE_IMGTOFILE",false); DEFINE("_FORCE_IMGDIR",'/tmp/jpgimg/'); DEFINE("CACHE_DIR", "/tmp/jpgraph_cache"); 增加此行

22 實驗 7:安裝及建置入侵偵測防禦系統 Step 9 設定ACID 使用瀏覽器開啟
server的ip位址) /acid/acid_main.php (如 為acid網頁所在之電腦的ip)開啟畫面如下: 此為第一次使用會出現的頁面,點擊Setup page進行設定 , 按下Create ACID AG,如此便完成ACID之設定。

23 實驗 7:安裝及建置入侵偵測防禦系統 Step 10 啟動Snort 進入XP的MS-DOS命令提示字元,啟動 snort
首先,必須輸入snort –W 來檢測系統上有多少interface C:\Snort\bin>snort -W ,,_ -*> Snort! <*- o" )~ Version ODBC-MySQL-FlexRESP-WIN32 (Build 28) '''' By Martin Roesch & The Snort Team: (C) Copyright Sourcefire Inc., et al. NOTE: Snort's default output has changed in version 2.4.1! The default logging mode is now PCAP, use "-K ascii" to activate the old default logging mode. Interface Device Description 1 \Device\NPF_GenericDialupAdapter (Generic dialup adapter) 2 \Device\NPF_{22B158EC-2C8A-46F2-A6BC-616E25B1E54D} (Intel(R) PRO/1000 PL Network Connection (Microsoft's Packet Scheduler) ) 由上面指令可得知我們要用來監測封包的網卡是interface 2

24 實驗 7:安裝及建置入侵偵測防禦系統 Step 10 啟動Snort Snort便開始進行偵測
接著啟動Snort,採用的設定檔為C:\Snort\etc\snort.conf ,log存放在C:\Snort\log ,監聽的interface為 i2 C:\Snort\bin>snort -c C:\Snort\etc\snort.conf -l C:\Snort\log -i2 Snort便開始進行偵測 Snort便開始進行偵測

25 實驗 7:安裝及建置入侵偵測防禦系統 Step 11 使用ACID
Added 0 alert(s) to the Alert cache:最新加入的alert數量。 Queried on:最新查詢的日期時間。 Database:資料庫資訊。 Time windows:ACID安裝的安裝時間。 Sensors(感應器的數量):網路卡個數。 Unique Alerts: (categories):alerts中所包含種類數。 Total Number of Alerts:alert的總數。 Source IP addresses:alert的來源主機IP位址個數。 Dest. IP addresses:alert的目的主機IP位址個數。 Unique IP links:不重複IP位址的連結數。 Source Ports:封包來源主機IP位址的port數。 Dest. Ports:封包目的主機IP位址的port數,可區分成TCP與UDP。 Traffic Profile by Protocol:將偵測到的封包以protocol進行統計,針對port scan的alert不列入此計算之中。

26 實驗 7:安裝及建置入侵偵測防禦系統 Step 11 使用ACID Search:使用複合條件查詢alert資料。
Graph Alert data:設定以統計圖方式呈現alert記錄情況。 Most recent Alerts: any protocol, TCP, UDP, ICMP(最新的alert):可全部檢視,或依封包協定類別區分TCP、UDP、ICMP檢視。 Today's: alerts unique, listing; IP src / dst(今天的alert):可檢視不重複的alert,或總覽alert;亦可依來源/目的主機IP位址區分檢視。 Last 24 Hours: alerts unique, listing; IP src / dst(最近24小時的alert):可檢視不重複的alert,或總覽alert;亦可依來源/目的主機IP位址區分檢視。 Last 72 Hours: alerts unique, listing; IP src / dst(最近72小時的alert):可檢視不重複的alert,或總覽alert;亦可依來源/目的主機IP位址區分檢視。 Most recent 15 Unique Alerts(最新15種不重複的alert) Last Source Ports: any , TCP , UDP: 最新alert的來源位址埠號,可全部檢視,或依封包協定類別區分TCP、UDP檢視。 Last Destination Ports: any , TCP , UDP:最新alert的目的位址埠號,可全部檢視,或依封包協定類別區分TCP、UDP檢視。 Most frequent 5 Alerts(最頻繁的5種alert) Most Frequent Source Ports: any , TCP , UDP:最頻繁alert的來源位址埠號,可全部檢視,或依封包協定類別區分TCP、UDP檢視。 Most Frequent Destination Ports: any , TCP , UDP:最頻繁alert的目的位址埠號,可全部檢視,或依封包協定類別區分TCP、UDP檢視。 Most frequent 15 addresses: source, destination(15個最頻繁alert的位址):區分來源或目的位址檢視。 Graph alert detection time:設定起迄日期時間以統計圖方式呈現alert偵測時間的記錄情況。 Alert Group (AG) maintenance:alert群組的維護與管理。 Application cache and status:應用程式的資料快取管理與系統狀態檢視。

27 實驗 7:安裝及建置入侵偵測防禦系統 Step 11 使用ACID Search Alerts功能: 系統管理者可設定查詢alert的條件
如[ADD Time]增設查詢不同的起迄日期時間,或[ADD IP Field]增設查詢其他的封包欄位資訊…等。例如:

28 實驗 7:安裝及建置入侵偵測防禦系統 Step 11 使用ACID 其結果如下所示:

29 實驗 7:安裝及建置入侵偵測防禦系統 Step 11 使用ACID
亦可直接由Home頁面,點擊Unique Alerts或categories直接進入Alert分類頁面,觀看目前有多少種Alert發生

30 實驗 7:安裝及建置入侵偵測防禦系統 Step 11 使用ACID
例如TCP Port Scan這類的攻擊,還可以再進一步觀看攻擊的來源與目的位址

31 實驗 7:安裝及建置入侵偵測防禦系統 Snort指令簡易說明 Snort執行時的部份選項說明: Option 說 明 -A
說 明 -A 可設定的模式是full,fast,還是none;full模式是記錄標準的alert模式到alert文件中;Fast模式只寫入timestamp,messages, IPs,ports到文件中,None模式關閉alert -a 顯示ARP包 -b 是把log的信息包記錄為TCPDUMP格式,所有信息包都被記錄為兩進制形式,log處理速度較快 -c 使用設定文件,這個規則文件是告訴系統什樣的信息要log,或者要alert,或者pass -C 使用ASCII碼來顯示訊息,而不是hexdump -d 解碼解到Application Layer -D 把snort以nids的方法來運行,預設情況下alert記錄發送到/var/log/snort.alert中 -e 顯示並記錄datalink header的數據 -F 從文件中讀BPF過濾器(filters) -h 設置網路位址,可為一個IP地址或者一個subnet -I 設定欲監控的interface (由 –W 可查詢) -l LOG信息包記錄到目錄中去 -M 發送WinPopup信息到包含文件中存在的工作站列表中去,這選項需要Samba的支持,wkstn文件很簡單,每一行只要添加包含在SMB中的主機名即可。

32 實驗 7:安裝及建置入侵偵測防禦系統 Snort指令簡易說明 -n 是指定在處理個數據包退出 -N 關閉LOG記錄,但ALERT功能仍舊正常
改變所採用的記錄文件,如正常情況下採用Alert->Pass->Log order, 而採用此選項是這樣的順序:Pass->Alert->Log order,其中Pass是那些允許通過的規則而不記錄和報警,ALERT是不允許通過的規則, LOG指LOG記錄,因為有些人就喜歡奇奇怪怪,像CASPER,QUACK就喜歡反過來操作。 -p 關閉雜亂模式嗅探方式,一般用來更安全的調試網絡 -r 讀取tcpdump方式產生的文件,這個方法用來處理如得到一個 Shadow(Shadow IDS產生)文件,因為這些文件不能用一般的EDIT來編輯查看 -s 報警的記錄到syslog中去,在LINUX機器上,這些警告信息會出現在/var/log/secure,在其他平台上將出現在/var/log/message中去 -S 這個是設置變量值。 -v 使用為verbose模式,把信息包打印在console中,這個選項使用會使速度很慢,這樣結果在記錄多的是時候會出現丟包現象。 -V 顯示snort版本 -W 查詢可監控之interface -w Dump 的控制與管理訊息 -X Dump link層之raw data packet -y 在alert與log中的timestamp加入年份 -? 查詢snort可用之指令選項

33 實驗 7:安裝及建置入侵偵測防禦系統 Snort指令簡易說明
Snort有三種運作模式,分別是:Sniffer模式、封包記錄器模式、與NIDS模式,對於系統管理者而言,雖然使用ACID的網頁介面來檢視並管理入侵偵測的資訊較為方便,然而瞭解相關指令仍有其必要性,以下就區分Snort三個運作模式講解基本指令的操作 Sniffer模式: 啟用Sniffer模式,Snort會讀取在網路上傳送的封包資訊,並連續顯示在終端機畫面上,若只須列出TCP/IP封包標頭資訊,則輸入下列指令即可: snort –v -v選項只會顯示IP、TCP、UDP及ICMP等封包的標頭資訊,若要檢視Application Layer傳輸的資料內容,請加入-d選項;檢視資料DataLink Layer的資訊則加入-e選項,如下列指令: snort -d -e -v 上述指令也可僅用一個"-"符號同時設定,如下: snort -dev 使用sniffer模式時由於封包資訊會不斷地顯示在terminal畫面,如果要中斷執行的話,只要按下Ctrl+C。

34 實驗 7:安裝及建置入侵偵測防禦系統 Snort指令簡易說明 封包記錄器模式:
啟用封包記錄器模式,會將Snort讀取到的網路封包儲存在硬碟中,通常需要利用選項-l來指定一個log目錄(名稱自訂)儲存,指令如下: snort -dev -l ./log log目錄必須事先建立好,否則Snort就會顯示錯誤訊息而無法儲存 執行封包儲存時,Snort會將所接收到的封包依其外部的IP位址(即封包接收端的目的主機位址)分類,並在指定的log目錄底下,以外部IP位址作為名稱再建立子目錄,並儲存目的主機位址相同的封包資訊。 snort有時會使用遠端主機IP位址作為目錄名稱,而有時又以本地網路的主機IP位址為目錄命名。若加上-h選項的指令,便可令Snort僅記錄本地網路之封包資訊。 snort -dev -l ./log -h /24 上述指令意思是將進入 這個網段所有的TCP/IP、DataLink、Application Layer的封包資訊儲存到log目錄下;-h選項後面指定的位址須是CIDR(Classless Inter-Domain Routing)位址。 以上的封包記錄指令,都是將封包資訊儲存成ASCII編碼檔,如果要儲存成相容於tcpdump或Ethereal可以讀取的tcpdump二進位格式檔,可以指定-b選項,其操作指令如下: snort -l ./log -b 使用-b選項的話,所有封包及封包中全部的內容都會儲存在一個tcpdump二進位檔案中,不需要另外再設定-d、-e或-v選項。

35 實驗 7:安裝及建置入侵偵測防禦系統 Snort指令簡易說明 NIDS模式:
Snort執行NIDS時,有6種alert機制可以設定,其中有4種是使用-A選項配合參數使用,說明如下: -A fast(快速模式):alert資訊的格式較單純,僅包含一個時間戳、警告訊息、封包的來源/目的主機位址及埠號等。 -A full(完整模式):為預設選項,未做任何alert機制設定時,即自動選用此參數。 -A unsock(將alert資訊傳遞給另一個Unix Socket):該Socket需要執行一支程式進行傾聽,以便能夠即時alert。 -A none(無alert機制) 另外2種alert機制便是將alert資訊傳送到syslog或透過Samba的smbclient傳輸至Windows系統的WinPopup程式alert。 -s(傳送alert資訊到syslog):Linux系統預設的接收檔案為/var/log/ secure,其他的Unix-like系統可能記錄在/var/log/messages。 -M(經由smbclient將alert資訊傳送到Windows系統):要使用這個功能,必須要以Tarball套件來安裝Snort,且在執行./configure編譯步驟時,附加--enable-smbalerts選項,否則無法執行此選項。 Snort在Linux開機時即時自動啟動,在該Snort啟動檔中,加入一行指令如下: /usr/local/bin/snort -c /etc/snort/snort.conf -i eth0 -g snort & -i選項是指定Snort執行sniffer功能時,所使用的網路連線裝置(如網路卡) -g選項的g代表群組(Group),在Snort以root權限初始化完畢後,便將後續作業的執行權限交給指定的群組使用者,如snort。

36 實驗 7:安裝及建置入侵偵測防禦系統 Snort指令簡易說明
前置處理器(Preprocessor)是從Snort 1.5版以後開始引進的機制,使Snort便於增加其他功能,前置處理器的動作是在網路封包解碼之後,入侵偵測引擎啟動之前要配置前置處理器就是利用preprocessor關鍵字在snort.conf檔中作設定,其指令格式如下: preprocessor <name_of_processor>: <configuration_options> 通常配置前置處理器的作用有三: (一)重組封包 (二)處理協定解碼 (三)偵測不規則或不正常的攻擊動作 preprocessor frag2 提供IP fragment重組及偵測fragment攻擊,使用的記憶體為預設值4MB,fragment timeout值預設為30秒。 preprocessor stream4: detect_scans 若偵測到隱蔽掃瞄,將會發出警告。 preprocessor http_decode: 80 -unicode –cginull 可以制止發出因CGI Null攻擊及IIS Unicode攻擊所產生的警報。 preprocessor bo 偵測Back Orifice流量(特洛伊木馬後門程式)


Download ppt "實驗 7:安裝及建置入侵偵測防禦系統."

Similar presentations


Ads by Google