網路空間測繪——MQTT服務篇
閱讀: 7
一、 MQTT協議簡介
MQTT協議是1999年IBM公司釋出的一種基於釋出/訂閱(Publish/Subscribe)模式的輕量級通訊協議。MQTT協議的底層構建基於TCP/IP協議,它的特點是其規範簡單,非常適用於低效能、低開銷和有限頻寬的物聯網場景。作為一種輕量級的傳輸協議,MQTT協議的傳輸過程有三方構成,分別是釋出者(Publish)、代理(Broker)和訂閱者(Subscribe)。如圖1所示。
圖1 MQTT釋出訂閱過程
其中,釋出者和訂閱者由客戶端充當,而代理則又伺服器端充當。
MQTT協議的報文結構組成如表1所示。
表1 MQTT報文組成結構
Fixed header | 固定報頭 | 所有控制報文都包含 |
Variable header | 可變報頭 | 部分控制報文包含 |
Payload | 有效載荷 | 部分控制報文包含 |
一條控制報文分為三個部分:第一部分是固定報頭,第二部分是可變報頭,第三部分是有效載荷。
一條釋出和訂閱訊息的主題部分是其主題和有效載荷部分。其中,主題位於第二部分的可變報頭中。
二、MQTT服務探測
探測過程MQTT服務測繪過程如下:
- 搭建MQTT服務
調研市面上主流的MQTT伺服器,包括 mosquitto、 EMQ X、ActiveMQ、HiveMQ等。搭建MQTT服務完成後,進行報文釋出/訂閱測試。
- 對搭建完成的MQTT服務進行探測掃描,測試掃描外掛回傳訊息成功性及完整性。
- 調取國內及全球存在資產暴露情況的IP地址,儲存為列表,對列表內全部的IP地址進行探測掃描。
- 解析掃描結果,統計各MQTT服務的狀態資訊。選擇的統計指標為回傳資訊中可以反應物聯網裝置情況並且與埠安全性相關的埠開放狀態、埠響應返回情況和埠所只用的MQTT服務版本。提取回傳報文中的主題及有效載荷資訊,並通過文字聚類和報文長度篩選的方法進行識別歸類處理。
- 提取梳理有效載荷欄位中的資產暴露資訊。訂閱存在資產暴露資訊的埠,對收集到的報文資訊進行二次解析。彙總整合所有的資產暴露資訊,分析其中存在的安全性隱患。
三、MQTT測繪分析
202年3月對全球的的MQTT服務進行探測,本節將介紹具體的資料分析結果。
3.1 MQTT服務版本分析
探測到的MQTT服務以mosquitto為主,以下是分佈排名靠前的幾種MQTT服務。 除mosquitto外,也探測到了少量的EMQ X和hiveMQ服務。在所有探測到的MQTT服務中,國內使用最多的是mosquitto1.4.13版本,全球使用最多的是mosquitto1.4.15版本,具體分佈如圖2和3所示。
圖2 國內MQTT服務版本情況
圖3 全球MQTT服務版本情況
3.2 掃描埠返回分析
國內探測的58904個IP中有10323個可以識別出其主題和有效載荷資訊,佔比17.5%。全球探測的134886個IP中有22676個可以識別出其主題和有效載荷資訊,佔比16.8%。而剩餘的IP埠由於連線失敗、未授權、無訊息迴應等原因未識別到有效資訊如表2和3所示。
表2 國內埠返回情況
掃描響應 | 個數 |
syn-ack | 52411 |
no-response | 5020 |
reset | 1145 |
host-prohibited | 273 |
host-unreach | 35 |
time-exceeded | 8 |
admin-prohibited | 7 |
port-unreach | 3 |
net-unreach | 2 |
表3 全球埠返回情況
掃描響應 | 個數 |
syn-ack | 119602 |
no-response | 13058 |
reset | 1419 |
host-unreach | 392 |
admin-prohibited | 286 |
time-exceeded | 61 |
net-unreach | 35 |
host-prohibited | 17 |
port-unreach | 15 |
3.3 主題及有效載荷包含情況分析
對可識別出主題和有效載荷的埠的報文內容進行解析和分類整理統計。其中“Topics and their most recent payloads”的服務可以獲取到通訊主題和訊息,如圖4和5所示。
圖4 國內MQTT服務主題及有效載荷回傳情況
圖5 全球MQTT服務主題及有效載荷回傳情況
通過簡單文字聚類和報文長度篩選的方法提取到了一些資產暴露較嚴重的典型裝置及廠商。以下是這些裝置及廠商的資產暴露和隱私洩露情況:
- 路由器
該廠商是一家生產製造交換機、路由器、軟體、安全防火牆、無線產品、儲存等全系列的網路裝置產品線的網路廠商,其製造的裝置被廣泛的用於政府、金融、醫療、教育以及各企業場景。
探測到的資產暴露資訊是該廠商的路由器服務,別字段示例:
{ “type”: “stalog”, “typeid”: 4, “code”: 0, “msg”: { “sn”: “*”, “deviceAliasName”: “****”, “list”: [ { “mac”: “*”, “userIp”: “*.*.*.*”, “ssid”: “@****, “band”: “2.4G”, “rssi”: “-56”, “channel”: “1”, “onlineTime”: “2021-03-29 08:59:12”, “rxrate”: “26M”, “activeTime”: “119923”, “osType”: “Unknown”, “hostName”: “*” }, { “mac”: “da:74:8f:b7:30:7d”, “userIp”: “192.168.120.239”, “ssid”: “@****”, “band”: “2.4G”, “rssi”: “-79”, “channel”: “1”, “onlineTime”: “2021-03-30 12:10:03”, “rxrate”: “1M”, “activeTime”: “22071”, “osType”: “Android”, “hostName”: “*” }, { “mac”: “b0:e1:7e:3a:12:98”, “userIp”: “192.168.120.192”, “ssid”: “@****”, “band”: “2.4G”, “rssi”: “-79”, “channel”: “1”, “onlineTime”: “2021-03-30 18:08:30”, “rxrate”: “5M”, “activeTime”: “565”, “osType”: “Android”, “hostName”: “*” }, { “mac”: “d4:bb:c8:33:4a:1d”, “userIp”: “192.168.120.227”, “ssid”: “@**** “, “band”: “2.4G”, “rssi”: “-67”, “channel”: “1”, “onlineTime”: “2021-03-30 18:09:25”, “rxrate”: “17M”, “activeTime”: “509”, “osType”: “Android”, “hostName”: “*” }, { “mac”: “04:d3:b5:51:39:f5”, “userIp”: “192.168.120.103”, “ssid”: “@****”, “band”: “2.4G”, “rssi”: “-78”, “channel”: “1”, “onlineTime”: “2021-03-30 18:13:18”, “rxrate”: “8M”, “activeTime”: “277”, “osType”: “Android”, “hostName”: “*” } ] } }
可以從中提取出的資產資訊包括,裝置的產品序列號sn、裝置的廠商是名、使用者的IP地址、服務集標識ssid、使用者的線上時間、路由器頻段band、接收的訊號強度指示rssi、路由器接受速度rxrate、路由器連線的各個裝置資訊(包括裝置的手機型號以及裝置使用的作業系統)。訂閱該埠的特定主題,該IP地址的1883埠傳送同類型報文訊息的頻率為一分鐘13次。在全國的58904個IP探測結果中共檢測到該廠商路由器相關欄位26個。
- 智慧家居裝置
Hwacom是臺灣的一家寬頻應用整合服務提供商。探測到的是Hwacom的一款測量室內溫度與溼度的家居裝置。
識別字段示例:
b'{“timestamp”:1626518890771,”temperature”:41.771,”humidity”:43.405815,”status”:”monitoring”,”batteryTemperature”:25.0,”batteryLevel”:69,”upTime”:1622785035890,”wifiState”:{“ssid”:”\\”DemoRoom_NETGEAR\\””,”signalLevel”:4,”frequency”:2452,”linkSpeed”:72,”rssi”:-27},”storageState”:{“totalStorageMBytes”:5765120,”freeStorageMBytes”:4942256},”memoryUsage”:0,”cpuUsage”:0}’
可以從中提取出的資訊包括,時間戳、當前室內溫度、當前室內溼度、電池溫度、電池電量、WiFi服務集標識ssid、訊號強度signalLevel、頻率frequency、連線速度linkSpeed、裝置儲存狀態以及CPU佔用狀態。
訂閱該埠的特定主題,該IP地址的1883埠傳送同類型報文訊息的頻率為一分鐘5次。在全國的58904個IP探測結果中共檢測到Hwacom智慧家居裝置相關欄位2個。
- HomeAssistant
HomeAssistant是一個基於Python的開源智慧家居系統。使用者可以將燈具、智慧媒體、智慧插座、智慧開關等家居裝置與HomeAssistant進行整合,構建屬於自己的智慧空間系統。
某廠商是國內的一家以手機、智慧硬體和IoT平臺為核心的網際網路公司。近幾年,該廠商專注於智慧手機、智慧家居和網際網路電視等產品的研究。本次探測到的是一款使用了HomeAssistant的該廠商智慧開關。
識別字段示例:
{“unit_of_measurement”:”%”,”device_class”:”battery”,”value_template”:”{{ value_json.battery }}”,”state_topic”:”zigbee2mqtt/0x04cf8cdf3c75c16e”,”json_attributes_topic”:”zigbee2mqtt/0x04cf8cdf3c75c16e”,”name”:”0x04cf8cdf3c75c16e_battery”,”unique_id”:”0x04cf8cdf3c75c16e_battery_zigbee2mqtt”,”device”:{“identifiers”:[“zigbee2mqtt_0x04cf8cdf3c75c16e”],”name”:”0x04cf8cdf3c75c16e”,”sw_version”:”Zigbee2mqtt 1.12.2″,”model”:”****”,”manufacturer”:”****”},”availability_topic”:”zigbee2mqtt/bridge/state”}
可以從中提取出的資訊包括,測量單位unit_of_measurement、電量資訊、裝置名稱、裝置製造商等。同一IP埠的其他報文資訊內還保持了該智慧開關裝置的開關記錄。
- 人臉識別終端裝置
探測結果中可以提取到大量的有關人臉識別系統的資訊。不同的廠商給出的具體欄位略有不同,但大多都直接暴露了使用者的隱私資訊。以下為深圳某地人臉識別系統埠報文情況。
識別字段示例:
{\r\n”operator”:”RecPush”,\r\n”info”: {\r\n”customId”:”**”,\r\n”personId”:”5″,\r\n”RecordID”:”41″,\r\n”similarity1″:”91.199997″,\r\n”similarity2″:”0.000000″,\r\n”direction”:”unknow”,\r\n”otype”:”513″,\r\n”persionName”:”***”,\r\n”facesluiceId”:”**”,\r\n”facesluiceName”:”Face1″,\r\n”cardNum2″:”0″,\r\n”idCard”:”**”,\r\n”telnum”:”**”,\r\n”time”:”2021-07-22 11:50:08″,\r\n”temperature”: “36.1”,\r\n”temperatureAlarm”: “0”,\r\n”temperatureMode”: “0”,\r\n”pic”: “data:image/jpeg;base64,******”\r\n}\r\n}\r\n’
可以直接從報文資訊中提取包括使用者的身份證號、人臉匹配相似度、使用者姓名、手機號、識別時間、人臉溫度以及人臉識別圖片在內的各項使用者隱私資訊。
- GPS追蹤定位裝置
探測結果中同樣也獲取到了一些跟GPS追蹤定位相關的裝置資訊,如智慧手錶、汽車定位系統等。以下是其中某一款追蹤定位裝置的回傳資訊。
識別字段示例:
b'[{“DN”:”****”,”Longitude”:”1*.44093″,”Latitude”:”**.31341″,”speed”:0,”direction”:0,”height”:126,”status”:3,”startTime”:”2021-07-17 19:18:00″,”endTime”:”2021-07-17 19:18:00″,”totalRoute”:”1150.284000″,”route”:”1150.284000″,”clearTime”:”2019-09-29 15:40:31″}]’
可以從中提取出使用者的手機號以及使用者所在的經度、緯度、速度、方向、海拔、定位器狀態、採集時間以及使用者行動路程等資訊。回傳頻率為每個裝置一分鐘1次。不同時段同時線上裝置數不等,一般為5-10臺。
在MQTT測繪資料分析過程中,我們發現的可識別服務不止這些,考慮篇幅和資料敏感性就不一一列舉。
四、總結
本文對全網的MQTT協議分析,雖然對於網路空間來說只是一個很小的視角,但可以給網路空間測繪工作帶來一些啟發。首先,MQTT是上世紀出現的通訊協議,但因為物聯網的發展,這個協議也重新活躍在大眾視野,技術使用一直都有趨勢性,未來會有更多的人去使用該服務。仍然有大規模的類似MQTT的訊息佇列服務暴露在網際網路上,如果配置不當,攻擊者可以獲得傳輸的敏感資料,甚至可以修改資料、控制終端,所以更應該關注其暴露面和攻擊面。另一方面,可以對網路空間中的技術更迭進行描繪,這同樣有助於安全能力建設和監管。此外,現在能關注到網路空間維度還遠遠不夠,無論是網路資源的全量,還是資產的全維都還差的很遠,就好比人類從16世紀開始探索海洋,直至今日我們對海洋的瞭解程度還不到10%。如果只是對於目前市場狀況來說,網路空間測繪可能已是“紅海”,但從研究的視角往遠看是大片的“藍色”,仍需我們共同去探索。
參考文獻:
- https://en.wikipedia.org/wiki/MQTT
- 綠盟科技《2021網路空間測繪年報》, https://book.yunzhan365.com/tkgd/ccfz/mobile/index.html
版權宣告
本站“技術部落格”所有內容的版權持有者為綠盟科技集團股份有限公司(“綠盟科技”)。作為分享技術資訊的平臺,綠盟科技期待與廣大使用者互動交流,並歡迎在標明出處(綠盟科技-技術部落格)及網址的情形下,全文轉發。
上述情形之外的任何使用形式,均需提前向綠盟科技(010-68438880-5462)申請版權授權。如擅自使用,綠盟科技保留追責權利。同時,如因擅自使用部落格內容引發法律糾紛,由使用者自行承擔全部法律責任,與綠盟科技無關。
- 安全多方計算(5):隱私集合求交方案彙總分析
- 2022年網路空間安全事件簡析
- 區塊鏈密碼基礎之簽名演算法(二)
- 省省省,簽名也去重:帶有去重功能的雲資料完整性審計
- 5G安全:5G-AKA連結攻擊及對策
- 告警全量分診思路分析
- 區塊鏈密碼基礎之簽名演算法(一)
- 融合與共生:區塊鏈之智慧合約
- 淺談雲原生BAS
- 全球IPv4 AS拓撲測繪初探
- Linux提權手法實戰
- 網路空間測繪——MQTT服務篇
- TTD除錯進階之ttd-bindings
- Linux核心跟蹤:ftrace hook入門手冊(下)
- 創新方案,如何更有效地預防資料洩露?
- 洞見RSA2022 | The Rise of API Security
- 除錯services.exe程序
- 超大規模的物聯網僵屍網路:Pink
- RSA 2021創新沙盒 | Apiiro公司緣何一舉奪魁?
- 【格物實驗室】製造業常見攻擊型別介紹