圖 3-1 無線入侵偵測系統架構圖
本研究依運作流程主要分為四個模組與一特徵資料庫如圖 3-1,分 別是「封包擷取模組(Packet Capture Module,PCM)」、「封包過濾模組 (Packet Filter Module,PFM)」、「封包分析模組(Packet Analysis Module,
PAM)」、「警告發送模組(Warning Alarm Module,WAM)」及「封包特徵
資料庫(Packet Characteristic Database,PCDB)」。本系統利用封包擷取模 組探測並以 KISMET[23]無線網路監聽工具擷取在無線媒介上傳送的所 有訊框,經由封包過濾模組判斷是否為偽造訊框後,將 802.11 MAC 層 標頭的訊框資訊寫入特徵資料庫,封包分析模組自特徵資料庫中,取出 源自同一 MAC Address 的來源封包進行規則分析,以判斷是否為攻擊訊 框,警告發送模組分別對 PFM 和 PAM 兩模組的錯誤計數器進行監控,
如在單位時間內的錯誤次數超出預先設定的門檻值,便發送警報。本系 統各模組之詳細功能與介紹如下:
(1) 封包擷取模組(Packet Capture Module)
圖 3-2 封包擷取模組架構圖
圖 3-2 為本模組架構圖,首先利用 HostAP Driver[21]來驅動無線網 卡進入雜亂模式(Promiscuous Mode),並使用 Libpcap 所提供的 Function 來擷取 802.11 封包的標頭,最後透過 Ethereal 應用程式將封包資訊傳給 KISMET 程式進行訊框標頭及訊框本體的分析。
(2) 封包過濾模組(Packet Filter Module)
封包過濾模組是本研究之主軸,主要是以 IEEE802.11 MAC 層訊框 格式中的 seq-ctl 欄位為主要的過濾基準,Joshua Wright 亦在 2003 年提 到此一過濾方式是可偵測出偽造的封包[19],因同一來源端的「訊框序 號」在封包未遺失的情況下應為連續且遞增的,故當接收到解除認證或 解除聯結訊框時,便可依此特性分析來自同一 MAC address 訊框的「訊 框序號」是否有連續且無明顯之斷層,以初步過濾掉偽造的訊框。但如 單純使用 sequence number 來檢測無線訊框,很容易造成誤判的情況,因 無線網路標準的控制訊框(如 RTS、CTS、ACK 等)並無 sequence number 欄位,而基地台仍會將這些控制訊框納入「訊框序號」的累加計算,故 當進行大量資料傳輸時,即有可能因間隔了太多 ACK 訊框而使 sequence
number 有較大的落差而造成誤判,故本研究在收到 ACK 訊框後將「訊 框序號範圍值」加 50 以避免因控制訊框導致的「訊框序號」落差。無線 網路封包,會因為距離遠近會導致訊號強弱不一,而使封包遺失造成的 誤判問題,為考慮此一問題,本研究在封包過濾上加入「封包間隔時間
(Packet Interval Time)」與「信號強弱(Signal)」兩因子,根據兩變數動態 的計算應給予的「訊框序號範圍值(Sequence Number Range)」,並設立一 加權值 x 來加強「信號強弱」因子的影響成分,本研究之「訊框序號範
ceil arr
rge
• arr_time :目前封包抵達時間(Microsecond)。
• l_arr_time :上一個相同來源之封包抵達時間(Microsecond)。
• (att_time-l_arr_time) :Packet Interval Time (p_itv_time),相同來源封包
之間隔時間(Microsecond)。
• signal :信號強弱值(0~255)。
• x :加權變數,本研究設定為 100。
• y :最低訊框序號間隔門檻值。
• ceil :無條件進位函數。
• seq_num:目前封包的 Sequence Number。
• lseq_num:上一個相同來源封包的 Sequence Number。
• mseq_num:目前封包 Sequence Number 的最大門檻值。
本研究利用計算出的 seq_rge 值來推論「訊框序號最大門檻值
(mseq_num)」,但因「訊框序號」的合理範圍值應在 0~4095 間遞增循環,
故目前的「訊框序號值」不一定會落於前一個同來源的「訊框序號」與
「訊框序號最大門檻值」之間(lseq_num<seq_num<mseq_num),當計算 出的「序號門檻值」超出 4095 後便會從 0 開始重新累加,故可能會有「序 號門檻值」小於目前訊框序號(mseq_num<seq_num)的情況,為考慮此因 素本研究之偽造封包過濾演算法如下,當符合條件式時,序號錯誤計數 器(err_seq)則會進行累加。
if(mseq_num>lseq_num)
{
if(seq_num<lseq_num || seq_num>mseq_num) err_seq++;
} else {
if(seq_num<lseq_num && seq_num>mseq_num) err_seq++;
}
(3) 封包特徵資料庫(Packet Characteristic Database)
圖 3-3 封包特徵資料庫(PCDB)
封包特徵資料庫內分兩資料表 pkt_chk 與 pkt_info,其中 pkt_chk 資 料表只紀錄每個來源端 MAC Address 其最新一個封包的「訊框序號值」
(Source Sequence Number, s_seq_num)和抵達時間(Source Arrived Time, s_arr_time),主要用來輔助計算「訊框序號範圍值(seq_rge)」與「封包間 隔時間(p_itv_time)」;而 pkt_info 用來儲存封包擷取模組所擷取下來的每 個封包 IEEE 802.11 MAC 層標頭資訊,包括來源端實體位址(src_mac)、
來源端訊框序號(s_seq_nem)、封包抵達間隔時間(p_itv_time)、信號強弱 值(signal)、訊框序號容許間隔範圍值(seq_rge)、封包類型(pkt_type)、判 斷結果(determine),目的是要作為本研究所提出方法之準確度分析之用。
(4) 封包分析模組(Packet Analysis Module)
因大部分惡意人士在進行無線網路阻斷服務攻擊大多依循下列步 驟:
step1. 無線網路監聽:找尋基地台與目前正在傳輸的無線端點 step2. 竊取無線網路封包:竊取傳輸中無線端點的封包內容
step3. 大量發送偽造無線網路封包:偽造正當封包之來源位址大量 發送同一類訊框。
故本模組主要定義封包的狀態檢視規則庫,針對目前封包類型與傳 輸量作分析,用來偵測無線網路阻斷服務攻擊在不同階段時,常出現的 不合理情況(如:短時間內不斷的傳送 CTS、RTS 封包,或在接收解除聯 結封包後還收到資料封包…等)。
(5) 警告發送模組(Warning Alarm Module)
本模組對不同事件定義了警告發送的門檻值,目的在於監視錯誤計 數器是否達到警報發送的標準,錯誤計數器會在我們設定的單位時間內
(1 second)歸零一次,當封包過濾模組與封包分析模組判斷封包為不合法 封包時,根據事件的類型會使該事件的錯誤計數器進行累加,當單位時 間內錯誤計數器超過我們所設定的門檻值時,則發出文字訊息及聲音警 告。由於以往入侵偵測系統常見的問題即是存在過多的報警資訊,即使
在沒有直接針對入侵檢測系統本身的惡意攻擊時,入侵檢測系統也會發 出大量報警,故警報門檻值的設立對我們的系統來說也是一項值得分析 的重點。