簡介

Synacktiv在2025年Pwn2Own Automotive競賽中,揭露了特斯拉Wall Connector充電樁的一項重大弱點。他們發現特斯拉電動車能透過充電線更新充電樁韌體,此功能並未公開說明。研究團隊利用充電埠作為切入點,透過非標準的Single-Wire CAN (SWCAN)協定通訊,並模擬特斯拉車輛的行為。他們成功利用邏輯缺陷,將韌體降級至存在除錯功能的早期版本(0.8.58)。隨後,透過UDS指令擷取到充電樁的Wi-Fi設定認證,進而連線至其設定熱點並存取除錯Shell。最終,他們利用除錯Shell中的全域緩衝區溢位漏洞,達成任意程式碼執行。此攻擊全程約18分鐘,展現了家庭充電設施潛在的資安風險。

揭秘特斯拉壁式充電器漏洞:從充電線到入侵的技術剖析 | 資訊安全新聞

特斯拉壁式充電器漏洞攻擊技術分析

本報告深入探討了基於Synacktiv研究所呈現的特斯拉壁式充電器漏洞攻擊的技術細節。分析重點在於設備的架構、通信協議以及用於逆向工程和漏洞攻擊的方法論。

電動車充電基礎知識

電動車(EV)充電依賴於兩個主要信號:接近導引(Proximity Pilot,PP)和控制導引(Control Pilot,CP)。這兩個信號均以保護接地(ground)為參考。

Proximity Pilot (PP): PP信號的主要功能是檢測車輛連接並指示充電線的電流承載能力。這是通過車輛對電壓分配電路施加恆定電壓來實現的。充電線內含一個電阻,其值對應於其最大支援電流,使車輛能夠確定線纜的容量。可以在電壓分配電路中加入額外的電阻,以便在按下充電手柄上的按鈕時停止充電。(參考:原文中的J1772 PP電路圖)

Control Pilot (CP): CP信號管理充電過程,用於諸如向車輛傳達充電器的最大電流容量、協調充電的開始和終止以及檢測錯誤等目的。充電器產生1 kHz的PWM(Pulse Width Modulation)信號,其工作週期指示可用的最大電流。車輛通過特定電阻將信號拉低,以表示其充電狀態(例如,連接、準備、充電或故障)。

在車輛到電網(Vehicle-to-Grid,V2G)應用中,控制導引接口擴展了一個更高層次的通信層,通常是在CP線上使用電力線通信(PLC)。這種模式在CP PWM線上調製數位資料,使車輛和充電器之間能夠交換IP封包,用於動態負載管理(Dynamic load management)、能源合同談判(Energy contract negotiation)和雙向電力傳輸等功能。然而,分析的特斯拉壁式充電器不支持標準化的V2G通信,暗示特斯拉車輛使用了專有協議。

特斯拉壁式充電器設備架構

特斯拉壁式充電器第三代設計用於各種安裝環境中的交流電車充電。它支持單相和三相電源,最高可提供22 kW的功率。該設備通過Wi-Fi連接到遠程監控和特斯拉行動應用程式的遠端控制。

硬體元件: 該設備圍繞兩個主要元件構建:

  • 連線卡(AW-CU300): 此卡負責處理Wi-Fi連線並運行主要應用程式,包括雲端連線和API伺服器功能。它內嵌了基於ARM Cortex-M4核心的Marvell 88MW300系統單晶片(System-on-Chip,SoC)。
  • STM32微控制器: 此微控制器負責管理感測器、功率計量和繼電器控制。

這兩個晶片組通過UART進行通信,使用Protocol Buffers(Protobuf)進行序列化,雙向交換訊息。值得注意的是,PCB上包含一個Qualcomm PLC晶片的腳位,但分析的設備中未安裝,證實了缺乏標準化的V2G通信能力。

協議分析

理解壁式充電器與特斯拉汽車之間的通信協議對於漏洞攻擊至關重要。初始通信涉及使用電壓分配電路中的電阻進行標準基本信號傳輸。然而,一旦汽車啟動充電信號,CP線上觀察到一個非標準協議。經過仔細檢查,該協議被識別為CAN(Controller Area Network),具體為單線CAN(Single-Wire CAN,SWCAN),使用了一種不常見的設定。這種雙向協議的存在標誌著逆向工程和漏洞研究的攻擊面。

