天天看點

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

引言:物聯網IoT的英文全稱是“The Internet of Things”,即物聯網就是物物相連的網際網路,也就是人們常說的萬物互聯。萬物互聯是一把雙刃劍,它既能會給生活帶來巨大的生活便利,同時也會帶來巨大的安全風險。

本文選自《智能硬體安全》一書,将從技術層面向您介紹IoT技術架構與安全威脅。

1 IoT安全概述

IoT的英文全稱是“The Internet of Things”,即物聯網就是物物相連的網際網路,也就是人們常說的萬物互聯。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

IoT時代,所有裝置都将内置一個智能晶片和智能OS,所有裝置都能通過各種網絡協定進行通信,而且是724小時相連,能夠産生真正海量的大資料;并且,伴随大資料應用的逐漸更新,也會讓機器變得更加智能,甚至具備自己的意識。萬物互聯的背後,使用者所使用的聯網裝置,都有可能存在安全漏洞。目前,國内智能硬體的生産和研發都處于起步階段,以網際網路創業公司為主,很多創業公司都參考國外标準的基礎架構,然後快速實作産品使用流程、上線、衆籌及釋出,在整個階段沒有過多地考慮安全的問題。然而,安全問題會給使用者帶來極大的困擾,甚至對網際網路造成一定的威脅。IoT所暴露的安全問題越來越多,被關注度也與日俱增。2015年7月,菲亞特克萊斯勒美國公司宣布召回140萬輛配有Uconnect車載系統的汽車,黑客可通過遠端軟體向該車載系統發送指令,進行各種操作。例如減速、關閉引擎、讓刹車失靈等,嚴重危害人身安全。在2015年8月的黑帽大會和世界黑客大會上,包括汽車在内的各種智能裝置都被爆出安全漏洞,黑客利用安全漏洞可以控制智能手機、汽車、交通紅綠燈,甚至搭載有智能狙擊鏡的進階狙擊步槍。在2016年的RSA2016大會上,隐私顧問Rebecca Herold表示,大量IoT裝置的釋出,沒有任何安全和隐私控制。一些暴露在網際網路上的IoT裝置被感染了蠕蟲病毒,并定期發起拒絕服務攻擊。

2 IoT技術架構分析

IoT技術應用雖然複雜,但是從邏輯上看可以把它的技術架構分為雲平台、裝置終端和手機終端三個方面。能實作的流程是通過手機端下載下傳APP與雲端進行通信,發送控制指令,再由雲端轉發控制指令給裝置終端。這樣就能夠實作在任何環境下,控制一台連接配接網際網路的智能裝置,進而實作智能化。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

2.1 雲平台

雲平台是控制IoT的控制核心,它将使用者的APP和裝置終端控制緊密地聯系到了一起,雲平台将智能裝置接入公網增加了安全風險。居民家中、工作場所及公共空間裡的物聯網裝置生成的潛在敏感型資料,會在公共網際網路中來回穿梭。對于制造商及這些聯網裝置的使用者來說,確定這些資料的安全可謂是重中之重。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

IoT雲平台按照功能類型大緻可分為三類:轉發雲、功能雲和第三方雲平台。每種雲平台對于手機終端和裝置終端的功能的偏重程度不一樣,這也是我們在研究IoT安全時需要注意的。

(1)轉發雲

轉發雲顧名思義就是指雲端功能用于流量轉發使用。這類雲平台屬于輕量級,自身代碼和功能不多,主要功能是起到反向代理的作用,将處于内網的智能終端裝置流量轉發給手機,将手機控制流量轉發給智能終端。轉發雲平台自身沒有過多的功能。這類雲平台的主要特點是快速轉發,雲端的功能負擔比較小,成本低。手機用戶端收到的資料和IoT終端産生的資料是一緻的。是以以後對于這類雲平台的分析,隻需分析一種狀态的資料包即可。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

(2)功能雲

功能雲實際上就是所有控制、資訊等功能全部集中在雲端的平台。這類平台的主要特點是手機終端和裝置終端都是輕量級的,自身代碼量非常少。在安全研究過程中,從手機終端和裝置終端上來看是發現不了太多資訊的。對使用功能雲的智能硬體的安全研究,應将重點工作放在如何通過滲透測試手段擷取功能雲的權限,進而反向控制智能終端裝置上。反之,對于功能雲的防護,也應當把防護重心部署在功能雲上。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

(3)第三方雲平台

