此論文擬以本研究提出的封包過濾方法來實作一個無線入侵偵測系 統,並以無線網路 DoS 攻擊工具 Void11 發送解除認證攻擊,以測試本 系統的偵測準確度,主要目的是有效偵測出無線網路的異常封包,判斷 出哪些封包為攻擊封包並提出警告,以避免阻斷服務攻擊行為的發生。
本系統選用無線監聽工具 KISMET 的開放原始碼搭配 Prism2 晶片的 SENAO-2011CD 無線網卡,作為無線封包擷取模組基礎平台,並在 KISMET 上以 C++開發本無線入侵偵測系統其他模組。本系統之安裝平 台如下:
• 作業系統:RedHat9 (Kernel-2.4.20-8)
• 資料庫:MySql-3.23.54
• 程式語言:C++
• 無線網卡:SENAO-2011CD (Prism2 晶片)
• 需求軟體:HostAP drivers、Libpcap、Ethereal、KISMET
安裝 KISMET 軟體必需依序先安裝 HostAP drivers、Libpcap、Ethereal 等,我們使用的網卡為 Prism2 晶片故需安裝 HostAP driver 來作為無線 網卡的驅動程式,以便將無線網卡切換到雜亂模式,而 libpcap 是 Unix
或 Linux 從核心擷取網絡封包的必備工具,它是獨立於系統的 API
Socket,為底層的網絡監控提供了一個可移植的框架,可用於網絡統計 收集、安全監控、網絡調適等應用,我們利用 Libpcap 來將封包從 Kernel
Mode 擷取,再傳送到 User Mode 的 Ethereal 程式,Ethereal 是一個開放 原始碼的網路協定分析與監控程式,我們利用它來解析封包的類型。
當封包進入本系統時,整個流程依序先由封包擷取模組將接收到的 封包從核心傳送到本系統中,再經由封包過濾模組過濾出偽裝的封包,
並在儲存至封包特徵資料庫後,由封包分析模組分析封包間的異常行 為,避免阻斷式攻擊,最後再由警告發送模組來決定是否發送警報。本 論文以偵測解除認證或解除聯結 DoS 攻擊為例,整個系統的偵測流程將 如圖 4-1 所示:
圖 4-1 系統流程圖
如上圖所示,經由封包擷取模組監聽無線網路媒介上傳輸的封包,
每當接收到封包時,會檢視 pkt_chk 資料表內是否有該來源端的 MAC
Address 資料,如已有紀錄則更新該來源端的訊框序號,接著由封包過 濾 模 組 偵 測 是 否 有 偽 造 封 包 的 情 形 , 主 要 以 訊 框 的 抵 達 間 隔 時 間 (p_itv_time) 和 信 號 強 弱 值 (signal) 兩 欄 位 來 計 算 「 訊 框 序 號 範 圍 值 (seq_rge)」,該值是我們用來判斷偽造封包的主要過濾條件,只要目前封 包的序號不落於系統計算出的範圍值內,則判斷為偽造封包,序號錯誤 計數器(err_seq)加 1。
由於本研究以解除認證 DoS 攻擊為主要攻擊方式,故我們在封包分 析模組建立了針對解除認證攻擊的兩條規則,其規則如下:
• 規則一:每當收到解除認證或解除聯結訊框時,連線中斷計數
器 (client_disconnects) 會 加 1 , PAM 會 偵 測 單 位 時 間 內 (1 秒)client_disconnects 是否超過門檻值 5。
• 規則二:偵測在收到解除認證/解除聯結訊框後是否還收到資料
訊框。
根據 Bellardo 的研究指出只要當每秒發送 30 個解除認證或解除聯結 訊框即可完全阻塞整個無線媒介的存取,故當攻擊頻率高時,可由規則 一偵測出異常,當攻擊頻率低時,因為原傳輸端仍會繼續傳送資料訊框,
則可由規則二來檢視出異常情況。
警告發送模組決定了警報響起的門檻值,監聽各個錯誤計數器是否 超越門檻值,由於入侵偵測系統最重要的就是警報的準確性,過低的門 檻值容易造成系統的誤判,產生過多的警報;過高的門檻值又會造成準 確度的降低,產生警報未發送的情況,故門檻值的訂定亦決定了系統的 效益,本系統目前門檻值經由第五章的實驗分析結果,訂為當 err_seq 計 數 器 大 於 10 時 ( 即 每 秒 鐘 偵 測 出 10 個 以 上 偽 裝 封 包 ) 及
client_disconnects 計數器大於 5 時(即每秒鐘收到超過 5 個解除認證或解 除聯結訊框)發出警報。