摘要:提出了一種在密碼協議運行中,基于有限自動機原理檢測其上攻擊的方法,詳細介紹了該方法的工作原理,并通過實例驗證了此方法的可行性,最后給出了該檢測方法原型系統的測試結果。
關鍵詞:密碼協議; 入侵檢測; 有限自動機; 實時; 動態
中圖分類號:TP309文獻標志碼:A
文章編號:1001-3695(2008)01-0230-02
密碼協議(又稱安全協議)是構建網絡安全環境、保護信息系統安全的重要手段之一。然而密碼協議本身也存在缺陷和漏洞,所以分析其固有缺陷和發現對它的入侵攻擊行為,是保障網絡安全通信的前提。入侵檢測技術是通過從計算機網絡或計算機系統中收集信息并對其進行分析,來發現網絡或系統中是否有違反安全策略行為的技術。本文將入侵檢測技術應用于密碼協議分析中,用有限自動機模擬密碼協議執行過程,設計了一種能實時動態監控密碼協議運行的入侵檢測方法,并對該方法進行了測試。
1系統結構
該檢測系統把網絡中的成員分為密碼協議的合法參與者和入侵者兩種。對每種密碼協議建立正確運行狀態轉變規則庫和密碼協議已知攻擊特征庫,分別存儲密碼協議正確運行時的規則和已發現其上攻擊的特征。整個系統中設一個系統監視器。每個密碼協議的合法參與者均配置一個監視器終端,負責收集密碼協議參與者的活動信息,并將這些信息傳給系統監視器。由系統監視器通過構造有限狀態自動機,建立這些信息與數據庫中存儲信息的映射關系,動態分析密碼協議各參與者的行為,判斷合法網絡范圍內的安全情況。整個系統結構如圖1所示。
1.1檢測原理
密碼協議執行中要進行消息交換,將每次消息交換分成一次發送事件和一次接收事件。每次系統監視器接收一個事件,首先判斷是否是一個新的協議會話的第一事件;然后在協議規則庫中查找對應協議名存儲的特征,構造一個有限狀態自動機,并初始化有限自動機在開始狀態。當系統監視器再接收到該協議會話的事件時,對應執行有限自動機到下一狀態,判斷該狀態與協議正常運行要到達的狀態是否一致。如果一致,系統監視器將有限自動機繼續向前運行,如直到有限自動機終態都一致,表示協議運行正常,系統監視器不產生任何警告通告;如果這些事件中有一步與規則庫中存儲的信息不一致,開始判斷是否與攻擊特征庫中存儲的信息相匹配,若當轉變到最終狀態上時都與某一攻擊特征相匹配,表示當前存在攻擊行為,系統監視器將發出一個攻擊通告;如果與規則庫及攻擊特征庫都不符合,發出一個可疑攻擊通告。
1.2數據庫結構
在數據庫中,密碼協議正確運行規則和已知的攻擊特征用下面的形式表示:
begin××NUMtype
state1 principal (/) principal state2 msgNum
state1 principal (/) principal state2 msgNum
……
end
其中:begin/end表示特征在這一行開始/結束;
NUM表示一個數字值,暗示是否這個特征緊跟著是一個正確的協議運行或是一個攻擊(NUM≥0表示特征是一個攻擊特征;
NUM=-1表示這個特征是協議的正常運行);
type為這個特征表示的攻擊類型;
state1表示有限自動機在事件(發送或接收)開始前的狀態,如SS表示開始狀態,S1表示狀態1;
state2表示有限狀態自動機在事件發生后的狀態,如S1表示狀態1,FS表示結束狀態;
/表示是發送/接收事件;
principal表示協議的參與者,用單一字母標志符表示,如A、B、S等;
msgNum表示協議正確運行時的消息序列號。
1.3有限自動機
用有限狀態自動機表示密碼協議運行規則,每一種密碼協議的運行過程,用一個有限狀態自動機(FSM)表示。協議執行的每一步均對應上面劃分的一個事件發生,對應到自動機上即發生一個狀態轉變。
這時系統中因攻擊者Z并不是協議的有效成員,不擁有監視器終端,無論他發送或接收消息,這些信息均不能通知給系統監視器,而B卻可以將與他相關的信息報告給系統監視器,即系統監視器只能收到B的兩個接收事件和一個發送事件。這時有限自動機的狀態轉變形式與規則庫中的不一致,系統監視器將這些事件特征與存儲在特征庫中的攻擊信息對比,與中間人攻擊類型一致,產生攻擊警報。
3系統實現
該檢測方法的原型系統用VC 6.0實現。在設計和開發系統時,定義了以下的假定前提:
a)協議參與者間的通信是不安全的;
b)協議參與者與監視器終端的通信是可信賴和安全的;
c)監視器終端與系統監視器間的通信是可信和安全的。
為了處理系統在執行中多個并發會話的情況,設計系統監視器每接收一個事件,如符合一個新的協議會話的第一個事件,就產生一個新線程,用于管理對應協議的FSM。系統監視器的檢測流程如圖3所示。
為了確定系統監視器接收的事件屬于哪個協議會話線程,定義threadInfo類保存每個線程的協議名、會話號、參與者名;event類存儲單一事件信息;FSM類表示有限自動機。其中包括以下五個方法:
a)createMachine( )。依據數據庫中存儲的數據建立有限自動機。
b)advanceFSM( )。得到此時發生的FSM匹配事件狀態的下一個狀態。
c)checkNormalSessionl( )。對一個協議的正常運行,檢查FSM是否可到達它的終態。
d)checkAttack ( )。檢查對某一攻擊類型,FSM是否能前進到它的終態,并發出通告信號。
e)writeToFile( )。將檢測到的攻擊或可疑行為的信息寫入攻擊日志文件。
在Pentium 4.2 GHz處理器的主機上,運行開發的原型程序、密碼協議和系統監視器,使用一個真實網絡地址的一個四星期訪問日志,模擬正常OpenSSL協議運行。因監視器終端要傳送信號給在網絡上的協議監視器,將導致網絡通信增加。筆者在線測量了網絡通信的平均開支,得到超過1 000個SSL會話時,平均網絡通信增加840 Byte, 約14.7%。隨著運行時間增長,有限自動機狀態轉變次數也在增加,但逐漸趨于平穩。兩者關系如圖4所示。
4結束語
本文提出了一種在應用層分析密碼協議攻擊的方法,能實時動態地檢測密碼協議運行,尤其對并行會話攻擊,每個協議會話均對應一獨立的線程,可同步互斥地檢測,及時發現攻擊,保護合法區域內的網絡安全。最后通過對開發的原型系統測試,證實該方法能有效檢測密碼協議上的攻擊,且對網絡性能影響較??;但當協議會話數目較大時,有限自動機的狀態轉變次數也會相應增大,可能會造成狀態空間爆炸,對此有待進一步的研究和改進。
參考文獻:
[1]HEINTZE N, TYGAR J D. A model for secure protocols and their composition[J]. IEEE Transactions on Software Engineering, 1996,22(1):16-30.
[2]YASINSAC A. Dynamic analysis of security protocols[C]//Proc of New Security Paradigms 2000 Workshop.Ireland:[s.n.],2000:77-87.
[3]YASINSAC A. An environment for security protocol intrusion detection[J].Journal of Computer Security, 2002,10:177 188.
[4]SHERWOOD R W. Methods of detecting intrusions in security protocols[D]. FL,USA:Florida State University Tallahassee,The Florida State University College of Arts and Sciences, 2004.
[5]YASINSAC A. Detecting intrusions in security protocols[C]//Proc of the 7th ACM Conference on Computer and Communications Security.Athens: [s.n.], 2000.
[6]JOGLEKAR S P, TATE S R. Embedded monitors for cryptographic protocol intrusion detection and prevention[C]//Proc of IEEE Conference on Information Technology: Coding and Computing (ITCC). Orleans: [s.n.],2004:81-88.
[7]MAO W. Modern cryptography:theory and practice[M].北京:電子工業出版社,2004.
[8]SEKAR R, GUPTA A, FRULLO J, et al.Specification based anomaly detection: a new approach for detecting network intrusions[C]//Proc of the 9th ACM Conference on Computer and Communications Security. Washington D C: [s.n.],2002:265-274.
[9]卓繼亮, 李先賢, 李建欣, 等. 安全協議的攻擊分類及其安全性評估[J]. 計算機研究與發展,2005,42(7):1100 1107.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”