第4章 基于主機的入侵檢測技術(shù)_第1頁
第4章 基于主機的入侵檢測技術(shù)_第2頁
第4章 基于主機的入侵檢測技術(shù)_第3頁
第4章 基于主機的入侵檢測技術(shù)_第4頁
第4章 基于主機的入侵檢測技術(shù)_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、4.1 審計數(shù)據(jù)的獲取審計數(shù)據(jù)的獲取4.2 用于入侵檢測的統(tǒng)計模型用于入侵檢測的統(tǒng)計模型4.3 入侵檢測的專家系統(tǒng)入侵檢測的專家系統(tǒng)4.4 基于狀態(tài)轉(zhuǎn)移分析的入侵檢測技術(shù)基于狀態(tài)轉(zhuǎn)移分析的入侵檢測技術(shù)4.5 文件完整性檢查文件完整性檢查4.6 系統(tǒng)配置分析技術(shù)系統(tǒng)配置分析技術(shù)第第4章章 基于主機的入侵檢測技術(shù)基于主機的入侵檢測技術(shù)根據(jù)目標(biāo)系統(tǒng)的不同類型和主機入侵檢測的不同要根據(jù)目標(biāo)系統(tǒng)的不同類型和主機入侵檢測的不同要求,所需要收集的審計數(shù)據(jù)的類型不盡相同。求,所需要收集的審計數(shù)據(jù)的類型不盡相同。l首先,從目標(biāo)主機的類型來看,不同操作系統(tǒng)的審計機制設(shè)計存在差異,主機活動的審計范圍和類型也不同。l

2、其次,根據(jù)不同主機入侵檢測系統(tǒng)的設(shè)計要求和需要,其具體選取的審計數(shù)據(jù)類型和來源也各有側(cè)重。以以IDES系統(tǒng)為例。系統(tǒng)為例。IDES在在Sun UNIX目標(biāo)系統(tǒng)環(huán)境目標(biāo)系統(tǒng)環(huán)境下所收集到的審計數(shù)據(jù),主要分為下所收集到的審計數(shù)據(jù),主要分為4個典型類型。個典型類型。 文件訪問: 包括對文件和目錄進(jìn)行的操作,如讀取、寫入、創(chuàng)建、刪除和訪問控制列表的修改。4.1.1 審計數(shù)據(jù)的獲取審計數(shù)據(jù)的獲取 系統(tǒng)訪問: 包括登錄、退出、調(diào)用以及終止超級用戶權(quán)限等。 資源消耗: 包括CPU、I/O和內(nèi)存的使用情況。 進(jìn)程創(chuàng)建命令的調(diào)用: 指示一個進(jìn)程的創(chuàng)建。IDES必須從必須從Sun環(huán)境中的多個不同信息源來收集環(huán)境中

3、的多個不同信息源來收集審計數(shù)據(jù)。這些信息源包括:審計數(shù)據(jù)。這些信息源包括: Sun OS 4.0 標(biāo)準(zhǔn)審計標(biāo)準(zhǔn)審計系統(tǒng)系統(tǒng)、Sun C2 安全審計包和安全審計包和UNIX記賬系統(tǒng)。記賬系統(tǒng)。然而,僅從這兩種審計系統(tǒng)得到的信息對于然而,僅從這兩種審計系統(tǒng)得到的信息對于IDES的入侵檢測分析還是不夠的。還可以對系的入侵檢測分析還是不夠的。還可以對系統(tǒng)另外配置一些其他的審計工具。如統(tǒng)另外配置一些其他的審計工具。如Sendmail,Netlog等。等。對于其他的主機入侵檢測系統(tǒng),例如對于其他的主機入侵檢測系統(tǒng),例如STAT系統(tǒng),系統(tǒng),它所使用的審計數(shù)據(jù)來源主要就是它所使用的審計數(shù)據(jù)來源主要就是Sun

4、OS C2安安全審計包(全審計包(BSM),),針對的是針對的是BSM審計記錄。審計記錄?;谥鳈C的入侵檢測技術(shù) 54.1.2 審計數(shù)據(jù)的預(yù)處理審計數(shù)據(jù)的預(yù)處理q審計日志信息非常龐大;q存在雜亂性、重復(fù)性和不完整性;q雜亂性:代理的審計機制不完全相同,所產(chǎn)生的日志信息存在差異;q重復(fù)性:對于同一個客觀事物系統(tǒng)中存在多個物理描述;q不完整性:由于實際系統(tǒng)缺陷和人為因素所造成的記錄中出現(xiàn)數(shù)據(jù)屬性的值丟失或不確定的情況。審計數(shù)據(jù)的預(yù)處理審計數(shù)據(jù)的預(yù)處理l數(shù)據(jù)的預(yù)處理就是對系統(tǒng)獲取到的各種相關(guān)數(shù)據(jù)進(jìn)行歸納、轉(zhuǎn)換等處理,使其符合系統(tǒng)的需求。l一般采用從大量的數(shù)據(jù)屬性中,提取出部分對目標(biāo)輸出有重大影響的屬

5、性,通過降低原始數(shù)據(jù)的維數(shù)來達(dá)到改善質(zhì)量的目的?;谥鳈C的入侵檢測技術(shù) 7審計數(shù)據(jù)的預(yù)處理審計數(shù)據(jù)的預(yù)處理通常數(shù)據(jù)預(yù)處理應(yīng)該包括以下功能。q 數(shù)據(jù)集成m涉及數(shù)據(jù)的選擇、數(shù)據(jù)的沖突以及數(shù)據(jù)的不一致問題的解決;m并非簡單的數(shù)據(jù)合并,對數(shù)據(jù)進(jìn)行統(tǒng)一化;q 數(shù)據(jù)清理:除去噪音數(shù)據(jù)和無關(guān)數(shù)據(jù),處理遺漏數(shù)據(jù)等。q數(shù)據(jù)變換:規(guī)范化處理。根據(jù)其屬性值的量綱進(jìn)行歸一化處理。q 數(shù)據(jù)簡化:數(shù)據(jù)屬性的約簡。降低數(shù)據(jù)分析的維數(shù)。q 數(shù)據(jù)融合:對多種IDS檢測結(jié)果的融合和決策。基于主機的入侵檢測技術(shù) 8審計數(shù)據(jù)的預(yù)處理審計數(shù)據(jù)的預(yù)處理 (a)數(shù)據(jù)集成 ( b)數(shù)據(jù)清理 2, 32, 100, 59, 48 0.02,

