當前位置:
首頁 > 新聞 > M2M技術設計和實現漏洞

M2M技術設計和實現漏洞

文章《The Fragility of Industrial IoT』s Data Backbone: Security and Privacy Issues in MQTT and CoAP Protocols》中討論了MQTT和CoAP受到設計問題和實現漏洞的影響,攻擊者可以破壞啟用了M2M協議的設備。研究過程中,研究人員發現上萬台誤配置的主機存在暴露憑證、敏感信息等問題。

本文從技術角度去分析協議安全的問題。根據當前MQTT和CoAP的狀態,攻擊者可以實現監聽、遠程控制和發起攻擊等目標。

M2M通信的技術原理

Message Queuing Telemetry Transport (MQTT)是一個成熟的標準和發布/訂閱(Publish/Subscribe)協議,可以處理一對多通信。研究人員分析發現協議本身和軟體實現過程鍾都存在安全問題。而且MQTT是自動化和工業應用中被廣泛應用,這對M2M是非常關鍵的。

Constrained Application Protocol (CoAP)遵循客戶端-伺服器(C/S)模式,允許對受限的節點創建對等的HTTP。CoAP雖然也是一個比較新的協議,但也在IoT和IIoT軟體中被廣泛使用。研究人員發現的安全問題主要集中在UDP協議的無連接屬性上。雖然這些風險都在CoAP RFC中提到了,本文對CoAP服務的帶寬放大潛在威脅進行分析。

MQTT處理主題字元串的問題

MQTT標準在實現過程中有很多可能產生漏洞的問題。比如,topic字元串的Unicode處理。標準處理方法是將它留給開發者來關閉連接,如果代理沒有檢查不允許通過的UTF-8代碼點,惡意客戶端會利用這一差異來通過無效的編碼的字元串來關閉到客戶端的連接。

如果代理遵循標準,就不會出現這樣的問題。如果代理和客戶端都不遵循標準,就可以避免給問題。但是如果代理不遵循標準而客戶端遵循標準,客戶端在接收到無效的內容後,客戶端就會斷開連接。

圖 2. 惡意客戶端利用有效和無效節點之間的差異來保證節點離線

這種情況下,不遵循標準對客戶端來說是最好的方法。

如果代理不遵循標準,惡意客戶端就可以將retain message設置為true,QoS設置為2來保持所有的客戶端離線。客戶端會在接收到無效信息後會斷開連接,並不告知代理收到消息。這樣,代理結社客戶端不會接收到消息,並保持用相同的消息來進行洪泛攻擊。

攻擊者可以利用的漏洞

下面討論MQTT實現過程中的一些漏洞,以及CoAP放大攻擊的效應分析。

MQTT Payload Remaining Length (CVE-2018-17614)

該漏洞是MQTT庫中remaining length域的錯誤檢查導致的無限寫入(unbounded write-in)漏洞。攻擊者利用該漏洞可以在實現MQTT客戶端的設備上執行任意代碼。攻擊者必須控制偽造的MQTT代理,或代理必須沒有對remaining length域進行適當的檢查,就將MQTT包從發布者中繼轉發給訂閱者了。該漏洞會在MQTT PUBLISH包在分析路徑過程中被觸發,尤其是在讀取「remaining length」和「topic length」域的過程中。

而且攻擊者還可以觸發callback域的覆寫(overwrite),這會產生一個持續的DoS條件。如果代理是惡意的,所有有漏洞的節點都會處於持續的DoS狀態,或繼續執行攻擊者推送的任意代碼。

雖然該漏洞已經有補丁了,但是開發者並沒有以最好的方式來應用它。該漏洞的修復最終取決於開發者是否關閉該連接、或丟棄該包並保持連接。

CoAP: UDP IP地址欺騙和放大風險

圖 3. CoAP抽象層

CoAP是基於UDP的協議,因此就會收到IP Spoofing攻擊。與TCP協議不同,UDP協議沒有握手階段,也就是說如果攻擊者發送了一個源IP地址偽造的UDP包給終端,終端是沒有辦法驗證包的來源的。也就是說如果自動化系統對欺騙沒有應對措施,終端必須信任UDP packet heder和對應的行為。

CoAP的另一個風險是放大攻擊。在試驗中,研究人員搭建了一個CoAP伺服器和客戶端組成的測試網路,研究人員發起了增加的payload size的放大攻擊來估計最大帶寬放大因素。

CoAP除了是基於UDP的,它還是基於request-response方案的。CoAP responses明顯比request要大很多。研究人員估計,CoAP放大攻擊的放大因子可以達到32倍,該放大因子介於DNS和SSDP的放大之間。也就是說攻擊者以1Mbps的帶寬可以攻擊32Mbps的目標網路。

進一步查看協議說明發現CoAP支持block-wise transfers(分塊傳輸),意味著大量的響應response會被分割為更小的響應。但是大響應和小響應都有block size。這意味著攻擊者可以偽造一個要求最大block size的請求包,這可以將放大因子增加到32倍。

更多漏洞和技術詳細解釋參見The Fragility of Industrial IoT』s Data Backbone: Security and Privacy Issues in MQTT and CoAP Protocols。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

廣告惡意軟體偽裝成遊戲、遠程控制APP感染900萬Google play用戶
看!研究人員演示如何攻破加密貨幣硬體錢包的安全防線

TAG:嘶吼RoarTalk |