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