宋明秋,李艷博
(大連理工大學 經濟管理學院,遼寧 大連 116024)
蠕蟲一直是計算機網絡安全的最大威脅之一。2017年5月,“永恒之藍wanna cry”勒索蠕蟲病毒肆虐全球,多國的政府機構和要害部門都遭到嚴重破壞。之后又接連發生了Petya、Locky、Bad Rabbit等蠕蟲攻擊事件,給社會經濟帶來了巨大的損失。蠕蟲攻擊之所以會產生如此大的影響,最根本的原因是蠕蟲具有自我復制和傳播的特性[1]。它可以借助被攻擊節點發起對其他節點的新攻擊,從而造成大規模網絡癱瘓[2,3]。
對蠕蟲在網絡中傳播行為的研究一直是學術界關注的焦點。目前蠕蟲傳播研究大多是基于傳染病模型,包括SI、SIS、SIR、SEIR模型等[4~8]。經典的傳染病模型是利用微分方程法描述一個完全連通網絡上的傳播行為。隨著研究的不斷深入,復雜網絡理論指出Internet網絡符合無標度網絡特性,節點間的連接狀況極不均勻,節點度服從冪律分布[9]。基于此,研究人員對傳統微分方程法進行了改進,按照節點度對網絡中的節點進行劃分并分別建立微分方程[10,11]。改進后的方法雖然對度不同節點進行了區分,但是未考慮度相同節點間的差異性[12]以及傳播過程中的概率事件[13],會導致不同程度的精確度問題。顧海俊等[14]利用狀態轉移概率法研究了病毒傳播模型,發現概率方程法所求得的傳播閾值更加接近仿真結果。狀態轉移概率法建立了離散時間下節點狀態變化的概率,考慮了節點間的差異性問題,較微分方程法更具優勢[15~17]。此方法對本文傳播過程的描述具有一定的借鑒意義。
蠕蟲在網絡中的傳播速度和傳播規模與節點的感染概率相關。感染概率越大,蠕蟲越容易擴散到整個網絡。宋玉蓉等[18]認為節點度分布的不均勻性使節點擁有不同的安防強度,因此定義了與節點度相關的脆弱性函數來表征節點被感染的概率。李翔等[19]假定病毒的感染概率與個體脆弱程度和感染強度的乘積成正比例關系,研究了個體脆弱程度和感染強度服從冪率分布和高斯分布下的病毒傳播臨界行為。葉云等[20]考慮了CVSS標準中“Access Complexity”字段的屬性值,并用其來表征攻擊者滲透節點的難易程度。以上文獻都對節點感染概率的研究做出了重大貢獻,但是忽略了蠕蟲攻擊的相關性。羅寧等[21]指出入侵行為不再是單一行動,而表現為彼此協作入侵。經小川等[22]研究發現多個攻擊行為同時發生時存在信息傳遞作用。文獻[21,22]表明攻擊具有相關性。當節點面臨多個攻擊行為時,這些攻擊行為間的相互作用可能會對節點的脆弱性產生影響,從而促使蠕蟲更容易完成對該節點的滲透過程,節點的感染概率增加。
根據上面的分析,本文研究了考慮攻擊相關性的蠕蟲傳播模型,主要貢獻為:在攻擊具有相關性條件下對感染概率進行定量刻畫;利用狀態轉移概率法對蠕蟲傳播過程進行數學建模,并推導對應的傳播臨界值表達式;在無標度網絡中對蠕蟲傳播模型進行仿真實驗,研究感染概率初始值、感染變化率以及傳播概率對蠕蟲傳播過程和最終規模的影響,為蠕蟲傳播的控制提供借鑒和參考。
蠕蟲攻擊是指蠕蟲程序利用節點的脆弱性對其完成入侵滲透的過程。根據攻擊滲透理論模型,攻擊滲透的結果是節點脆弱性的增加以及用戶權限的提升等[23]。由此發現,當節點同時受到多個鄰居已感染節點發起的攻擊時,一部分鄰居節點入侵滲透帶來的節點脆弱性增加以及用戶權限的提升等結果可能會成為該節點被其他鄰居節點攻擊的前提,從而使后一部分鄰居節點的入侵滲透更容易完成;同時根據協作入侵理論,多攻擊行為可以構成一個攻擊序列,它們之間存在的信息傳遞作用會不斷地對節點的脆弱性產生影響[22]。根據上述理論分析可以發現,多攻擊行為在入侵滲透過程中具有相關性,并且攻擊相關性會導致節點的脆弱性增加,節點的感染概率增大。為了更加準確地描述多攻擊行為下節點感染概率的動態性,在蠕蟲傳播模型的構建中應將攻擊相關性納入考慮范圍。
對蠕蟲在網絡中的傳播做如下假設:
(1)網絡中節點的所有連邊都具有均勻的傳輸能力,即節點的傳播概率是一個常量;
(2)節點不論度大小都具有相同的安防強度,即節點的初始感染概率相同;
(3)節點被成功感染的概率和該節點的鄰居感染狀態節點數目相關。
假設(1)和(2)是無標度網絡傳播模型研究中的兩個重要基本假設[10]。本文模型在這兩個基本假設的基礎上考慮了攻擊相關性:網絡中節點度越大,該節點可能受到的攻擊越多,這些攻擊間的相關性會導致節點的脆弱性增加,被感染的概率增大。
將計算機網絡抽象為一個無向網絡,記作G=(V,E)。V表示網絡中的節點,E表示節點間的連邊。該網絡的鄰接矩陣為A=[wij]N×N。當節點i和節點j之間存在通信連接時,wij=1;否則,wij=0。
1.3.1 節點描述
蠕蟲攻擊包括傳播和感染兩個過程。傳播是指蠕蟲借助宿主節點向鄰居節點發起攻擊的過程。感染是指蠕蟲程序利用被攻擊節點的漏洞對其入侵滲透的過程。在傳染病基本模型SIR中,節點由S狀態到I狀態的轉變是一步完成的,沒有根據蠕蟲攻擊的兩個過程對節點狀態進行細分。為了從微觀層面更貼合實際傳播過程,本文在SIR模型的基礎上引入威脅狀態T,將S→I的狀態轉變更新為S→T→I,分別對應蠕蟲攻擊的傳播和感染兩階段過程,相應的傳播模型稱為STIR模型。
節點狀態的具體描述如下:
定義1節點狀態
易感狀態S(Susceptible):該類節點存在漏洞,可能會受到蠕蟲的攻擊;
威脅狀態T(Threatened):該類節點已經受到蠕蟲的攻擊掃描,還未被入侵滲透,不具備傳播能力;
感染狀態I(Infectious):該類節點已經被蠕蟲成功侵入,具備傳播能力;
免疫狀態R(Recovered):該類節點通過安裝殺毒軟件、系統升級等操作獲得了免疫能力,不會被蠕蟲感染,也不具備傳播能力。