第三方雲平台是指智能硬體産品原廠提供的雲服務以外的雲平台,如“某某微聯”等智能硬體接入平台。這類平台的主要功能是為使用者接入提供統一的接口,使用者在擁有多個智能硬體的環境下,使用一個APP就可以實作統一控制。對于第三方雲平台的安全研究,重點在于分析雲端和裝置終端的流量。目前,市面上大多數第三方IoT雲平台都做得比較安全,而第三方雲和原廠的雲平台之間會統一API接口,有時找到API接口的文檔,會對安全研究有幫助。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

2.2 手機用戶端

現今,大多數智能硬體都使用手機用戶端作為控制終端,手機用戶端可以作為智能硬體功能呈現和控制的主要手段。主流的手機用戶端為iOS版本APP和Android版本APK。在開發智能硬體的過程中,由于iOS版本需要蘋果公司稽核,是以流程非常長,很多廠商都是先開發測試iOS版本,等到功能全部開發完成,就可以送出稽核,然後快速開發APK版本。最終保證兩個版本同時上線。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

手機用戶端的主要功能有資訊查詢、裝置控制、狀态回報、遠端更新、裝置配對連網等,在這些功能背後有很多網站接口、引用的第三方庫、類等。

目前,智能終端手機控制功能內建在第三方APP中,這樣的開發方式需要第三方提供标準的SDK接口,統一标準的資料調用格式進而使智能終端控制和第三方APP完美相容。

在IoT安全分析過程中,手機用戶端是非常重要的一個步驟,而且手機用戶端的分析門檻低,不需要有智能硬體就可以進行分析。通過手機用戶端的漏洞去控制一台裝置是非常有效的路徑,安全人員應多加防範。

本書後面章節會詳細介紹APP和APK的逆向分析方法。

2.3 智能硬體終端

(1)硬體結構

從硬體上看,智能終端普遍采用的是計算機經典的體系結構——馮·諾依曼結構,即由運算器(Calculator,也叫算術邏輯部件)、控制器(Controller)、存儲器(Memory)、輸入裝置(Input Device)和輸出裝置(Output Device)5大部件組成,其中的運算器和控制器構成了計算機的核心部件——中央處理器(Center Process Unit,簡稱CPU)。每一個處理單元都可以看作是一個單獨的計算機系統,運作着不同的程式。每個處理單元通過一定的方式與應用處理單元通信,接受應用處理單元的指令,進行相應的操作,并向應用處理單元傳回結果。

這些特定的處理單元晶片往往是以ASIC的形式出現的,但實際上仍然是片上計算機系統。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

(2)軟體結構

在智能終端的軟體結構中,系統軟體主要是作業系統和中間件。作業系統的功能是管理智能終端的所有資源(包括硬體和軟體),同時也是智能終端系統的核心與基石。作業系統是一個龐大的管理控制程式,大緻包括 5 個方面的管理功能:程序與處理機管理、作業管理、存儲管理、裝置管理和檔案管理。常見的智能終端作業系統有Linux、Tiny OS、BusyBox、OpenWrt、RIOT、Contiki等。

中間件一般包括函數庫和虛拟機,使得上層的應用程式在一定程度上與下層的硬體和作業系統無關。應用軟體則提供供使用者直接使用的功能,滿足使用者需求。從提供功能的層次來看,可以這麼了解,作業系統提供底層API,中間件提供高層API,而應用程式提供與使用者互動的接口。在某些軟體結構中,應用程式可以跳過中間件,直接調用部分底層API來使用作業系統提供的底層服務。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

ARM優秀的設計和商業模式,使其非常适合智能終端的應用場景,是以目前智能終端所使用的CPU核心以ARM居多,主要有ARM9、ARM11、ARM Cortex A8等幾種架構。另外,Marvell公司的PXA解決方案采用的XScale核心也有一定的應用。

3 IoT安全威脅分析

随着智能硬體創業的興起,大量智能家居和可穿戴裝置進入了人們的生活,根據Gartner報告預測,2020年全球IoT裝置的數量将高達260億個。由于安全标準滞後,以及智能裝置制造商缺乏安全意識和投入,IoT安全已經埋下極大隐患,是個人隐私、企業資訊安全,甚至國家關鍵基礎設施的頭号安全威脅。

目前,IoT存在5大安全隐患。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

3.1 資料存儲不安全

毫無疑問,移動裝置使用者面臨的最大風險是裝置丢失或被盜。任何撿到或偷盜裝置的人都能得到存儲在裝置上的資訊。這很大程度上依賴于裝置上的應用為存儲的資料提供何種保護。很多智能硬體手機用戶端的開發者對智能硬體的配置資訊和控制資訊都沒有選擇可靠的存儲方式,可以通過調試接口直接讀取到明文或者直接輸出至logcat中。使用者身份認證憑證、會話令牌等,可以安全地存儲在裝置的信任域内,通過對移動裝置的破解,可達到劫持控制的目的。

