基於IoT體系安全防護建設方案簡析

幾維安全小編發表於2018-12-04

基於IoT體系安全防護建設方案簡析


IoT安全態勢淺析


1、IoT發展及市場展望


網際網路的發展改變了人們獲取資訊的方式,也改變了人與人資訊互動的過程和體驗。從傳統的紙質出版物發展為網路資訊、電子圖書,從口口相傳到即時通訊,從逛商場到手機一點即時下單、送貨到家,網際網路已逐步改變了人們的生活方式。而物聯網的發展將會更徹底打破物與物、人與物的互動模式,進一步加速萬物互聯新時代的發展程式。


當前,以晶片技術(如:ARM/Intel/NXP)、通訊技術(如:NB-IoT、LTE eMTC、LoRa)、大資料、AI等為基礎的物聯網應用已滲透到各個領域,例如智慧城市,智慧交通,智慧製造,公共安全等。基於低功耗晶片的終端感知和控制系統早在工業領域已開始應用,目前更為廣泛的應用不斷延展,並逐步滲透到人們生活的方方面面。


從物聯網應用潛在規模看,僅僅是國內市場就有十幾億的人口基數,圍繞著我們“衣食住行安”的每一方面都可以是一個龐大的產業體系。零部件製造商、裝置提供商、軟體開發商、系統整合商、系統運營商、安全廠商等產業鏈上下游相關角色都可以從中挖掘出商機,並參與到整體的建設中來。根據Gartner預測,到2020年物聯網將連線全球40億的使用者、250億以上的終端裝置,在此過程將會有2500萬的應用APP會被開發出來,沉澱出超過50萬億GB的資料,同時創造出4萬億美金的收入機會。在這個快速增長且體量龐大的體系中,不同於傳統裝置和應用場景的差異化安全需求凸顯。


傳統模式下,我們主要透過伺服器端架設Web服務等方式來實現功能和提供服務,大多數業務邏輯是放在伺服器上,所以面臨的威脅多是針對伺服器的滲透攻擊,如APT攻擊。在物聯網的環境下,隨著數字資產的產生和業務場景的變化,大量智慧終端將出現在人們身邊,並實現物與人或物與物進行通訊和互聯。但是這些日益滲透到人們生活的眾多終端在給人們提供便利的同時,若是受到惡意的利用和攻擊將會帶來更直接的安全威脅,造成資訊洩露、經濟受損甚至是人身安全,如智慧汽車、智慧家居產品的攻擊。


2、系統架構及主要特點


一個完整的物聯網系統架構完全融合了現有的資訊和網際網路技術,透過智慧終端、雲服務、面向使用者的軟體應用和Web服務等實現人與物或者物與物有效的互動。


通常情況下,終端裝置採集資料並將資料上傳到伺服器進行資料儲存和業務處理,再以平臺服務的方式提供給各種業務場景下的應用使用,包括桌面應用、Web應用以及移動應用等,最終給使用者提供服務。同時在使用者使用服務的過程中也會透過雲端的介面實現終端裝置互聯,如影片監控、工業控制等。


基於IoT體系安全防護建設方案簡析

圖1 物聯網系統要素示意圖


物聯網系統從範圍看涉及領域多、覆蓋面廣;從應用看涉及人們工作、生活方方面面,與人們的人身財產安全緊密相關;從架構看涉及終端軟硬體、應用軟體、雲平臺等關鍵環節,安全保障需要各關鍵環節共同實現。


安全風險分析


1、特斯拉攻擊事件覆盤


騰訊科恩實驗室對特斯拉進行長期的分析和漏洞挖掘,並在Black Hat 2018大會上釋出了相關演示和詳細漏洞情況。整個過程大致分為4個步驟:

(1) 透過Webkit獲取以瀏覽器許可權進行程式碼執行

(2) 獲取CID(CarInformaticDevice)系統許可權

(3) 挖掘CID-UPdater漏洞

(4) 刷入後門韌體控制閘道器


基於IoT體系安全防護建設方案簡析

圖2 特斯拉攻擊事件主要步驟覆盤


Webkit元件效能優秀且應用廣泛,目前被最大的兩大移動陣營Apple和Google同時使用,最近幾年一直都是攻擊者漏洞挖掘的重點目標,很多系統級的攻擊都從Webkit入手,比如iOS、Android、Play Station系統的越獄,透過瀏覽器攻擊的惡意木馬攻擊。


