針對物聯網路由協議的Spam DIS攻擊
Abstract
低功耗有損網絡(LLN)由一組在通信、計算、內存和能源方面受資源限制的節點組成,在實現無處不在的計算和通信范例中起著至關重要的作用。為了提供有效和可靠的通信,并使資源受限的節點集成到互聯網中,已經提出了一種用于LLN的新穎路由協議,稱為RPL。
但是由于固有的資源限制、缺乏防篡改功能和路由協議的安全性,使用RPL運行的LLN容易受到各種拒絕服務(DoS)攻擊。在本文中提出并研究了一種基于RPL的LLN的新型DoS攻擊,稱為Spam DIS攻擊。在Spam DIS攻擊中,惡意節點多播具有不同虛擬身份的DODAG信息請求(DIS,DODAG Information Solicitation)消息,導致合法節點重新啟動Trickle算法并廣播過多的DODAG信息對象(DIO,DODAG Information Object)消息,從而耗盡了合法節點的能源資源,最終使合法節點遭受拒絕服務的困擾。進行了廣泛的模擬實驗以評估Spam DIS攻擊的性能,并與原始RPL進行比較。仿真結果表明Spam DIS攻擊是一種非常嚴重的DoS攻擊。
Introduction
從簡單的傳感器節點到復雜的家用電器和智能電話,具有通信和計算能力的智能設備或對象遍布我們周圍,這導致了無處不在的計算和物聯網的興起。據預測到2020年底,用于IoT應用的無線連接設備的數量將增加到500億,到2020年全球在IoT上的支出也將增加到1.7萬億美元。作為物聯網的主要構建模塊,由數以千計的嵌入式網絡設備組成的低功耗有損網絡(LLN)采用基于開放標準的基于IPv6的架構與較大的互聯網連接,從而為實現物聯網應用程序鋪平了道路。
隨著向資源受限節點提供互聯網(IPv6)連接并通過有損無線鏈路有效構建可靠路由的需求不斷增長, 互聯網工程專責小組(IETF)工作組提出了一種針對低功耗和有損網絡的新型路由協議,稱為RPL,以為IP智能對象網絡提供有效和可靠的通信。例如,思科的基于智能網(CG-Mesh)的局域網(FAN)是基于IPv6架構設計的,該架構在PHY和MAC層使用IEEE 802.15.4形成LLN,并采用RPL提供端到端的服務。到每個智能計量端點的雙向通信。
但是,由于惡劣的部署環境和缺乏物理保護,攻擊者很容易捕獲、篡改或破壞節點。共享無線介質的開放性還可以使攻擊者充分監聽、重放、破壞或更改數據。另外,RPL最初并不是為考慮惡意攻擊的安全性而設計的,而安全性機制是可選的,因為它會極大地影響資源受限設備的性能。因此,基于RPL的LLN容易受到各種主要針對服務可用性的拒絕服務(DoS)攻擊。
在本文中提出了基于RPL的LLN中的一種新型的拒絕服務攻擊,稱為Spam DIS攻擊。惡意節點會通過大量具有不同虛擬身份的DIS消息來導致合法節點重新啟動Trickle算法并廣播過多的DIO消息,這是構建路由拓撲所必需的RPL消息。這消耗了合法節點的能量資源,并最終導致合法節點無法通信并遭受拒絕服務。
Spam DIS攻擊主要通過違反隱含假設(即,當所有合法節點在收到沒有請求的信息選項或請求的信息的DIS消息時,毫不猶豫地信任所有廣播的DIO消息)來針對RPL中DIO傳輸機制的漏洞。
RPL Routing Protocol
RPL是一種距離矢量和源路由協議,旨在在IEEE 802.15.4 PHY和MAC層上運行,它代表了一種針對計算和帶寬非常有限的低功耗和有損網絡的特定路由解決方案,極易遭受數據包丟失。為了維護網絡狀態信息,RPL將節點組織為一個或多個面向目的地的有向無環圖(DODAG),其中DODAG由RPL實例ID,DODAG ID和DODAG版本號來區分。每個DODAG都與一組普通節點和一個DODAG根相關聯,其中提供到Internet的默認路由的節點充當DODAG根(即網關),而普通節點負責生成數據流量并將其轉發到DODAG根。