1.3.2 蠕蟲傳播規則
蠕蟲在STIR模型中的傳播過程如圖1所示,具體傳播規則如下:

圖1 STIR模型的狀態轉換圖

(2)威脅狀態節點i將以概率βi被成功入侵滲透而成為感染狀態,其中βi表示節點i的感染概率;
(3)處于易感狀態和感染狀態的節點分別以概率δ1和δ2轉變為免疫狀態,其中δ1和δ2表示節點的免疫概率。
1.3.3 感染概率

(1)
其中,β0和Δβ為感染概率參數,體現了感染概率曲線的特征。β0表示感染概率初始值,體現了初始狀態下網絡節點的脆弱性,其值越大,節點的脆弱性越大,被感染的概率越大。Δβ為感染變化率,表示感染概率對攻擊數目變化的敏感程度,其值越大,感染概率對攻擊數目的變化越敏感,節點被感染的概率越大。若感染概率β(t)>1,取β(t)=1。
根據上面描述的蠕蟲傳播過程,利用狀態轉移概率法可建立如下的蠕蟲傳播動力學方程:
(2)
(3)
Si(t+1)=MulitiRealize[Pi(t+1)]
(4)
其中,MultiRealize[Pi(t+1)]是根據給定Pi(t+1)的概率分布隨機實現的節點i在t時刻的狀態。
參照文獻[14]中的方法,將上述方程轉化為下式:
(5)
此時節點i受到攻擊的概率為:
(6)