對該安全事件進行復盤發現,騰訊科恩實驗室團隊第一個攻擊目標就是基於Webkit的瀏覽器。首先是透過原始碼審計和模糊測試的方式挖到實現記憶體任意讀寫的漏洞,並以此為基礎實現任意程式碼執行的功能,從而獲取以瀏覽器身份執行任意程式碼的許可權。接著就是獲取CID的系統級許可權,也就是人們常說的越獄或者Root的過程。在這個過程中,透過對瀏覽器能夠互動的驅動進行逆向分析,找到存在任意記憶體讀寫漏洞的核心,並透過漏洞利用獲取Root許可權。緊接著,團隊對CID韌體進行逆向分析,梳理出閘道器韌體更新的業務邏輯和檔案傳輸協議,在CID-UPdater中並找到繞過更新檔案簽名校驗的方式,成功向閘道器刷入帶後門的系統韌體從而完成對車控的絕大部分的控制許可權。


整個攻擊過程包含四個步驟和軟體原始碼審計、韌體逆向、業務漏洞挖掘三種技術手段,缺一不可。


2、終端與通訊風險


覆盤特斯拉攻擊事件發現,主要受攻擊點基本都集中在終端上,這意味著終端隱患有可能成為整體安全性攻擊的切入點和突破口。從攻擊目的來看,主要有以獲取終端系統ROOT許可權來提高許可權控制終端達到完全控制,和以獲取金鑰為主,透過獲取的金鑰進行資料解密實現資料盜取兩種。從攻擊方式來看,透過突破終端安全隱患形成攻擊的方式主要有:


(1)韌體提取

終端的軟體部分以韌體形式存在,通常是打包為資源和可執行程式的包,例如特斯拉韌體boot.img,其中的配置和可執行程式是所有漏洞挖掘和軟體攻擊的基礎,韌體的洩露會極大的提供被破解的風險,讓更多的人在不接觸終端的情況下也能參與到破解過程中。


(2)業務程式碼逆向破解

在沒有對程式碼進行保護的情況下,一旦韌體暴露在攻擊者的面前,業務程式碼被逆向分析是輕而易舉的事情。現在很多反編譯器工具都能把彙編指令翻譯成C的虛擬碼,雖然不一定能直接執行,但業務邏輯還是很容易就能看明白。


(3)協議介面利用

CID、閘道器等都會透過相關協議介面互相進行通訊,比如系統更新介面。當我們無法直接和目標裝置接觸,透過控制硬體直接提取和修改目標裝置韌體的具體邏輯的時候,可以透過逆向分析其他韌體來發現目標裝置對提供服務介面,詳細分析服務引數,並利用這些服務進行非法呼叫。


(4)金鑰竊取

在柯克霍夫原則下,金鑰是能解密的關鍵。在網路終端都是伺服器的時候,從網路抓包進行唯密文攻擊幾乎是不可能的,但是進入物聯網的時代,物聯網終端遍佈我們的周圍,如何保證金鑰不被洩露是一個巨大的挑戰。攻擊者可以透過各種方式找到金鑰,而公開的演算法具有比較明顯的特徵,攻擊者在函式呼叫和資料流向過程很容易就能攔截獲取到金鑰。


3、雲服務與漏洞風險


雲端資料中心作為物聯網終端資料集中儲存和業務應用實現的關鍵點,也成為攻擊的重點,雲上節點一旦突破,所造成的損失和影響規模將更加廣泛,比如大型工業企業的資料洩露都是百萬、千萬級別。


經分析研究,雲服務端面臨風險主要為兩大類:


(1)安全漏洞的威脅

OWASP常年跟蹤網際網路漏洞的出現數量和影響情況,為開發者總結出最需要關注的漏洞型別,推出了OWASP TOP 10。例如2017年最值得開發者和安全人員關注的漏洞依次為:注入、失效的身份認證、敏感資訊洩露、安全配置錯誤、使用保護已知漏洞元件、失效的訪問控制、不足的日誌記錄和監控等等。但是風險如何防控仍是問題,且漏洞風險遠不止這些。軟體系統安全性與底層架構和開發質量密切相關,且為非標系統,不同開發者、不同開發模式都決定了安全保障能力的不同,其已知或者未知的缺陷將會導致攻擊者有機可乘。


(2)網路級別的拒絕服務

在萬物互聯的網路環境中,眾多惡意攻擊者掌握著對大規模伺服器進行拒絕服務攻擊的能力,甚至不需要真正入侵核心系統,只讓它停止工作就能讓運營方遭受巨大的損失,這種古老的攻擊手法當前仍然頻頻出現,儼然已經成為了具有惡性商業色彩的慣用手法。拒絕服務攻擊相對簡單粗暴,誰有足夠的網路資源就能打贏這場戰爭。有意思的是,IoT的大量終端正在成為這種攻擊的強大力量來源之一,比如賽門鐵克安全響應團隊發現的網路罪犯透過劫持家庭網路和消費互聯裝置實施分散式拒絕服務 (DDoS) 攻擊。


4、業務運營與資訊風險

