Other

2017.12.11

新刊『カーハッカーズ・ハンドブック』は12/22発売!

Text by editor

CHH_cover1206out

「Make:」書籍チームが企画・制作を行った書籍を紹介します。

●書籍紹介

本書は、複雑な電子機器とコンピュータシステムを備えた現代の自動車が、どのような仕組みで動作しているかを、より深く知りたい読者(ハッカー)のための書籍です。自動車の脅威モデルの紹介にはじまり、CANバスをはじめとしたさまざまなバスネットワークを解説、さらにCANバスのリバースエンジニアリングを行います。そしてECUをハッキングするための基礎的な知識と具体的なハッキングの手法も紹介。車載インフォテイメントシステムや車車間通信についても解説した上で、そこまでに紹介した方法を用いて発見した脆弱性を攻撃するツールを実際に作成。攻撃のリスクや問題点に対する充分な知識を得た上で、読者がそれらに対応することを可能にします。

●書籍概要

Craig Smith 著、井上 博之 監修、自動車ハッククラブ 訳
2017年12月22日 発売予定
B5変形判/312ページ
ISBN978-4-87311-823-9
定価3,456円


●「はじめに」から

なぜ、自動車ハッキングはすべての人々にとって良いのか

この本を手にしている読者なら、すでになぜ車をハックするのかわかっているだろう。しかし念のため、ここで自動車をハッキングすることの意味について簡単に述べたい。

自分の車がどのように動作するのかを理解する
自動車産業は、複雑な電子機器とコンピュータシステムを備えた素晴らしい車を大量に生産している。しかし、何がそのシステムをうまく動かしているのかについて提供されている情報はわずかだ。車載ネットワークがどのように動作するのか、また車両システム内およびその外部とどのように通信するのかを理解することで、診断や問題点のトラブルシュートをより良くできるようになるだろう。

車載電子システムの動作を学ぶ
車の進化とともに、機械的に動作する部分は減り、電子的に動作する部分が増えている。残念ながら車載電子システムは、ディーラの整備士を除いて、一般には典型的なクローズドシステムである。ディーラが一個人の知りうる情報より多くの情報にアクセスしている一方で、自動車メーカ自身は部品を外注し、問題を診断するためには独自のツールを必要としている。車載電子システムがどのように動作するかを学ぶことは、その障害を回避するための手助けとなる。

自動車を改造する
車載通信を理解することは、燃費の改善やサードパーティ製の代替部品の利用のような改良につながる。通信システムを理解していれば、パフォーマンスを表示する追加のディスプレイや工場出荷の標準品と同等に統合されたサードパーティの部品への交換など、自分の車に他のシステムをシームレスに導入できる。

説明書にない機能を見つける
車は、説明書にはない、あるいは無効にされている機能を備えていることがある。それらの機能を見つけて活用すれば、自分の車の隠された機能を最大限に利用できる。例えば、説明書にはないバレーモードがあって、駐車係に車のキーを渡す前に車の機能を制限するモードにできるかもしれない。

自分の車のセキュリティを確認する
本書の執筆時点で、自動車安全ガイドラインは悪意のある電子的な脅威を取り扱っていない。車はパソコンと同様にマルウェアの影響を受けやすい状態にもかかわらず、自動車メーカは車両の電子機器のセキュリティ監査を要求されていない。この状況はまったく受け入れがたい。私たちはこのような車に家族や友人を乗せてドライブしており、私たち一人一人が自分たちの車を安全だと納得できる必要がある。もし自分の車をどのようにハッキングするか学べば、車両のどこが脆弱かがわかり、予防措置をとることが可能になる。また、より安全なセキュリティ標準のために良い提言ができるようになるだろう。

自動車産業を助ける
自動車産業も本書に含まれている知識から利益を得られる。本書は、現在の保護技術を回避する最新のテクニックだけでなく、脅威を特定するためのガイドラインも提供する。さらに、セキュリティ対策を施すための設計を助けるとともに、本書では、自分たちが発見したものを研究者同士で共有する方法を提案する。

