色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鑒源實驗室·基于MQTT協議的模糊測試研究

上??匕?/a> ? 來源:上海控安 ? 作者:上海控安 ? 2024-07-30 15:21 ? 次閱讀

作者 |張淵策上海控安可信軟件創新研究院工控網絡安全組

來源 |鑒源實驗室

社群 |添加微信號TICPShanghai”加入“上海控安51fusa安全社區”

隨著物聯網技術的快速發展,越來越多的設備加入到互聯網中,形成了龐大的物聯網系統。這些設備之間的通信對于物聯網系統的正常運行至關重要。

MQTT(Message Queuing Telemetry Transport)協議作為一種輕量級、靈活的消息傳輸協議,因其簡單易用的特點被廣泛應用于物聯網設備之間的通信。然而隨著MQTT協議的普及,其安全性和穩定性問題也逐漸突顯出來。攻擊者可以利用協議本身的漏洞或者錯誤來對系統進行攻擊,可能導致系統崩潰、信息泄露等問題。因此,對MQTT協議進行深入研究和測試,發現潛在的問題并提出解決方案,對于保障物聯網系統的安全性和穩定性具有重要意義。

01 MQTT協議簡介

MQTT是一種基于發布/訂閱模式的輕量級消息傳輸協議,最初由IBM開發。它采用輕量級的、簡單的消息發布和訂閱機制,適用于各種網絡環境和設備。MQTT協議旨在為物聯網(IoT)和機器到機器(M2M)通信提供一種簡單、輕量級、可靠的解決方案。以下是MQTT協議的主要特點和工作原理

(1)MQTT的發布/訂閱模式

MQTT采用發布/訂閱模式,其中設備可以發布(發送)消息到特定的主題,同時其他設備可以訂閱(接收)這些主題的消息。這種模式使得設備之間的通信變得松耦合,設備可以獨立于彼此進行通信,而不需要直接相互交互。在通信過程中主要包括三個角色:

·發布者(Publisher):負責發布消息的設備或應用程序。

·訂閱者(Subscriber):負責訂閱感興趣的主題,并接收相關的消息。

·代理服務器(Broker):負責接收來自發布者的消息,并將其傳遞給訂閱者。

其中代理服務器是MQTT通信的中間人。在MQTT通信中需要一個中間人(Broker)來協調消息的發布和訂閱??蛻舳讼駼roker發送消息,并由Broker負責將消息路由給對應的訂閱者。具體拓撲圖見圖1:

wKgaomaofVmAGd6VAAGZG-VO-CA091.png

圖1MQTT通信拓撲圖

(2)MQTT報文類型

MQTT協議通過交換預定義的MQTT控制報文來通信。MQTT控制報文由固定頭(Fixed Header)、可變頭(Variable Header)和有效載荷(Payload)組成,這使得它易于實現和部署。每個MQTT控制報文都包含一個固定報頭,見表1:

表1 固定報頭格式

wKgZomaofWSAQNofAAETgOKTxJA353.png

MQTT的報文總共有15種報文類型,對于MQTT的報文類型的定義以及各類報文的功能,見表2:

表2 控制報文類型

wKgaomaofW6APa8YAAKTbiOFkH8241.png

對于每一類報文,都有專門的報文結構和屬性,由于篇幅原因,不在此過多贅述,具體見MQTT Version 5.0 (oasis-open.org)。

(3)MQTT的連接模式

MQTT的持久連接是指客戶端與服務器之間的連接能夠保持長期的狀態,這種持久連接的特性是MQTT協議的一個重要特點,它為設備之間的通信提供了靈活性和效率。在傳統的HTTP通信中,客戶端向服務器發送請求后,服務器響應請求后即刻斷開連接,這種請求/響應模式在某些場景下效率較低,因為每次通信都需要建立新的連接。而在MQTT中,客戶端與服務器通過CONNECT報文連接后,即使在沒有數據傳輸的情況下也能維持連接。為了確保連接的活躍性,客戶端和服務器之間會定期交換心跳包??蛻舳藭ㄆ诎l送心跳包給服務器,告知自己的狀態;服務器也會定期向客戶端發送心跳包,確??蛻舳颂幱诨钴S狀態,如圖2。

