肖 毅
(中國電子科技集團公司第三十研究所,四川 成都 610041)
通信網絡作為一個復雜系統,其安全性嚴重影響了通信網絡以及信息系統的應用,為了提高通信網絡的安全性,大量學者對通信網絡的安全性測試技術進行了研究。在軟件安全測試方面,蔣廷耀[1]提出了一種基于 EAI 模型( Environment Application Interaction Model)的軟件錯誤注入測試方法;張德平[2]基于馬爾可夫鏈使用模型提出了一種針對安全關鍵軟件測試資源受約束的啟發式加速測試方法;杜經農[3]提出環境與狀態錯誤模型( EAS模型),并設計了基于EAS模型的Web應用軟件安全性測試方法;陳錦富[4]提出了一種構件安全測試錯誤注入模型 FIM (Fault Injection Model of Component Security Testing),并基于 FIM 模型給出了一種錯誤注入測試用例生成算法TGSM(Test2case Generating based on Solution Matrix);賀紅[5]提出將安全性測試增加到軟件功能性測試之中,并給出對應用軟件進行安全測試的對手模式。在網絡安全測試方面,落紅衛[6]給出了網絡安全測試的原則、內容以及進行協議測試、功能測試、性能測試和物理測試的方法;念其鋒[7]提出 BGP 攻擊樹(Attack2Tree)模型,并應用該模型構造域間路由系統的安全性測試套件。在攻擊測試方面,龔雷[8]針對計算機網絡系統中存在的漏洞和脆弱點研究了安全測試攻擊工具庫與攻擊工具箱, 提出了多屬性攻擊工具分類法。在協議安全性測試方面,李謝華[9]提出一種基于改進認證測試理論的高效安全協議驗證算法— —AAAP (Automatic Analyzer for Authentication Protocols)算法,利用認證測試理論中消息間的偏序關系避免狀態空間爆炸的問題;陳偉琳[10]針對協議安全測試中數據流的描述問題,在構造類別代數的基礎上引入變異分析,提出了一種協議安全測試方法;李弋強[11]給出了安全因子的定義,并通過建立帶安全因子的安全EFSM模型,設計了一種新的基于最小安全因子的協議安全性測試序列生成算法。在安全產品測評方面,張敏[12]提出在信息安全產品測評中基于安全策略模型的安全功能測試用例自動生成方法,包括基于語法、規則、類型的劃分等步驟,依據形式化安全模型生成正確描述系統行為的操作測試用例集;黃亮[13]采用了基于安全產品安全策略模型的測試用例自動生成方法,設計并實現了一個測試用例自動化生成工具— —CaseBuilder;劉瑩[14]基于 ServerScope 測試儀的軟硬件結構,提出了一種新的測試網絡信息安全產品的方法,在系統中同時模擬客戶端和服務端,生成網絡信息安全系統所特有的交互式負載。
這些研究成果,從軟件、網絡、協議以及安全產品測評方面均對安全測試進行了研究,并在某些方面推動了安全測試技術的發展,能夠從測試方面提高通信網絡的安全性,但是在信息對抗時代,通信網絡需要進行全面的安全測試,根據漏桶原理彌補安全的短板。為此,提出了基于有限條件的攻擊測試方法,建立了攻擊測試模型,并基于該模型給出了攻擊測試算法,最后設計了利用該算法的攻擊測試系統。通過實現該攻擊測試系統,對GSM等無線通信網絡進行了安全性測試,表明該方法能夠發現這些網絡存在的安全漏洞。
目前,大部分通信協議在安全機制方面均存在先天不足,易于遭受攻擊。通信網絡的大部分應用協議也都缺乏認證、保密等措施,也使攻擊者比較容易得手。通信網絡常遭受的攻擊有如下幾類:
(1)假冒。假冒是一個實體假裝成另一個不同的實體。假冒常與其它一些主動攻擊一起使用,如消息的重放與篡改,有限權限的實體假冒有額外特權的實體。
(2)重放。一個過去的消息或部分消息被重新在網絡中重復傳輸被稱為重放。例如,一個含有鑒別信息的有效消息可能被另一個實體所重放,目的是鑒別它自己(把它當作其他實體)。
(3)篡改。在網絡中傳輸的數據被非授權改變后繼續傳輸過程。例如,消息“允許甲讀機密文卷‘賬目’”被篡改為“允許乙讀機密文卷‘賬目’”。
(4)拒絕服務。當一個實體不能執行它的正常功能,或它的動作妨礙了別的實體執行它們的正常功能的時候便發生拒絕服務。這種攻擊可能是一般性的,比如一個實體抑制所有的消息,也可能是有具體目的性。例如,一個實體抑制所有流向某一特定目的端的消息,如安全審計服務信息。這種攻擊可以是對通信業務流的抑制,也可能制造出試圖破壞網絡操作的消息,特別是如果網絡具有中繼實體,這些中繼實體根據從別的中繼實體那里接收到的狀態報告來做出路由選擇的決定。
Forecast of heavy rain caused by the northeast cold vortex using “ingredients method”
(5)內部攻擊。當系統的合法用戶以非故意或非授權方式進行動作時便出現內部攻擊。多數已知的計算機犯罪都和使系統安全遭受泄露的內部攻擊有密切的關系。
(6)外部攻擊。外部攻擊可以使用的方法有:搭線(主動的與被動的)、截獲輻射、假冒授權用戶系統組成部分、旁路鑒別或訪問控制機制。
(7)陷井門。當系統的實體受到改變致使一個攻擊者能對命令,或者對預定的事件或事件序列產生非授權的影響時,其結果就稱為陷井門。例如,口令的有效性可能被修改,使得除了其正常效力之外也使攻擊者的口令生效(基于有限條件的攻擊測試方法)。
為了測試通信網絡的安全性,可利用這些攻擊原理對通信網絡進行測試,因此研究并提出了有限條件攻擊測試模型(Attack Test Model based on Limited Condition-ATMLC)和算法(Attack Test Algorithm based on Limited Condition-ATALC)。
通信網絡的安全性主要體現在機密性、完整性、可用性、真實性和抗否認性,可分別用集合j、w、k、z和r表示,那么通信網絡的安全性可用函數F(j,w,k,z,r)表示。為了測得通信網絡的安全性,需要確定其中的變量j、w、k、z和 r。為了確定這些變量,通過攻擊的測試方法進行獲取,為此設計如圖1所示的有限條件攻擊測試模型。

