周枝凝 王斌君
(中國人民公安大學信息技術與網絡安全學院 北京 100038)
隨著無線網絡設備的普及,越來越多的設備加入到了無線自組織網絡,與此同時,這些設備的安全問題也受到人們越來越多的關注。由于無線自組織網絡缺乏集中管理、網絡拓撲動態變化等特征,其安全問題變得尤為復雜多變。近年來的研究表明,只需在自組織網絡中釋放一些簡單的病毒,例如帶有內存溢出攻擊的蠕蟲病毒,就可以破壞整個傳感器網絡[1]。計算機病毒能夠破壞計算機功能,或者損毀存儲的數據,影響計算機的正常使用。與生物病毒類似,計算機病毒還會進行自我復制,通過各種渠道傳播并感染其他計算機[2]。由于傳統計算機病毒傳播模型需要考慮網絡拓撲結構,并不適用于隨機的、動態的無線自組織網絡分析研究。例如,無線傳感器網絡往往部署在環境較為惡劣而人為干擾較少的原生態地區,這樣的部署具有開放性,但卻極易受到各種攻擊。此外,由于傳感器節點能源資源有限,且難以進行大規模計算[3],單依靠傳感器節點自身能力難以完成對攻擊的防御。在大多數情況下,這些攻擊就會像網絡病毒一樣不可避免地在無線傳感器網絡中傳播開來[4-5]。
為了研究自組織網絡中的病毒傳播模型,本文以無線傳感器網絡為例,在SIR與SIS模型[6]的基礎上提出了一種改良的病毒傳播模型。該模型引入了針對傳感器節點傳輸窗口開放情況,以及傳感器網絡鏈路狀況的描述,并結合Tang等[7]所提出的模型,提出了一種節點自我隔離的病毒抑制機制。當傳感器網絡擁有一定的計算能力時,傳感器節點可以發現自己被病毒感染,于是強制關閉自己的發送窗口,從而降低病毒在網絡中的傳播速度。
在經典的流行病傳播模型中,人們將計算機感染病毒的過程類比為生物感染傳染病的過程,對節點狀態的描述通常分為:易感染狀態S(Susceptible)、被感染狀態I(Infected)和免疫狀態R(Recovered)。與之相關的經典模型有SI模型、SIR模型和SIS模型,此外還有衍生出的SIRS模型、SEIR模型、MSIR模型和SEIRS模型等[6]。
在流行病傳播模型中,SI模型是最基礎的。圖1所示為SI模型的狀態轉換圖,易感染狀態的節點在單位時間內以一定概率β被感染,節點狀態轉變為被感染狀態。在該模型中,已經被感染的節點將會一直保持自己的狀態,即不存在被治愈的可能性。

圖1 SI模型狀態轉換圖
SIS模型用來描述真實情況下,個體通過藥物或者自身免疫能力在被感染后主動治愈的過程。然而,治愈后的個體并不是永久性免疫的,存在反復治愈再感染的情況。圖2所示為SIS模型的狀態轉換圖:易感染狀態的節點在單位時間內以一定概率β被感染,節點狀態轉變為被感染狀態;與此同時,被感染狀態的節點也會以一定概率δ得到治愈,節點狀態轉變為易感染狀態。

圖2 SIS模型狀態轉換圖
在SIR模型中,個體能夠通過某種途徑獲得永久的免疫能力,即不能再次被病毒感染,且獲得免疫后不會再傳播病毒。圖3所示為SIR模型的狀態轉換圖:易感染狀態的節點在單位時間內以一定概率β被感染,節點狀態轉變為被感染狀態;與此同時,處于被感染狀態的節點也會以一定概率δ被永久性治愈,即獲得病毒的免疫能力,節點狀態轉變為免疫狀態。