wKgZomaofXuASJJsAAFzrxLM3to608.png

圖2 MQTT持久連接示意圖

(4)MQTT的訂閱主題

MQTT中客戶端向服務器發送SUBSCRIBE報文用于創建一個或多個訂閱。SUBSCRIBE報文支持通配符,也為每個訂閱指定了最大的QoS等級,服務器根據這些信息分發應用消息給客戶端。當服務器收到SUBSCRIBE報文,必須回復SUBACK報文,其中的報文標識符要與原始SUBSCRIBE報文相同。如果收到的主題過濾器與現有訂閱相同,則應該替換現有訂閱。訂閱的主題過濾器必須是UTF-8字符串,服務器應支持通配符過濾器。每個過濾器后面跟著一個字節,表示請求的最大QoS等級,如圖3。

wKgZomaofYKAcQ66AAD6T7YaqAA314.png

圖3 MQTT訂閱主題

(5)MQTT的發布消息

MQTT定義了三個不同的服務質量等級(QoS):

·QoS 0:最多一次交付,消息發布后不做確認。

·QoS 1:至少一次交付,確保消息至少被接收一次。

·QoS 2:恰好一次交付,確保消息僅被接收一次。

QoS值表示應用消息分發的服務質量等級保證。不同的QoS等級決定了PUBLISH控制報文的處理方式。接收者(服務器或客戶端)必須根據PUBLISH報文中的QoS等級發送相應的應答報文。MQTT根據QoS等級分發應用消息。當服務器向多個客戶端(訂閱者)分發消息時,每個客戶端獨立處理。消息的服務質量可能因訂閱者指定的QoS等級而異。發布者在發布消息時指定了服務質量等級。

發布者必須發送QoS為0,DUP為0的PUBLISH報文。這種報文服務器不發送響應,發布者不重試,發送消息時立即丟棄。消息可能僅送達一次或根本不送達。服務器接收PUBLISH報文后將消息分發給訂閱該主題的訂閱者。

QoS1的PUBLISH控制報文確保消息至少送達一次,可能被多次處理。可變報頭包含報文標識符,需要PUBACK報文確認。發布者必須分配未使用的報文標識符,并等待服務器的PUBACK報文確認。發送的PUBLISH報文必須包含報文標識符,QoS為1,DUP為0。如果收到PUBACK報文,發布者可以重復使用標識符。接收者的PUBACK報文必須包含來自PUBLISH報文的標識符。發送PUBACK后,接收者必須將相同標識符的入站PUBLISH報文視為新消息,忽略其DUP標志。

QoS2的PUBLISH控制報文提供最高服務質量,不容忍消息丟失和重復。消息變量頭包含報文標識符。接收者使用兩步確認過程來確認消息。發送者分配未使用的標識符,并等待PUBREC確認。收到PUBREC后,發送PUBREL,并等待PUBCOMP確認。發送PUBREL后不能重發PUBLISH。接收者發送PUBREC后可以存儲消息并分發給訂閱者(方案1),或等待PUBREL后再分發(方案2)。發送PUBCOMP后,可以丟棄標識符(方案1),或分發消息并丟棄(方案2)。接收者發送PUBCOMP后,任何后續PUBLISH報文被視為新的發布。

(6)MQTT取消訂閱

客戶端發送UNSUBSCRIBE報文給服務器以取消訂閱主題。報文固定報頭的特定位必須設置為0,0,1,0。有效載荷包含要取消訂閱的主題過濾器列表,必須是UTF-8編碼字符串。UNSUBSCRIBE報文必須至少包含一個有效載荷,包含已訂閱的主題過濾器。服務器刪除訂閱后不再將該主題的消息發送給客戶端,并完成任何QoS1和QoS2消息的分發。服務器必須發送UNSUBACK報文作為響應,包含與UNSUBSCRIBE相同的報文標識符。即使沒有刪除任何訂閱,服務器也必須發送UNSUBACK響應。

