• 沒有找到結果。

預防擬態攻擊之入侵偵測防禦系統

N/A
N/A
Protected

Academic year: 2021

Share "預防擬態攻擊之入侵偵測防禦系統"

Copied!
72
0
0

加載中.... (立即查看全文)

全文

(1)國 立 交 通 大 學 資 訊 工 程 學 系 碩 士 論 文. 預防擬態攻擊之入侵偵測防禦系統 An Intrusion Prevention System against Mimicry Attacks. 指導教授:蔡文能. 教授. 研 究 生:鄭光宏. 中 華 民 國 九 十 四 年 七 月.

(2) 預防擬態攻擊之入侵偵測防禦系統 An Intrusion Prevention System against Mimicry Attacks 指導教授:蔡文能 研 究 生:鄭光宏. Advisors:Wen-Nung Tsai Student:Kuang-Hung Cheng. 國 立 交 通 大 學 資 訊 工 程 研 究 所 碩 士 論 文. A Thesis Submitted to Institute of Computer Science and Information Engineering College of Electrical Engineering and Computer Science National Chiao Tung University in Partial Fulfillment of the Requirements for the Degree of Master in Computer Science and Information Engineering. July 2005. Hsinchu, Taiwan, Republic of China 中 華 民 國 九 十 四 年 七 月.

(3) 學生:鄭光宏. 預防擬態攻擊之入侵偵測防禦系統 指導教授:蔡文能 教授. 國立交通大學資訊工程學系﹙研究所﹚碩士班. 摘. 要. 隨著硬體與網際網路技術的發達,各種資訊領域之應用紛紛在網路上出現,然而在 這開放的網路環境中,卻充斥著許多惡意的攻擊者。許多學者專家設計出不同的入侵偵 測技術,然而攻擊者則是針對這些技術的弱點加以攻擊、或是規避其偵測,更增加了設 計入侵偵測防禦技術的難度。我們分析比較各種入侵偵測防禦技術和其弱點,並提出解 決一部份問題的方法。 本篇論文以攔截系統呼叫(System Call)技術為基礎,設計出一套即時的入侵偵測與 防禦系統,AMA-IPS(An Intrusion Prevention System against Mimicry Attacks)。使用者可 以圖形介面,狀態轉換之方式描述攻擊樣板。我們針對傳統入侵偵測技術上的弱點進行 改進,提高了入侵偵測防禦的準確度。另外,我們以人體免疫系統模型(Immunity Model) 來檢驗攻擊樣板的精確性,以減少誤判。本系統可攔截所有應用程式所請求的系統呼 叫,基於使用者所定義之攻擊樣板,持續追蹤可疑的應用程式,於攻擊動作尚未成功前 就終止其執行,以提供精確,即時,有效的防護網。. i.

(4) An Intrusion Prevention System against Mimicry Attacks. Student:Kuang-Hung Cheng. Advisors:Dr. Wen-Nung Tsai. Institute of Computer Science and Information Engineering National Chiao Tung University ABSTRACT With the development of the hardware and Internet technologies, there are lots of applications available on the Internet. However, there are always hostile assailants in the open network environment. Though many different intrusion detection techniques had been developed, assailants can always attack against the weakness on these techniques, and try to evade from IDS detection. Based on system call interception technique, we develop a real-time intrusion detection and prevention system, called AMA-IPS (An Intrusion Prevention System against Mimicry Attacks). In this system, users can describe the model of attacking, through a GUI interface, in the form of state changes. We integrated the immunity-based techniques into the state-based IPS to detect mimicry attacks and thus improve the detection accuracy of the IPS. In addition, we examine penetration pattern's accuracy with the human immune system model, and thus reduce false positive. This system intercepts every system call invoked by an application program and tries to match any penetration pattern. Once there is an evidence showing some penetration is undertaking, the system can terminate the penetration process before injury.. ii.

(5) 致. 謝. 經過兩年的努力,終於順利完成了我的畢業論文,在此感謝所有人的幫忙。 首先要感謝的是我的指導教授—蔡文能教授,在碩士班的兩年,他給我許多方面 的指導,讓我受益良多,在此十分的感謝。接著要感謝的是實驗室的蔡宗易學長, 感謝他不辭辛勞的指引我研究的方向,非常感謝。接著感謝實驗室的同學們,大 家一起工作、學習,互相幫忙,才能度過難關,讓我有個充實的碩士班生活。 許多的感覺無法用言語形容,對於上面提到的所有人,在此致上我最深的謝 意,謝謝大家。. iii.

(6) 目. 錄. 摘. 要 ............................................................................................................................ i. 目. 錄 .......................................................................................................................iv. 表. 目. 錄...............................................................................................................vi. 圖. 目. 錄............................................................................................................. vii. 圖. 目. 錄............................................................................................................. vii. 第一章、緒論 ....................................................................................................................1 1.1. 動機與目的 ........................................................................................................ 2. 1.2 論文架構 ............................................................................................................ 2 第二章、背景知識............................................................................................................4 2.1 入侵偵測與入侵預防技術簡介 ...................................................................... 4 2.2 傳統入侵偵測技術 ........................................................................................... 6 2.2.1 不當行為偵測(Misuse Detection) ......................................................... 8 2.2.2 異常偵測(Anomaly Detection)............................................................... 9 2.3 攔截系統呼叫(System call interception) .......................................................... 9 2.3.1 可載入核心模組(Loadable Kernel Module) ......................................... 9 2.3.2 核心層之系統呼叫攔截 ..................................................................... 11 2.4 人體免疫系統(Human Immune Systems) ...................................................... 13 第三章、相關研究..........................................................................................................16 3.1 相關入侵偵測技術(Related IDS Techniques) ............................................... 16 3.1.1 N-gram 技術.......................................................................................... 16 3.1.2 以狀態轉換為基礎之技術(State-Transition-Based Technique) ....... 18 3.2 基於人體免疫系統之入侵偵測系統(Immunity-Based IDS Systems) ........ 21 3.2.1 基於人體免疫系統之網路型入侵偵測系統 ................................... 21 3.2.2 IGSTAM................................................................................................. 24 3.3 主機型入侵偵測系統上之攻擊 .................................................................... 26 3.3.1 插入 no-op 系統呼叫之攻擊 .............................................................. 26 3.3.2 繼承程式間之合作攻擊 ..................................................................... 28. iv.

(7) 第四章、系統需求與設計方法.....................................................................................29 4.1 不當攻擊樣板之檢測(Examine Improper Penetration Pattern) .................... 29 4.1.1 建立正常行為資料庫(Normal Behavior Database) ........................... 29 4.1.2 負選擇作用(Negative Selection)之方法............................................. 30 4.2 防止插入 no-op 系統呼叫之攻擊 ................................................................. 31 4.3 防止繼承程式間之合作攻擊 ........................................................................ 35 第五章、系統架構..........................................................................................................37 5.1 系統架構概觀.................................................................................................. 37 5.2 使用者層模組(User level module).................................................................. 39 5.2.1 樣板制定介面(State-based Rule configuration interface)................... 40 5.2.2 樣板分析與檢驗模組(Template analysis and testing module) .......... 40 5.3 核心層模組(Kernel level module)................................................................... 42 5.3.1 正常行為收集模組(Normal Behavior Collector) ............................... 42 5.3.2 合作攻擊處理模組(Co-operation handle module) ............................. 43 5.3.3 其他核心層模組 .................................................................................. 44 第六章、實驗與評估 .....................................................................................................46 6.1 實驗環境與實驗方法 ..................................................................................... 46 6.2 執行時間負擔(Runtime overhead).................................................................. 46 6.3 攻擊偵測實驗.................................................................................................. 50 6.3.1 插入 no-op 攻擊實驗........................................................................... 50 6.3.2 程式間合作攻擊實驗.......................................................................... 52 6.4 不當樣板之預警.............................................................................................. 54 第七章、討論與結論 .....................................................................................................56 7.1. 討論與結論 ...................................................................................................... 56. 7.2 未來工作 .......................................................................................................... 58 參考文獻 ..........................................................................................................................59. v.

(8) 表. 目. 錄. 表 1 N-gram 建立正常行為資料庫第一回合.............................................. 17 表 2 N-gram 建立正常行為資料庫............................................................... 17 表 3 mail utility 入侵流程............................................................................... 24 表 4 時間負擔(runtime overhead)關係表 ..................................................... 47 表 5 與其他 IDS 系統之比較表................................................................... 56. vi.

