摘要:該文首先介紹了入侵檢測的原理,然后在無線安全網關檢測系統的需求分析的基礎上,對系統進行了設計和實現。該系統由采集模塊、分析模塊、響應日志模塊三個主要的部分組成,來保證無線網絡的安全。
關鍵詞:無線局域網;網絡安全;入侵檢測
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)29-0311-02
Research and Design of WLAN Security Detection System
JIANG Xue-feng
(School of Electronics and Information Engineering,Shenzhen Polytechnic,Shenzhen 518055,China)
Abstract: In this paper,We first introduce the principle of intrusion detection,then,based on the demand analysis of wireless security gateway detection system,we design and realize this system.It is composed with three module collection module,analysis module,response module to assure the security of WLAN.
Key words: WLAN; network security; intrusion detection
1 前言
隨著信息技術的發展,各種網絡安全問題層出不窮。而由于無線局域網(WLAN)采用射頻工作方式,其在安全方面顯得尤為脆弱。目前應用最廣泛的802.11b無線局域網通過WEP(Wired Equivalent Privacy)加密算法完成無線工作站和訪問點的加密傳輸,采用服務集標志(Service Set Identifier)和物理地址過濾來進行訪問控制。然而經研究證明,802.11b安全機制雖能起到一定保密作用,但是很容易被入侵者攻破。后來發布的WPA等無線局域網標準,也存在不同程度的安全問題。所以,從現實應用的角度來看,WLAN僅僅采用攻擊防護是不夠的,還應該采用安全檢測系統來加強無線網絡的安全。
2 入侵檢測的原理及其構成
入侵檢測的研究是從離線日志分析開始間,最初使用統計方法分析IBM大型機的SMF(System Management Facility)記錄。1987年,Denning首次提出入侵檢測的概念,將它作為一種新型的計算機系統安全防御措施:并提出一個通用的IDS模型,首次提出進行實時檢測。
人侵檢測是指對入侵行為的發覺。它通過取得計算機網絡或計算機系統中若干關鍵點收集信息并對其進行分析,從而發現網絡或系統中是否有違反安全策略的行為和被攻擊的跡象。進行人侵檢測的軟件與硬件的組合便是人侵檢測系統,簡稱IDS。與其他安全產品不同的是,人侵檢測系統需要更多的智能,它必須可以將得到的數據進行分析,并得出有用的結果。一個合格的入侵檢測系統能大大簡化管理員的工作,保證網絡安全的運行。入侵檢測的基本原理圖如圖1所示。
入侵檢測提供了用于發現入侵攻擊與合法用戶濫用特權的一種方法,它所基于的重要的前提是:非法行為和合法行為是可區分的,也就是說,可以通過提取行為的模式特征來分析判斷該行為的性質。一個基本的入侵檢測系統需要解決兩個問題:一是如何充分并可靠地提取描述行為特征的數據;二是如何根據特征數據,高效并準確地判定行為的性質。應用于不同的網絡環境和不同的系統安全策略,入侵檢測系統在具體實現上也有所不同。
從系統構成上來看,入侵檢測系統至少包括數據提取、入侵分析、響應處理3個部分,另外,還可能結合安全知識庫、數據存儲等功能模塊,提供更為完善的安全檢測及數據分析功能。如圖2所示。其中,數據提取模塊在入侵檢測系統中居于基礎地位,負責提取反映受保護系統運行狀態的運行數據,并完成數據的過濾及其他預處理工作,為入侵分析模塊和數據存儲模塊提供原始的安全審計“事件”數據,是入侵檢測系統的數據采集器。數據提取模塊的功能和效率直接影響IDS系統的性能。如何選擇正確的數據源,如何進行合適并高效的預處理,是數據提取模塊乃至整個入侵檢測系統需要首先解決的問題。
3 無線安全網關檢測系統的需求分析
網絡入侵檢測是檢測領域的代表性研究方向,在某些具體應用場合,恢復和響應的某些特性也被集成到了入侵檢測中。入侵檢測系統(Intrusion Detection System)就是為了保證計算機系統的安全而設計與配置的一種能夠及時發現并報告系統中未授權或異常現象的系統,是一種用于檢測計算機網絡中違反安全策略行為的系統。利用審計紀錄,入侵檢測系統能夠識別出任何不希望有的活動,從而達到限制這些活動,以保護系統的安全。
在計算機網絡環境中,一個性能良好的入侵檢測系統應具備有效性、可擴展性和自適應性。從當前的技術情況看,建立一個有效的入侵檢測系統是一項巨大的知識工程。在收集到系統和網絡的原始數據后,如何建立入侵檢測模型,是入侵檢測領域的研究重點。當前的檢測模型多是通過手工書寫規則和其它特殊方式實現的。
從以數據為中心的觀點出發,入侵檢測可以看作是一個數據分析的過程。異常檢測是從數據中標識出異常檢測模式。誤用檢測是使用數據編碼和匹配入侵模式。有鑒于此,分布式智能化入侵檢測系統將誤用檢測和異常檢測結合為一體,采用數據挖掘技術實現基于內容的入侵檢測,可以在各種特性上最大限度的滿足入侵檢測系統的要求。當檢測環境變化或許保護機器數量增減是檢測系統不需要做太大的改動,或當出現新的攻擊類型時系統能夠有效的識別并自動擴充規則庫,以提高其擴展性和環境實用性。
入侵檢測系統作為一種積極主動的安全防護工具,提供了對內部攻擊、外部攻擊和誤操作的實時防護,在計算機網絡和系統受到危害之前進行報警、攔截和響應。它具有以下主要作用:
檢測并記錄網絡中的安全違規行為,防止網絡入侵事件的發生;
檢測黑客在攻擊前的探測行為,并給管理員發出警報;
報告計算機系統或網絡中存在的安全威脅;
提供有關攻擊的信息,幫助管理員診斷網絡中存在的安全弱點,利于其進行修補;
在計算機網絡中布置入侵檢測系統,能提高網絡安全管理的質量。
4 無線安全網關檢測模塊的設計與實現
4.1 無線安全網關檢測系統的整體設計
無線網關檢測系統體系結構由三個主要的部分組成:采集模塊、分析模塊、響應日志模塊。所有這些子系統都是建立在數據包截獲庫函數接口libpcap的基礎上,libpcap為它們提供了一個可移植的數據包截獲和過濾機制。整個程序的配置、規則的解析以及數據結構的初始化都在系統進行數據包分析和檢測之前完成,以保證對每個數據包的處理時間壓縮到最小。其整體結構框架圖如圖3。
采集模塊:負責捕獲網絡上的數據包,并進行初步的解碼。它由兩個部分組成,包捕獲模塊用于捕獲監聽網絡中的原始數據包。協議解碼模塊把從網絡上捕獲的數據包從下向上沿各個協議棧進行解碼并填充到相應的數據結構,以便提交給分析模塊進行規則匹配。協議解碼模塊運行在各種協議棧之上,從數據鏈路層到應用層。網絡數據采集和解析機制是整個系統實現的基礎。
規則處理模塊:實現對這些報文進行基于規則的模式匹配工作,檢測出入侵行為;在初始化階段它還負責完成規則文件的解析和規則語法樹的構建工作。規則文件經過處理之后,以一種非常靈活高效的方式進行存儲,從而便于檢測引擎的使用。
分析模塊:接收采集模塊送來的網絡包,進行預處理,然后由檢測引擎將網絡包與規則庫進行匹配,并根據檢測的結果進行響應或日志。這是IDS的核心所在,所有的網絡包在此處被檢測引擎執行檢測,網絡包與每一條規則都要進行匹配,直到匹配到一條規則,此時執行規則規定的動作;或者,所有規則都不匹配,則拋棄該包。另外,在檢測之前還要進行預處理。
響應日志模塊:當入侵發生時,進行響應,包括報警等,并在日志中記錄。
4.2 總體流程
系統模塊的總體執行順序及調用關系如圖4所示。
1) 運行主函數main(),對命令行參數及各種標識符進行設置。
2) 調用Libpcap庫函數pcap_open_live(),獲得對應的數據包截獲接口數據結構,啟動數據包的截獲和處理進程。
3) 調用各種網絡協議解析例程,對當前數據包進行分層協議字段的分析,并將分析結果存入重要的數據結構Packet中。
4) 插件初始化例程。主要包括輸出插件初始化例程、檢測插件初始化例程和預處理器插件初始化例程。其主要任務就是將各種插件的關鍵字名稱與對應的初始化處理函數對應起來,并注冊到對應的關鍵字鏈表結構種,以便隨后的規則解析例程使用。
5) 規則架構初始化和解析例程。CreateDefaultRules()負責進行初始的規則架構建設工作。關鍵的規則解析任務由函數ParseRulesFile()負責完成,實質上該函數不僅是解析檢測規則結合,而且對于所有的系統配置規則都進行解析,包括預處理器、輸出插件、配置命令等。
6) 優化及快速匹配例程。OtnXMatchInfoInitialize()主要是針對OTNX_MATCH_DATA數據結構類型的全局變量omd,為其申請指定的內存塊空間。OTNX_MATCH_DATA數據結構包含了快速規則匹配時所引用到的若干重要信息,特別包含了一個MATCH_INFO類型的鏈表指針字段。MATCH_INFO數據結構中存放了在規則匹配中滿足匹配條件所產生的所有相關信息;而fpCreateFastPacketDetection()是構建規則快速匹配引擎的主要接口函數,它的基本工作原理是讀入由規則解析模塊構建的規則鏈表中的所有規則鏈表頭和規則選項節點,然后在其基礎上構造新一層的數據結構,然后進行快速匹配。
7) 數據包處理模塊InterfaceThread(),主要是調用Libpcap庫函數pcap_loop(),并設定好數據包回調處理函數。
8) 系統檢測模塊的主要接口函數為ProcessPacket()和Preprocess()。前者作為libpcap庫函數pcap_loop()的接口回調函數,在pcap_loop函數內部調用以處理截獲的數據包。后者在ProcessPacket()中調用,具體執行入侵檢測任務。
5 結束語
入侵檢測系統無法觀測到所有可能的事件,其原因包括事件發生在其他網絡中、入侵檢測系統死機、入侵檢測系統對協議不理解、入侵檢測系統達到了處理帶寬上限并開始丟棄數據包。隨著網絡的日益擴大,如何把入侵檢測系統應用到大型分布式網絡環境之中,已成為許多研究的焦點。在入侵檢測系統中,如何提高入侵檢測系統的檢測速度,以適應網絡通信的要求;如何減少入侵檢測系統的漏報和誤報,提高其安全性和準確度;如何提高入侵檢測系統的互動性能,從而提高整個系統的安全性能這些都需要進一步研究。