「テンセントが公開したテスラ車のハッキング法」

言っちゃ何だが,随分と杜撰.

テンセントのセキュリティ研究部門である「Keen Security Labs」は2016年9月にブログ記事やYouTube動画を公開し、テスラのモデルSには複数のセキュリティ脆弱性が存在し、ネットワーク経由で車内システムに侵入して、リモートからドアを解錠したり、運転中の車両のワイパーやブレーキを作動させたりできると公表していた。

http://keenlab.tencent.com/en/2016/09/19/Keen-Security-Lab-of-Tencent-Car-Hacking-Research-Remote-Attack-to-Tesla-Cars/

テンセントによれば、攻撃の流れは以下のようなものだった。

  • テスラ車の通信機能に存在した脆弱な仕様をついて車載情報端末用の車内ネットワークに侵入
  • 車載情報端末のWebブラウザーに存在した脆弱性を攻撃して、任意のコードを実行可能に
  • 車載情報端末のLinuxカーネルに存在した脆弱性を攻撃して、ルート権限を取得
  • 情報端末用の車内ネットワークと、制御系ネットワーク(CAN)とをつなぐ「コントローラー」を攻撃して、コントローラーのファームウエアを書き換え
  • コントローラーから電子制御ユニット(ECU)に偽のコマンドを送り自動車を遠隔操作

その無線LANアクセスポイントのSSIDとパスワードは全ての場所で共通であり、しかもパスワードは「abcd123456」といった具合に非常に脆弱だった。

しかも車載情報端末のWebブラウザーである「QtCarBrowser」は、古いバージョンの「WebKit」をレンダリングエンジンとして使用しており、車載情報端末上で任意のコードが実行できる脆弱性(「CVE-2011-3928」など)が存在していた。

こうした脆弱性があったため、テンセントは偽の無線LANアクセスポイントを設けてテスラ車を接続させ、車載情報端末のWebブラウザに攻撃用の偽のWebページを表示させた上で、車載情報端末で任意のコードを実行させることができた。

Linuxカーネルに存在した脆弱性「SVE-2013-6282」などを利用し、Linuxのセキュリティ機構である「AppArmor」を無効にて、車載情報端末上で任意のコードをルート権限で実行できるようにした。

ファームウエアの書き換えには、テスラ車が備える車載ソフトウエアのリモート更新機能(OTA、Over The Air)を「活用」した。当時のリモート更新機能は、ネットワーク経由でダウンロードした更新ファイルをSDカードに保存し、そのファイルを使ってソフトウエアを書き換えるという仕組みだった。どのソフトウエアを書き換えるかはファイル名に依存しており、不正なソフトウエア書き換えを防ぐための「コード署名」などは施されていなかった。

 そこでテンセントは、自社が用意した更新ファイルをSDカードに書き込むことで、コントローラーのファームウエアを自社製のものに置き換えた。こうすることでコントローラーを乗っ取った。そして、乗っ取ったコントローラーからCANを通じて様々な電子制御ユニット(ECU)に偽のコマンドを送り、自動車を自由に操縦した。

 偽コマンドにも工夫を凝らした。例えば一部のECUは、運転モード中はCANからのコマンドに応答しない仕様になっていた。そこでテンセントは「無効になった速度情報をECUに送信する」といったテクニックを使った。無効な速度情報を受け取ったECUにブレーキを発動させるためだ。