(9) 圖. 目. 錄. 圖 1 台灣經常上網人口成長情況................................................................. 5 圖 2 入侵步驟示意圖...................................................................................... 5 圖 3 一般 IDS 模型 .......................................................................................... 7 圖 4 核心載入模組 ........................................................................................ 11 圖 5 正常系統呼叫處理流程 ....................................................................... 12 圖 6 攔截系統呼叫下的處理流程............................................................... 12 圖 7 核心層系統呼叫攔截範例................................................................... 13 圖 8 淋巴細胞(T 細胞)的生成 ..................................................................... 14 圖 9 以 FSM 描述攻擊行為--病毒的感染.................................................. 19 圖 10 STAT 架構 ............................................................................................. 20 圖 11 入侵偵測元件組織圖 ......................................................................... 21 圖 12 基於人體免疫系統 IDS 之實體架構................................................ 22 圖 13 基於人體免疫系統 IDS 之執行流程................................................ 23 圖 14 探測器的生命週期.............................................................................. 23 圖 15 mail utility 入侵流程之狀態轉換表示圖........................................... 25 圖 16 IGSTAM 流程圖 ................................................................................... 25 圖 17 插入 no-op 系統呼叫之攻擊.............................................................. 27 圖 18 繼承程式間之合作攻擊 ..................................................................... 28 圖 19 負選擇作用之方法.............................................................................. 31 圖 20 原始 FSM 攻擊樣板 ............................................................................ 32 圖 21 sub-FSM 攻擊樣板................................................................................ 33 圖 22 sub-FSM 演算法 .................................................................................... 33 圖 23 ε-NFA ................................................................................................... 34 圖 24 加上ε邊演算法................................................................................... 34 圖 25 ε-NFA 轉 DFA..................................................................................... 35 圖 26 使用家族 FSM 實體防止合作攻擊 .................................................. 36 圖 27 系統架構圖 .......................................................................................... 38 圖 28 系統運作流程 ...................................................................................... 39. vii.