wKgaomaofYuAeRK6AAEtyUPJZhE384.png

圖4 MQTT取消訂閱

(7)MQTT斷開連接

DISCONNECT報文是客戶端發給服務端的最后一個控制報文,表示客戶端正常斷開連接。報文的固定報頭保留位必須全為0??蛻舳税l送DISCONNECT后必須關閉網絡連接,不能再發送其他控制報文。服務端收到DISCONNECT后,必須丟棄與當前連接關聯的未發布的遺囑消息,并在客戶端未關閉網絡連接時主動關閉連接。

wKgZomaofZWAd_0vAAB8SsHJDSQ235.png

圖5 MQTT斷開連接

02 模糊測試技術

模糊測試(Fuzzing Test)是一種通過將隨機數據(非預期輸入)輸入到目標系統以評估是否會出現非預期行為的測試方法,已經在計算機網絡安全測試領域獲得了廣泛應用,在自動化漏洞挖掘方面具備優異表現。在MQTT協議的模糊測試中,我們可以通過向MQTT消息中注入異常數據或者隨機生成各種消息格式和內容的數據包,來測試MQTT服務器的穩定性和安全性。

下面介紹一些通過模糊測試挖掘到的MQTT協議的CVE漏洞:

(1)數據包長度檢測不當

網絡數據包是在網絡上傳輸和接收的格式化數據單元。每個MQTT數據包通常包含四個主要字段:控制頭部、數據包長度、可變頭部和有效載荷。前兩個字段對于每個數據包都是必需的,其他字段是可選的。

wKgaomaofZ2Ab176AADJj3enMo0630.png

圖6 MQTT報文包格式[1]

數據包解析是提取和識別數據包字段的過程。然而,由于數據包構建方法的進步,攻擊者可以利用協議漏洞來錯誤解析數據包,尤其是對于將解析視為順序活動的協議。很多MQTT協議棧實現的漏洞都是由于在解析之前缺少或不正確的長度檢查。例如,在CVE-2021-41036中,Eclipse Paho MQTT 客戶端未驗證收到報文中的剩余長度的大小。類似地,在CVE-2020-10071中,Zephyr MQTT解析代碼對已發布消息的長度字段進行不充分的檢查,這可能導致緩沖區溢出攻擊和遠程代碼執行。還有其他一些漏洞,例如CVE-2020-10070和CVE-2020-10063,它們也是由于不正確的長度檢查而存在。這些漏洞不僅可能導致DoS攻擊,還可能導致其他嚴重威脅,如遠程代碼執行(RCE)或讀取內存內容。

(2)缺乏必要字段檢測

缺乏必要字段檢查是由于在協議實現過程中忽略了對必需字段的驗證而導致的。正如之前所述,在MQTT中,數據包長度和數據包字段隨著數據包類型的不同而變化。因此,應該針對數據包類型明確實施必需字段檢查的實現。例如,如果一個數據包包含用戶名字段,那么相關的密碼字段也必須存在,因為缺少這樣的密碼部分會使實現處于危險之中。在CVE-2019-9749中,Fluent Bit中MQTT輸入插件對一個精心制作的數據包的處理導致服務器崩潰。在CVE-2018-11993中,對MQTT連接請求時訪問堆棧的不當檢查導致緩沖區溢出攻擊。此外,在CVE-2018-8531中,Azure IoT Hub設備對MQTT協議內存訪問的操作限制不當導致遠程代碼執行攻擊。與不正確的必需字段檢查實現缺陷相關的漏洞包括CVE-2016-9877(MQTT代理對具有有效用戶名但省略密碼部分的連接請求進行身份驗證),CVE-2017-2893(MQTT代理在處理沒有訂閱參數的訂閱數據包時崩潰)。

(3)缺少邏輯錯誤檢測

