胡 姣 李岳洪 高英杰
(1.威凱檢測技術(shù)有限公司 廣州 510663; 2.中國機(jī)械工業(yè)聯(lián)合會 北京 100711)
近年來,隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,具有無線通訊和信息管理功能的冰箱、空調(diào)、洗衣機(jī)、掃地機(jī)器人、電飯鍋、電動(dòng)牙刷等智能家用電器產(chǎn)品開始普及,用戶可以借助移動(dòng)終端(如手機(jī))通過網(wǎng)絡(luò)對智能家電進(jìn)行遠(yuǎn)程控制和數(shù)據(jù)傳輸,給生活帶來了極大的便利。
但各種智能家電設(shè)備的安全問題也隨之暴露,不法分子利用計(jì)算機(jī)技術(shù)和各類安全漏洞竊取用戶個(gè)人信息,并對智能家電設(shè)備進(jìn)行跟蹤和控制,嚴(yán)重侵犯了個(gè)人隱私和人身財(cái)產(chǎn)安全。據(jù)某新聞和相關(guān)文獻(xiàn)報(bào)道,在2020年由新加坡國立大學(xué)(NUS)和美國馬里蘭大學(xué)學(xué)院市分校(UMD)共同合作,成功遠(yuǎn)程入侵一臺家用掃地機(jī)器人,使其充當(dāng)竊聽器來“竊聽”屋內(nèi)居住者的私人信息,相關(guān)研究表明,即便是沒有竊聽器,不法分子仍然可以利用各類安全漏洞來操控家居設(shè)備竊取用戶信息[1]。
可見,物聯(lián)網(wǎng)帶來便利的同時(shí),也給人們的生活和工作帶來了一定安全風(fēng)險(xiǎn)。例如,用戶遭受網(wǎng)絡(luò)攻擊、個(gè)人身份被盜用以及個(gè)人隱私信息暴露,又如網(wǎng)絡(luò)犯罪分子可利用社會工程學(xué)或系統(tǒng)漏洞等技術(shù),冒充用戶以遠(yuǎn)程入侵的方式訪問設(shè)備并控制設(shè)備,以此對設(shè)備或用戶造成嚴(yán)重破壞等等問題。為此,筆者以物聯(lián)網(wǎng)智能家電的通信安全為研究對象,探討以無線局域網(wǎng)WLAN網(wǎng)絡(luò)接入方式的智能家電設(shè)備在以太網(wǎng)的通信安全性問題,并且通過抓包、重放等方式,分析數(shù)據(jù)在傳輸中可能存在的安全問題,最后針對物聯(lián)網(wǎng)智能家電通信安全問題,提出了一些對策和建議。
據(jù)《圖解物聯(lián)網(wǎng)》文獻(xiàn)描述,物聯(lián)網(wǎng)整體結(jié)構(gòu)可分為設(shè)備、網(wǎng)關(guān)、服務(wù)平臺三部分,即設(shè)備端進(jìn)行采集數(shù)據(jù)后,經(jīng)過網(wǎng)關(guān)將設(shè)備連接到互聯(lián)網(wǎng),服務(wù)器接收設(shè)備和網(wǎng)關(guān)發(fā)送過來的數(shù)據(jù),對數(shù)據(jù)進(jìn)行相應(yīng)的業(yè)務(wù)處理,并發(fā)送給設(shè)備端,在此過程中,設(shè)備與服務(wù)器進(jìn)行數(shù)據(jù)的傳輸和數(shù)據(jù)的接收遵守對應(yīng)的通信協(xié)議[2]。
在通信過程中,通信協(xié)議非常重要,它是發(fā)送方和接收方完成實(shí)體通信或服務(wù)所必須遵循的規(guī)則和約定。在物聯(lián)網(wǎng)協(xié)議中分為兩大類:一類是傳輸協(xié)議,另一類是通信協(xié)議。物聯(lián)網(wǎng)傳輸協(xié)議一般是負(fù)責(zé)子網(wǎng)內(nèi)設(shè)備間的組網(wǎng)及通信,包括有線、無線(Wi-Fi、Bluetooth、RFID、ZigBee等),其主要目的是解決智能家電設(shè)備接入網(wǎng)絡(luò)問題。目前大部分智能家電設(shè)備的數(shù)據(jù)傳輸利用Wi-Fi、Bluetooth、RFID等短距離通信,通過無線連接方式接入網(wǎng)關(guān)設(shè)備。具體選用哪種傳輸協(xié)議,依據(jù)不同的業(yè)務(wù)需求和不同的技術(shù)特點(diǎn),以及不同智能家電設(shè)備的應(yīng)用場景。物聯(lián)網(wǎng)通信協(xié)議則是運(yùn)行在傳統(tǒng)互聯(lián)網(wǎng)TCP/IP協(xié)議之上的設(shè)備通訊協(xié)議,負(fù)責(zé)設(shè)備以互聯(lián)網(wǎng)方式進(jìn)行數(shù)據(jù)交換和通信。幾種常見的智能家電設(shè)備的通信協(xié)議,包括以下幾種:
1)簡單HTTP下“請求—響應(yīng)”模式
基于Web的HTTP協(xié)議,設(shè)備與服務(wù)器之間通過“請求—響應(yīng)”模式進(jìn)行彼此通信。http請求由三部分組成,分別是請求行、消息報(bào)頭和請求正文。設(shè)備通過HTTP請求的get、post獲取數(shù)據(jù)和提交數(shù)據(jù)。HTTP請求必須由設(shè)備主動(dòng)向服務(wù)器發(fā)送數(shù)據(jù),服務(wù)器無法主動(dòng)向設(shè)備端推送數(shù)據(jù)。
2)Web Socket“一次創(chuàng)建長久連接”模式
Web Socket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議,可以使客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡單,它允許服務(wù)器主動(dòng)向客服端推送數(shù)據(jù)。Web socket是一個(gè)持久化的協(xié)議,它不同于http每次請求都要經(jīng)過“三次握手”方式,只要通過第一個(gè)HTTP request建立了TCP連接,之后的交換數(shù)據(jù)都是不需要再發(fā)HTTP request了。換而言之,設(shè)備與服務(wù)器建立連接后,不用每次都重新建立。相比傳統(tǒng)的HTTP請求可以較大程度地減少服務(wù)器的開銷。
3)MQTT“輕量級”的協(xié)議
MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級”通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,最早由IBM提出。該協(xié)議非常適合低功耗和網(wǎng)絡(luò)帶寬有限的物聯(lián)網(wǎng)場景。MQTT由三部分組成,分別是中介發(fā)布者,服務(wù)器(中介)、訂閱者,其工作原理如圖1所示。
圖1 MQTT模型
通常智能家電設(shè)備都是通過移動(dòng)應(yīng)用軟件(APP)來實(shí)現(xiàn)某些操作功能。而數(shù)據(jù)的泄漏往往是采用了HTTP或UDP(SIP)等明文協(xié)議與設(shè)備通信。敏感的數(shù)據(jù)在經(jīng)過物理層、網(wǎng)絡(luò)層、應(yīng)用層進(jìn)行傳輸時(shí),不安全的傳輸會很容易遭受到“中間人”攻擊和非法入侵。
本文從智能家電設(shè)備使用APP配網(wǎng)成功后,采用抓包工具作為“中間人”對數(shù)據(jù)傳輸過程中的數(shù)據(jù)包進(jìn)行捕獲,并對APP發(fā)送的所有HTTP請求與相應(yīng)報(bào)文進(jìn)行分析,獲取信息并對信息進(jìn)行分析、跟蹤、破譯、篡改并重放,通過分析,查看智能家電設(shè)備在數(shù)據(jù)傳輸過程中可能存在的安全問題。
物聯(lián)網(wǎng)系統(tǒng)與設(shè)備進(jìn)行數(shù)據(jù)通信,需要開放一些服務(wù)端口,因此需要查看通信端口中是否存在遠(yuǎn)程登錄協(xié)議(Telnet)、安全外殼協(xié)議(SSH)等服務(wù)端口。NMAP是由Gordon Lyon設(shè)計(jì)的一款開源的網(wǎng)絡(luò)掃描工具,可以掃描目標(biāo)主機(jī)中存在哪些開放的端口。通過使用NMAP命令:“nmap-p端口IP”方式對設(shè)備網(wǎng)關(guān)進(jìn)行掃描,查看主機(jī)是否存在開放的端口,掃描結(jié)果如圖2所示。
通過圖2的掃描結(jié)果,可以發(fā)現(xiàn)存在開放遠(yuǎn)程登錄端口23,嘗試使用telnet進(jìn)行登錄。在DOS界面里輸入telnet命令前,需要在本機(jī)上搭建telnet服務(wù)器,并啟動(dòng)telnet服務(wù)。通過在telnet程序中輸入命令:“telnet IP端口或者telnet域名端口”,就可以實(shí)現(xiàn)本地電腦訪問遠(yuǎn)程服務(wù)器,telnet訪問結(jié)果如圖3所示。
圖2 Nmap端口掃描
Telnet遠(yuǎn)程連接通常有兩種結(jié)果,第一種情況如果端口關(guān)閉,則顯示無法打開主機(jī)的連接,連接失??;第二種是端口打開的情況下,連接成功,則進(jìn)入telnet遠(yuǎn)程登錄頁面,證明端口可用。從圖3可以看出,23端口是可用的,顯示需要用戶輸入用戶名和密碼,通過輸入用戶名和密碼即可遠(yuǎn)程登錄服務(wù)器。
圖3 telnet遠(yuǎn)程登錄界面
利用應(yīng)用層抓包工具Fiddler和網(wǎng)絡(luò)層抓包工具Wireshark來查看整個(gè)數(shù)據(jù)通信過程是否存在敏感信息明文傳輸?shù)却嗳觞c(diǎn)。Fiddler是一款應(yīng)用層抓包工具,通過代理方式進(jìn)行抓包。在客戶端和服務(wù)器建立一個(gè)代理服務(wù)器,從而監(jiān)聽本機(jī)發(fā)出所有的http請求以及服務(wù)器返回的響應(yīng)結(jié)果。同時(shí)用戶可以修改HTTP請求、設(shè)置斷點(diǎn)和重定向請求等,F(xiàn)iddler的工作原理如圖4所示。
圖4 Fiddler工作原理
使用Fiddler,開啟proxy代理模式。操控APP遠(yuǎn)程控制智能家電,監(jiān)控所有請求、響應(yīng)的數(shù)據(jù)包,如圖5所示。從圖5的數(shù)據(jù)包解析中可以看出,用戶名和密碼明文顯示,未進(jìn)行加密處理,存在明文傳輸?shù)膯栴}。
圖5 敏感信息明文傳輸
Wireshark是一款網(wǎng)絡(luò)協(xié)議分析工具,可以對網(wǎng)絡(luò)中流入到本機(jī)計(jì)算機(jī)的數(shù)據(jù)包進(jìn)行捕獲并分析。通過Wireshark可以很清楚的知道數(shù)據(jù)包交換的過程。開啟Wireshark抓包,使用過濾器過濾需要的IP和協(xié)議,對智能家電設(shè)備發(fā)出的所有數(shù)據(jù)包進(jìn)行捕獲和分析,從而查看通信數(shù)據(jù)是否是明文傳輸。
從圖6可以看出,該數(shù)據(jù)包的通信數(shù)據(jù)是明文傳輸,未進(jìn)行加密處理,存在一定安全風(fēng)險(xiǎn)。
圖6 通信數(shù)據(jù)明文傳輸
對智能家電設(shè)備的控制指令嘗試重放,查看通信數(shù)據(jù)是否進(jìn)行有效性校驗(yàn)。重放攻擊(Replay Attacks)又稱重播攻擊、回放攻擊,是指攻擊者發(fā)送一個(gè)目的主機(jī)已經(jīng)接收過的包,來達(dá)到欺騙系統(tǒng)的目的,主要用于身份認(rèn)證過程,破壞認(rèn)證的正確性[6]。在智能家電中重放攻擊,同樣也是攻擊者對用戶發(fā)送設(shè)備的控制指令進(jìn)行攔截后,重新發(fā)送給接收設(shè)備,查看接收設(shè)備是否做出響應(yīng),重放原理如圖7所示。
圖7 重放原理
嘗試將HTTP請求報(bào)文發(fā)送給Fiddler的重放模塊,進(jìn)行重放,如圖8所示。經(jīng)測試后發(fā)現(xiàn),服務(wù)均能接收成功,設(shè)備也做出響應(yīng),測試結(jié)果如圖9所示。
圖8 Fiddler請求重放
圖9 服務(wù)器響應(yīng)結(jié)果
通過以上測試可以發(fā)現(xiàn),發(fā)送的數(shù)據(jù)包信息未做混淆處理和加密處理,可以通過抓包等工具明文顯示出來,并且服務(wù)器端也并未對數(shù)據(jù)包進(jìn)行身份校驗(yàn)等安全控制措施,存在攻擊風(fēng)險(xiǎn)。
針對上述智能家電設(shè)備的通信安全問題,可以采用一些防護(hù)策略或改善建議。例如可以采用如下保護(hù)機(jī)制:
1)身份鑒別
智能家電設(shè)備與服務(wù)器端進(jìn)行通信時(shí),應(yīng)在數(shù)據(jù)傳輸之前向服務(wù)端提供身份鑒別,服務(wù)端需要驗(yàn)證智能家電設(shè)備的真實(shí)身份是否合法,并檢查控制權(quán)限是否與身份匹配,從而進(jìn)行設(shè)備的控制。
2)傳輸加密
為了降低數(shù)據(jù)傳輸過程中存在數(shù)據(jù)泄露、篡改風(fēng)險(xiǎn),智能家電設(shè)備應(yīng)對關(guān)鍵安全參數(shù)采用非明文方式傳輸,保障通過遠(yuǎn)程接入網(wǎng)絡(luò)訪問時(shí)的關(guān)鍵安全參數(shù)的保密性;避免因使用MQTT、HTTP等明文傳輸協(xié)議而導(dǎo)致信息泄露或被篡改的風(fēng)險(xiǎn)。
3)通信端口安全
智能家電設(shè)備網(wǎng)關(guān)應(yīng)能夠?qū)χ悄芗译娫O(shè)備終端開放的端口進(jìn)行識別,并對其中存在風(fēng)險(xiǎn)服務(wù)具備告警和屏蔽能力,如遠(yuǎn)程登錄協(xié)議(Telnet)、安全外殼協(xié)議(SSH)等。
4)防重放
為了確保每次請求都是一次性的,可采用Timestamp和nonce的模式,以防止他人通過抓包重放控制請求來對設(shè)備進(jìn)行非授權(quán)的控制。
5)法規(guī)和標(biāo)準(zhǔn)
此外,還可以通過網(wǎng)絡(luò)信息安全國家法律法規(guī)和物聯(lián)網(wǎng)智能家電標(biāo)準(zhǔn)化體系建設(shè),規(guī)范市場活動(dòng),促進(jìn)物聯(lián)網(wǎng)智能家電行業(yè)健康發(fā)展。國內(nèi)外越來越重視網(wǎng)絡(luò)信息的安全問題。國內(nèi)頒布了各項(xiàng)法律法規(guī),例如《中華人民共和國網(wǎng)絡(luò)安全法》《互聯(lián)網(wǎng)個(gè)人信息安全保護(hù)指引》《網(wǎng)絡(luò)安全等級保護(hù)基本要求》《中華人民共和國個(gè)人信息保護(hù)法》和《中華人名共和國數(shù)據(jù)安全法》等,同時(shí)也開展了一些列標(biāo)準(zhǔn)化工作,例如GB/T 36951-2018《信息安全技術(shù)物聯(lián)網(wǎng)感知終端應(yīng)用安全技術(shù)要求》、GB/T 37024-2018《信息安全技術(shù)物聯(lián)網(wǎng)感知層網(wǎng)關(guān)安全技術(shù)要求》、GB/T 37025-2018《信息安全技術(shù)物聯(lián)網(wǎng)數(shù)據(jù)傳輸安全技術(shù)要求》等一些列標(biāo)準(zhǔn)。國外出臺了GDPR通用數(shù)據(jù)保護(hù)條例,此外針對消費(fèi)級物聯(lián)網(wǎng)網(wǎng)絡(luò)安全,制定了ETSI EN 303 645《消費(fèi)級物聯(lián)網(wǎng)信息安全基線要求》,為連接互聯(lián)網(wǎng)的消費(fèi)產(chǎn)品建立安全基線。
本文筆者研究了物聯(lián)網(wǎng)框架下的智能家電設(shè)備通信安全評估問題,利用端口掃描和抓包等軟件工具,對智能家電設(shè)備端與服務(wù)端的通信的數(shù)據(jù)包進(jìn)行截獲、分析、重放等,尋找智能家電設(shè)備在通信過程中可能存在的安全性問題,如通信端口是否存在開放端口、敏感信息是否明文傳輸、控制指令是否具有防重放等,針對物聯(lián)網(wǎng)智能家電通信安全問題,提出了一些防護(hù)對策和建議。