いろんな技術に触れたい

日頃色々触れた技術を自分なりにまとめておきたいと思ってます。難しいものほどブログ書く時間がかかるのが問題・・・

自動車セキュリティの今について自分なりにまとめてみる

f:id:Tokina:20171208133818j:plain
東京モーターショー2017より

こんにちわ。
メリークリスマスまであと2週間とちょっとですね。(この記事は2017年12月8日のものです)

この記事は私の研究室のアドベントカレンダーの第三回目の記事にあたります。


皆さんはお車をお持ちでしょうか?
運転免許はお持ちでしょうか?
運転経験はいかほどでしょうか?

「自動車のセキュリティって聞いてどう感じますか?」

たぶんそんなのずっと先のことだよ、とか
そんなの実際に起こるわけないよ、など感じる方がほとんどだと思います。

そこで、自分の経験から自動車セキュリティについて、それが一体どんなものかまとめてみたいと思います。

今回はとても長いので「続きから読む」機能をつけておきます!


自動車セキュリティはなぜ注目されはじめているのか

自動車 = vehicle
セキュリティ = security
です。

自動車をターゲットにした攻撃によって引き起こされることってなんだと思いますか?

この質問に対して多くの人はこう答えます
「前の車にぶつかる」
「止まらなくなる」


こうしたことが実際に行われたかどうかはさておき、これは実際できそうではありませんか?
こうした攻撃を実現するためには、自動車が自動的にこういう動作が可能でなくてはいけません。
最近「自動駐車」とか「AIを搭載してどうの」とか、「危険を発見してピタッと停止」とかよく聞きますよね。
攻撃とはこれらを悪用するものなので、便利になる=攻撃によっておこる被害も拡大する(はず)と想像するのは難しくないと思います。
※実際に私が攻撃を成功させたかについてはご想像におまかせします

以下に最近の自動車会社さんの技術についてまとめてみました。
日本ではまだ一部足踏み状態であるものの、日産が最近自動駐車をサポートすることを正式にアナウンスしましたね。
こうした機能を悪用すると、最悪の場合人命につながってしまうことも十分に考えられると思います。

あ、ちなみに私の車は日産車です。

まず、最近の自動車メーカーさんの最新技術について簡単に調べてみました。

最近の自動車会社の先進技術についてのまとめ

日本の会社の例(トヨタ系)

toyota.jp

www.subaru.jp

www.daihatsu.co.jp

トヨタ系の会社の各ウェブサイトから先進技術のものについて探してきました。
トヨタでは安全基準が非常に高く、なかなかOKサインがでないためまだ自動駐車機能などはリリースされていません。

日本国外の会社系

Mercedez
www.mercedes-me-connect.jp
BMW
www.bmw.co.jp

外部ネットワークとつながる例を集めました。


自動車への攻撃って、実際にはどうやるんですか?

Amazonにすべてがまとまっている本が出ています

The Car Hacker's Handbook: A Guide for the Penetration Tester

まぁ英語なんですけど、、

しかし、実はこれはダウンロードすることができます。(Car Hacking Villageのホームページ参照)
ペーパーブックがいい人は買ってください!あと日本語版が12月にオライリー様のほうから出版されるそうです!

↓記事執筆中に見つけました
カーハッカーズ・ハンドブック ―車載システムの仕組み・分析・セキュリティ

自動車のハッキング大会について

ここ数年で自動車に関するハッキング大会が開かれるようになりました。

その代表例がDEFCONのCar Hacking Villageです。
f:id:Tokina:20171206151202p:plain
Car Hacking Village


ここに、さっきのHandbookがダウンロードできるようになっています。
自動車セキュリティやってます、という方なら必ず一読するべきです。

そしてもう一つ、日本で開催されるCODE BLUEにおいても限定的ですが自動車のハッキング大会が開かれています。
codeblue.jp

私が以前書いたPractical Can bus hackingについての記事は以下です。