該問題是由于數據包中缺乏邏輯錯誤檢查以及實現中未對其進行識別而引起的。在CVE-2021-42386中,Busybox在運行AWK模式時會導致服務拒絕。在CVE-2019-9749中,Fluent Bit中的MQTT在輸入插件處理特意編輯的數據包時會導致服務器崩潰。在CVE-2018-11998中,處理MQTT中的一個特意制作的數據包解碼請求時發生了一個ace條件,導致緩沖區溢出攻擊。在CVE-2020-13849中,由于缺乏對客戶端發送的Keep-Alive值的邏輯檢查,MQTT服務器受到了拒絕服務攻擊。在CVE-2019-11778中,當處理一個“will delay interval”( 服務器等待再發布遺囑消息的時間間隔)大于“session expiry interval”( 客戶端與服務器之間的會話時間)的數據包時,MQTT服務器會崩潰。

(4)其他錯誤

還有一些CVE漏洞是由于對內容類型、數據類型、身份驗證繞過、無效證書和無效訪問的錯誤處理。由于不正確處理非UTF-8編碼字符的客戶端ID或主題名稱而導致的漏洞CVE-2020-13932,攻擊者利用了Apache ActiveMQ Artemis 2.5.0到2.13.0(MQTT服務器)中的一個漏洞,在服務器接受包含非UTF-8編碼字符的客戶端ID和主題名稱的MQTT數據包。通過利用這種漏洞,攻擊者可以執行任何易受攻擊的腳本或命令來獲取對MQTT服務器的訪問權限,從而允許他進行惡意活動。類似地還有與數據類型相關的漏洞,由于變量的不正確初始化,如在CVE-2019-5917中,通過利用Microsoft Azure的MQTT客戶端服務中的未指定的向量,進行了拒絕服務攻擊。

身份驗證繞過相關的漏洞,主要利用的是網絡上傳輸的信息未加密和未編碼。例如,在CVE-2019-5635中,由于未加密智能橋設備與MQTT代理之間的數據傳輸,攻擊者使用默認用戶名和密碼攻擊了MQTT代理。同樣,無效訪問相關的漏洞是由于錯誤的文件和對象權限導致的。例如,在CVE-2018-8531中,報告了Azure IoT Hub設備訪問內存中的對象漏洞,這種情況下攻擊者可以執行內存損壞的操作。

如果想要自己對MQTT服務器進行模糊測試,可以使用BlitzFuzz工具進行操作。BlitzFuzz(點擊查看詳情)作為一款專門針對工控網絡協議的滲透模糊測試工具,支持CAN、CAN、UDS、SOME/IP、DoIP等汽車常用協議的報文仿真、解析功能,提供相關協議的滲透測試用例包、合規測試用例包以及模糊測試功能。

在BlitzFuzz的模糊測試界面中,可以選擇添加MQTT模糊測試用例來對被測件進行模糊測試。針對不同的MQTT報文類型,可以選擇不同的MQTT報文類型進行參數配置,選擇變異策略進行不同方式的變異策略及模糊數據的生成。同時可以配置多種監控套件對被測件進行監控,查看模糊用例對被測件的影響,如圖7。

wKgaomaofaSAeP9LAAH318SC7dA125.png

圖7 BlitzFuzz MQTT模糊配置界面

首先將將被測件通過網線連接BlitzFuzz工具。測試人員在BlitzFuzz前端界面配置需要進行模糊的MQTT報文信息及相關配置,包括被測件的基礎信息如MAC、IP,以及選擇使用的監控套件參數,用于判斷被測件發送的模糊數據情況。參數填寫完成后選擇測試用例并運行,運行結束后即可在界面查看測試報告,如圖8。

wKgaomaofa2AUcpIAACu08Z4-YQ942.png

圖8 BlitzFuzz模糊測試示意圖

參考文獻:

[1]Husnain M, Hayat K, Cambiaso E, et al. Preventing mqtt vulnerabilities using iot-enabled intrusion detection system[J]. Sensors, 2022, 22(2): 567.

[2] Hwang, H. C., Park, J., & Shon, J. G. (2016). Design and implementation of a reliable message transmission system based on MQTT protocol in IoT.

[3] Soni D, Makwana A. A survey on mqtt: a protocol of internet of things (iot)[C]//International conference on telecommunication, power analysis and computing techniques (ICTPACT-2017). 2017, 20: 173-177.