逆向工程與韌體提取

要開始逆向工程過程,獲取韌體至關重要。可以採用幾種方法:

  • 特斯拉網站故障排除頁面: 提供用於離線更新的韌體檔案,包括最新版本。
  • 特斯拉行動應用程式: 包含較舊的韌體版本。
  • 特斯拉車輛韌體套件: 具體來說,資訊娛樂更新內嵌了壁式充電器韌體,允許收集多個韌體版本。

韌體提取腳本: 壁式充電器韌體使用Marvell SoC的定制二進位格式。原文提供了用於解析此格式的Python腳本:

  1. import sys
  2. import struct
  3. data = bytearray(open(sys.argv[1], "rb").read())
  4. header_len = struct.unpack("<I", data[4:8])[0]
  5. header = data[:header_len]
  6. tlv_offset=0xC
  7. while tlv_offset < header_len:
  8. t = data[tlv_offset]
  9. l = struct.unpack("<H", data[tlv_offset+1:tlv_offset+3])[0]
  10. v = data[tlv_offset+3:tlv_offset+3+l]
  11. tlv_o...828 bytes truncated...

此腳本讀取二進位韌體檔案,提取標頭長度,然後重複標頭內的類型-長度-值(Type-Length-Value,TLV)結構。此過程對於理解韌體的內部組織和識別潛在的漏洞研究領域至關重要。

攻擊面與漏洞攻擊

發現特斯拉汽車可以通過充電線更新壁式充電器,結合非標準的SWCAN協議,呈現了一個重要的攻擊面。原文中詳述的漏洞攻擊涉及利用邏輯漏洞在設備上安裝有漏洞的韌體。這突顯了在物聯網設備(如電動車充電器)中,安全韌體更新機制和穩健協議實現的重要性。

進一步的分析將涉及深入研究SWCAN協議、被利用的具體邏輯漏洞以及有漏洞的韌體安裝過程的細節。這需要存取完整的韌體以及研究中可能使用的汽車模擬器。

為SWCAN通信構建汽車模擬器

為了有效分析和利用特斯拉壁式充電器,研究人員構建了一個能夠通過單線CAN(SWCAN)通信的汽車模擬器。這是一個關鍵步驟,因為它允許他們在受控環境中與充電器互動並理解其專有通信。模擬器必須精確模擬真實特斯拉車輛通過CP線發送的信號和封包。

該過程可能涉及:

  • 信號分析: 使用示波器詳細分析CP線,以捕獲並理解SWCAN信號,包括時序、電壓水平和資料編碼。
  • SWCAN實現: 開發硬體和軟體以生成和解釋SWCAN訊息。這可能涉及使用微控制器(例如Arduino、Raspberry Pi搭配CAN收發器)進行程式設計,以發送和接收CAN框架。
  • 協議模擬: 複製特斯拉在SWCAN上使用的專有協議。這將涉及逆向工程訊息格式、命令結構和壁式充電器的預期回覆。
  • 韌體更新模擬: 具體來說,模擬器需要能夠啟動並控制韌體更新過程,這是漏洞攻擊的入口點。

此模擬器使研究人員能夠向壁式充電器發送精心設計的訊息,觀察其行為,並識別使有漏洞的韌體安裝成為可能的邏輯漏洞。

漏洞攻擊方法論

