版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于Snort的入侵檢測(cè)系統(tǒng)使用 Snort、Apache、MySQL、PHP 和 ACID 構(gòu)建高級(jí) IDS入侵檢測(cè)系統(tǒng)和 Snort 介紹在當(dāng)今的企業(yè)應(yīng)用環(huán)境中,安全性是所有網(wǎng)絡(luò)都非常關(guān)注的問(wèn)題。黑客和入侵者已成功侵入一些大公司的網(wǎng)絡(luò)。目前已經(jīng)有一些保護(hù)網(wǎng)絡(luò)架構(gòu)和通信安全的方法,如防火墻、虛擬專用網(wǎng)(VPN)、數(shù)據(jù)加密等。入侵檢測(cè)是近年來(lái)興起的一種較新的網(wǎng)絡(luò)安全技術(shù)。使用入侵檢測(cè)技術(shù),我們可以找出是否有人試圖從已知的攻擊類型中攻擊您的網(wǎng)絡(luò)或主機(jī)。使用入侵檢測(cè)系統(tǒng)收集的信息,我們可以強(qiáng)化我們的系統(tǒng)并將其用于其他合法目的。市場(chǎng)上還有許多漏洞檢測(cè)工具,包括商業(yè)形式和開(kāi)源形式,可用于評(píng)估網(wǎng)絡(luò)中存在
2、的不同類型的安全漏洞。一個(gè)全面的安全系統(tǒng)包括許多工具:防火墻:用于阻止信息流入和流出網(wǎng)絡(luò)。在許多商業(yè)和開(kāi)源產(chǎn)品中都可以找到防火墻。最著名的商業(yè)防火墻產(chǎn)品有 Checkpoint (.checkpoint.)、Cisco (.cisco. )和 Netscreen (.netscreen.)。最著名的開(kāi)源防火墻是 Netfilter/Iptables (.)。入侵檢測(cè)系統(tǒng) (IDS):用于查明是否有人正在闖入或試圖闖入您的網(wǎng)絡(luò)。最著名的 IDS 是 Snort,可以在 HYPERLINK %20%20%20%20:/%20%20%20%20 .下載。漏洞評(píng)估工具:用于發(fā)現(xiàn)和堵塞網(wǎng)絡(luò)中的安全漏洞。
3、漏洞評(píng)估工具收集的信息可以指導(dǎo)我們?cè)O(shè)置適當(dāng)?shù)姆阑饓σ?guī)則,將惡意互聯(lián)網(wǎng)用戶拒之門(mén)外?,F(xiàn)在有許多漏洞評(píng)估工具,例如 Nmap ( HYPERLINK %20%20%20%20:/%20%20%20%20/ ./ ) 和 Nessus ( HYPERLINK %20%20%20%20:/%20%20%20%20/ ./ )。這些工具可以一起使用來(lái)交換信息。有些產(chǎn)品將這些功能捆綁在一起形成一個(gè)完整的系統(tǒng)。Snort 是一個(gè)免費(fèi)的開(kāi)源網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng) (NIDS)。 NIDS 是一種入侵檢測(cè)系統(tǒng) (IDS),用于檢測(cè)網(wǎng)絡(luò)上的流量。 IDS 還包括安裝在特定主機(jī)上并檢測(cè)目標(biāo)主機(jī)行為的系統(tǒng)。迄今為止,IDS
4、 是一項(xiàng)相當(dāng)新的技術(shù),而 Snort 在 IDS 方面處于領(lǐng)先地位。從對(duì)入侵檢測(cè)和相關(guān)概念的介紹開(kāi)始,您將學(xué)習(xí)如何安裝和管理 Snort 以與其他使用 Snort 的產(chǎn)品一起使用。這些產(chǎn)品包括 MySQL 數(shù)據(jù)庫(kù) (.)、入侵?jǐn)?shù)據(jù)庫(kù)分析和管理工具 ACID (./kb/acid)。 Snort 能夠?qū)⑷罩緮?shù)據(jù)(例如警報(bào)和其他日志消息)記錄到數(shù)據(jù)庫(kù)中。 MySQL 用作數(shù)據(jù)庫(kù)引擎來(lái)存儲(chǔ)所有這些數(shù)據(jù)。使用 ACID 和 Apache (.apache.) Web 服務(wù)器,我們可以分析這些數(shù)據(jù)。 Snort、Apache、MySQL 和 ACID 的協(xié)作使我們能夠?qū)⑷肭謾z測(cè)數(shù)據(jù)記錄到數(shù)據(jù)庫(kù)中,然后使
5、用 Web 界面查看和分析數(shù)據(jù)。本書(shū)的組織結(jié)構(gòu)使讀者能夠按照后續(xù)章節(jié)逐步構(gòu)建完整的入侵檢測(cè)系統(tǒng)。安裝和集成各種工具的步驟將在以下章節(jié)中逐步介紹:第 2 章將介紹編譯和安裝 Snort 的基礎(chǔ)知識(shí)。在本章中,您將能夠使用基本安裝和默認(rèn)規(guī)則設(shè)置工作 IDS,以及創(chuàng)建可以記錄入侵活動(dòng)的日志文件。第三章介紹了Snort規(guī)則的相關(guān)知識(shí)、Snort規(guī)則的組成以及如何根據(jù)自己的系統(tǒng)環(huán)境和需求創(chuàng)建自己的規(guī)則。建立好的規(guī)則是構(gòu)建入侵檢測(cè)系統(tǒng)的關(guān)鍵,所以本章非常重要。本章還介紹了不同版本的 Snort 之間的規(guī)則差異。第 4 章介紹了輸入和輸出插件。插件使用 Snort 編譯并用于調(diào)整檢測(cè)引擎的輸入和輸出部分。輸
6、入插件用于在實(shí)際檢測(cè)過(guò)程發(fā)生之前準(zhǔn)備捕獲的數(shù)據(jù)包。輸出插件用于為特定目的格式化數(shù)據(jù)。例如,一個(gè)輸出插件可以將輸出檢測(cè)信息轉(zhuǎn)換為SNMP陷阱信息,另一個(gè)輸出插件可以將該信息轉(zhuǎn)換為數(shù)據(jù)庫(kù)信息。本章將詳細(xì)介紹如何配置和使用這些插件。第 5 章描述 MySQL 數(shù)據(jù)庫(kù)如何與 Snort 一起工作。 MySQL 插件使 Snort 能夠?qū)⑷罩緮?shù)據(jù)記錄到數(shù)據(jù)庫(kù)中以供后續(xù)分析。在本章中,您將學(xué)習(xí)如何在 MySQL 中設(shè)置數(shù)據(jù)庫(kù)以及如何配置數(shù)據(jù)庫(kù)插件以將數(shù)據(jù)記錄到數(shù)據(jù)庫(kù)中。第 6 章介紹 ACID,以及如何使用 ACID 來(lái)獲取您在第 5 章創(chuàng)建的數(shù)據(jù)庫(kù)中的信息并在 Apache 服務(wù)器上顯示。 ACID是一
7、個(gè)重要的工具,提供了豐富的數(shù)據(jù)分析能力,你可以通過(guò)它獲取攻擊頻率、攻擊類別、查看這些攻擊方法的相關(guān)資源等等。 ACID 與 PHP 腳本語(yǔ)言、GD 庫(kù)和 PHPLOT(一種用于繪制圖表的工具)一起使用,以分析 SQL 中的數(shù)據(jù)并繪制圖表。第 7 章重點(diǎn)介紹可與 Snort 一起使用的其他有用工具。閱讀本書(shū)后,您將構(gòu)建一個(gè)包含多個(gè)組件的完整系統(tǒng),如圖 1-1 所示。如圖所示,Snort 捕獲并分析數(shù)據(jù),然后使用輸出插件將數(shù)據(jù)存儲(chǔ)在 MySQL 數(shù)據(jù)庫(kù)中。借助 ACID、PHP、GD 庫(kù)和 PHP 包的 Apache 服務(wù)器使用戶能夠連接到服務(wù)器以通過(guò)瀏覽器顯示數(shù)據(jù)。用戶可以在網(wǎng)頁(yè)上應(yīng)用不同的查詢
8、來(lái)分析、備份、刪除數(shù)據(jù)或顯示圖表。基本上,您可以在一臺(tái)計(jì)算機(jī)上安裝 Snort、MySQL、Apache、PHP、ACID、GD 庫(kù)和 ACID,實(shí)際上閱讀本書(shū)后,您可以構(gòu)建一個(gè)類似于圖 1-2 所示的系統(tǒng)。表明該系統(tǒng)更接近實(shí)際應(yīng)用。在企業(yè)中,通常使用多個(gè) Snort 探針,將探針?lè)胖迷诿總€(gè)路由器或防火墻后面。在這種情況下,您可以使用一個(gè)集中的數(shù)據(jù)庫(kù)來(lái)收集所有探測(cè)信息,并在該數(shù)據(jù)庫(kù)服務(wù)器上運(yùn)行 Apache Web 服務(wù)器,如圖 1-3 所示。1 什么是入侵檢測(cè)?入侵檢測(cè)是指用于檢測(cè)針對(duì)網(wǎng)絡(luò)和主機(jī)的可疑活動(dòng)的一系列技術(shù)和方法。入侵檢測(cè)系統(tǒng)基本上可以分為兩類:基于特征的入侵檢測(cè)系統(tǒng)和異常行為檢測(cè)
9、系統(tǒng)。入侵者通常具有可以被軟件檢測(cè)到的特征,例如病毒。入侵檢測(cè)系統(tǒng)會(huì)檢測(cè)包含已知入侵行為特征或IP協(xié)議異常的數(shù)據(jù)包。基于一系列特征和規(guī)則,入侵檢測(cè)系統(tǒng)可以檢測(cè)和記錄可疑行為并生成警報(bào)?;诋惓5娜肭謾z測(cè)系統(tǒng)通常分析數(shù)據(jù)包協(xié)議頭中的異常,在某些情況下比基于簽名的入侵檢測(cè)系統(tǒng)更好。通常,入侵檢測(cè)系統(tǒng)捕獲網(wǎng)絡(luò)上的數(shù)據(jù)包并將它們與規(guī)則進(jìn)行比較或檢測(cè)其中的異常情況。 Snort 基本上是一個(gè)基于規(guī)則的 IDS,但是輸入插件可以分析協(xié)議頭異常。Snort 的規(guī)則存儲(chǔ)在文本文件中,可以使用文本編輯器進(jìn)行修改。規(guī)則按類別分組。不同類別的規(guī)則存儲(chǔ)在不同的文件中。最后,這些文件由一個(gè)名為 snort.conf 的
10、主配置文件引用。 Snort 在啟動(dòng)時(shí)會(huì)讀取這些規(guī)則并構(gòu)建數(shù)據(jù)結(jié)構(gòu)或鏈表以使用這些規(guī)則捕獲數(shù)據(jù)。識(shí)別入侵特征并用規(guī)則捕獲它們是一項(xiàng)棘手的工作,因?yàn)槟趯?shí)時(shí)檢測(cè)中應(yīng)用的規(guī)則越多,您需要的處理能力就越大,因此使用盡可能少的規(guī)則來(lái)捕獲盡可能多的特性非常重要。 Snort 預(yù)定義了許多入侵檢測(cè)規(guī)則,您可以自由添加自定義規(guī)則。同時(shí),也可以去掉一些構(gòu)建規(guī)則,防止誤報(bào)。1.1.1 一些定義在進(jìn)一步了解入侵檢測(cè)和 Snort 之前,您需要了解一些與網(wǎng)絡(luò)安全相關(guān)的定義,這些定義將在本書(shū)的后續(xù)章節(jié)中反復(fù)應(yīng)用。要理解其他更復(fù)雜的安全概念,必須對(duì)這些術(shù)語(yǔ)有基本的了解。身份識(shí)別系統(tǒng)入侵檢測(cè)系統(tǒng)或 IDS 是用于檢測(cè)入侵
11、的軟件、硬件或兩者的組合。 Snort 是一個(gè)可供公眾使用的開(kāi)源 IDS。 IDS 的實(shí)際功能取決于組件的復(fù)雜性和復(fù)雜性。物理IDS是硬件和軟件的結(jié)合,很多公司都可以提供解決方案。如前所述,IDS 可以采用特征分析技術(shù)、異常檢測(cè)技術(shù)或兩者兼而有之。 網(wǎng)絡(luò) IDS 或 NIDSNIDS 是一種入侵檢測(cè)系統(tǒng),用于捕獲在網(wǎng)絡(luò)介質(zhì)上傳播的數(shù)據(jù)并將其與特征數(shù)據(jù)庫(kù)進(jìn)行比較。根據(jù)數(shù)據(jù)包與特征庫(kù)的匹配,IDS產(chǎn)生告警或?qū)⑷罩居涗浀轿募驍?shù)據(jù)庫(kù)中。 Snort 主要用作 NIDS。 主機(jī) IDS 或 HIDS面向主機(jī)的入侵檢測(cè)系統(tǒng)或 HIDS 作為代理安裝在主機(jī)上。該入侵檢測(cè)系統(tǒng)分析系統(tǒng)和應(yīng)用程序日志以檢測(cè)入侵
12、。其中一些 HIDS 是被動(dòng)的,僅在發(fā)生某些事情時(shí)通知您,而另一些則是主動(dòng)的,嗅探網(wǎng)絡(luò)中主機(jī)的通信狀態(tài)并實(shí)時(shí)生成警報(bào)。 特點(diǎn)特征是數(shù)據(jù)包中包含的信息的特征。簽名用于檢測(cè)一種或多種攻擊性行為。例如,針對(duì)您的 Web 服務(wù)的包中存在“scripts/iisadmin”可能意味著入侵企圖。根據(jù)攻擊的性質(zhì),簽名數(shù)據(jù)可能出現(xiàn)在數(shù)據(jù)包的不同位置。例如,您可能會(huì)在 IP、傳輸層標(biāo)頭(TCP 或 UDP 標(biāo)頭)和/或應(yīng)用層標(biāo)頭或有效負(fù)載中找到攻擊簽名。您將在本書(shū)后面部分了解有關(guān)攻擊簽名的更多信息。通常 IDS 依靠簽名來(lái)檢測(cè)入侵。在發(fā)現(xiàn)新的入侵特征時(shí),一些商業(yè) IDS 需要供應(yīng)商提供更新的特征庫(kù)。在其他 ID
13、S 中,例如 Snort,您可以自己更新特征庫(kù)。 報(bào)警警報(bào)是任何類型的入侵通知。當(dāng) IDS 檢測(cè)到入侵者時(shí),它會(huì)向安全管理員發(fā)出警報(bào)。告警可以是彈窗、終端顯示和致等形式。警報(bào)也存儲(chǔ)在日志文件或數(shù)據(jù)庫(kù)中,供安全專家查看。在本書(shū)的后面部分,您將獲得有關(guān)警報(bào)的更多信息。Snort 的警報(bào)由輸出插件控制,可以生成各種形式的警報(bào)。 Snort 還可以向不同的目標(biāo)致相同的告警,例如,將告警致到數(shù)據(jù)庫(kù),同時(shí)生成 SNMP 陷阱信息。一些插件可以修改防火墻配置,以便可以在防火墻或路由器上控制入侵者。 日志日志信息通常存儲(chǔ)在文件中。默認(rèn)情況下,Snort 將此信息存儲(chǔ)在 /var/log/snort 目錄中,但
14、也可以在啟動(dòng) Snort 時(shí)使用命令行開(kāi)關(guān)更改此目錄。日志信息可以以文本格式或二進(jìn)制格式存儲(chǔ)。以后可以通過(guò) Snort 或 Tcpdump 訪問(wèn)二進(jìn)制格式文件。還有一個(gè)名為 Barnyard 的新工具,可以分析 Snort 生成的二進(jìn)制日志文件。將日志存儲(chǔ)為二進(jìn)制文件會(huì)更有效,因?yàn)檫@種格式的開(kāi)銷(xiāo)相對(duì)較低。要在高速網(wǎng)絡(luò)環(huán)境中應(yīng)用 Snort,需要將日志存儲(chǔ)為二進(jìn)制文件。 誤報(bào)誤報(bào)是錯(cuò)誤地將非侵入行為報(bào)告為侵入行為的警報(bào)。例如,上位機(jī)配置錯(cuò)誤有時(shí)會(huì)產(chǎn)生觸發(fā)規(guī)則,導(dǎo)致誤報(bào)。某些路由器(例如 Linksys 家用路由器)會(huì)生成引起 UpnP 相關(guān)警報(bào)的消息。為了避免誤報(bào),需要對(duì)默認(rèn)規(guī)則進(jìn)行修改和調(diào)試。
15、在某些情況下,您可能需要停止使用某些規(guī)則以避免誤報(bào)。 探測(cè)器運(yùn)行入侵檢測(cè)系統(tǒng)的機(jī)器也稱為探測(cè)器,因?yàn)樗糜凇疤綔y(cè)”網(wǎng)絡(luò)中的活動(dòng)。在本書(shū)后面,如果使用了檢測(cè)器這個(gè)詞,它指的是運(yùn)行 Snort 的計(jì)算機(jī)或其他設(shè)備。IDS 應(yīng)該放置在網(wǎng)絡(luò)中的什么位置?根據(jù)您的網(wǎng)絡(luò)拓?fù)?,您?yīng)該將 IDS 放置在一個(gè)或多個(gè)位置。 IDS 的位置還取決于您要檢測(cè)的入侵類型:外部入侵、外部入侵或兩者兼有。例如,如果您只想檢測(cè)外部入侵活動(dòng),并且只有一臺(tái)路由器連接到 Internet,那么放置 IDS 的最佳位置可能就在路由器或防火墻的外部網(wǎng)絡(luò)接口旁邊。如果您有多個(gè)訪問(wèn) Internet 的借口,也許您想在每個(gè)入口處放置一個(gè)
16、IDS。有時(shí)您還希望能夠檢測(cè)到來(lái)自外部的威脅,因此您可以在每個(gè)網(wǎng)段上放置一個(gè) IDS。很多情況下,不需要對(duì)所有網(wǎng)段實(shí)施入侵檢測(cè),可以只在敏感區(qū)域放置IDS。你知道,更多的 IDS 意味著更多的工作和維護(hù)成本。因此,部署 IDS 取決于您的安全策略,即您要防止什么樣的入侵。圖 1-4 顯示了 IDS 通常放置的典型位置。如圖 1-4 所示,通常應(yīng)該在每個(gè)路由器和防火墻后面放置一個(gè) IDS,對(duì)于網(wǎng)絡(luò)中的非軍事區(qū) (DMZ),在 DMZ 中也應(yīng)放置 IDS。需要注意的是,DMZ 中的 IDS 警報(bào)策略不應(yīng)像專用網(wǎng)絡(luò)中那樣嚴(yán)格。1.1.3 蜜罐蜜罐是一種旨在通過(guò)故意暴露已知弱點(diǎn)來(lái)欺騙黑客的系統(tǒng)。當(dāng)黑客
17、發(fā)現(xiàn)蜜罐時(shí),他們通常會(huì)花一些時(shí)間在上面,在此期間您可以記錄黑客的行為以了解黑客在做什么以及他們正在使用的技術(shù)。一旦您了解了這些技術(shù),您就可以使用您獲得的信息來(lái)強(qiáng)化您的真實(shí)服務(wù)器。有很多方法可以構(gòu)建和放置蜜罐。蜜罐上應(yīng)該有一些暴露的服務(wù),這些服務(wù)包括Telnet服務(wù)(23端口)、服務(wù)(80端口)、FTP服務(wù)(21端口)等等。您應(yīng)該將蜜罐放置在靠近應(yīng)用程序服務(wù)器的地方,這樣黑客很容易將蜜罐誤認(rèn)為是真正的應(yīng)用程序服務(wù)器。例如,如果您的應(yīng)用服務(wù)器的 IP 地址是 1 和 3,那么您可以將您的蜜罐的 IP 地址設(shè)置為 2,并設(shè)置您的防火墻和路由器,以便黑客可以訪問(wèn)服務(wù)器。對(duì)端口的訪問(wèn)被重定向到蜜罐,然后
18、入侵者將蜜罐當(dāng)作真正的服務(wù)器。您應(yīng)該仔細(xì)考慮警報(bào)生成機(jī)制,以便在您的蜜罐受到威脅時(shí)立即獲得信息。將日志保存在不同的機(jī)器上是個(gè)好主意,這樣即使黑客闖入蜜罐,也無(wú)法刪除日志文件。那么什么時(shí)候應(yīng)該安裝蜜罐呢?這取決于你的情況:如果您的組織有足夠的資源來(lái)追蹤黑客,那么您應(yīng)該設(shè)置一個(gè)蜜罐。所謂資源包括硬件和人力。如果您沒(méi)有足夠的資源,那么擁有蜜罐是沒(méi)有意義的,因?yàn)槟阔@取不會(huì)使用的信息是沒(méi)有意義的。只有當(dāng)你能以某種方式使用蜜罐獲得的信息時(shí),蜜罐才有用。如果你想收集行為證據(jù)來(lái)起訴黑客,你也可以使用蜜罐。理想情況下,蜜罐應(yīng)該看起來(lái)像一個(gè)真實(shí)的系統(tǒng),你可以制作一些虛假的數(shù)據(jù)文件、虛假賬戶等,以說(shuō)服黑客相信它
19、,這樣黑客就可以在上面掛上足夠長(zhǎng)的時(shí)間,以便你可以記錄更多活動(dòng).可以在蜜罐項(xiàng)目/上獲取更多信息,可以找到一些自己感興趣的信息,對(duì)蜜罐有進(jìn)一步的了解。您還可以訪問(wèn)另一個(gè) /u/provos/honeyd/ HYPERLINK %20%20%20%20:/%20%20%20%20/u/provos/honeyd/ 以獲取有關(guān)其開(kāi)源秘密罐的信息。獲取更多信息的其他一些地方是:南佛羅里達(dá)蜜罐項(xiàng)目: HYPERLINK %20%20%20%20:/%20%20%20%20 .相關(guān)白皮書(shū): HYPERLINK %20%20%20%20:/%20%20%20%20/whites/howto.html ./w
20、hites/howto.html1.1.4 安全區(qū)域和信任級(jí)別前段時(shí)間,網(wǎng)絡(luò)被分為兩大類:安全和非安全。有時(shí)這種劃分也意味著網(wǎng)絡(luò)在路由器或防火墻之內(nèi)或之外。當(dāng)今的典型網(wǎng)絡(luò)通常根據(jù)不同的安全策略級(jí)別和信任級(jí)別劃分為多個(gè)區(qū)域。比如公司財(cái)務(wù)部門(mén)的安全級(jí)別非常高,在這個(gè)領(lǐng)域只內(nèi)容少數(shù)幾個(gè)服務(wù)運(yùn)行,不內(nèi)容互聯(lián)網(wǎng)服務(wù);而在 DMZ 或非軍事區(qū),網(wǎng)絡(luò)是對(duì)互聯(lián)網(wǎng)開(kāi)放的,這個(gè)區(qū)域的信任程度與財(cái)務(wù)部門(mén)的信任程度有很大不同。根據(jù)信任級(jí)別和安全策略,您應(yīng)該在不同的領(lǐng)域應(yīng)用不同的入侵檢測(cè)規(guī)則和策略。需要不同安全級(jí)別的網(wǎng)絡(luò)在物理上是分開(kāi)的。您可以安裝一組具有不同規(guī)則的 IDS,以檢測(cè)具有不同安全要求的每個(gè)區(qū)域中的可疑網(wǎng)絡(luò)
21、活動(dòng)。例如,如果財(cái)務(wù)部門(mén)的網(wǎng)絡(luò)中沒(méi)有Web服務(wù)器,那么定向到80端口的數(shù)據(jù)包將被記錄為入侵,并且這樣的規(guī)則不能在DMZ中使用,因?yàn)镈MZ中的Web服務(wù)器對(duì)所有人開(kāi)放.IDS 策略在您可以在網(wǎng)絡(luò)中安裝 IDS 之前,您必須制定策略來(lái)檢測(cè)入侵者并采取相應(yīng)措施。策略必須能夠規(guī)定一組規(guī)則以及應(yīng)如何應(yīng)用這些規(guī)則。 IDS 策略應(yīng)包含以下內(nèi)容,您可以根據(jù)自己的要求添加更多內(nèi)容:誰(shuí)將查看 IDS 信息? IDS 為您提供了一種生成入侵警報(bào)的機(jī)制。報(bào)警系統(tǒng)要么是簡(jiǎn)單的文本文件形式,要么是更復(fù)雜的形式,可能集成到 HpOpenView 等網(wǎng)絡(luò)管理軟件或 MySQL 等數(shù)據(jù)庫(kù)中。您的系統(tǒng)中需要有人負(fù)責(zé)監(jiān)控入侵和制
22、定策略。入侵行為可以通過(guò)彈窗或網(wǎng)頁(yè)實(shí)時(shí)監(jiān)控。在這種情況下,操作人員必須了解警報(bào)的含義以及警報(bào)消息中事件的安全級(jí)別。誰(shuí)將管理 IDS、維護(hù)日志等?對(duì)于所有系統(tǒng),都需要建立日常維護(hù)系統(tǒng),IDS也是如此。誰(shuí)處理安全事件?如果沒(méi)有安全事件處理機(jī)制,根本不需要安裝IDS。根據(jù)安全事件的安全級(jí)別,某些情況可能需要政府機(jī)構(gòu)的參與。事件處理程序是什么樣的?該策略應(yīng)定義一些事件響應(yīng)機(jī)制,根據(jù)所涉及的安全級(jí)別向不同的管理層報(bào)告。例行報(bào)告:總結(jié)前一天、一周或一個(gè)月發(fā)生的事情。特征庫(kù)升級(jí):黑客總是在創(chuàng)造新的攻擊手段。如果 IDS 了解攻擊的特征,它就可以檢測(cè)到攻擊。 Snort 規(guī)則使用攻擊特征庫(kù)來(lái)檢測(cè)攻擊。由于攻擊
23、的特征是不斷變化的,因此您還必須為您的 IDS 規(guī)則更新特征數(shù)據(jù)庫(kù)。您可以直接在 Snort 上定期獲取簽名數(shù)據(jù)庫(kù)的更新,或者在發(fā)現(xiàn)新的攻擊方法時(shí)自行更新。每個(gè)項(xiàng)目都需要一個(gè)文檔系統(tǒng)。 IDS 策略應(yīng)描述檢測(cè)到攻擊時(shí)應(yīng)記錄哪些文檔。文檔可以包括簡(jiǎn)單的日志或完整的入侵記錄。您還可以通過(guò)多種方式記錄數(shù)據(jù)。例行報(bào)告也是文檔的一部分。根據(jù)您的 IDS 策略,您可以準(zhǔn)確了解您的網(wǎng)絡(luò)需要多少 IDS 檢測(cè)器和其他資源,并更準(zhǔn)確地計(jì)算 IDS 的成本和費(fèi)用。Snort 的組成部分Snort 在邏輯上可以分為多個(gè)組件,這些組件協(xié)同工作以檢測(cè)特定功能并生成滿足特定要求的輸出格式?;?Snort 的 IDS 由
24、以下主要組件組成:包解碼器預(yù)處理器檢測(cè)引擎日志和警報(bào)系統(tǒng)輸出模塊圖 1-5 顯示了這些部分的關(guān)系。來(lái)自互聯(lián)網(wǎng)的任何數(shù)據(jù)包到達(dá)數(shù)據(jù)包解碼器,然后被致到輸出模塊,在那里它要么被丟棄,要么生成日志或警報(bào)。在本節(jié)中,我們將簡(jiǎn)要介紹這些部分。通讀本書(shū)并建立一些規(guī)則后,您將更加熟悉這些組件之間的交互方式。1.3.1 數(shù)據(jù)包解碼器數(shù)據(jù)包解碼器從不同的網(wǎng)絡(luò)接口獲取數(shù)據(jù)包,并為預(yù)處理或致到檢測(cè)引擎做準(zhǔn)備。網(wǎng)絡(luò)接口可以是以太網(wǎng)、SLIP、PPP等。1.3.2 預(yù)處理器預(yù)處理器是一個(gè)組件或插件,Snort 在檢測(cè)引擎執(zhí)行某些操作以查明數(shù)據(jù)包是否用于入侵之前安排或修改數(shù)據(jù)包。一些預(yù)處理器還可以通過(guò)在數(shù)據(jù)部分發(fā)現(xiàn)異常并
25、生成警報(bào)來(lái)執(zhí)行一些檢測(cè)工作。預(yù)處理器的工作對(duì)于任何IDS檢測(cè)引擎根據(jù)規(guī)則分析數(shù)據(jù)都非常重要。黑客有許多欺騙 IDS 的技術(shù)。例如,如果你創(chuàng)建這樣一個(gè)規(guī)則來(lái)查找包中包含“scripts/iisadmin”的入侵簽名,如果你將字符匹配到過(guò)于嚴(yán)格的限制,那么黑客只需要做一些小變通,他們就可以輕松地欺騙你.例如:“腳本/./iisadmin”“腳本/示例/./iisadmin”“腳本/.iisadmin”更復(fù)雜的是,黑客還在字符中嵌入了 16 位 URI 字符或 Unicode 字符,這對(duì) Web 服務(wù)器同樣合法,請(qǐng)注意 Web 服務(wù)器理解所有這些字符并將它們視為“腳本/iisadmin”人物。如果
26、IDS 嚴(yán)格匹配某個(gè)字符串,則可能無(wú)法檢測(cè)到此類攻擊。預(yù)處理器可以重新排列字符,以便 IDS 可以檢測(cè)到它們。預(yù)處理器也可用于打包分片的組裝。當(dāng)向主機(jī)致大數(shù)據(jù)流時(shí),通常數(shù)據(jù)包會(huì)被分段。例如,以太網(wǎng)中默認(rèn)的最大數(shù)據(jù)包大小為 1500 字節(jié),這是由網(wǎng)絡(luò)接口的 MTU(Maximus Transfer Unit)值決定的。這意味著如果您致大于 1500 字節(jié)的數(shù)據(jù),它將被拆分為多個(gè)數(shù)據(jù)包,以便每個(gè)數(shù)據(jù)包的大小小于或等于 1500 字節(jié)。接收系統(tǒng)可以將這些小片段重新組合回原始數(shù)據(jù)包。在 IDS 上,還需要重新組裝數(shù)據(jù)包才能對(duì)其進(jìn)行表征。例如,可能的入侵簽名通常在一個(gè)數(shù)據(jù)包分片上,而另一半在其他分片上。
27、為了讓檢測(cè)引擎準(zhǔn)確分析特征,需要組裝所有分片。黑客還使用數(shù)據(jù)分片來(lái)對(duì)抗入侵檢測(cè)系統(tǒng)。預(yù)處理器用于對(duì)抗這些攻擊。 Snort 的預(yù)處理器可以組裝數(shù)據(jù)片段、解碼 URI、重新組裝 TCP 流等等。這些功能是 IDS 中非常重要的部分。1.3.3 檢測(cè)引擎檢測(cè)引擎是Snort最重要的部分,它的作用是檢測(cè)數(shù)據(jù)包是否包含入侵行為。檢測(cè)引擎通過(guò) Snort 規(guī)則執(zhí)行此操作。規(guī)則被讀入部分?jǐn)?shù)據(jù)結(jié)構(gòu)或鏈表并與所有數(shù)據(jù)包進(jìn)行比較。如果一個(gè)數(shù)據(jù)包符合規(guī)則,就會(huì)產(chǎn)生相應(yīng)的動(dòng)作(記錄或報(bào)警等),否則該數(shù)據(jù)包將被丟棄。檢測(cè)引擎是 Snort 中與時(shí)間相關(guān)的組件。根據(jù)您機(jī)器的處理能力和您定義的規(guī)則數(shù)量,檢測(cè)引擎將花費(fèi)不同
28、的時(shí)間來(lái)響應(yīng)不同的數(shù)據(jù)包。當(dāng) Snort 在 NIDS 模式下工作時(shí),如果網(wǎng)絡(luò)中的數(shù)據(jù)流量過(guò)多,有時(shí)可能會(huì)因?yàn)闊o(wú)響應(yīng)而丟棄一些數(shù)據(jù)包。檢測(cè)引擎上的負(fù)載取決于以下因素:規(guī)則數(shù)運(yùn)行 Snort 的機(jī)器的處理能力運(yùn)行 Snort 的機(jī)器的部分總線速度網(wǎng)絡(luò)負(fù)載在設(shè)計(jì) NIDS 時(shí),應(yīng)考慮所有相關(guān)因素。您需要了解探測(cè)系統(tǒng)可以解析數(shù)據(jù)包并將規(guī)則應(yīng)用于高的不同部分,這些部分可能是:數(shù)據(jù)包的IP頭數(shù)據(jù)包的傳輸層頭,包括TCP、UDP或其他傳輸層協(xié)議頭,也可以是ICMP頭。應(yīng)用層標(biāo)頭。應(yīng)用層標(biāo)頭包括 DNS 標(biāo)頭、FTP 標(biāo)頭、SNMP 標(biāo)頭、SMTP 標(biāo)頭等等。有時(shí)可以使用一些間接的方法來(lái)獲取應(yīng)用程序頭信息,
29、例如位偏移等。數(shù)據(jù)包有效載荷。這意味著您可以構(gòu)建一個(gè)規(guī)則,使用檢測(cè)引擎在傳輸?shù)臄?shù)據(jù)中查找字符。檢測(cè)引擎在不同版本的 Snort 中工作方式不同。在所有 1.x 版本的 Snort 中,一旦檢測(cè)引擎將數(shù)據(jù)包與規(guī)則匹配,它就會(huì)停止進(jìn)一步處理,然后根據(jù)規(guī)則生成警報(bào)或日志,這意味著即使數(shù)據(jù)包匹配多個(gè)規(guī)則,也只有第一個(gè)應(yīng)用規(guī)則,不進(jìn)行其他匹配,這是有益的,但以下情況除外:如果數(shù)據(jù)包匹配的第一條規(guī)則是低優(yōu)先級(jí),則僅生成低優(yōu)先級(jí)。警告,即使此數(shù)據(jù)包也匹配其他具有高優(yōu)先級(jí)的規(guī)則。這個(gè)問(wèn)題在 Snort 的第二個(gè)版本中得到了修復(fù):包在生成警報(bào)之前首先匹配所有規(guī)則,并且在所有規(guī)則都匹配后,選擇優(yōu)先級(jí)最高的規(guī)則警報(bào)
30、。Snort 的檢測(cè)引擎第 2 版被完全重寫(xiě),比以前的版本快得多。在撰寫(xiě)本文時(shí),Snort 2.0 尚未發(fā)布,早期的測(cè)試表明新引擎比舊引擎快了近 18 倍。1.3.4 日志和報(bào)警系統(tǒng)根據(jù)包中的內(nèi)容,包可用于記錄行為或生成警報(bào)。日志可以存儲(chǔ)為簡(jiǎn)單的文本文件、tcpdump 格式文件或其他形式。默認(rèn)情況下,所有日志文件都存儲(chǔ)在 /var/log/snort 目錄中。您可以在命令行上使用 -l 選項(xiàng)來(lái)更改日志和警報(bào)的存儲(chǔ)位置。更多命令行選項(xiàng)將在下一章討論。這些選項(xiàng)可用于修改日志和警報(bào)的類型和詳細(xì)信息等。1.3.5 輸出模塊輸出模塊或插件可以執(zhí)行不同的操作,具體取決于您指定如何保存由日志記錄和警報(bào)系統(tǒng)
31、生成的輸出信息。基本上,這些模塊用于控制日志和警報(bào)系統(tǒng)生成的輸出信息的格式。根據(jù)配置,輸出模塊可以執(zhí)行以下操作:只需登錄 /var/log/snort/alerts 或其他文件致 SNMP 陷阱登錄到 MySQL 或 Oracle 等數(shù)據(jù)庫(kù)。您將在本書(shū)后面了解更多關(guān)于使用 MySQL 的知識(shí)生成 XML 輸出修改路由器或防火墻的配置向 Windows 主機(jī)致 SMB 消息其他工具可用于以消息或網(wǎng)頁(yè)視圖等格式致警報(bào),您將在后面的章節(jié)中了解有關(guān)它們的更多信息。表 1-1 總結(jié)了 IDS 的各種組件。表 1-1 IDS 的組成部分姓名描述包解碼器準(zhǔn)備要處理的包裹預(yù)處理器或輸入插件分析協(xié)議標(biāo)頭、規(guī)范標(biāo)
32、頭、檢測(cè)標(biāo)頭異常、組裝數(shù)據(jù)包片段和組裝 TCP 流檢測(cè)引擎將包與規(guī)則進(jìn)行比較日志和警報(bào)系統(tǒng)生成警報(bào)和日志輸出模塊將警報(bào)和日志輸出到最終目的地1.4 關(guān)于開(kāi)關(guān)根據(jù)您使用的交換機(jī),您將有多種方法在交換機(jī)端口上安裝 Snort 機(jī)器。某些交換機(jī)(例如 CISCO)內(nèi)容您將所有流量復(fù)制到連接 Snort 機(jī)器的端口,該端口通常稱為 Spanning 端口。安裝 Snort 的最佳位置是直接在路由器或防火墻后面,以便 Snort 可以在所有 Internet 流量進(jìn)入交換機(jī)或集線器之前捕獲它。例如,您的防火墻有一條 T1 線路連接到 Internet,并使用交換機(jī)連接部分網(wǎng)絡(luò)。典型的連接方案如圖 1-6
33、 所示:如果您的交換機(jī)有 Spanning 端口,您可以將 IDS 適配器連接到 Spanning 端口,如圖 1-7 所示,以便 IDS 可以看到所有到 Internet 的流量以與部門(mén)通信。您還可以將 IDS 連接到防火墻和交換機(jī)之間的 HUB,這樣所有傳入和傳出的流量也對(duì) IDS 可見(jiàn),如圖 1-8 所示。但需要注意的是,如果IDS按照?qǐng)D1-8進(jìn)行布置,那么IDS將無(wú)法獲取對(duì)外通信的數(shù)據(jù)包,只能看到與Internet的通信。這種方案對(duì)于外部網(wǎng)絡(luò)是可信的,預(yù)期的攻擊從外部非常有用。1.5 跟蹤TCP數(shù)據(jù)流Snort 添加了一個(gè)名為 Stream4 的新預(yù)處理器,它可以同時(shí)處理數(shù)千個(gè)并發(fā)數(shù)據(jù)
34、流。它的配置將在第 4 章討論。它可以重組 TCP 數(shù)據(jù)流并執(zhí)行狀態(tài)檢查。這意味著您可以組裝一個(gè)特定的 TCP 會(huì)話,并在使用多個(gè) TCP 數(shù)據(jù)包執(zhí)行攻擊的方式中發(fā)現(xiàn)異常。您還可以查找進(jìn)出特定服務(wù)器端口的數(shù)據(jù)包。1.6 Snort 支持的平臺(tái)Snort 支持多種硬件平臺(tái)和操作系統(tǒng)。 Snort 目前支持以下操作系統(tǒng): Linux OpenBSD NetBSD Solaris(Sparc或 i386) HP-UX AIX IRIX 蘋(píng)果系統(tǒng) 窗戶您可以訪問(wèn) Snort 的 HYPERLINK %20%20%20%20:/%20%20%20%20 .以獲取 Snort 當(dāng)前支持的平臺(tái)列表。1.7
35、如何保護(hù)IDS本身一個(gè)關(guān)鍵問(wèn)題是,如何保護(hù)運(yùn)行IDS的系統(tǒng)?如果 IDS 本身的安全性受到威脅,您收到的警報(bào)可能是錯(cuò)誤的,或者您可能根本收不到警報(bào)。入侵者可能會(huì)在進(jìn)行實(shí)際攻擊之前禁用 IDS。有很多方法可以保護(hù)您的系統(tǒng),從一般建議到一些復(fù)雜的方法,其中一些在下面提到:您可以做的第一件事是不在運(yùn)行 IDS 探測(cè)的機(jī)器上運(yùn)行任何服務(wù)。 Web 服務(wù)是探索系統(tǒng)的最常用方法。當(dāng)出現(xiàn)新的威脅時(shí),供應(yīng)商會(huì)發(fā)布相應(yīng)的補(bǔ)丁,這只是一個(gè)持續(xù)的、永無(wú)止境的過(guò)程。您的 IDS 應(yīng)該有制造商提供的最新補(bǔ)丁。例如,如果您的 Snort 在 Windows 機(jī)器上運(yùn)行,您應(yīng)該安裝 Microsoft 發(fā)布的所有最新安全補(bǔ)
36、丁。配置您的 IDS 機(jī)器,使其不會(huì)響應(yīng) ping(ICMP 回顯)。如果您在 Linux 機(jī)器上運(yùn)行 IDS,請(qǐng)使用 netfileter/iptables 阻止任何不必要的數(shù)據(jù),Snort 仍然可以看到所有數(shù)據(jù)包。如果您的 IDS 機(jī)器僅用于入侵檢測(cè),那么除非絕對(duì)必要,否則不要在其上執(zhí)行任何其他活動(dòng)來(lái)設(shè)置其他用戶帳戶。除了這些通用的方法,Snort 還可以在一些特殊的方法下應(yīng)用。下面有兩種特殊的技術(shù)可以防止 Snort 受到攻擊。1.7.1 在 Stealth 界面上運(yùn)行 Snort您可以在僅偵聽(tīng)傳入數(shù)據(jù)包而不向外界致任何數(shù)據(jù)包的隱形端口上運(yùn)行 Snort。在隱形端口上,我們使用一根特殊的
37、電纜,在運(yùn)行 Snort 的主機(jī)上,將端口的引腳 1 和 2 短接,并將引腳 3 和 6 短接到另一端。您可以在 Snort 的常見(jiàn)問(wèn)題解答頁(yè)面 /./docs/faq.html 上找到有關(guān)此方法的更多信息。1.7.2 在沒(méi)有IP地址的接口上運(yùn)行Snort您還可以在未配置 IP 地址的接口上運(yùn)行 Snort。例如,在 Linux 機(jī)器上,您可以使用“ifconfig eth0 up”之類的命令來(lái)激活接口 eth0,而無(wú)需配置 IP 地址。這種方法的好處是因?yàn)?Snort 主機(jī)沒(méi)有 IP 地址,所以沒(méi)有人可以訪問(wèn)它。您可以在 eth1 上配置 IP 地址以訪問(wèn)此探針。請(qǐng)參見(jiàn)圖 1-9。在 Win
38、dows 系統(tǒng)上,您可以使用未綁定 TCP/IP 協(xié)議的接口,這樣該接口上就不會(huì)出現(xiàn) IP 地址。不要忘記禁用其他協(xié)議和服務(wù)。在某些情況下,當(dāng)接口沒(méi)有配置IP地址時(shí),會(huì)遇到wincap(Windows用來(lái)抓包的庫(kù))不可用的提示。如果遇到這樣的情況,可以使用以下方法:在要?jiǎng)?chuàng)建隱蔽端口的網(wǎng)絡(luò)接口上配置 TCP/IP 協(xié)議,同時(shí)禁用所有其他協(xié)議和服務(wù)。啟用 DHCP 客戶端。禁用 DHCP 服務(wù)器。這將使網(wǎng)絡(luò)接口沒(méi)有IP地址,網(wǎng)絡(luò)接口仍然可以綁定TCP/IP協(xié)議。1.8 相關(guān)資源1.入侵檢測(cè)常見(jiàn)問(wèn)題解答: ./newlook/resources/IDFAQ/ID_FAQ.htm2.蜜罐項(xiàng)目: /3.
39、 Snort 常見(jiàn)問(wèn)題解答: ./docs/faq.html4. Honeyd蜜罐: ./u/provos/honeyd/5.Winpcap : winpcap.polito.it/ _6.思科系統(tǒng): .cisco。7.檢查點(diǎn): .checkpoint。8.網(wǎng)屏: .netscreen 。9.網(wǎng)絡(luò)過(guò)濾器: .10.打鼾: .11. Nmap工具: .12. Nessus : .13. MySQL數(shù)據(jù)庫(kù): .14.酸: ./kb/acid15. Apache 網(wǎng)絡(luò)服務(wù)器: .安裝 Snort 并開(kāi)始前期工作Snort 可以作為守護(hù)進(jìn)程安裝,也可以作為包含許多其他工具的完整系統(tǒng)安裝。如果您只是安裝
40、 Snort,您可以獲得受感染數(shù)據(jù)的文本或二進(jìn)制文件,然后可以使用文本編輯器或其他工具(如 Barnyard)查看,如本書(shū)后面所述。在安裝簡(jiǎn)單的情況下,還可以將告警信息以SNMP Trap的形式致到HP OpenView或OpenNMS等網(wǎng)管系統(tǒng)。警報(bào)消息也可以以 SMB 彈出窗口的形式致到 Windows 機(jī)器。如果您使用其他工具安裝它,您可以執(zhí)行更復(fù)雜的操作,例如將 Snort 數(shù)據(jù)致到數(shù)據(jù)庫(kù)并通過(guò) Web 界面對(duì)其進(jìn)行分析。分析工具可以讓您更直觀地查看捕獲的數(shù)據(jù),而無(wú)需花費(fèi)大量時(shí)間處理晦澀的日志文件。下面列出了一些其他可以使用的工具,它們都沒(méi)有特定的任務(wù)。一個(gè)全面的 Snort 系統(tǒng)使用
41、這些工具來(lái)提供一個(gè)帶有后端數(shù)據(jù)庫(kù)的 Web 用戶界面。Snort 使用 MySQL 來(lái)記錄警報(bào)日志。也可以使用類似于 Oracle 的數(shù)據(jù)庫(kù),但 MySQL 更常用于 Snort 環(huán)境。事實(shí)上,Snort 可以使用任何兼容 ODBC 的數(shù)據(jù)庫(kù)。Apache 作為 Web 服務(wù)器PHP 用作 Web 服務(wù)器和 MySQL 數(shù)據(jù)庫(kù)之間的接口。ACID 是一個(gè) PHP 包,用于通過(guò) Web 界面分析 Snort 數(shù)據(jù)。ACID 使用 GD 庫(kù)生成圖形PHPLOT 用于在 ACID 的 Web 界面中以圖形的形式呈現(xiàn)數(shù)據(jù)。為了使 PHPLOT 工作,必須正確配置 GD 庫(kù)。ACID 使用 ADODB
42、連接到 MySQL 數(shù)據(jù)庫(kù)。2.1 Snort安裝方案Snort 的安裝方法取決于運(yùn)行環(huán)境。下面列出了一些典型的安裝方案供參考。您可以根據(jù)自己的網(wǎng)絡(luò)情況進(jìn)行選擇。2.1.1 測(cè)試安裝安裝簡(jiǎn)單,僅包括一個(gè) Snort 探測(cè)器。 Snort 將數(shù)據(jù)記錄到文本文件中。日志文件供 Snort 管理員隨后查看。由于實(shí)際應(yīng)用中分析日志的成本比較高,所以這種方法只適用于測(cè)試環(huán)境。要以這種方式安裝 Snort,您可以在 HYPERLINK %20%20%20%20:/%20%20%20%20 .獲得編譯后的版本。對(duì)于 RedHat Linux,您可以下載 RPM 包。對(duì)于 Windows 系統(tǒng),您可以下載可執(zhí)
43、行文件并將其安裝在您的系統(tǒng)上。2.1.2 安裝單個(gè)探測(cè)器的應(yīng)用 IDS單探測(cè)器 Snort 安裝適用于只有一條 Internet 線路的小型網(wǎng)絡(luò)。將探測(cè)器放在路由器或防火墻后面,以檢測(cè)進(jìn)入您系統(tǒng)的入侵者。但如果您對(duì)所有 Internet 流量感興趣,您也可以將傳感器放置在防火墻之外。在這種安裝方式中,您可以從 HYPERLINK %20%20%20%20:/%20%20%20%20 S下載編譯后的版本,也可以下載源代碼并根據(jù)自己的需求進(jìn)行編譯,以獲得您需要的功能。這個(gè)要求是在編譯版本中完成的。不夠。本章詳細(xì)討論了 Snort 編譯步驟。在應(yīng)用系統(tǒng)安裝中,還可以自動(dòng)啟動(dòng)和關(guān)閉Snort,使系統(tǒng)啟
44、動(dòng)時(shí)自動(dòng)啟動(dòng)Snort。如果您在 Linux 中安裝已編譯的版本,RPM 包將為您完成此操作。在 Windows 上,您可以將 Snort 作為服務(wù)或在啟動(dòng)組中的批處理文件中啟動(dòng)。 Windows 相關(guān)問(wèn)題在第 8 章中討論。日志將被記錄為文本文件或二進(jìn)制文件,并使用類似于 SnortSnarf 的工具分析數(shù)據(jù)。 SnortSnarf 將在第 6 章中詳細(xì)討論。2.1.3 單探測(cè)器與網(wǎng)管系統(tǒng)的集成在應(yīng)用系統(tǒng)中,您可以配置 Snort 向網(wǎng)管系統(tǒng)致 Trap。在企業(yè)應(yīng)用中,有多種網(wǎng)絡(luò)管理系統(tǒng)在使用。最常見(jiàn)的商用網(wǎng)管系統(tǒng)公司有惠普、IBM、Computer Associates等。Snort 使用
45、 SNMP 陷阱集成到網(wǎng)絡(luò)管理系統(tǒng)中。當(dāng)您閱讀本章中的 Snort 編譯步驟時(shí),您將了解 Snort 如何提供 SNMP 功能。第 4 章提供了有關(guān)配置 SNMP 陷阱目標(biāo)、團(tuán)體名稱等的更多信息。2.1.4 帶數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)界面的單探測(cè)器Snort 最常見(jiàn)的用法是與數(shù)據(jù)庫(kù)集成。該數(shù)據(jù)庫(kù)用于記錄,然后可以通過(guò) Web 界面訪問(wèn)。此類安裝的典型設(shè)置包括 3 個(gè)基本組件:鼻息檢測(cè)器數(shù)據(jù)庫(kù)服務(wù)器網(wǎng)絡(luò)服務(wù)器Snort 將日志記錄到數(shù)據(jù)庫(kù)中,您可以通過(guò)與其連接的 Web 瀏覽器查看該數(shù)據(jù)庫(kù)。這種方案可以在第一章的圖1-1中看到。這三個(gè)組件也可以安裝在同一個(gè)系統(tǒng)上,如第一章的圖1-2所示。Snort 可以與不
46、同類型的數(shù)據(jù)庫(kù)一起使用,例如 MySQL、PostgresSQL、Oracle、Microsoft SQL Server 和其他 ODBC 兼容的數(shù)據(jù)庫(kù)。 PHP 用于從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)并生成頁(yè)面。這樣的安裝為您提供了一個(gè)易于管理的功能齊全的 IDS,具有用戶友好的界面。為了讓您能夠使用數(shù)據(jù)庫(kù)登錄,您必須向 Snort 提供數(shù)據(jù)庫(kù)用戶名、密碼、數(shù)據(jù)庫(kù)名稱和數(shù)據(jù)庫(kù)服務(wù)器的地址。在單探針場(chǎng)景中,如果數(shù)據(jù)庫(kù)服務(wù)器安裝在運(yùn)行傳感器的機(jī)器上,則可以使用“l(fā)ocalhost”作為主機(jī)名。編譯 Snort 時(shí),選擇記錄數(shù)據(jù)庫(kù)功能,本章稍后將詳細(xì)介紹。第 4、5 和 6 章討論了 Snort 使用數(shù)據(jù)庫(kù)的配置
47、。2.1.5 使用集中式數(shù)據(jù)庫(kù)管理多個(gè) Snort 檢測(cè)器在分布式環(huán)境中,您可能需要在多個(gè)位置安裝 Snort 檢測(cè)器。管理所有這些探測(cè)器并分析它們單獨(dú)收集的數(shù)據(jù)是一項(xiàng)艱巨的任務(wù)。在企業(yè)應(yīng)用程序中,有多種方法可以將 Snort 設(shè)置為分布式 IDS。一種方法是將多個(gè)檢測(cè)器連接到同一個(gè)中央數(shù)據(jù)庫(kù),如圖 1-3 所示。所有探測(cè)器生成的數(shù)據(jù)都存儲(chǔ)在該數(shù)據(jù)庫(kù)中。還要運(yùn)行類似于 Apache 的 Web 服務(wù)器。然后,用戶可以使用網(wǎng)絡(luò)瀏覽器查看這些數(shù)據(jù)并進(jìn)行分析。但是要明白這種配置存在一些實(shí)際問(wèn)題:?jiǎn)?dòng) Snort 時(shí),所有探針必須能夠訪問(wèn)數(shù)據(jù)庫(kù),否則,Snort 將終止進(jìn)程。必須保證檢測(cè)器始終可以訪問(wèn)
48、數(shù)據(jù)庫(kù),否則數(shù)據(jù)將丟失。如果探測(cè)器和數(shù)據(jù)庫(kù)服務(wù)器之間有防火墻,則需要打開(kāi)相應(yīng)的端口,這有時(shí)與防火墻的安全策略不匹配或違反了安全策略。當(dāng)探針無(wú)法直接訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器時(shí),有一些解決方法??梢詫⑻结樑渲脼樵诒镜卮鎯?chǔ)文件,然后使用 SCP 等工具定期將這些文件上傳到中央數(shù)據(jù)庫(kù)服務(wù)器。 SCP 是一種使用 SSH 協(xié)議進(jìn)行安全文件傳輸?shù)墓ぞ?。防火墻管理員希望內(nèi)容 SSH 端口上的流量。您可以使用 Snort 本身、Barnyard 或其他工具從日志文件中提取數(shù)據(jù)并將它們放入數(shù)據(jù)庫(kù)中,以便以后使用 Web 界面查看。這種方法的唯一問(wèn)題是數(shù)據(jù)庫(kù)中的數(shù)據(jù)不是嚴(yán)格的“實(shí)時(shí)”數(shù)據(jù)。延遲的大小取決于您使用 SCP
49、將數(shù)據(jù)上傳到中央數(shù)據(jù)庫(kù)服務(wù)器的頻率。該方法如圖 2-1 所示。請(qǐng)注意,中央數(shù)據(jù)庫(kù)服務(wù)器必須運(yùn)行 SSH 服務(wù)器才能使用 SCP 上傳數(shù)據(jù)。如第 1 章所述,本書(shū)的最終目的是幫助您安裝 Snort 并使所有軟件包協(xié)同工作。當(dāng)您閱讀本書(shū)時(shí),您將了解這些組件如何相互作用和協(xié)同工作以形成一個(gè)完整的入侵檢測(cè)系統(tǒng)。本書(shū)所涉及的軟件可以在本書(shū)的 authors.phpktr./rhman/ 處獲得源代碼。您還可以在此找到一些腳本,以幫助您在新系統(tǒng)上輕松安裝這些軟件包。事實(shí)上,使用本書(shū)中提到的一些腳本,您可以以根用戶身份使用幾條命令行構(gòu)建一個(gè)有效的 IDS。如果您的 Snort 版本比本書(shū)中介紹的版本更新,您
50、可以在argusnetsec./downloads 下載支持新版本 Snort 的腳本的最新版本。本書(shū)將詳細(xì)介紹這些組件在 RedHat Linux 7.3 機(jī)器上的安裝,但在其他版本的 Linux 或其他平臺(tái)上的過(guò)程類似。為了本書(shū)的方便,所有組件都安裝在 /opt 目錄中。但是如果你使用編譯好的包,安裝位置可能會(huì)有所不同。當(dāng)您使用本書(shū)或本書(shū)中的腳本時(shí),文件將安裝在此目錄中。在本章中,您將學(xué)習(xí)如何將 Snort 作為獨(dú)立產(chǎn)品安裝,在后面的章節(jié)中,將介紹其他一些組件。您可以二進(jìn)制形式或源代碼形式獲取 Snort。編譯的二進(jìn)制包適用于大多數(shù)安裝。如前所述,如果要為 Snort 定制一些功能,則需要
51、下載 Snort 的源代碼版本并自行編譯。例如,有些人喜歡 SMB 警報(bào),但其他人可能認(rèn)為它們不安全。如果您需要不支持 SMB 警報(bào)的 Snort,則需要自己編譯。對(duì)于 SNMP 陷阱、MySQL 等其他一些功能也是如此。自己編譯 Snort 的另一個(gè)原因是您需要了解正在開(kāi)發(fā)的代碼。本章將指導(dǎo)您逐步安裝 Snort。基本安裝過(guò)程非常簡(jiǎn)單,Snort 已經(jīng)為您提供了涵蓋大多數(shù)已知攻擊特征的預(yù)定義規(guī)則。當(dāng)然,自定義安裝仍然需要一些工作。2.2 安裝 Snort在這一部分中,您將學(xué)習(xí)如何安裝已編譯的 Snort 以及如何自己編譯和安裝它。安裝已編譯的 RPM 包非常簡(jiǎn)單,只需幾個(gè)步驟。但是如果您的
52、Snort 是源代碼形式,則需要一些時(shí)間來(lái)理解和安裝。2.2.1 使用 RPM 安裝 Snort從 RPM 包安裝 Snort 涉及以下步驟。 下載從 Snort (. ) 下載最新版本的 Snort。在撰寫(xiě)本文時(shí),最新的二進(jìn)制文件是snort-1.9.0-1snort.i386.rpm 。 安裝運(yùn)行以下命令來(lái)安裝 Snort 二進(jìn)制文件:rpm -安裝 snort-1.9.0-1snort.i386.rpm此命令產(chǎn)生以下操作:創(chuàng)建 /etc/snort 目錄,該目錄將存儲(chǔ) Snort 的規(guī)則文件和配置文件。創(chuàng)建 /var/log/snort 目錄,將存儲(chǔ) Snort 的日志文件。創(chuàng)建 /us
53、r/share/doc/snort-1.9.0 目錄來(lái)存儲(chǔ) Snort 的文檔文件。在此目錄中,您會(huì)找到 FAQ、README 和其他一些文件。在 /usr/sbin 目錄中創(chuàng)建一個(gè)名為 snort-plain 的文件,它是 Snort 守護(hù)進(jìn)程。創(chuàng)建文件/etc/rc.d/init.d/snortd,它是啟動(dòng)和關(guān)閉腳本。在 RedHat Linux 中,它相當(dāng)于 /etc/init.d/snortd。至此基本安裝完成,您可以開(kāi)始使用 Snort。此版本的 Snort 編譯時(shí)不支持?jǐn)?shù)據(jù)庫(kù),您只能使用 /var/log/snort 目錄中的日志文件。 Snort 啟動(dòng)、停止和重啟使用以下命令手動(dòng)
54、啟動(dòng) Snort:/etc/init.d/snortd 啟動(dòng)該命令將啟動(dòng) Snort 守護(hù)進(jìn)程,運(yùn)行“ps -ef”命令,您可以看到類似以下的輸出:根 15999 1 0 18:31? 00:00:01 /usr/sbin/snort -A 快速 -b -l /var/log/snort -d -D -i eth0 -c /etc/snort/snort.conf請(qǐng)注意,每次重新啟動(dòng)機(jī)器時(shí),都必須手動(dòng)啟動(dòng) Snort。您可以通過(guò)創(chuàng)建文件來(lái)自動(dòng)執(zhí)行此過(guò)程,本章稍后將對(duì)此進(jìn)行討論。使用以下命令停止 Snort:/etc/init.d/snortd 停止使用以下命令重新啟動(dòng) Snort:/etc/i
55、nit.d/snortd 重啟2.2.2 從源代碼安裝 Snort為了能夠從源代碼安裝 Snort,您必須首先構(gòu)建它。您可以使用下面描述的步驟構(gòu)建可執(zhí)行的 snort。首先從 Snort (.) 獲取最新版本的 Snort。在編寫(xiě)本書(shū)時(shí),Snort 的最新版本是 1.9.0,下載文件的名稱是snort-1.9.0.tar.gz ,下載后可以保存在 /opt 目錄中。請(qǐng)注意,閱讀本書(shū)時(shí)可能會(huì)有更新的版本,安裝方法類似。 解壓下載后,第一步解壓源碼,執(zhí)行如下命令:tar zxvf snort-1.9.0.tar.gz這將創(chuàng)建 /opt/snort-1.9.0 目錄。確保已將文件下載到 /opt 目
56、錄并在此目錄中運(yùn)行 tar 命令。對(duì)于其他版本的 Snort,目錄名可能不同,目錄名會(huì)反映版本號(hào)。解壓后可以運(yùn)行tree命令觀察tar命令創(chuàng)建的目錄樹(shù),如下圖是/opt/snort-1.9.0的目錄樹(shù):rootconformix opt# tree -d snort-1.9.0snort-1.9.0|- 貢獻(xiàn)|- 文檔|- 等|- 規(guī)則|- 源| |- 檢測(cè)插件| |- 輸出插件| |- 預(yù)處理器| -win32| |- WIN32-代碼| |- WIN32-包括| | |- 網(wǎng)絡(luò)| | |- 網(wǎng)通| | |- 庫(kù)網(wǎng)| | |- mysql| | - RPC| |- WIN32-庫(kù)| | |-
57、 庫(kù)網(wǎng)| | - mysql| - WIN32-項(xiàng)目- 模板21 個(gè)目錄rootconformix opt#這些目錄的主要內(nèi)容如下:contrib 目錄主要包含嚴(yán)格來(lái)說(shuō)不屬于 Snort 本身的應(yīng)用軟件,包括 ACID、MySQL 數(shù)據(jù)庫(kù)生成腳本等。doc 目錄包含文檔文件。etc 目錄包含配置文件。規(guī)則目錄包含預(yù)定義的規(guī)則文件。所有源代碼都在 src 目錄下。模板適用于那些準(zhǔn)備編寫(xiě)自己的插件的人,這對(duì)大多數(shù) Snort 用戶來(lái)說(shuō)沒(méi)有意義。 編譯安裝編譯和安裝過(guò)程包括以下3個(gè)步驟:運(yùn)行配置腳本。運(yùn)行制作命令。運(yùn)行 make install 命令。要啟動(dòng) Snort 編譯過(guò)程,首先進(jìn)入 /opt
58、/snort-1.9.0 目錄并運(yùn)行配置腳本。如果您剛剛開(kāi)始使用類似 GNU 的軟件,您需要了解配置腳本是開(kāi)源軟件包的常用工具。它可用于設(shè)置參數(shù)、創(chuàng)建 makefile 以及檢測(cè)系統(tǒng)上的開(kāi)發(fā)工具和庫(kù)。運(yùn)行配置腳本時(shí),有許多命令行選項(xiàng)可確定將使用哪些組件編譯 Snort。例如,通過(guò)這些選項(xiàng),您可以構(gòu)建對(duì) SNMP、MySQL 或 SMB 警報(bào)和許多其他東西的支持。您還可以自定義 Snort 文件的最終安裝位置。您可以使用“./configure -help”命令查看可用選項(xiàng),如下所示:# ./configure -helpconfigure 配置這個(gè)包以適應(yīng)多種系統(tǒng)。用法:./configure
59、 OPTION. VAR=VALUE.要分配環(huán)境變量(例如,CC、CFLAGS.),請(qǐng)將它們指定為VAR=值。有關(guān)一些有用變量的描述,請(qǐng)參見(jiàn)下文。選項(xiàng)的默認(rèn)值在括號(hào)中指定。配置:-h, -help 顯示此幫助并退出-help=短顯示特定于這個(gè)包的選項(xiàng)-help=recursive 顯示所有包含的包的簡(jiǎn)短幫助-V, -version 顯示版本信息并退出-q、-quiet、-silent 不打印“正在檢查.”消息-cache-file=FILE 緩存測(cè)試結(jié)果在 FILE 禁用-C, -cache-file=config.cache 的 -config-cache 別名-n, -no-create
60、不創(chuàng)建輸出文件-srcdir=DIR 在 DIR 中查找源 配置 dir 或 .安裝目錄:-prefix=PREFIX 在 PREFIX 中安裝與體系結(jié)構(gòu)無(wú)關(guān)的文件/usr/本地-exec-prefix=EPREFIX 在 EPREFIX 中安裝架構(gòu)相關(guān)文件字首默認(rèn)情況下,make install 將安裝所有文件/usr/local/bin, /usr/local/lib 等你可以指定使用 -prefix 的安裝前綴,而不是 /usr/local,例如-prefix=$HOME。為了更好地控制,請(qǐng)使用以下選項(xiàng)。微調(diào)安裝目錄:-bindir=DIR 用戶可執(zhí)行文件 EPREFIX/bin-sbi
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 液體制劑的課程設(shè)計(jì)
- 跳繩游戲主題課程設(shè)計(jì)
- 紙藝社團(tuán)培訓(xùn)課程設(shè)計(jì)
- 幼兒園水泥制作課程設(shè)計(jì)
- 轉(zhuǎn)向臂課程設(shè)計(jì)夾具
- 鉆井課程設(shè)計(jì)參考
- 船舶原理螺旋槳課程設(shè)計(jì)
- 電梯的制作課程設(shè)計(jì)
- 二零二五版加油站整體出售與租賃服務(wù)合同3篇
- 二零二五版辦公室設(shè)備租賃與品牌合作合同3篇
- 公路工程施工現(xiàn)場(chǎng)安全檢查手冊(cè)
- 公司組織架構(gòu)圖(可編輯模版)
- 1汽輪機(jī)跳閘事故演練
- 陜西省銅川市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 禮品(禮金)上交登記臺(tái)賬
- 北師大版七年級(jí)數(shù)學(xué)上冊(cè)教案(全冊(cè)完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
- 2023高中物理步步高大一輪 第五章 第1講 萬(wàn)有引力定律及應(yīng)用
- 青少年軟件編程(Scratch)練習(xí)題及答案
- 浙江省公務(wù)員考試面試真題答案及解析精選
- 系統(tǒng)性紅斑狼瘡-第九版內(nèi)科學(xué)
- 全統(tǒng)定額工程量計(jì)算規(guī)則1994
評(píng)論
0/150
提交評(píng)論