(10) `圖 29 攻擊樣板 ............................................................................................. 40 圖 30 經轉換之最終攻擊樣板 ..................................................................... 41 圖 31 樣板分析與檢驗模組 ......................................................................... 41 圖 32 正常行為資料庫之建立 ..................................................................... 43 圖 33 合作攻擊處理模組.............................................................................. 44 圖 34 合作攻擊處理模組.............................................................................. 44 圖 35 檔案大小與執行時間關係圖............................................................. 47 圖 36 狀態轉換百分比與時間負擔(runtime overhead)關係圖................. 48 圖 37 監督樣板數與時間負擔(runtime overhead)關係圖 ......................... 49 圖 38 process 數目與時間負擔(runtime overhead)關係圖 .......................... 49 圖 39 受監督程式數與樣板數之關係圖 .................................................... 50 圖 40 原始攻擊樣板 ...................................................................................... 51 圖 41 可抵抗 no-op 攻擊之攻擊樣板.......................................................... 51 圖 42 偵測 no-op 攻擊 ................................................................................... 52 圖 43 合作攻擊實驗之樣板 ......................................................................... 53 圖 44 偵測合作攻擊 ...................................................................................... 53 圖 45 sftp-server 不當攻擊樣板.................................................................. 54 圖 46 不當攻擊樣板之檢驗 ......................................................................... 55. viii.

(11) 第一章、緒論 回顧網際網路發展的歷史,從最早期ARPANET 的建立,到之後Internet 的 普及、各種區域網路標準的競爭,可以觀察到其中最重要的議題,就是解決連結 性(connectivity)的問題。如今,這個議題已大致獲得解決,現今幾乎所有政府機 關、學校、企業都有自己的網站,網際網路已經與每個人的生活息息相關,密不 可分。 當連結性問題逐步獲得解決之際,安全性問題卻逐漸浮現。近年來安全事件 不斷發生,不僅造成企業巨大損失,更直接危及消費者使用網際網路服務的信 心。當今眾多的網路應用程式,如電子郵件客戶端(email client)、網頁伺服器(web server)、檔案傳輸伺服器(ftp server)等,經常存在著一些弱點與漏洞,讓攻擊者 有機會加以利用來進行破壞、甚至竊取重要資訊。再者由於軟體發展已趨成熟, 軟體開發者發展程式時,往往需結合許多非自身設計的現有模組,來完成功能更 複雜的軟體,這也使得程式中的錯誤或漏洞越發難以察覺。緩衝區溢位(buffer overflow)、後門(back door)、邏輯錯誤(logic error)、甚至單純的使用者設定錯誤 (misconfiguration)都有可能招致電腦駭客的攻擊。 為了抵抗惡意的攻擊者,資訊安全領域的學者專家們發展出了許多防禦工 具,如防火牆(firewalls)、防毒系統(anti-virus)、入侵偵測系統(Intrusion Detection System ,IDS),希望能夠偵測並預防攻擊行為。然而,無論這些防禦工具設計再 複雜、功能再強大,駭客對其徹底研究以後,總是能找出特殊的方法來破解它, 並繞過這些防禦工具進行攻擊。當然,防禦工具被破解後,資安專家也會立即找 尋應對方法,將防禦工具進行強化,以抵擋新型的攻擊。因此,長久以來,資訊 安全領域中許多研究,,便是在資安專家與駭客之間的互相競爭中產生出來的。 入侵偵測系統是其中一項重要的安全性防禦工具。入侵偵測技術依照偵測的 模式可分成「不當行為偵測(misuse detection)」和「異常偵測(anomaly detection)」 。 不當行為偵測是最常用於IDS上的偵測方式,又稱為「特徵比對(signature-based detection)」,是利用已知的攻擊事件建立出各種攻擊特徵資料庫,當偵測到的行 1.

(12) 為與資料庫中某個特徵相符,就會將它視為入侵。此種做法的優點是誤判(將正 常視為異常)率較低,但缺點是偵測率也較低,因為新型態的入侵若未建立在特 徵資料庫中,便無法偵測出來。而異常偵測則是建立正面行為模式,即在系統建 立正常行為模式資料庫,將所偵測到的行為與正常行為模式進行比較,若差異甚 大便視為異常行為。此種做法的優點是偵測率高,可以偵測到新型態的入侵,但 是同時誤判率也高,因為使用者的行為經常在變,精確定義何謂「正常行為」實 非一件容易的工作。 本篇論文採用不當行為偵測的方法,基於STAT(State Transition Analysis Tool)[14][20],我們設計出一個即時入侵偵測防禦系統,AMA-IPS(An Intrusion Prevention System against Mimicry Attacks),將其實作於Linux系統上。我們將討 論現有的IDS系統上,不論是不當行為偵測或是異常偵測,會有的弱點與規避其 偵測的方式,並在我們的系統中提出解決的方法。. 1.1. 動機與目的 入侵偵測技術行之已久,很多文獻對IDS都不斷提出改進的方法,對提高偵. 測率和降低誤判率都有不少貢獻。然而駭客的攻擊方式不斷翻新,加上IDS作法 公開地被廣泛討論[31],許多研究也提出破解IDS防禦的方法,如擬態攻擊 (Mimicry Attacks)[4]。大部分攻擊行為中,攻擊者的目的莫過於取得使用作業系 統資源的特權,進而進行破壞或竊取資訊。而向作業系統取得資源的唯一方法, 便是透過系統呼叫(system calls)。因此,我們以攔截系統呼叫為出發點,透過監 督程式執行時的系統呼叫來防禦攻擊,並且以STAT為基礎,利用以狀態轉移來 定義攻擊的優點,使我們設計出來AMA-IPS可以克服現有IDS系統的缺點,使之 能夠抵抗[4]中對IDS的攻擊。. 1.2. 論文架構 本篇論文的組織架構如下:『第二章、背景知識』將介紹學術上被提出的各. 種入侵偵測研究,實作上攔截系統呼叫的技術,以及本論文參考到的人體免疫系 統之概念。『第三章、相關研究』介紹幾種現有的入侵偵測系統,以及在其上可 行的一些攻擊方式。『第四章、系統需求與設計方法』說明本系統要達成的三大 2.

(13) 目標與設計的方法。『第五章、系統架構』將詳細介紹本系統的組成元件與模組。 『第六章、實驗與評估』顯示運用本系統防禦攻擊之實驗結果與優劣比較。『第 七章、討論與結論』介紹論文結論與論文未來的擴展可能性以及需要增進的部份。. 3.

(14) 第二章、背景知識. 在這個章節,我們將介紹本篇論文的相關背景知識。首先,對入侵偵測 (Intrusion Detection System, IDS)與入侵預防(Intrusion Prevention System, IPS)技 術作一個概括性的簡介。2.2中,介紹幾種入侵偵測技術的設計方法。為了在核 心層(kernel)實作入侵預防,我們必須在核心層攔截系統呼叫,把系統設計成可 載入核心模組(Loadable Kernel Module),這些將會在2.3中一一介紹。2.4中,介 紹人體免疫系統之概念,以及從中得到設計入侵預防系統的啟發。. 2.1. 入侵偵測與入侵預防技術簡介 由於資訊科技(Information Technology ,IT)和網際網路的快速發展,參與網際. 網路的人數日益增加,根據資策會的調查統計,至2004年6月底止,台灣區的上 網人口已達892萬人(如圖1 所示),網際網路的組成份子愈來愈複雜,如何在這 個混亂的大環境中抵禦入侵者,確保自身的安全,無論對企業或是對個人來說, 都是相當重要的議題。 網際網路中的入侵方式,通常可以分成下列三步驟:收集資訊、入侵和入侵 後的處理(如圖2 所示)。收集資訊是指盡量收集有關目標主機的所有資訊,例如 主機網址、主機開放的服務、主機內的使用者帳號(User ID)、使用者密碼(User Password)、甚至是系統管理者密碼。接著是入侵動作,可以是直接以前一步驟 取得的系統管理者密碼進入主機,或間接利用漏洞進入。成功入侵主機後,接著 是最後的處理動作,包括清除系統中可能形成有關入侵行為的記錄,以避免留下 犯罪證據,也可能執行後門程式以方便下次的進入。 入侵行為從步驟一收集目標主機的資訊開始,目標主機便有機會透過分析網 路封包,或是分析系統中若干關鍵點的訊息,來檢查網路或系統中是否存在違反 安全策略的行為和被攻擊的跡象。而進行入侵偵測的軟體或與軟硬體的組合便是. 4.

(15) IDS。. 圖 1 台灣經常上網人口成長情況. 圖 2 入侵步驟示意圖 IDS的主要功能包括檢測並分析使用者在網路中的活動,辨識已知的攻擊行 為,統計分析異常行為,查核系統配置和程式漏洞,評估系統關鍵資源檔案的完 5.

(16) 整性,管理作業系統記錄檔,識別違反安全策略的使用者活動等。 IDS依照其偵測的範圍可以分成「網路型入侵偵測(Network-based IDS),簡 稱NIDS」和「主機型入侵偵測(Host-based IDS),簡稱HIDS」,各有其設置考量 與優缺點。NIDS大多在網路入口佈署,監看一個區域網路。NIDS的優點是成本 較低,僅需在一台主機上設置IDS即可監看整個網域,免除每台主機都要安裝IDS 的成本。NIDS可以偵測出阻斷服務(Dos)或通訊埠掃描(Port Scan)等攻擊,但NIDS 通常僅對網路封包的標頭(header)進行過濾分析,與標頭無關的攻擊方式則無法 偵測出來。HIDS常佈署於重要的伺服器或主機上,針對系統上的重要檔案與資 源進行監控,或是對使用者的行為進行監督,一旦符合入侵規則便發出警告。 HIDS可以偵測到一些NIDS偵測不到的入侵,例如駭客在受害主機的一些行為、 種植後門程式等等。然而如果一個區域網路內有多台重要主機,則需為每台重要 主機安裝HIDS,成本會提高很多。 除了依照偵測範圍來分類,在技術上,IDS依照偵測的模式可分成不當行為 偵測和異常偵測,在第一章已有概觀的介紹,而我們將在下一節對此兩種模式做 更詳細的討論。 早期多數IDS系統都是被動的,不是主動性的,它們被認為是一種檢測機制, 非預防手段。IDS在偵測疑似入侵行為時會將紀錄通報給安全專家來做決定,這 需要一些時間來做考慮,因此可能在系統已經被入侵後才察覺,為時已晚。IPS 與IDS最大的不同在於IPS能夠在偵測到入侵的同時進行防禦,它們的設計旨在 預先對入侵活動和攻擊性網路流量進行攔截,避免其造成任何損失,例如立刻停 止該程式的執行,或是切斷網路連線等等。然而,IDS和IPS技術著重的都是在 於如何辨識出攻擊,兩者其實用的技術和方法都是很類似的,而且關於IDS或是 IPS的學術研究,也都是著重在如何辨識出攻擊行為。許多被提出的IDS模型, 特別是「即時」的IDS系統,實際上已經具有IPS的功能,能夠達到防禦攻擊的 目的。因此,本篇論文中,不會特別強調IPS與IDS的分野,而會將其視為同一 類技術。. 2.2. 傳統入侵偵測技術 傳統IDS依照偵測的模式可分成不當行為偵測和異常偵測,如圖3 所示,. 6.

(17) 其效能主要由兩個因素來決定: (1) 資料特徵(data feature),對於不同種類的IDS來說,要處理分析的資料 也會有所不同,這些資料的特徵即代表每一使用者在連線或使用期間的行為描 述,例如基於系統呼叫的主機型入侵偵測,要處理的資料便是系統呼叫以及其參 數,對於網路型入侵偵測來說,要處理的資料便是收到的封包。資料的適當選定 有助於IDS對使用者的行為分析。 (2) 分析方法與工具,其作用如下: a.用來建立攻擊規則(Attack Rules)或行為模式(Behavior Model)。決定資料 特徵後就是依此特徵進行過濾分析,這時必須利用各種分析工具,建立對應的攻 擊規則與行為模式。 b.用來進行比對工作。當收集到現行行為資料時,需要如同建model的過 程,根據特徵將行為轉換,轉為與先前建立行為模式相符的比對格式。. 圖 3 一般 IDS 模型 在本節中將介紹這兩種模式所使用的分析方法。. 7.

(18) 2.2.1. 不當行為偵測(Misuse Detection). Misuse偵測是嘗試將已知的攻擊行為,用各種語法描述成攻擊樣式(attack pattern),並用這些攻擊樣式來辨認攻擊。用於辨認攻擊的分析方法常見的有三 種: (1) Rule-based分析方法-利用各種語法描述目的事件,以建立各種事件的規 則庫。將行為或是model利用說明敘述的方式表達出來,將其表示成一種規則, 就像是法律一樣,只要符合rule就認定它是一種非法的行為,一般大家所熟知的 snort[19]就是屬於此分析方法的tool。此分析方法常用於misuse專家系統,如: ASAX[15]。 (2) 貝式網路(Bayesian network)分析方法-利用貝氏條件機率所延伸出來的 一種學習演算法。這是運用條件機率的分析方式,貝氏定理的一個延伸應用,其 原理是建立各個特徵或屬性的發生機率,再根據各屬性之間的關係計算出它們之 間的條件機率關係,因而建立出完整的貝氏網路架構圖。由此可知這種分析方法 最重要的關鍵在於如何建立特徵或是屬性的機率狀態分佈,如果使用的特徵或屬 性無法由機率方式表現則此法便失效了。同時也可以利用許多已知的條件去推測 各種可能發生的事件及其條件機率,因此貝氏網路亦有預測未知事件發生的能 力。此分析方法亦常用於misuse專家系統,如:ICE[23]。 (3) Finite-state-machine分析方法-使用狀態轉移的觀點來描述目的事件的分 析方法。有限狀態機的運作是用一群各自不同的狀態以及描述一些觸發事件所組 成的狀態轉換,各個狀態間皆有某種關係,且這些關係就是觸發狀態轉移的事 件,因此可知有限狀態機必須包含:起始狀態、輸出狀態、狀態轉變函數以及輸 出函數,因此在使用此方法時要找出把資料轉化為狀態和觸發狀態轉移的事件, 才能有效的運用此分析方法。此分析方法亦常用來建立misuse專家系統,如: STAT[14][20],USTAT[14],STBIPW[24]。 這三種分析方法其偵測效能的好壞與所建出來的rule-base或model-base大 小有關,如果使用在anomaly detection上,必須要建立出正常行為的model,建出 來的model會相當大,影響偵測的效能,因此anomaly detection較少使用這些分析 方法。但若使用於misuse detection時,只需建立出已知攻擊行為的model,所建 出的attack rule並不會太多,因此對IDS的效能影響不大。. 8.

(19) 2.2.2. 異常偵測(Anomaly Detection). Anomaly偵測是去定義哪些行為在系統裡算是正常行為,跟這些正常行為偏 差很多的就算是一種異常行為,因此可以偵測出未知的攻擊。分析方法常見的有 兩種: (1) 統 計 分 析 方 法 - 利 用 統 計 方 法 建 立 規 則 或 行 為 模 式 (rule , behavior model),將過去收集的資料建立個別機器的normal profile,然後進行現在的action 和profile的比對,若有很大的差異,就判定此action為異常,管理者可以對此進 行加強監控。因此最重要的問題是如何建立網路上所有機器的normal profile。採 用此種分析方法的代表性IDS,如:ARGUS[11],SPADE[12],NIDAS[3]。 (2) 類神經網路(Neural network)分析方法-是具有學習能力的演算法,經由 適當訓練可使其具有辨識入侵的能力。一般類神經網路方式和用learning 的 anomaly detection一樣,需要先進行正常行為操作,蒐集後成為類神經網路的輸 入,經由training所得出來的model即為normal model,因此它和learning之anomaly detection有著相同的缺點:一為需要有很長的training時間,相當的耗時;二為當 我們新增一個training set的時候,整個training都要重新來過,相當不符合時效; 三為需要有很好的資料來做training,如果training資料取得不好的話,所做的 normal model的誤判率會變得很大。另外類神經網路的偵測方式亦可運用在 misuse detection上,也就是若training set若為Intrusion behavior,也可達到偵測的 效果。採用此種分析方法的代表性IDS,如:ACME[10]。 由於正常行為也有很大的變動性,因此分析方法能否訓練出較好的normal behavior model,是影響anomaly偵測精確性的關鍵。. 攔截系統呼叫(System call interception). 2.3. 在現代的作業系統中,所有的系統資源都是由作業系統集中管理,每個想要 存取系統資源的程式,都必須透過系統呼叫向作業系統提出要求,然後等待作業 系統將資源分配給它。在本節中,我們將介紹攔截系統呼叫的相關技術。. 2.3.1. 可載入核心模組(Loadable Kernel Module). 9.

(20) 在討論如何在核心中攔截系統呼叫之前,我們先介紹要如何在核心中加入自 己需要的功能。我們可以將模組(module)視為一個程式,但是它可以被動態載到 核心裡成為核心的一部分。載到核心裡的模組具有跟核心一樣的權力。可以存取 任何核心的資料結構。雖然Linux已是一個完整的系統,但為了增加新的功能, 它允許新增新的device driver,file system等。使用可載入核心模組(Loadable Kernel Module,簡稱LKM)便是擴充核心功能的一個最簡便的方法。 每個模組至少都必須提供init_module()和cleanup_module()這兩個基本的函 式,前者是用來初始化這個模組,在模組載入核心時會被呼叫。後者是用來結束 這個模組的工作,在從核心移除模組時會被呼叫。 圖4是從“Linux Device Drivers"書中所引用的一張圖。如圖所示,系統管 理者可使用“insmod"指令動態地將一個模組載入核心,此“insmod"指令會呼 叫模組中的“init_module( )"函式,作初始化的動作,並且向核心註冊此模組所 提供的功能函式。如此一來,此模組所提供的功能函式便可以為核心所用。當模 組提供的功能不再需要時,系統管理者可使用“rmmod"指令動態地將模組從系 統中移除。. 10.

(21) 圖 4 核心載入模組. 2.3.2. 核心層之系統呼叫攔截. 當一個程式想要存取系統資源時,它會向作業系統發出一個系統呼叫,此時 系統呼叫的號碼會存入暫存器中,然後便由作業系統取得程式的控制權。當作業 系統完成此次系統呼叫的工作後,程式的控制權便再回到要求存取資源的程式, 如圖5所示,系統呼叫表(system call table)中存著指向處理該系統呼叫函式的指 標。 正常狀況下,系統呼叫的處理流程如圖5的藍色路徑,作業系統會根據系統 呼叫表中對應的函式指標,呼叫處理該系統呼叫的函式,完成後直接由處理系統 呼叫的函式傳回結果給呼叫系統呼叫的程式。. 11.

(22) 圖 5 正常系統呼叫處理流程 若系統呼叫表被修改,系統呼叫的處理便由原本直接執行核心的函式,改為 指到其他攔截者函式,如圖6中的橙色路徑。. 圖 6 攔截系統呼叫下的處理流程 通常在攔截系統呼叫時,最後都會呼叫原本核心中處理系統呼叫的函式,以 保持一致性。攔截系統呼叫可由攔截者函式做一些動作,例如檢查參數等,最後 再呼叫原本核心中的函式來處理此次系統呼叫。 在核心層攔截系統呼叫,利用LKM和device driver的技術,我們可以在LKM. 12.

(23) 中直接修改system call table的內容,將每個指到原本核心中處理系統呼叫函式的 指標,改為指向我們實作在LKM中的攔截函式。圖7是一個簡單的核心層系統呼 叫攔截的例子。這個例子中實作了一個假的exit函式來取代原本的exit函式,然後 在模組的init_module()函式裡,將系統呼叫表中指向原本exit函式的指標,改為指 向假的exit,並且在模組的cleanup_module()函式裡,把system call table復原,即 把指標指回原本的exit函式。如此當這個模組被載入時,任何程式呼叫exit這個系 統呼叫,都會被導到假的exit函式,而當這個模組被移除時,便會將system call table復原,使得exit這個系統呼叫會導到原本的exit函式。. 圖 7 核心層系統呼叫攔截範例. 人體免疫系統(Human Immune Systems). 2.4. 人體隨時會接觸到外來的物質,例如水,空氣等,這些外來的物質中很可能 藏有危害人體的入侵者,例如細菌,濾過性病毒,甚至寄生蟲。人體中有免疫系 統,負責偵測並消滅這些外來入侵者,肩負著保衛人體健康的重責大任,在本節 中,我們將簡介人體免疫系統的運作情形,並且從中獲得設計入侵防禦系統的啟 發。 人體免疫系統的主角是淋巴細胞(lymphocyte),或稱淋巴球,、抗體(antibody) 淋巴細胞的主要工作是分辨敵我,它可以分辨哪些細胞是人體本身的細胞,哪些 是外來的、對人體可能有害的物質,這些可能有害的物質稱為抗原(antigen)。一 13.

(24) 個淋巴細胞的產生,是從基因庫裡面隨機選取一些基因片段來組成的,因此既然 是隨機選取來組成,這樣產生的淋巴細胞便可能會是有問題的,可能無法達成分 辨敵我的任務,所以必須經過一定的機制來檢驗這些細胞,如圖8所示。. 圖 8 淋巴細胞(T 細胞)的生成 一個新產生的淋巴細胞必須通過正向選擇(positive selection)和負向選擇 (negative selection)兩項測試才能成為成熟的淋巴細胞。正向選擇將會和其他自己 細胞互相合作的細胞選擇保留下來,以方便以後的T-細胞能透過主要組織相容性 原限制性(MHC-restriction)彼此合作。負向選擇就是讓這個淋巴細胞盡量去接觸 人體的正常細胞,把會對自己抗原起反應(self-reactive)的細胞去掉,以避免把正 常的細胞誤判成敵人,自己打自己,產生自体免疫反應(autoimmunity)。 若在一段時間內都沒有發生任何一次誤判,那麼就是一個成熟的淋巴細胞, 具有分辨敵我的能力,便會放到血液裡面去面對可能進來的外來物質。 當成熟的淋巴細胞進入血液以後,它就會開始去找看看是否有它認識的外來 物質(即會與之起反應的抗原),如果一段時間內它偵測到足夠數量的外來物質, 便會被活化(activated),被活化以後的淋巴細胞就會開始去殺死這些它認為是有 害的細胞。一段時間內如果淋巴細胞沒有被活化,就表示這個淋巴細胞目前可能. 14.

(25) 沒什麼作用,便會死亡,由新產生的淋巴細胞代替。 被活化以後的淋巴細胞因為要開始大量殺敵的任務,將進入clone selection 的狀態,開始複製自己,這些複製出來的淋巴細胞叫做memory cell,會存在血 液裡面比較長的時間去殺死那些有害細胞。 以上是整個人體免疫系統的機制,其運作方式與目的和我們設計入侵防禦系 統的出發點相同,都是要偵測出入侵者並防止它們對人體或電腦系統造成傷害。. 15.

(26) 第三章、相關研究. 本章節將介紹與本論文相關的一些研究。首先,介紹與本論文相關的入侵偵 測系統,分別是近年來被廣泛討論的以攔截系統呼叫為基礎之入侵偵測系統,以 及使用狀態轉換觀念的入侵偵測系統。人體免疫系統防止病菌入侵人體,而入侵 偵測防禦系統防止駭客入侵電腦系統,早在1996年便有研究開始將人體免疫系統 的概念應用在入侵偵測防禦上,3.2將介紹以此概念實作的入侵偵測系統。近年 來,不少研究指出現有IDS系統的缺點與漏洞,即使安裝了IDS仍有遭入侵的疑 慮,3.3中,我們將介紹現有的主機型入侵偵測系統上可能遭受的攻擊,與規避 其偵測的方法。. 相關入侵偵測技術(Related IDS Techniques). 3.1. 第二章中我們簡介過許多入侵偵測的分析方法,在本節中,將詳細介紹與本 論文的實作直接相關的兩種入侵偵測技術。. 3.1.1. N-gram 技術. 一個惡意的破壞程式要對系統造成傷害,必須執行某些特權的動作來存取系 統資源,而在現今的作業系統中,要存取系統資源唯一的方法是透過作業系統所 提供的系統呼叫。因此,以檢查監督每個程式的系統呼叫來控管安全性是非常可 行的方法,許多入侵偵測系統也朝著這個方向來設計,把系統呼叫作為資料特徵 來分析。 N-gram技術是由Stephanie Forrest等人最早在1996年提出[18],並在1998年提 出改進[17]。此技術以分析系統呼叫來設計入侵偵測系統,他們在2000年時提出 以此技術為基礎的pH(process homeostasis) IDS[1]。這個方法屬於anomaly IDS, 觀察程式執行時呼叫的系統呼叫所形成之系統呼叫順序(system call sequence), 16.

(27) 即根據程式執行了哪些系統呼叫,加以分析後判斷它的合法性。它為每一個特權 程式(privileged processes)建一套正常行為資料庫(self database),這個資料庫是根 據每個程式在特定的硬體架構、軟體版本和設定,在正常的使用狀況下建立出來 的。表1 是一個建立正常行為資料庫的例子,由以下的系統呼叫順序所建立出來: open,read,mmap,mmap,open,getrlimit,mmap,close. 表 1 N-gram 建立正常行為資料庫第一回合 call. Position 1. Position 2. Position 3. open. read. mmap. mmap. read. mmap. mmap. mmap. mmap. N-gram技術中的N代表觀察連續N個系統呼叫的關係,此例中N=3,表示觀 察每個系統呼叫後跟著的三個系統呼叫是否正常,表1 為建立正常行為資料庫的 第一個回合,window size=k+1=4,故觀察到第四個系統呼叫mmap,呈現的是前 四個系統呼叫的關係,open後面跟的依序為read,mmap,mmap,而read後面則 依序為mmap,mmap。此第一回合結束後,向右移動一個位置,第二回合觀察的 便是第二到第五個系統呼叫,以此類推,整個系統呼叫順序共經六個回合,結果 如表2所示。. 表 2 N-gram 建立正常行為資料庫 call. Position 1. Position 2. Position 3. open. read. mmap. mmap. getrlimit. close. read. mmap. mmap. open. mmap. mmap. open. getrlimit. open. getrlimit. mmap. close getrlimit. mmap. close. close. 17.

(28) 將正常行為資料庫建立起來後,即可用來和執行時的系統呼叫進行比對,因 為在此只看呼叫之系統呼叫的順序,不看所傳的參數,所以對監督程式來說,要 做的工作只有攔截系統呼叫、與正常資料庫比對。若有一個新執行的系統呼叫順 序: open,read,mmap,open,open,getrlimit,mmap,close 與表2的正常行為資料庫比對,可發現有四個不吻合的地方: (1) 表2 open在position 3的位置並沒有open。 (2) 表2 read在position 2的位置並沒有open。 (3) 表2 open在position 1的位置並沒有open。 (4) 表2 open在position 2的位置並沒有getrlimit。 此種N-gram的比對方式,因為只需比對系統呼叫順序,優點是簡單有效率, 而偵測率和window size N有很大的關係,window size越大,對正常行為的要求 就越嚴謹,因為要很長一串都完全吻合才算正常,如此可以提高偵測的效果,但 相對的也會提高誤判率。 然而此方法只有比對系統呼叫順序,並沒有檢查系統呼叫所帶的參數,在偵 測攻擊上稍嫌不足,有些攻擊者會利用合法的系統呼叫卻帶不合法的參數來進行 攻擊。另外,若從它的正常行為資料庫(如表2)中選一些不影響攻擊效果的系統 呼叫塞進攻擊樣式裡,只要讓它超過window size,造成攻擊樣式被分散開來, 它便無法偵測出攻擊了,這也是此種偵測方式的缺點。. 3.1.2. 以狀態轉換為基礎之技術. (State-Transition-Based Technique) 有限狀態機(Finite state machine,FSM)的運作是用一群各自不同的狀態以及 描述一些觸發事件所組成的狀態轉換,各個狀態間皆有某種關係,且這些關係就 是觸發狀態轉移的事件。我們可以將入侵行為看成一連串的狀態轉換,以有限狀 態機來描述一個攻擊行為,如圖9是一個以狀態轉換來描述病毒感染的例子。本 小節中,我們將介紹以狀態轉換為基礎的入侵偵測技術。. 18.

(29) 圖 9 以 FSM 描述攻擊行為--病毒的感染 使用FSM的分析方法中比較著名的系統有由Reliable Software Group此單位 所研究的STAT(State Transition Analysis Tool)[14][20],有許多研究也是以STAT 為基礎,如STBIPW[24]。STAT使用圖形化的狀態轉換表示法,能夠比Rule-based 方法更為直覺地描述複雜的入侵行為。在及時的環境中,STAT可利用已對一使 用者監聽紀錄下的資訊來追蹤該使用者的行為,並且判斷使用者目前的動作是否 會對系統安全造成威脅。 STAT的架構與傳統的IDS架構非常類似(如圖10所示),監聽資料前置處理器 (audit record preprocessor)將原始的監聽資料重整為系統可處理的格式。資訊庫 (knowledge base)包含了規則庫(rule base)和參數庫(fact base)兩部份。規則用來建 立使用者行為和狀態轉換的關係,參數則是系統特定的資訊。介面引擎(inference engine)讀取所有的規則與監聽資料來判斷是否有入侵行為。若有可能的入侵行為 符合規則,介面引擎便會對決策引擎(decision engine)發出警報,由決策引擎決定 如何處理。. 19.

(30) 圖 10 STAT 架構 STAT能夠進行on-line和off-line的入侵分析。在off-line模式中,STAT分析已 儲存的監聽資料來追蹤有嫌疑的非法行為。在on-line模式中,每個入侵規則都會 被轉換為一個入侵樣板外掛模組(plugin),動態地載入STAT的核心中。當蒐集到 監聽資料時,會立刻送到這些外掛模組,即時地進行入侵偵測分析。 圖11將STAT當成一個元件,與其它入侵偵測元件整合成一個大型的入侵偵 測系統,結合了多種入侵偵測技術將使得偵測能力更為強大。 STAT將攻擊行為以狀態轉換來表示,優點是攻擊描述簡單且直覺,讓使用 者可以更容易的用狀態轉換圖來取代撰寫文字式的規則,省去學習描述攻擊行為 語言的時間,另外也因其簡單的特性,偵測攻擊時只需看下一個轉換狀態的條件, 非常有效率。但STAT也受到FSM先天上的限制,在強度上稍嫌薄弱,例如沒有 記憶功能,可能讓攻擊者利用繞路來達成攻擊,在4.2中我們會討論此種攻擊與 防治的方法。. 20.

(31) 圖 11 入侵偵測元件組織圖. 基於人體免疫系統之入侵偵測系統. 3.2. (Immunity-Based IDS Systems) 人體免疫系統是保衛人體健康的一大功臣,它有效地阻止細菌、病源體和寄 生蟲等外來的威脅侵入人體,而它有效率的運作機制也引起了包含電腦系統在內 的各個學術研究領域的高度興趣。在資訊安全的領域,許多研究也紛紛提出以人 體免疫系統為基礎來設計的入侵偵測系統[28][29][30]。本節中,將介紹兩個以人 體免疫系統為基礎之入侵偵測系統。. 3.2.1. 基於人體免疫系統之網路型入侵偵測系統. Zhang Yanchao等人在2001年提出了基於人體免疫系統之網路型入侵偵測系 統[28],我們在第二章中已經介紹過人體免疫系統的運作機制,而這個網路型入 侵偵測系統的運作機制與人體免疫系統十分類似。. 21.

(32) 一個網路連線可以經過一些規則,例如根據IP address,port number等等其 他資訊,把它對應到一個長度為L的位元串列(bit string),而此系統中所謂的探測 器(detector),也是表示成一個長度為L的位元串列。探測器擔任辨識敵我的角色, 相當於人體免疫系統中淋巴細胞的功能。當一個網路連線所對應的位元串列和某 個探測器吻合時,表示這個網路連線可能是一個攻擊的行為。 圖12是實體機器分布的架構圖,主系統(primary system)負責產生探測器,然 後把這些探測器散布到各個偵測系統(detector agent)。. 圖 12 基於人體免疫系統 IDS 之實體架構 圖13是系統的執行流程圖,上面的部分是在主系統中執行,包括隨機產生探 測器,負向選擇(negative selection)與人體免疫系統中淋巴細胞的負向選擇機制十 分類似,即讓隨機產生出來的探測器和一些正常的網路連線做比對,如果探測器 會和這些正常的網路連線吻合,表示這個探測器無法使用,因為它會將正常的行 為誤判成攻擊。通過負向選擇測試的探測器即可用來辨識非正常的網路連線,它 們會組成一個個的群組,分散到各個偵測系統。. 22.

(33) 圖 13 基於人體免疫系統 IDS 之執行流程 圖14是一個探測器的生命週期,從產生出來到被消滅的整個過程。探測器通 過負向選擇之後,就會進入開始偵測的階段,若在一定的時間內達到一定數量的 吻合,探測器就會被活化,此時會發出一個警報給系統的安全管理者,決定要不 要防堵這種攻擊。決定防堵的話就會把這個探測器複製成很多個記憶探測器 (memory detector),分散到各個偵測系統。. 圖 14 探測器的生命週期 為了減低誤判的機率,此系統使用兩個機制,第一個是活化門檻(activation threshold),即探測器被活化然後發出警報的門檻。每個探測器都會設一個門檻,. 23.

(34) 在一定的時間內這個探測器必須要吻合很多次同樣的攻擊樣式才能被活化,以降 低發生一兩次吻合就誤判的情形。另外有時候同一種攻擊可能從不同地方過來, 單靠一個探測器可能偵測不到,所以可以在每個偵測系統上設一個門檻,當同屬 於這個偵測系統的任何一個探測器發生吻合時,就將計數值加一,加到超過門檻 時表示遭受攻擊,探測器便可以被活化並發出警報。 此網路型入侵偵測系統將攻擊樣式隨機產生出來再用基因演算法做篩選,因 此不需要使用者自己定義攻擊樣板,基本上屬於anomaly的IDS。然而它的效率 上有些遭受質疑,因為要隨機產生出真正為駭客所用、會造成系統傷害的攻擊樣 式機率並不是很高,加上產生出來的攻擊樣式若過一段時間沒偵測到攻擊變會被 刪除,因此必須在攻擊行為發生時,剛好有隨機產生出可以偵測它的攻擊樣板才 可以偵測出來,偵測效率可能不高。. 3.2.2. IGSTAM. 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. 2. %chmod 4755. 3. %touch X. create empty file. 4. %mail root < X. mail root empty file. 5. %/usr/spool/mail/root. execute setuid-to-root shell. 6. root%. /bin/csh. /usr/spool/mail/root /usr/spool/mail/root. 24. assumes no root mail file make setuid file.

(35) 圖 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的負向選擇,即接觸一些正常行為的狀態轉換串 列,進行比對,看是否會跟這些正常行為的狀態轉換串列吻合。若經過一段時間 的比對皆無吻合,便成為成熟的疫苗。. 圖 16 IGSTAM 流程圖 25.

(36) 疫苗成熟以後就把它放到適應型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,這是為 了較容易產生可以偵測相似攻擊的疫苗。 突變機制(Mutation)也是一種基因演算法,經過混合機制的疫苗有一定的機 率會再改變幾個値,然後再回到負向選擇做測試。 IGSTAM的優點是導入更多基因演算法,若是將已知的攻擊行為導入,有較 大的機會可以偵測到變種的攻擊。然而隨機產生的疫苗在偵測效率上與3.2.1介紹 的系統有著同樣的問題,即隨機產生的新疫苗在偵測新型攻擊上的效率可能不 高,因此我們提出的系統不採取隨機產生攻擊樣式的方式,而只取其中負選擇作 用的方法來檢驗使用者定義的攻擊樣板。. 主機型入侵偵測系統上之攻擊. 3.3. 雖 然 入 侵 偵 測 技 術 行 之 已 久 , 許 多 文 獻 對 IDS 也 不 斷 提 出 改 進 的 方法 [6][9][26],期望能夠完全地防堵攻擊,但駭客的攻擊方式亦不斷翻新,加上IDS 作法公開地被廣泛討論[2][27],若一個IDS的防禦方式被知道的話,駭客很可能 找出一些規避的方法來逃過偵測而進行攻擊,也有許多研究紛紛提出破解IDS防 禦的方法[4][13]。本節中,將討論兩種規避IDS偵測而進行攻擊的方法。. 3.3.1. 插入 no-op 系統呼叫之攻擊. 以定義攻擊樣板來偵測入侵行為的IDS,必須偵測到某項吻合的樣式才可判 斷出入侵行為,因此若在一段攻擊樣式中,插入很多沒有作用(no-operation)而且 26.

(37) 不影響攻擊效果的元素,便可以混淆IDS對攻擊樣式的辨識,例如在3.1.1中介紹 的N-gram技術,必須要連續幾個系統呼叫所形成的系統呼叫順序為異常,才會 被判斷為異常的攻擊行為。但若把攻擊行為的系統呼叫順序打散,如圖17所示, 底線的部份連續出現的話會被IDS偵測出來,這時使用IDS的正常行為資料庫中 的系統呼叫,穿插在攻擊樣式中將其打散,如圖17未畫底線的部份,則插入的 no-op系統呼叫將使得IDS無法辨識出原本的攻擊樣式,而無法偵測出入侵行為。 進行no-op攻擊的基本假設,是攻擊者能夠知道哪些屬於正常的系統呼叫, 而此假設成立的條件並不困難,因為有非常多基本常用的系統呼叫可供利用,且 若持續觀察IDS系統的行為,也可推測出屬於正常行為的系統呼叫,甚至可推測 出IDS系統所使用的演算法。若在misuse的IDS系統中,則因不需要考慮到正常 行為資料庫,此種攻擊更容易成功,只需把原本的攻擊樣式插入一些no-op的系 統呼叫即可。 將攻擊行為隱藏在正常行為中,稱為擬態攻擊(Mimicry Attacks)[4],此插入 no-op的攻擊法也屬於擬態攻擊的一種。. 圖 17 插入 no-op 系統呼叫之攻擊. 27.

(38) 3.3.2. 繼承程式間之合作攻擊. 如果攻擊者程式可以執行fork的話,一般的IDS通常會把fork出來的程式當作 獨立的程式監控,也就是分別追蹤父程式和fork出來的子程式,但是若父程式和 子程式合作進行攻擊的話,便不易偵測出來,如下例。 假設有一個攻擊樣式的系統呼叫順序為: open(“/etc/passwd") write(“/etc/passwd") close() 單一程式依序執行以上三個系統呼叫,會被IDS偵測為入侵行為,但程式可 先執行fork,產生出新的一個子程式,然後由兩個程式合作進行攻擊,如圖18所 示 , 由 父 程 式 執 行 open(“/etc/passwd") , 之 後 將 所 得 到 的 檔 案 描 述 子 (file descriptor)利用IPC(Interprocess Communication)的方式傳給子程式,最後由子程 式執行write(“/etc/passwd")、close()完成攻擊。IDS若把每個程式當成獨立程式 監控,則因為不論是父程式還是子程式都沒有完全吻合攻擊樣式,故無法偵測出 此種程式間的合作攻擊。此合作攻擊法亦屬於擬態攻擊的一種,我們將在第四章 中討論解決此問題的方法。. 圖 18 繼承程式間之合作攻擊. 28.

(39) 第四章、系統需求與設計方法. 本章節將介紹本論文所設計的系統之需求,以及設計方法。一直以來IDS系 統面臨到的挑戰始終都是偵測率和誤判率的問題,IDS的設計者總是希望能夠設 計出高偵測率與低誤判率的系統,在4.1中,將介紹從人體免疫系統得來的啟發, 使用負選擇作用的觀念來預警不當之攻擊樣板,進而降低誤判率的方法。面對駭 客日新月異的攻擊手法,IDS系統的設計也必須考量本身可能遭受的破解,在4.2 中,我們將介紹防止插入no-op系統呼叫來規避偵測的攻擊,而4.3中我們將介紹 防止另一種規避偵測的方法,即防止程式間合作進行攻擊,使本論文提出的IDS 系統能夠更精準地偵測入侵行為,並防止蓄意規避偵測。. 不當攻擊樣板之檢測(Examine Improper. 4.1. Penetration Pattern) 誤判對入侵偵測系統來說是一個很嚴重的問題,過多的誤判對系統安全管理 人員來說是沉重的負擔,同時也會浪費許多系統資源。誤判分為兩種,一種是正 向誤判(False positive),即將正常的行為誤判成攻擊行為,另一種是負向誤判 (False negative),將攻擊行為誤判為正常行為,意即沒有偵測出攻擊。較被廣為 討論研究的誤判屬於正向誤判,本論文亦以此為研究重點。 無論是anomaly還是misuse的IDS都會有誤判的情形,anomaly IDS的誤判來 自於正常行為資料庫不夠健全,沒有將所有的正常行為包含進去,因此未被蒐集 到的正常行為就會被誤判成攻擊。misuse IDS的誤判來自於攻擊樣式的定義模 糊,使用者定義的攻擊樣式可能會包含到正常行為因而造成誤判。本節中,我們 將介紹使用基因演算法來減少誤判的方法。. 4.1.1. 建立正常行為資料庫(Normal Behavior 29.

(40) Database) 本論文提出的系統架構在偵測模式上屬於misuse IDS,讓使用者可以依照需 求自行定義攻擊樣板,並以此樣板來偵測攻擊。在減少誤判的作法上,我們蒐集 正常行為,且用這些正常行為來檢驗攻擊樣板,分為兩個階段:訓練階段(Training phase)和測試階段(testing phase),本小節介紹訓練階段。 訓練階段必須在保證沒有攻擊會發生的安全環境中,記錄下正常的系統呼叫 順序,建立出正常行為資料庫,此種建立正常行為的模式類似anomaly IDS中常 見的建立正常行為資料庫,例如3.1.1中介紹的N-gram便是用此方法,但在 anomaly IDS中,正常行為資料庫是用來偵測攻擊,而我們的正常行為資料庫則 是用來檢驗使用者定義的攻擊樣板。 建立正常行為資料庫時,因為需要在安全的環境中,最好是將網路連線關 閉,或是只允許特定的使用者帳號登入使用。雖然有些學術單位提供一些程式的 執行記錄,但並不保證其中絕對沒有攻擊行為。通常一個主機型入侵偵測系統會 自己訓練正常行為資料庫,以訓練出專屬於安裝此入侵偵測系統的正常行為,同 時也不受限於程式類型,可為任何應用程式訓練出專屬的正常行為資料庫。. 4.1.2. 負選擇作用(Negative Selection)之方法. 在測試階段中,用的是人體免疫系統中負選擇作用的概念,如圖19,即讓使 用者定義的攻擊樣板和我們在訓練階段建立出來的正常行為資料庫做比對,來檢 驗使用者定的攻擊樣板。此相當於人體免疫系統中,讓淋巴細胞盡量接觸身體內 的正常細胞。 比對中如果有發生吻合,表示使用者定的攻擊樣板會把在正常行為資料庫裡 的所謂正常行為當成是攻擊,這時候便要讓使用者決定,看是要檢查並修改攻擊 樣板,或者就是不允許這個行為發生,仍然要把它當作攻擊來阻止預防。若使用 者的決定是後者,就必須把發生吻合的系統呼叫順序從正常行為資料庫中刪除。 透過這層檢驗,可以避免使用者定出不夠精準的、會產生許多誤判的攻擊樣板, 降低因誤判造成的損失。. 30.

(41) 從正常資料庫 取出正常系統 呼叫順序. 使用正常系統 呼叫順序與攻 擊樣板比對. 是. 是否發生吻合. 提報使用者發 生吻合. 否 否. 是. 使用者修改攻 擊樣板. 是否要修改攻 擊樣板. 否. 系統更新正常 資料庫. 是否已比對完所有 正常系統呼叫順序 是. 圖 19 負選擇作用之方法. 4.2. 防止插入 no-op 系統呼叫之攻擊 在 3.3.1 中我們介紹過,像 N-gram 那種使用樣式比對、吻合方式的作法,. 很容易用插入許多 no-op 的系統呼叫來規避偵測。然而在 STAT 中,只看關鍵事 件(key event)來判定攻擊,即遇到關鍵的系統呼叫才會作狀態轉換的動作,插入 無關的 no-op 系統呼叫並不會轉換狀態,看起來似乎不會有 no-op 攻擊的疑慮, 但其實不然。例如,原本使用者定的攻擊樣式 FSM 如圖 20 所示,假設 a~f 皆為. 31.

(42) 系統呼叫,若直接拿圖 20 來做偵測,因為此 FSM 為一個 DFA(Deterministic Finite Automaton),遇到可轉換的條件時必定要轉換,因此像 ace 這樣的系統呼叫順序 便無法偵測出來。其主要原因是 FSM 沒有記憶的功能,只能看目前的狀態,以 及下一個狀態轉換的條件為何,雖然這也是它有效率的地方。攻擊者若要避開對 ce 這個系統呼叫順序的偵測,可先執行 a,再執行 ce 即可,我們可以稱這樣的 攻擊法為繞路攻擊(evasion attack),對這樣的攻擊來說,a 便算是一個 no-op 的系 統呼叫,用它來擾亂 IDS 的偵測。. 圖 20 原始 FSM 攻擊樣板 為了解決這個問題,我們必須對原本的 FSM 作一些處理。首先,若使用者 定的 FSM 比較複雜,我們會以到達最終狀態的路徑來考慮,先將它拆成幾個 sub-FSM,如圖 21。所謂的比較複雜,是指像圖 20 中,有兩條分叉路徑在終點 前就交會的情形,較正式地說,即使用深度優先搜尋法(Depth First Search , DFS ) 來追蹤這個圖時,若過程中遇到重複走的邊,就必須把包含此重複走的邊之路徑 獨立拆開出來。圖 22 為檢查並將一個 FSM 拆為多個 sub-FSM 之演算法。. 32.

(43) 圖 21 sub-FSM 攻擊樣板. 圖 22 sub-FSM 演算法. 33.

(44) 第二個步驟,是在每個 sub-FSA 的非終點狀態上,都加上一個回到前面分 叉點的ε邊,成為一個ε-NFA(Nondeterministic Finite Automaton),如圖 23。所 謂的分叉點,是指有兩個以上的狀態轉換條件之狀態,圖 24 為加上ε邊的演算 法。加上回到分叉點的ε邊,表示不管現在處於哪個狀態,都有可能再從前面分 叉的地方走另一條路徑來進行攻擊。. 圖 23 ε-NFA. 圖 24 加上ε邊演算法 34.

(45) 最後利用正規語言(formal language)的方法,將ε-NFA 再轉成 DFA,如圖 25 所示。須轉為 DFA 是基於偵測時的效率考量,因為 DFA 明確地定義遇到特 定的條件會轉到特定的狀態,比定義轉換條件不明確的 NFA 有效率。如此轉出 來的 DFA 便可防止 no-op (或繞路)的攻擊,例如原本在圖 20 中無法偵測的 ace、 cad 這樣的系統呼叫順序,在圖 25 中在都可以偵測出來。故我們透過對使用者 定的 FSM 的一些分析處理,可以確保 no-op 攻擊無法成功。. 圖 25 ε-NFA 轉 DFA. 防止繼承程式間之合作攻擊. 4.3. 防止合作攻擊的部份,我們假設合作攻擊的起點為一個程式執行 fork 指令、 準備產生一個子程式來進行合作,因此我們攔截 fork 系統呼叫做特別處理。當 一個需要被監督的程式執行時,系統會產生此程式的 FSM 實體(instance),隨著 此程式執行系統呼叫,FSM 實體的狀態也會跟著轉換,用它來監督這個程式的 執行。 若此程式執行 fork 系統呼叫,我們就會為 fork 出來的子程式產生監督它的 FSM 實體,它的狀態會在初始狀態,之後隨著子程式執行系統呼叫,子程式的 FSM 實體的狀態也會跟著轉換。同時,也會產生一個家族 FSM 實體,狀態則與. 35.

(46) 執行 fork 系統呼叫之父程式的狀態一致,如圖 26 所示。. 圖 26 使用家族 FSM 實體防止合作攻擊 父程式和子程式都有各自監督它們的 FSM 實體,防止它們獨立進行攻擊, 而家族 FSM 實體,則是用來防止合作進行攻擊。不論是父程式或子程式,執行 系統呼叫時,除了檢查更新自身的 FSM 實體外,也會同時檢查家族 FSM 實體 是否需要更新,如圖 26,由父程式開啟 passwd 這個檔案後,不管是父程式還是 子程式去寫入,家族 FSM 實體都會轉換到下一個狀態。因此透過建立這種監督 家族的觀念,可以防止程式間的合作攻擊。. 36.

(47) 第五章、系統架構. 本章節將介紹本論文所設計的AMA-IPS系統之架構,以及各個元件的簡 介。一般以攔截系統呼叫的方式來監督程式執行,可實作在使用者層(user level) 或核心層。實作在使用者層,優點是不需要更改作業系統核心,因此修改容易, 擴充性較高。但因為執行每個系統呼叫時,都必須先把控制權交給作業系統,再 由作業系統將控制權給監督程式,之後控制權再回到作業系統執行系統呼叫,如 此多了一來一回的環境切換(context switch)時間,在執行時間上的負擔很大。實 作在核心層,優點是可省下環境切換時間,速度快很多,然而因為修改到作業系 統核心,要擴充功能時較為不便。本篇論文提出的AMA-IPS系統採權衡的方式, 將可靜態作的分析工作,在使用者層做完,且若要對攻擊行為做更進一步的分 析,也可繼續擴充功能。而及時的監督與偵測工作則放在核心層,降低執行時的 時間負擔。5.1中,將簡介整個系統的架構與各元件之間的關係。5.2介紹使用者 層各模組元件之功能。5.3介紹核心層各模組元件之功能。. 5.1. 系統架構概觀 我們的系統以STAT為基礎,分為使用者層元件和核心層元件兩大部分,兩. 部分元件的溝通使用device driver,整體系統架構如圖27。我們使用核心層軟體 包 覆 隔 離 (Kernel-Level Wrapper) 技 術 , 將 各 核 心 層 元 件 (component) 實 作 成 LKM(Loadable Kernel Module),掛載於Linux系統的核心下。使用者層元件由使 用者操作輸入後,將結果透過Wrapper driver輸出給核心層元件使用。 在訓練正常行為階段,Normal Behavior Collector會紀錄正常使用狀況下的系 統呼叫順序(normal system call sequence),並將其儲存於正常行為資料庫(Normal Behavior Database)中。. 37.

(48) 圖 27 系統架構圖 使用者在State-based Rule configuration interface制定入侵防禦規則,此模組 有圖形化介面提供使用者定義攻擊樣式,制定完成後這個攻擊樣式我們稱為攻擊 樣板(template),此攻擊樣板還不會直接用來偵測攻擊,而是先經過Template analysis module進行分析,轉為可以抵抗no-op攻擊的DFA,之後再交由Template testing module做測試,檢驗使用者定的攻擊樣板是否會造成很多誤判情形。攻擊 樣板通過檢驗後才可經由Wrapper Driver載入核心,這些攻擊樣板被載入後存在 State Information center中。 核心層元件根據使用者定義的攻擊樣板來防堵入侵攻擊行為。Wrapper Manager是系統中最重要的一個元件,負責產生攻擊FSM實體(Instance)、即時攔 截系統呼叫、並檢驗此系統呼叫是否允許執行。Wrapper Manager會根據儲存在 State Information center中的攻擊樣板來判斷一個程式是否需要受監督。當一個需 要受監督的程式開始執行,Wrapper Manager會動態地產生監督此應用程式的 FSM 實 體 , 開 始 攔 截 此 程 式 發 出 的 所 有 系 統 呼 叫 、 執 行 前 置 與 後 置 動 作 (Pre-actions&Post-actions)、檢查是否需要進行狀態轉換。若此應用程式會執行fork 系統呼叫,則由合作攻擊處理模組產生出家族FSM實體。若此程式欲執行會導 致FSM實體或家族FSM實體轉換到最終狀態的系統呼叫,則立即停止此應用程 式的執行,阻止其對系統造成傷害。系統之運作流程如圖28所示。. 38.

(49) 圖 28 系統運作流程. 5.2. 使用者層模組(User level module) 使用者層模組的主要功能在於對攻擊樣板的前置處理,包含提供介面給使用. 者制定攻擊樣板、分析使用者定義之攻擊樣板,以抵抗插入 no-op 系統呼叫之攻 擊、檢驗使用者定義之攻擊樣板,防止使用者使用不當攻擊樣板監督程式,造成 高誤判率。這些模組的功能將於本節中介紹。. 39.

(50) 5.2.1. 樣板制定介面(State-based Rule. configuration interface) 在本系統中,我們可把複雜的入侵規則用簡單直覺的圖形(有限狀態機)來表 示。樣板制定介面提供以滑鼠拖拉方式的GUI圖形介面給使用者來制定攻擊樣 板。例如圖29是一個利用wuftpd FTP server的漏洞取得root權限並進行攻擊之樣 板。監督的條件可以檢查程式執行時的三個欄位uid,gid,comm來決定,也可 以指定all,即所有程式都要監督。 這個例子指定只要是comm=wuftpd的程式都必須監督,攻擊樣式如圖所示, 若依序執行了這幾個的系統呼叫: setreuid,chroot,chdir(“../../../../../../../../../"), chroot(“/"),便可取得root權限,並逃脫chroot的限制,接著進行攻擊。使用者 在樣板制定介面制定的攻擊樣板,會交由樣板分析與檢驗模組進行分析與檢驗。. `圖 29 攻擊樣板. 5.2.2. 樣板分析與檢驗模組(Template analysis and. testing module) 為了在使用者定出不良的攻擊樣板時提出警告,進而減少誤判,且為了阻止 有心的入侵者刻意插入no-op系統呼叫來規避偵測,我們必須對使用者自行定義 的攻擊樣板(user define template),稱原始攻擊樣板,進行分析和檢驗。此部分之 40.

