目前,iot 技術還處於起步階段,與金融、電子商務等其他行業相比,安全性尚未得到充分理解和明確定義。開發一款iot 產品時,不論是像可穿戴裝置這樣的小型產品,還是像油田感測器網路或全球配送作業這樣的大型iot部署,從一開始就必須考慮到安全問題。要了解安全的問題所在,就需要了解iot 裝置的攻擊方法,通過研究攻擊方法提高iot產品的防禦能力。
作為國內最早從事智慧型硬體安全攻防研究的團隊,基於長期的智慧型硬體安全攻防實踐,360攻防實驗室對智慧型硬體裝置的安全隱患進行了系統的分析和梳理,總結了智慧型硬體裝置存在的八大安全隱患。
以下內容已經收錄入即將出版的《智慧型硬體安全》一書,這將是國內第一本系統介紹物聯網安全的專業書籍,該書的核心觀點是通過「以攻促防、以防抑攻」的安全理念,全面提高iot產品自身的安全防禦能力。
以下是智慧型硬體裝置八大安全隱患分析:
智慧型硬體主要安全問題比例
1. 資料儲存不安全
毫無疑問,移動裝置使用者面臨的最大風險是裝置丟失或被盜。任何撿到或偷盜裝置的人都能得到儲存在裝置上的資訊。這很大程度上依賴裝置上的應用為儲存的資料提供何種保護。很多智慧型硬體手機客戶端的開發者對於智慧型硬體的配置資訊和控制資訊都沒有選擇可靠的儲存方式。可以通過除錯介面直接讀取到明文或者直接輸出至logcat 中。使用者身份認證憑證、會話令牌等,可以安全地儲存在裝置的信任域內,通過對移動裝置的破解,即可達到劫持控制的目的。
2. 服務端控制措施部署不當
現有智慧型硬體的安全策略由於要降低對於服務端的效能損耗,很多情況下是把安全的過規則部署在客戶端,沒有對所有客戶端輸入資料的輸入檢查和標準化。使用正規表示式和其他機制來確保只有允許的資料能進入客戶端應用程式。在設計時並沒有實現讓移動端和服務端支援的一套共同的安全需求,可以通過將資料引數直接提交至雲端,客戶端apk 對引數過濾的限制,達到破解裝置功能的目的。
3. 傳輸過程中沒有加密
在智慧型硬體的使用過程中,存在連線開放wi-fi 網路的情況,故應設計在此場景下的防護措施。我們列乙個清單,確保所有清單內的應用資料在傳輸過程中得到保護(保護要確保機密性和完整性)。清單中應包括身份認證令牌、會話令牌和應用程式資料。確保傳輸和接收所有清單資料時使用ssl/tls 加密(see cfnetwork programming guide)。確保你的應用程式只接受經過驗證的ssl 證書(ca 鏈驗證在測試環境是禁用的;確保你的應用程式在發布前已經刪除這類測試**)。通過動態測試來驗證所有的清單資料在應用程式的操作中都得到充分保護。通過動態測試,確保偽造、自簽名等方式生成的證書在任何情況下都不被應用程式接受,如下圖所示。
傳輸過程沒有加密(圖中右側是明文資料編碼後的格式)
4. 手機客戶端的注入
手機客戶端和web 應用程式的輸入驗證和輸出過濾應該遵循同樣的規則。要標準化轉換和積極驗證所有的輸入資料。即使對於本地sqlite/sqlcipher 的查詢呼叫,也使用引數化查詢。當使用url scheme 時,要格外注意驗證和接收輸入,因為裝置上的任何乙個應用程式都可以呼叫url scheme。當開發乙個web/移動端混合的應用時,保證本地/local 的許可權是滿足其執行要求的最低許可權。還有就是控制所有uiwebview 的內容和頁面,防止使用者訪問任意的、不可信的網路內容。
5. 身份認證措施不當
授權和身份認證大部分是由服務端進行控制的,服務端會存在使用者安全校驗簡單、裝置識別碼規律可循、裝置間授權不嚴等安全問題。目前可以在分析出裝置身份認證標識規律的情況下,如mac 位址、sn 號等都可以通過猜測、列舉的方式得到,從而批量控制大量裝置,如下圖所示。這個漏洞的危害在智慧型硬體裡是最大的,因為它能夠影響到全部的智慧型硬體。
身份認證措施不當
6. 金鑰保護措施不當
有些iot 產品在開發過程中考慮到了安全加密,比如使用aes128 位加密做為傳輸加密的內容,使用md5 加密使用者密碼。在對於對稱性加密方式的處理過程中,金鑰的儲存方式是至關重要的。在iot 解決方案中,手機客戶端發起的請求需要對資料內容進行加密,也就是說,手機客戶端內需要有aes 的金鑰。如果對於金鑰存放的方式不當,可以輕而易舉地將資料還原成明文進行逆向分析,從而進行進一步的攻擊。在對大量的iot 裝置進行安全研究後發現,裝置基本上都會把aes 的金鑰存放在手機客戶端中,有的做得很簡單,寫在了乙個加密函式裡。有的做得很深,放在了乙個lib 庫中。但這些只是提高了一定的技術門檻而已,不是解決安全問題的辦法,如下圖所示。
密碼保護措施不當
7. 會話處理不當
有很多智慧型裝置都會由於會話管理措施不當,造成能夠通過會話劫持攻擊,直接控制裝置,達到裝置被破解的一種程度,所以說永遠不要使用裝置唯一標示符(如udid、ip、mac 位址、ieme)來標示乙個會話。保證令牌在裝置丟失/被盜取、會話被截獲時可以被迅速重置。務必保護好認證令牌的機密性和完整性(例如,只使用ssl/tls 來傳輸資料)。使用可信任的服務來生成會話。
8. 敏感資料洩露
對於智慧型裝置的安全研究,可以通過智慧型裝置所洩露出來的資料,進行進一步利用,從而獲得控制許可權。所以必須保證安全的東西都不放在移動裝置上;最好將它們(如演算法、專有/機密資訊)儲存在伺服器端。如果安全資訊必須儲存在移動裝置上,盡量將它們儲存在程序記憶體中。如果一定要放在裝置儲存上,就要做好保護。不要硬編碼或簡單地儲存密碼、會話令牌等機密資料。在發布前,清理被編譯進二進位制資料中的敏感資訊,因為編譯後的可執行檔案仍然可以被逆向破解物。
敏感資料洩露
智慧型硬體裝置八大安全問題分析
目前,iot 技術還處於起步階段,與金融 電子商務等其他行業相比,安全性尚未得到充分理解和明確定義。開發一款iot 產品時,不論是像可穿戴裝置這樣的小型產品,還是像油田感測器網路或全球配送作業這樣的大型iot部署,從一開始就必須考慮到安全問題。要了解安全的問題所在,就需要了解iot 裝置的攻擊方法,...
IOT裝置的7大安全問題
iot裝置一般包含各類串列埠,並且這些串列埠缺乏認證機制。一旦暴露給了hacker,hacker可以很容易的查詢敏感資訊和dump韌體,從而導致各類安全問題。建議廠家在推出iot裝置時,盡量關閉各類串列埠和加強認證機制。預設證書 密碼 是攻擊者常用攻擊目標之一,許多iot裝置使用相同的預設密碼,並且...
穿戴式智慧型裝置有哪些潛在安全問題 (上)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!隨著物聯網 internet of everything internet of things 時代的到來,可供消費者選擇的新型電子產品越來越多,穿戴式的智慧型裝置就是其中之一,它們正以驚人的速度普及。什麼是穿戴式智慧型裝置呢?顧名思義,就是人們日...