漏洞攻擊的核心在於允許安裝有漏洞的韌體的邏輯漏洞。雖然文章截斷了漏洞的完整細節,但一般方法論可能包括:

  1. 觸發韌體更新模式: 有漏洞 使用汽車模擬器,研究人員可能發送特定的SWCAN訊息,以將壁式充電器置於韌體更新模式。雖然此模式旨在用於來自特斯拉車輛的合法更新,但容易被操縱。
  2. 繞過認證/驗證: 邏輯漏洞可能在於韌體更新過程中的認證或驗證機制不足。這可能意味著:
    • 弱加密: 韌體簽章驗證薄弱或可被繞過。
    • 缺少檢查: 設備未能正確檢查正在安裝的韌體來源或完整性。
    • Rollback Vulnerability: 即使存在更新、修補的版本,設備仍允許降級到較舊、有漏洞的韌體版本。
  3. 注入惡意韌體: 一旦驗證被繞過,汽車模擬器將傳輸一個特製的、有漏洞的韌體映像到壁式充電器。此韌體將包含必要的惡意Payload或後門,以進行進一步控制。
  4. 獲得控制權: 在成功安裝有漏洞的韌體並重新啟動設備後,攻擊者將獲得對壁式充電器的未授權存取和控制權。這可能包括:
    • 網路存取: 獲得設備的Wi-Fi網路存取權,可能是恢復文章中提到的SSID和密碼。
    • 設備操縱: 控制充電過程、操縱功率計量,甚至使設備變磚(bricking)。
    • 進一步網路存取: 可能使用被滲透的壁式充電器作為跳板,存取擁有者網路上的其他設備。

此漏洞攻擊的成功突顯了安全啟動機制、穩健的韌體驗證以及對物聯網設備(特別是與電動車充電等關鍵基礎設施相關的設備)進行全面安全測試的關鍵重要性。

關鍵圖表與視覺資料分析

原文包括幾個關鍵圖表和視覺資料,有助於理解特斯拉壁式充電器及其漏洞攻擊的技術細節。這些包括:

  • J1772 PP電路: 此圖表說明了接近導引(PP)電路,這是充電線如何向車輛傳達其電流承載能力的基礎。它通常顯示電壓分配電路,電阻值根據線纜容量和充電手柄上按鈕的存在而變化。理解此電路對於理解電動車充電的初始信號階段至關重要。
  • CP和PP信號的示波器截圖: 文章提到在PP和CP信號上插入示波器以理解協議。示波器截圖將視覺呈現這些信號隨時間變化的電壓波形。這對於識別CP線上的1 kHz PWM信號以及初始信號後出現的非標準協議(SWCAN)尤為重要。分析PWM信號的工作週期和SWCAN通信的特性將提供專有協議使用的直接證據。
  • 單線CAN(SWCAN)圖表: 此圖表將視覺描繪SWCAN通信設置,突出顯示資料如何通過單線傳輸。它可能顯示CAN收發器和與CP線的連接。理解SWCAN的實體層對於構建汽車模擬器和逆向工程更高層次的協議至關重要。

這些視覺資料雖然未直接提供程式碼,但提供了硬體和通信層的關鍵見解,對於深入分析壁式充電器的漏洞和漏洞攻擊方法論不可或缺。

汽車系統中的單線CAN(SWCAN)及其漏洞

單線CAN(SWCAN),標準化為SAE J2411,是控制器區域網路(CAN)協議的變體,主要用於汽車應用。與較常見的雙線CAN不同,SWCAN通過單一導線運行,使其成為車內非關鍵通信(如車身電子、舒適系統和資訊娛樂)的成本效益解決方案。雖然它在線束複雜度和成本方面具有優勢,但其單線性質若未妥善保護,也可能引入特定漏洞。

SWCAN的特性:

  • 單線操作: 資料傳輸通過單一物理導線進行,降低了線束複雜度和成本。
  • 較低速度: SWCAN通常以較低的資料速率運行(例如,33.3 kbit/s或高速模式下的83.3 kbit/s),相比高速雙線CAN(高達1 Mbit/s)。
  • 容錯能力: 雖然單線看似不夠穩健,但SWCAN收發器設計具有容錯功能,即使匯流排短路到接地或電池,通信仍可繼續。
  • 成本效益: 減少的線路和較簡單的收發器有助於降低整體系統成本。

特斯拉壁式充電器中的SWCAN:

Synacktiv研究突顯了SWCAN的一個不尋常應用:其在控制導引(CP)線上用於特斯拉壁式充電器與特斯拉車輛之間的通信。傳統上,CP線用於與充電狀態和電流容量相關的基本信號傳輸(PWM)。在該線上發現SWCAN表明特斯拉為更複雜的資料交換(如韌體更新和其他高級功能)使用了專有擴展。這種非標準實現創造了一個獨特的攻擊面。

與SWCAN(及其上的專有協議)相關的潛在漏洞:

雖然SWCAN本身對於其預定用途是一個穩健的協議,但在安全關鍵情境(如韌體更新)中的應用,特別是與專有協議結合時,可能引入多個漏洞:

  1. 缺乏認證和授權: 如果在SWCAN上實現的專有協議未能充分認證通信雙方(例如,車輛和充電器)或授權特定命令,攻擊者可以冒充合法設備。這可能是特斯拉壁式充電器漏洞攻擊的關鍵因素,汽車模擬器能夠啟動並操縱韌體更新過程。
  2. 缺少完整性檢查: 如果對通過SWCAN傳輸的韌體映像缺乏穩健的完整性檢查(例如,加密雜湊或數位簽章),攻擊者可以注入惡意或有漏洞的韌體。原文提到利用邏輯漏洞安裝有漏洞的韌體,強烈暗示韌體完整性驗證的弱點。
  3. 重播攻擊(Replay Attacks): 如果通信Session未使用隨機數(nonces)或時間戳記妥善保護,攻擊者可以記錄合法的SWCAN訊息(例如,韌體更新命令)並在後續重播以觸發非預期動作。
  4. 拒絕服務(Denial of Service,DoS): 通過用格式錯誤或過量的訊息淹沒SWCAN匯流排,攻擊者可能中斷合法通信,潛在阻止充電或使壁式充電器無法操作。
  5. 資訊洩露(Information Disclosure): 如果敏感資訊(例如,Wi-Fi認證、設備設定)在SWCAN上未加密或保護不力傳輸,攻擊者可以竊聽並提取這些資料。文章提到通過充電線恢復SSID和密碼,表明存在這樣的漏洞。
  6. 降級攻擊(Downgrade Attacks): 允許安裝較舊、有漏洞的韌體版本(即使存在較新、修補的版本)是一個常見漏洞。如果韌體更新機制不強制版本檢查,攻擊者可以強制降級到已知可被利用的版本。
  7. 實際存取漏洞: 雖然SWCAN是車內匯流排,但其通過充電端口連接器的暴露(如Synacktiv研究所展示)為攻擊者提供了實際存取點。這繞過了許多基於網路的安全措施。

緩解策略:

為了應對這些漏洞,特別是在電動車充電器等關鍵基礎設施的背景下,以下幾項緩解策略至關重要:

  • 強認證和授權: SWCAN上的所有通信,特別是敏感操作如韌體更新,必須進行強認證和授權。這可能涉及加密挑戰和響應,以及嚴格的存取控制策略。
  • 加密完整性和真實性: 韌體映像必須進行加密簽章,設備必須在安裝前嚴格驗證這些簽章。這可防止安裝被篡改或未授權的韌體。
  • 安全啟動(Secure Boot): 實現安全啟動過程,確保只有可信且簽章的韌體可以被載入和執行於設備上。
  • 安全通信協議: 基於SWCAN的專有協議應包含對所有資料交換的穩健加密和完整性保護。
  • 版本回滾保護: 設備應防止降級到較舊、有漏洞的韌體版本。
  • 實際安全: 雖然對於暴露的端口具有挑戰性,但實際防篡改檢測和抵抗機制可以阻止直接存取攻擊。
  • 定期安全審計和滲透測試: 持續的安全評估對於識別和解決新出現的漏洞至關重要。

Synacktiv研究是一個鮮明的提醒,即使像SWCAN這樣看似孤立或低速的通信匯流排,當暴露並與未驗證的專有協議結合時,可能成為複雜漏洞攻擊的關鍵攻擊向量。

結論

本次針對特斯拉Wall Connector的成功攻擊,在Pwn2Own競賽中具體展示了透過充電埠進行韌體降級並實現任意程式碼執行的可行性。此漏洞的根源在於早期韌體缺乏適當的安全驗證,特別是簽章檢查與防降級機制。儘管特斯拉已透過導入防降級機制來修復此問題,但此事件明確指出物聯網設備,尤其是連網的充電基礎設施,在安全設計上的重要性。成功的入侵不僅可能導致充電樁本身的功能異常,更可能為攻擊者提供進入住家或商業網路的跳板,對個人隱私及整體網路安全構成嚴重威脅,強調了持續強化智慧設備安全防護的必要性。

Copyright © 2025 版權所有 翊天科技有限公司