tokina.hatenadiary.jp


こうしたハッキング大会では実際の自動車へのハッキングを想定した大会、ということは皆さんもわかると思います。

ではそこでどんな攻撃が行われているのか?
そこで、もう少し具体的に説明したいと思います。

自動車への攻撃するための”穴”はどこか

総体的な攻撃を考えたとき、最初に必要なことは”穴”を探すことです。
これをCar Hacker's HandbookではThreat Modeling(脅威のモデリング)と呼んでいます。
これはつまり全体を俯瞰(Bird's view)してSurface(表面)から”穴”を探すということです。


代表的な攻撃の”穴”は以下の様なものがあります

  • OBD port - CAN(Car Area Network)
  • ナビ(インフォテインメント)
  • USB
    • USBキーボード, その他
  • キーフォブ
  • 各種物理センサ
  • 各コンピュータ(ECU
    • 鍵の取り出し、サイドチャネル攻撃
  • (将来)ITS (Intelligent Transport System)

大体こんな感じでしょうか。これら全てから攻撃可能というわけではありませんが、攻撃可能性があることは理解していただけるでしょうか。

自動車のセキュリティで主なターゲットになるのはOBDもしくはナビです。
この2つについて簡単にまとめましょう

自動車への攻撃 - OBD port

OBDポートについて、ご存知の方も多いと思います。
OBDはOn-board diagnosticsのことです。現在はOBD-Ⅱが普及しています。またDLC(Data Link Connector)と表記されることもあります。

f:id:Tokina:20171208161041p:plain
大体ハンドルの下のどこかについています。私の車は少し変わっており、ハンドルの真下にありますが、普通は左右のどちらかだと思います。

このOBDは自動車の診断のために用意されているポートであり、ここから様々な静的な、もしくはアクティブなテストを行います。
静的なテストとしては、エアコン温度やその他センサ値の読み取り、アクティブテストとしてはエアダスターの強制作動などがあります。
その診断するための機器はデンソーさんやその他サプライヤーさんたちからたくさん出ています。中華製には気をつけましょう。

自動車の自己診断機能 - Wikipedia

OBDを介した攻撃ということは、すなわち診断のために用意された”穴”を攻撃するということなのです。

もちろん、診断の際にはSecurity Accessのための鍵のやりとりなどが必要だったり、あるプロトコルに従う必要があるので攻撃は簡単ではありません。

では自動車に接続するためのポートとしてOBDがあることは理解していただけたとは思いますが、そこにはどんなネットワークが、どんなメッセージが流れていると思いますか?

現在、車載ネットワークには”CAN”というプロトコルが多く採用されています。自動車の内部はメインがCAN Busでつながっており、各コンピュータ(ECU)と接続し、通信を行っています。

CANの脆弱性


このCANは、その仕組などから本質的に脆弱であることが知られています。このため、自動車のハッキングを考えたときについて回るのがCANになるのです。ハッキング大会でもこうしたCAN周りがメインになります。

Controller Area Network - Wikipedia

CANの脆弱なところ

  • 送信者IDしかない

CODE BLUEでは送信元IDもありましたが、通常利用されているCANバスにおいてはありません

CAN-FDなど拡張フォーマットもありますが、クラシックなCANはいまでもメインで利用されており、そのペイロード、すなわちデータ部は小さいです。
このため帯域の制限などから満足なセキュリティ機能を盛り込むことは出来ません。

  • 帯域が500kbpsである(Hi-spped CAN)

記憶では750kbpsもあったような記憶がありますが、基本的に500kbpsで通信を行っています。低速な場合は125kbpsです。
このため、DoS攻撃などによりすぐに帯域をあふれさせることが可能なので、通信不能時のフェールセーフな動作を常に考えなければならないわけです。


こうした脆弱なポイントがあるにもかかわらず、自動車でCANが利用されているのは様々な理由があります。

  • 産業用ネットワークからの派生
  • Ethernetなどへの移行に際してのコスト
  • 当初は攻撃されることを想定していなかった

CANの脆弱性への取り組み

CANって脆弱ですよね、なんで利用されているんですか?
とはよく聞きます。それはまあ仕方がないことです。
じゃあ最短な手段でどうするか?ということです。

もともと、自動車内部のCANバスは全て一つ(もしくは2つ)で接続されていました。

以下は私が適当に作成した車内部のネットワークのイメージ図です。

f:id:Tokina:20171208141526p:plain
クラシックなCANバスのイメージ図


これは一つのバス上に様々なコンピュータが接続されているイメージ図です。
これが意味しているのは外部からアクセスできますよねってことです。
そのため、簡単な手段としては”ゲートウェイを導入”することが考えられます。

最も早く(たぶん)ゲートウェイを導入したのはトヨタです。

例えばゲートウェイを導入すると次のようなイメージになります。

f:id:Tokina:20171208145240p:plain
モダンなCANバスのイメージ図

これにより、OBDに対しては内部のメッセージを外部に出すこともなくなります。
一見良さそうですが、、、?


じゃあナビやITSは、、、?
そう、それが今後の課題となってくるのは明白でしょう。

自動車への攻撃 - ナビ

各自動車メーカは独自のナビ開発に取り組んでいます。

そこで一番(攻撃可能性的な意味)で有名なのはMazda Connectだと思います。

www.mazda.co.jp

マツダコネクトのハッキングのサイトまであります
http://mazda-connect.com/


このマツコネには最初からSSHが可能だという脆弱性があり、内部のディレクトリ構成やスクリプトの位置などが既に認知されてしまったため、一度ファームウェアを更新しても守れなかったのだと思います。

また、もっと有名なのでJeepのチェロキーのハッキングの例でしょう。
2015年、BlackhatにおいてJeepのチェロキーのハッキングについての発表がありました。(バラセックさんたちは更に以前にも自動車への攻撃の発表を2回発表しています)
blog.kaspersky.co.jp

Jeepのチェロキーに初めて携帯回線と常時接続したナビが搭載されたのですが、これには最初からSSHが可能なポートがあいていたのです。
ここから自動車の完全な乗っ取りを実現しました。


最近の自動車ナビの動きとしては、自動車ナビ用のOSの開発です。

Automotive Grade Linux
f:id:Tokina:20171208153910p:plain
https://www.automotivelinux.org/

をご存知でしょうか。

このAutomotive Grade Linux(AGL)はコネクテッドカーに向けたオープンソースなプラットフォームです。
これを利用して自動車ナビなどの開発を行うことを目的としており、既にスバル、三菱、マツダ、フォードが参画することを発表しています。
https://ja.wikipedia.org/wiki/Automotive_Grade_Linux

このAutomotive Grade Linux(AGL)を搭載したカムリを2018年に発売することをトヨタ自動車が発表しています。
news.mynavi.jp

これで一つ懸念されるのが、OSの統一によって脆弱性の影響がより広範囲になる可能性がある、ということです。
例えばBluetoothを扱うBluezに脆弱性が見つかった場合には、同じバージョンを搭載したOSをナビに持つ自動車全体が影響を受ける可能性があります。

最後に

久しぶりに長い記事を書きました。
しかし、以前から自動車セキュリティについて私の知見の範囲でまとめてみたいと考えていたので、ちょうどいい機会でした。


これからも自動車業界はさらに高度なセキュリティが求められることは間違いありません。
ITSは2015年から採用されており、トヨタ以外のメーカもこれから搭載すると思います。
そうした新技術の搭載においてはセキュリティは一つの大きな要件であることには間違いないのです。

100%完璧です。100%安全です。
そういえないのがセキュリティです。

これからも自動車セキュリティの勉強を続けていきたいです!

ご意見や不足している箇所の指摘などは随時お願い致します。