今日の車は、以前よりずっと電子的にできている。IEEE Spectrumのレポート“This Car Runs on Code”(ロバート・N・キャレット著)によれば、2009年の時点で車両は一般的に、100個以上のプロセッサ、50個以上の電子制御ユニット、8キロメートル以上の配線、そして1億行のプログラムで作られている(http://spectrum.ieee.org/transportation/ systems/this-car-runs-on-code)。トヨタのエンジニアは、車両にホイールを付けた唯一の理由はコンピュータを地面に擦らせないようにするためだ、という冗談を言っているくらいだ。車にとってコンピュータシステムが不可欠な存在になればなるほど、セキュリティレビューを行うことはより重要で複雑になってくる。


●目次

本書の出版に寄せて
謝辞
はじめに

1章 脅威モデルの理解
 アタックサーフェースの探索
 脅威モデル
 脅威の識別
 脅威評価システム
 脅威モデルの結果を使った取り組み
 まとめ

2章 バスプロトコル
 CANバス
 SAE J1850プロトコル
 キーワードプロトコルとISO9141-2
 LINプロトコル
 OSTプロトコル
 FlexRayバス
 車載イーサネット
 OBD-IIコネクタのピン配置図
 OBD-III規格
 まとめ

3章 SocketCANによる車載通信
 CANデバイスと接続するためのcan-utilsのセットアップ
 CANユーティリティ集
 SocketCANアプリケーションのコーディング
 socketcandデーモン
 Kayak
 まとめ

4章 診断とロギング
 故障診断コード
 統合診断サービス
 診断モードの総当たり調査
 イベントデータレコーダのログ
 自動クラッシュ通知システム
 悪意のある行動
 まとめ

5章 CANバスのリバースエンジニアリング
 CANバスの場所の特定
 can-utilsとWiresharkによる CANバス通信のリバースエンジニアリング
 ICSimによるバックグラウンドトラフィックノイズの生成
 OpenXCによる CANバスの解析
 CANバスのファジング
 問題が起きた時のトラブルシューティング
 まとめ

6章 ECUハッキング
 フロントドア攻撃
 J2534: 標準化された車両通信 API
 J2534ツールの利用
 KWP2000と古いプロトコル
 フロントドアアプローチの活用 : Seed-Keyアルゴリズム
 バックドア攻撃
 エクスプロイト
 自動車のファームウェアのリバースエンジニアリング
 自己診断システム
 ライブラリ関数
 パラメータ特定のためのバイト比較
 WinOLSによる ROMデータの特定
 コード解析
 単純な逆アセンブラの動作
 対話型逆アセンブラ
 まとめ

7章 ECUテストベンチの構築と利用
 基本的な ECUテストベンチ
 より高度なテストベンチの構築
 車速のシミュレーション
 まとめ

8章 ECUや他の組込みシステムへの攻撃
 回路基板の解析
 JTAGやシリアル線を使ったハードウェアのデバッグ
 ChipWhispererを使ったサイドチャネル解析
 電力解析攻撃によるセキュアブートローダの総当たり調査
 フォルトインジェクション
 まとめ

9章 車載インフォテイメントシステム
 アタックサーフェース
 アップデートシステムを利用した攻撃
 IVIハードウェアへの攻撃
 インフォテイメントのテストベンチ
 テスト用の自動車メーカ製 IVIの取得
 まとめ

10章 車車間通信
 車車間通信の方式
 DSRCプロトコル
 セキュリティ上の懸念
 PKIベースのセキュリティ対策
 まとめ

11章 攻撃ツールの作成
 C言語によるエクスプロイトの作成
 ターゲットの車種の特定
 エクスプロイトに対する責任
 まとめ

12章 SDRを用いた無線システムへの攻撃
 無線システムとSDR
 TPMSのハッキング
 キーフォブとイモビライザへの攻撃
 まとめ

13章 パフォーマンスチューニング
 パフォーマンスチューニングのトレードオフ
 ECUチューニング
 スタンドアロンエンジンの管理
 まとめ

付録A 市販のツール
付録B 診断コードのモードとPID
付録C 自分たちのOpen Garageを作ろう

略語集
索引
監修者あとがき

O’Reilly Japan – カーハッカーズ・ハンドブック