近幾年,,隨著云和物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,,汽車領(lǐng)域也發(fā)生著深刻的變革,。各廠商為汽車提供了更加智能化的功能,,如手機鑰匙,、語音控制和尋車等,,但是隨之而來的安全問題也更為突出,。例如在電影《速度與激情 8》中,黑客可以在任意地點觸發(fā)攻擊,,惡意控制大量汽車在街道上肆意橫行,。作為觀眾的我們不經(jīng)產(chǎn)生一個疑問:這種遠程遙控汽車是導演的天馬行空,還是真實存在于現(xiàn)實世界中,?為了解答這個問題,本文將揭示針對智能網(wǎng)聯(lián)汽車的新型攻擊范式,,以 2 個真實案例進行分析,,并提出緩解措施。
一,、車聯(lián)網(wǎng)架構(gòu)和安全特性
1. 車聯(lián)網(wǎng)架構(gòu)
隨著萬物互聯(lián)時代到來,,車聯(lián)網(wǎng)已經(jīng)廣泛應用于現(xiàn)代車輛?;谠?、5G 和消息隊列通信等技術(shù),智能網(wǎng)聯(lián)汽車具備手機鑰匙,、語音控制和智慧投屏等功能,。例如,,用戶即使沒有帶鑰匙,也可以通過手機控制車門和車窗,,這些智能化功能方便了人們的生活和出行,。作為支撐汽車智能化的技術(shù)架構(gòu)如圖 1 所示,“用戶<->云<->汽車”,,用戶利用手機應用程序,,通過藍牙和 Wi-Fi 等近場通信協(xié)議與車載通信模塊(T-Box)和中控主機進行數(shù)據(jù)交互,實現(xiàn)智慧投屏等功能,?;蛘咄ㄟ^蜂窩網(wǎng)絡(luò)與云側(cè)通信,以此突破地理的限制,。云側(cè)則與車載T-Box 進行數(shù)據(jù)交互,,采用機器對機器(Machine toMachine,M2M)技術(shù)通信模式,,維持雙工通信隧道,,以此增加時效性。
圖 1 車聯(lián)網(wǎng)架構(gòu)
2. 車聯(lián)網(wǎng)安全特性
與此同時,,車輛豐富的功能和通信方式也讓其智能化“外溢”,,產(chǎn)生了新的安全風險,增加了更多的攻擊面,,近場無線通信的汽車終端或者在互聯(lián)網(wǎng)種的云平臺都成為攻擊者的目標,。車聯(lián)網(wǎng)安全可分為空間和時間兩條線。
空間上,,依照車聯(lián)網(wǎng)架構(gòu)可以分為用戶側(cè),、云側(cè)和車側(cè)安全。
用戶側(cè)安全,。 智能網(wǎng)聯(lián)汽車提供了豐富的交互功能,,這對于用戶而言,主要通以手機應用作為交互對象,,這就可能存在 App 安全問題,,例如,個人隱私泄露,、二次打包和登錄驗證缺陷等漏洞,。
云側(cè)安全。云技術(shù)的使用增強智能網(wǎng)聯(lián)汽車適用范圍,,讓查找車的位置和遠程開啟空調(diào)等功能成為可能,。但云平臺也存在各類安全問題,比如傳統(tǒng)的 Web 安全問題,,SQL 注入,、XSS 漏洞和邏輯漏洞等,,也會增加安全風險,攻擊者只需通過云側(cè)問題攻擊車輛,,降低了攻擊成本,,增加了攻擊范圍。
車側(cè)安全,。智能網(wǎng)聯(lián)汽車包括各類終端,,如T-Box、中控主機和行車記錄儀等,。終端包含了豐富通信方式,,也存在各類安全風險,比如命令執(zhí)行和緩沖區(qū)溢出等漏洞,。
時間上,, 從攻擊者的角度審視汽車技術(shù)變革對車聯(lián)網(wǎng)安全帶來的影響,可將汽車技術(shù)的發(fā)展分為以下三個階段:
傳統(tǒng)汽車,。其影音娛樂系統(tǒng)智能化程度不高,,攻擊者一般通過影音娛樂系統(tǒng)的 USB 接口和車載OBD 接口作為攻擊點,這種攻擊方式通常需要攻擊者物理接觸汽車,。
智能網(wǎng)聯(lián)汽車,。為了方便用戶的使用,汽車采用 WiFi,、藍牙和蜂窩網(wǎng)絡(luò)等通信方式,,加強與用戶的交互,并且增加了中控和 T-Box 等計算單元,。對于攻擊來說,,攻擊面進一步擴大,可以通過近場無線或遠程的方式進行攻擊,。
自動駕駛,。自動駕駛技術(shù)的發(fā)展打破了機械控制的隔離,可以通過 CAN 總線或者以太網(wǎng)等通信方式來控制油門等,,讓攻擊者有了操控汽車的技術(shù)可能性,。
汽車作為復雜系統(tǒng)的集合,自身各種 ECU 通過 CAN 總線串連起來,,隨著汽車智能化發(fā)展,車載以太網(wǎng)也被用于車內(nèi)設(shè)備間通信技術(shù),,比如特斯拉的車身,,包含有以太網(wǎng)和各種CAN 總線,通過車載網(wǎng)關(guān)讓各種網(wǎng)絡(luò)技術(shù)進行通信,。因此,,對于攻擊者來說,,攻擊向量主要是通過車聯(lián)網(wǎng)終端,再進一步滲透車輛內(nèi)部網(wǎng)絡(luò),,形成完整的攻擊鏈,。綜上所述,智能網(wǎng)聯(lián)汽車存在被遠程遙控的可能性,,這也回復了本文開篇提出的問題,。
二、“空中跳躍”攻擊范式
通過對車聯(lián)網(wǎng)架構(gòu)研究可以看出,,遠程遙控汽車在技術(shù)上存在可能性,。隨著汽車功能業(yè)務(wù)邏輯逐漸向云轉(zhuǎn)移,與云結(jié)合的安全問題日益突出,。以往的研究大多是將云和設(shè)備的問題分割開來獨立分析,,忽略了車側(cè)和云側(cè)之間的相互影響。下文將揭示車聯(lián)網(wǎng)安全中的新型攻擊范式——“空中跳躍”,,展示攻擊者如何遠程攻擊或控制汽車,。
1. 消息隊列協(xié)議通信
在智能網(wǎng)聯(lián)車應用中,大量采用消息隊列通信技術(shù),,比如消息通知,、遠程控制、位置推送和 OTA 更新等,。消息隊列協(xié)議允許應用程序通過云端服務(wù)中轉(zhuǎn)通信,,并且消息隊列會在應用程序未連接的時候臨時存儲消息,等待設(shè)備在線后發(fā)送,,以保證設(shè)備不在線時消息數(shù)據(jù)不丟失,。常見的消息隊列協(xié)議包括 MQTT、AMQP,、STOMP 等,。由于 MQTT 協(xié)議輕量級的特點,在車聯(lián)網(wǎng)領(lǐng)域有著廣泛的應用場景,。
消息隊列協(xié)議通常為三方通信協(xié)議,。首先,消息的訂閱者向消息隊列服務(wù)訂閱消息,,告訴服務(wù)自己感興趣的消息主題,,消息隊列服務(wù)會監(jiān)聽并等待接收該主題所對應的消息;之后,,消息的發(fā)布者將該主題所對應的消息發(fā)布至消息隊列服務(wù),;最后,消息隊列服務(wù)會根據(jù)消息主題,,將此消息轉(zhuǎn)發(fā)至對應的訂閱者,,訂閱者收到消息,,解析并處理。
2. “空中跳躍”攻擊范式
在這個應用場景中,,存在一種結(jié)合云和設(shè)備(車)的攻擊范式——“空中跳躍”攻擊,,如圖 2 所示。車與消息隊列服務(wù)進行通信,,如果攻擊者通過逆向工程等方法獲取憑證,,或者云存在安全缺陷,就可以遠程接入消息隊列服務(wù),,具備了對車發(fā)送消息的能力,。如果汽車存在消息解析漏洞,攻擊者就可以通過云這個“跳板”攻擊車載終端,,利用漏洞獲取車載終端控制權(quán),,進而發(fā)送 CAN 信號來控制汽車。該攻擊范式涉及云側(cè)和車側(cè)的安全問題,,對于攻擊者而言只是發(fā)送一條惡意消息,,即可遠程控制汽車。該攻擊范式按照攻擊流程可分為 4 個攻擊步驟 : 接入服務(wù)(S1),、越權(quán)發(fā)布消息(S2),、漏洞利用(S3)和 CAN 控制(S4)。
圖 2 新型攻擊范式
S1:接入服務(wù),?!翱罩刑S”攻擊首先需要攻擊者接入消息隊列服務(wù),讓其具備連接云服務(wù)的能力,。通過研究發(fā)現(xiàn),,在 M2M 模型中,由于缺乏用戶的介入,,云側(cè)對設(shè)備側(cè)的認證邏輯在實現(xiàn)過程中易產(chǎn)生安全問題,。攻擊者可以通過以下方法,獲取認證憑證,,進而連接到云側(cè)的消息隊列服務(wù)中,。
匿名訪問。一些消息隊列服務(wù)端軟件支持匿名訪問,,允許用戶通過空的用戶名和密碼接入服務(wù),。
暴力破解。對于消息隊列服務(wù)而言,,認證往往是采用用戶名和口令的方式進行,,安全意識較弱的管理員可能會使用弱口令,這就給攻擊者提供了條件,進行暴力破解來猜解出用戶名和口令,。
憑證硬編碼。因為車載終端 M2M 模式的原因,,開發(fā)者為了簡化認證的流程,,可能采用硬編碼的方式,將消息隊列服務(wù)的認證憑證寫入設(shè)備和移動應用程序中,,并在同類型的產(chǎn)品共享,,讓攻擊者以較低的成本獲取接入憑證。
復現(xiàn)邏輯,。對于使用了動態(tài)憑證進行認證的目標,,一旦攻擊者獲取了設(shè)備固件或 App,就可以通過逆向分析的方法獲取認證邏輯,,復現(xiàn)認證過程以接入消息隊列服務(wù),。
S2:越權(quán)發(fā)布消息。在通過認證后,,消息隊列服務(wù)可能會對用戶的權(quán)限進行限制,,防止攻擊者向非授權(quán)的設(shè)備發(fā)布消息。因此,,攻擊者需要測試發(fā)布權(quán)限,,若存在缺陷則可以對任意車輛,甚至所有車輛發(fā)送惡意消息,。
S3:漏洞利用,。上述兩個攻擊步驟,主要是云側(cè)的安全問題,。對于車而言,,我們提出了漏洞利用的攻擊步驟。攻擊者可以通過獲取的設(shè)備固件進行逆向分析,,或者利用模糊測試,、靜態(tài)分析等方法去挖掘設(shè)備在消息解析時的漏洞。然后攻擊者就可以通過消息隊列的跳板作用,,將惡意的消息轉(zhuǎn)發(fā)給指定的目標設(shè)備觸發(fā)漏洞,,達到對智能網(wǎng)聯(lián)汽車遠程攻擊的效果。
S4:CAN 控制,。攻擊者通過前序攻擊步驟獲取終端的控制權(quán)限,,并通過逆向工程獲取發(fā)送 CAN信號能力,進而控制或攻擊汽車,。
三,、案例分析
“空中跳躍”攻擊范式主要有 2 種攻擊向量:遠程漏洞利用和遠程操控復現(xiàn)。
1. 遠程漏洞利用
該攻擊向量的前提是與訂閱設(shè)備通信的消息隊列服務(wù)可遠程訪問。由于服務(wù)的身份驗證和授權(quán)薄弱,,攻擊者可以將惡意消息發(fā)布到消息隊列服務(wù),,以此結(jié)合云側(cè)和車側(cè)的漏洞實現(xiàn)完整的攻擊鏈,控制汽車甚至攻擊行駛中車輛,。
某品牌汽車通過消息隊列協(xié)議實現(xiàn)了定位推送功能,。通過 App 逆向發(fā)現(xiàn),該品牌汽車云側(cè)存在未認證和未授權(quán)安全問題,,因此具備 S1+S2 的攻擊條件,,并且該車終端解析消息邏輯存在漏洞,可以通過遠程獲取汽車中控主機 Root Shell,,進一步發(fā)送CAN 信號控制汽車,。
攻擊鏈:S1+S2+S3+S4
攻擊條件:攻擊者可以在任意地點接入互聯(lián)網(wǎng)。
攻擊效果:獲取任意激活車輛中控 Root Shell,,接入車 CAN 網(wǎng)絡(luò)進行汽車控制,。
2. 遠程操控復現(xiàn)
在這種類型的攻擊向量中,盡管沒有發(fā)現(xiàn)設(shè)備固件中消息解析邏輯漏洞,,但攻擊者可以利用消息隊列服務(wù)的認證缺陷,,逆向消息格式,通過正常功能消息來操縱汽車,。
某品牌新能源汽車具備 App 遠程控制汽車功能,。汽車的所有者可以通過手機 App 遠程控制汽車打開(關(guān)閉)車門,打開(關(guān)閉)車窗等操作,。該功能是通過消息隊列協(xié)議實現(xiàn)的,。我們通過逆向手機App,發(fā)現(xiàn)了硬編碼憑證的問題,,獲取了高權(quán)限的認證憑據(jù),,并成功連接到消息隊列服務(wù)。由于該硬編碼賬號權(quán)限較高,,這使攻擊者可以將操縱消息發(fā)布到連接到服務(wù)的任何汽車上,,控制打開車門進入汽車,并啟動汽車開走,。
攻擊鏈:S1+S2
攻擊條件:攻擊者可以在任意地點接入互聯(lián)網(wǎng),。
攻擊效果:操控任意激活車輛車門和車窗等功能,甚至可以直接開走,。
四,、緩解措施
針對消息隊列協(xié)議在車聯(lián)網(wǎng)領(lǐng)域應用存在的安全問題,建議有 3 個緩解措施來應對,,分別從車側(cè)到云側(cè)層層遞進,,提高安全能力,。
混合的身份驗證。MQTT 協(xié)議規(guī)范中沒有提供可靠的身份驗證機制,。無論使用哪種身份驗證方法,,攻擊者都可以始終使用自己設(shè)備的賬戶與消息隊列服務(wù)建立連接。但是仍然有必要根據(jù)以下考慮采取復雜的身份驗證措施,,通過動態(tài)申請獲取身份驗證信息,。一方面,它可以阻止攻擊者輕松獲取憑據(jù),,增加攻擊成本。另一方面,,有助于消息隊列服務(wù)隔離用戶權(quán)限,。例如在與用戶綁定之后,設(shè)備可以使用賬戶的信息作為秘鑰來生成證書,,因為該信息不會硬編碼到固件中,,靜態(tài)的分析方法無法輕松獲取敏感信息。
設(shè)備和用戶的緊密耦合授權(quán),。實際上,,我們的攻擊范式所涉及的問題主要是由權(quán)限隔離不嚴造成的,這為未經(jīng)授權(quán)的攻擊者提供了發(fā)起大規(guī)模攻擊的條件,。我們可以采用設(shè)備和用戶的緊密耦合授權(quán),,一旦用戶將設(shè)備添加到應用程序或云平臺上的賬戶上,服務(wù)應將用戶身份識別信息與設(shè)備端 ClientId 或Username 綁定,。這樣,,由于緊密耦合的授權(quán),使用其他 ClientId 或 Username 的攻擊者無法將消息發(fā)布到此設(shè)備,。盡管大多數(shù)公共物聯(lián)網(wǎng)云平臺已采用此措施,,但許多制造商仍在其私有消息隊列服務(wù)中忽略此問題。
空中攻擊檢測,?;趯Ψ?wù)的信任,訂閱者很少檢查收到的消息,。同時,,消息隊列服務(wù)僅按照發(fā)布者的主題轉(zhuǎn)發(fā),因此它也不會檢查或修改消息,。這使得攻擊有效載荷可以不受任何限制地傳遞給訂閱者,。本文提出一種解決方案是添加如 Web 應用程序防火墻之類的消息數(shù)據(jù)過濾模塊,以檢測從攻擊者發(fā)布的消息中可能攜帶的攻擊載荷,。