IoT安全系列-如何發(fā)現(xiàn)攻擊面并進(jìn)行測(cè)試
IoT是物聯(lián)網(wǎng)的代名詞,然而隨著這些智能設(shè)備的安全性得到越來越多人的關(guān)注。要想對(duì)物聯(lián)網(wǎng)設(shè)備安全性進(jìn)行評(píng)估,需要先了解它所涉及的各種“組件”,以確定哪部分“組件”可能發(fā)生什么樣的安全問題。
IoT架構(gòu)基礎(chǔ)設(shè)施可分為三大類
1.嵌入式設(shè)備
2.軟件和應(yīng)用程序
3.無線電通信
設(shè)備
設(shè)備是任何物聯(lián)網(wǎng)架構(gòu)的關(guān)鍵,這里的設(shè)備指的是架構(gòu)中所涉及的任何硬件設(shè)備(網(wǎng)關(guān)、傳感器、遙控器等)。
在多數(shù)IoT智能環(huán)境中,設(shè)備通常包括網(wǎng)關(guān)和操作設(shè)備,網(wǎng)關(guān)作為其他設(shè)備的控制中心,而操作設(shè)備是執(zhí)行實(shí)際動(dòng)作的設(shè)備(如按鍵遙控器)或監(jiān)控傳感器(煙霧探測(cè)器、水浸傳感器、紅外探測(cè)器等)。
設(shè)備漏洞指的是嵌入式設(shè)備中常見的漏洞,比如:串口root權(quán)限訪問,閃存中提取固件等…
軟件和云組件
物聯(lián)網(wǎng)設(shè)備中的軟件和云組件包括以下元素:
1.設(shè)備固件
2.WEB應(yīng)用
3.用于控制、配置和監(jiān)控設(shè)備的移動(dòng)應(yīng)用程序
IoT架構(gòu)中每個(gè)“組件”部分都有特定的漏洞,后面將詳細(xì)介紹固件部分以及基于IoT的WEB和移動(dòng)應(yīng)用漏洞。
無線電通信
無線電通信是IoT架構(gòu)安全的重要方面,基于無線電通信,簡(jiǎn)單說任何通信都是發(fā)生于設(shè)備與設(shè)備或應(yīng)用程序與設(shè)備之間。IoT中常用的通信協(xié)議有:WiFi、BLE、ZigBee、ZWave、6LowPAN和蜂窩數(shù)據(jù)等。
對(duì)于本套IoT安全系列文章,我們將看看IoT使用哪些主要通信方式和針對(duì)它們的具體攻擊方法。
如何發(fā)現(xiàn)物聯(lián)網(wǎng)設(shè)備的攻擊面
到目前為止在日常的工作當(dāng)中我已經(jīng)完成了大量的IoT測(cè)試業(yè)務(wù),依據(jù)個(gè)人經(jīng)驗(yàn),有效的物聯(lián)網(wǎng)設(shè)備的安全測(cè)試,你需要對(duì)于給定設(shè)備進(jìn)行綜合評(píng)估并發(fā)現(xiàn)所有的攻擊面。評(píng)估IoT攻擊面的技術(shù)相比于評(píng)估WEB應(yīng)用程序、移動(dòng)應(yīng)用程序并沒有改變很多,多數(shù)仍是以WEB攻擊面為主,比如市面上常見的網(wǎng)關(guān)+路由器的組合,然而這里將涉及很多IoT架構(gòu)中的“組件”攻擊面析。
常見IoT架構(gòu)
遵循以下步驟可以更快的發(fā)現(xiàn)IoT的攻擊面:
1.首先了解整個(gè)物聯(lián)網(wǎng)設(shè)備架構(gòu),通過各種途徑或在廠商文檔信息中發(fā)現(xiàn)更多的相關(guān)細(xì)節(jié)。
2.對(duì)指定設(shè)備的每個(gè)架構(gòu)組件建立一個(gè)體系結(jié)構(gòu)圖,如果是兩個(gè)“組件”之間的通信,用導(dǎo)向線畫出并指定正在使用的通信協(xié)議等詳細(xì)信息,如果應(yīng)用程序是使用API與云端發(fā)送和接收數(shù)據(jù),那就在體系結(jié)構(gòu)圖中標(biāo)記它并記錄使用的是哪個(gè)API。
3.當(dāng)完整的體系結(jié)構(gòu)圖準(zhǔn)備好時(shí)就開始像攻擊者一樣去思考,如果你必須攻擊某個(gè)特定“組件”的話你需要確定使用什么樣的技術(shù)并提取哪些輔助攻擊的相關(guān)信息,在表格中列出IoT架構(gòu)中的組件和所需做的測(cè)試。
下表是IoT架構(gòu)中一個(gè)“組件”的攻擊面分析:
上述分析步驟完成,我們就可以執(zhí)行實(shí)際的測(cè)試攻擊,既然我們已經(jīng)有了明確的想法接下來看看我們可以使用什么樣的攻擊技術(shù)。
1.IoT網(wǎng)關(guān)
基于硬件的攻擊向量-串口通信,固件導(dǎo)出等…..獲得訪問固件的權(quán)限并提取存儲(chǔ)在其中的敏感信息。
嗅探發(fā)送到云端的通信數(shù)據(jù)。
重放和偽造通信數(shù)據(jù)并發(fā)送到云端。
2.設(shè)備
基于硬件的攻擊向量-串口通信,固件導(dǎo)出等…..獲得訪問固件的權(quán)限并提取存儲(chǔ)在其中的敏感信息。
設(shè)備和網(wǎng)關(guān)之間的無線電通信分析攻擊如:Zigbee, zWave, 6LoWPAN。
BLE(藍(lán)牙低功耗技術(shù))攻擊。
3.移動(dòng)應(yīng)用程序
嗅探發(fā)送和接收的數(shù)據(jù)。
重放和偽造通信數(shù)據(jù)并發(fā)送到云端或設(shè)備。
移動(dòng)應(yīng)用程序逆向分析及敏感數(shù)據(jù)提取。
4.云端/WEB程序
常見WEB漏洞等…
簡(jiǎn)單案例分析
下面內(nèi)容記錄了對(duì)某款物聯(lián)網(wǎng)設(shè)備的攻擊面及安全分析,包括網(wǎng)關(guān)、設(shè)備、云端、移動(dòng)客戶端之間的通信安全,云端API接口邏輯、網(wǎng)關(guān)與設(shè)備綁定和解綁等關(guān)鍵操作的安全情況。
通信安全
網(wǎng)關(guān)-云端-移動(dòng)客戶端:
在套用上面的攻擊面分析模型后可以發(fā)現(xiàn)待測(cè)設(shè)備的機(jī)密性得到了良好的保護(hù)。聯(lián)合報(bào)警網(wǎng)關(guān)、設(shè)備、云端系統(tǒng)、移動(dòng)客戶端四者之間的通信,除了日志統(tǒng)計(jì)信息(對(duì)于與 logs.***.com
服務(wù)器的通信)外全部是加密通信,TCP 鏈接使用 TLS1.2 通信,使用 HTTPS 傳輸,UDP 數(shù)據(jù)使用 AES-128-ECB 加密后傳輸。
完整性通用得到了良好的保護(hù)。HmacSHA256,HmacSHA1,HmacMd5 的方式保護(hù),Hmac 的 Key 來自于用戶登錄之后服務(wù)端下發(fā)的 token,聯(lián)合報(bào)警設(shè)備的舊系統(tǒng)固件將數(shù)據(jù)本地明文存儲(chǔ)在 xml 文件中,新版本中本地?cái)?shù)據(jù)是加密存儲(chǔ)的。雖然保證了機(jī)密性和完整性但仍存在安全問題,云端接口無法抵御重放攻擊。
- POST /api/*****/version/check HTTP/1.1
- Host: api.******.com
api.******.com無防重放機(jī)制,通過api.******.version.check獲取當(dāng)前APP版本,通過更改客戶端版本到較低版本,再重放該請(qǐng)求,可以返回需要升級(jí)的Response包。
- POST /api/*****/login HTTP/1.1
- Host: api.*****.com
api.*****.login通過傳輸用戶名和加密的密碼和短信驗(yàn)證碼結(jié)合才可登錄,該接口可以重放,通過分析業(yè)務(wù)安全防護(hù)邏輯可發(fā)現(xiàn)雖然云端有IP登錄次數(shù)限制,但在次數(shù)限制內(nèi)更換代理IP可以持續(xù)爆破用戶名和密碼。
- POST /api/*****/getit HTTP/1.1
- Host: api.*****.com
api.*****.getit仍可以重放,客戶端退出賬戶,云端未將客戶端sessionid做過期處理,導(dǎo)致云端還可以接受該sessionid并且返回相應(yīng)的返回值。
類似這樣的接口還很多在此不一一列舉。
客戶端與服務(wù)端的通信安全:
客戶端逆向分析通信的系統(tǒng)和認(rèn)證方式:
身份認(rèn)證
移動(dòng)客戶端訪問云端系統(tǒng)使用不同的認(rèn)證方式,有 token 和 session 校驗(yàn)這兩種。在IoT架構(gòu)設(shè)計(jì)層面,云端為了驗(yàn)證每次移動(dòng)客戶端的請(qǐng)求都要求附帶token,而每次移動(dòng)客戶端向云端請(qǐng)求token將增加云端服務(wù)的壓力,故該聯(lián)合網(wǎng)關(guān)報(bào)警產(chǎn)品允許單次批量獲取token存儲(chǔ)本地供請(qǐng)求時(shí)調(diào)用。默認(rèn)每次申請(qǐng)10個(gè)token,將count值改為100甚至更多仍可獲取相應(yīng)數(shù)量的token。
交互安全
如果你接觸過IoT設(shè)備,你會(huì)知道聯(lián)合報(bào)警網(wǎng)關(guān)可搭配:煙霧探測(cè)器、水浸傳感器、紅外探測(cè)器等使用。實(shí)際上傳感器與網(wǎng)關(guān)設(shè)備的綁定、解綁也存在安全問題。
射頻信號(hào)重放
遙控、傳感器與網(wǎng)關(guān)通信的頻率為868MHZ,如下圖所示:
抓取到的報(bào)警信號(hào)如下圖所示:
休眠模式波形如下:
靜默模式:
使用HackRF抓取傳感器向聯(lián)合報(bào)警網(wǎng)關(guān)發(fā)送的告警信號(hào)并重放,發(fā)現(xiàn)聯(lián)合報(bào)警網(wǎng)關(guān)沒有防重放機(jī)制,將抓取到的信號(hào)重放警報(bào)聲馬上響起。















