圖3 SIR模型狀態轉換圖
基于傳統的流行病學模型,Feng等[8]提出了一種基于無線傳感器網絡的SIRS模型,對蠕蟲病毒的繁殖率進行了穩定性分析,從而預測病毒是否還存活,在仿真實驗中,將模型設置在一個方形邊界內。與之類似的模型有SIRD模型[9],其考慮了傳感器網絡中能量對傳染率的影響,但是它仍是一個純粹的流行病模型,依賴于經典的微分方程而不受到幾何約束的影響,其實驗結果更類似于純粹的流行病學模型。
由于在傳感器網絡中,傳感器終端節點的能源供給有限,通常會考慮將傳感器節點置于休眠模式,以達到省電的目的。De等[10]首先提出了用來估計蠕蟲病毒在均勻傳感器網絡中的傳播速率的模型,并將有限的幾何特征融入其中;此后,Tang等[11]對此模型進行了改動,提出利用傳感器節點的睡眠周期,來完成執行對抗病毒的節點維護工作。在上述改進模型中,傳感器節點會在活躍模式和休眠模式之間切換,反病毒的機制則會在節點被感染且處于休眠模式的情況下自動觸發。
在此定義下,處于休眠模式的易感染狀態傳感器節點首先需要進入活躍模式才能被病毒感染。而對于被感染狀態的傳感器節點,由于有部分傳感器節點會進入休眠狀態,傳感器節點無法向外傳播,病毒在傳感器網絡中的傳播將會受到抑制。表1展示了文獻[11]模型中各個狀態的定義。

表1 文獻[11]模型中節點狀態的含義
圖4所示為文獻[11]模型的狀態轉換圖,其中:λa表示傳感器節點由活躍模式轉換為休眠模式的概率,λs表示傳感器節點由休眠模式轉換為活躍模式的概率,ρ表示為休眠模式的被感染狀態節點被治愈的概率。

圖4 文獻[11]模型的狀態轉換圖
相比于文獻[10]模型,上述模型在一定程度上解決了病毒修補的問題,此外文獻[7]還建議在傳感器節點處于關閉通信狀態時,對節點進行病毒清理工作(如清除內存數據)。本文將該模型描述為經典的SIS流行病模型,并在后面的對比實驗中進行分析。
另一方面,Khayam等[12-13]提出了一種基于信號處理技術的拓撲感知蠕蟲傳播模型,將物理信道條件對傳感器網絡中蠕蟲傳播的影響添加到了模型的參數中,并將這些參數納入流行病模型中。雖然該模型給出了一個有效的解決方案來計算網絡中被感染的部分,但是其所做的結構化網格拓撲的假設與真正的傳感器網絡相差甚遠。
針對前人工作在模型與模型仿真不符合傳感器網絡特點方面的問題,本文將借鑒復雜網絡中對數據傳播問題的描述,同時融合無線傳感器網絡的特征,嘗試提出一種更符合實際情況的病毒傳播模型。
無線通信網絡的功能和性能是決定無線傳感器網絡的關鍵因素,因此在改良無線傳感器網絡病毒傳播模型的過程中,考慮構造一個更符合實際情況的傳播模型尤為重要。新模型的改進主要包括以下四點:
1) 引入參數open(i,t)和spr(i,t)描述無線傳感器網絡中傳感器節點的通信窗口開放情況。這里使用open(i,t)來描述傳感器節點i在t時刻的接收窗口是否開放,使用spr(i,t)來描述傳感器節點i在t時刻的發送窗口是否開放。這一改進可以描述傳感器節點的節能機制,例如傳感器的周期性休眠等。
2) 使用矩陣描述無線傳感器網絡中的鏈路狀況。假設傳感器網絡節點數目為N,使用大小為N×N的矩陣η來描述網絡鏈路狀態:
(1)
式中:矩陣元素ηij表示信息為傳感器節點i成功送達到節點j的概率。
3) 被感染的傳感器節點若檢測到自身被感染,將強制關閉發送窗口。本文改進模型中包含了一種針對病毒的防御機制。當傳感器節點被感染且發送窗口打開時,針對病毒的防御機制被觸發,這套機制將檢查傳感器節點是否被病毒感染。若監測到自身被病毒感染,節點的防御機制將強制關閉發送窗口。由于節點能否成功進行防御,與節點本身能力和病毒的強弱有關,因此本文假設節點成功實現防御機制的概率為α。
4) 使用病毒補丁包完成傳感器網絡對病毒的免疫。在無線傳感器網絡中,病毒通常利用傳感器節點資源有限這一特征進行破壞。針對這類病毒,人們通常使用給傳感器節點打補丁包的方式完成免疫病毒的工作。新的模型也使用了打補丁包的方式來描述節點免疫病毒的過程,模型將獲得補丁包并產生免疫能力的節點狀態分為ins和act兩類。ins狀態表示傳感器節點位于補丁包擴散的范圍內,但是由于其傳播窗口未打開,無法有效地將補丁包數據傳播出去;act狀態表示傳感器節點傳播窗口已打開,正在活躍地向外傳播補丁包數據。
綜上四種針對無線傳感器網絡中病毒傳播模型的改進描述,模型將節點的狀態歸為5類,其中iso狀態和com狀態為被感染狀態,ins狀態與rco狀態為免疫狀態,各節點狀態具體含義描述如表2所示。