(7)
(8)
上式是一個非線性動力學系統F:[0,1]3N→[0,1]3N,系統初始節點(xi,yi,zi)=(0,0,0),?i∈{1,…,N}為固定點,通過雅克比矩陣來分析方程在初始點的局部穩定性。
方程的雅可比矩陣為:
(9)
矩陣(9)的特征根為:
(10)

當滿足max{d1,d2,d3}<1時,初始節點局部穩定。因0<δ1<1,故d1<1,d3<1恒成立。
由d2<1可以得到:


(11)
因此,本文模型的有效傳播率

本文將建立的考慮攻擊相關性的蠕蟲傳播模型在無標度網絡中進行仿真實驗。實驗目的是討論考慮攻擊相關性的感染概率對蠕蟲傳播過程的影響,具體分析了感染概率初始值、感染變化率以及傳播概率三個參數的作用。
仿真實驗是依托Matlab實驗平臺,構建的無標度網絡中節點總數N=1000,節點平均度
上文通過數學推導得出了有效傳播率λ*和傳播臨界值λc的計算公式,現利用仿真實驗來研究它們之間的關系。設定免疫概率δ1=0、δ2=1,感染變化率Δβ=0.1,通過改變傳播概率α、感染概率初始值β0來調節有效傳播率。實驗參數設置見表1,仿真實驗結果如圖2所示。

表1 有效傳播率和傳播臨界值的對比

圖2 參數值對傳播過程的影響
圖2(a)和(b)分別代表感染狀態節點數目I(t)和免疫狀態節點數目R(t)隨時間的變化情況。由表1可知,前兩組實驗的有效傳播率均小于傳播臨界值。圖2中這兩組的I(t)隨時間不斷減小,R(t)由0逐漸增加并最終穩定在初始感染狀態節點數目附近;表1中后三組實驗的有效傳播率均大于傳播臨界值,表明蠕蟲會在網絡中大范圍爆發。圖2中后三組實驗的I(t)出現了大幅度增加,到達峰值后又逐漸減少為0。R(t)隨t逐漸增加,后穩定于某值。通過以上分析,發現圖2的仿真結果和表1中的數值結果是一致的。因此,仿真實驗驗證了模型數值推導的正確性。
為研究考慮攻擊相關性前后感染概率對蠕蟲傳播過程的影響,將本文模型的實驗結果與文獻[14]的實驗結果進行比較分析。為保證兩個實驗的可比性,表2中對概率參數進行了相關設定。仿真實驗結果如圖3所示。

表2 模型參數設置
從圖3可以發現,本文STIR模型在考慮攻擊相關性情況下得出的蠕蟲感染規模整體上要高于文獻[14]的結果。在起初較短的時間內,兩組各狀態節點數目的變化情況幾乎相同。這表明蠕蟲傳播初期,感染概率的大小對傳播的影響很小。經過一定時間后,兩組的差異性開始顯現。相比于文獻[14],本文模型中蠕蟲傳播速度更快、傳播范圍更廣。這是因為在本文模型中節點的感染概率會隨其受到攻擊數目的增加而增大。感染概率的增大加快了感染狀態節點數目I(t)的增長速度。同時,網絡中I(t)的增多也會使節點受到蠕蟲攻擊的概率變大,威脅狀態節點數目T(t)變多。以上仿真結果與實際情況相一致。在網絡環境中,當單個節點受到多個攻擊行為時,該節點被感染的可能性更大。因此,在計算節點的感染概率時應該考慮攻擊相關性,否則將會低估蠕蟲在網絡中的傳播能力。

