
By Jason Yuan (Engineer, Automotive)
Tesla(テスラ)の「Wall Connector」(以下、ウォールコネクター)は、良くある電気自動車(EV)の家庭用充電器に見えますが、検証の結果、ファームウェアが更新されるまではコネクター部分からハッキングされる可能性がありました。Pwn2Own Automotive 2025においてSynacktivチームはまさにその手法を実行し、その過程でCVE-2025-8321を特定し、連鎖攻撃によって、診断アクセス、ファームウェアのダウングレード、バッファオーバーフローを連鎖させ、完全なリモートコード実行(RCE)を実現してみせました。
このブログ記事では、この脆弱性のエクスプロイトチェーンについて解説し、自動車サイバーセキュリティだけでなく、電気自動車用充電設備(EVSE)業界にも与える広範な影響について考察します。
EV向けウォールコネクターの概要
EVの普及が進むなか、家庭用充電器は、住宅の電気配線と高電圧バッテリーの間で重要な役割を果たすようになりました。Teslaの第3世代ウォールコネクターなどの壁掛け型AC充電器は、リレーを開閉するだけではありません。Proximity(近接)およびControl Pilot(コントロールパイロット)ラインを通じて、安全な電流制限をネゴシエートし、充電状態の監視を行い、電力会社が充電負荷を制限したり、車両のバッテリーからエネルギーを回収したりすることを可能にするなど、より高レベルのプロトコルを順次追加しながらサポートするようになってきています。
ほとんどのメーカーは、電力線通信(PLC)とISO 15118プロトコルスタックをコントロールパイロットラインに実装することで、この車両と充電器間の通信を実現しています。しかし、Tesla(テスラ)は、同じ配線を33.3 kbpsのシングルワイヤーコントローラエリアネットワーク(CAN)バスに再利用するという、独自の設計を採用しました。この設計は、初代Model Sから引き継がれています。最初のハンドシェイクの後、標準のCANフレームが流れ始め、追加の通信ハードウェアを必要とせずに、車両と充電器がファームウェア、設定データ、テレメトリを交換できるようになります。
シングルワイヤーCANは、それ自体が脆弱というわけではありません。しかし、充電用配線の全体をカバーしているということは、EV充電器のコネクターを手に持つ人は誰でも、アクセス制限のある診断ネットワークに物理的に接続していることになります。この到達範囲の拡大により、Tesla ウォールコネクターは事実上、車両のセキュリティ境界内に置かれることになり、インビークル電子制御ユニット (ECU)と同様に、そのファームウェアを細部にわたってテストすることが可能になります。
エクスプロイトチェーンの構築
Synacktivのエクスプロイトを再現するには、ハードウェアの創意工夫とプロトコルの調査作業が同等に必要です。最初のステップは、単に観察することです。高インピーダンスのロジックアナライザをコントロールパイロットラインに接続し、車両と充電器を通常どおりネゴシエートさせて、その信号を監視します。充電が承認されると、ラインは1kHzのパルス波調変調(PWM)信号を停止し、33.3kbpsのシングルワイヤーCANストリームに置き換わります。トラフィックの中に、100ミリ秒ごとに繰り返し出現する特徴的なセッションIDが現れます。
トラフィックパターンがわかったら、次は誘導です。マイクロコントローラと数個の抵抗で、ベンチセットアップからロジックを実行しているにもかかわらず、ウォールコネクターが実際の車両と通信していると勘違いするほど、タイプ2の電圧シーケンスを十分に再現しなければなりません。同じマイクロコントローラが、100ミリ秒のハートビートをスケジュールしてCANリンクを維持し、接続がアイドル状態にならないようにします。
コントロールパイロットラインを介して通信するには、まず、標準のUSB-to-CANアダプタにハードウェア改造を施します。高速CANトランシーバをNCV7356デバイスに交換し、ファームウェアを33 kbpsシングルワイヤーCANに対応するようにタイミング調整します。変更したアダプタは、Raspberry Piなどの小型コントローラに接続します。このコントローラは、IEC 61851ハンドシェイクをエミュレートするディスクリート回路も駆動します。この回路は、おなじみの1 kHz PWM信号を送信し、ウォールコネクターに車両が存在すると認識させ、その後、ワイヤの制御をシングルワイヤーCANのノードに引き渡します。
100msのハートビートがアクティブになると、ホストは充電器のシードキーチャレンジをキャプチャします。各キーがシードと0x35のXOR演算で導出されていることを確認し、正しい値を返信した後、ユニファイド診断サービス(UDS)拡張診断モードに入ります。この時点でフラッシュ操作が許可され、攻撃者は組み込みデバッグシェルを含む古いファームウェアバージョンをインストールできます。
図1. Teslaウォールコネクターに対してリモートコード実行を行うために使用される攻撃チェーン
エクスプロイトチェーンを自動車脅威マトリックスにマッピング
Synacktiv のエクスプロイトは、握った充電ハンドルを完全なリモートコード実行に結びつける、Tesla(テスラ)のウォールコネクターの3つの重要な脆弱性を明らかにしています。
- ハンドルを攻撃ベクトルとして利用:充電ハンドルに物理的にアクセスできる者(状況例:公共の駐車場、ホテルのバレーパーキングエリア、共有アパートのガレージなど)は、シングルワイヤーCANトラフィックを注入できます。これは、保護されていない車載診断(OBD-II)ポートにUDSを無制限で接続できるのと機能的に同じ意味を持ちます。
- ホームネットワークブリッジ:充電器は Wi-Fi 認証情報をプレーンテキストで保存します。攻撃者は、CAN/UDS経由でこれらの情報を抽出し、車両側から所有者のローカルエリアネットワーク(LAN)に侵入することが可能です。
- メモリ安全性の欠如:FreeRTOSデバッグシェルは、読み取り可能、書き込み可能、実行可能(RWX)メモリ上で実行されますが、そこはデータ実行防止(DEP)やアドレス空間配置ランダム化(ASLR)が有効化されていません。その入力フィルターは¥rのみを拒否するため、単一のバッファオーバーフローでRCEを実現できる脆弱性が存在します。
攻撃の範囲をよりよく理解するために、Synacktivのエクスプロイト手法を自動車脅威マトリックス(ATM)に照らし合わせてみました。この演習では、ATMフレームワークを使用して、自動車システムのサイバーセキュリティリスクを識別、分類、軽減する方法が示されます。同時に、自動車サイバーセキュリティの側面(リスク検出、分析、対応)に沿って、認識された脅威モデルに合わせた体系的な防御の必要性を認識しやすくなります。
ATM技法 | ATM ID | ウォールコネクターエクスプロイトにおける現れ方 |
---|---|---|
意図しない車両ネットワークメッセージ | ATM-T0071 | コントロールパイロットライン上のカスタムシミュレーターがシングルワイヤーCAN/UDSトラフィックを注入します。 |
ECU 認証情報のダンプ | ATM-T0039 | ReadDataByIdentiferは、ダウングレード後に充電器のセットアップサービスセット識別子(SSID)と事前共有キー(PSK)を漏洩します。 |
ラテラルムーブメントのためのECUの再プログラム | ATM-T0054 | レガシーファームウェア0.8.58がパッシブスロットにフラッシュされ、デバッグシェルが開きます。 |
UDSセキュリティアクセスをバイパス | ATM-T0033 | XOR-0x35ルーチンが固定の16バイトのセキュリティアクセスチャレンジに応答します。 |
ローカル関数 | ATM-T0069 | AW-CU300のルート権限を取得した攻撃者は、リレーとLEDを切り替えることができます。 |
リモートサービス | ATM-T0053 | 露出しているTelnetシェルが、コード実行可能でネットワーク接続可能なインターフェースを提供します。 |
Pwn2Own AutomotiveのVicOneの共同主催者であり、脆弱性の発見と開示におけるパートナーであるTrend Zero Day Initiative (ZDI)は、この脆弱性をTeslaに即座に報告しました。Synacktivのブログによると、Teslaは、この問題に対処するため、エクスプロイトで使用されるファームウェアのロールバックをブロックするアンチダウングレードメカニズムを実装しました。Trend ZDIも最新のアドバイザリーで、これを確認し脆弱性はファームウェアバージョン24.44.3で修正されたと述べています。
EV充電器ならではの領域横断的な脅威
EV充電器が侵害されると、従来のネットワークセキュリティと自動車セキュリティの両方に脅威が及びます。有効な認証情報を使用して家庭や企業のLANに接続されると、境界防御を迂回して、予期しない侵入ポイントからラテラルムーブメント(横移動)が可能になります。
同時に、シングルワイヤーCANによる車両への直接アクセスも維持し、インビークルセキュリティレイヤーが作動する前に偽のメッセージを注入することができます。この特性により、充電器は2つの重要なドメインを橋渡しする、2つのリスクを抱えたアクティブアセットとなり、その侵害は両方に影響を及ぼしかねません。
EV の普及が進むにつれ、充電器はもはや受動的な電源デバイスとして扱うことはできなくなります。他のコネクテッドエンドポイントと同様に、ファームウェアの検証、サービスの分離、継続的なモニタリングによって、ドメイン間の侵害の拡大を防ぐ必要があります。
協調した脆弱性開示の時間軸に関する背景
Pwn2OwnイベントでTrend ZDIが、或るチームがデバイスやソフトウェアを「ハッキングに成功」または「pwned」と発表してから、その後、攻略に使用されたテクニックが公表されるまで、しばしば遅延があることに疑問を持たれた方も多いでしょう。この遅延は、ゼロデイ脆弱性をより責任を持って管理するために設計された協調的脆弱性開示(CVD)プロセスの一環です。
1990年代には、脆弱性を積極的に探し出すハッカーはごく少数であり、多くのベンダーは脆弱性に対処する準備ができていませんでした。報告される側も報告する側も、双方から「ハッカーは利益と引き換えに脆弱性を報告しているのではないか?」や「脆弱性は修正されるのか、それとも報告は時間の無駄になるのか?」といった疑念を抱えていました。そして、次のような譲歩案が採用されることになりました。まず攻撃に成功した者が脆弱性をベンダーに報告し、その後、ベンダーがパッチをリリースし、発見したリサーチャーを公に認めるというものです。
Trend ZDIの脆弱性開示ポリシーに基づき、提出された脆弱性は、パッチが利用可能になった時点で、またはベンダーが対応しない場合は一定期間経過後に開示されます。このアプローチにより、問題が解決されるか、または修正方法が知られていない脅威が公に認知されることで、脆弱性が悪用されるリスクが回避または抑止されます。これが、脆弱性が最初に提出されてから詳細が公表されるまでの時間差を説明するものです。