2013年8月26日

現実味を帯びる自動車のハッキング

ニュース

カスペルスキー公式ブログ『Kaspersky Daily』をときどきご覧になっている方なら、最新式の自動車がハッキングされる可能性がとても高いことはすでにご存じでしょう。実際、私は2010年にウィスコンシン大学とカリフォルニア大学サンディエゴ校によって実施された、広く引用されている調査を基に記事を執筆しています。唯一の問題は、この調査が実施されたのが2010年だということです。幸運なことに、つい先日のDEF CONで、Apple製品のハッキングで有名なコンピューターセキュリティ研究家のチャーリー・ミラー(Charlie Miller)博士と、IOActiveでセキュリティインテリジェンス部門のリーダーを務めるクリス・ヴァラセク(Chris Valasek)氏が、自動車のハッキングについて講演を行いました。このセキュリティカンファレンスは、ラスベガスのシーザーズパレスの向かいにあるリオホテルにて、Black Hatの開催最終日に開幕しました。

自動車のハッキング-title

さらに、ミラー博士とヴァラセク氏の(100ページ以上におよぶ論文にまとめられた)調査は、以前の研究よりも広範囲にわたっています。ミラー博士とヴァラセク氏はウィスコンシン大学およびカリフォルニア大学サンディエゴ校の研究者たちとは違い、使用した車について詳しく述べています。また、エクスプロイトの詳細、車のコンピューターで通信に使用されるコードとそれらを無効にしたり操作したりする方法、搭載コンピューターの配置とネットワークの結び付き方など、すべてについて公表しました。そのうえ、ハッキングした車を路上でテスト運転しています。あれこれと操られている車をForbes社の記者であるアンディ・グリーンバーグ(Andy Greenberg)氏が苦労して運転する中、両氏は後部座席でノートPCを抱えて文字通りクスクス笑っていました。

さて、興味深い話に移る前に、車と、その内部で動くコンピューターについて簡単に学習しましょう。最近の自動車には、電子制御ユニット(ECU)と呼ばれる小型のコンピューターが備えられています。ECUの搭載数は自動車によってさまざまですが、一部の車には50程度のECUが含まれていることもあります。ECUは多くの目的で用いられます。ミラー博士とヴァラセク氏が使った車では、独立した複数のECUが一切合財を制御、監視、または調整していました。エンジン制御からパワーマネジメント、ステアリング、スキッドコントロール(アンチロックブレーキシステム)、シートベルトの固定、エアバッグ、駐車支援技術、コンビネーションメーターと呼ばれるもの、その他耳にしたことのないようなものまで全部です。これらECUのほぼすべてが、コントローラーエリアネットワーク(CAN)バス上で相互につながっています。CANバスとECUは、現代の最新型自動車の中枢神経系としての役割を担っています。相互に通信することで、自動車の速度や毎分回転数をレポートしたり、事故が起きそうなときにはプリクラッシュセーフティシステムに通知してブレーキの作動、エンジンの停止、シードベルトのロックなど、クラッシュ直前にとるべき動作を実行できるようにしたりします。通信信号のほとんどは、ECUに組み込まれたセンサーが発信します。

ミラー博士とヴァラセク氏が扱ったのは、2010年生産のフォード エスケープと2010年生産のトヨタ プリウスです。とはいえ、私見ではありますが、両氏の研究はどのメーカーの自動車やモデルに対しても直接的、理論的に応用できそうです。

両氏は、ECOMデバイスをつなぎ、USBポート経由でWindowsマシンと接続できる、比較的安価なECOMケーブルを購入しました。さらに、これを少し改造し、ECOMケーブルの反対側をOBD IIポートに接続しました(OBD IIポートはハンドルの下にあり、整備士が車両点検などの作業のために車と通信する場合に使います。また、エンジンコードを初期化したり、エンジン点検警告灯を消したりする場合には、診断ツールをここに接続します)。接続が済むと、両氏は監視をスタートしました。ECU同士がCANバスに従ってどのように通信するか、また、この通信が2台の自動車の操作にどう影響するのか、見ていったのです。こうして両氏は通信プロトコルを正確に把握し、なりすましを行う準備ができました(各ECUからCANバスを通じて送られる信号を模倣した、独自の信号を挿入するのです)。

研究者たちは、速度計や走行距離計、燃料計の操作が可能であることを発見しました。

対象となった車ごとに、異なる操作が可能でした。この記事では、それぞれの車で実行できた興味深い操作の一部を紹介します。詳細については両氏の論文で確認できます。

この研究者たちは、速度計や走行距離計(累計の走行距離を計測する機器)、燃料計の操作が可能であることを発見しました。速度計については、車両の速度を監視するECUが、計装パネルを制御するECUへ、CANバスを通じて繰り返し信号を送っていることが分かりました。偽装した車両速度信号を速度計に信用させるには、速度監視用ECUが計装パネルへ実際に送っているよりも多くの偽装信号を送信する必要がありました。ひとたび適切な信号送信レートをつかむと、速度計にはどのような速度でも表示させることができるようになりました。

プリウスのドアは、ロックとロック解除が可能でした。ロックの場合は物理的に解除できるので、車内に人を閉じ込めることはできませんでしたが、外側からドアをロック解除して車に入ることはできました。

フォード車では、CANバスからのトラフィックを利用してハンドルを監視するECUへ、大量のリクエストを送りつけるDoS攻撃を仕掛けてパワーステアリングを停止させ、ハンドル操舵の範囲を性能のわずか45%にまで制限しました。また、駐車支援モジュール(自動縦列駐車機能を制御するECU)を操作できることも分かりました。ただし、駐車支援システムは非常に遅い速度でしか作動せず、最悪でも縦列駐車の隣の車にぶつけることくらいしかできないことを、研究者たちは認めています。