6、0.32, 1.00, 0.59, 0.48 (c)數(shù)據(jù)變換 A126 A2 A1 T1 T2 T2 000 A115 A2 A1 T1 T2 T1400 ( d)數(shù)據(jù)簡化/融合數(shù)據(jù)的規(guī)范化數(shù)據(jù)的規(guī)范化l數(shù)據(jù)的規(guī)范化處理有兩種比較常用的方法: 其中,x為要規(guī)范化的數(shù)值;x為規(guī)范化后的數(shù)值;avg為x所在向量組X的平均值;std(X)為向量組X的標(biāo)準(zhǔn)差。l 其中,x為要規(guī)范化的數(shù)值;x為規(guī)范化后的數(shù)值;max是x所在向量組中元素的最大值;min是x所在向量組中元素的最小值;new_max是規(guī)范化后的目標(biāo)區(qū)間的上限;new_min是規(guī)范化后的目標(biāo)區(qū)間的下限;通過這個公式可以將數(shù)據(jù)規(guī)范化到指定區(qū)間。

7、 ()xavgxstd Xmin(_ max_ min)_ minmaxminxxnewnewnew首先,討論標(biāo)準(zhǔn)審計記錄格式的設(shè)計問題。首先,討論標(biāo)準(zhǔn)審計記錄格式的設(shè)計問題。以以IDES系統(tǒng)為例,系統(tǒng)為例,IDES審計記錄格式是基于若干設(shè)計考慮審計記錄格式是基于若干設(shè)計考慮的。的。首先,它必須通用程度足夠高,以便能夠表示目標(biāo)監(jiān)控系首先,它必須通用程度足夠高,以便能夠表示目標(biāo)監(jiān)控系統(tǒng)的所有可能事件類型。統(tǒng)的所有可能事件類型。其次,它應(yīng)該是該機器中最有效的數(shù)據(jù)表示形式,以將處其次,它應(yīng)該是該機器中最有效的數(shù)據(jù)表示形式,以將處理開銷降低到最小程度。理開銷降低到最小程度。第三,記錄格式應(yīng)該按標(biāo)準(zhǔn)化設(shè)

8、計,使第三,記錄格式應(yīng)該按標(biāo)準(zhǔn)化設(shè)計,使IDES能夠從多個不能夠從多個不同類型的機器處接收輸入記錄,而無須進(jìn)行任何的數(shù)據(jù)轉(zhuǎn)換。同類型的機器處接收輸入記錄,而無須進(jìn)行任何的數(shù)據(jù)轉(zhuǎn)換。理想的情況下,審計記錄只進(jìn)行一次格式化。理想的情況下,審計記錄只進(jìn)行一次格式化。4.1.2 審計數(shù)據(jù)的預(yù)處理審計數(shù)據(jù)的預(yù)處理IDES審計記錄用動作類型來進(jìn)行分類。共有約審計記錄用動作類型來進(jìn)行分類。共有約30種不同的種不同的動作類型。動作類型。每個每個IDES審計記錄包括一個動作類型和若干字段,用于對審計記錄包括一個動作類型和若干字段,用于對該動作進(jìn)行參數(shù)化取值。該動作進(jìn)行參數(shù)化取值。以下是為以下是為IDES入侵檢測

9、分析而定義的動作類型。入侵檢測分析而定義的動作類型。 IA_VOID: 此為沒有操作。此為沒有操作。IA_ACCESS: 指定的文件被引用(但是沒有讀寫)。指定的文件被引用(但是沒有讀寫)。IA_WRITE: 文件被打開以備寫入或者已經(jīng)寫入。文件被打開以備寫入或者已經(jīng)寫入。IA_READ: 文件被打開以備讀取或者已經(jīng)讀取。文件被打開以備讀取或者已經(jīng)讀取。IA_DELETE: 所指定的文件已被刪除。所指定的文件已被刪除。IA_CREATE: 所指定的文件被創(chuàng)建。所指定的文件被創(chuàng)建。IA_RMDIR: 所指定的目錄被刪除。所指定的目錄被刪除。IA_XHMOD: 所指定文件的訪問模式已經(jīng)改變。所指定

10、文件的訪問模式已經(jīng)改變。IA_EXEC: 所指定的命令已經(jīng)被調(diào)用。所指定的命令已經(jīng)被調(diào)用。IA_XHOWN: 所指定對象(文件)的所有權(quán)已經(jīng)改變。所指定對象(文件)的所有權(quán)已經(jīng)改變。IA_LINK: 已建立起到指定文件的一個連接。已建立起到指定文件的一個連接。IA_CHDIR: 工作目錄已經(jīng)改變。工作目錄已經(jīng)改變。IA_RENAME: 文件被重命名。文件被重命名。IA_MKDIR: 目錄被創(chuàng)建。目錄被創(chuàng)建。IA_LOGIN: 指定用戶登錄進(jìn)入系統(tǒng)。指定用戶登錄進(jìn)入系統(tǒng)。IA_BAD_LOGIN: 指定用戶的登錄嘗試失敗。指定用戶的登錄嘗試失敗。IA_SU: 調(diào)用超級用戶權(quán)限。調(diào)用超級用戶權(quán)限。