(51) 功能由樣板分析模組(Template analysis module)與樣板檢驗模組(Template testing module)來實現。 樣板分析模組先對原始攻擊樣板以圖22的演算法進行分析,視需要將其拆為 若干個sub-FSM,再利用圖24之演算法將每個sub-FSM轉為ε-NFA,最後轉成真 正用於偵測攻擊的攻擊樣板(final Tempalrte)。例如在圖29中使用者所制定的原始 攻擊樣板,在經過樣板分析模組的分析與轉換後,會轉為如圖30的最終攻擊樣板。. 圖 30 經轉換之最終攻擊樣板 攻擊樣板經過分析後,還必須經過檢驗才能載入核心中。樣板的檢驗由樣板 檢驗模組從正常行為資料庫中,取出代表正常行為的系統呼叫順序,測試是否會 讓此攻擊樣板轉換到最終狀態,如圖31。. 圖 31 樣板分析與檢驗模組. 41.

(52) 若所有代表正常行為的系統呼叫順序皆不會使此攻擊樣板轉換到最終狀 態,表示此攻擊樣板不會把這些正常行為誤判成攻擊,因此可以直接載入核心 中。若有代表正常行為的系統呼叫順序會使此攻擊樣板轉換到最終狀態,表示此 攻擊樣板可能是有問題的,可能會造成誤判,此時必需提報使用者,決定是否要 修改攻擊樣板。 樣板通過檢驗後,接著便由Wrapper Driver載入核心,由核心層模組根據這 些使用者制定之樣板來監督程式的執行,偵測是否有符合的攻擊行為。. 核心層模組(Kernel level module). 5.3. 核心層模組的主要功能在於即時地偵測攻擊,包含產生 FSM 實體、攔截系 統呼叫、執行攻擊 FSM實體的狀態轉換,處理合作攻擊。另外訓練正常行為資 料庫也是核心層模組的功能之一,這些模組的功能都將於本節中一一介紹。. 5.3.1. 正常行為收集模組(Normal Behavior. Collector) 樣板檢驗模組中使用的正常行為資料庫,是由使用者在安全的環境下,由正 常行為收集模組記錄正常使用下之系統呼叫順序所建立出來的。使用此方式建立 正常資料庫的前提是系統必須處於安全、無攻擊之虞的環境下,蒐集到的正常資 料庫才有意義,檢驗攻擊樣板時才能精確地檢查出錯誤。 此訓練方式適用於任何應用程式,使用者可透過Wrapper Driver,在Wrapper Manager中設定紀錄正常系統呼叫的條件,例如指定收集某個程式執行的系統呼 叫。Wrapper Manager即可根據設定的條件呼叫正常行為收集模組為該應用程式 訓練出專屬的正常行為資料庫,如圖32所示。訓練資料庫的時間和資料庫的大小 亦可由使用者自行決定,訓練時間越久、資料庫越大,越能精確地檢驗攻擊樣板、 減少誤判情形。另外在測試階段時,若使用者發現正常行為資料庫中有不合實用 的資料,亦可對此資料庫進行更新的動作。. 42.