圖1 有限條件攻擊測試模型
該攻擊測試模型由攻擊、目標、響應和條件構成,相互之間形成一定的輸入和輸出關系。
(1)攻擊
攻擊是基于有限條件的攻擊方法的集合,用Gg表示:

(2)目標
目標就是測試對象,即通信網絡,其安全性為F(j,w,k,z,r)。
(3)響應
響應攻擊方法作用到目標通信網絡后得到的反應或結果,用集合Rr表示:

其中,jr、wr、kr、zr、rr分別是攻擊方法 j’、w’、k’、z’、r’產生的響應,可用函數Rr=f(Gg)表示。目標的安全性F(j,w,k,z,r)是攻擊預期結果Rr’和響應Rr函數,可用F(j,w,k,z,r)=f’(Rr’,Rr)表示。
(4)條件
條件是通信網絡某些安全屬性的集合可用CF表示:

其中,J={Ja},W={Wb},K={Kc},Z={Zd},R={Re},而 a、b、c、d、e=1,2,…,是相對獨立的安全防護屬性,是在攻擊測試方法無法進行時作為攻擊方法的輸入條件,并認為該項安全屬性可靠。如果輸入條件 JA、WB、KC、ZD、RE,表明測試目標的安全性:

這樣重復進行攻擊測試,通過不斷的遞代,直到所有攻擊測試項目完全成功為止,從而可最終獲取目標通信網絡的安全性。
有限條件攻擊測試算法(ATALC)就是從無任何條件到獲取一定條件,甚至到所有條件進行攻擊測試,直到所有攻擊測試項目完全成功為止,從而得到目標通信網絡的安全性,具體測試算法流程如下:

根據通信網絡的有限條件攻擊測試模型及算法設計有限攻擊測試系統如圖2所示。

