??? 摘? 要: 針對傳統異構安全設備的廣泛應用而產生的海量不可靠安全事件和難以有效管理的現狀,提出了一種基于數據挖掘的深度入侵防御系統模型。其中,以統一網絡安全管理平臺為核心,采用在線檢測和離線數據挖掘相結合的方式分析網絡和主機數據。?
??? 關鍵詞: 入侵防御; 深度防御; 數據挖掘; 統一網絡安全管理平臺
?
??? 目前,網絡的安全威脅已發展為混合型,任何單一的安全技術措施都是可以被攻破的。因此一個安全的網絡系統應該既要有完善的入侵檢測手段,還需要有能夠對網絡安全進行實時監控和攻擊與反攻擊的縱深防御策略[1-3],實現系統內外的聯合的安全防范,為網絡系統提供良好的安全保障,這就是深度防御(Defense-in-Depth)核心思想[4]。?
1 入侵防御系統?
1.1? IPS的概念?
??? 入侵防御系統(IPS)是指能檢測并積極主動地阻止已知和未知攻擊的內嵌式硬件設備或軟件系統。依據其操作平臺,一般分為基于網絡的入侵防御系統NIPS和基于主機的入侵防御系統HIPS。NIPS監視網絡流量,部署在網關處,也稱為串聯型或網關型IPS,用來識別在不同網段惡意的或者未經認證的活動,并且將其阻止。傾向于提供更先進的問題警告并且保護更大范圍的計算環境,預防對關鍵網段的攻擊。HIPS提供對發生在主機上的行為的具體控制,通常監視系統調用并且阻止任何有害的請求,傾向于對面向特定主機的具體行為更深層次的識別。使用勾掛等技術,以代理的形式駐留在主機或服務器上,預防黑客對關鍵資產(如對關鍵服務器、數據庫)的攻擊。?
1.2? 網絡安全模型——WPDRRC?
??? WPDRRC模型由我國863信息安全專家組推出。它涵蓋了各個安全因素,突出了人、策略和管理的重要性,反映了各個安全組件之間的內在聯系,保證了信息的機密性(confidentiality)、完整性(integrity)、可用性(availability)、可控制性(controllability)、真實性(authenticity)和不可抵賴性(non-repudiation)。?
??? 如圖1所示,WPDRRC模型有六個環節和三大要素。六個環節是預警(Warning)、保護(Protect)、檢測(Detect)、反應(Respond)、恢復(Restore)、反擊(Counterattack),它們具有動態反饋關系。三大要素為人、策略、技術,人是核心,策略是橋梁,技術是保證,落實在WPDRRC六個環節的各個方面,將安全策略變為安全現實。?
?

?
1.3 基于數據挖掘的入侵防御技術[5]?
??? 該技術利用形式化語言、數據挖掘技術的方法和理論,對從網絡中和主機系統中采集到的數據、安全日志和審計信息進行分析和過濾,從“正常/異常”的數據中發現“正常/異常”的用戶和程序的使用模式,利用這些模式來檢測網絡上的入侵行為,從而提高系統對用戶異常行為的識別能力和未知模式攻擊的檢測能力。?
1.4 深度防御思想?
??? 其目的是保障安全系統設計的廣度和深度,促進建立全面綜合、高效安全的網絡安全保障體系。在廣度上要求從網絡架構、操作系統、應用系統、數據庫系統等各個層面考慮安全系統建設;在深度上要求分層次的、由外而內從網絡邊界、內部網絡、核心服務器乃至桌面PC各個層面考慮安全防御建設。?
2 基于數據挖掘的入侵防御系統模型及其原理?
??? 依據WPDRRC模型和深度防御思想構建了該體系結構,如圖2所示。它主要由統一網絡安全管理平臺UPNSM(United Platform of Network Security Management)、本地安全策略服務器LPS(Local Policy Server)、遠程日志服務器RLS(Remote Log Server)、蜜網(Honeynet)等組成。?
?