(53) 圖 32 正常行為資料庫之建立. 5.3.2. 合作攻擊處理模組(Co-operation handle. module) 當我們的Wrapper Manager攔截到一個exec系統呼叫,經過與攻擊樣板的監 督條件比對,可以判斷是否要監督發出此exec的程式。若程式需要受監督, Wrapper Manager會產生出監督這個程式的FSM實體。當這個程式執行fork系統呼 叫,合作攻擊處理模組會產生出子程式的FSM實體,同時也會產生出一個家族 FSM實體,如圖33所示。之後攔截到父程式執行的系統呼叫,合作攻擊處理模 組都會檢查父程式本身和家族的FSM實體。攔截到子程式執行的系統呼叫,則 會檢查子程式本身和家族的FSM實體,如圖34所示。 若是子程式再執行fork系統呼叫,則合作攻擊處理模組會產生出孫程式的 FSM實體,但不會再產生新的家族 FSM實體,而是會將孫程式的FSM實體和已 產生的家族FSM實體建立起關連,屬於同一個監督家族,如圖34。 由於家族成員都是由最早的一個程式所fork出來的,彼此間有合作進行攻擊 的可能。因此在家族FSM產生後,家族成員中的任何一個程式執行系統呼叫都 會參考家族FSM的轉換條件,故家族成員間彼此合作進行攻擊時,不管哪個家 族成員執行攻擊的步驟,都會使得家族FSM做狀態轉換,而無法逃過我們的偵 測。家族FSM實體必須等到所有家族成員皆執行結束,才會被系統刪除。. 43.