プリウスのハンドル操作支援機能も、大変なことになりました。プリウスのECUは、車が時速4マイル(約6.5 km)未満でバックしている場合にだけ自動駐車のハンドル支援機能が動作するように設定されていました。そのため、ミラー博士とヴァラセク氏は、普通に走行しているときにバックしていると判断するように仕向けたうえ、実際にはスピードが出ていても時速4マイル未満で走行していると信じ込ませました。自動駐車支援機能ほど正確にハンドルを切ることはできませんでしたが、あちこちの方向へ向かってガタガタ乱暴に車を操作することができました。

プリウスには、運転者が車線を逸脱しているのを感知すると車の方向をわずかに変えて元の進行方向に戻す、レーンキーピングアシスト機能も備わっています。この機能を管理するECUは、ハンドルを5度しか切れないように制御します。研究者たちはこの機能を完ぺきに乗っ取りました。方向を5度変えるというのは、比較的小さなものですが、車が道路を高速走行していたり狭い道を走っていたりする場合は、大きな影響を与えると彼らは指摘します。

フォードでは、CANバスにコマンドを送信して、ブレーキのブリーディングを指示することが可能でした。ブリーディングの間、車は停止しません。この攻撃は、車が時速5マイル(約8 km)未満で低速走行している場合にのみ実行できます。ただし、それでも研究者の1人にとっては十分に速かったようで、テストプロセス中にフォード エスケープをガレージの壁にぶつけています。

フォードのCANバスは、1つまたは複数のピストンを停止させるメッセージを送信可能です。ミラー博士とヴァラセク氏はコードのリバースエンジニアリングを行い、これを何度も送信しました。コードの送信を止めるまで、車は発進できませんでした。プリウスも、技術的には別の(実践的には似た)方法でエンジンを停止させられる危険があります。

両氏はまた、フォードの内外のライトをすべて消灯するコマンドを発見しました。照明を管理するECUは、車が走行していない場合にだけそのコマンドを受け付けます。しかし、停車している最中にコマンドを出すと、運転を再開した後でも車はコマンドに従います。すべてのライトを消灯させるということは、ブレーキライトを点灯させずに幹線道路を走らせられることを意味します。さらに、ひとたびシフトレバーをパーキングに入れたら、レバーをそこから動かせなくなります。これは、問題のECUが、レバーをパーキングから動かすためのブレーキスイッチも制御しているからだと考えられます。両氏はプリウスのヘッドライトにも干渉して、つけたり消したりすることができました。ただし、車外の明るさに応じてヘッドライトをつけたり消したりする「自動」モードに設定してある場合だけです。

ミラー博士とヴァラセク氏はプリウスのクルーズコントロールモジュールをいじり回しましたが、ありがたいことにクルーズコントロールから車を加速させることはできませんでした。とは言うものの、正面にあるなんらかの物体に車が今にも衝突しそうだとプリクラッシュシステムに思い込ませて、車を減速させ、完全に停車させることさえできました。ドライバーがアクセルを踏んでいても、車がブレーキをかけ続けたのです。クルーズコントロールを介さずにプリウスを加速させるには、ECOMケーブルに変更を加え、パワーマネジメントコンソール(車の加速を制御するECU)に直接つなぐ必要がありました。このECUはCANバスに接続されていなかったためです。その結果、ドライバーがアクセルをゆるめた後に数秒間だけ加速させることができました。それでも、望みもしない加速は危険性を秘めています。

プリクラッシュシステムには、差し迫った衝突の前にシートベルトのモーターを作動させ、シートベルトを堅く締める機能もあります。ミラー博士とヴァラセク氏は、好きなときにいつでもモーターを作動させることができました。

両氏は、ECUとCANバスへのコードの挿入(つまり、マルウェアへの感染)の可能性についても詳細に説明しています。ここでは、コードの挿入や実行の可能性が十分にあることだけお伝えします(その可能性は非常に高いため、両氏の論文では最後の20ページから30ページがそのことだけに充てられています)。

この種のハッキングについてもう1つ心に留めておくべきことは、実行には車への物理的なアクセスが必要で、(今のところ)リモートで実行するのは不可能だという事実です。

車をハッキングされないようにする防衛策は、明らかに1つあります。うんと古い車を購入することです。効果的な方法ですが、正直な話、ハッキングの可能性がある2013年生産の日産マキシマの方が、ハッキングできない私の1998年製ホンダアコードよりもはるかに安全です。ハッキング可能なそのマキシマは、あらゆる種類の安全機能やセンサーを備えていて、何か問題があるなら走り出す前に知らせてくれます。一方私の車の場合、幹線道路を運転するのはいつだって危険な賭けです。

実際のところ、ミラー博士とヴァラセク氏はセキュリティ業界の非常に優秀な人物です。両氏の仕事はハッキングすることであり、何かをハッキングするのはモノが接続された世界をより安全な場所にしたいと心から望んでいるからです。それだけではありません。両氏の調査研究では、調査で行われたことを実行するのに必要なコードやテクニックがすべて説明されていますが、これほど複雑な攻撃を実行するに足る技術的知識を持つ人間は、この両氏しかいません。それでも不安が鎮まらない方のために、自動車メーカーが(テクノロジー企業と同様に)こうした類の調査に注目し、それに基づいて自動車を改良していることも付け加えたいと思います。

ところで、未見であれば、Forbes社のWebサイトにある、アンディ・グリーンバーグ氏が運転するトヨタプリウスをミラー博士とヴァラセク氏があれこれハッキングしている動画をご覧になってみてください。なかなか楽しめます。