11、IA_BAD_SU: 調(diào)用超級用戶權(quán)限的嘗試。調(diào)用超級用戶權(quán)限的嘗試。IA_RESOURCE: 資源(內(nèi)存、資源(內(nèi)存、CPU時間、時間、I/O)被消耗。被消耗。IA_LOGOUT: 所指定的用戶退出系統(tǒng)。所指定的用戶退出系統(tǒng)。IA_UNCAT: 其他所有未指定的動作。其他所有未指定的動作。IA_RSH: 遠(yuǎn)程外殼調(diào)用。遠(yuǎn)程外殼調(diào)用。IA_BAD_RSH: 被拒絕的遠(yuǎn)程外殼調(diào)用。被拒絕的遠(yuǎn)程外殼調(diào)用。IA_PASSWD: 口令更改??诹罡?。IA_RMOUNT: 遠(yuǎn)程文件系統(tǒng)安全請求(網(wǎng)絡(luò)文件服務(wù)器)。遠(yuǎn)程文件系統(tǒng)安全請求(網(wǎng)絡(luò)文件服務(wù)器)。IA_BAD_RMOUNT: 拒絕文件系統(tǒng)安裝。拒絕

12、文件系統(tǒng)安裝。IA_PASSWD_AUTH: 口令確認(rèn)??诹畲_認(rèn)。IA_BAD_PASSWD_AUTH: 拒絕口令確認(rèn)。拒絕口令確認(rèn)。IA_DISCON: Agen斷開與斷開與Arpool的連接的連接 (偽記錄偽記錄)。l以下為表示以下為表示IDES審計記錄的審計記錄的C語言結(jié)構(gòu)。語言結(jié)構(gòu)。struct ides_audit_header unsigned long tseq;char hostname32;char remotehost32;char ttyname16;char cmd18;char _pad12;char jobname16;enum ides_audit_action

13、action;time_t time;/* this section is unix specific */long syscall;unsigned long event;long errno;long rval;long pid;/* unix: these fields are 0 in most (but not all) cases */struct resource_info resource;enum ides_audit_type act_type;long subjtype;char unameIDES_UNAME_LEN;char aunameIDES_UNAME_LEN;

14、char ounameIDES_UNAME_LEN;long arglen;ides_audit_block結(jié)構(gòu)定義如下所示:結(jié)構(gòu)定義如下所示: typedef struct long ab_size;aud_type ab_type;unsigned long rseq;time_t rectime;ides_audit_header ah;union ab_args char maxbufAUP_USER;ides_path_desc _ipd2;#define ab_path0 _ipd0.path#define ab_path1 _ipd1.path arg_un; ides_audi

15、t_block;圖圖4-1 STAT審計記錄格式審計記錄格式STAT系統(tǒng)的標(biāo)準(zhǔn)審計記錄格式由系統(tǒng)的標(biāo)準(zhǔn)審計記錄格式由3個個部分定義組成:部分定義組成: Subject, Action, Object每個部分都進(jìn)一步包括更詳細(xì)的字段每個部分都進(jìn)一步包括更詳細(xì)的字段定義,如圖定義,如圖4-1所示。所示。圖圖4-2 從從BSM審計記錄到審計記錄到STAT審計記錄的映射關(guān)系審計記錄的映射關(guān)系審計數(shù)據(jù)獲取模塊的主要作用是獲取目標(biāo)系審計數(shù)據(jù)獲取模塊的主要作用是獲取目標(biāo)系統(tǒng)的審計數(shù)據(jù),并經(jīng)過預(yù)處理工作后,最終目統(tǒng)的審計數(shù)據(jù),并經(jīng)過預(yù)處理工作后,最終目標(biāo)是為入侵檢測的處理模塊提供一條單一的審標(biāo)是為入侵檢測的處

16、理模塊提供一條單一的審計記錄塊數(shù)據(jù)流,供其使用。計記錄塊數(shù)據(jù)流,供其使用。其使用的處理算法流程如下所示:其使用的處理算法流程如下所示:4.1.3 審計數(shù)據(jù)獲取模塊的設(shè)計審計數(shù)據(jù)獲取模塊的設(shè)計/ Processing Procedure for Preprocessor1 While True do begin2 If Audit_state=START then begin3 Allocate memory for audit record4 Allocate memory for the ptr of size BLOCK_SIZE5 Audit_state=NEXT_FILE6 Endif

17、7 If Audit_state=NEXT_FILE then begin8 Open audit file9 Read a block from audit file to ptr10 Advance ptr to the beginning of the first record11 Obtain preceding filename12 Audit_state=READ_FILE13 Endif14 If Audit_state=READ_FILE then begin15 Attempt to read a block from audit file to ptr16 If succe

18、ssful then begin17 If ptr indicates AUT_OTHER_FILE then18 Audit_state=CLOSE_FILE19 Else begin20 Call filter_it to filter the next record21 If record passed through the filter then22 return (audit_record)23 End else24 Endif25 Else26 Reopen audit file27 Endif28 If Audit_state=CLOSE_FILE then begin29 O

19、btain next audit file name30 Close current audit file 31 Audit_state=NEXT_FILE32 Endif33 EndwhileDenning在在1986年的經(jīng)典論文中提出了年的經(jīng)典論文中提出了4種可以用種可以用于入侵檢測的統(tǒng)計模型。于入侵檢測的統(tǒng)計模型。(1) 操作模型操作模型(2) 均值與標(biāo)準(zhǔn)偏差模型均值與標(biāo)準(zhǔn)偏差模型(3) 多元模型多元模型(4) 馬爾可夫過程模型馬爾可夫過程模型4.2 用于入侵檢測的統(tǒng)計模型用于入侵檢測的統(tǒng)計模型統(tǒng)計分析方法統(tǒng)計分析方法l是異常檢測技術(shù)中應(yīng)用最早也是最多的一種方法;是異常檢測技術(shù)中應(yīng)用最早

20、也是最多的一種方法;l首先為系統(tǒng)對象(如用戶、文件)創(chuàng)建一個統(tǒng)計描述,首先為系統(tǒng)對象(如用戶、文件)創(chuàng)建一個統(tǒng)計描述,統(tǒng)計正常使用時的一些測量屬性(如訪問次數(shù)、統(tǒng)計正常使用時的一些測量屬性(如訪問次數(shù)、CPU使用、操作失敗次數(shù)和延時);使用、操作失敗次數(shù)和延時);根據(jù)異常檢測器觀察主體活動,然后產(chǎn)生刻畫這些活動的行根據(jù)異常檢測器觀察主體活動,然后產(chǎn)生刻畫這些活動的行為輪廓(用戶特征表)為輪廓(用戶特征表)每一個輪廓保存記錄主體當(dāng)前行為,并定時將當(dāng)前輪廓與歷每一個輪廓保存記錄主體當(dāng)前行為,并定時將當(dāng)前輪廓與歷史輪廓合并形成統(tǒng)計輪廓(更新),通過比較當(dāng)前輪廓與統(tǒng)史輪廓合并形成統(tǒng)計輪廓(更新),通過

21、比較當(dāng)前輪廓與統(tǒng)計輪廓來判定異常行為計輪廓來判定異常行為l測量屬性的平均值被用來與網(wǎng)絡(luò)、系統(tǒng)的行為進(jìn)行比測量屬性的平均值被用來與網(wǎng)絡(luò)、系統(tǒng)的行為進(jìn)行比較,如果觀察值在正常范圍之外,就認(rèn)為有入侵發(fā)生。較,如果觀察值在正常范圍之外,就認(rèn)為有入侵發(fā)生。l優(yōu)點:可應(yīng)用成熟的概率統(tǒng)計理論l缺點:由于用戶行為的復(fù)雜性,要想準(zhǔn)確地匹配一個用戶的行為非常困難,容易造成系統(tǒng)誤報和漏報定義入侵閾值比較困難,閾值高則漏報率高,閾值低則誤報率高。舉例舉例lIDES統(tǒng)計異常檢測引擎觀測在所監(jiān)控計算機系統(tǒng)上的活動行為,并自適應(yīng)地學(xué)習(xí)主體正常行為模式。l在IDES系統(tǒng)的統(tǒng)計分析組件中,當(dāng)前系統(tǒng)的活動狀態(tài)采用一組測量值參數(shù)變

22、量來表示,稱為“入侵檢測向量” 。根據(jù)目標(biāo)主體類型的不同根據(jù)目標(biāo)主體類型的不同,IDES定義了定義了3種不同類種不同類型的測量值,分別針對用戶主體、目標(biāo)系統(tǒng)主體和型的測量值,分別針對用戶主體、目標(biāo)系統(tǒng)主體和遠(yuǎn)程主機主體。遠(yuǎn)程主機主體。同時,又可以把同時,又可以把IDES統(tǒng)計分析系統(tǒng)中不同類型的統(tǒng)計分析系統(tǒng)中不同類型的單獨測量值分為以下單獨測量值分為以下4個類別。個類別。(1) 活動強度測量值活動強度測量值(2) 審計記錄分布測量值審計記錄分布測量值(3) 類別測量值類別測量值(4) 序數(shù)測量值序數(shù)測量值以以IDES系統(tǒng)中應(yīng)用于用戶主體類型的測量值為例,系統(tǒng)中應(yīng)用于用戶主體類型的測量值為例,它們

23、包括下列定義的類型。它們包括下列定義的類型。(1) 序數(shù)測量值(活動的輸出結(jié)果,以數(shù)字值來序數(shù)測量值(活動的輸出結(jié)果,以數(shù)字值來表示)表示)CPU使用情況使用情況 I/O使用情況使用情況(2) 類別測量值(描述特定活動的測量值,其輸類別測量值(描述特定活動的測量值,其輸出為類別值)出為類別值)使用的物理位置;使用的物理位置;郵件程序的使用;郵件程序的使用;編譯器、編輯器、編譯器、編輯器、 窗口命令、窗口命令、 通用程序使用等的相關(guān)使通用程序使用等的相關(guān)使用。用。(3) 審計記錄分布測量值審計記錄分布測量值 描述最近審計記錄中所有活動類型分布狀況。如特定用描述最近審計記錄中所有活動類型分布狀況。

24、如特定用戶在整個系統(tǒng)使用中文件訪問和戶在整個系統(tǒng)使用中文件訪問和I/O活動分布。例如活動分布。例如115個審計個審計記錄中,有記錄中,有25個記錄表示文件訪問,個記錄表示文件訪問,50個記錄表示個記錄表示CPU使用時使用時間的遞增,間的遞增,.(4) 活動強度測量值活動強度測量值統(tǒng)計在不同時間間隔內(nèi)所出現(xiàn)的審計記錄數(shù)目。在統(tǒng)計在不同時間間隔內(nèi)所出現(xiàn)的審計記錄數(shù)目。在IDES中使中使用了以下用了以下3種審計記錄強度測量值。種審計記錄強度測量值。 每分鐘的流量每分鐘的流量 每每10分鐘的流量分鐘的流量 每小時的流量每小時的流量對于用戶所生成的每一個審計記錄,對于用戶所生成的每一個審計記錄,IDES

25、系統(tǒng)經(jīng)計算生成一系統(tǒng)經(jīng)計算生成一個單獨的測試統(tǒng)計個單獨的測試統(tǒng)計值(值(IDES分?jǐn)?shù)值,表示為分?jǐn)?shù)值,表示為T2),),用來綜合表用來綜合表明最近用戶行為的異常程度。明最近用戶行為的異常程度。統(tǒng)計值統(tǒng)計值T2本身是一個對多個測量值異常度的綜合評價本身是一個對多個測量值異常度的綜合評價基于統(tǒng)計分析的基于統(tǒng)計分析的IDS舉例:舉例:l假如對一般的員工來說,正常使用某臺計算機的時間是8:0023:00,如果在系統(tǒng)日志中發(fā)現(xiàn)在凌晨2:00有人使用此機器,那么就可認(rèn)為是異常情況,有可能是入侵行為或非授權(quán)訪問??擅枋鋈缦拢篠et normal-time= 8:0023:00;Set state=norma