?
??? 傳感器(Sensor)分別部署在分流器(TAP)之后的核心層邊界網關處、匯聚層交換機映像端口和串聯于接入層,獲取網絡與主機數據。?
??? UPNSM集網絡防火墻、訪問控制、日志、入侵檢測/防御、策略管理、負載均衡和內網監控等管理于一身,并配置一個全局數據庫(GDB),負責收集各層安全信息。?
??? LPS監控各個支干的傳感器,其后也配置了一個數據庫,主要用來存儲本地收集到的系統和網絡日志文件、目錄和文件中不期望的改變、程序執行中不期望的行為、物理形式的入侵信息及系統弱點評估狀況等信息。?
??? 蜜網實現入侵轉移、牽制和主動誘捕等功能。在入侵者被重定向到該網絡后,數據處理模塊將記錄所有入侵者的行為數據,分析其行為特征和計算統計數據,并及時存儲到遠程日志服務器上。?
??? 統一網絡安全管理平臺為該模型體系結構的核心模塊。?
3 統一網絡安全管理平臺?
??? 統一網絡安全管理平臺(UPNSM)模塊的系統結構[6]如圖3所示。它由在線檢測階段和離線訓練階段組成,其中在線檢測/防御階段又是該模塊的核心。?
?

?
3.1 在線檢測/防御階段?
??? 將nCap零拷貝技術、協議分析和基于排斥的E2xB模式匹配算法相結合進行高速網絡數據捕獲,以實現實時檢測與深度防御。在線檢測/防御部分的結構如圖3虛線框內所示。?
??? nCap是一個純用戶端的高速數據包捕獲和傳輸庫,其體系結構如圖4所示。?
?

?
??? 內核加速驅動提供底層支持,nCap SDK或Enhanced libpcap庫提供基于pcap的上層調用,如圖4所示。主要使用步驟如下:(1)初始化struct ncap_device_info *init_ncap_device(char *dev_name, int *error);(2)設置混雜模式int ncap_set_if_promisc(const char *device,int set_promisc);(3)接收數據并調用協議分析int ncap_recv_packet(struct ncap_device_info*dev, unsigned short *recv_packet_len,unsigned char* packet_buffer,unsigned short packet_buffer_len, int wait_for_packet);(4)關閉設備void term_ncap_device(struct ncap_device_info *dev)。?
??? 協議分析包括協議解碼和命令解析等技術,具有快速、高精度、低資源占有率的特性。它有效地利用網絡協議的層次性和相關協議的知識,快速判斷攻擊特征是否存在,極大地減小了運算量,并能通過基于狀態的動態分析(如IP碎片與TCP流重組)進行反逃避檢測。協議分析流程如圖5所示。?
?

