馬親民,王曉春,戴光智
(1.華中師范大學,湖北 武漢 430079;2.深圳職業技術學院,廣東深圳 518055)
無線傳感器網絡(wireless sensor networks,WSNs)借助于節點中內置的形式多樣的傳感器測量所在周邊環境中的熱、紅外、聲納、雷達和地震波等信號,從而探測包括溫度、濕度、噪聲、光強度、壓力、土壤成分、移動物體的大小、速度和方向等眾多的物質現象[1]。也正由于WSNs自身的特點:節點分布隨意,拓撲結構變化快,節點能量、體積、計算能力受限等,造成了它極容易受到各種形式的攻擊。
按照安全需求,這些攻擊可以分成如下幾類[2]:
1)針對加密與認證的攻擊:這類攻擊有竊聽、數據包重傳、數據包篡改和欺騙等,標準的加密方式就能保證通信信道的安全和認證,從而防止諸如此類的攻擊。
2)針對網絡可見性的攻擊:這類攻擊常常就是指DoS攻擊,它可以針對傳感器網絡的任何一層進行攻擊。
3)對服務完整性的秘密攻擊:攻擊者的目標是讓網絡接收錯誤的數據。例如:攻擊者劫持了一個節點,從而可以通過它向網絡上注入錯誤的數據。
這種日益凸顯的弱點,已經成為阻礙WSNs應用發展的主要障礙。本文結合WSNs的特點,系統地分析了WSNs物理層、數據鏈路層、網絡層、傳輸層容易受到的各類攻擊:物理層受到的電波干擾攻擊,鏈路層的數據碰撞攻擊并由此引發的能量衰竭,網絡層中針對路由的攻擊如偽造篡改地址、重發路由、蟲洞攻擊、Sinkhole攻擊等,傳輸層的泛洪攻擊。本文在分析這些攻擊的機制的基礎上,給出了目前針對這些攻擊的一些有效的對策。
WSNs的物理層負責信道的選擇、載波的產生、信號的探測、調制、數據加密等。由于涉及到無線波媒介,無線傳感器網絡一定可能存在著電波干擾。而且,節點很有可能被安置在惡劣的、不安全的環境中,這樣極易被攻擊者物理接觸,這就是物理層面臨的2種最有可能的攻擊。
直接對網絡節點使用的無線頻率進行干擾就是電波干擾[3]。這種干擾源如果功率很大,足可以破壞整個網絡的通信,即使功率很小,只能影響網絡的很小一部分,但是很多這種小功率的干擾源被隨機地分布在網絡中,也可以阻礙整個網絡的通信。
采用各種形式的擴頻技術就可以有效地應對這種攻擊,尤其以跳頻最為有效,但是擴頻技術的使用為設計帶來更大的復雜度,同時在使用過程中勢必帶來更多的能耗。但是以廉價、低功耗為目標的WSNs,往往采用單一頻率進行通信,因而極易成為此類攻擊的犧牲品。其次,也可以采用低占空比的方式運行,網絡中的節點絕大部分時間是在休眠的,這樣攻擊者持續的大功率的電波干擾將以大能耗為代價,很有可能還沒有破壞網絡,它自己就已經把能量耗盡[4]。
WSNs一般有成百上千個傳感節點,很難對每個節點進行監控和保護,因而,每個節點都是一個潛在的攻擊點,都能被攻擊者進行物理和邏輯攻擊。另外,傳感器通常部署在無人維護的環境當中,這更加方便了攻擊者捕獲傳感節點。當攻擊者截獲了某個節點,就可以提取出諸如加密密碼之類的敏感數據,進而,攻擊者可以篡改該節點甚至干脆換一個完全受其控制的傀儡節點[5]。
數據鏈路層負責多路數據流的復用、數據幀的檢測、媒介訪問控制、錯誤控制等,從而對提供點對點、點對多點提供可靠的通信。這一層的攻擊包括訪問沖突、資源耗竭、不公平等。
當2個節點在相同頻率同時進行數據發送的時候,就會發生碰撞,數據包就會出錯,導致接收端的校驗和不匹配,接收端于是把該這些無效的數據包丟棄。攻擊者可能有意通過產生一些諸如ACK控制消息之類的數據包碰撞,于是,在某些MAC協議中,將導致指數級的退避。
典型的抗碰撞的方法是采用糾錯碼(error-correcting codes,ECC)。大多數的糾錯碼都只能處理低級別的碰撞,比如:環境或概率誤差。而且,這種編碼方式會給節點帶來計算上和通信商的額外的開銷。一旦攻擊者破壞的數據數目超過這些編碼能夠糾正的數據,這些額外的開銷將變得徒勞。雖然有辦法去檢測這些惡意的碰撞,但是目前為止,尚無完備的對策[6]。
攻擊者使用持續的碰撞將導致節點能量很快枯竭。以一個簡單鏈路層協議實體為例,當它發現發送出去的數據包被破壞的時候,就會重傳,而這些重傳出來數據包又會與攻擊者的數據包發生碰撞,而作為接收端的附近節點會不斷去接收這些被破壞的數據,然后進行校驗,于是繼續重傳、碰撞,周而復始,直至自身和附近節點的能量儲備被耗盡為止,除非這種毫無希望的重傳被發現并且被阻止[7]。
一種可能的應對方案是對MAC的數據傳輸速率進行限制,這樣就鏈路層就可以忽略額外的數據發送請求,從而阻止由于持續的重傳導致的能量枯竭[8]。
另一種應對方案是采用時分復用技術,每個節點只能在自己的時隙中才能傳輸數據,這樣有序的安排可以免去對每幀數據進行判斷[9,10]。
攻擊者間隔地使用上述的鏈路層攻擊,將會導致網絡中的不公平,這也可以看做是一種弱型DoS攻擊。
網絡與路由層通常按照如下的原則進行設計:
1)因節點能量有限,因此,能效是要考慮的首要問題,所有的設計工作必須考慮能效;
2)網絡以數據為中心;
3)傳感器網絡是基于屬性進行尋址的(attribute-based addressing),不必像傳統網絡都有一個唯一的標識(ID)。
這一層的攻擊包含如下一些種類。
針對路由協議最直接的攻擊就是以正在節點間交換的路由信息為目標。攻擊者可能會捏造、篡改或者重傳路由信息,以破壞網絡中正常的通信,包括創建路由回環、引誘或排斥來自某些節點的數據、擴展或縮短網絡源路由、產生偽造錯誤信息、分割網絡、增加端對端的傳輸時延等[11]。
相應的對策是在發送的消息后面附加上一個消息驗證碼(message authentication code,MAC)。這樣接收端就會通過該MAC以確認數據是否在傳輸過程被改動過。通過向數據中加入計數器或者時間戳,可以應對重傳路由的問題。
在多跳網絡中,通常假設所有的節點都是準確無誤地轉發接收到的數據。于是攻擊者就會創建惡意節點,它們不是轉發所有的數據,而是選擇性轉發一些,其他的數據直接丟棄。黑洞攻擊就是這種形式的實例,因為該惡意節點把所有接收到的數據全部丟棄,沒有任何數據出來,猶如網絡中的黑洞一般。
一種應對措施是使用多種路徑來多次傳輸數據,這個顯然增大了通信量和能耗,但可以盡量避免數據經過這些惡意節點而被無端丟棄。另一種措施是檢測出存在的惡意節點,并視其為無效節點,或者尋找另外的路由避免數據經由惡意節點。
在Sinkhole攻擊中,攻擊者通過偽造路由信息,使得被劫持的節點在周圍節點看起來能夠提供非常好的路由。于是周圍的節點都選擇被劫持節點來轉發自己的數據包。因為網絡中的大面積范圍內的數據都將流向這個對手的節點,這種攻擊非常容易實現選擇性轉發。
Sybil攻擊是一個對WSNs非常有害的攻擊方式,Sybil攻擊就是指一個惡意的設備或節點違法地以多個身份出現,通常把這個設備或節點的這些多余的身份稱為Sybil設備或節點[12,13]。由于多個身份的出現,相關的協議和算法都會受到影響,如容錯機制、分布式存儲、網絡拓撲維持等。以分布式存儲為例,假設某算法是利用同樣一份數據在3個不同地方即節點存放拷貝的方式來取得一定級別的數據冗余,一旦當中有節點偽裝成為2個節點,算法就會錯誤地認為已經有足夠的冗余度了,可是事實卻絕非如此,于是埋下了隱藏的網絡漏洞。
蟲洞(wormhole)攻擊在2個惡意節點間建立一條隧道,攻擊者在隧道的一端記錄接收到的數據包,通過此隧道將數據包傳遞到隧道的另一端,然后再重放。對選擇最短路徑的路由協議來說,蟲洞將吸引較大的網絡流量。因為在一般情況下,隧道的長度大于一跳距離,但在路由上卻表現為一跳距離,這樣,節點在選擇路由時肯定傾向于蟲洞所在的路徑。更重要的是,蟲洞攻擊如果成功,攻擊者就能夠以此進行更多的攻擊。例如:攻擊者可以主動丟包或者改變數據包內容。
對于蟲洞攻擊,目前已經提出了一些檢測和防御的方法,其中最常用的就是包束縛,就是在每個數據包中添加束縛信息以限定包的傳輸距離。束縛信息有2種:一種是地理束縛,發送方將其位置信息和發送時間添加到包中,接收方根據自身位置和接收時間估算出發送方到接收方的最大距離,如果估算出的最大距離超過單跳傳輸距離,則丟棄該數據包;另一種是時間束縛,這種方法假設無線電信號的最大傳輸速率等于光速,因此,數據包的生存期可以使用最大傳輸距離和光速計算得到。發送方將包的生存期加入到包中,接收方根據接收時間檢查包是否超時。
很多的路由協議,都通過HEELO報文來確定鄰居關系:當一個節點能收到HELLO報文的時候,就認為該報文源節點在自己的無線電波范圍以內,即是自己的鄰居節點。攻擊者就會使用一個大功率的發送器的惡意節點去發送HELLO報文,使得一個很大范圍內的節點都誤以為這個惡意節點是自己的鄰居。
WSNs中的路由協議大都要求使用確認機制。攻擊節點就會在竊聽到發往別處的數據包后,發出欺騙的確認消息,從而造成源節點對網絡的誤讀。例如:節點(由于某種原因)已經失效,應該沒有回應,也就沒有確認消息,可是確認的消息會讓源節點誤認為該節點依然工作正常。
傳輸層負責管理端對端的連接,這一層的主要攻擊有:泛洪(flooding)和去同步(desynchronization)。
只要傳輸層的協議需要在連接的兩端維持狀態,那么,該協議就容易受到泛洪攻擊而導致內存耗盡。攻擊者通過不斷地連接請求,不斷地消耗接收端節點的內存和增加連接數,最終將使其內存耗盡或者使得其到達最大允許連接數。于是,后來的合法連接請求也會被忽略[14]。
一種應對措施是,對每個建立的連接進行限制,從而降低連續發起無用連接請求的速度,自然也就不會耗盡節點的資源。
去同步實際就是破壞已經建立好的連接。當某節點正在等待數據時,攻擊者故意發出一些虛假數據給它,該節點收到后發現數據有錯,會誤認為數據傳輸過程中發生錯誤,一方面會去糾錯,另一方面可能要求源節點重發該數據。如果這種攻擊的時機切入很好的話,很可疑就會降低甚至會完全阻止已經建立好連接的端對端的數據傳輸,因為這些節點會消耗寶貴的能量試圖去糾正原本不存在的錯誤[15]。
最好的應對措施就是要求端對端的所有數據包都要求進行驗證,這樣可以避免那些虛假的、捏造的數據傳輸。很顯然,這種應對措施是用復雜的計算和能量消耗換來的。
本文采用分層模式將WSNs各層所面臨的安全威脅和可能受到的攻擊進行了分析,并且根據發生的原理,給了相應的對策。WSNs以其低功耗、低復雜度、低成本等優點越來越多的被用在各個監控領域,但是也是這些特點導致了WSNs很容易受到各種各樣的擊,如物理層的電磁波干擾將直接導致信息無法正常傳輸,在數據鏈路層的由于數據包碰撞將會導致節點不斷重發數據導致能量的快速衰竭,在網絡層面臨的更多的各種欺騙導致網絡結構的混亂,在傳輸層的洪水攻擊也會最終使得節點的能夠耗盡。所有這些種種攻擊在設計網絡的時候就要多加分析,加以防范,才能使得WSNs更加健壯。
[1]任豐原,黃海寧,林 闖.無線傳感器網絡[J].軟件學報,2003,14(7):1282 -1291.
[2]Akyildiz I F,Su W,Sankarasubramaniam Y,et al.Wireless sensor networks:A survey[J].Computer Networks,Elsevier Science,2002,38(4):393 -422.
[3]朱政堅,譚慶平.無線傳感器網絡安全研究綜述[J].計算機工程與科學,2008,30(4):101 -105.
[4]Mpitziopoulos A,Gavalas D,Konstantopoulos C,et al.A survey on jamming attacks and countermeasures in WSNs[J].Communications Surveys& Tutorials,IEEE,2009,11(4):42 -56.
[5]Wang Yong,Garhan A,Byrav R.A survey of security issues in wireless sensor networks[J].Communications Surveys & Tutorials,IEEE,2006,8(2):2 -23.
[6]Xiao Yang,Chen Hsiao-hwa ,Sun Bo,et al.MAC security and security overhead analysis in the IEEE 802.15.4 wireless sensor networks[J].EURASIP Journal on Wireless Communications and Networking,2006(2):1 -12.
[7]Wood A D,Stankovic J A.Denial of service in sensor networks[J].IEEE Computer,2002(8):54 -62.
[8]Aymond R D R,Midkiff S F.Denial of service in wireless sensor networks:Attacks and defences[J].IEEE Security and Privacy,2008,7(1):74 -81.
[9]Pelechrinis M I K,Krishnamurthy S V.Denial of service attacks in wireless networks:The case of jammers[J].IEEE Communications Surveys& Tutorials,2011(2):1 -13.
[10]廖傳書,韓 屏.無線傳感網絡的沖突感知MAC協議研究[J].計算機應用,2007(7):1572-1575.
[11]Karlof C,Wagner D.Secure routing in wireless sensor networks:Attacks and countermeasures[J].Ad Hoc Networks,2003,1(2-3):293-315.
[12]余 群,張建明.無線傳感器網絡中的Sybil攻擊檢測.[J].計算機應用,2006(12):2897-2902.
[13]Ssu K F,Wang W T.Detecting sybil attacks in wireless sensor networks using neighboring information[J].Computer Networks,2009,53(18):3042 -3056.
[14]Marsh D W,Baldwin R O.A security policy language for wireless sensor networks[J].Journal of Systems and Software,2009,82(1):101-111.
[15]Shon T,Koo B,Choi Hyohyun,et al.Security architecture for IEEE 802.15.4-based wireless sensor networks[C]//Proceedings of the 4th International Conference on Wireless Pervasive Computing,2009:294 -298.