在IoT應用過程中,終端使用者會透過Web應用服務、移動APP、桌面程式等實現功能的呼叫,而目前網路黑產所做的事情包括虛假刷量、偽造啟用、垃圾註冊、脫褲撞庫、抽獎套利、黃牛佔座、刷單炒信、盜卡盜用、涉黃涉政、垃圾廣告等,都是在運營的過程中可能遇見的風險,會造成不利資金成本損失、客戶體驗下降、品牌商譽受損、違反政府監管、商業資訊洩露等不利影響。


安全解決方案


1、終端安全加固


安全永遠都是一個對抗攻防的過程,更安全的體系構建和關鍵點保護能從空間上和時間上延緩攻擊、提高攻擊者的成本,最終放棄攻擊。如果從攻擊者的角度來分析和應對,將更利於實行更安全的防護手段。


根據分析研究,增強終端安全能力的主要方式可分為5種。


基於IoT體系安全防護建設方案簡析

圖3 終端加固主要方式


(1)安全測試

透過安全人員進行業務邏輯梳理,發現安全疏漏,作為上線前的最後一道屏障為質量把關。


(2)原始碼保護

原始碼保護機制是將業務對抗轉變為技術對抗,能從空間和時間上打擊攻擊者的耐心並且提高技術對抗的門檻,雖然不是從理論層面直接解決問題,但是這也是最簡單有效的防止攻擊的方法。例如透過原始碼混淆或更高階的虛擬化保護可有效提升攻擊者漏洞挖掘和反編譯的難度。但是若缺乏這種保護機制,一旦韌體洩露,攻擊者將會如原始碼審計般輕鬆瞭解業務邏輯和協議介面。同時,由於IoT終端架構多,而傳統的加殼技術和系統環境強相關,容易導致相容性問題。基於編譯器級別在原始碼編譯器過程中進行程式碼加密,在依賴於成熟後端元件生成對應系統架構的軟體,避免導致相容性問題。


(3)資料加密

柯克霍夫原則下的密碼體系中以公開密碼演算法、自行儲存金鑰為基礎,在不可信環境下使用金鑰進行加密、解密會導致金鑰洩露。我們透過金鑰白盒的方式能夠模糊掉固定金鑰輸入位置來防止洩露的問題。


(4)通訊保護

透過數字簽名技術對通訊資料進行校驗,防止資料在傳輸過程中被非法篡改。


(5)使用安全第三方元件

對自己涉及到的第三方元件資產進行管理,時刻關注相關漏洞資訊,並及時進行更新修復。


2、雲端安全保障

雲端安全主要由安全管理和安全加固兩方面來進行保障。


(1)安全管理

安全管理的內容主要包括以下幾點:


A、安全規範

和開發團隊和運維人員一起制定適合自己團隊的安全開發和運維管理規範,例如SDL安全開發管理流程,把安全的理念灌輸到整個專案過程中。


B、資產清點

只有知己知彼才能百戰不殆,由於系統越來越複雜,各種服務、資料、第三方元件充斥其中,瞭解自己涉及哪些業務資產,是對系統瞭解的必須步驟。只有在瞭解自己的情況下,才不會因為突如其來的安全問題而摸不著頭腦。


C、程式碼審計

只依靠開發人員個人能力去進行安全設定會存在程式碼缺陷不可預知、不可控等問題。透過把程式碼審計作為專案中的一個標準流程,利用專業的程式碼審計工具,比如Fortify,能夠快速的發現大量且常規的安全問題,並且不會花費大量的人力成本。


D、漏洞掃描

漏洞掃描的過程主要是由自動化工具來完成,通常是系統已經能正式部署的情況下,安全專家只用對掃描結果進行稽核評估,在快速發現問題的同時也為滲透測試提供參考點。


E、滲透測試

目前滲透測試已經衍生出了幾種不同的形式,比如大型企業除了組建安全團隊以外,還成立專門的SRC安全應急響應中心,除了日常應急響應外也承擔著滲透測試的工作。另一種是第三方公司提供專業的滲透測試團隊以專案的形式進行安全服務。目前也有比較新型的方式,比如眾測外包的形式,透過平臺面向全體白帽子釋出測試任務,按效果付費,平臺透過對接廠商和白帽子進行抽成。這種方式面向的測試人員非常廣泛,克服了滲透測試人員個人的侷限性。


(2)安全加固

安全加固主要透過搭建硬體網路防火牆配合DNS分流和惡意流量清洗服務。在終端部署WAF應用防火牆產品來進行應用服務加固主要包括SQL隱碼攻擊、暴力破解、漏洞掃描等。


3、業務運營安全防控


業務運營的過程中看似有很多眼花繚亂的風險點,但是通常是採用批次機器行為實現業務欺詐方式,所以解決方案可主要從三個方面展開:


(1)裝置風險防範

裝置指紋和裝置風險識別是透過裝置的異常行為來識別業務風險的主要方式,相關技術包括裝置唯一ID、裝置異常標籤、系統外掛和作弊框架識別、越獄環境識別、應用破解監測。


一個基於高強度程式碼防護的裝置指紋演算法,在攻擊者不停的篡改系統引數的情況下也能識別出該裝置為風險裝置。由於裝置的購買成本高,所以這部分防護能極大的提高攻擊者的成本,導致其最終放棄攻擊。


(2)賬號風險防範

物聯網應用中使用者許可權設定是透過賬號管理進行。一般來說,若同一使用者賬號在一個平臺上面有過惡意行為,那麼很有可能會用在多個平臺上面進行業務欺詐。我們可以透過獲取相關賬號風險資料進行匹配,對有風險的使用者賬號重點關注,對多個平臺出現惡意行為的賬號採取直接禁止註冊等措施。


(3)機器行為防範

業務欺詐方式一般為積少成多、批次套利,可透過程式來實現安全防控和降本增效,比如賬號註冊、賬號登入、批次評論。透過圖靈測試或者結合環境識別、行為識別一體化的智慧驗證碼功能來阻擋機器的自動化行為。


安全設計用例解析


1、基於Android 中控安全


 Android具有開源和應用開發、運營體系完整的特徵,隨著其在移動終端的普及,越來越多汽車廠商將它作為汽車中控的優先選擇。Android系統的應用主要分為系統級應用和普通應用。中控系統級應用除了Android系統本身已有的管理類應用外,主要新增了關於車控相關的應用實現和TBOX或者車機閘道器的通訊,以及從車機獲取資訊,同時也能透過開放的控制協議來控制汽車的一些動作,比如開關車門、天窗、空調等。第三方應用則類似於移動裝置中的應用,如微信、音樂、購物、遊戲等。


系統的安全關乎人車的安全,所以相對移動裝置來說,網聯智慧汽車的許可權控制和終端防護要求都將比移動網際網路高得多。透過基於Android 中控的安全布控,可將安全防控整合到車上,並增加車控相關的應用。


基於IoT體系安全防護建設方案簡析

圖4 網聯智慧汽車終端加固主要方式


2、Android中控資料安全


從資料層面來看中控系統的安全風險主要有系統日誌洩露風險、系統金鑰洩露風險、原車資訊洩露風險和配置資料洩露風險:


(1)系統日誌洩露風險

可透過擴充套件系統模組對日誌系統改造,分為Release版本和Debug版,Release版本不包括系統日誌輸出。透過對應用進行許可權管控,限制讀取相關日誌資訊,包括車控日誌、供應商日誌、系統應用日誌等;


(2)系統金鑰洩露風險

可透過系統級許可權設定實現需獲得授權的應用才能訪問對應的秘鑰檔案,同時也可以使用白盒金鑰SDK實現資料加解密過程;


(3)原車資訊洩露風險

對車控APP獲取的原車資訊進行資料加密,可利用白盒金鑰SDK以及通訊資料加密SDK進行加密儲存;對車控資料相關API介面程式碼進行KiwiVM虛擬化保護,隱藏資料獲取與處理邏輯。


(4)配置資料洩露風險

透過業務梳理整理出需保密配置的資料,並對這些資料進行加密儲存和讀寫許可權控制,資料處理過程使用KiwiVM虛擬化進行隱藏。


3、Android中控軟體安全


從軟體安全形度來看,中控系統可從幾個方面進行安全加固:


(1)車控應用防提取

控制系統車控應用原始檔案訪問許可權控制,保證核心自研APP不被外漏,防止被攻擊者進行動靜態分析和漏洞挖掘。


(2)SO業務邏輯程式碼保護

SO透過KiwiVM虛擬化保護,主要隱藏程式碼的真實邏輯和其中處理的相關資料。


(3)Java層協議介面程式碼保護

解析安卓應用中的class.dex檔案,提取IR指令並轉換成二進位制目標檔案,最後生成SO。在這個過程中進行混淆等安全編譯處理從而提高Java層核心程式碼的安全性。


(4)車控應用程式動態防護

透過從除錯監測、防記憶體修改、關鍵檔案監控等方式對應用程式進行動態攻擊防護,相關實現模組基於KiwiVM虛擬化保護。


總結與展望


“萬物互聯,安全先行”,構建安全可靠的IoT體系是一個系統化工作,需要多環節佈防和多方聯合。在這個新的IoT產業鏈中,結合特有的業務場景和技術架構特徵分析由其而衍生的安全新需求,打通產學研用、共同構建IoT新生態環境任重而道遠,我們共同前行。

相關文章