[4] Singh M, Rajan M A, Shivraj V L, et al. Secure mqtt for internet of things (iot)[C]//2015 fifth international conference on communication systems and network technologies. IEEE, 2015: 746-751.

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 測試
    +關注

    關注

    8

    文章

    5278

    瀏覽量

    126600
  • 物聯網
    +關注

    關注

    2909

    文章

    44565

    瀏覽量

    372803
  • MQTT
    +關注

    關注

    5

    文章

    650

    瀏覽量

    22487
收藏 人收藏

    評論

    相關推薦

    Kilby實驗室大揭秘

    可能面臨的挑戰,”Kilby實驗室納米技術團隊的領導Paul Emerson說道,“我們的目標是發明改變世界的突破性解決方案?!?自2009年創立應用研究中心Kilby實驗室起,領先技術已經與TI的業務
    發表于 07-16 04:45

    鋰電材料截面制樣-氬離子拋光CP離子研磨 金實驗室分享(下)

    鋰電池正極片氬離子拋光(CP離子研磨)制樣后效果圖(正極片氬離子拋光制樣后效果圖-如上圖所示-金實驗室羅工提供)鋰電池負極片氬離子拋光(CP離子研磨)制樣后效果圖(負極片氬離子拋光制樣后效果圖-如上圖所示-金
    發表于 12-16 15:47

    CDMA手機入網測試實驗室測試要求是什么

    CDMA手機入網測試實驗室測試要求是什么CDMA手機實驗室測試標準是什么
    發表于 05-06 09:23

    lims實驗室管理系統是什么?實驗室信息管理系統介紹!

    。檢測結果管理最后,lims實驗室管理系統的主要功能之一是將測試結果與樣本相關聯。當測試結果是濃度等簡單數據點時,可以直接將測試結果記錄在樣本記錄中。然而,越來越普遍的是,
    發表于 11-03 11:17

    實驗室lims系統解決方案

    ?lims實驗室信息管理系統是一種軟件產品,旨在幫助實驗室跟蹤其設備、樣品和測試結果,管理其工作流程/協議,創建合規報告并分析結果。雖然醫院、診所和
    發表于 11-04 11:18

    MQTT協議的相關資料推薦

    講到物聯網,就不得不提耳熟能詳的MQTT協議,作為當下被物聯網領域廣范圍應用的標準協議,這一誕生于IBM實驗室的“古老”產物(第一個版本誕生于1999年)已作為ISO國際標準越來越多的
    發表于 12-13 06:42

    廣東金實驗室科技有限公司介紹

    認定的“LED失效分析公共服務示范平臺”,廣州市中級人民法院司法鑒定專業委托機構。 ? 金實驗室建設了一條從芯片到封裝燈具的LED測試分析線,其LED失效分析業務市場占有率為80%,是國際頂尖的LED檢測
    發表于 11-25 17:19 ?1808次閱讀
    廣東金<b class='flag-5'>鑒</b><b class='flag-5'>實驗室</b>科技有限公司介紹

    高精度電流在電子實驗室中的應用

    高精度電流是一種能夠提供恒定、穩定電流輸出的設備,被廣泛應用于電子實驗室中。電子實驗室是電子工程師進行實驗、測試和研發的場所,而高精度電流
    的頭像 發表于 06-12 09:13 ?615次閱讀
    高精度電流<b class='flag-5'>源</b>在電子<b class='flag-5'>實驗室</b>中的應用

    晶豐明測試實驗室簡介

    十五年間,晶豐明從深耕LED照明驅動領域,走向智慧家居、外置電源、智能云計算及控制驅動多領域全面發展,在這不斷成長超越、突破創新的過程中,晶豐明測試實驗室承載著公司對卓越質量與高可
    的頭像 發表于 06-16 11:39 ?689次閱讀

    極致出品,可靠至上 | 晶豐明測試實驗室

    十五年間,晶豐明從深耕LED照明驅動領域,走向智慧家居、外置電源、智能云計算及控制驅動多領域全面發展,在這不斷成長超越、突破創新的過程中,晶豐明測試實驗室承載著公司對卓越質量與高可
    發表于 06-16 13:59 ?348次閱讀
    極致出品,可靠至上 | 晶豐明<b class='flag-5'>源</b><b class='flag-5'>測試</b><b class='flag-5'>實驗室</b>

    實驗室協助鴻利智匯產品順利通過AEC-Q102認證

    實驗室
    的頭像 發表于 08-18 09:43 ?899次閱讀
    金<b class='flag-5'>鑒</b><b class='flag-5'>實驗室</b>協助鴻利智匯產品順利通過AEC-Q102認證

    DEKRA德凱為Hisense海信實驗室授予CTF實驗室資質

    近日,全球領先的檢驗檢測認證機構DEKRA德凱為海信家電集團洗護技術測試研究中心(以下簡稱:Hisense海信)實驗室授予CTF實驗室資質。
    的頭像 發表于 04-10 14:52 ?527次閱讀

    實驗室丨智能網聯汽車協議模糊測試技術概述

    作者 |?喬琪?上??匕部尚跑浖撔?b class='flag-5'>研究院工控網絡安全組 來源 |?實驗室 社群 |?添加微信號“TICPShanghai”加入“上??匕?1fusa安全社區” 摘要:隨著智能網聯
    的頭像 發表于 04-17 13:39 ?691次閱讀

    實驗室·HTTP協議網絡安全攻擊

    作者 | 李芷若?上??匕部尚跑浖撔?b class='flag-5'>研究院工控網絡安全組 來源 | ?實驗室 社群 | ?添加微信號“ TICPShanghai ”加入“上海控安51fusa安全社區” 01 背
    的頭像 發表于 07-30 13:48 ?313次閱讀
    <b class='flag-5'>鑒</b><b class='flag-5'>源</b><b class='flag-5'>實驗室</b>·HTTP<b class='flag-5'>協議</b>網絡安全攻擊

    實驗室·ISO 26262中測試用例的得出方法-等價類的生成和分析

    作者 | 李偉 上??匕舶踩珳y評部總監 來源 | ?實驗室 社群 | 添加微信號“ TICPShanghai ”加入“上??匕?1fusa安全社區” ? 在ISO 26262-6-2018
    的頭像 發表于 07-30 15:37 ?492次閱讀
    <b class='flag-5'>鑒</b><b class='flag-5'>源</b><b class='flag-5'>實驗室</b>·ISO 26262中<b class='flag-5'>測試</b>用例的得出方法-等價類的生成和分析
    主站蜘蛛池模板: 高清午夜福利电影在线| 精品一区二区三区免费毛片| 欧美多毛的大隂道| 张开腿我尝尝你的草莓| 国产露脸150部国语对白| 入禽太深视频免费视频| bl撅高扒开臀缝哦| gogo亚洲肉体艺术照片9090| 免费国产久久啪久久爱| 中文字幕天堂久久精品| 久久精品影院永久网址| 亚洲人成7777| 九色91精品国产网站| 一本之道高清在线观看免费| 精品午夜寂寞影院在线观看| 亚洲精品视频在线免费| 蝴蝶中文综合娱乐网2| 亚洲性爱城| 经典三级四虎在线观看| 夜夜国产亚洲视频香蕉| 久久热这里面只有精品| 69国产精品成人无码视频| 欧美高清 videos sexo| yellow日本动漫观看免费| 日日夜夜狠狠干| 狠狠色狠狠色综合日日91app| 亚洲精品偷拍影视在线观看| 精品久久久久久久99热| 5G在线观看免费年龄确认| 牛牛免费视频| 国产第81页| 野草观看免费高清视频| 男人和女人一级黄色大片| 被免费网站在线视频| 午夜在线观看免费完整直播网| 黑人阴茎插女人图片| 97视频在线观看免费视频| 少妇连续高潮抽搐痉挛昏厥| 国色天香社区视频免费高清3| 中文字幕按摩| 丝袜美女自摸|