楊林 張義榮 楊峰 馬琳茹 李京鵬
攻擊面是攻擊者進入信息系統(tǒng)并可能造成破壞的一系列途徑,即攻擊時使用的操作系統(tǒng)、軟件、數(shù)據(jù)和網(wǎng)絡(luò)等資源.攻擊面越大,系統(tǒng)越不安全;系統(tǒng)的安全漏洞很難徹底根除,在漏洞必然存在的情況下,降低安全風(fēng)險的有效辦法是縮小系統(tǒng)攻擊面.動態(tài)目標防御的主要思想是向攻擊者呈現(xiàn)不斷變化的攻擊面,增加攻擊者探測和利用攻擊面的難度,以達到減小系統(tǒng)攻擊面的效果.概而言之,安全防護體系不斷完善的過程,就是促使攻擊面不斷縮小的過程[1].
通過動態(tài)變化實現(xiàn)安全的想法主要基于自動生成能改變系統(tǒng)某些特性的系統(tǒng)變量或目標程序.動態(tài)目標防御作為一種可能“改變游戲規(guī)則”的潛在方法,正受到業(yè)界廣泛關(guān)注.按照動態(tài)使用系統(tǒng)資源不同,動態(tài)目標防御技術(shù)主要有網(wǎng)絡(luò)配置隨機化、指令集隨機化、軟件多態(tài)化等[2?4].Shaer.E.Al[5]等提出了一種稱為“變形網(wǎng)絡(luò)”(MUTE)的動態(tài)目標防御架構(gòu),能夠隨機動態(tài)地改變網(wǎng)絡(luò)配置(如IP地址、路由)等,以抵御網(wǎng)絡(luò)掃描、拒絕服務(wù)、僵尸網(wǎng)絡(luò)等攻擊行為.Kc.G.S[6]等研究了基于硬件的低開銷指令集隨機化方法,并利用Bochs X86仿真器評估了該方法在解釋型語言(如Perl、SQL等)中的適用性.Shacham.H[7]等研究了進程地址空間布局隨機化(ALSR)問題,表明32位系統(tǒng)缺乏足夠的熵導(dǎo)致ALSR不是十分有效.Jacob.M[8]等對程序編譯器進行修改,通過添加指令產(chǎn)生不返回的代碼,能夠阻止部分代碼重用攻擊.Yiu.H[9]等通過配置具有不同軟件堆棧的虛擬服務(wù)器集群生成持續(xù)變化、不可預(yù)知的Web服務(wù)架構(gòu),來挫敗SQL注入、跨站腳本等Web攻擊.
上述工作重點關(guān)注動態(tài)目標防御的具體實現(xiàn)技術(shù),缺乏對系統(tǒng)變化攻擊面的形式化分析和度量方法,難以評估動態(tài)目標防御的綜合效能.本文提出了一種基于馬爾可夫(Markov)鏈的攻擊面建模度量方法,探索通過攻擊探測概率指標對變化攻擊面進行定量度量,并對攻防博弈中動態(tài)目標防御方法的有效性和實施策略進行分析驗證.
控制、監(jiān)測和動態(tài)等3類安全防護手段可作用于攻擊面W,假設(shè)系統(tǒng)的每個輸入點都可能成為一個攻擊點,這些攻擊點匯集成攻擊面,因此W可以看作系統(tǒng)所有輸入點的數(shù)量.
1)控制手段:一種直接減少攻擊面狀態(tài)空間的方法,采用控制后攻擊面變化為Wc=W?PC,其中C為控制措施.
2)監(jiān)測手段:一種間接減小攻擊面狀態(tài)空間的方法,通過監(jiān)測攻擊可為控制提供輔助支持.采用監(jiān)測后攻擊面變化為Wm=Wc?PM,其中M為監(jiān)測措施.
3)動態(tài)手段:攻擊面在各個狀態(tài)間以某種概率進行狀態(tài)遷移.在各個狀態(tài)間遷移的概率構(gòu)成一個轉(zhuǎn)移概率矩陣,由于某時刻之后的狀態(tài)只與該時刻的狀態(tài)有關(guān),而與之前的狀態(tài)無關(guān).這種數(shù)學(xué)模型符合時間離散、狀態(tài)離散的Markov過程條件[10],即Markov鏈.
不管初始狀態(tài)如何,系統(tǒng)經(jīng)過有限步遷移后最終會達到平衡.因此,系統(tǒng)攻擊面最終落在某個狀態(tài)的概率是可以確定的,可計算攻擊面的數(shù)學(xué)期望值,即動態(tài)變化期望達到的防御效果,如圖1所示.
圖1 攻擊面狀態(tài)遷移示意圖
定義1.假設(shè)系統(tǒng)狀態(tài)S為離散集合A={A0,A1,···,An},狀態(tài)Ai的攻擊點數(shù)量為Ki,狀態(tài)間遷移概率為Pti,攻擊面探測概率Pdi.那么,系統(tǒng)狀態(tài)轉(zhuǎn)移矩陣是一個(n+1)階方陣,可定義為:
根據(jù)攻擊者和防御者對狀態(tài)攻擊面的掌握程度,可以將模型分為以下4種情況:
Case 1.防御者不清楚狀態(tài)攻擊面具體情況,系統(tǒng)攻擊點的遷移是隨機的,攻擊者具有足夠的能力在時間間隔(?t)內(nèi)去掌握每個時刻的攻擊路徑,即Pdi=1.
圖2 攻擊面Markov鏈狀態(tài)遷移1
Case 2.防御者清楚狀態(tài)攻擊面具體情況,防御者有意引導(dǎo)系統(tǒng)向攻擊面減小的方向遷移,即?i,ki≤k0.同時,攻擊者具有足夠的能力在時間間隔(?t)內(nèi)去掌握每個時刻的攻擊路徑.此種情況與Case 1類似,僅相當于狀態(tài)空間有所縮減.
Case 3.防御者不清楚狀態(tài)攻擊面具體情況,系統(tǒng)攻擊點的遷移是隨機的,而攻擊者可能沒有足夠的能力在時間間隔(?t)內(nèi)去掌握每個時刻的攻擊路徑.假設(shè)每種狀態(tài)的攻擊面探測概率為Pd,Pd∈[0,1],此種情況與Case 1類似,相當于在狀態(tài)空間集合{AiPdi}中求解Markov鏈平穩(wěn)方程.如果當?i,Pdi=1,此時退化為Case 1.
圖3 攻擊面Markov鏈狀態(tài)遷移2
Case 4.防御者清楚狀態(tài)攻擊面具體情況,而攻擊者可能沒有足夠的能力在時間間隔(?t)內(nèi)去掌握每個時刻的攻擊路徑,此種情況對防御者最為有利.假設(shè)每種狀態(tài)的攻擊面探測概率為Pd,Pd∈[0,1],此種情況與Case 2類似,相當于在狀態(tài)空間集合{AiPdi}中求解Markov鏈平穩(wěn)方程.當?i,Pdi=1,此時退化為Case 2.
若系統(tǒng)狀態(tài)遷移概率矩陣為Pt,那么根據(jù)方程
可以求出Markov鏈的平穩(wěn)分布X?.
如果攻擊面探測概率向量為Pd,則系統(tǒng)狀態(tài)的期望為
站在防御者角度,希望采用合適的動態(tài)手段和系統(tǒng)狀態(tài)遷移策略,使得
其中k0為靜態(tài)系統(tǒng)攻擊面初始值,即使得系統(tǒng)攻擊面往縮小的趨勢發(fā)展.
攻擊探測概率Pd是影響動態(tài)系統(tǒng)攻擊面的重要指標,對攻擊面的數(shù)學(xué)期望影響甚大,可從狀態(tài)遷移速率、隨機化程度和狀態(tài)空間大小等維度進行量化.
定義2.假設(shè)動態(tài)系統(tǒng)S的狀態(tài)遷移時間間隔?t∈[0,T0],隨機化程度為R∈[0,1],狀態(tài)空間大小為狀態(tài)數(shù)N∈[0,N0],探測防護能力為探測報文攔截率L∈[0,1],則動態(tài)系統(tǒng)S的攻擊探測速率Pd為
其中,T0定義為探測到所有攻擊面所需最大時間,N0定義為防御者可變換的最大狀態(tài)空間數(shù).
假設(shè)某云中心初始狀態(tài)的攻擊面可在5個狀態(tài)間遷移,攻擊面S的狀態(tài)空間為A={A0,A1,A2,A3,A4}.假設(shè)該狀態(tài)的轉(zhuǎn)移規(guī)則是:如果在遷移前,它在A1,A2,A3這幾個狀態(tài)上,那么就分別以1/3的概率向前或向后遷移一個狀態(tài),或者停留在原處;如果遷移前,它在A0這點上,那么就以概率1遷移到A1這一點;如果在移動前,它在A4這點上,那么就以概率1轉(zhuǎn)移到A3這一點,因此系統(tǒng)轉(zhuǎn)移概率矩陣為:
平穩(wěn)狀態(tài)向量X=(x1,x2,x3,x4,x5)由X=X?P計算得出:
上述方程解得
經(jīng)過有限步狀態(tài)轉(zhuǎn)移后,系統(tǒng)狀態(tài)的期望為:
Case 1.防御者不清楚狀態(tài)攻擊面具體情況,系統(tǒng)攻擊點的遷移是隨機的,攻擊者具有足夠的能力在時間間隔內(nèi)掌握每個時刻的攻擊路徑.
假設(shè)初始狀態(tài)攻擊面k0=4,k1=7,k2=3,k3=2,k4=5,那么攻擊面的期望A?=4.09.
Case 2.防御者清楚狀態(tài)攻擊面具體情況,引導(dǎo)系統(tǒng)向攻擊面減小的方向遷移,攻擊者具有足夠的能力在時間間隔內(nèi)掌握每個時刻的攻擊路徑.
假設(shè)初始狀態(tài)攻擊面k0=4,k1=3,k2=2,k3=4,k4=1,那么攻擊面數(shù)學(xué)期望A?=2.90.
以科學(xué)理論為名稱,如試用版(上海)高中地理新教材第一冊的“宇宙大爆炸”,第二冊的“中心地理論”等專欄,雖然只是介紹科學(xué)理論的主要內(nèi)容及形成過程,但從中能反映伽莫夫、魏格納、勒皮雄、克里斯泰勒等科學(xué)家為創(chuàng)立這些新的科學(xué)理論所付出的艱辛努力和勇于探索的精神。
Case 3.防御者不清楚狀態(tài)攻擊面具體情況,系統(tǒng)攻擊點的遷移是隨機的,攻擊者可能沒有足夠的能力在時間間隔內(nèi)掌握每個時刻的攻擊路徑.
與Case 1類似,假設(shè)初始狀態(tài)攻擊面k0=4,k1=7,k2=9,k3=2,k4=5,攻擊面探測概率Pd0=0.3,Pd1=0.5,Pd2=0.4,Pd3=0.2,Pd4=0.6,那么攻擊面的數(shù)學(xué)期望A?=2.43.
Case 4.防御者清楚狀態(tài)攻擊面具體情況,有意引導(dǎo)系統(tǒng)向攻擊面減小的方向遷移,攻擊者可能沒有足夠的能力在時間間隔內(nèi)掌握每個時刻的攻擊路徑.
與Case 2類似,假設(shè)初始狀態(tài)攻擊面k0=4,k1=3,k2=2,k3=4,k4=1,攻擊面探測概率Pd0=0.3,Pd1=0.5,Pd2=0.4,Pd3=0.2,Pd4=0.6,那么攻擊面的數(shù)學(xué)期望A?=1.009
站在防御者角度,希望采用合適的防護手段和系統(tǒng)狀態(tài)遷移策略,使得
為簡化起見,假設(shè)每次攻擊探測概率Pdi為相同常量,則
此即為系統(tǒng)狀態(tài)調(diào)整策略是否有效的拐點,如圖4所示.
圖4 系統(tǒng)動態(tài)調(diào)整拐點
可見,當0.698時,動態(tài)系統(tǒng)攻擊面的數(shù)學(xué)期望值大于靜態(tài)系統(tǒng)的攻擊面值,此時進行動態(tài)變化調(diào)整并無效果.
攻擊探測概率與多種因素相關(guān),如攻擊者技能水平、對系統(tǒng)掌握程度、計算資源多寡、分析時間長短等.為簡化起見,假設(shè)在給定計算資源、不考慮隨機化程度、狀態(tài)空間等情況下,探測概率僅與允許攻擊者分析系統(tǒng)的時間呈線性關(guān)系,且系統(tǒng)狀態(tài)進行周期變化,則式(5)變?yōu)?
其中,?t為狀態(tài)發(fā)生變化的時間間隔,T0為攻擊者研究出當前時刻系統(tǒng)所有攻擊點需要的時間周期.
假定在攻擊資源一定的情況下,某攻擊組織可在12h內(nèi)分析系統(tǒng)當前狀態(tài)的所有攻擊點.在上述算例Case 3下,可由公式
由此可見,動態(tài)防御技術(shù)未必一定能減小系統(tǒng)攻擊面,其實際效能與攻擊者、防御者對狀態(tài)攻擊面的掌握程度密切相關(guān).例如,在防御者不清楚狀態(tài)攻擊面具體情況下,動態(tài)系統(tǒng)攻擊面甚至可能比靜態(tài)系統(tǒng)攻擊面更大.而攻擊探測概率則是影響動態(tài)系統(tǒng)攻擊面的重要指標,攻擊活動被防御者及時探測的概率越低,動態(tài)系統(tǒng)攻擊面越小.
本文基于馬爾可夫鏈理論對信息系統(tǒng)動態(tài)防御效能進行了模型構(gòu)建和實例分析,并驗證了相關(guān)模型的有效性和合理性.研究結(jié)論表明為取得動態(tài)防御效果,動態(tài)防御技術(shù)必須滿足以下條件:1)快速而不可預(yù)測的狀態(tài)遷移,即狀態(tài)動態(tài)遷移必須快速以保證攻擊者沒有足夠的時間和空間去偵察、探測目標;2)足夠多的狀態(tài)空間,以減少不同狀態(tài)間攻擊面的重復(fù)度,增加攻擊者對系統(tǒng)掌握的難度;3)透明的狀態(tài)遷移,即在系統(tǒng)狀態(tài)遷移過程中被保護目標必須是“透明”的,以保證整個會話和服務(wù)不會因狀態(tài)遷移而中斷.
目前的工作僅是對攻擊面建模進行了一些初步探索.為了更精確刻畫變化攻擊面度量模型,仍有大量研究有待開展,相關(guān)工作包括模型可擴展性、攻擊者建模、動態(tài)遷移策略最優(yōu)化等.在模型可擴展性方面,可進一步考慮攻擊面與系統(tǒng)安全漏洞的關(guān)系,系統(tǒng)動態(tài)變化時安全漏洞的性質(zhì)和數(shù)量變化可能導(dǎo)致攻擊面發(fā)生突變,目前對系統(tǒng)漏洞的形式化描述仍是難題;在攻擊者建模方面,由于攻擊類型和方法的復(fù)雜性(如旁路攻擊、隱蔽通道等)使得攻擊建模十分困難[11],已有的攻擊圖、攻擊樹等模型缺乏定量描述能力,可嘗試進一步根據(jù)攻擊者類型(個人/組織/國家)、空間資源(單點/協(xié)同)、時間資源(分/小時/天)等精細分析;在動態(tài)遷移策略最優(yōu)化方面,尋找最優(yōu)的動態(tài)遷移策略是項技術(shù)挑戰(zhàn),系統(tǒng)的動態(tài)變化應(yīng)該快速和不可預(yù)測,并對外部攻擊具有感知能力,但這種動態(tài)變化要求在網(wǎng)絡(luò)基礎(chǔ)設(shè)施、協(xié)議或終端軟件方面具有靈活可伸縮性和可部署性,實踐上存在困難,博弈論[12]的引入可能是解決問題的一種方法,可進一步深入研究.