圖2 有限條件攻擊測試系統
有限條件攻擊測試系統由五部分構成,攻擊測試控制臺、攻擊測試激勵模塊、攻擊測試響應模塊、攻擊序列測試庫、攻擊測試輸入點和攻擊測試輸出點構成。
攻擊測試控制臺屬于系統總控設施,負責根據通信網絡的特性,配置攻擊測試輸入點和輸出點的參數。
攻擊序列測試庫由各種攻擊序列構成,這些序列包括身份假冒序列、越權訪問序列、消息篡改序列、重放攻擊序列、拒絕服務攻擊虛擬、木馬病毒序列等,負責對通信網絡的五大安全屬性進行攻擊測試。
攻擊測試輸入點接受攻擊測試控制臺的控制,并將攻擊序列通過該點輸入到被測試的網絡,同時需要解決攻擊序列與被測網絡之間的接口(包括物理接口和信息接口)。
攻擊測試響應根據攻擊序列測試庫的測試方法,調動攻擊測試輸出點,獲取攻擊序列作用后的通信網絡響應。
攻擊測試輸出點通過采集攻擊測試序列輸入前后以及輸入時的相關信息,并解決輸出點與被測試網絡之間的接口適配問題,同時將獲取的信息傳輸給攻擊測試響應。
基于設計的攻擊測試系統,研制了原型系統,并搭建了小型GSM網絡等,對該方法進行了應用,如圖3所示。

圖3 攻擊測試試驗環境
為了完成GSM的測試,部署了一臺攻擊測試控制臺、一個輸入點和兩個輸出點。測試項目情況如表1所示,采用加密攻擊對GSM網絡進行了測試。

表1 GSM網絡安全性測試表
通過這些攻擊測試過程,說明GSM網絡在知道認證算法和密鑰的情況下,能夠被假冒攻擊,其安全性存在一定的問題,而在任何信息均不知道的情況下,無法被身份假冒攻擊。
針對目前通信網絡面臨的安全威脅,研究并設計了有限條件攻擊測試方法,包括有限條件攻擊測試模型(ATMLC)和算法(ATALC),將各種攻擊方法按照無條件輸入和逐漸輸入條件的方式進行組織,并對目標通信網絡進行安全性測試,從而獲取目標通信網絡的安全性。基于該方法設計攻擊測試系統,對GSM等無線網絡進行了安全性測試,表明該測試方法有效、可行。
[1]蔣廷耀,王訓宇,馬凱,等. 基于EAI 和AOP 的軟件安全測試及應用研究[J]. 計算機科學,2009,36(04):169-171.
[2]張德平,聶長海,徐寶文. 測試資源受約束的安全關鍵軟件加速測試方法[J]. 計算機科學,2009,36(05):138-141.
[3]杜經農,盧炎生. 一種Web應用軟件安全脆弱性測試模型[J]. 小型微型計算機系統,2009,30(20):2398-2403.
[4]陳錦富,盧炎生,謝曉東. 一種構件安全測試錯誤注入模型[J]. 計算機研究與發展,2009,46(07):1127-1135.
[5]賀紅,徐寶文,袁勝忠.對應用軟件進行安全測試的對手模式及其應用[J].計算機科學,2006,33(09):266-269.
[6]落紅衛. IP 網絡安全測試研究[J].電信網技術,2009(03):18-21.
[7]念其鋒,蔡開裕,杜秀春. 基于攻擊樹的邊界網關協議安全測試[J].計算機工程與科學,2006,28(08):14-16,29.
[8]龔雷,陳性元,唐慧林,等. 面向安全測試攻擊工具庫設計[J].微計算機信息,2008,24(03):75-77.
[9]李謝華,高春鳴. 基于改進認證測試理論的高效安全協議驗證算法[J]. 計算機科學,2009,36(04):73-76,128.
[10]陳偉琳,周顥,趙保華. 利用構造類別代數的協議安全測試方法[J].西安交通大學學報,2008,42(12):1481-1485.
[11]李弋強,徐中偉,喻鋼,等. 面向安全需求的安全通信協議測試序列生成算法[J]. 計算機應用,2009,29(07):1828-1831,1848.
[12]張敏,馮登國,陳馳. 基于安全策略模型的安全功能測試用例生成方法[J]. 計算機研究與發展,2009,46 (10): 1686-1692.
[13]黃亮,馮登國,張敏. 一個基于安全模型的測試用例生成工具[J].中國科學院研究生院學報,2007,24(03):300-306.
[14]劉瑩,田野. 一種針對網絡信息安全系統的測試方法[J]. 計算機工程,2006,32(20):140-142.