發現物聯網(IoT)設備的攻擊面


IoT是物聯網的代名詞,要想對物聯網設備安全性進行評估,需要先了解它
所涉及的各種“組件”,以確定哪部分“組件”可能發生什麼樣的安全問題。我們將看看IoT使用哪些主要通信方式和針對它們的具體攻擊方法。

IoT架構基礎設施三大類:

  1. 嵌入式設備
  2. 軟件和應用程序
  3. 無線電通信

設備

設備是任何物聯網架構的關鍵,這裏的設備指的是架構中所涉及的任何關於硬件設備(網關、傳感器、遙控器等)
在許多IoT智能環境中,設備通常包括網關和操作設備,網關作爲其他設備的控制中心,而操作設備是執行實際行動的設備(如按鍵遙控器)或監控傳感器(煙霧探測器、水侵傳感器、紅外探測器等)
設備漏洞指的是嵌入式設備中常見的漏洞,比如:串口root權限訪問,內存中提取固件等…

軟件和雲組件

物聯網設備中軟件和雲組件包括如下元素:

  1. 設備固件
  2. WEB應用
  3. 用於控制、配置和監控設備的移動應用程序
    IoT架構中每個“組件”部分都有特定的漏洞

無線電通信

無線電通信是IoT架構安全的重要方面,基於無線電通信,簡單說任何通信都是發生於設備與設備或應用程序與設備之間。IoT中常用的通信協議有:WiFi、BLE(藍牙)、ZigBee(傳輸範圍短,低功耗)、ZWave(最低功耗和最低成本的技術)、6LowPAN(IPv6低速無線個域網)和蜂窩數據等。

如何發現物聯網設備的攻擊面

評估IoT攻擊面的技術相比於評估WEB應用程序、移動應用程序並沒有改變很多,多數仍是以WEB攻擊面爲主,比如市面上常見的網關+路由器的組合,然而這裏將涉及很多IoT架構中的“組件”攻擊面分析。
常見IoT架構
遵循以下步驟可以更快的發現IoT的攻擊面:

  1. 首先了解整個物聯網設備架構,通過各種途徑或在廠商文檔信息中發現更多的相關細節。
  2. 對指定設備的每個架構組件建立一個體繫結構圖,如果是兩個“組件”之間的通信,用導向線畫出並指定正在使用的通信協議等詳細信息,如果應用程序是使用API與雲端發送和接收數據,那就在體系結構圖中標記它並記錄使用的是哪個API。
  3. 當完整的體系結構圖準備好時就開始像攻擊者一樣去思考,如果你必須攻擊某個特定“組件”的話你需要確定使用什麼樣的技術並提取哪些輔助攻擊的相關信息,在表格中列出IoT架構中的組件和所需做的測試。

下表是IoT架構中一個“組件”的攻擊面分析:
IoT攻擊面分析
上述分析步驟完成,我們就可以執行實際的測試攻擊,既然我們已經有了明確的想法接下來看看我們可以使用什麼樣的攻擊技術。

  1. IoT網關
    基於硬件的攻擊向量-串口通信,固件導出等……獲得訪問固件的權限並提取存儲在其中的敏感信息。
    嗅探發送到雲端的通信數據。
    重放和僞造通信數據併發送到雲端。
  2. 設備
    基於硬件的攻擊向量-串口通信,固件導出等……獲得訪問固件的權限並提取存儲在其中的敏感信息。
    設備和網關之間的無線電通信分析攻擊如:Zigbee, zWave, 6LoWPAN。
    BLE(藍牙低功耗技術)攻擊。
  3. 移動應用程序
    嗅探發送和接收的數據。
    重放和僞造通信數據併發送到雲端或設備。
    移動應用程序逆向分析及敏感數據提取。
  4. 雲端/WEB程序
    常見WEB漏洞等…

簡單案例分析

下面內容記錄了對某款物聯網設備的攻擊面及安全分析,包括網關、設備、雲端、移動客戶端之間的通信安全,雲端API接口邏輯、網關與設備綁定和解綁等關鍵操作的安全情況。

通信安全

網關-雲端-移動客戶端:
在套用上面的攻擊面分析模型後可以發現待測設備的機密性得到了良好的保護。聯合報警網關、設備、雲端系統、移動客戶端四者之間的通信,除了日誌統計信息(對於與 logs.***.com服務器的通信)外全部是加密通信,TCP 鏈接使用 TLS1.2 通信,使用 HTTPS 傳輸,UDP 數據使用 AES-128-ECB 加密後傳輸。
完整性通用得到了良好的保護。HmacSHA256,HmacSHA1,HmacMd5 的方式保護,Hmac 的 Key 來自於用戶登錄之後服務端下發的 token,聯合報警設備的舊系統固件將數據本地明文存儲在 xml 文件中,新版本中本地數據是加密存儲的。雖然保證了機密性和完整性但仍存在安全問題,雲端接口無法抵禦重放攻擊。

POST /api/*****/version/check HTTP/1.1
Host: api.******.com

api.******.com無防重放機制,通過api.******.version.check獲取當前APP版本,通過更改客戶端版本到較低版本,再重放該請求,可以返回需要升級的Response包。
http://emonsec.com/img/20200509010132.png

POST /api/*****/login HTTP/1.1
Host: api.*****.com

api.*****.login通過傳輸用戶名和加密的密碼和短信驗證碼結合纔可登錄,該接口可以重放,通過分析業務安全防護邏輯可發現雖然雲端有IP登錄次數限制,但在次數限制內更換代理IP可以持續爆破用戶名和密碼。

POST /api/*****/getit HTTP/1.1
Host: api.*****.com

api.*****.getit仍可以重放,客戶端退出賬戶,雲端未將客戶端sessionid做過期處理,導致雲端還可以接受該sessionid並且返回相應的返回值。

客戶端與服務端的通信安全:

客戶端逆向分析通信的系統和認證方式:

身份認證

移動客戶端訪問雲端系統使用不同的認證方式,有 token 和 session 校驗這兩種。在IoT架構設計層面,雲端爲了驗證每次移動客戶端的請求都要求附帶token,而每次移動客戶端向雲端請求token將增加雲端服務的壓力,故該聯合網關報警產品允許單次批量獲取token存儲本地供請求時調用。默認每次申請10個token,將count值改爲100甚至更多仍可獲取相應數量的token。

交互安全

如果你接觸過IoT設備,你會知道聯合報警網關可搭配:煙霧探測器、水浸傳感器、紅外探測器等使用。實際上傳感器與網關設備的綁定、解綁也存在安全問題。

射頻信號重放

遙控、傳感器與網關通信的頻率爲868MHZ,如下圖所示:

抓取到的報警信號如下圖所示:

休眠模式波形如下:

靜默模式:

使用HackRF抓取傳感器向聯合報警網關發送的告警信號並重放,發現聯合報警網關沒有防重放機制,將抓取到的信號重放警報聲馬上響起。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章