3.2 服務端控制措施部署不當

由于要降低對服務端的性能損耗,很多情況下現有智能硬體的安全政策是把安全的過濾規則部署在用戶端,沒有對所有用戶端輸入資料的輸入檢查和标準化。使用正規表達式和其他機制可以確定隻有允許的資料才能進入用戶端應用程式。在設計時并沒有實作讓移動端和服務端支援一套共同的安全需求。可以通過将資料參數直接送出至雲端或用戶端APK對參數過濾的限制,達到破解裝置功能的目的。

3.3 傳輸過程中沒有加密

在智能硬體的使用過程中,存在連接配接開放Wi-Fi網絡的情況,故應設計在此場景下的防護措施。可以列一個清單,確定所有清單内的應用資料在傳輸過程中得到保護(保護要確定機密性和完整性)。清單中應包括身份認證令牌、會話令牌和應用程式資料。確定傳輸和接收所有清單資料時使用SSL/TLS加密(See CFNetwork Programming Guide)。確定你的應用程式隻接受經過驗證的SSL證書(CA鍊驗證在測試環境中是禁用的;確定你的應用程式在釋出前已經删除這類測試代碼)。通過動态測試來驗證所有的清單資料在應用程式的操作中都得到充分保護。通過動态測試、確定僞造、自簽名等方式生成的證書在任何情況下都不被應用程式接受。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

3.4 手機用戶端的注入

手機用戶端和Web應用程式的輸入驗證和輸出過濾應該遵循同樣的規則。要标準化轉換和積極驗證所有的輸入資料,即使對于本地SQLite/SQLcipher的查詢調用,也使用參數化查詢。當使用URL scheme時,要格外注意驗證和接收輸入,因為裝置上的任何一個應用程式都可以調用URL scheme。當開發一個Web/移動端混合的應用時,保證本地的權限是滿足其運作要求的最低權限。另外,控制所有UIWebView的内容和頁面,防止使用者通路任意的、不可信的網絡内容。

3.5 身份認證措施不當

授權和身份認證大部分是由服務端進行控制的,服務端會存在使用者安全校驗簡單、裝置識别碼規律可循、裝置間授權不嚴等安全問題。目前,可以在分析出裝置身份認證辨別規律的情況下(如MAC位址、SN号等都可以通過猜測、枚舉的方式得到),批量控制大量裝置。這個漏洞的危害在智能硬體裡是最大的。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

3.6 密鑰保護措施不當

有些IoT産品在開發過程中考慮到了安全加密,比如使用AES128位加密作為傳輸加密的内容,使用MD5加密使用者密碼。在對于對稱性加密方式的處理過程中,密鑰的儲存方式是至關重要的。在IoT解決方案中,手機用戶端發起的請求需要對資料内容進行加密。也就是說,手機用戶端内需要有AES的密鑰。如果密鑰存放的方式不當,可以輕而易舉地将資料還原成明文進行逆向分析,進而進行進一步的攻擊。在對大量的IoT裝置進行安全研究後發現,裝置基本上都會把AES的密鑰存放在手機用戶端中,有的做得很簡單,寫在了一個加密函數裡。有的做得很深,放在一個lib庫中。這些隻是提高了技術門檻而已,不是解決安全問題的辦法。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

3.7 會話處理不當

很多智能裝置都會因會話管理措施不當,受到攻擊會話劫持,使裝置被控制,是以說永遠不要使用裝置唯一标示符(如UDID、IP、MAC位址、IEME)來标示一個會話。保證令牌在裝置丢失/被盜取、會話被截獲時可以被迅速重置。務必保護好認證令牌的機密性和完整性(例如,隻使用SSL/TLS傳輸資料)。另外,使用可信任的服務來生成會話。

3.8 敏感資料洩露

對于智能裝置的安全研究,可以通過智能裝置所洩露出來的資料,進行進一步分析,進而獲得控制權限。是以必須保證安全的東西都不放在移動裝置上,最好将它們(如算法、專有/機密資訊)存儲在伺服器端。如果安全資訊必須存儲在移動裝置上,盡量将它們儲存在程序記憶體中。如果一定要放在裝置存儲上,就要做好保護。不要寫死或簡單地存儲密碼、會話令牌等機密資料。在釋出前,清理被編譯進二進制資料中的敏感資訊,因為編譯後的可執行檔案仍然可以被逆向破解。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析
IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

想及時獲得更多精彩文章,可在微信中搜尋“博文視點”或者掃描下方二維碼并關注。

IoT技術架構與安全威脅1 IoT安全概述2 IoT技術架構分析3 IoT安全威脅分析

繼續閱讀