(54) 圖 33 合作攻擊處理模組. 圖 34 合作攻擊處理模組. 5.3.3. 其他核心層模組. 本節中我們將介紹其他核心層模組之功能以及各模組間的關係,包含 Wrapper Manager,Wrapper Driver,State Information center,這些模組皆以Wrapper Manager為中心來運作。. Wrapper Manager 當一個應用程式開始執行時,Wrapper Manager會檢查所有攻擊樣板中的監 督條件是否與此應用程式相符,如程式的uid、gid、command等等。例如圖29之. 44.

數據

圖 2 入侵步驟示意圖
圖 4 核心載入模組
圖 5 正常系統呼叫處理流程          若系統呼叫表被修改,系統呼叫的處理便由原本直接執行核心的函式,改為 指到其他攔截者函式,如圖6中的橙色路徑。  圖 6 攔截系統呼叫下的處理流程  通常在攔截系統呼叫時,最後都會呼叫原本核心中處理系統呼叫的函式,以 保持一致性。攔截系統呼叫可由攔截者函式做一些動作,例如檢查參數等,最後 再呼叫原本核心中的函式來處理此次系統呼叫。      在核心層攔截系統呼叫,利用LKM和device driver的技術,我們可以在LKM
圖 7 核心層系統呼叫攔截範例
+7