圖3 感染概率對蠕蟲傳播的影響
從圖3還可以看出,I(t)在到達峰值之后會呈現下降趨勢。這是因為此時節點由I狀態轉變為R狀態的數目大于由T狀態轉變為I狀態的數目。I(t)的下降速度是先增大后減小。在I(t)下降的初始階段,T(t)減小的速度比較快,這使得I(t)的下降速度加快;當T(t)下降到某一值時,T(t)對I(t)的影響會變得很小,此時I(t)的下降主要取決于I狀態轉變為R狀態的節點數目。免疫概率δ2=0.3固定不變,隨著I(t)逐漸減小,I(t)的下降速度變緩。
為研究感染概率初始值β0在不同取值情況下對蠕蟲傳播過程的影響,設計了三組對比實驗。其中,β0分別為0.4、0.6、0.8。傳播概率α=0.8,感染變化率Δβ=0.05,仿真實驗結果如圖4所示。

圖4 感染概率初始值對蠕蟲傳播的影響
從圖4可以看出,感染概率初始值β0越大,感染狀態節點數目I(t)在達到峰值前的增長速度越快,峰值越高。參數β0代表節點的初始脆弱性,它的值越大,表明初始狀態時節點的自身抵抗力越弱,漏洞匹配越高,因此節點被感染的概率越大,網絡中蠕蟲的傳播速度越快、傳播范圍越廣。根據上面的分析,在計算機網絡中可以通過提升節點主機的安全性來降低蠕蟲的傳播規模。因此,需要定期對主機進行漏洞修補和病毒查殺,提高其抵抗攻擊的能力。
為研究感染變化率對蠕蟲傳播過程的影響,將感染變化率β0設定為三個水平:0.01、0.05、0.1。實驗中傳播概率α=0.8,感染概率初始值β0=0.6。仿真結果如圖5所示。
由圖5可知,隨著Δβ的增加,網絡中感染狀態節點數目I(t)的增長速度變快,峰值變高。感染變化率Δβ的含義是節點的感染概率對蠕蟲攻擊數目變化的敏感性。當節點面臨多個攻擊行為時,感染變化率越大,表明該節點的感染概率對攻擊數目變化越敏感,因此節點被感染的可能性越大,網絡中感染節點的規模也就越大。根據實驗結果,網絡節點在得知存在蠕蟲病毒傳播后,需要及時斷開與感染狀態節點的連接,防范多威脅主體的聯合攻擊。

圖5 感染變化率對蠕蟲傳播的影響
設定感染概率初始值β0=0.6,感染變化率Δβ=0.05,研究傳播概率α對蠕蟲傳播過程的影響。其中,α分別取0.4、0.6、0.8,實驗結果見圖6。
從圖6可以看出,傳播概率α越大,網絡中威脅狀態節點數目T(t)的增長速度越快,峰值越高。感染狀態節點數目I(t)的變化規律和T(t)一致。傳播概率α可以理解為節點成功受到鄰居感染狀態節點攻擊的概率,其值越大,表明該節點受到攻擊威脅的可能性越大,從而導致節點被感染的概率增加。根據上述分析,網絡中的計算機需要加強對訪問控制和自我防護的管理。主機在交互前需要進行必要的入侵檢測。假若遭遇異常交互,應該及時采取措施進行阻攔。

圖6 傳播概率對蠕蟲傳播的影響
本文提出了一種考慮攻擊相關性的蠕蟲傳播模型-STIR。根據鄰居節點中處于感染狀態的節點數目,動態調整被攻擊節點的感染概率,并利用狀態轉移概率法描述蠕蟲的傳播過程,最后在無標度網絡中進行了仿真實驗。
結果表明:STIR蠕蟲傳播模型提高了感染概率計算的準確性,能夠更好地描述蠕蟲的傳播能力;模型中重要參數——蠕蟲的有效傳播率λ*由傳播概率α、感染概率初始值β0、感染變化率Δβ、免疫概率δ1、δ2以及網絡中節點的平均度