26、l;Get(login-time);If(login-time! =normal-time)Set state=abnormal;進(jìn)行異常處理;在最早期的若干入侵檢測系統(tǒng)中就已經(jīng)開始使用專在最早期的若干入侵檢測系統(tǒng)中就已經(jīng)開始使用專家系統(tǒng)了。專家系統(tǒng)在知識庫的基礎(chǔ)上,根據(jù)所獲家系統(tǒng)了。專家系統(tǒng)在知識庫的基礎(chǔ)上,根據(jù)所獲得的事實和已知的規(guī)則進(jìn)行推導(dǎo),并得出結(jié)論。使得的事實和已知的規(guī)則進(jìn)行推導(dǎo),并得出結(jié)論。使用專家系統(tǒng)的好處是用戶無須了解具體系統(tǒng)內(nèi)部的用專家系統(tǒng)的好處是用戶無須了解具體系統(tǒng)內(nèi)部的工作原理,只需要解決對問題的描述過程即可。但工作原理,只需要解決對問題的描述過程即可。但是,知識庫的構(gòu)建

27、是一個耗時費力的艱苦過程。是,知識庫的構(gòu)建是一個耗時費力的艱苦過程。專家系統(tǒng)只能基于明確的、可靠的規(guī)則得出結(jié)論,專家系統(tǒng)只能基于明確的、可靠的規(guī)則得出結(jié)論,對于超出已有規(guī)則范圍的事實無法得出有用的結(jié)論。對于超出已有規(guī)則范圍的事實無法得出有用的結(jié)論。下面下面以以PBEST為例,介紹專家系統(tǒng)在入侵檢測中為例,介紹專家系統(tǒng)在入侵檢測中的應(yīng)用。的應(yīng)用。4.3 入侵檢測的專家系統(tǒng)入侵檢測的專家系統(tǒng)PBEST系統(tǒng)包括一個規(guī)則翻譯器系統(tǒng)包括一個規(guī)則翻譯器pbcc、一個運行一個運行時例程庫和一組垃圾收集例程。規(guī)則翻譯器接收一時例程庫和一組垃圾收集例程。規(guī)則翻譯器接收一組規(guī)則(組規(guī)則(rule)和事實和事實(f

28、act)的定義后,生成一組的定義后,生成一組C語言的例程,用來語言的例程,用來“斷言斷言”(assert)事實和處理事實和處理規(guī)則。運行時例程庫中包含了所有專家系統(tǒng)中的共規(guī)則。運行時例程庫中包含了所有專家系統(tǒng)中的共享代碼,并且包括支持交互式專家系統(tǒng)引擎的例程。享代碼,并且包括支持交互式專家系統(tǒng)引擎的例程。這些交互式的環(huán)境將能夠幫助用戶查看程序的運行這些交互式的環(huán)境將能夠幫助用戶查看程序的運行情況、設(shè)置和清除斷點、刪除和情況、設(shè)置和清除斷點、刪除和“斷言斷言”事實以及事實以及觀察規(guī)則點火的影響軌跡等。觀察規(guī)則點火的影響軌跡等。在構(gòu)建一個專家系統(tǒng)之前,用戶必須首先定義規(guī)則在構(gòu)建一個專家系統(tǒng)之前,用

29、戶必須首先定義規(guī)則)和模式類型(和模式類型(ptype)。)。下面是一個下面是一個ptype的聲明示的聲明示例。例。ptype count value: int以上聲明的目的在于建立一個關(guān)于事實的模式以上聲明的目的在于建立一個關(guān)于事實的模式(pattern)或模板(或模板(template)。)。專家系統(tǒng)知識庫專家系統(tǒng)知識庫中的每條事實都是某個中的每條事實都是某個ptype類型的一個實例。類型的一個實例。ptype類型為類型為count的事實包含一個整數(shù)字段的事實包含一個整數(shù)字段value。前述聲明將允許規(guī)則引用前述聲明將允許規(guī)則引用count類型的事實,并檢查類型的事實,并檢查和修改這些事實

