SENFO
|
分享:
▼
x0
|
[資訊教學] 測試入侵偵測系統方法論
■測試入侵偵測系統方法論
-------------------------------------------------------------------------------- 1. 簡介
入侵偵測系統(Intrusion Detection System, IDS)定義了來自內部授權的使用者或外部攻 擊者未經授權的使用、誤用或濫用電腦系統。 有些入侵偵測系統只監看單一台電腦主機, 有些則用來監看網路上所有的電腦主機。 入侵偵測系統是透過分析使用者的來源資訊,包 含系統稽核紀錄、系統排程與網路的流量等,綜合判斷是否有入侵的行為。
許多組織以IDS 作為電腦安全系統的主要元件,評估 IDS 的技術變得愈來愈重要,IDS 的 使用者需要知道所使用 IDS 的效能,來評估依仗IDS 的程度或是必須仰賴其它的安全機制 。然而,評估 IDS 的效能是一件困難的任務。首先,在使用特定的IDS 時,難以定義所有 可能發生的入侵情況,入侵技術的數量是如此龐大,一個 IDS 可能無法偵測所有的入侵資 訊,且入侵者可能使用新的技術或利用尚未發現的系統漏洞進行入侵,IDS可能無法一一偵 測得到。再者,IDS 的評估可能受限於電腦或系統本身的條件,例如:IDS可以偵測到的入 侵行為,當系統負荷處於滿載時可能會偵測失敗而無效。
面對這些問題,我們發展出一方法論來測試IDS,在方法論的基礎上,定義了一組基本IDS 的效能項目,如:IDS 所能偵測到的入侵之概括範圍,這個方法論是用來測量 IDS 的效用 及著重在效能項目的測試。包含一組測試案例的選擇策略與一組細目測試的程序。 為了發 展這個測試方法論,從軟體測試的角度借用一些技巧與結合一些測試 IDS 特定的目的,為 了測試,我們使用了 UNIX 工具 『expect』來建立使用者模擬操作,此外,我們增強了 『expect』原有的功能來進行更為複雜的測試工作。
使用我們所發展的方法或工具將有助於開發 IDS 的人來測試所開發系統的效益,系統管理 者能使用我們的方法來測試目前所用的 IDS 是否正確的使用,對於預計部署使用 IDS的組 織而言,可以使用此方法來評估各種 IDS 的優劣。
在本文第二部分背景說明會簡介一些入侵行為、入侵偵測的動機等, 第三個部分將描述所 使用的測試軟體平台『expect』及所增強的部分, 第四個部分說明測試的方法:首先定義 IDS重要的效能項目與描述如何選擇測試的案例與限制等等,第五個部分說明所制定的實測 程序細節,第六個部分描述實驗所得的結果,最後為本文的結論。
2. 背景說明
這個部分將說明一些關於進行工作的背景-入侵與入侵偵測資訊。
2.1. 入侵
入侵事件正以驚人的速率增加,有些站台甚至一個月有數百件試圖入侵的事件, 而且入侵 者使用許多不同的入侵技術,有一些入侵事件像是: ● 員工隨意翻閱老闆對於其他員工的評價 ● 使用者利用檔案系統的漏洞來查看其他使用者的檔案 ● 使用者利用系統程式的漏洞來取得系統管理者的權限 ● 入侵者使用密碼破解程式來破解密碼 ● 入侵者安裝監聽器在網路上進行監聽工作,以取得使用者的帳號密碼或其他敏感的資料 ● 入侵者修改網路路由表阻擋訊息的傳遞
可以容易地往下推斷出上所列的事件的結果, 包含遺失或偽造資料、財務上的損失、對合 法使用者的 DoS(denial of service)攻擊、電腦或網路系統的不可信、機密資料的曝光等 ,都是入侵後可能發生的。
2.2. 同時發生的入侵行為
此外,多樣且同時的入侵行為是可能的, 入侵者可能使用多個終端機同時對同一個目標進 行入侵,為了更真實模擬一個或多個入侵行為,我們依照下列幾個種類來進行模擬:
● 單一入侵者、單一終端主機(Single Intruder Single Terminal, SIST) 單一個入侵者在單一個終端主機上發動入侵或邏輯上是在單一終端主機上, 終端主機可 能是一台直接連接目標主機的機器或經由網路或撥接連到目標主機。
● 單一入侵者、多終端主機(Single Intruder Multiple Terminal, SIMT) 入侵者透過多個終端視窗入侵目標主機,或建立不同的網路連線來入侵目標主機, 企圖 混淆或隱藏入侵行為。
● 多入侵者、多終端主機(Multiple Intruder Multiple Terminal, MIMT) 多個入侵者參與入侵目標主機的行動,且一個或多個入侵者使用 SIMT方式入侵目標主機 。目標主機可能是一部或網路多部電腦, 入侵者可能試圖在許多可疑的連線中隱藏真正 的攻擊行為。
2.3. 入侵偵測的動機
電腦安全的目的在建立一個完全安全的系統。 不幸的是,在某些因素下電腦的周邊設備與 環境下無法有效地提供杜絕入侵的能力。 首先,系統軟體趨於複雜,程式設計師在面對軟 體設計時,難以預期程式執行的所有情況、執行條件與環境, 因此一個系統軟體通常包含 一些可能產生的安全漏洞,而軟體升級後往往又伴隨著新的問題。 第二,隨著網路連線需 求的增加,幾乎不能對外斷絕聯絡以保護系統安全。 最後,電腦系統的核心元件或是電腦 網路本身是不安全的, 舉例來說,有些 TCP/IP implement 就存在著許多安全上的漏洞。
為解決這些問題,在發展安全的系統時,提出一個安全管理系統模型,如下圖
┌──────>PREVENTION─────┐ │ v POST-MORTEM DETECTION ^ │ └─────INVESTIGATION<───┘
發展安全的系統包含四個元件,「PREVENTION」元件定義防止入侵的項目,「DETECTION」 元件定義安全缺口,「INVESTIGATION」元件從「DETECTION」元件定義發生什麼事, 此元 件也包含蒐集更進一步的資料來定義入侵者,「POST-MORTEM」元件分析未來如何防止類似 的入侵情況的發生。
從前關於電腦安全的研究集中在如何防止入侵,即「PREVENTION」 元件上,後來入侵偵測 的概念提出,才慢慢地將焦點轉移到「INVESTIGATION」元件上,但只根據這兩個元件並不 足以證明入侵情形的發生,所以新的模型分成四個部分來進行分析與驗證。
2.4. 著手處理入侵偵測
根據 IDS入侵攻擊行為偵測分類,可分為兩類,分別為異常偵測(anomaly detection)和誤 用偵測 (misuse detection)。異常偵測是入侵的系統或網路與入侵前的正常系統或網路活 動有明顯的不同,而且,入侵者(可能偽裝成合法使用者) 與原來使用者行為有明顯的不 同。IDS會建立使用者正常行為的資料檔,使用者的行為活動會與正常行為的資料檔作比較 ,如果行為與資料很接近就認為是正常的,反之就認為不正常而發出警告。 misuse detection 是利用樣版比對的方式,IDS 收集分析使用者的所有行為(command 和 session…等),並將此行為樣版與系統攻擊資料庫中的資料加以比較。此攻擊資料庫中, 詳細定義著各種入侵攻擊樣式(attack pattern 或 attacksignature)。若相似於入侵攻擊 的樣式,便視為是一種攻擊入侵行為。
雖然 IDS 只有兩種主要的偵測方式,但每一IDS 在設計上所採用的方式並不相同,不同的 IDS 可能採用不同的演算法、不同的標準尺度來定義入侵,所以有幾個 IDS 使用兩者結合 的偵測方式。通常,IDS的分析資料來源來自於系統的稽核紀錄,但系統的稽核紀錄在單一 主機上是沒有問題的,遇到網路上多台主機或網路環境時,就顯不足了。 首先若是多台單 一主機上的 IDS 稽核紀錄封包送達分析主機的即時性問題,有一些 IDS採用分離的不同電 腦來執行分析稽核紀錄,監看電腦蒐集稽核紀錄後,將資訊至分析的電腦上。 第二,稽核 系統可能本身是有漏洞的,入侵者藉由這些漏洞還修該稽核系統紀錄, 達到隱藏入侵的痕 跡。最後,稽核紀錄可能不具備足夠的資訊足以分析入侵的行為, 舉例來說,一個叫做 doorknob 的攻擊,入侵者試圖猜測網路上幾台主機的帳號密碼, 為了避免起疑,入侵者 只有試圖猜了幾次放在網路上的幾台個人電腦主機,這樣的入侵情況在許多的主機型IDS並 沒有被偵測到,這種入侵網路上一部以上的電腦主機入侵行為,我們稱為網路入侵 (network intrusion)。
這樣的例子告訴我們,有效的 IDS 應該要蒐集分析網路的資訊,舉例來說,NSM 會監看區 域網路上的封包及流量,所以 NSM 能夠偵測安全相關的網路事件,像在網路上傳送密碼檔 等等,DIDS 蒐集與分析來自網路與監看電腦兩者的資訊,所以 DIDS 有能力分辨出如上述 (doorknob)的網路入侵行為。
3. 軟體平台
本文所用的測試方法是在 IDS 運作期間模擬電腦使用者(一般使用者或是入侵者)的實際 操作情形,在測試實驗中我們採用「expect」這個 UNIX 套件,『expect』在其他的 UNIX 中稱為 Tcl(Tool command language),使用「expect」這個 UNIX 套件可以用來撰寫類似 真正使用者(一般使用者或是入侵者)所鍵入命令模式的系統所執行的命令批次檔。
Tcl 套件提供簡單的程式語言直譯器,並且包含程式語言所擁有的變數、程序 (procedures)、控制、邏輯判斷、字串、計算等能力,目前的 Tcl 也包含使用正規表示來 搜尋文字的功能,Tcl 的語法有點類似 UNIX Shell 或Lisp,因為它是由 C 函式庫套件實 作的套件。
expect 套件一樣也提供程式語言的直譯器,expect 直譯器核心是採用 Tcl 的直譯器,但 expect 延伸了 Tcl 指令集,包含幾個用來控制使用者互動介面的指令。
expect 套件本身提供建立 Script 模擬電腦使用者的能力, 我們額外增加一些指令讓 expect 能夠提供同時執行 Scripts 的能力與 scripts間同步化與資料傳遞的機制,以製 作在上述 2.2 所提的多個入侵者、多部終端主機等測試項目。
通常在測試 IDS 可能需要重複某一個特定的測試項目,例如測試為什麼 IDS失效。不斷地 循序執行一個 Script 使可以完成的,然而,在需要同步執行的 Script測試時,重複測試 可能變得很困難。我們發展出同步化的機制來執行共同測試 Script,利用事件觸發的方式 來同步執行,而且這個機制是有彈性的,程式設計師可以輕易地修改以符合實驗所需。
此外我們合併軟體平台「記錄與重新執行(record and replay)」的能力,使用者可以循 序地建鍵入指令並會記錄鍵入的順序,而且能夠重新執行指令, 唯一的限制是無法提供直 接編程控制能力(programmability)。然而這樣的限制可以藉由含有程式的 Script 來解決 ,總言之,「記錄與重新執行(record and replay)」提供了更容易建立模擬 Scripts 能力的特色,特別是對於某些特別的測試個案模擬及入侵技術之模擬。
4. 測試項目
現在進行討論測試的方法與主要的測試議題。
4.1. 效能測試
測試 IDS 的第一步驟是定義測試 IDS 的效能項目,我們定義以下測試物件: ● 明顯的偵測範圍(Broad Detection Range):指 IDS 所能夠偵測的入侵情況,IDS 應該 要能夠從正常運作的行為中偵測出入侵行為。 ● 資源使用的節省(Economy in Resource Usage):IDS的功能應該使用較少的系統資源, 如記憶體、CPU 時間、磁碟空間等。 ● 壓力承受程度(Resilience to Stress):IDS 的功能應該要在系統處於高壓(高負載) 的情況還能繼續運作,像非常大量的電腦運算等。
入侵偵測系統應該要符合第一項否則許多入侵行為都將偵測不到, 第二項需求也是必須的 ,如果一個 IDS 耗用太多資源,那麼使用 IDS 將變得困難與不切實際。 最後採用第三個 項目有下列兩點原因:1.壓力環境可能經常發生在一般的電腦環境設備中, 2.在進行入侵 前,入侵者可能建立有壓力的狀態干擾 IDS 的運作以避免被偵測。
舉例來說,入侵者可能在 IDS 主機上建立沈重的負載試圖影響 IDS的運作。在一般的電腦 環境中,為了測試 IDS ,我們認為這三項測試標的是必要的,所以我們的測試程序在設計 這三項的衡量方法以衡量 IDS 的效能。當然,在不同的地方這三項的衡量值也會不一樣, 若有其他安全機制可免於遭受攻擊,明顯的偵測範圍(Broad Detection Range)可能就不 需要,例如使用防火牆來阻擋外來的連線或嚴格的存取控制或驗證技術等, 資源使用的節 省(Economy in Resource Usage)項目在非常注重安全性及電腦的資源遠超出使用者需求 時,可以暫不考慮。當使用單獨一台機器時,壓力承受程度(Resilience to Stress) 項目 或許也可以忽略,所以哪些是評估需要的項目應該由管理者自行來決定。
4.2. 測試項目的選擇
在本文中,一個測試個案是模擬使用者的連線(session),有一些用來測試正常的連接, 大部分是用來模擬入侵的行為,但是首要的問題是要選擇哪一類的入侵來模擬呢?測試實驗 應該盡可能地蒐集入侵的資料,在 UNIX系統上,入侵的資料可以從許多的地方獲得,如 CERT 所發布的 Advisories,雜誌期刊如 PHRACK, 2600 與 USERNET, 弱點分析安全工具 如 COPS 與 TIGER。 但是入侵攻擊的數量實在太龐大,必須進行分類並就該類型中找出具 有代表性的入侵行為來進行模擬測試。
現在我們來想一下該如何把選擇入侵的個案分類, 第一個策略是依照入侵的技術來進行分 類,第二個策略是依入侵所使用的系統漏洞來分類, 那麼可能會有同一個入侵但包含兩種 分類方式的情形,第三個策略是以入侵的特徵分類, 但可能可以選擇的測試個案數量較少 ,然而這樣的技術可能衍生出更好的分類方式,在一些特定的IDS中,這樣的技術能夠被使 用來發展出更好的入侵特徵比對技術。
提供這樣的分類與了解各分類的限制是為了幫助我們選擇測試個案及能更廣泛地測試IDS。 最後用以選擇所需的測試案例,測試者可以針對自己所欲部署的 IDS 系統環境來選擇或是 額外補充某些個測試的個案,舉例來說,在電腦使用政策管理嚴謹的環境中, 使用的行為 可以被區分成一般正常的使用行為與入侵行為兩種, 測試者可以針對某一些特定的活動來 建立測試案例,另一個例子是,測試者可能發現一些尚未公佈的入侵技術等。 模擬這些技 術時應該包含成一組測試個案。
4.3. 限制
這一段中將說明測試 IDS 的一些限制。首先我們用以模擬使用者的軟體平台並無法完全模 擬使用者使用 GUI 介面程式所作的行為,如 X-Windows。然而,並非所有的入侵者的動作 都是必須模擬的,有些入侵動作是屬於系統的活動, 但模擬工具可能無法模擬這樣的行為 。例如,使用者移動滑鼠點選某一個 GUI 選單的選項,雖然模擬工具無法模擬這樣的入侵 動作,但我們的測試方法仍然是有效的, 我們可以使用不同的工具來模擬入侵行為,最壞 的情況下,測試者還可以手動地模擬入侵行為。
第二個限制是我們所設計的測試發法主要是用以 misuse detection,然而,一些測試 的程序仍是可以用在測試 Anomaly detection。
4.4. 測試結果的使用及重要性
測試得結果有助於 IDS 研發者、使用者、及想增進 IDS效能的潛在顧客使得網路系統更加 安全;IDS 研發者可以使用測試結果來改善 IDS 的弱點,舉例來說,如果測試結果說明 IDS 無法偵測某依特定的攻擊,研發者可以增加描述該類攻擊的特徵,使 IDS 可以偵測該 攻擊行為,如果測試結果說明 IDS 耗用太多資源(如 cpu、disks),研發者可以改進IDS 的效能使用更少的資源,如果測試沒有發現什麼弱點,研發者也可以對外廣告宣傳該IDS測 試的結果。使用者也可將 IDS 結合其他的安全工具來保護網路的安全,IDS 的使用者可依 測試結果來決定該對 IDS 作最佳化的校調,或配合其他安全機制來保護電腦系統安全。最 後 IDS 顧客可以使用測試結果來比較不同的 IDS 以選擇適合自己電腦環境的 IDS。
5.測試方法論
我們發展一組詳細的測試程序來測試 IDS,這些測試程序監看網路上的主機並測試IDS,然 而,一些程序能夠只監看單一台電腦主機就能達到效果。 這些測試必須在一的單獨的區域 網路中,因為一些測試需求會直接控制整個網路的大量活動, 為避免影響正常的網路運作 ,一個良好的測試環境必須是獨立於正常的網路中。
在安裝與設定 IDS 時應該要更小心,測試者應該參考 IDS使用手冊決定該如何安裝設 定檔及如何設定最適合的參數,測試的程序可能最後會受到 IDS 設定的影響,這樣的情況 下,可能必須重新設定並在一次測試。
我們的許多測試程序是依照下列基本的測試程序, 再針對不同的環境變數作一些更動調整 的: ● 建立或選擇一組測試的 scripts ● 建立在運算環境下的假設條件(像背景、電腦運作活動等) ● 開始 IDS ● 執行測試 scripts ● 分析 IDS 所產出紀錄的資料
5.1. 入侵確認測試
以兩種入侵確認的測試方式來衡量 IDS 是否能在正常的行為中辨認出入侵的行為,首先第 一個是基本偵測測試(Basic Detection Test),依照下列步驟進行: ● 建立一組 intrusion scripts ● 盡可能減少環境中無關測試的運算活動 ● 開啟IDS運作 ● 執行 intrusion scripts
測試者可以分析 IDS 所產出的資料,分析方法要從特定 IDS所產出的可用資訊類型下手, 例如,將其分類成「可疑的」與「正常」, 測試者可以簡單地計算出入侵的劇本描述所進 行的行為被 IDS 所確認並偵測出來的百分比。
第二例子是進行每一個 intrusion scripts IDS 所產生的警告值,與在正常的使用情況下 進行比較,測試者可以利用一些統計技巧來比較 IDS 所產生警告值與在正常的使用情況下 所產生的不同,藉以釐清 IDS 是否能夠分辨出入侵與正常使用之行為。
基本偵測測試(Basic Detection Test)測試 IDS 是否能偵測出入侵行為,第二個入侵確認 的測試方式項目是正規的使用者測試(Normal User Test),及在正規的使用者行為中 IDS 是否能夠發現入侵。其方法與基本偵測測試相同,只不過將 intrusion scripts 換成 normal-user scripts。對於 IDS所產出的資訊應該測定些正常使用者的行為被判別出是可 疑的,這樣的測量結果由助於評估多少時間是浪費在處理假警報上,也就是衡量 IDS 系統 對於正常使用者行為的誤判率(false alarm rate)。
5.2. 資源使用測試
資源使用測試用以測量 IDS 使用了多少的系統資源,這樣的測試結果可以用以評估要將特 定的 IDS 裝載在什麼樣的電腦環境平台中,在這個測試中我們發展了一個測試項目 ─磁碟 空間測試(The Disk Space Test),用以評估 IDS需要使用多少的磁碟空間,我們使用一個 固定比例的 scripts 來模擬使用者使用電腦的執行程序的行為,舉例來說,scripts 可能 循序重複地執行一些指令。
資源使用測試的程序如下: ● 排除測試環境中一些不相關的活動 ● 開啟 IDS ● 執行 scripts 一段時間(如一小時) ● 計算這段時間執行 Script 時,IDS 所留下的紀錄使用磁碟的總數
這樣的測試可能重複幾次並且使用不一樣的測量時間,在這樣的測試下, 測試者可以找出 磁碟使用與 IDS 監看時間的關係,同樣地也可執行多個 scripts模擬多個使用者的使用情 況,測試者可以找出磁碟使用與 IDS 監看多個使用者的關係,測試者可以分析所有的情況 藉以預測在真實環境中 IDS 監看多個使用者所需要的磁碟空間,測試者也可以以此為基準 比較不同的 IDS。
5.3. 壓力測試
這部分主要是在衡量 IDS 會不會因為在負載過重的情況下,而影響到其原來的偵測能力。 而所謂的負載有許多種情況,分別如下所述:
5.3.1 Smokescreen Noise
所謂的 Noise ,在此定義為一個不屬於入侵攻擊行為當中的其他任何正常使用者行為命令 。入侵者可能試著利用這些 Noise 來巧妙偽裝入侵攻擊行為,至使得入侵攻擊程式就好像 躲在煙幕中的情況一般。一簡單的做法,乃是在入侵攻擊行為的指令當中, 夾雜一些正常 的使用者行為命令。例如,在執行 ls 期間插入 edit 的指令修改檔案等, 來混淆入侵攻 擊行為,使之看起來像正常行為一般。
IDS 可能無法偵測像這樣隱藏在正常行為當中的入侵,Smokescreen Noise測試的第一步是 建立一個適合的測試 scripts, 在原本正常的執行指令中插入一些入侵的指令,然後採用 像基本偵測測試(Basic Detection Test)的方式, 比較基本偵測測試的方式與此一測試方 式的不同,在基本偵測測試的方式中,IDS可能可以正確地偵測入侵的指令,但加入正常指 令夾雜在其中時,IDS 就不一定能夠正確地辨識。測試者也可以藉此樣的測試可以了解IDS 的弱點在哪裡。
5.3.2 Background Noise
此部份主要在在衡量 IDS 系統會不會受到正常使用者活動所影響,例如:入侵攻擊行為可 能發生於系統忙碌時間(working hours)。故在實驗的過程中,首先即先產生大量正常的使 用者活動,然後觸發入侵攻擊行為,以衡量 IDS 系統是否會因為受到這些正常活動的影響 ,而沒有偵測出入侵攻擊行為。 相同的,在試驗的過程中,必須考慮不同量的正常使用者 活動對 IDS 的影響。同時也要重複地實驗數次,以求得可靠的實驗結果。
5.3.3 High-Volume Sessions
這部分主要在測試 IDS 會不會受到高載量的連線或系統環境所影響。所謂的高載量完全依 據 IDS 所決定。舉例來說,如果 IDS 監看每一個連線的使用者命令時, 那麼這些監看的 命令量即為載量。故在進行實驗的時候,首先先執行一載量程式, 接著執行入侵攻擊程式 ,以此來觀察 IDS 會不會因為其所要監看的行為過於高載量,而失去偵測入侵攻擊行為的 能力。同時也要重複地實驗數次,以求得可靠的實驗結果。
5.3.4 Intensity
這部分實驗主要在探討 IDS,會不會因為使用者大量地活動, 必須在亟短的時間內紀錄這 些活動訊息,而影響到 IDS 的偵測能力。所以同樣的,在進行實驗的時候,一樣必須先執 行一載量程式,接著執行入侵攻擊程式,以此來觀察 IDS 會不會因為瞬間發生大量的使用 者行為,來不及紀錄所有活動訊息,而失去偵測入侵攻擊行為的能力。
這樣的測試應盡可能地同時執行不同的測試 scripts, 來測試在高載量下隱藏在使用者活 動的入侵者行為能否被偵測到。
5.3.4 Load
此部份在衡量 IDS 會不會因為 CPU 過於忙碌而影響偵測能力。 故在進行實驗的時候,可 以簡單地在 IDS 所架設的主機上,同時間執行大量的應用程式,藉此以消耗 IDS 的 CPU 使用量,接著再執行入侵攻擊程式,藉以測試 IDS 是否會因為如此,而影響其本身的偵測 能力。
6. 測試結果
我們利用 NSM 來進行測試實驗,NSM 會監看它所連接的所有區域網路的封包流量,且能夠 監看點對點傳輸的封包,NSM會依據封包的內容給予警告數據值及依據連線的流量作出數據 圖表,警告值介於 0 到 10 之間,值越高代表該連線愈可疑。我們將 NSM 安裝在 SUN SPARC2 工作站上並連接到專用的網段上進行實驗。
6.1. 基本偵測測試(Basic Detection Test)
在這個測試中,我們使用了幾個不同的 expect scripts,每一個是設計來模擬入侵者所執 行的命令順序,特別的是 scripts 模擬以下的一些行為: ● 依照使用手冊,使用ls指令來列出檔案與使用文書編輯軟體來查看檔案內容 ● 密碼破解 ● 使用字典檔來猜測密碼 ● door-knob行為(使用通用密碼來猜測密碼) ● 試圖修改系統檔案(如:/etc/passwd) ● 過分的網路移動行為(利用Telnet來連接不同的電腦) ● 利用系統程式的弱點來取得超級使用者(root)的身分
每一個 scripts 利用 Telnet 連接到另一台電腦,循序送出入侵的指令給遠端的電腦然後 斷線,NSM 會監看這些 scripts 的執行並且給予每一個連線的警告值。為了比較差異,我 們設定 NSM 監看網路上電腦的流量,雖然入侵行為可能引起一些流量產生,但我們認為大 部分的網路流量是經由合法的行為及合法的使用者所產生的。
觀念上,警告值在合法的連接會給予較低的值,入侵行為則會給予較高的值,實際上,NSM 成功地分辨這些行為,並給予正常的連接較低的警告值。
然而,NSM 會給予某些入侵的 Script 較低的值,我們認為這是在設定上的問題。 就像其 他的 IDS 一樣,NSM 允許校調系統,所以對於一些特定的入侵循序指令會較靈敏。我們的 經驗告訴我們怎樣的測試程序能夠找到 IDS 本身與 IDS 設定的弱點。
6.2. 壓力測試(Stree Tests)
我們假設在 CPU 高負載的壓力下,會影響 NSM 主機監看網路連接的能力,所以我們進行 5.3.5 描述的測試程序。我們設定 NSM 監看在網路上利用 Telnet 連接到電腦 A 的 TCP 封包,然後在 NSM 主機上建立不同層級的負載,我們使用 Telnet 連線到 NSM 主機上, 然後傳送循序的指令 script 建立負載,我們使用 uptime 指令來增加 CPU 負載,並使用 nice 指令降低 NSM 程式執行排程的優先權。
在每一個 CPU 高負載測試的 Script 執行後,使用 6.1 所提的入侵 Script 連線到電腦A ,並送出入侵指令。很顯然的,在 CPU 高負載的壓力下,NSM 主機會開始遺失所監看的 TCP 封包的標頭,並且錯過封包的蒐集。我們解釋這樣的情況是因為 NSM 程式正在等待排 程處理,所以會錯過一些傳送的 TCP 資料,但實際上監看的運作還包含網路的硬體與軟體 ,所以情況會更複雜,雖然測試的結果顯示 IDS 可能會被有壓力的條件環境所影響,這些 潛在的弱點可能會被入侵者利用來攻擊。
7. 結論與未來建議
實驗結果證明,我們的測試方法論可以獲得有益於 IDS 的資訊及能力。為了後續 IDS的使 用及研發,測試方法的演進是重要的, 未來的工作將精心發展更加適合的基本偵測測試個 案,我們計劃發展更進一步的效能測試項目與測試其他的 IDS。
另外的工作是微調測試程序與發展建立適合的 IDS 效能指標(benchmarks suite),在測 量方面,我們的工具能有系統地評估與測量 IDS 的效能與性能,我們希望能夠發展能夠確 實評估 IDS 的方法,以利 IDS的研發者能夠從我們的測試結果中得到一些回應藉以設計優 良的 IDS,我們希望一些測試的方法技術也能夠用以測試其他的軟體系統, 特別是在壓力 測試項目上, 壓力測試的技術能夠測試電腦作業系統、即時控制系統與任何一般的軟體系 統上。
(本文節錄自 IEEE Transactions on Software Engineering, vol.22, No.10, October 1996)
|