表2 改良模型中節點狀態的含義
圖5為節點的狀態轉換圖。其中感染病毒的傳感器節點只有在發送窗口打開的情況下,即Xj(t)=com,才會將病毒由當前傳感器節點傳向其鄰居節點。而其鄰居傳播節點是否會受到該病毒的影響,即感染上病毒,還取決于網絡鏈路的狀況ηji、接收節點的接收窗口是否打開(open(i,t)=1或0),以及病毒的毒性(β)。

圖5 改良模型的狀態轉換圖
如上所述,節點i在時刻t的病毒感染概率可描述為:
open(i,t)×β
(2)
同理,假設只有已經打好補丁包且發送窗口打開的傳感器節點,即節點狀態為act時,與該傳感器節點相鄰的節點才有可能收到補丁包數據。節點恢復的概率可描述如下:
open(i,t)×ρ
(3)
式中:ρ表示補丁包對病毒的免疫能力;open(i,t)表示t時刻節點i打開并閱讀了收到的信息;Ni是包含節點i所有鄰居的集合;ηji表示信息由節點j傳給節點i的概率;Xj(t)=act和Xj(t)=con是節點j在t時刻的狀態。
為了使所有實驗數據統一,在沒有特殊說明的情況下,對比實驗中將假設傳感器節點的密度為每平方米0.15,通信距離為5 m,傳感器節點隨機分布于大小為200 m×100 m的矩形內。
在無線傳感器網絡中,傳感器節點必須在不更換電池的情況下運行數年才能最大限度地減少成本。對于不同應用系統的傳感器網絡,如何減少傳感器節點工作時的能量消耗,如何為傳感器器節點有效地存儲能量,如何更準確有效地制定休眠計劃等,都是在設計網絡時需要重點關注的問題。隨著硬件技術的發展,傳感器節點也有了更好的計算和存儲功能,能獨立完成一些額外簡單的計算工作。
例如,可以通過構建系統軟件來最大限度地減少完全喚醒周期的次數,以實現進一步的電源優化。這種設計通常分為響應式和周期式兩大類。響應式工作方式可將系統置于待機狀態,等待某些活動或事件發生,然后才啟動處理,最后再返回深度休眠狀態;周期式系統則在固定間隔之后喚醒,并且進行測量,如果數據達到了需要引起注意的級別,系統會進行處理,并可能通過網絡轉發數據,然后重新進入休眠模式。
無論哪種設計,在傳感器節點能量優化方面,都更趨向于將節點的功能細化并進行定期判斷。因此可以推測,在信息傳遞方面,傳感器節點會更趨向于將接收功能與發送功能分開休眠,而非文獻[11]模型中將傳感器節點整體進行休眠。
在改良模型中,使用open(i,t)與spr(i,t)來分別描述接收與發送的功能。針對這兩個參數的分析如圖6、圖7和圖8所示。其中:Popen和Pspr分別表示實驗中接收窗口與發送窗口開放的比率。

圖6 不同接收窗口與發送窗口開放時間比率對比圖

圖7 不同發送窗口開放時間比率對比圖