?
??? 舉例分析下述數據包是否符合攻擊特征“GET /cgi-bin/./phf ”: ?
?
??? 
?
??? 依據RFC 0791(2)和0793(3)文檔中TCP數據包和IP數據包的格式規范分四步跳躍性檢測:(1)跳過前面l2個字節,讀取l3字節處的協議標識0800(IPv4包);(2)跳過的l5~24字節直接讀取第4層協議標識06(TCP協議);(3)跳過第25~34字節直接讀取第35字節的端口號:80(HTTP協議);(4)HTTP協議規定第55字節開始處的URL交由HTTP命令解析器提取主要信息,識別攻擊字符串及其變種,如 “/./phf”、“/phf”及類似“/.”的序列改變視為同種攻擊,這意味著協議分析技術只需較小的分類/行為特征庫就能檢測更大范圍的攻擊。?
??? E2xB算法專為入侵檢測的特殊需求而設計,其基本思想是:若欲檢測輸入字符串I不包含字符串S的子串,則字符串I必不包含字符串S。用集合論公式證明該命題的真理性:因I>S,S>s=>I>s,則I≯s,S>s=>I≯S(其中,“>”為“集合包含”符號)。如果所有s均為I的子串,則視為一次疑似匹配,之后調用標準模式匹配算法如BMH判定S是否為I的子串。若匹配成功,調用響應處理模塊。?
??? 為加快匹配速度,借助觸發位圖(occurence_map)增強該算法效率。首先對輸入字符串I進行預處理,若8位一組的連續或間斷的子串對s出現在I中,則在一個256單元的位圖上以s_th標記對應單元(置為1表示s在I中出現)。為減小花在每一個數據包對應單元的清除開銷,使用當前網絡數據包的索引序號標記該位圖單元。即如果s_th位置的位圖單元包括該數據包的索引序號,則表示s出現在I中。E2xB算法偽代碼如下:?
??? pre_process(char *input, int len)?
??? ? {?
??????? pktid=pktno & (1< ??????? for (int idx = 0 ; idx < len-1 ; idx++) {? ??????????? element = s[idx]<< (elementsize-8)^s[idx+1];? ??????????? occurence_map [element]= pktid;? ??????????? }? ??? ? }? ??? search(char *s, char *input, int len_s, int len)? ??? {? ??? ?? for (int idx = 0 ; idx < len_s-1 ; idx++) {? ??????? element= s[idx]<< (elementsize-8)^ s[idx+1];? ??????? if (occurence_map [element] != pktid)? ??????? return DOES_NOT_EXIST ;? ??? ?? }? ??? ?? return boyer_moore(s, len_s, input, len);? ?? ?}? ??? 響應處理模塊對匹配成功的入侵產生告警,通過聲音、圖像、電子郵件或其他許多不同的方式通知安全人員。按照告警產生預定義的響應,或按安全人員的指令完成響應,如對異常數據進行轉發存儲(轉發給Honeynet和存儲系統,對入侵行為做進一步跟蹤和分析)、發送RST包阻斷TCP連接、E-mail日志報文通知、與其他安全產品(Firewall、Router、Switch)聯動、停止非法進程運行或刪除某個應用程序、重新配置系統、注銷用戶等。? ??? 警報管理器根據告警信息[8] (包括告警時間、告警源、告警類型、告警級別、告警描述等內容)和分類/行為規則調用機器學習算法調整相關的規則參數。? ??? 策略分發模塊負責將相關策略發送至各分支的LPS。? 3.2 離線訓練階段? ??? 其主要組成部分及其原理如下:? ??? (1)預處理模塊將來自RLS和主機數據、指令、轉發存儲而得到的可疑和入侵數據或評估數據(如DARPA、KDD CUP99等)處理成網絡會話記錄并進行命令特征提取。即對于每一個連接,將記錄在通信期間需要統計的41個屬性分為三大類:網絡連接的基本屬性、安全領域知識建議的連接屬性及最近一定時間內的流統計屬性。這些屬性又分為數值型和符號型兩種類型,而其中的數據類型又包括兩種:連續型和非連續型。采用離散和正則化的方法和相應的離散化工具對整個數據集合做離散化和正則化處理后,以連接記錄為行、連接記錄的屬性為列建立網絡事件數據庫;輸出包含對威脅源的識別、惡意的活動、威脅的分類、攻擊的頻率、對映射目標潛在的嚴重性的評估等信息,以適用于離線數據挖掘器的輸入格式存儲到訓練數據集中。? ??? (2)離線挖掘器綜合利用關聯分析、序列模式分析、分類分析和聚類分析對訓練數據集數據進行挖掘分析,從中提取分類/行為安全規則。其中,關聯分析和序列分析方法可以發現隱藏在數據間的關系,提取出入侵者入侵行為之間的關聯特征,找出各種入侵行為之間的相關性;分類分析方法可以在前兩項分析的基礎上,對具有不同的行為特征的入侵進行分類,判斷入侵行為的可疑程度;聚類分析根據一定的規則對用戶行為數據重新劃分,以此獲得更好的結果。? ??? (3)復合檢測引擎綜合使用誤用檢測與異常檢測技術,數據挖掘對訓練數據集中的數據進行分析發現其中隱含的證據后,該檢測引擎比較證據與規則中已有規則的相似性,并將結果提交給決策引擎。? ??? (4)決策引擎合并規則,消除沖突與冗余,最終裁決活動的合法性,據此維護分類/行為規則集,并通過人機接口管理和控制策略數據庫的優化。? ??? (5)策略數據庫通過規則與策略腳本的交互(調用功能函數執行響應操作)實現機制與策略分離,以滿足簡單性和靈活性的統一。? 4 仿真實驗與性能分析? ??? 主機配置:PD E2140 processor 1.2GHz,1GB Memory,intel e1000網卡;? ??? 操作系統:RedhatLinux 9.0,kernel version 2.4.20.? ??? 實驗數據:? ??? (1) MIT Lincoln lab實驗室給出的入侵檢測攻擊場景數據集2000 DARPA;? ??? (2) 2003年第11屆DefCon CRF(Capture the RootFu!)的TSG (The Shmoo Group)數據集。? ??? 依據上述基于數據挖掘的入侵防御系統模型和統一網絡安全管理平臺模塊,采用Linux+Snort+Bro+ACID+MySQL+Apache+Single-honeypot架構對匯聚層、IPS HBLR+Netfilter/iptables架構對接入層進行仿真實驗。? ??? 基于PHP的ACID WEB管理平臺統一管理警告信息,并圖形化分類顯示觸發安全規則的網絡流量中各種協議所占的比例、警報的數量、入侵主機和目標主機的IP地址及端口號等。此外還提供遠程控制、規則配置功能和策略分發功能,遠程對Sensor發送控制命令,如迅速啟用協同機制,自動通知防火墻、路由器或其他安全控制設備切斷攻擊源,配置規則等幫助管理員進行分析和網絡整體安全的管理。同時,集成網絡管理系統通過各個網段上Sensor發送到警告及規則總數據庫的警告進行協同分析,基于復雜精確的協同算法,進行數據挖掘、狀態轉移預測等,以便做出更正確的決斷和防御措施。? ??? 分三種情況測試數據包捕獲速度:64 B,550’789 pkt/s;512 B,213’548 pkt/s;1 500 B,81’616 pkt/s。小數據包情況下,存在適量包丟失;大數據包情況下,幾乎不丟包,基本滿足線速抓包的要求。? ??? 在Snort中運用E2XB算法后,整體性能相對其他算法(BM,FVh)提升了10%~36%,在一些特定規則集與流模式中,匹配性能提升了將近三倍。但該算法對包的大小分布和規則匹配數目相對敏感,在小數據包和極大或極小規則集的情況下算法性能會有所降低。? ??? 深度入侵防御技術的研究是目前網絡安全研究的熱點,本文提出的基于數據挖掘的深度入侵防御系統模型能收集邊界網關、匯聚層和接入層等各個網段的數據,并能將這些數據傳送到統一網絡安全管理平臺集中處理,同時綜合利用各種安全技術對傳統IPS的缺陷(如檢測率與誤檢率的矛盾、性能瓶頸、實時性差等)在一定程度上加以解決,大大增強了網絡環境的安全性。? 參考文獻? [1] RUBEL P, IHDE M, HARP? S, et al. Generating policies for defense in depth [J]. IEEE Computer Security Applications Conference, 2005,10.? [2]?CHUNG S P, MOK A K. The LAIDS/LIDS framework for?systematic IPS design [J]. IEEE Information Assurance,2006, 9.? [3]?CHEN Yao Min, YANG Yan Yan. Policy management for?network-based intrusion detection and prevention [J].IEEE ? Network Operations and Management Symposium, 2004(2):219-232. ? [4]?HUANG Nen Fu, KAO Chia Nan, HUN HsienWei,et al.Apply data mining to defense-in-depth network security?system[J]. IEEE Advanced Information Networking and?Applications, 2005(2):159-162.? [5]?Thuraisingham, Bhavani. Data mining for security applications[J]. Proceedings of the 2004 International Conference??on Machine Learning and Applications, ICMLA’04,2004.? [6]?席驍,劉滔. 基于網絡的數據挖掘系統設計[J]. 計算機與現代化,2007(5).? [7]?郭山清,謝立,曾英佩. 入侵檢測在線規則生成模型[J].計算機學報, 2006(9).? [8]?肖立中,邵志清. 基于序列分析的報警綜合處理研究[J]. 計算機工程與應用, 2006(8).