參考文獻

相關文件

Hofmann, “Collaborative filtering via Gaussian probabilistic latent semantic analysis”, Proceedings of the 26th Annual International ACM SIGIR Conference on Research and

[3] Haosong Gou, Hyo-cheol Jeong, and Younghwan Yoo, “A Bit collision detection based Query Tree protocol for anti-collision in RFID system,” Proceedings of the IEEE

and Liu, S.J., “Quantifying Benefits of Knowledge Management System: A Case Study of an Engineering Consulting Firm,” Proceedings of International Symposium on Automation and

[16] Goto, M., Muraoka, Y., “A real-time beat tracking system for audio signals,” In Proceedings of the International Computer Music Conference, Computer Music.. and Muraoka, Y.,

[16] Goto, M., “A Robust Predominant-F0 Estimation Method for Real-time Detection of Melody and Bass Lines in CD Recordings,” Proceedings of the 2000 IEEE International Conference

Harma, “Automatic identification of bird species based on sinusoidal modeling of syllables,” in Proceedings of IEEE International Conference on Acoustics, Speech,

Li, The application of Bayesian optimization and classifier systems in nurse scheduling, in: Proceedings of the 8th International Conference on Parallel Problem Solving

Through the analysis of Structural Equation Modeling (SEM), the results of this research discover that the personal and family factors, organizational climate factors,