摘要:基于濫用和基于異常的檢測(cè)模型是IDS系統(tǒng)兩大檢測(cè)模型,其對(duì)應(yīng)的技術(shù)即為網(wǎng)絡(luò)引擎和主機(jī)代理。本文主機(jī)代理采用基于異常的模型進(jìn)行入侵檢測(cè),與數(shù)據(jù)庫(kù)中存儲(chǔ)的入侵特征庫(kù)進(jìn)行比較,從而判斷是否是一次攻擊,從而實(shí)現(xiàn)一個(gè)網(wǎng)絡(luò)引擎可以監(jiān)視具有多臺(tái)主機(jī)的整個(gè)網(wǎng)段,通過(guò)網(wǎng)絡(luò)引擎實(shí)現(xiàn)企業(yè)網(wǎng)絡(luò)中所有組件不受攻擊。
關(guān)鍵詞:檢測(cè)模型;網(wǎng)絡(luò)引擎;主機(jī)代理;特征庫(kù)
近年來(lái)入侵檢測(cè)系統(tǒng)(IDS)成為一個(gè)非?;钴S的研究領(lǐng)域。所謂入侵檢測(cè),就是通過(guò)從計(jì)算機(jī)網(wǎng)絡(luò)或計(jì)算機(jī)系統(tǒng)中的若干關(guān)鍵點(diǎn)收集信息并對(duì)其進(jìn)行分析,以發(fā)現(xiàn)網(wǎng)絡(luò)或系統(tǒng)中是否有違反安全策略的行為和遭到襲擊的跡象。在二十世紀(jì)八十年代,大多數(shù)入侵者都是高水平的專家,他們經(jīng)常自己研究入侵系統(tǒng)的方法,而很少使用自動(dòng)工具和現(xiàn)成的代碼。雖然現(xiàn)在的入侵者的整體技術(shù)水平越來(lái)越不如以前,但是現(xiàn)在的攻擊工具卻越來(lái)越高級(jí)。這使得任何人都可以使用現(xiàn)成的工具來(lái)攻擊Internet上的計(jì)算機(jī)系統(tǒng)。入侵檢測(cè)系統(tǒng)的目標(biāo)是將攻擊的各種表象特征化,以確認(rèn)所有真正的攻擊而且又不誤認(rèn)非攻擊活動(dòng)。
1 網(wǎng)絡(luò)引擎引入及設(shè)計(jì)
網(wǎng)絡(luò)引擎通過(guò)分析網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包,得到可能入侵的信息。它不僅是一個(gè)數(shù)據(jù)產(chǎn)生和傳輸?shù)墓ぞ?,也具有一定的分析能力。它的功能基本上相?dāng)于一個(gè)完整的基于網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)。為了提高網(wǎng)絡(luò)引擎的檢測(cè)的速度和準(zhǔn)確度,首先,基于已知的攻擊手段來(lái)建立黑客攻擊的元數(shù)據(jù)庫(kù),保存所有已知的黑客攻擊知識(shí),按照其類別進(jìn)行分類。其次,采用建立模糊模型來(lái)對(duì)網(wǎng)絡(luò)引擎上報(bào)事件進(jìn)行分析。
網(wǎng)安入侵檢測(cè)系統(tǒng)中的網(wǎng)絡(luò)引擎是在windows NT平臺(tái)上,使用Visual C++6.0編程實(shí)現(xiàn)。網(wǎng)絡(luò)引擎分為以下幾個(gè)模塊:數(shù)據(jù)包截獲、協(xié)議分析、數(shù)據(jù)分析。結(jié)構(gòu)如圖1所示。
1)數(shù)據(jù)包截獲 該模塊將網(wǎng)絡(luò)接口設(shè)置為混雜模式,將流經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)包截取下來(lái),供協(xié)議分析模塊使用。由于效率的需要,有時(shí)要根據(jù)設(shè)置過(guò)濾網(wǎng)絡(luò)上的一些數(shù)據(jù)包,如特定IP、特定MAC地址、特定協(xié)議的數(shù)據(jù)包。該模塊的過(guò)濾功能的效率是該網(wǎng)絡(luò)監(jiān)聽的關(guān)鍵,因?yàn)閷?duì)于網(wǎng)絡(luò)上的每一數(shù)據(jù)包都會(huì)使用該模塊過(guò)濾,判斷是否符合過(guò)濾條件。低效率的過(guò)濾程序會(huì)導(dǎo)致數(shù)據(jù)包丟失、分析部分來(lái)不及處理。
為提高效率,本系統(tǒng)采用了專門為數(shù)據(jù)監(jiān)聽?wèi)?yīng)用程序設(shè)計(jì)的開發(fā)包Winpcap來(lái)實(shí)現(xiàn)這模塊,開發(fā)包中內(nèi)置的內(nèi)核層所實(shí)現(xiàn)的BPF過(guò)濾機(jī)制和許多接口函數(shù),不但能夠提高監(jiān)聽部分的效率,也降低了開發(fā)的難度。同時(shí)Winpcap是從UNIX平臺(tái)上的Libpcap移植過(guò)來(lái)的,它們具有相同的接口,減輕了不同平臺(tái)上開發(fā)網(wǎng)絡(luò)代理的難度。Winpcap有3部分組成:一個(gè)數(shù)據(jù)包監(jiān)聽設(shè)備驅(qū)動(dòng)程序,一個(gè)低級(jí)的動(dòng)態(tài)連接庫(kù)和一個(gè)高級(jí)的靜態(tài)連接庫(kù)。數(shù)據(jù)包監(jiān)聽設(shè)備驅(qū)動(dòng)程序直接從數(shù)據(jù)鏈路層取得網(wǎng)絡(luò)數(shù)據(jù)包,并不加修改地傳遞給運(yùn)行在用戶層的應(yīng)用程序。數(shù)據(jù)包監(jiān)聽設(shè)備驅(qū)動(dòng)程序支持BPF過(guò)濾機(jī)制,可以靈活地設(shè)置過(guò)濾規(guī)則。低級(jí)的動(dòng)態(tài)鏈接庫(kù)運(yùn)行在用戶層,它把應(yīng)用程序和數(shù)據(jù)包監(jiān)聽設(shè)備驅(qū)動(dòng)程序隔離開來(lái),使得應(yīng)用程序可以不加修改地在不同Windows系統(tǒng)上運(yùn)行。高級(jí)靜態(tài)鏈接庫(kù)和應(yīng)用程序編譯在一起,它使用低級(jí)動(dòng)態(tài)鏈接庫(kù)提供的服務(wù),向應(yīng)用程序提供完善的監(jiān)聽接口。
2)協(xié)議分析 協(xié)議分析的功能是辨別數(shù)據(jù)包的協(xié)議類型,以便使用相應(yīng)的數(shù)據(jù)分析程序來(lái)檢測(cè)數(shù)據(jù)包。把所有的協(xié)議構(gòu)成一棵協(xié)議樹,一個(gè)特定的協(xié)議是該樹結(jié)構(gòu)中的一個(gè)節(jié)點(diǎn),可以用一棵二又樹來(lái)表示,如圖2所示。
一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包的分析就是一條從根到某個(gè)葉子的路徑。在程序中動(dòng)態(tài)地維護(hù)和配置此樹結(jié)構(gòu)即可實(shí)現(xiàn)非常靈活的協(xié)議分析功能。在該樹結(jié)構(gòu)中可以加入自定義的協(xié)議節(jié)點(diǎn),如在HTTP協(xié)議中可以把請(qǐng)求URL列入該樹中作為一個(gè)點(diǎn),再將URL中不同的方法作為子節(jié)點(diǎn),這樣可以細(xì)化分析數(shù)據(jù),提高檢測(cè)效率。樹的結(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)中包含以下信息:該協(xié)議的特征、協(xié)議名稱、協(xié)議代號(hào),下級(jí)協(xié)議代號(hào),協(xié)議對(duì)應(yīng)的數(shù)據(jù)分析函數(shù)鏈表。協(xié)議名稱是該協(xié)議的唯一標(biāo)志。協(xié)議代號(hào)是為了提高分析速度用的編號(hào)。下級(jí)協(xié)議代號(hào)是在協(xié)議樹中其父結(jié)點(diǎn)的編號(hào),如TCP的下級(jí)協(xié)議是IP協(xié)議。協(xié)議特征是用于判定一個(gè)數(shù)據(jù)包是否為該協(xié)議的特征數(shù)據(jù),這是協(xié)議分析模塊判斷該數(shù)據(jù)包的協(xié)議類型的主要依據(jù)。數(shù)據(jù)分析函數(shù)鏈表是包含對(duì)該協(xié)議進(jìn)行檢測(cè)的所有函數(shù)的鏈表。該鏈表的每一節(jié)點(diǎn)包含可配置的數(shù)據(jù),如是否啟動(dòng)該檢測(cè)函數(shù)等。
3)數(shù)據(jù)分析 數(shù)據(jù)分析模塊的功能是分析某一特定協(xié)議數(shù)據(jù)。一個(gè)數(shù)據(jù)分析函數(shù)檢查一種協(xié)議類型的入侵,這樣可以方便地進(jìn)行配置。一個(gè)協(xié)議數(shù)據(jù)可能有多個(gè)數(shù)據(jù)分析函數(shù)來(lái)處理它,這些函數(shù)地被放到一個(gè)鏈表中。一般情況下,數(shù)據(jù)分析盡可能地放到樹結(jié)構(gòu)的葉子節(jié)點(diǎn)上或盡可能地靠近葉子節(jié)點(diǎn),因?yàn)闃涓糠终{(diào)用次數(shù)最多,過(guò)多的數(shù)據(jù)分析函數(shù)聚集在此會(huì)嚴(yán)重影響系統(tǒng)的性能。同時(shí)葉子節(jié)點(diǎn)上的協(xié)議明確,分析程序可以少做一些冗余的工作,也由此提高了系統(tǒng)的處理速度。數(shù)據(jù)分析函數(shù)不僅僅由數(shù)據(jù)包觸發(fā),也可以是系統(tǒng)定義的某一個(gè)事件來(lái)觸發(fā)。如時(shí)間、特定的數(shù)據(jù)包到來(lái)、管理員啟動(dòng)、某種數(shù)據(jù)分析的結(jié)果等都可以觸發(fā)一個(gè)數(shù)據(jù)分析函數(shù)的啟動(dòng)檢測(cè)。這些靈活的觸發(fā)方式提供了良好的可配置性,也提供了一個(gè)開放的、分布的平臺(tái)使各種分析技術(shù)在一個(gè)系統(tǒng)中工作。
數(shù)據(jù)分析的方法是入侵檢測(cè)系統(tǒng)的核心。使用了快速的模式匹配算法,所有的攻擊方法被表示為模式信號(hào),存放在入侵特征數(shù)據(jù)庫(kù)中,當(dāng)前的數(shù)據(jù)如果和數(shù)據(jù)庫(kù)中某種特征匹配,就指出這是這種入侵行為。如發(fā)現(xiàn)一個(gè)HTTP請(qǐng)求某個(gè)服務(wù)器上的“/cgi—bin/phf”,這很可能是一個(gè)攻擊者正在尋找系統(tǒng)的CGI漏洞。
本文設(shè)計(jì)這個(gè)體系結(jié)構(gòu)時(shí)充分考慮了系統(tǒng)的開放性,可以向系統(tǒng)中添加任何一種分析方法,也可以把多種分析方法同時(shí)運(yùn)用到系統(tǒng)中,甚至在不關(guān)閉系統(tǒng)的狀態(tài)下向系統(tǒng)動(dòng)態(tài)地添加新的數(shù)據(jù)分析功能。這充分保證了系統(tǒng)的可靠安全服務(wù)。動(dòng)態(tài)添加數(shù)據(jù)分析功能是通過(guò)添加新的動(dòng)態(tài)連接庫(kù)中的數(shù)據(jù)分析函數(shù)來(lái)實(shí)現(xiàn)的。對(duì)于已經(jīng)有的分析功能,可以在入侵特征數(shù)據(jù)庫(kù)中添加新的入侵特征,以增強(qiáng)現(xiàn)有模式匹配分析方法的檢測(cè)能力。
2 檢測(cè)規(guī)則和匹配算法
網(wǎng)絡(luò)引擎的實(shí)現(xiàn)中,最為關(guān)鍵的部分是數(shù)據(jù)分析模塊。該模塊中涉及到兩個(gè)問(wèn)題:如何描述入侵行為;使用什么算法來(lái)快速檢測(cè)入侵行為的存在。
在實(shí)現(xiàn)中,本文使用了與SNORT兼容的檢測(cè)規(guī)則來(lái)描述入侵行為,使用一種改進(jìn)的Boyer-Moore-Horspool算法來(lái)進(jìn)行匹配。模式匹配是第一代和第二代入侵檢測(cè)系統(tǒng)所使用的基于攻擊特征的網(wǎng)絡(luò)數(shù)據(jù)包分析技術(shù)。它的分析速度快、誤報(bào)率小等優(yōu)點(diǎn)是其他分析方法不可比擬的。協(xié)議分析有效利用了網(wǎng)絡(luò)協(xié)議的層次性和相關(guān)協(xié)議的知識(shí),快速地判斷攻擊特征是否存在。它的高效使得匹配的計(jì)算量大幅度減小。
本文在網(wǎng)絡(luò)引擎的數(shù)據(jù)分析模塊中使用協(xié)議分析和模式匹配結(jié)合的方法來(lái)分析網(wǎng)絡(luò)數(shù)據(jù)包。首先使用協(xié)議分析來(lái)判斷要進(jìn)行哪種類型的特征檢測(cè),然后使用檢測(cè)規(guī)則來(lái)進(jìn)行匹配。
2.1 檢測(cè)規(guī)則
每一個(gè)基于模式匹配的人檢測(cè)方法都需要一個(gè)已定的入侵模式。這就需要一種對(duì)入侵行為的描述方法?,F(xiàn)在的各種入侵檢測(cè)系統(tǒng)中的描述方法各有不同,每個(gè)廠商定義自己的描述方法,每種方法各有優(yōu)缺點(diǎn)。在網(wǎng)安入侵檢測(cè)系統(tǒng)中,采用了Snort的入侵行為描述方法。Snort是一個(gè)開放源代碼的輕量級(jí)的基于網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)。這種描述方法簡(jiǎn)單、易于實(shí)現(xiàn),能夠描述絕大多數(shù)的入侵行為。由于其簡(jiǎn)單,因此檢測(cè)速度比較快。每條規(guī)則分為邏輯上的兩部分:規(guī)則頭部和規(guī)則選項(xiàng)。規(guī)則頭部包含規(guī)則的操作、協(xié)議、源IP地址和目標(biāo)IP地址及其網(wǎng)絡(luò)掩碼和端口。規(guī)則選項(xiàng)包括報(bào)警信息及需要檢測(cè)模式信息。以下是一個(gè)例子:
alert tcp any any->192.168.1.0/24 111(content:“|00 01 86 a5|”;msg:“mounted access”;)
以上規(guī)則描述了:任何使用TCP協(xié)議連接網(wǎng)絡(luò)IP地址192.168.1.1到192.168.1.255的任何主機(jī)的111端口的數(shù)據(jù)包中,如果出現(xiàn)了二進(jìn)制數(shù)據(jù)00 01 86 a5,便發(fā)出警告信息mounted access。在圓括號(hào)前的部分是規(guī)則頭部,在圓括號(hào)中的部分是規(guī)則選項(xiàng)。規(guī)則選項(xiàng)部分中冒號(hào)前面的詞組稱為選項(xiàng)關(guān)鍵字。規(guī)則選項(xiàng)不是規(guī)則的必需部分,它只是用來(lái)定義收集特定數(shù)據(jù)包的特定特征。一條規(guī)則中不同部分必須同時(shí)滿足才能執(zhí)行,相當(dāng)于“與”操作。而同一個(gè)規(guī)則數(shù)據(jù)庫(kù)文件中的所有規(guī)則之間相當(dāng)于一個(gè)“或”操作。規(guī)則頭部包含了定義數(shù)據(jù)包“從哪里來(lái),到什么地方去、干什么”以及發(fā)現(xiàn)滿足這個(gè)規(guī)則所有條件的數(shù)據(jù)包時(shí)應(yīng)該干什么的信息。規(guī)則的第一項(xiàng)是規(guī)則操作,第二項(xiàng)是協(xié)議,第三項(xiàng)是IP地址和端口。規(guī)則操作說(shuō)明當(dāng)發(fā)現(xiàn)適合條件的數(shù)據(jù)包時(shí)應(yīng)該做些什么。有3種操作:alert、log和pass。
alert:使用選定的告警方法產(chǎn)生警報(bào),并記錄這個(gè)數(shù)據(jù)包。
log:記錄該數(shù)據(jù)包。
pass:忽略該數(shù)據(jù)包。
規(guī)則頭部的第二部分是協(xié)議。
規(guī)則頭部的第三部分是IP地址和端口。關(guān)鍵字“any”可以用來(lái)定義任何IP地址。網(wǎng)絡(luò)引擎不提供從主機(jī)名稱到IP地址的轉(zhuǎn)換,所以IP地址規(guī)定為點(diǎn)分十進(jìn)制的IP地址格式,在IP地址后指定網(wǎng)絡(luò)掩碼。例如任何由外部網(wǎng)絡(luò)發(fā)起的連接可以表示為:
alert tcp ! 192.168.1.0/24 any->192.168.1.0/24 111
端口號(hào)可以用幾種方法指定:用“any”、數(shù)字、范圍以及用“非”操作符。“any”指定任意端口。靜態(tài)數(shù)值指定一個(gè)單一端口,如80為HTYP,23為TELNET等。指定端口范圍用“:”,它可以指定一個(gè)范圍內(nèi)的所有端口。如:
log udp any any->192.168.1.0/24 1:1024
記錄從任意主機(jī)發(fā)起的到目標(biāo)網(wǎng)絡(luò)的任何主機(jī)上的1~1 024端口的UDP協(xié)議數(shù)據(jù)包。
log tcp any any->192.168.1.0/24:6000
記錄從任意主機(jī)發(fā)起的到目標(biāo)網(wǎng)絡(luò)的任何主機(jī)上的端口號(hào)小于等于6 000的TCP協(xié)議數(shù)據(jù)。
log top any:1024->192.168.1.0/24 500:
2.2 匹配算法
匹配算法是檢測(cè)引擎的關(guān)鍵,它直接影響系統(tǒng)的實(shí)時(shí)性能。在網(wǎng)絡(luò)數(shù)據(jù)包搜索入侵特征時(shí),需要一個(gè)有效的字符串搜索算法。字符串搜索算法中,最著名的兩個(gè)是KMP算法(Knuth-Morris-Pratt)和BM算法(Boyer-Moore)。兩個(gè)算法在最壞情況下均具有線性的搜索時(shí)間。在實(shí)用上,KMP算法并不比最簡(jiǎn)單的c庫(kù)函數(shù)strstr()快多少,而BM算法則往往比KMP算法快上3~5倍。但是BM算法還不是最快的算法,還有很多改進(jìn)的BM算法存在。
第一次匹配結(jié)果是在第二個(gè)字符處發(fā)現(xiàn)不匹配,于是要把子串往后移動(dòng)。但是該移動(dòng)多少呢?最簡(jiǎn)單的做法是移動(dòng)一個(gè)字符位置;KMP是利用已經(jīng)匹配部分的信息來(lái)移動(dòng);BM算法是做反向比較,并根據(jù)已經(jīng)匹配的部分來(lái)確定移動(dòng)量。Boyer-Moore-Hompool算法根據(jù)被比較串對(duì)齊的最后一個(gè)字符(r)來(lái)決定位移量的多少。本文的方法是根據(jù)緊跟在當(dāng)前子串之后的那個(gè)字符(例子中的i)獲得位移量。
顯然,由于上一次匹配的失敗,移動(dòng)是必然的,因此,設(shè)移動(dòng)步數(shù)為N,則N≥1。但N的最大值是多少?如果這個(gè)字符在模式串中,顯然應(yīng)該根據(jù)模式串的位置來(lái)決定。如果它在模式串中就沒有出現(xiàn),顯然連它自己也不用比較了,因此可以移動(dòng)到該字符的下一個(gè)字符開始比較。以上面的例子,子串“search”中并不存在“i”,則說(shuō)明可以直接跳過(guò)一大片,從“i”之后的那個(gè)字符開始作下一步的比較,如下:
substring searching procedure
search^
比較的結(jié)果,第1個(gè)字符又不匹配,再看子串后面的那個(gè)字符,是“r”,它在子串中出現(xiàn)在倒數(shù)第3位,于是把子串向前移動(dòng)3位,使2個(gè)“r”對(duì)齊,如下:
substring searching procedure
search
這次匹配成功了。回顧整個(gè)過(guò)程,只移動(dòng)了兩次子串就找到了匹配位置,可以看出,用這個(gè)算法,每一步的移動(dòng)量都比BMH算法要大,所以比BMH算法更快。
以下是用類封裝的搜索算法:
2.3 檢測(cè)舉例
以下是網(wǎng)絡(luò)引擎判斷某個(gè)網(wǎng)絡(luò)數(shù)據(jù)包是否是CGI攻擊的一個(gè)示例,協(xié)議規(guī)范指出以太網(wǎng)絡(luò)數(shù)據(jù)包中第13字節(jié)處包含了2個(gè)字節(jié)的第三層協(xié)議標(biāo)識(shí)。本入侵檢測(cè)系統(tǒng)利用該知識(shí)開始第1步檢測(cè):跳過(guò)前面12個(gè)字節(jié),讀取13字節(jié)處的2字節(jié)協(xié)議標(biāo)識(shí):08。根據(jù)協(xié)議規(guī)范可以判斷這個(gè)網(wǎng)絡(luò)數(shù)據(jù)包是IP包。IP協(xié)議規(guī)定IP包的第24字節(jié)處有一個(gè)1字節(jié)的第四層協(xié)議標(biāo)識(shí)。因此系統(tǒng)跳過(guò)的15到24字節(jié)直接讀取第四層協(xié)議標(biāo)識(shí):06,這個(gè)數(shù)據(jù)包是TCP協(xié)議。TCP協(xié)議在第35字節(jié)處有一個(gè)2字節(jié)的應(yīng)用層協(xié)議標(biāo)識(shí)(端口號(hào))。于是系統(tǒng)跳過(guò)第25到34字節(jié)直接讀取第35字節(jié)的端口號(hào):80。
該數(shù)據(jù)包是一個(gè)HTTP協(xié)議的數(shù)據(jù)包。HTTP協(xié)議規(guī)定第55字節(jié)是URL開始處,檢測(cè)特征“GET/cgi—bin/./phf”,因此對(duì)這個(gè)URL進(jìn)行模式匹配。可以看出,利用協(xié)議分析可以減小模式匹配的計(jì)算量,提高匹配的精確度,減少誤報(bào)率。
3 主機(jī)代理
基于主機(jī)的入侵檢測(cè)要依賴于特定的操作系統(tǒng)和審計(jì)跟蹤日志獲取信息,此類系統(tǒng)的原始數(shù)據(jù)來(lái)源受到所依附具體操作系統(tǒng)平臺(tái)的限制,系統(tǒng)的實(shí)現(xiàn)主要針對(duì)某種特定的系統(tǒng)平臺(tái),在環(huán)境適應(yīng)性、可移植性方面問(wèn)題較多。在獲取高層信息以及實(shí)現(xiàn)一些特殊功能時(shí),如針對(duì)系統(tǒng)資源情況的審計(jì)方面具有無(wú)法替代的作用。本文設(shè)計(jì)的入侵檢測(cè)系統(tǒng)應(yīng)用于Windows操作系統(tǒng)。
3.1 數(shù)據(jù)來(lái)源
主機(jī)代理的數(shù)據(jù)來(lái)源不像網(wǎng)絡(luò)引擎的數(shù)據(jù)來(lái)源那樣單一,它可以在系統(tǒng)所能夠訪問(wèn)的所有地方獲得數(shù)據(jù)來(lái)分析。網(wǎng)安入侵檢測(cè)系統(tǒng)主機(jī)代理的數(shù)據(jù)來(lái)源有:
1)系統(tǒng)和網(wǎng)絡(luò)日志文件 黑客經(jīng)常在系統(tǒng)日志文件中留下他們的蹤跡,因此,充分利用系統(tǒng)和網(wǎng)絡(luò)日志文件信息是檢測(cè)入侵的必要條件。日志中包含發(fā)生在系統(tǒng)和網(wǎng)絡(luò)上的不尋常和不期望活動(dòng)的證據(jù),這些證據(jù)可以指出有人正在入侵或己成功入侵了系統(tǒng)。通過(guò)查看日志文件,能夠發(fā)現(xiàn)成功的入侵或入侵企圖,并很快地啟動(dòng)相應(yīng)的應(yīng)急響應(yīng)程序。日志文件中記錄了各種行為類型,每種類型又包含不同的信息,例如記錄“用戶活動(dòng)”類型的日志,就包含登錄、用戶ID改變、用戶對(duì)文件的訪問(wèn)、授權(quán)和認(rèn)證信息等內(nèi)容。很顯然地,對(duì)用戶活動(dòng)來(lái)講,不正常的或不期望的行為就是重復(fù)登錄失敗、登錄到不期望的位置以及非授權(quán)的企圖訪問(wèn)重要文件等等。
2)目錄和文件中的不期望的改變 網(wǎng)絡(luò)環(huán)境中的文件系統(tǒng)包含很多軟件和數(shù)據(jù)文件,包含重要信息的文件和私有數(shù)據(jù)文件經(jīng)常是黑客修改或破壞的目標(biāo)。目錄和文件中的不期望的改變(包括增加、刪除、修改),特別是那些正常情況下限制訪問(wèn)的,很可能就是一種入侵產(chǎn)生的指示和信號(hào)。黑客經(jīng)常替換、修改和破壞他們獲得訪問(wèn)權(quán)的系統(tǒng)上的文件,同時(shí)為了隱藏系統(tǒng)中他們的表現(xiàn)及活動(dòng)痕跡,都會(huì)盡力去替換系統(tǒng)程序或修改系統(tǒng)日志文件。
3)程序執(zhí)行中的不期望行為 網(wǎng)絡(luò)系統(tǒng)上的程序執(zhí)行一般包括操作系統(tǒng)、網(wǎng)絡(luò)服務(wù)、用戶啟動(dòng)的程序和特定目的的應(yīng)用,例如數(shù)據(jù)庫(kù)服務(wù)器。每個(gè)在系統(tǒng)上執(zhí)行的程序由一到多個(gè)進(jìn)程來(lái)實(shí)現(xiàn)。每個(gè)進(jìn)程執(zhí)行在具有不同權(quán)限的環(huán)境中,這種環(huán)境控制著進(jìn)程可訪問(wèn)的系統(tǒng)資源、程序和數(shù)據(jù)文件等。一個(gè)進(jìn)程的執(zhí)行行為由它運(yùn)行時(shí)執(zhí)行的操作來(lái)表現(xiàn),操作執(zhí)行的方式不同,它利用的系統(tǒng)資源也就不同。操作包括計(jì)算、文件傳輸、設(shè)備和其它進(jìn)程,以及與網(wǎng)絡(luò)間其他進(jìn)程的通訊。一個(gè)進(jìn)程出現(xiàn)了不期望的行為可能表明黑客正在入侵你的系統(tǒng)。黑客可能會(huì)將程序或服務(wù)的運(yùn)行分解,從而導(dǎo)致它失敗,或者是以非用戶或管理員意圖的方式操作。
3.2 代理結(jié)構(gòu)
從以上可以看出,主機(jī)代理的數(shù)據(jù)來(lái)源比網(wǎng)絡(luò)引擎復(fù)雜得多,由于數(shù)據(jù)源的不同,分析方法也各不一樣。本系統(tǒng)的主機(jī)代理分為日志分析、文件檢測(cè)、用戶行為監(jiān)測(cè)、主機(jī)網(wǎng)絡(luò)接口檢測(cè)。
4 結(jié)束語(yǔ)
本文設(shè)計(jì)的入侵檢測(cè)系統(tǒng)使用了網(wǎng)絡(luò)引擎來(lái)檢測(cè)流經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)包,一個(gè)網(wǎng)絡(luò)引擎可以監(jiān)視具有多臺(tái)主機(jī)的整個(gè)網(wǎng)段,從路由器的基礎(chǔ)設(shè)施到應(yīng)用程序的訪問(wèn),可以說(shuō)網(wǎng)絡(luò)引擎能夠檢測(cè)企業(yè)網(wǎng)絡(luò)中所有組件所受到的攻擊。不過(guò)網(wǎng)絡(luò)引擎在下列情況下也有局限性:
1)快速網(wǎng)絡(luò) 隨著網(wǎng)絡(luò)速度的加快,有時(shí)候網(wǎng)絡(luò)引擎的工作速度無(wú)法跟上網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)乃俣取?br />
2)加密數(shù)據(jù) 如果網(wǎng)絡(luò)數(shù)據(jù)被加密的話,網(wǎng)絡(luò)引擎即不能起作用,原因是它無(wú)法正確地“看到”網(wǎng)絡(luò)數(shù)據(jù)。
3)交換網(wǎng)絡(luò) 在交換網(wǎng)絡(luò)中,是不可能從一個(gè)中央位置處看見所有網(wǎng)絡(luò)數(shù)據(jù)的。因?yàn)橥ǔ>W(wǎng)絡(luò)數(shù)據(jù)都是停留在交換的網(wǎng)段內(nèi)部。而利用主機(jī)代理,就不受上述情況的限制。利用網(wǎng)絡(luò)引擎和主機(jī)代理,將基于網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)和基于主機(jī)的入侵檢測(cè)系統(tǒng)結(jié)合起來(lái),就構(gòu)成了實(shí)現(xiàn)網(wǎng)絡(luò)入侵檢測(cè)的比較可靠的解決方案。