• 沒有找到結果。

基於人體免疫系統之入侵偵測系統(Immunity-Based IDS Systems)

第三章、 相關研究

3.2 基於人體免疫系統之入侵偵測系統(Immunity-Based IDS Systems)

人體免疫系統是保衛人體健康的一大功臣,它有效地阻止細菌、病源體和寄 生蟲等外來的威脅侵入人體,而它有效率的運作機制也引起了包含電腦系統在內 的各個學術研究領域的高度興趣。在資訊安全的領域,許多研究也紛紛提出以人 體免疫系統為基礎來設計的入侵偵測系統[28][29][30]。本節中,將介紹兩個以人 體免疫系統為基礎之入侵偵測系統。

3.2.1 基於人體免疫系統之網路型入侵偵測系統

Zhang Yanchao等人在2001年提出了基於人體免疫系統之網路型入侵偵測系 統[28],我們在第二章中已經介紹過人體免疫系統的運作機制,而這個網路型入 侵偵測系統的運作機制與人體免疫系統十分類似。

一個網路連線可以經過一些規則,例如根據IP address,port number等等其 他資訊,把它對應到一個長度為L的位元串列(bit string),而此系統中所謂的探測 器(detector),也是表示成一個長度為L的位元串列。探測器擔任辨識敵我的角色,

相當於人體免疫系統中淋巴細胞的功能。當一個網路連線所對應的位元串列和某 個探測器吻合時,表示這個網路連線可能是一個攻擊的行為。

圖12是實體機器分布的架構圖,主系統(primary system)負責產生探測器,然 後把這些探測器散布到各個偵測系統(detector agent)。

圖 12 基於人體免疫系統 IDS 之實體架構

圖13是系統的執行流程圖,上面的部分是在主系統中執行,包括隨機產生探 測器,負向選擇(negative selection)與人體免疫系統中淋巴細胞的負向選擇機制十 分類似,即讓隨機產生出來的探測器和一些正常的網路連線做比對,如果探測器 會和這些正常的網路連線吻合,表示這個探測器無法使用,因為它會將正常的行 為誤判成攻擊。通過負向選擇測試的探測器即可用來辨識非正常的網路連線,它 們會組成一個個的群組,分散到各個偵測系統。

圖 13 基於人體免疫系統 IDS 之執行流程

圖14是一個探測器的生命週期,從產生出來到被消滅的整個過程。探測器通 過負向選擇之後,就會進入開始偵測的階段,若在一定的時間內達到一定數量的 吻合,探測器就會被活化,此時會發出一個警報給系統的安全管理者,決定要不 要防堵這種攻擊。決定防堵的話就會把這個探測器複製成很多個記憶探測器 (memory detector),分散到各個偵測系統。

圖 14 探測器的生命週期

為了減低誤判的機率,此系統使用兩個機制,第一個是活化門檻(activation threshold),即探測器被活化然後發出警報的門檻。每個探測器都會設一個門檻,

在一定的時間內這個探測器必須要吻合很多次同樣的攻擊樣式才能被活化,以降

Immune Genetic State Transition Analysis Model(IGSTAM) [30]是Zhou-Jun Xu等人在2003年所提出,結合人體免疫系統概念與STAT分析方法的主機型入侵 偵測系統。此系統中定義的FSM狀態集合(state space) S為作業系統中代表一個資 源的各項參數:S={ file_name,full_path,owner,member,eid,gid,permitted,

located,same_user,same_pid,shell_script },FSM狀態轉換函式集合(system signature action space) A代表一個使用者可能執行的動作:A={ read,wirte,

create,execute,exit,delete,modify_ower,modify_perm,hardlink,rename }。

表3為一個入侵流程的例子,用FSM來表示如圖15。

表 3 mail utility 入侵流程

Step Command Comment

1

%cp /bin/csh /usr/spool/mail/root

%chmod 4755 /usr/spool/mail/root

%touch X

%mail root < X

%/usr/spool/mail/root root%

assumes no root mail file make setuid file

create empty file mail root empty file

execute setuid-to-root shell

圖 15 mail utility 入侵流程之狀態轉換表示圖

IGSTAM中將入侵行為表示成狀態轉換串列(state-action chain),如:SA=

(S1,A1,S2,A2,…Sn),系統中所謂的疫苗(Vaccine)相當於3.2.1中的探測器,代表 可能的入侵行為,也是表示成如上的狀態轉換串列。

圖16是IGSTAM的流程圖。疫苗的產生使用人體免疫系統的方法,先隨機產 生 一 個 狀 態 轉 換 串 列 Vac= (S1,A1,S2,…An-1,Sn) 。接著產生的疫苗要經過 Non-self selection,相當於3.2.1的負向選擇,即接觸一些正常行為的狀態轉換串 列,進行比對,看是否會跟這些正常行為的狀態轉換串列吻合。若經過一段時間 的比對皆無吻合,便成為成熟的疫苗。

疫苗成熟以後就把它放到適應型DNA庫(adaptive DNA library),所謂的DNA 庫是一些狀態轉換串列的集合,DNA庫分為兩種,一種是專家型DNA庫(expert DNA library),裡面存已既定是攻擊行為的疫苗,即代表攻擊行為的狀態轉換串 列。另一種是適應型DNA庫,裡面存由免疫機制產生出來的新疫苗。

在適應型DNA庫裡的疫苗可以表示成 VACCINE={ Vac , A },Vac是狀態轉 換串列,後面的A是一個參數,當這個疫苗偵測到攻擊時,A值會增加,相當於 3.2.1中的活化機制,一段時間以後如果這個A的值一直沒增加,此疫苗便會從這 個適應型DNA庫裡被刪除,讓DNA庫裡的疫苗保持最新最符合目前的需要。

混合機制(Hybrid)是一種基因演算法,例如當有兩個疫苗Vac1 和 Vac2成功 地偵測到攻擊時,就把這兩個狀態轉換串列隨機組合成一個新的Vac3,這是為 禦的方法[4][13]。本節中,將討論兩種規避IDS偵測而進行攻擊的方法。

3.3.1 插入 no-op 系統呼叫之攻擊

以定義攻擊樣板來偵測入侵行為的IDS,必須偵測到某項吻合的樣式才可判 斷出入侵行為,因此若在一段攻擊樣式中,插入很多沒有作用(no-operation)而且