30、的和修改這些事實的value字段值。對于某一個給定類字段值。對于某一個給定類型,總是存在多條事實與之對應(yīng)。型,總是存在多條事實與之對應(yīng)。一個模式類型一個模式類型ptype可以包括多個字段,如下所示??梢园ǘ鄠€字段,如下所示。ptype session userid: string,terminal: string,timeoutflag:int以上以上ptype聲明建立了一個事實模式,包括了聲明建立了一個事實模式,包括了3個個字段,其中字段,其中,userid和和terminal字段都是字符串類型,字段都是字符串類型,而而timeoutflag字段為整數(shù)類型。字段為整數(shù)類型。規(guī)則可以引用特定

31、事實,其包括匹配特定條件或值規(guī)則可以引用特定事實,其包括匹配特定條件或值的字段。例如,一條規(guī)則可以檢查一個的字段。例如,一條規(guī)則可以檢查一個session類型類型的事實,視其的事實,視其timeoutflag字段值是否為字段值是否為1。這可以通。這可以通過在其前提句中包含以下語句來實現(xiàn):過在其前提句中包含以下語句來實現(xiàn): +session timeoutflag = 1在起始方括號后的在起始方括號后的“+”符,是用作某種類型的符,是用作某種類型的“存在性量詞存在性量詞”。這就是說,它允許規(guī)則來查看是。這就是說,它允許規(guī)則來查看是否存在任何滿足特定條件的事實。以上的語句將匹否存在任何滿足特定條件

