米テスラの「モデルS」に遠隔攻撃ができる脆弱性があることを発見した中国テンセントのセキュリティ研究者が2017年7月27日(米国時間)、開催中の「Black Hat 2017」でその手法の詳細を解説した。車載情報端末の脆弱性やファームウエアアップグレードの脆弱な仕組みが攻撃を可能にしていたことが判明した。
テンセントのセキュリティ研究部門である「Keen Security Labs」は2016年9月にブログ記事やYouTube動画を公開し、テスラのモデルSには複数のセキュリティ脆弱性が存在し、ネットワーク経由で車内システムに侵入して、リモートからドアを解錠したり、運転中の車両のワイパーやブレーキを作動させたりできると公表していた。
テンセントは脆弱性情報を公開する前にテスラに報告しており、テスラは即時に脆弱性を修正していた。それから約1年が経過した今回、世界最大のセキュリティカンファレンスであるBlack Hat 2017で、テンセントのセキュリティ研究者が攻撃手法の詳細を解説した。
テンセントによれば、攻撃の流れは以下のようなものだった。
- テスラ車の通信機能に存在した脆弱な仕様をついて車載情報端末用の車内ネットワークに侵入
- 車載情報端末のWebブラウザーに存在した脆弱性を攻撃して、任意のコードを実行可能に
- 車載情報端末のLinuxカーネルに存在した脆弱性を攻撃して、ルート権限を取得
- 情報端末用の車内ネットワークと、制御系ネットワーク(CAN)とをつなぐ「コントローラー」を攻撃して、コントローラーのファームウエアを書き換え
- コントローラーから電子制御ユニット(ECU)に偽のコマンドを送り自動車を遠隔操作
無線LAN接続時の不用意な仕様をついて車内に侵入
まずはテスラ車の車内ネットワークに侵入する方法だ。テスラ車は、テスラが運営する自動車販売店やバッテリー充電スポットに用意してある無線LANアクセスポイントに、自動的に接続する仕様になっている。その無線LANアクセスポイントのSSIDとパスワードは全ての場所で共通であり、しかもパスワードは「abcd123456」といった具合に非常に脆弱だった。
またテスラ車が搭載するLinuxベースの車載情報端末は、車が無線LANアクセスポイントに接続すると、Webブラウザーが開いていたWebページを自動的にリロードする仕様になっていた。しかも車載情報端末のWebブラウザーである「QtCarBrowser」は、古いバージョンの「WebKit」をレンダリングエンジンとして使用しており、車載情報端末上で任意のコードが実行できる脆弱性(「CVE-2011-3928」など)が存在していた。
こうした脆弱性があったため、テンセントは偽の無線LANアクセスポイントを設けてテスラ車を接続させ、車載情報端末のWebブラウザに攻撃用の偽のWebページを表示させた上で、車載情報端末で任意のコードを実行させることができた。また無線LAN経由だけでなく、3G通信機能を使っても車載情報端末で任意のコードを実行させる手法があったという。ただしその場合は、テスラ車のユーザーにフィッシング攻撃を仕掛ける必要があった。
続いてテンセントは車載情報端末を完全に乗っ取った。具体的には車載情報端末のLinuxカーネルに存在した脆弱性「SVE-2013-6282」などを利用し、Linuxのセキュリティ機構である「AppArmor」を無効にて、車載情報端末上で任意のコードをルート権限で実行できるようにした。
次のプロセスは、自動車を制御する「電子制御ユニット(ECU)」がつながる制御系ネットワーク(CAN)へのアクセスである。車載情報端末がつながる情報系の車内ネットワークとCANとは、「コントローラー」と呼ばれる装置を介して接続されている。車載情報端末からは直接CANにはアクセスできない。そこでテンセントは、コントローラーを乗っ取った。
コントローラーはプロセッサに「PowerPC」系のチップを採用し、「FreeRTOS」と仕様がほぼ同じリアルタイムOSを使っていた。テンセントはコントローラーを乗っ取るために、コントローラーのファームウエアを書き換えた。
ソフトウエア更新の仕組みを使ってファームウエア書き換え
ファームウエアの書き換えには、テスラ車が備える車載ソフトウエアのリモート更新機能(OTA、Over The Air)を「活用」した。当時のリモート更新機能は、ネットワーク経由でダウンロードした更新ファイルをSDカードに保存し、そのファイルを使ってソフトウエアを書き換えるという仕組みだった。どのソフトウエアを書き換えるかはファイル名に依存しており、不正なソフトウエア書き換えを防ぐための「コード署名」などは施されていなかった。
そこでテンセントは、自社が用意した更新ファイルをSDカードに書き込むことで、コントローラーのファームウエアを自社製のものに置き換えた。こうすることでコントローラーを乗っ取った。そして、乗っ取ったコントローラーからCANを通じて様々な電子制御ユニット(ECU)に偽のコマンドを送り、自動車を自由に操縦した。
偽コマンドにも工夫を凝らした。例えば一部のECUは、運転モード中はCANからのコマンドに応答しない仕様になっていた。そこでテンセントは「無効になった速度情報をECUに送信する」といったテクニックを使った。無効な速度情報を受け取ったECUにブレーキを発動させるためだ。
脆弱性発覚後のテスラの対応は評価
テンセントはこうした一連の脆弱性を公開する前に、その情報をテスラに通告した。テスラは通告後わずか10日間で、脆弱性を修正したという。また脆弱性を報告したテンセントに対して、感謝の意を表明することも忘れなかったという。
テンセントのセキュリティ研究者で今回の講演をしたSen Nie氏は「テスラの対応は非常に優れていた」と評価する。なぜならテスラは10日間で脆弱性を修正しただけでなく、セキュリティ強化まで実施していたからだ。
セキュリティ強化は三つあった。第一はWebブラウザーのセキュリティ強化で、Linuxカーネルのセキュリティ保護機構であるAppArmorのWebブラウザーに関連するルールをより強固なものにした。
第二はLinuxカーネルのセキュリティ強化で、指摘があった脆弱性だけでなく、既知の全脆弱性を修正した。Nie氏は「自動車業界はテスラを見習うべきだ」と評価する。またテスラはその後、Linuxカーネルのバージョンをそれまでの「2.6.36.3」から「4.4.35」に移行している。
第三はコード署名の実施だ。ソフトウエアのリモート更新に使用するファイルだけでなく、ECUのファームウエアにもコード署名を施し、不正なファイルによって置き換えられないようにした。
セキュリティ強化後もハッキング可能だった
しかし講演の最後に、強烈な「オチ」も用意されていた。テンセントによる2016年の脆弱性によって、テスラ車のセキュリティは大幅に強化されているにも関わらず、テンセントは今回再び、テスラ車のファームウエアなどを書き換えて、スマートフォンアプリケーションからテスラ車をリモートコントロール可能にしてしまったのだ。講演ではその模様を動画で披露した。
テンセントのNie氏は「コード署名をバイパスする手法を見つけた」と説明する。しかも今度のターゲットはモデルSより新しい「モデルX」だった。ファームウエアを書き換えられたモデルXのドアをリモートから解錠したり、モデルXのブレーキをリモートから作動させたり、音楽に合わせてドアを開いたりライトを点灯させたりと、やりたい放題のデモだった。
なおこれらの脆弱性についても、既にテスラには報告済みであり、テスラによるソフトウエア修正が既に始まっているという。テンセントはテスラ車のオーナーに対して、早期のソフトウエア更新を呼び掛けた。
登録会員記事(月150本程度)が閲覧できるほか、会員限定の機能・サービスを利用できます。
※こちらのページで日経ビジネス電子版の「有料会員」と「登録会員(無料)」の違いも紹介しています。