馬親民,王曉春,戴光智
(1.華中師范大學,湖北 武漢 430079;2.深圳職業(yè)技術(shù)學院,廣東深圳 518055)
無線傳感器網(wǎng)絡(luò)(wireless sensor networks,WSNs)借助于節(jié)點中內(nèi)置的形式多樣的傳感器測量所在周邊環(huán)境中的熱、紅外、聲納、雷達和地震波等信號,從而探測包括溫度、濕度、噪聲、光強度、壓力、土壤成分、移動物體的大小、速度和方向等眾多的物質(zhì)現(xiàn)象[1]。也正由于WSNs自身的特點:節(jié)點分布隨意,拓撲結(jié)構(gòu)變化快,節(jié)點能量、體積、計算能力受限等,造成了它極容易受到各種形式的攻擊。
按照安全需求,這些攻擊可以分成如下幾類[2]:
1)針對加密與認證的攻擊:這類攻擊有竊聽、數(shù)據(jù)包重傳、數(shù)據(jù)包篡改和欺騙等,標準的加密方式就能保證通信信道的安全和認證,從而防止諸如此類的攻擊。
2)針對網(wǎng)絡(luò)可見性的攻擊:這類攻擊常常就是指DoS攻擊,它可以針對傳感器網(wǎng)絡(luò)的任何一層進行攻擊。
3)對服務(wù)完整性的秘密攻擊:攻擊者的目標是讓網(wǎng)絡(luò)接收錯誤的數(shù)據(jù)。例如:攻擊者劫持了一個節(jié)點,從而可以通過它向網(wǎng)絡(luò)上注入錯誤的數(shù)據(jù)。
這種日益凸顯的弱點,已經(jīng)成為阻礙WSNs應(yīng)用發(fā)展的主要障礙。本文結(jié)合WSNs的特點,系統(tǒng)地分析了WSNs物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層容易受到的各類攻擊:物理層受到的電波干擾攻擊,鏈路層的數(shù)據(jù)碰撞攻擊并由此引發(fā)的能量衰竭,網(wǎng)絡(luò)層中針對路由的攻擊如偽造篡改地址、重發(fā)路由、蟲洞攻擊、Sinkhole攻擊等,傳輸層的泛洪攻擊。本文在分析這些攻擊的機制的基礎(chǔ)上,給出了目前針對這些攻擊的一些有效的對策。
WSNs的物理層負責信道的選擇、載波的產(chǎn)生、信號的探測、調(diào)制、數(shù)據(jù)加密等。由于涉及到無線波媒介,無線傳感器網(wǎng)絡(luò)一定可能存在著電波干擾。而且,節(jié)點很有可能被安置在惡劣的、不安全的環(huán)境中,這樣極易被攻擊者物理接觸,這就是物理層面臨的2種最有可能的攻擊。
直接對網(wǎng)絡(luò)節(jié)點使用的無線頻率進行干擾就是電波干擾[3]。這種干擾源如果功率很大,足可以破壞整個網(wǎng)絡(luò)的通信,即使功率很小,只能影響網(wǎng)絡(luò)的很小一部分,但是很多這種小功率的干擾源被隨機地分布在網(wǎng)絡(luò)中,也可以阻礙整個網(wǎng)絡(luò)的通信。
采用各種形式的擴頻技術(shù)就可以有效地應(yīng)對這種攻擊,尤其以跳頻最為有效,但是擴頻技術(shù)的使用為設(shè)計帶來更大的復雜度,同時在使用過程中勢必帶來更多的能耗。但是以廉價、低功耗為目標的WSNs,往往采用單一頻率進行通信,因而極易成為此類攻擊的犧牲品。其次,也可以采用低占空比的方式運行,網(wǎng)絡(luò)中的節(jié)點絕大部分時間是在休眠的,這樣攻擊者持續(xù)的大功率的電波干擾將以大能耗為代價,很有可能還沒有破壞網(wǎng)絡(luò),它自己就已經(jīng)把能量耗盡[4]。
WSNs一般有成百上千個傳感節(jié)點,很難對每個節(jié)點進行監(jiān)控和保護,因而,每個節(jié)點都是一個潛在的攻擊點,都能被攻擊者進行物理和邏輯攻擊。另外,傳感器通常部署在無人維護的環(huán)境當中,這更加方便了攻擊者捕獲傳感節(jié)點。當攻擊者截獲了某個節(jié)點,就可以提取出諸如加密密碼之類的敏感數(shù)據(jù),進而,攻擊者可以篡改該節(jié)點甚至干脆換一個完全受其控制的傀儡節(jié)點[5]。
數(shù)據(jù)鏈路層負責多路數(shù)據(jù)流的復用、數(shù)據(jù)幀的檢測、媒介訪問控制、錯誤控制等,從而對提供點對點、點對多點提供可靠的通信。這一層的攻擊包括訪問沖突、資源耗竭、不公平等。
當2個節(jié)點在相同頻率同時進行數(shù)據(jù)發(fā)送的時候,就會發(fā)生碰撞,數(shù)據(jù)包就會出錯,導致接收端的校驗和不匹配,接收端于是把該這些無效的數(shù)據(jù)包丟棄。攻擊者可能有意通過產(chǎn)生一些諸如ACK控制消息之類的數(shù)據(jù)包碰撞,于是,在某些MAC協(xié)議中,將導致指數(shù)級的退避。
典型的抗碰撞的方法是采用糾錯碼(error-correcting codes,ECC)。大多數(shù)的糾錯碼都只能處理低級別的碰撞,比如:環(huán)境或概率誤差。而且,這種編碼方式會給節(jié)點帶來計算上和通信商的額外的開銷。一旦攻擊者破壞的數(shù)據(jù)數(shù)目超過這些編碼能夠糾正的數(shù)據(jù),這些額外的開銷將變得徒勞。雖然有辦法去檢測這些惡意的碰撞,但是目前為止,尚無完備的對策[6]。
攻擊者使用持續(xù)的碰撞將導致節(jié)點能量很快枯竭。以一個簡單鏈路層協(xié)議實體為例,當它發(fā)現(xiàn)發(fā)送出去的數(shù)據(jù)包被破壞的時候,就會重傳,而這些重傳出來數(shù)據(jù)包又會與攻擊者的數(shù)據(jù)包發(fā)生碰撞,而作為接收端的附近節(jié)點會不斷去接收這些被破壞的數(shù)據(jù),然后進行校驗,于是繼續(xù)重傳、碰撞,周而復始,直至自身和附近節(jié)點的能量儲備被耗盡為止,除非這種毫無希望的重傳被發(fā)現(xiàn)并且被阻止[7]。
一種可能的應(yīng)對方案是對MAC的數(shù)據(jù)傳輸速率進行限制,這樣就鏈路層就可以忽略額外的數(shù)據(jù)發(fā)送請求,從而阻止由于持續(xù)的重傳導致的能量枯竭[8]。
另一種應(yīng)對方案是采用時分復用技術(shù),每個節(jié)點只能在自己的時隙中才能傳輸數(shù)據(jù),這樣有序的安排可以免去對每幀數(shù)據(jù)進行判斷[9,10]。
攻擊者間隔地使用上述的鏈路層攻擊,將會導致網(wǎng)絡(luò)中的不公平,這也可以看做是一種弱型DoS攻擊。
網(wǎng)絡(luò)與路由層通常按照如下的原則進行設(shè)計:
1)因節(jié)點能量有限,因此,能效是要考慮的首要問題,所有的設(shè)計工作必須考慮能效;
2)網(wǎng)絡(luò)以數(shù)據(jù)為中心;
3)傳感器網(wǎng)絡(luò)是基于屬性進行尋址的(attribute-based addressing),不必像傳統(tǒng)網(wǎng)絡(luò)都有一個唯一的標識(ID)。
這一層的攻擊包含如下一些種類。
針對路由協(xié)議最直接的攻擊就是以正在節(jié)點間交換的路由信息為目標。攻擊者可能會捏造、篡改或者重傳路由信息,以破壞網(wǎng)絡(luò)中正常的通信,包括創(chuàng)建路由回環(huán)、引誘或排斥來自某些節(jié)點的數(shù)據(jù)、擴展或縮短網(wǎng)絡(luò)源路由、產(chǎn)生偽造錯誤信息、分割網(wǎng)絡(luò)、增加端對端的傳輸時延等[11]。
相應(yīng)的對策是在發(fā)送的消息后面附加上一個消息驗證碼(message authentication code,MAC)。這樣接收端就會通過該MAC以確認數(shù)據(jù)是否在傳輸過程被改動過。通過向數(shù)據(jù)中加入計數(shù)器或者時間戳,可以應(yīng)對重傳路由的問題。
在多跳網(wǎng)絡(luò)中,通常假設(shè)所有的節(jié)點都是準確無誤地轉(zhuǎn)發(fā)接收到的數(shù)據(jù)。于是攻擊者就會創(chuàng)建惡意節(jié)點,它們不是轉(zhuǎn)發(fā)所有的數(shù)據(jù),而是選擇性轉(zhuǎn)發(fā)一些,其他的數(shù)據(jù)直接丟棄。黑洞攻擊就是這種形式的實例,因為該惡意節(jié)點把所有接收到的數(shù)據(jù)全部丟棄,沒有任何數(shù)據(jù)出來,猶如網(wǎng)絡(luò)中的黑洞一般。
一種應(yīng)對措施是使用多種路徑來多次傳輸數(shù)據(jù),這個顯然增大了通信量和能耗,但可以盡量避免數(shù)據(jù)經(jīng)過這些惡意節(jié)點而被無端丟棄。另一種措施是檢測出存在的惡意節(jié)點,并視其為無效節(jié)點,或者尋找另外的路由避免數(shù)據(jù)經(jīng)由惡意節(jié)點。
在Sinkhole攻擊中,攻擊者通過偽造路由信息,使得被劫持的節(jié)點在周圍節(jié)點看起來能夠提供非常好的路由。于是周圍的節(jié)點都選擇被劫持節(jié)點來轉(zhuǎn)發(fā)自己的數(shù)據(jù)包。因為網(wǎng)絡(luò)中的大面積范圍內(nèi)的數(shù)據(jù)都將流向這個對手的節(jié)點,這種攻擊非常容易實現(xiàn)選擇性轉(zhuǎn)發(fā)。
Sybil攻擊是一個對WSNs非常有害的攻擊方式,Sybil攻擊就是指一個惡意的設(shè)備或節(jié)點違法地以多個身份出現(xiàn),通常把這個設(shè)備或節(jié)點的這些多余的身份稱為Sybil設(shè)備或節(jié)點[12,13]。由于多個身份的出現(xiàn),相關(guān)的協(xié)議和算法都會受到影響,如容錯機制、分布式存儲、網(wǎng)絡(luò)拓撲維持等。以分布式存儲為例,假設(shè)某算法是利用同樣一份數(shù)據(jù)在3個不同地方即節(jié)點存放拷貝的方式來取得一定級別的數(shù)據(jù)冗余,一旦當中有節(jié)點偽裝成為2個節(jié)點,算法就會錯誤地認為已經(jīng)有足夠的冗余度了,可是事實卻絕非如此,于是埋下了隱藏的網(wǎng)絡(luò)漏洞。
蟲洞(wormhole)攻擊在2個惡意節(jié)點間建立一條隧道,攻擊者在隧道的一端記錄接收到的數(shù)據(jù)包,通過此隧道將數(shù)據(jù)包傳遞到隧道的另一端,然后再重放。對選擇最短路徑的路由協(xié)議來說,蟲洞將吸引較大的網(wǎng)絡(luò)流量。因為在一般情況下,隧道的長度大于一跳距離,但在路由上卻表現(xiàn)為一跳距離,這樣,節(jié)點在選擇路由時肯定傾向于蟲洞所在的路徑。更重要的是,蟲洞攻擊如果成功,攻擊者就能夠以此進行更多的攻擊。例如:攻擊者可以主動丟包或者改變數(shù)據(jù)包內(nèi)容。
對于蟲洞攻擊,目前已經(jīng)提出了一些檢測和防御的方法,其中最常用的就是包束縛,就是在每個數(shù)據(jù)包中添加束縛信息以限定包的傳輸距離。束縛信息有2種:一種是地理束縛,發(fā)送方將其位置信息和發(fā)送時間添加到包中,接收方根據(jù)自身位置和接收時間估算出發(fā)送方到接收方的最大距離,如果估算出的最大距離超過單跳傳輸距離,則丟棄該數(shù)據(jù)包;另一種是時間束縛,這種方法假設(shè)無線電信號的最大傳輸速率等于光速,因此,數(shù)據(jù)包的生存期可以使用最大傳輸距離和光速計算得到。發(fā)送方將包的生存期加入到包中,接收方根據(jù)接收時間檢查包是否超時。
很多的路由協(xié)議,都通過HEELO報文來確定鄰居關(guān)系:當一個節(jié)點能收到HELLO報文的時候,就認為該報文源節(jié)點在自己的無線電波范圍以內(nèi),即是自己的鄰居節(jié)點。攻擊者就會使用一個大功率的發(fā)送器的惡意節(jié)點去發(fā)送HELLO報文,使得一個很大范圍內(nèi)的節(jié)點都誤以為這個惡意節(jié)點是自己的鄰居。
WSNs中的路由協(xié)議大都要求使用確認機制。攻擊節(jié)點就會在竊聽到發(fā)往別處的數(shù)據(jù)包后,發(fā)出欺騙的確認消息,從而造成源節(jié)點對網(wǎng)絡(luò)的誤讀。例如:節(jié)點(由于某種原因)已經(jīng)失效,應(yīng)該沒有回應(yīng),也就沒有確認消息,可是確認的消息會讓源節(jié)點誤認為該節(jié)點依然工作正常。
傳輸層負責管理端對端的連接,這一層的主要攻擊有:泛洪(flooding)和去同步(desynchronization)。
只要傳輸層的協(xié)議需要在連接的兩端維持狀態(tài),那么,該協(xié)議就容易受到泛洪攻擊而導致內(nèi)存耗盡。攻擊者通過不斷地連接請求,不斷地消耗接收端節(jié)點的內(nèi)存和增加連接數(shù),最終將使其內(nèi)存耗盡或者使得其到達最大允許連接數(shù)。于是,后來的合法連接請求也會被忽略[14]。
一種應(yīng)對措施是,對每個建立的連接進行限制,從而降低連續(xù)發(fā)起無用連接請求的速度,自然也就不會耗盡節(jié)點的資源。
去同步實際就是破壞已經(jīng)建立好的連接。當某節(jié)點正在等待數(shù)據(jù)時,攻擊者故意發(fā)出一些虛假數(shù)據(jù)給它,該節(jié)點收到后發(fā)現(xiàn)數(shù)據(jù)有錯,會誤認為數(shù)據(jù)傳輸過程中發(fā)生錯誤,一方面會去糾錯,另一方面可能要求源節(jié)點重發(fā)該數(shù)據(jù)。如果這種攻擊的時機切入很好的話,很可疑就會降低甚至會完全阻止已經(jīng)建立好連接的端對端的數(shù)據(jù)傳輸,因為這些節(jié)點會消耗寶貴的能量試圖去糾正原本不存在的錯誤[15]。
最好的應(yīng)對措施就是要求端對端的所有數(shù)據(jù)包都要求進行驗證,這樣可以避免那些虛假的、捏造的數(shù)據(jù)傳輸。很顯然,這種應(yīng)對措施是用復雜的計算和能量消耗換來的。
本文采用分層模式將WSNs各層所面臨的安全威脅和可能受到的攻擊進行了分析,并且根據(jù)發(fā)生的原理,給了相應(yīng)的對策。WSNs以其低功耗、低復雜度、低成本等優(yōu)點越來越多的被用在各個監(jiān)控領(lǐng)域,但是也是這些特點導致了WSNs很容易受到各種各樣的擊,如物理層的電磁波干擾將直接導致信息無法正常傳輸,在數(shù)據(jù)鏈路層的由于數(shù)據(jù)包碰撞將會導致節(jié)點不斷重發(fā)數(shù)據(jù)導致能量的快速衰竭,在網(wǎng)絡(luò)層面臨的更多的各種欺騙導致網(wǎng)絡(luò)結(jié)構(gòu)的混亂,在傳輸層的洪水攻擊也會最終使得節(jié)點的能夠耗盡。所有這些種種攻擊在設(shè)計網(wǎng)絡(luò)的時候就要多加分析,加以防范,才能使得WSNs更加健壯。
[1]任豐原,黃海寧,林 闖.無線傳感器網(wǎng)絡(luò)[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]朱政堅,譚慶平.無線傳感器網(wǎng)絡(luò)安全研究綜述[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]廖傳書,韓 屏.無線傳感網(wǎng)絡(luò)的沖突感知MAC協(xié)議研究[J].計算機應(yīng)用,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]余 群,張建明.無線傳感器網(wǎng)絡(luò)中的Sybil攻擊檢測.[J].計算機應(yīng)用,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.