楊玚 朱科屹 宋娟
摘?? 要:車聯(lián)網(wǎng)信息安全是車聯(lián)網(wǎng)產(chǎn)業(yè)健康發(fā)展的重要環(huán)節(jié),車載終端是智能網(wǎng)聯(lián)汽車連接車內(nèi)網(wǎng)與車外網(wǎng),實(shí)現(xiàn)信息交互的重要子系統(tǒng)。文章在編制車載終端信息安全測(cè)評(píng)指標(biāo)的基礎(chǔ)上,對(duì)車載終端信息安全開展測(cè)試。文章從系統(tǒng)安全、應(yīng)用安全、通信安全、數(shù)據(jù)安全各個(gè)方面介紹了檢測(cè)工作中發(fā)現(xiàn)的若干典型信息安全風(fēng)險(xiǎn),為車聯(lián)網(wǎng)安全研究提供參考。
關(guān)鍵詞:車載終端;車聯(lián)網(wǎng);信息安全;測(cè)試
中圖分類號(hào):TN915.08????????? 文獻(xiàn)標(biāo)識(shí)碼:A
A test-based study of in-vehicle terminals ybersecurity vulnerabilities
Yang Yang, Zhu Keyi, Song Juan
(China Software Testing Center, Beijing 100048)
Abstract: Cybersecurity plays an important role in the development of IoV, and the in-vehicle terminal is an important subsystem that connects the interior network to the broader V2X network. Based on the CSTC security evaluation specification for in-vehicle terminals, comprehensive cybersecurity tests were conducted by CSTC. This paper summarizes characteristic cybersecurity vulnerabilities of contemporary in-vehicle terminals, classified into system security, application security, communication security, and data security.
Key words: in-vehicle terminal; IoV; cybersecurity; testing
1 引言
近年來(lái),隨著國(guó)內(nèi)車聯(lián)網(wǎng)產(chǎn)業(yè)生態(tài)的逐步建立,車聯(lián)網(wǎng)信息安全保障已正式提上日程。2018年年底,工信部《車聯(lián)網(wǎng)(智能網(wǎng)聯(lián)汽車)產(chǎn)業(yè)發(fā)展行動(dòng)計(jì)劃》要求2020年實(shí)現(xiàn)安全管理制度與安全防護(hù)機(jī)制落地實(shí)施,安全保障和服務(wù)能力逐步完善。以此為目標(biāo),汽標(biāo)委、信安標(biāo)委等機(jī)構(gòu)積極地推進(jìn)車聯(lián)網(wǎng)信息安全標(biāo)準(zhǔn)規(guī)范的制定,研究從整個(gè)車到零部件的信息安全測(cè)試評(píng)價(jià)的方法。中國(guó)汽車工程學(xué)會(huì)、信通院、奇虎等單位也紛紛發(fā)布了車聯(lián)網(wǎng)信息安全白皮書、年度安全報(bào)告等,從不同層面、不同角度展示了各自的關(guān)注領(lǐng)域和重點(diǎn)工作,表明了車聯(lián)網(wǎng)的安全服務(wù)開始從布局轉(zhuǎn)入實(shí)戰(zhàn)。
車載終端是智能網(wǎng)聯(lián)汽車的重要子系統(tǒng)。按照一般的定義,它是具備數(shù)據(jù)輸入輸出、計(jì)算處理、存儲(chǔ)、通信等功能,可以采集車內(nèi)相關(guān)的ECU數(shù)據(jù)并發(fā)送控制ECU的指令,集成定位、導(dǎo)航、娛樂(lè)等多種功能,是汽車網(wǎng)聯(lián)化、接入移動(dòng)互聯(lián)網(wǎng)和車際網(wǎng)的功能單元[1]。舉例說(shuō)明,側(cè)重于車內(nèi)信息娛樂(lè)的IVI、側(cè)重于遠(yuǎn)程服務(wù)的T-Box,都是典型的車載終端,二者還有融合的趨勢(shì)。本文不嚴(yán)格限定車載終端的邊界,而將其視為連接車內(nèi)網(wǎng)與車外網(wǎng),實(shí)現(xiàn)信息交互的抽象節(jié)點(diǎn)。在實(shí)際產(chǎn)品中,車載終端通常具有電話、藍(lán)牙、Wi-Fi、GPS等無(wú)線通信功能。汽車安全黑客Craig Smith特別強(qiáng)調(diào):“車載終端存在的遠(yuǎn)程攻擊面,比車上其它任何組件都要豐富[2]。作為內(nèi)外交通的咽喉要道,安全攻防的必爭(zhēng)之地,車載終端的安全保障,無(wú)論對(duì)廠商還是用戶都具有直接的現(xiàn)實(shí)意義”。
2018年發(fā)表的《車載終端信息安全測(cè)評(píng)指標(biāo)體系研究》中,梳理了車載終端信息安全的關(guān)鍵測(cè)評(píng)指標(biāo),形成了包含整體安全、硬件安全、操作系統(tǒng)安全、應(yīng)用安全、通信安全和數(shù)據(jù)安全各個(gè)方面的測(cè)評(píng)體系,為信息安全測(cè)評(píng)奠定了基礎(chǔ)[3]。本文從第三方測(cè)評(píng)的角度,介紹在實(shí)際檢測(cè)工作中發(fā)現(xiàn)的若干種信息安全風(fēng)險(xiǎn)。案例的選擇不求豐富全面,而是注重典型實(shí)用,并適當(dāng)加以討論,以期見微知著。
2 車載終端信息安全基本要求
2.1 系統(tǒng)安全
系統(tǒng)安全要求操作系統(tǒng)具備符合車載終端應(yīng)用場(chǎng)景的身份鑒別、權(quán)限管理、訪問(wèn)控制、安全審計(jì)等安全防護(hù)措施,防范針對(duì)操作系統(tǒng)的溢出攻擊、暴力破解等威脅,實(shí)現(xiàn)了操作系統(tǒng)資源及文件的安全可用。
2.2 應(yīng)用安全
應(yīng)用安全要求安裝在車載終端上的應(yīng)用軟件具備來(lái)源標(biāo)識(shí)、數(shù)據(jù)加密、完整性校驗(yàn)等防護(hù)措施,可以對(duì)抗逆向分析、篡改、非授權(quán)訪問(wèn)等威脅,實(shí)現(xiàn)了應(yīng)用軟件在啟動(dòng)、運(yùn)行、登錄、退出、升級(jí)等環(huán)節(jié)處于安全狀態(tài)。
2.3? 通信安全
通信安全主要包括對(duì)內(nèi)通信安全和對(duì)外通信安全。對(duì)內(nèi)通信安全是指車載終端與車內(nèi)總線以及電子電氣系統(tǒng)之間的通信,根據(jù)對(duì)內(nèi)通信場(chǎng)景要求采用安全的通信協(xié)議、身份認(rèn)證、完整性校驗(yàn)、訪問(wèn)控制等措施,抵御重放攻擊、拒絕服務(wù)攻擊、報(bào)文篡改等威脅,實(shí)現(xiàn)外部威脅與內(nèi)部網(wǎng)絡(luò)之間的安全隔離,車載端與車內(nèi)各個(gè)子系統(tǒng)間通信數(shù)據(jù)保密、完整、可用。車與外部通信安全要求通過(guò)安全協(xié)議、完整性校驗(yàn)、身份鑒別等措施,抵御報(bào)文破解、中間人攻擊等威脅,實(shí)現(xiàn)車載終端與其他節(jié)點(diǎn)的安全通信。
2.4 數(shù)據(jù)安全
數(shù)據(jù)安全要求數(shù)據(jù)在采集、存儲(chǔ)、處理、傳輸過(guò)程中安全可用,通過(guò)訪問(wèn)控制、異常處理等機(jī)制,保障了關(guān)鍵數(shù)據(jù)的機(jī)密性、完整性、可用性。
另一個(gè)典型的問(wèn)題是關(guān)鍵代碼缺乏保護(hù)。攻擊者不僅能輕易分析敏感操作的執(zhí)行步驟,有時(shí)還可以提取賬號(hào)口令等機(jī)密數(shù)據(jù),之前介紹的AES密鑰存儲(chǔ)就是一個(gè)例子。在與客戶交流中,有些技術(shù)人員不太理解代碼保護(hù)的基本概念,比如認(rèn)為apk經(jīng)過(guò)簽名就可以防止篡改,對(duì)字節(jié)碼加以混淆就無(wú)法分析,將關(guān)鍵代碼用C語(yǔ)言實(shí)現(xiàn)就絕對(duì)安全等。還有被問(wèn)到為何某些關(guān)鍵應(yīng)用沒有任何保護(hù),連基本的混淆都沒做時(shí),回答竟然是它屬于第三方開發(fā),對(duì)方未提供源代碼,所以無(wú)法混淆。這也表明,車載應(yīng)用可能還處于車載終端“附屬品”的階段,尚未得到廠商的足夠重視。它們可能包含高價(jià)值信息,攻擊難度卻不大易于自動(dòng)化執(zhí)行,也許會(huì)成為注重性價(jià)比黑客的首選目標(biāo)。
3.3 通信安全
信息通訊是車載終端的核心功能。自從奠基性的“機(jī)動(dòng)車安全攻擊層面的實(shí)證性綜合分析”[7]一文發(fā)表以來(lái),研究者和黑客們紛紛將目光轉(zhuǎn)向汽車信息安全,車載終端迅速成為攻防對(duì)抗的主戰(zhàn)場(chǎng)。由于通信的方式多種多樣,典型的例子不勝枚舉,如藍(lán)牙協(xié)議漏洞[8]、使用弱密碼算法、車內(nèi)通信缺乏身份認(rèn)證等,測(cè)試方法大多可以借鑒PC互聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)安全的經(jīng)驗(yàn)。
本文僅介紹一個(gè)車機(jī)啟動(dòng)時(shí)芯片間雙向認(rèn)證的例子。與常見的通信安全問(wèn)題不同,它不是具體實(shí)現(xiàn)的漏洞,而是通信協(xié)議設(shè)計(jì)的缺陷。兩個(gè)芯片C1、C2的交互邏輯如圖2所示。
車機(jī)出廠前,將生成的RSA公私鑰分別封裝入C1、C2的安全存儲(chǔ)區(qū)。車機(jī)每次啟動(dòng)時(shí),C1、C2彼此驗(yàn)證身份才進(jìn)入正常的工作流程。這里采用一對(duì)公私鑰就完成了雙向認(rèn)證,而常規(guī)的方式需要兩對(duì)公私鑰來(lái)標(biāo)識(shí)雙方身份。這里的私鑰和公鑰都必須保密存儲(chǔ),實(shí)際上都是“私鑰”,并不具備字面的含義。
這個(gè)協(xié)議利用RSA算法[9]的對(duì)稱性省去了一對(duì)公私鑰,通過(guò)取反操作省去了C2本應(yīng)獨(dú)立生成的隨機(jī)數(shù)M2,確實(shí)頗具巧思。然而,為了節(jié)省計(jì)算和通信,C1在認(rèn)證過(guò)程中處于主導(dǎo)地位,C2只是接受請(qǐng)求、驗(yàn)簽、返回新簽名。一旦總線中植入了惡意節(jié)點(diǎn),記錄C1發(fā)送到C2的報(bào)文并進(jìn)行重放,就可以偽裝成C1的身份與C2通信。如果在現(xiàn)有的框架上補(bǔ)救,C2可能要用非易失性存儲(chǔ)保存近期收到的簽名S1,每次收到認(rèn)證請(qǐng)求都檢索一遍,并將新簽名加入存儲(chǔ)。即便如此,存儲(chǔ)區(qū)裝滿后,重放攻擊仍會(huì)生效,而存儲(chǔ)介質(zhì)的管理無(wú)論在成本還是實(shí)現(xiàn)上都頗具挑戰(zhàn)。為了抵御重放,C1、C2應(yīng)該獨(dú)立生成隨機(jī)數(shù),在兩個(gè)方向上進(jìn)行挑戰(zhàn)-應(yīng)答,而不是一廂情愿的“自問(wèn)自答”,使公鑰私鑰失去意義。建議將同一個(gè)對(duì)稱密鑰置入C1、C2的安全存儲(chǔ)區(qū),雙方計(jì)算HMAC值即能實(shí)現(xiàn)雙向認(rèn)證。
3.4 數(shù)據(jù)安全
數(shù)據(jù)安全測(cè)試包含多方面的細(xì)致工作,往往與具體業(yè)務(wù)相關(guān)。若干內(nèi)容在本文的系統(tǒng)安全、應(yīng)用安全中已有提及,本節(jié)僅作補(bǔ)充性說(shuō)明。
與手機(jī)系統(tǒng)相似,部分車載終端裝有共享存儲(chǔ),允許大部分程序自由訪問(wèn)。由于其使用的便利性,不少程序直接將密碼、私鑰等敏感信息直接寫入共享存儲(chǔ)。測(cè)試時(shí),使用簡(jiǎn)單的字符串匹配工具進(jìn)行掃描,往往就能發(fā)現(xiàn)不少有價(jià)值的信息。
運(yùn)行日志是另一個(gè)常見的問(wèn)題。程序開發(fā)過(guò)程中,為了輔助調(diào)試,往往需要將一些運(yùn)行信息輸出到系統(tǒng)日志中。作為產(chǎn)品發(fā)布前,應(yīng)該將不必要的日志關(guān)閉,否則攻擊者可能借此分析程序的運(yùn)行邏輯,進(jìn)而發(fā)現(xiàn)突破口。測(cè)試中發(fā)現(xiàn),不少運(yùn)行日志包含豐富的信息,有加密參數(shù)、執(zhí)行流程、系統(tǒng)狀態(tài)等敏感內(nèi)容。訪談后得知,有些程序并未采用glog等專用日志庫(kù),而是直接調(diào)用原始的fprintf函數(shù)輸出日志,很難在合適的層次上一鍵關(guān)閉。
此外,不少的Android應(yīng)用允許直接導(dǎo)出用戶數(shù)據(jù),這是在Android開發(fā)中熟知的安全問(wèn)題。應(yīng)用清單中如果沒有將Android:allowBackup屬性設(shè)為False,就能通過(guò)ADB導(dǎo)出該應(yīng)用的私有數(shù)據(jù),可能被攻擊者直接盜用。
4 結(jié)束語(yǔ)
通過(guò)本文發(fā)現(xiàn)車載終端的信息安全基本要求并不復(fù)雜,之所以暴露出大大小小的問(wèn)題,有的是設(shè)計(jì)時(shí)缺乏安全考慮,有的則是因?yàn)闆]有理解各種安全策略的作用,未能準(zhǔn)確嚴(yán)謹(jǐn)?shù)貙?shí)現(xiàn)。另外,車載系統(tǒng)涉及的模塊較多,可能由不同的團(tuán)隊(duì)甚至公司開發(fā),模塊間的調(diào)用與協(xié)作往往成為安全問(wèn)題的高發(fā)區(qū)。
在汽車加速軟件化的今天,車企應(yīng)該向IT行業(yè)取經(jīng),借鑒從設(shè)計(jì)到測(cè)試的最佳實(shí)踐,提高了技術(shù)人員的自主開發(fā)能力與信息安全水平,將開發(fā)流程正規(guī)化、安全思維常識(shí)化、測(cè)試手段多元化,并委托專業(yè)安全人員把關(guān)。據(jù)近期報(bào)道,一汽大眾公司2020屆的春季校招,一改機(jī)械、車輛為主的傳統(tǒng)需求,大力向計(jì)算機(jī)專業(yè)傾斜,顯示了可貴的決心。
現(xiàn)代汽車行業(yè)的信息安全,需要依靠計(jì)算機(jī)安全界與車企的齊心協(xié)作,就像計(jì)算機(jī)安全界與PC廠商的緊密合作[7]。汽車領(lǐng)域的信息安全正處于奮力起步的破曉期。回顧2002年的PC行業(yè),微軟公司毅然推行“可信計(jì)算”計(jì)劃,將信息安全提到前所未有的高度。2011年前后的移動(dòng)安全行業(yè),盡管Android、iOS系統(tǒng)在設(shè)計(jì)之初就將安全置于首位,但是仍然經(jīng)歷了較多的探索,才逐漸實(shí)現(xiàn)從嘗試到常規(guī)的過(guò)程。又一個(gè)九年即將過(guò)去,智能汽車的安全有幸借鑒前兩個(gè)時(shí)代的經(jīng)驗(yàn),面臨的問(wèn)題又復(fù)雜得多,車載終端只是其中一隅?!笆兰o(jì)開新幕,風(fēng)潮集遠(yuǎn)洋。欲閑閑未得,橫槊數(shù)興亡?!敝?jǐn)借梁任公的五律《壯別》,寄望于車聯(lián)網(wǎng)的下一個(gè)九年。
基金項(xiàng)目:
國(guó)家重點(diǎn)研發(fā)計(jì)劃資助(項(xiàng)目編號(hào): 2018YFB0105204)
參考文獻(xiàn)
[1] ?中國(guó)汽車工程學(xué)會(huì). 智能網(wǎng)聯(lián)汽車車載端信息安全測(cè)試方法(征求意見稿)[S]. 2019.
[2] ?朱科屹,宋娟,葉璐,路鵬飛.車載終端信息安全測(cè)評(píng)指標(biāo)體系研究[J].工業(yè)技術(shù)創(chuàng)新,2018,05(06):7-13.
[3] ?Craig Smith. The Car Hacker's Handbook: A Guide for the Penetration Tester[J]. Chapter 9, No Starch Press, 2016.
[4]?Dirty COW. CVE-2016-5195. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5195. [DB/OL] POCs: https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs.
[5] ?O. Sami Saydjari. Engineering Trustworthy Systems: Get Cybersecurity Design Right the First Time[M]. McGraw-Hill, 2018.
[6] ?Dave (Jing) Tian, Grant Hernande? et al. ATtention Spanned: Comprehensive Vulnerability Analysis of AT Commands Within the Android Ecosystem[M].USENIX Security 2018.
[7] ?Stephen Checkoway et al. Comprehensive Experimental Analyses of Automotive Attack Surfaces[M]. USENIX Security, 2011.
[8] ?CVE-2017-0782. A remote code execution vulnerability in the Android system (bluetooth)[DB/OL]. https://www.cvedetails.com/cve/CVE-2017-0782/.
[9] ?Ronald Rivest, Adi Shamir, and Leonard Adleman. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems, Communications of the ACM[J]. 21:120-126, 1978. https://dl.acm.org/citation.cfm?id=359342.
作者簡(jiǎn)介:
楊玚(1980-),男,漢族,江蘇人,中國(guó)科學(xué)技術(shù)大學(xué),博士,高級(jí)工程師;主要研究方向和關(guān)注領(lǐng)域:網(wǎng)絡(luò)信息安全。
朱科屹(1991-),女,蒙古族,內(nèi)蒙古人,北京航空航天大學(xué),碩士,工程師;主要研究方向和關(guān)注領(lǐng)域:智能網(wǎng)聯(lián)汽車網(wǎng)絡(luò)安全。
宋娟(1984-),女,漢族,陜西人,北京交通大學(xué),博士,高級(jí)工程師;主要研究方向和關(guān)注領(lǐng)域:智能網(wǎng)聯(lián)汽車網(wǎng)絡(luò)安全。