いろんな技術に触れたい

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

自動車ってどうやってハッキングするんですか? [IoTSecJP #2 振り返り]

f:id:Tokina:20180108153711p:plain

こんにちは。

本記事は主にIoTSecJP #2でお話させて頂いたスライドを補足したいと思います。

まずは、今回の機会を頂いた黒林檎氏に感謝します!ありがとうございました。


さて、早速ですが、私のスライドを貼っておきます。 ※表示がちょっと崩れてしまっています



公開用に一部秘匿しています。

補足

Jeepのハッキング例について

2015年にJeepがハッキングされ、自動車のハッキング事例が脚光を浴びたのが記憶に新しいと思います。
ハッキングを成功させたのはチャーリー・ミラー(Charlie Miller)氏とクリス・ヴァラセク(Chris Valasek)氏です。
Jeepに搭載されているインフォテインメントシステム(ナビ)には3G回線と接続する機能が搭載されていました。しかし、最初からSSH可能なポートが開いていたそうです。
そこで、その脆弱性をついて遠隔操作を可能にしました。

彼らをレビューした動画がYoutubeにありました。


Hackers Remotely Kill a Jeep on the Highway—With Me in It

実際に遠隔から、実際に走行している自動車のホーンを鳴らすなど、遠隔操作を実現しています。

ジョージ・ホッツ (george Hotz)氏のCODE BLUEでの登壇内容について

今回、攻撃にターゲットを据えた話をするにあたって、折角の機会なのでジョージ氏が公開しているopenpilotについて調べてみました。
openpilotは実際にGithubに公開されています。

GitHub - commaai/openpilot: open source driving agent

彼の開発したシステムの内容をまとめますと、以下のようになると思います。
これから分かるように、各社のCANIDの解析結果がopendbcとして公開されてしまっているので、これは結構やばいのでは・・・?

f:id:Tokina:20180111031118p:plain
Geoge Hotz氏のopenpilot関係性まとめ

openpilotはオートクルーズを模擬するようなものなのですが、そのためには実際にCANメッセージなりすますことで、実際のECUをなりすまします。
しかし、各社搭載しているECUが異なる、乃ちCAN IDが異なるため、その各社同士の違いを吸収するのがopendbcになります。
openpilotは変換されたメッセージを解釈することで、自動運転を実現します。

※追記


@yubedrumsさんより、OBDドングルとの接続方法について補足頂きました。ありがとうございます!

実践!自動車ミニハックについて

例の脆弱そうなOBDドングルを実際に使ってみた例です。
コマンドを実行して、実際にCANメッセージをモニタできている様子の動画を添付しておきます。

http://himitu23-blog.tumblr.com/post/169458387666/obdドングルで自動車のcanメッセージを覗いたりする様子です

シミュレータとアナライザについて

最後に少し質問を頂いたので、メモとして残しておきます。

実際の自動車でなくても、CANの応答を確認するためのツールとしてECUシミュレータというものがあります。
少しお高いですが、、、

www.opsoc.co.jp


また、アナライザ(OBDからCANをモニタするツールとして)は下から上まで様々あります。
送信/受信バッファがある程度あるものですと、なかなか高価なものになると思います。

恐らくRasperry Pi + PiCANのセットが一番安く上がるのではないのかと思います。
ソフトウェアとしてはcan-utilsが利用できます。

skpang.co.uk

github.com

最後に

今回はBus PiratesやBluetoothハックなど、今アツイところの話をたくさん聞けたので大満足です

秋葉原にいっていろいろとあさりたいと思います!笑