圖8 不同接收窗口開放時間比率對比圖
可以看出,曲線斜率最大的總是窗口開發比率較高的情況,因此降低窗口開放的比率可以降低病毒在無線傳感器網絡中的傳播速率。此外,還可以發現,隨著窗口開放比率變高,曲線斜率的變化幅度較窗口開放比率低時有所下降。對比圖7與圖8,分別固定相同的接收窗口開發比率與發送窗口開放比率,可以發現單獨改變傳感器節點兩個窗口的開放概率相比之前而言對病毒傳播速度影響較小。
在無線傳感器網絡中,傳感器節點通常以自組織的方式組成數據傳輸的網絡。由于傳感器節點通常散布在無人為干預的監測環境中,傳感器網絡的穩定受到監測環境的影響。在不同的自然環境下,網絡的鏈路情況也不同。這里使用矩陣η∈RN×N來描述傳感器節點之間的鏈路狀況,即數據由節點i成功傳遞到節點j的概率。在實驗中,使用ηlow和ηhigh來表示鏈路中數據成功傳遞概率的取值范圍。
圖9是針對網絡鏈路情況的分析。可以看出,總體來說網絡鏈路情況較差的網絡會阻礙病毒在傳感器節點之間的傳播速度。然而病毒傳播的成功概率很大程度上與傳感器節點的窗口開放有關,由于每輪實驗中傳感器節點的窗口開放是隨機生成的,所以從圖9(a)與圖9(b)中可以看出,節點數目隨時間變化的曲線存在一定的隨機性。此外,由圖9(b)可見,改變鏈路情況的波動范圍對病毒傳播的影響并不大,但依然可以看出,較好的網絡鏈路中,病毒的傳播速度相較與其他情況更好。

(a) 波動的鏈路狀況

(b) 較穩定的鏈路狀況圖9 不同網絡鏈路狀況對比圖
隨著無線傳感器硬件技術的發展,終端傳感器節點的計算能力和存儲能力也在不斷提高。新模型提出了一種假設,認為傳感器節點通過某種方式,有能力在被病毒感染的情況下,對自身功能進行檢查,發現自己感染了病毒,并強制關閉自己的傳播窗口,使得病毒無法再傳播出去。這里,假設傳感器節點的每步狀態轉換需要一個單位的時間(Δt=1),所以在節點狀態為com與節點檢測到病毒感染完成傳播窗口關閉動作之間有一個單位的時間差。也就是說,即使存在這樣的病毒防御機制,病毒依舊會繼續向外傳播。有無該防御機制的對比圖如圖10所示。

圖10 病毒防御機制對比圖
可以看出,在有病毒防御機制的網絡中,病毒的傳播速度相比沒有防御機制的情況會低一些,但變化并不明顯。分析病毒在無線傳感器網絡中的傳播,可以發現實際的傳播過程中防御過程大多是發生在病毒傳播的內部節點中,而真正影響病毒傳播速率的是病毒傳播圈外圍的節點。更多的情況下,當傳感器節點發現自身感染上病毒時,已經完成了病毒向外傳播的過程。從空間上解釋,由于外圈的被感染節點通常處于活躍狀態,即正在準備著去感染其他節點,而被防御機制關閉窗口的傳感器節點通常位于靠內的空間位置,也就是說,在下一時刻來臨時,這一防御機制本應該更多影響到已經感染了病毒的節點,而不是未被感染的節點,但實際情況正好相反。因此,受到此防御機制優化的節點中只有這一小部分為被感染的節點。
為了驗證改良模型能夠一定程度上抑制病毒的傳播過程,這里對比了三種模型的病毒傳播曲線[14]。為了使實驗更有對比性,這里將三種模型的病毒感染概率參數都設置為0.5,即β=0.5,其中Tang等[11]提出的模型將節點的休眠情況描述為λa=λb=0.5,病毒的自愈概率設置為0,即ρ=0。針對病毒傳播情況分析的實驗結果如圖11所示。

圖11 改良模型與傳統模型的對比圖
可以看出,本文模型的病毒的傳播速度明顯要低于其他兩種模型。證明在病毒傳播過程中,本文模型能夠更豐富地模擬實際環境對病毒傳播過程的影響,同時在同等條件下,可以降低病毒傳播的速度。
本文在原有病毒傳播模型的基礎上,添加了描述傳感器節點傳播窗口及網絡鏈路狀況的參數,以更貼切地描述病毒在傳感器網絡中的傳播過程。本文模型還給出了一種抑制病毒傳播自我隔離的方法,并引入對傳感器節點打補丁包的思想來描述網絡的免疫過程;針對該方法,分析了傳感器網絡中病毒傳播的過程。
在研究病毒傳播的過程中發現,位于傳播過程最后一跳的節點是病毒傳播速率的重要影響節點。在該模型中強制關閉發送窗口可以抑制病毒傳播,但是對整體病毒傳播的速率影響不明顯。此外,考慮到傳感器節點自身免疫能力有限,探究如何放置補丁包以增強病毒免疫的效果也是值得關注的問題。