- テスラのバグバウンティ参加のため、eBayでModel 3のMCUとオートパイロット用コンピュータを購入し、デスクトップ環境での動作を試みた
- 12V電源装置とタッチスクリーンモジュールを追加接続して起動に成功し、Ethernetポート経由で内部ネットワークへアクセス可能
- MCU内部ではSSHサーバーとODIN REST API(8080ポート)が公開されており、SSH接続にはテスラ署名キーが必要
- 当初はケーブル互換性の問題とPCB損傷により電源コントローラチップの交換が必要だったが、修理後にシステム復旧に成功
- 最終的にDashboard Wiring Harnessを接続して、タッチスクリーンと車載OSの完全起動を実現し、UI操作とファームウェア解析が可能になった
Tesla Model 3のコンピュータを机上で動かす
- テスラのバグバウンティプログラムに参加するため、実車ハードウェアが必要となり、eBayでModel 3のMCU(メディアコントロールユニット)とオートパイロット(AP)コンピュータの部品を購入した
- 車載コンピュータは2枚の基板を重ねた構造で、助手席のグローブボックス裏に配置され、水冷式の金属ケースで覆われている
- eBayで200〜300ドル台の部品を確保し、その多くは事故車の解体業者が販売したものだった
- システム起動には12V DC電源装置、タッチスクリーンモジュール、ディスプレイケーブルが追加で必要だった
- 電源装置には0–30V可変の10Aモデルを使用し、画面は175ドルで購入した
ケーブル問題と電気配線情報
- MCUと画面を接続するケーブルの多くはコネクタ直後で切断された状態で販売されており、別途ケーブルを自作する必要があった
- テスラは全車種のElectrical Reference文書を公開しており、各コネクタのピン構成や配線情報を確認できた
- ディスプレイにはRosenberger 99K10D-1D5A5-Dコネクタを使う6ピンケーブル(12V/グラウンド2ピン、データ4ピン)が必要
- このコネクタは一般消費者が単品で購入できないため、代替としてBMW用LVDSケーブルを注文した
電源接続とネットワークアクセス
- テスラの回路図とオンライン資料を参考に12Vとグラウンドのピンを見つけて電源を接続すると、赤いLEDが点灯して起動が始まった
- 画面がないため対話操作は制限されたが、Ethernetポート経由でノートPCと接続できた
- ネットワークにはDHCPがないため手動でIP設定が必要で、
192.168.90.X/24帯域を使う必要がある
- Redditで公開された
/etc/hostsファイルから、MCU、ゲートウェイ、オートパイロットなど内部ホストのIPを確認した
- MCU(
192.168.90.100)では**SSH(22ポート)とWebサーバー(8080ポート)**が公開されていた
MCU内部サービスと構造
- SSHサーバーは「SSH allowed: vehicle parked」というメッセージを表示し、接続にはテスラ署名キーが必要
- テスラのバグバウンティでroot脆弱性を見つけた研究者には永続的なSSH証明書が発行される
- 8080ポートではODIN(On-Board Diagnostic Interface Network)というREST型APIが公開されており、これはToolbox診断ツールで使われる
- 金属シールドを外すと、MCUとオートパイロット基板が積層構造で配置された内部を確認できた
ケーブル失敗と回路損傷
- BMW LVDSケーブルは物理的に互換性がなく、直接配線接続を試みた
- 細い線が壊れてPCBショートが発生し、電源コントローラチップが損傷した
- 損傷したチップの特定は難しかったが、協力者YasserがこれをMAX16932CATIS/V+Tステップダウンコントローラと特定した
- 新しいチップを注文してPCB修理店で交換し、MCUの復旧に成功した
- その後、予備として2台目のコンピュータも追加で確保した
最終的な解決と完全起動
- Rosenbergerケーブルを入手できなかったため、最終的に**Dashboard Wiring Harness一式(80ドル)**を購入した
- 実車では個別ケーブルではなく**大型の配線ハーネス(loom)**の形で作られていた
- ハーネスを接続するとタッチスクリーンが正常動作し、車載OSが完全に起動した
- その後はUI操作、ネットワークインターフェース探索、CANバス解析、ファームウェア抽出の試行などが可能になった
2件のコメント
いちばん興味深いのはこれですね
"TeslaのRoot accessプログラム"
有効なroot化の脆弱性を1つでも見つければ、自分の車両に対する"永続SSH証明書"を受け取り、rootでログインできるようになる。
ああ、欲しい!!
Hacker Newsのコメント
TeslaのRoot accessプログラムが興味深い
研究者が有効なルート化脆弱性を1つでも見つけると、自分の車両に対する永続SSH証明書を受け取り、rootでログインできるようになる
AppleのSecurity Research Device Programと似ているが、資格要件が明確である
root権限を全員に与えると悪意ある行為者が脆弱性を探しやすくなるため、Teslaのアプローチは理解できる
以前、サードパーティ製スキャンツールを作る会社で働いていた
実車の代わりにECUをラックにつないでテストし、BMWの非標準バイトオフセットの問題を見つけた。競合他社のツールは問題を検出できなかったが、公式BMWツールはDTCを表示した
モデルを別のものに設定するとECU DTCを消せるので暫定的に使っている。この分野ではオープンハードウェア/ソフトウェアのアプローチが切実に必要だ
高価な商用ソフトウェアで作られた成果物を公開するか悩んでおり、車両通信プロトコル定義のような情報は誰にでも開かれているべきだと考えている
LVDSが自動車用ケーブルと呼ばれているのが面白い。もともとはノートPCのディスプレイとメインボードを接続するときによく見たものだ
Low-voltage differential signalingの記事を参照
TeslaのUIアプリQtCarはQEMUで実行できる
ファームウェアさえあれば可能で、興味があればDMしてほしいとのこと
デモ動画
Tesla Model Yにトレーラーブレーキコントローラを自分で取り付けた経験を共有している
14.4V電圧に合うコントローラを探してケーブルを作り、eBayでコネクタを購入して装着した
昨年は何度もキャンピングトレーラーを問題なく牽引でき、このようなDIYハッカー精神が素晴らしいと感じた
問題の核心が単なる6ピンコネクタだった点が興味深い
図面と寸法があったのに、3Dプリントでコネクタを自作しようと考えなかったのは意外だった
このプロジェクトは本当に素晴らしい
プラグアンドプレイなのか、走行距離情報がどこに保存されているのか気になる
可能ならアダプティブサスペンションを旧モデルに移植してみたい。Raspberry Piで別の制御システムを作るアイデアもある
車両が想定された周辺機器なしでもOSが完全に起動する点に驚く
Teslaについて何を言おうと、ハッキングの観点では本当に素晴らしいプロジェクトだ
80ドルで配線一式を買わなければならなかったという話があったが、米国ではこれをwiring harnessと呼ぶ。loomは被覆材を意味する
AliExpressリンク