32、的事實。以上的語句將匹配任何其配任何其timeoutflag字段值為字段值為1的的session類型的事類型的事實。實。規(guī)則也可以使用規(guī)則也可以使用“”符,來確定是否不存在給定符,來確定是否不存在給定類型的事實。下例將查看是否不存在類型的事實。下例將查看是否不存在userid字段為字段為THISUSER的的session類型的事實。類型的事實。session userid = THISUSER= /c|value+=l etc. “Increment count facts value field注意,這里對事實的字段值做了修改。此時,原始注意,這里對事實的字段值做了修改。此時,原始的事實失效

33、,而具有修改后字段值的新事實將被加的事實失效,而具有修改后字段值的新事實將被加入到知識庫中。如果使用交互式操作環(huán)境時,用戶入到知識庫中。如果使用交互式操作環(huán)境時,用戶就能看到當(dāng)一個事實被修改后,它將得到一個新的就能看到當(dāng)一個事實被修改后,它將得到一個新的號碼。這表示系統(tǒng)將把規(guī)則優(yōu)先綁定到修改后的事號碼。這表示系統(tǒng)將把規(guī)則優(yōu)先綁定到修改后的事實上,而不是先前創(chuàng)建但是已經(jīng)失效的事實。實上,而不是先前創(chuàng)建但是已經(jīng)失效的事實。下面是一個完整的規(guī)則聲明:下面是一個完整的規(guī)則聲明: rule SimuLogon (#l;*):+tr:transaction+se:session | userid = tr

34、.userid?|se.terminal != tr.terminal= !|printf (SimuLogon: user %s at terminals %s, %sn,tr.userid, tr.terminal, se.terminal)|tr|se該條規(guī)則檢測一個正在當(dāng)前終端上登錄,但是以前該條規(guī)則檢測一個正在當(dāng)前終端上登錄,但是以前已經(jīng)在別處登錄的用戶。它通過檢查若干已經(jīng)在別處登錄的用戶。它通過檢查若干transaction事實(這些事實必須是以前用戶已聲明事實(這些事實必須是以前用戶已聲明transaction類型的實例),看其是否存在一個類型的實例),看其是否存在一個sessi

35、on事實,事實,其其userid字段值與任何字段值與任何transaction事實中對應(yīng)字段值相同。如果存在這樣事實中對應(yīng)字段值相同。如果存在這樣的的session事事實,則比較二者實,則比較二者的的terminal字段值,看是否相同。如字段值,看是否相同。如果不相同,則該規(guī)則果不相同,則該規(guī)則“點火點火”。這條規(guī)則的假設(shè)前。這條規(guī)則的假設(shè)前提是其他的規(guī)則將檢查登錄活動,并為每個登錄活提是其他的規(guī)則將檢查登錄活動,并為每個登錄活動創(chuàng)建一個動創(chuàng)建一個session事實。事實。 一條規(guī)則的語法完全由分隔符(方括號和一條規(guī)則的語法完全由分隔符(方括號和=)來)來決定。決定。一個規(guī)則聲明由關(guān)鍵詞一個規(guī)

36、則聲明由關(guān)鍵詞rule起頭,然后是一個名稱起頭,然后是一個名稱區(qū),后跟一個冒號(區(qū),后跟一個冒號(:)。上述規(guī)則的名稱區(qū)包括名)。上述規(guī)則的名稱區(qū)包括名稱稱SimuLogon,后面是一組包括在圓括號內(nèi)的選項后面是一組包括在圓括號內(nèi)的選項參數(shù)。這里,參數(shù)。這里,#1選項表示該規(guī)則的等級為選項表示該規(guī)則的等級為1。這意味。這意味著如果多個規(guī)則都可以點火,則該規(guī)則將比較低級著如果多個規(guī)則都可以點火,則該規(guī)則將比較低級別的規(guī)則先點火。星號(別的規(guī)則先點火。星號(*)選項表示該規(guī)則是可重)選項表示該規(guī)則是可重復(fù)的。這意味著該規(guī)則可以重復(fù)點火,而無需其他復(fù)的。這意味著該規(guī)則可以重復(fù)點火,而無需其他規(guī)則同時

37、點火。若默認(rèn)則表示該規(guī)則是不可重復(fù)的,規(guī)則同時點火。若默認(rèn)則表示該規(guī)則是不可重復(fù)的,因為一旦規(guī)則的前提被滿足,它將永遠(yuǎn)都滿足條件,因為一旦規(guī)則的前提被滿足,它將永遠(yuǎn)都滿足條件,則規(guī)則將一次次地點火。但上述規(guī)則將刪除滿足條則規(guī)則將一次次地點火。但上述規(guī)則將刪除滿足條件的事實,從而避免類似的循環(huán)點火過程。件的事實,從而避免類似的循環(huán)點火過程。規(guī)則的體部分包括一系列的前提語句、分隔符規(guī)則的體部分包括一系列的前提語句、分隔符=和一系列的結(jié)論語句。每個前提語句都包括某種條和一系列的結(jié)論語句。每個前提語句都包括某種條件測試。第一條前提語句:件測試。第一條前提語句:+tr: transaction檢查一條檢

38、查一條transaction事實。它賦以其別名事實。它賦以其別名tr。下一下一條語句:條語句: +se: session|userid = tr.userid檢查是否存在一個檢查是否存在一個session事實,其事實,其userid字段值字段值與已發(fā)現(xiàn)與已發(fā)現(xiàn)的的tr事實的對應(yīng)字段值相等。如果發(fā)現(xiàn)這樣事實的對應(yīng)字段值相等。如果發(fā)現(xiàn)這樣的一個事實,則賦予別名的一個事實,則賦予別名se。第三條語句:第三條語句: ?|se.terminal != tr.terminal檢查在發(fā)現(xiàn)的檢查在發(fā)現(xiàn)的session事實中的事實中的terminal字段值是字段值是否否與與transaction事實的對應(yīng)字段值

39、不同。事實的對應(yīng)字段值不同。如果上述的所有前提語句都滿足了,該規(guī)則如果上述的所有前提語句都滿足了,該規(guī)則“點點火火”,即結(jié)論語句開始執(zhí)行。此條規(guī)則包括,即結(jié)論語句開始執(zhí)行。此條規(guī)則包括3條結(jié)論條結(jié)論語句。第一條語句:語句。第一條語句: ! | printf (SimuLogon: user %s at terminals %s, %sn,tr.userid, tr.terminal, se.terminal)調(diào)用對應(yīng)的調(diào)用對應(yīng)的C語言函數(shù)。語言函數(shù)。“!| ”符表示這樣的一符表示這樣的一個調(diào)用。這里可以調(diào)用任意的個調(diào)用。這里可以調(diào)用任意的C函數(shù)例程。函數(shù)例程。pbcc能能夠識別大多數(shù)內(nèi)建的夠識

40、別大多數(shù)內(nèi)建的C函數(shù),如果是用戶自己創(chuàng)建的,函數(shù),如果是用戶自己創(chuàng)建的,則必須事先聲明。這里,可以則必須事先聲明。這里,可以像像C語言中的結(jié)構(gòu)一樣,語言中的結(jié)構(gòu)一樣,引用事實中的字段值,表示形式為事實的別名,后引用事實中的字段值,表示形式為事實的別名,后跟點號跟點號“.”和字段名。和字段名。語句語句|tr和和|se將將tr和和se類型的事實從知識庫中類型的事實從知識庫中刪除。這樣做有刪除。這樣做有3個原因:個原因: 第一,可以避免規(guī)則因為第一,可以避免規(guī)則因為同樣的滿足條件而循環(huán)點火。第二,將不需要的事同樣的滿足條件而循環(huán)點火。第二,將不需要的事實從知識庫中刪除,有助于提高系統(tǒng)的運行速度。實從

41、知識庫中刪除,有助于提高系統(tǒng)的運行速度。第三個原因是節(jié)約內(nèi)存。第三個原因是節(jié)約內(nèi)存。對于入侵檢測而言,專家系統(tǒng)檢測引擎必須從目標(biāo)對于入侵檢測而言,專家系統(tǒng)檢測引擎必須從目標(biāo)審計數(shù)據(jù)源中獲取數(shù)據(jù),然后才能進(jìn)行后繼的規(guī)則審計數(shù)據(jù)源中獲取數(shù)據(jù),然后才能進(jìn)行后繼的規(guī)則檢測工作。檢測工作。PBEST提供了一套用于與外部進(jìn)行交互提供了一套用于與外部進(jìn)行交互的接口機制,用于從外部獲取信息和向外部發(fā)送信的接口機制,用于從外部獲取信息和向外部發(fā)送信息。息。發(fā)送信息的方法主要可采用調(diào)用外部發(fā)送信息的方法主要可采用調(diào)用外部C語言函數(shù)來語言函數(shù)來實現(xiàn)。下面主要介紹實現(xiàn)。下面主要介紹PBEST實現(xiàn)從外部獲取信息,實現(xiàn)從

42、外部獲取信息,并將其作為新事實加入到知識庫中的主要辦法。并將其作為新事實加入到知識庫中的主要辦法。對于要加入到知識庫中的事實,必須進(jìn)行對于要加入到知識庫中的事實,必須進(jìn)行“斷言斷言(assert)”操作。從操作。從C語言的角度看,這是通過用語言的角度看,這是通過用適當(dāng)?shù)膮?shù)來調(diào)用函數(shù)適當(dāng)?shù)膮?shù)來調(diào)用函數(shù)assert_ptypename來來實現(xiàn)的。這就是說,對于每種類型實現(xiàn)的。這就是說,對于每種類型,pbcc翻譯器都翻譯器都生成一個函數(shù),將該類型的事實加入到知識庫中。生成一個函數(shù),將該類型的事實加入到知識庫中。為了使用這些函數(shù),用戶可以編寫如下所示的規(guī)則為了使用這些函數(shù),用戶可以編寫如下所示的規(guī)