另外,RPL消息被指定為一種新的ICMPv6控制消息類型,它由六個字段組成:類型,代碼,校驗和,安全性以及包括消息庫和許多選項的消息正文。這里,控制消息的結構如上圖所示,其中“代碼”字段標識了四種類型的控制消息:DODAG信息對象(DIO),DODAG信息請求(DIS),DODAG目的地廣播對象(DAO)和DODAG目的地廣播對象確認(DAO-Ack)。
DIO消息由DODAG根發出,以構造新的DODAG并建立從其他節點到DODAG根的向上路由。DIO消息包含DODAG根的ID,DODAG根的等級以及描述路由度量和約束的目標功能。DIO消息的附帶網絡信息允許節點發現RPL實例、學習其配置參數、構建其父列表和維護DODAG。任何收到DIO消息并愿意加入DODAG的節點都應將DIO消息發送方添加到其父列表,根據目標函數計算其自身的等級,然后將DIO消息與更新的等級信息一起傳遞。
此處,等級用于表示節點相對于DODAG根相對于其他節點的位置。在DODAG中,層次結構頂部的節點比底部的節點獲得的等級要小,并且最小的等級被分配給DODAG根。將父列表中所有節點中排名最小的節點選為首選父節點。構造DODAG之后,每個節點都可以通過選擇其最喜歡的父節點作為下一跳轉發節點,將數據轉發到DODAG根。
為了通過最小化冗余DIO消息并動態調整傳輸速率來減少能耗,DIO消息的發送由Trickle算法進行調節,該算法是一種密度感知的本地通信原語,具有基本的信息模型指導消息傳輸。更具體地,根據路由信息的穩定性動態地調整DIO消息的發送速率。如果從相鄰節點接收到的DIO消息中附帶的信息與當前存儲的路由信息一致,則降低發送速率。否則,當收到不一致的DIO消息時,發送速率會增加。

另外,來自希望加入網絡的新節點的DODAG信息請求(DIS)消息也將被視為不一致的路由信息。在Trickle算法中,如上圖所示,時間分為可變長度的周期。DIO消息的傳輸安排在每個周期的后半段的隨機時間tram中。直到tram,該節點都在無線信道上偵聽不一致的路由信息,例如來自新節點的DIS消息。在時間tram中,如果節點未收到DIS消息,則它廣播調度的DIO消息。然后,將下一個周期的長度加倍,直到達到最大長度。否則,當前周期被中斷并且調度的DIO消息的發送被終止,如它在圖的第4周期內發生的那樣,Trickle流算法再次從tmin開始。
為了建立從DODAG根到其他節點的下行路由,該節點需要發出DODAG目的廣播對象(DAO)控制消息,以傳播反向路由信息并記錄沿上行路由訪問的節點。在將DAO消息傳遞到DODAG根之后,在DODAG根和節點之間建立了一條完整的下行路由。最后,DODAG根將DODAG目標廣播對象確認(DAO-Ack)消息作為單播數據包回復到DAO消息的源作為響應。
如果新節點要加入現有網絡,則可以通過多播DODAG信息請求(DIS)控制消息從相鄰DODAG中的鄰居節點請求拓撲信息。當節點收到不帶“請求的信息”選項,或具有“請求的信息”選項且所有謂詞在“請求的信息”選項中匹配的DIS消息時,它將終止DIO消息的預定傳輸,并從一段時間開始重新啟動Trickle流算法,最小長度tmin。在這里,“請求的信息”選項用于節點從相鄰節點請求DIO消息。
選項可以指定要由接收節點匹配的多個謂詞標準,請求者使用它來限制答復的數量。但是DIS傳輸機制也可以被攻擊者利用來攻擊網絡。例如,惡意節點多播具有不同虛擬身份的大量DIS消息以破壞網絡協議并干擾正在進行的通信。
The Spam DIS Attack
Spam DIS攻擊的基本思想是,惡意節點多播具有不同虛擬身份的大量DODAG信息請求(DIS)消息,從而導致合法節點重新啟動Trickle算法并廣播過多的DODAG信息對象(DIO)消息,這會很快耗盡合法節點的能源,并最終導致合法節點無法通信,并遭受LLN中的服務拒絕。在本文中假設攻擊者能夠捕獲和破壞合法節點,獲得對包括公鑰和私鑰在內的所有存儲信息的訪問權,并將其重新編程為惡意行為。
此外,惡意節點可能會創建從其自己的MAC地址或隨機生成的偽造MAC地址派生的虛擬身份。由于MAC地址的大小恒定(例如48位),因此不能保證每個隨機生成的虛擬標識都與網絡中使用的所有實際MAC地址都不相同。但是,由于網絡的24位地址空間包含224個可能的MAC地址,因此生成與網絡中現有地址相同的偽造MAC地址的可能性極低,接近于零。因此隱式假設網絡中不存在隨機生成的虛擬身份,合法節點會將其視為新身份。
首先,發起Spam DIS攻擊的一種簡單方法是隨機生成一個虛擬身份,并將帶有虛擬身份的DIS消息多播到所有相鄰節點。當合法節點收到帶有新身份的DIS消息時,它假定一個新節點希望加入網絡,并通過DIS消息探測網絡配置和其他參數,這將被視為不一致的路由信息。因此,合法節點從最小周期tmin重新開始Trickle算法,然后在tmin的后半部分的隨機時間廣播附帶當前網絡信息的DIO消息。

