王 蓓,劉妍蕾,潘 濤
(內(nèi)蒙古電力科學研究院,內(nèi)蒙古 呼和浩特 010000)
隨著全球物聯(lián)網(wǎng)的快速發(fā)展,物聯(lián)網(wǎng)終端設備數(shù)量迅速增長,據(jù)統(tǒng)計,2021年的物聯(lián)網(wǎng)端點安裝數(shù)量已高達300億之多。越來越多的智能物聯(lián)網(wǎng)設備融入了人們的日常生活中,人們與智能設備之間的聯(lián)系也更加緊密,隨之而來的物聯(lián)網(wǎng)設備安全問題也越來越受到人們的關注。部分設備制造商在追逐新功能同時,產(chǎn)品安全設計及安全意識還不夠,同時也缺乏對設備安全性的重視和投入,設備容易出現(xiàn)弱口令、權限繞過、數(shù)據(jù)泄露等安全問題,一旦被不法入侵者利用,將會影響到人身安全、社會安全,甚至是國家安全。
物聯(lián)網(wǎng)設備所面臨的安全問題中,其中一個嚴重的威脅來源就是物聯(lián)網(wǎng)設備固件的脆弱性。IoT固件存在于每個物聯(lián)網(wǎng)設備中,存在于每一次固件升級中,它包含了設備運行的所有可執(zhí)行文件、配置文件,甚至代碼,IoT固件易被提取,攻擊者就有機會對其進行剖析,開發(fā)漏洞,進而發(fā)起攻擊。物聯(lián)網(wǎng)安全跟傳統(tǒng)安全的一個典型區(qū)別就是物聯(lián)網(wǎng)設備非常容易獲取,固件容易分析,而傳統(tǒng)安全的服務器入侵、內(nèi)網(wǎng)滲透都存在物理條件的限制,所以固件分析是物聯(lián)網(wǎng)安全測試中的最重要部分。
物聯(lián)網(wǎng)設備固件中有全部的硬編碼信息,建設的物聯(lián)網(wǎng)固件安全檢測平臺應能涵蓋固件文件平臺關鍵信息提取、安全檢測原理、Bin文件逆向分析,不安全編碼模式匹配、敏感信息搜索、第三方漏洞庫匹配等多技術方法,通過反匯編和反編譯等流程,可以把文件平臺存在的可執(zhí)行的機器代碼翻譯成C語言等基礎語言代碼,定位危險函數(shù),從敏感信息搜索、第三方漏洞庫匹配等多個方面對設備進行安全檢測與評估。
物聯(lián)網(wǎng)固件安全檢測平臺只需要上傳設備的固件,平臺將自動分析固件,快速發(fā)現(xiàn)內(nèi)部設備中可能存在的漏洞,提供專業(yè)的安全分析能力,以避免因弱口令、溢出等漏洞引起設備控制權限的泄露,并最終形成檢測分析報告。
固件作為一種特定軟件,一般存儲在只讀存儲器、可擦可編程只讀存儲器(EPROM)或閃存中,提供對設備硬件的控制。固件漏洞可以在設備內(nèi)部任何組件中存在,包括UEFI或者BIOS平臺、驅(qū)動器、網(wǎng)絡適配器、內(nèi)存、處理器、顯卡以及很多其他的集成或外圍組件。根據(jù)目前物聯(lián)網(wǎng)設備的現(xiàn)狀,其固件的安全問題主要分為以下幾個方面。
此類安全問題主要是由于代碼編寫人員在編碼過程式缺乏安全意識而導致的,常見的代碼安全包括緩沖區(qū)溢出、命令注入等。同時物聯(lián)網(wǎng)固件代碼共用率、復用率較高,容易導致同一漏洞影響多種設備的情況。
很多物聯(lián)網(wǎng)設備都會使用一些開源的組件或開發(fā)平臺,這些組件或平臺的漏洞勢必影響物聯(lián)網(wǎng)固件的安全性。
配置文件屬于固件中的敏感信息,攻擊者通過對配置文件的分析,可快速定位一些敏感信息。
目前物聯(lián)網(wǎng)設備中應用最廣泛的還是Linux操作平臺,那么相應的漏洞與安全問題也被帶入到物聯(lián)網(wǎng)固件中。
物聯(lián)網(wǎng)固件安全是近年來相對比較新的研究領域,目前國內(nèi)外相對成熟的平臺還不多,根據(jù)物聯(lián)網(wǎng)設備目前的安全現(xiàn)狀,結合自身業(yè)務特點,設計包含數(shù)據(jù)層、分析層及界面展示層的固件安全檢測平臺,平臺架構如圖1所示。數(shù)據(jù)層主要用于存儲平臺管理數(shù)據(jù)、分析結果數(shù)據(jù)以及用于支撐分析的漏洞庫和風險函數(shù)庫;分析層實現(xiàn)對固件的分析功能,包括文件平臺分析、密鑰分析、代碼分析、漏洞分析等;展示層主要是平臺展示界面,以及提供統(tǒng)計數(shù)據(jù)結果的展示。
平臺在功能設計方面考慮將獲取到的固件文件上傳至檢測平臺,通常應支撐常見固件文件的格式,平臺自動分析固件文件,得到它的可執(zhí)行文件、配置文件,甚至代碼,從而實現(xiàn)密鑰和算法分析、代碼安全分析和漏洞分析等功能,最終將檢測分析結果形成測試報告進行展示,全程實現(xiàn)自動化處理,具體功能包含文件平臺提取、平臺分析、代碼安全分析、密鑰和算法分析、漏洞分析、固件對比分析、檢測報告等。
4.2.1 文件平臺提取。平臺支持市場常見的物聯(lián)網(wǎng)設備的固件文件格式,包括bin、zip 、exe等常見類型,并從固件中提取文件平臺做安全分析。平臺提供固件自動化掃描功能,通過掃描能夠發(fā)現(xiàn)固件文件中包含的所有可識別的文件類型,識別固件版本、大小、文件平臺、壓縮格式等信息,并自動提取文件平臺。
4.2.2 平臺分析。用戶將固件文件手動上傳到固件分析平臺后,平臺會通過binwalk匹配一些特定的文件頭或者Magic數(shù)據(jù),來遍歷整個固件文件,識別指令集架構、文件平臺、壓縮格式、可識別的文件類型、固件版本信息,比如:哈希、版本號、大小、存儲位置。平臺會以自動化的方式掃描固件,遞歸提取文件平臺到自定義目錄,并展現(xiàn)提取結果。
4.2.3 代碼安全分析。平臺通過內(nèi)置緩沖區(qū)溢出、命令注入和危險網(wǎng)絡函數(shù)的風險函數(shù)庫,對代碼漏洞進行靜態(tài)檢測方式,通過readelf工具逆向分析每個可執(zhí)行文件的外部符號表,可獲取符號表中的所有函數(shù),并與風險函數(shù)庫進行匹配,從而識別是否存在代碼風險,完成代碼分析后,平臺將識別出的文件名和風險函數(shù)進行展示,并可查看文件路徑及漏洞數(shù)量。
緩存區(qū)溢出危險函數(shù)庫通過人工篩選C語言常見庫函數(shù),如strcpy、strcat等;命令注入危險函數(shù)庫包括常見linux命令,如popen、system等;危險網(wǎng)絡函數(shù)為Linux常見網(wǎng)絡平臺調(diào)用函數(shù),如accept、listen等。
4.2.4 密鑰和算法分析。密鑰和算法分析功能主要包括證書文件和固件平臺用戶密碼的hash文件,通過查找.crt文件和shadow文件進行分析。crt文件使用openssl進行解析,shadow文件可直接當作普通字符串分析。利用正則表達式的方式去文件中查找對應的字符串,由此獲取固件中的加密算法、公私鑰以及證書文件,進而對固件中的證書文件、固件平臺的用戶密碼hash文件進行安全分析。
4.2.5 漏洞分析。檢測平臺內(nèi)置了漏洞庫,可通過爬取和人工添加的方式獲取,漏洞庫爬取方式通過漏洞網(wǎng)站爬取漏洞庫文件,并進行解析,提取出漏洞的編號、評分版本、評分、風險級別、組件名稱、組件版本等。人工添加方式實現(xiàn)在平臺界面上手工添加漏洞。檢測平臺漏洞庫集成操作平臺、公共庫、WEB服務、數(shù)據(jù)庫服務、網(wǎng)絡服務、常用工具等相關組件的漏洞。
通過逆向分析去掃描固件,根據(jù)固件使用組件版本與所有該版本已暴露的漏洞完成關聯(lián)分析,即通過將固件提取后的組件名稱、組件版本和漏洞庫中的漏洞逐一進行匹配,從而發(fā)現(xiàn)固件中各組件存在的漏洞。匹配過程中也會比較固件的操作平臺是否與漏洞的軟件環(huán)境相匹配,從而進一步確認漏洞。
對于不能準確檢測到版本的組件,平臺將展示可能的版本號及匹配信息,提供用戶手動確認組件版本的方式,根據(jù)確認的組件版本進一步確定存在的漏洞,使得分析結果更加準確。
4.2.6 固件對比分析。通過以不同方式或渠道獲取的同版本固件的安全分析,檢測固件是否有被篡改的風險;也可以針對同一固件的不同版本對比,對固件中新增、修改或刪除組件的風險對比分析,判斷歷史風險問題是否已解決,是否引入新漏洞等。
在固件對比中,主要是通過不同版本固件之間的變化,更加直觀地去分析固件的風險趨勢。例如通過文件數(shù)量、動態(tài)鏈接庫數(shù)量和證書數(shù)量的變化,可以得出新舊版本的固件在規(guī)模上做過的調(diào)整,引入的文件數(shù)量越多,出現(xiàn)安全風險的概率就會越大。
4.2.7 報告管理。平臺支持檢測報告輸出功能,針對固件檢測分析的結果,可在線或下載查看結果詳情,報告分為固件檢測報告和終端檢測報告,內(nèi)容包括測評依據(jù)、測評方法、基本信息、測試結果等信息。
4.2.8 管理平臺。平臺實現(xiàn)項目、終端、固件、版本多個層級的管理,同時以圖表的方式展示當前平臺中項目和終端的數(shù)量和安全風險。
平臺在功能設計的同時也考慮到了安全設計問題,用戶管理及接入控制按照三權分立原則,具備完善的權限管理及分級授權、界面操作控制,完整的日志記錄和審計機制;平臺界面訪問采用https協(xié)議,通過傳輸加密和身份認證保證了傳輸過程的安全性。平臺對數(shù)據(jù)進行了加密,包括文件平臺加密、配置加密、密碼存儲加密以及使用到的加密套件、算法,保證了數(shù)據(jù)在傳輸、存儲過程中的安全性。使用Cookie方式維持用戶會話, 每次請求更新Cookie,提供用戶界面超時機制。
物聯(lián)網(wǎng)固件安全檢測平臺通過對上傳的固件文件進行自動掃描,實現(xiàn)平臺分析、代碼分析、漏洞分析和加密分析,盡可能地發(fā)現(xiàn)固件中由于代碼編寫不當、配置不合理等形成的各類風險問題,使設備使用者真正了解設備潛在的風險,有針對性指導設備制造商對漏洞進行修復,在源頭上將防止漏洞利用等事件的發(fā)生,不斷提高物聯(lián)網(wǎng)終端的安全性。