43、則文件:文件:This rule reads data into the knowledge base using theget_fact_record () routine. It has a very lowpriority so it doesnt add new facts until the old oneshave been processed.rule get_fact_record_data (#99;*):?|retval != END_OF_FILE+c:count = /c| value += 1! | retval = get_fact_record ()本條規(guī)則的核心

44、部分就是對本條規(guī)則的核心部分就是對C函數(shù)函數(shù)get_fact_record ()的調(diào)用。除此之外,該條規(guī)則檢的調(diào)用。除此之外,該條規(guī)則檢查文件的尾部,并維持一個對已讀記錄的計數(shù)值。查文件的尾部,并維持一個對已讀記錄的計數(shù)值。函數(shù)函數(shù)get_fact_record ()從一個文件中讀入一條記錄,從一個文件中讀入一條記錄,將其移入到一組變量中,然后以其為參數(shù)調(diào)用函數(shù)將其移入到一組變量中,然后以其為參數(shù)調(diào)用函數(shù)assert_transaction()。下面是函數(shù)下面是函數(shù)get_fact_record ()的示例代碼片段。的示例代碼片段。int get_fact_record ()int i, re

45、ader ();/*Read a record from the file into the buffer strings.*/i= reader (infp, (struct iovec *) iov1, 26);if (i threshold log (counter over threshold !);transition t1 (s1-s2) READ r: r.euid != r.uid下面簡要介紹下面簡要介紹STAT檢測引擎工作的基本原檢測引擎工作的基本原理。理。推理引擎是整個系統(tǒng)的核心部件,如圖推理引擎是整個系統(tǒng)的核心部件,如圖4-8所示。正如狀態(tài)轉(zhuǎn)移圖是用來表示具體攻擊過所示。

46、正如狀態(tài)轉(zhuǎn)移圖是用來表示具體攻擊過程的圖形化方法,程的圖形化方法,STAT系統(tǒng)中引入系統(tǒng)中引入“推理引推理引擎表擎表” 來可視化表述推理引擎的工作原理。來可視化表述推理引擎的工作原理。圖圖4-8 推理引擎表推理引擎表S1S2S3S4S51234n圖圖4-9表示假想實例所對應(yīng)的狀態(tài)轉(zhuǎn)移圖,對應(yīng)著表示假想實例所對應(yīng)的狀態(tài)轉(zhuǎn)移圖,對應(yīng)著狀態(tài)描述表中的狀態(tài)描述表中的第第h項,記為項,記為SDTh。圖圖4-9 假想的狀態(tài)轉(zhuǎn)移圖假想的狀態(tài)轉(zhuǎn)移圖SDTh初始的推理引擎表如圖初始的推理引擎表如圖4-10所示。表中第所示。表中第h行對應(yīng)行對應(yīng)著假想的狀態(tài)轉(zhuǎn)移圖著假想的狀態(tài)轉(zhuǎn)移圖SDTh。圖圖4-10 初始推理引

47、擎表初始推理引擎表S1S2S3S4S512hn圖圖4-11 第一個操作后的推理引擎表第一個操作后的推理引擎表S1S2S3S4S512hnn+1X圖圖4-12 第二個操作后的推理引擎表第二個操作后的推理引擎表S1S2S3S4S512hnn+1Xn+2XX文件完整性檢查的目的是檢查主機系統(tǒng)中文件系統(tǒng)文件完整性檢查的目的是檢查主機系統(tǒng)中文件系統(tǒng)的完整性,及時發(fā)現(xiàn)潛在的針對文件系統(tǒng)的無意或的完整性,及時發(fā)現(xiàn)潛在的針對文件系統(tǒng)的無意或惡意的更改。檢查文件系統(tǒng)完整性的必要性包括如惡意的更改。檢查文件系統(tǒng)完整性的必要性包括如下幾個方面:下幾個方面: 攻擊者在入侵成功后,經(jīng)常在文件系統(tǒng)中安裝攻擊者在入侵成功后

48、,經(jīng)常在文件系統(tǒng)中安裝后門或者木馬程序,以方便后繼的攻擊活動。后門或者木馬程序,以方便后繼的攻擊活動。 攻擊者還可能安裝非授權(quán)的特定程序,并且替攻擊者還可能安裝非授權(quán)的特定程序,并且替換掉特定的系統(tǒng)程序,以掩蓋非授權(quán)程序的存在。換掉特定的系統(tǒng)程序,以掩蓋非授權(quán)程序的存在。 為了防止攻擊活動的痕跡,攻擊者還可能刪除為了防止攻擊活動的痕跡,攻擊者還可能刪除若干重要系統(tǒng)日志文件中的審計記錄。若干重要系統(tǒng)日志文件中的審計記錄。4.5 文件完整性檢查文件完整性檢查 入侵者還可能為了達(dá)成拒絕服務(wù)攻擊目的或者入侵者還可能為了達(dá)成拒絕服務(wù)攻擊目的或者破壞目的,惡意修改若干重要服務(wù)程序的配置文件破壞目的,惡意修

49、改若干重要服務(wù)程序的配置文件或者數(shù)據(jù)庫數(shù)據(jù),包括系統(tǒng)安全策略的配置信息等?;蛘邤?shù)據(jù)庫數(shù)據(jù),包括系統(tǒng)安全策略的配置信息等。文件完整性檢查的基本思想是:文件完整性檢查的基本思想是: 首先,對所要檢首先,對所要檢查的每個目標(biāo)文件生成一個惟一標(biāo)識符,并將它們查的每個目標(biāo)文件生成一個惟一標(biāo)識符,并將它們存儲到一個數(shù)據(jù)庫中;然后進(jìn)行檢查時,對每個目存儲到一個數(shù)據(jù)庫中;然后進(jìn)行檢查時,對每個目標(biāo)文件重新生成新的標(biāo)識符,并將新標(biāo)識符與數(shù)據(jù)標(biāo)文件重新生成新的標(biāo)識符,并將新標(biāo)識符與數(shù)據(jù)庫中存儲的舊版本進(jìn)行比較;從而可以確定目標(biāo)文庫中存儲的舊版本進(jìn)行比較;從而可以確定目標(biāo)文件是否發(fā)生了更改。另外,通過對數(shù)據(jù)庫中條目

50、數(shù)件是否發(fā)生了更改。另外,通過對數(shù)據(jù)庫中條目數(shù)目的檢查,也可能發(fā)現(xiàn)文件系統(tǒng)中文件數(shù)目的增刪目的檢查,也可能發(fā)現(xiàn)文件系統(tǒng)中文件數(shù)目的增刪變化。變化。文件完整性檢查的最初實現(xiàn)技術(shù)包括文件完整性檢查的最初實現(xiàn)技術(shù)包括“檢查列表檢查列表”(checklist)技術(shù)。該技術(shù)的特點是使用一個檢查技術(shù)。該技術(shù)的特點是使用一個檢查列表來存儲目標(biāo)文件的標(biāo)識信息,列表中的每個條列表來存儲目標(biāo)文件的標(biāo)識信息,列表中的每個條目包括目標(biāo)文件的諸多屬性信息,例如文件長度、目包括目標(biāo)文件的諸多屬性信息,例如文件長度、最后修改時間、屬主信息等。在檢查時,系統(tǒng)再重最后修改時間、屬主信息等。在檢查時,系統(tǒng)再重新取得目標(biāo)文件的屬性信息,并與在檢查列表中的新取得目標(biāo)文件的屬性信息,并與在檢查列表中的對應(yīng)項目進(jìn)行比較。此種方法的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論