通過上圖所示的示例說明Spam DIS攻擊,其中假設nm是一個惡意節點。nm將帶有隨機生成的虛擬身份的DIS消息多播到其所有鄰居節點ne,nf和ng。當鄰居節點(例如nf)從nm接收DIS消息時,它認為新節點希望加入網絡并請求當前網絡信息。因此,nf從tmin重新開始Trickle算法,然后在tmin的后半部分的任意時間將搭載當前網絡信息的DIO消息廣播到nm。
其次,如果惡意節點以一致的速率生成多個帶有不同虛擬身份的DIS消息,然后將它們組播到相鄰節點,則所有接收節點將從頭開始重復重新啟動Trickle算法,并廣播大量DIO消息。例如在下圖中,惡意節點nm生成并向節點nf多播具有不同身份的多個DIS消息。
然后,節點nf必須反復從tmin重新啟動其Trickle算法,然后廣播DIO消息,這導致nf縮短了連續DIO消息的時間間隔。結果,過多的接收到的DIS和廣播的DIO消息會大量消耗能量資源和通信帶寬,并最終導致合法節點nf耗盡其能量并遭受拒絕服務的困擾。

Performance Evalution
使用OMNeT ++ 進行了廣泛的模擬實驗,以評估Spam DIS攻擊對性能的影響。包含單個DODAG根的30個節點均勻分布在100×100平方米的網絡區域中。每個節點的通信范圍是30(m)。無線電模型以250 Kbps的正常數據速率模擬CC2420,并且802.15.4 MAC / PHY在2.4 GHz頻帶中以默認配置運行。數據包注入速率設置為0.1 pkt/s,以模擬低數據速率情況。一組惡意節點隨機位于網絡中。總仿真時間為5000秒,每個仿真場景重復5次以獲得穩態性能指標。
在本文中通過更改關鍵模擬參數(包括Spam DIS消息注入率(rdis)和惡意節點數(Nmal)),在能耗、節點壽命和生成的DIO消息數方面衡量性能。將Spam DIS攻擊與原始RPL(沒有攻擊者)的性能影響進行了比較。

首先,通過更改Spam DIS消息注入速率和Subfig中的惡意節點數量,根據接收和廣播的數據包數量來衡量能耗。如上圖左,總體而言,Spam DIS攻擊的能耗隨著Spam DIS注入速率的增加而增加。這是因為惡意節點可以生成更多的DIS數據包并將其多播到具有更高Spam DIS消息注入率的合法節點,合法節點將相應地答復大量DIO消息。換句話說,合法節點必須接收和廣播過多的控制分組。
因此,觀察到較大的能量消耗。隨著惡意節點數量的增加,能源消耗也顯著增加。由于網絡中存在更多惡意節點并廣播Spam DIS消息,因此合法節點必須分別接收和廣播更多DIS和DIO消息,最終導致更大的能耗。其次通過改變Subfig中惡意節點的數量來測量經過的模擬時間的能耗,如上圖右。
與攻擊者Spam DIS攻擊相比,沒有攻擊者的RPL能耗最低,這是因為DIO消息的發送速率是通過Trickle算法動態調整和調節的,從而通過最小化冗余DIO消息和更少的控制數據包來降低能耗被接收和廣播。因此,RPL在沒有攻擊者的情況下實現了最低的能耗。
隨著惡意節點數Nmal的增加,Spam DIS攻擊的能耗隨著模擬時間的增加而迅速增加。由于更多的惡意節點生成并廣播了更多的DIS消息以探測來自鄰居節點的DIO消息,因此合法節點會接收到更多的DIS消息,然后廣播過多的DIO消息,從而消耗更多的能量。
在Subfig中使用不同數量的惡意節點Nmal和Spam DIS消息注入率來測量節點壽命,結果如下圖左。在這里假設每個合法節點都裝有一個標準AA電池(400 mAh和1.5 V),并且當合法節點用完一半的電池能量(例如1080焦耳)時,它將停止并且無法進一步通信,而惡意節點沒有能量限制。

隨著Spam DIS注入速率的增加,整個節點的壽命會迅速減少。這是因為合法節點接收并廣播大量控制數據包,并且很快耗盡了存儲的能源。在惡意節點數Nmal = 3的情況下,隨著Spam DIS消息注入率的提高,節點的壽命從大約130天減少到28天。由于惡意節點生成的DIS消息數量較大,合法節點必須通過廣播更多DIO消息來進行響應,這會很快消耗有限的能量。
通過更改Subfig中的Spam DIS消息注入率rdis來確定生成的DIO消息的數量的結果如上圖右。在Spam DIS攻擊下,與沒有攻擊者的RPL相比生成了更多的DIO消息。這是因為惡意節點經常廣播DIS消息以探測來自合法節點的DIO消息。
隨著Spam DIS注入速率的增加,生成的DIO的數量將大大增加。另一方面,原始RPL在沒有攻擊者的情況下觀察到最少數量的DIO消息,因為采用了Trickle流算法來最小化冗余DIO消息以減少能耗。
Concluding Remarks
在本文中研究了Spam DIS攻擊,這是基于RPL的LLN中的一種新的嚴重拒絕服務攻擊。對其進行分析并將其與原始RPL進行比較。大量的仿真結果表明Spam DIS攻擊會顯著增加能耗并縮短節點壽命,從而導致拒絕服務。
作為未來的工作,計劃提出一種輕量級的對策,以減輕基于RPL的LLN中的Spam DIS攻擊。例如,沿著轉發路徑的每個中間節點可以維持閾值,以限制一個時間段內從同一節點接收消息的速率。如果接收到的消息數超過閾值,則所有其他消息將被拒絕。