胡萬志封 旭賓哲桂
(1.廣西現代職業(yè)技術學院,廣西 河池547000;2.柳州城市職業(yè)學院,廣西 柳州545036;3.柳州職業(yè)技術學院,廣西 柳州545006)
隨著人們對網絡安全的重視程度越來越高,入侵檢測技術作為一種行之有效的被動防護技術,一直受到學術界和工業(yè)界的廣泛重視.[1-2]在過去的一二十年的網絡安全實踐過程中,入侵檢測技術在防護網絡入侵、攔截網絡攻擊行為過程中發(fā)揮了極其重要的作用.[3-4]人們對入侵檢測技術的研究也持續(xù)地關注,在這其中,比較有代表性的研究成果主要有:佟桓夫、霍美希等人提出的網絡入侵檢測模型,對網絡入侵檢測方法進行了抽象與建模.[5]楊雅輝、姜電波等人提出了一種基于改進的GHSOM的入侵檢測研究,詳細分析了GHSOM的入侵檢測方法及改進策略和效果.[6]李文提出了一種基于特征選擇的網絡入侵檢測模型,將入侵檢測過程中的特征選取與建模分析結合起來.[7]
入侵檢測技術中最為關鍵的是如何定義入侵行為,并準確地刻畫入侵行為的特征.傳統的基于特征匹配的入侵檢測模式,通過采集和提取各種入侵檢測行為的特征,以此作為檢測的依據,具有檢測速度快,檢測精度高的優(yōu)點.[8]但是,基于特征匹配的入侵檢測行為存在最大的問題時樣本特征如何提取,過去對于已知樣本的入侵檢測過程,往往是通過對攻擊程序的代碼特征作為樣本特征.[9-10]然而,隨著攻擊樣本變異、加殼、編譯多樣化等技術的應用,攻擊樣本的特征已經變得模糊化、多樣化和不確定化等發(fā)展趨勢,這直接導致傳統的基于特征匹配的入侵檢測模式的有效性受到極大的挑戰(zhàn).[11]除此之外,基于特征匹配的檢測模式還有一個共性的問題,即檢測的滯后性,[12]由于這種檢測模式是基于預先采集并提取的特征才能進行檢測,因此,對于一些未知的入侵行為,無法進行有效的檢測.[13]
為了解決傳統入侵檢測模式存在的不足,筆者設計一種基于通信行為的入侵檢測模式,力圖通過對入侵行為進行建模與分析,建立入侵行為的共性特征,以一種模糊化的方式對入侵行為進行描述或概況,無論攻擊樣本如何加殼或變異,只要其具有入侵的行為目的,都能夠實現對入侵行為的檢測,這種檢測方式也能夠實現對一些未知攻擊行為的檢測.
網絡通信行為是一個抽象籠統的概念,為了能夠設計并實現入侵檢測分類算法,需要對網絡通信行為進行特征抽取與建模,將抽象的網絡通信行為特征量化表示.本文通過網絡通信行為的建模分析,建立了網絡通信行為屬性結構,如圖1所示.
圖1 網絡通信行為屬性結構Fig.1 Network communication behavior attribute structure
樣本數據的通信行為特征按通信對象特征、通信數據特征和通信過程特征分為三大類.其中通信對象特征主要用于描述通信對象的相關信息特征,是區(qū)分通信實體屬性的一類特征.由于有些惡意程序在部署、分布等方面具有一定特殊性,因此以通信對象特征進行屬性特征提取具有合理性.通信數據特征是通信行為特征中的主要特征,惡意程序網絡通信過程中所呈現出來的特征和規(guī)律相當一部分是在數據層面表示出來,因此,對于通信數據的特征規(guī)律需要進行深度的挖掘.通信過程特征是從通信行為的整體上描述通信的規(guī)律,前兩類的通信屬性特征都具有局部性的特征,往往只關注了通信行為的一個單點的特點或規(guī)律,不能對整個通信過程的特征進行記錄,通信過程特征則專門關注這一類的屬性特征.
通信對象特征主要包括:IP地址、端口號、特殊名單對象(白名單對象、黑名單對象)、對象所屬邏輯區(qū)域、對象所屬地理區(qū)域、對象操作系統類型、對象進程類型等類型.通信數據特征主要包括:應用協議號、上傳下載比、數據包大小、會話包總個數、小包個數、大包個數.通信過程特征主要包括:建立連接方式、心跳間隔、會話時長.
入侵檢測識別分類算法有多種,比較常見的主要有基于決策樹的分類算法、基于聚類的分類算法等等.其中,基于決策樹的分類算法簡單易于理解,通過構建與被檢測對象完全匹配的檢測判別決策樹,能夠快速地檢測出預期要檢測的對象.基于聚類的分類算法,采用聚類算法,對被檢測對象進行分析和計算,實現過程相對更復雜,檢測結果主要取決于分類算法的計算能力.從目前對聚類算法的研究來看,對于單變量或變量較少的問題時,采用聚類算法能夠取得較理想的處理效果,對于復雜的分類問題,變量數量很多時,聚類算法的處理能力難以滿足分類的需求,對樣本的分類效果也不理想.
本文研究的基于網絡通信行為的入侵檢測技術,其待分類問題的屬性變量多,不適合用聚類算法進行分類處理.以本文構建的網絡通信行為屬性特征模型為例,其包括的網絡通信行為特征達十多個變量,屬于復雜分類對象的問題.另一方面,對網絡入侵程序的網絡通信行為分析可以發(fā)現,入侵程序的通信行為具有一定的特征,但這類特征一般都是比較模糊的,難以定量地判定該程序就是網絡入侵程序.以網絡入侵程序的心跳數據為例,這是一個典型的入侵程序具有的行為特征,然而,心跳周期究竟定多長?心跳的頻度究竟定多少?才能滿足入侵程序的行為特征,這并沒有統一的答案.尤其是,隨著的技術和網絡應用的不斷發(fā)展,現在已經出現了一些常規(guī)的C/S應用系統,其工作過程中也具有心跳數據規(guī)律.而一些真正的惡意入侵程序,其心跳的間隔和頻度都在朝變長、隨機化的方向發(fā)展,這種現狀導致網絡入侵行為的檢測很難用單一、量化的參數或條件進行檢測與判斷.為此,本文提出了基于神經網絡的網絡入侵行為檢測識別分類算法.
本文設計的基于神經網絡的入侵檢測識別分類算法,通過大量樣本數據的訓練,提高入侵檢測識別分類算法的精度.選用的神經網絡結構如圖2所示.神經網絡總共分為三層,分別是數據輸入層、隱含層和數據輸出層.其中數據輸入層的單元數與通信行為屬性特征的數量相同,有多少個通信行為的屬性特征,則設計多少個神經網絡輸入層,從而使得神經網絡能夠接受所有通信行為屬性特征參數,隱含層的單元數量是輸入層的2倍.由于神經網絡是通過構建線性多項式逼近非線性問題,因此設計隱含層的單元數大于輸入層,可以訓練出表示能力更強、更能逼近現實問題的多項式.輸出層包含兩個單元,分別對應網絡通信行為檢測的輸出結果,判斷所輸入的網絡通信行為數據是否屬于入侵行為.
圖2 入侵檢測識別中的神經網絡結構Fig.2 Neural network structure in intrusion detection and recognition
神經網絡訓練時,首先構建樣本數據集,采集有代表性的大量網絡入侵樣本數據,以典型的木馬、惡意程序等攻擊程序的通信數據流作為樣本數據.按照網絡入侵行為檢測數據屬性特征模型,對所有的樣本數據進行特征采集與分類,構建出每個網絡入侵行為的樣本參數項.通過多個樣本的采集與特征抽取,建立訓練樣本庫.與此同時,對正常的網絡通信流量也進行采樣,同樣安裝網絡通信行為屬性特征模型,對每一種特征不一樣的正常通信流量分析,采集正常通信條件下的網絡通信流量,建立起正常網絡通信流量中的樣本庫.之后設定神經網絡初始參數,將網絡入侵行為的通信流量和正常網絡通信行為的流量分別輸入至神經網絡,開始對神經網絡進行訓練.在訓練過程中,可以根據訓練的結果對訓練過程進行干預,包括提前終止訓練過程,根據訓練結果驗證訓練效果等等.
目前網絡攻擊程序絕大多數仍然采用C/S的控制模式,這種控制模式的根源是進入到目標計算機中的攻擊程序需要與外部控制端進行通信與數據交換.以傳統的木馬為例,其一般都包括植入到目標計算機中的前段程序與遠程的后端程序兩部分,其中前段程序可以有多個,分布在不同的計算機中,這就形成了典型的服務器-客戶端的工作模式.前端程序工作時,需要接收后端控制程序的指令,并依據控制指令完成一定的執(zhí)行動作,之后將執(zhí)行結果反饋給控制端程序.在這一過程,需要多次傳輸控制命令、數據交換等通信操作.隨著技術的發(fā)展,這種木馬的工作方式有了一些新的變形,比如有些木馬的前端程序中加入了智能決策模塊,能夠自主地分析周圍網絡的情況,并做出后續(xù)的執(zhí)行動作,減少了前端程序與后端控制的信息交互次數.但是,無論怎么發(fā)展和創(chuàng)新,只是對木馬的控制實現方式進行了一些變化,并沒有徹底打破攻擊程序的這種C/S控制模式.因此,這類網絡攻擊程序在通信行為上依然存在很多的共性特征.
本文設計的基于網絡通信行為分析的入侵檢測模型,則是針對網絡攻擊程序的特性行為特征進行建模與分析,實現對網絡入侵行為的檢測目的.入侵檢測模型結構如圖3所示.入侵檢測模型主要有三部分組成,分別是入侵行為特征采集模塊、入侵行為特征訓練模塊、入侵行為檢測模塊.其中,入侵行為的檢測結果可以進行人工干預,干預后的數據可以重新送入入侵行為特征訓練模塊,對之前得到的訓練規(guī)則進行修正,從而實現了自動學習和進化的檢測能力,使得所設計的入侵檢測模型不僅能夠檢測到未知的入侵行為,還能夠自動升級更新檢測規(guī)則,實現更優(yōu)的檢測效果.
圖3 基于網絡通信行為分析的入侵檢測模型Fig.3 Intrusion Detection Model Based on Network Communication Behavior Analysis
網絡入侵檢測是對網絡攻擊行為進行檢測及預警的重要途徑,隨著攻擊技術的提升和攻擊手段的不斷變化,入侵檢測技術面臨極大的技術挑戰(zhàn).研究和設計基于通信行為分析的網絡入侵檢測跳出了傳統基于特征匹配的檢測模式,是一種智能化的檢測模型,通過對通信行為的抽取與建模,構建的檢測系統不僅能夠對已知攻擊行為進行檢測,還能夠對未知的網絡攻擊行為進行檢測.