使用智能機器人的時候,需要對機器人進行wi-fi配置,使機器人接入網絡,進而使手機對裝置進行控制。
可以通過配置将智能機器人通過wi-fi接入網際網路,配置成功後就可以使用手機app反向控制我們的智能機器人,達到無論使用者身在何地都可以對我們的智能機器人進行遠端控制的目的。
在對機器人上線配置及使用的過程中,可以對機器人的控制流程有一個大緻了解。
(1)注冊一個使用者(通常為手機号)。
(2)登入,驗證方式為xmpp登入驗證。
(3)綁定裝置,且裝置和新增賬號是唯一綁定關系,即手機号一但綁定成功,該裝置将不能被其他手機号綁定。
(4)手機app下發控制指令到雲端。
(5)雲端接受手機app的控制指令,并轉發給智能機器人。
(6)智能機器人接受控制指令,并檢測指令合法性,執行該控制指令。執行成功後将結果傳回給雲端。
(7)雲端将智能機器人傳回的結果發送給手機app,回報給使用者。
(8)控制指令執行成功。
在分析的過程中發現,該智能機器人在和雲端通信的時候用了http和xmpp兩種協定。通信方式如圖,此次将攻防重點放在手機app和雲端通信的過程中。

首先,将智能機器人進行網絡配置,将其接入網際網路,并使用手機app對其下發控制指令,同時對手機app和雲端的通信進行抓包監聽分析。在分析過程中發現,無論是xmpp協定還是http協定,都沒有進行通信加密,都是以明文的方式傳輸。
智能機器人登入及部分操作是通過xmpp協定實作會話的控制和長連接配接保持線上的,xmpp一般用來實作聊天工具的一個架構協定。因為智能硬體需要保持長時間會話線上并且要接收消息,是以部分會話控制是通過http協定實作的。在分析過程中發現通過http協定實作的會話控制,隻有控制指令,并沒有進行身份認證,攻擊者可擷取任意使用者的一些資訊如mac位址、裝置sn号,并可對任意機器人下發部分控制指令,如解除綁定指令。
控制請求内容
越權控制請求
解除綁定請求
可更改使用者問答,修改機器人回答語音。
案例
使用者:你好。
機器人:我被黑客入侵了。
發送這樣的請求包之後,當使用者跟機器人對話說你好時,機器人會回答我被黑客入侵了。
在對app程式進行逆向分析時發現,該智能機器人攝像功能用的是第三方視訊平台,利用第三方軟體雖然可以降低代碼成本,但是在某種意義上也增加了安全風險。
結合xmpp的流量分析,發現有兩種登入第三方雲平台的賬号和密碼登入的方式。
(1)cid号,固定賬号admin,固定密碼123456。
(2)cid号,固定賬号和固定密碼(賬号為base64編碼mac位址,密碼為base64編碼mac位址+時間戳)。
在app中寫死了第三方視訊平台的企業id、企業key和app id。
結合所發現的問題,可以寫出一個利用程式作為驗證。由于智能機器人和視訊連接配接平台建立連接配接的辨別是使用mac位址來驗證的,并且登入id和密碼都有一定規律可循,是以可以結合發現的問題批量登入檢視任意一台裝置的視訊内容。
對智能機器人的xmpp通信安全分析
我們已經提到手機app到雲端的通信完全明文沒有進行加密處理。此外,在對流量進行分析的過程中發現,該智能機器人登入xmpp伺服器的賬号和密碼都是固定的。
知道這些可以寫一個很簡單的腳本進行驗證。
由于平台xmpp協定隻允許一部裝置線上,是以當我們在别處登入裝置時,xmpp賬号就會強制令機器人掉線失去控制。
智能機器人安全建議
(1)裝置之間通信一定要加密傳輸,如利用https協定,對xmpp進行tls加密。
(2)使用者一定要有固定的使用者标示,使用者間的資料互相不能通路,避免造成越權控制問題。
(3)敏感資料嚴禁寫死到app中。
(4)如無必要,關閉裝置調試接口。
本文選自《智能硬體安全》一書,想及時獲得更多精彩文章,可在微信中搜尋“博文視點”或者掃描下方二維碼并關注。