現代の自動車は、走行に不可欠なコンピューター以外にもカーエンタテイメントシステムなどのさまざまなシステムが搭載され、それらはすべて攻撃の対象になります。本書は、車載システムへの攻撃を防ぐための書籍です。CANバスやECUなどの基礎を紹介し、さらにそれらを操作、変更する具体的なテクニック、そしてセキュリティの妥当性検査を行う方法などの解説を行います。
https://www.ohmsha.co.jp/book/9784873118239/
正誤表やDLデータ等がある場合はこちらに掲載しています
本書の出版に寄せて
謝辞
はじめに
なぜ、自動車ハッキングはすべての人々にとって良いのか
本書の内容
1章 脅威モデルの理解
アタックサーフェースの探索
脅威モデル
レベル 0: 概観
レベル 1: 受信機
レベル 2: 受信機のブレークダウン
脅威の識別
レベル 0: 概観
レベル 1: 受信機
レベル 2: 受信機のブレークダウン
脅威評価システム
DREAD評価システム
CVSS: DREADに代わる選択肢
脅威モデルの結果を使った取り組み
まとめ
2章 バスプロトコル
CANバス
OBD-IIコネクタ
CAN接続箇所を見つける方法
CANバスパケットのフォーマット
ISO-TPプロトコル
CANopenプロトコル
GMLANバス
SAE J1850プロトコル
PWMプロトコル
VPWプロトコル
キーワードプロトコルとISO9141-2
LINプロトコル
OSTプロトコル
MOSTネットワーク層
MOST制御ブロック
MOSTのハッキング
FlexRayバス
ハードウェア
ネットワークトポロジ
実装
FlexRayサイクル
パケットレイアウト
FlexRayネットワークのスニファ
車載イーサネット
OBD-IIコネクタのピン配置図
OBD-III規格
まとめ
3章 SocketCANによる車載通信
CANデバイスと接続するためのcan-utilsのセットアップ
can-utilsのインストール
ビルトインチップセットの設定
シリアル CANデバイスの設定
仮想 CANネットワークの設定
CANユーティリティ集
追加のカーネルモジュールのインストール
can-isotp.koモジュール
SocketCANアプリケーションのコーディング
CANソケットとの接続
CANフレームのセットアップ
Procfsインタフェース
socketcandデーモン
Kayak
まとめ
4章 診断とロギング
故障診断コード
DTCフォーマット
スキャンツールによるDTCの読取り
DTCの消去
統合診断サービス
ISO-TPとCANを用いたデータ送信
モードとPIDの理解
診断モードの総当たり調査
車を診断モードに保つ
イベントデータレコーダのログ
EDRのデータ読取り
SAE J8規格
その他のデータ復元の実践
自動クラッシュ通知システム
悪意のある行動
まとめ
5章 CANバスのリバースエンジニアリング
CANバスの場所の特定
can-utilsとWiresharkによる CANバス通信のリバースエンジニアリング
Wiresharkの使用
candumpの使用
CANバスから流れてくるデータのグループ化
記録と再生機能の利用
パケット解析の工夫
タコメータの値の読取り
ICSimによるバックグラウンドトラフィックノイズの生成
ICSimのセットアップ
ICSimを使った CANバスのトラフィックの読取り
ICSimの難易度の変更
OpenXCによる CANバスの解析
CANバスメッセージの変換
CANバスへの書込み
OpenXCのハッキング
CANバスのファジング
問題が起きた時のトラブルシューティング
まとめ
6章 ECUハッキング
フロントドア攻撃
J2534: 標準化された車両通信 API
J2534ツールの利用
KWP2000と古いプロトコル
フロントドアアプローチの活用 : Seed-Keyアルゴリズム
バックドア攻撃
エクスプロイト
自動車のファームウェアのリバースエンジニアリング
自己診断システム
ライブラリ関数
パラメータ特定のためのバイト比較
WinOLSによる ROMデータの特定
コード解析
単純な逆アセンブラの動作
対話型逆アセンブラ
まとめ
7章 ECUテストベンチの構築と利用
基本的な ECUテストベンチ
ECUを見つける方法
ECU配線の調査
配線作業
より高度なテストベンチの構築
センサ信号のシミュレーション
ホール効果センサ
車速のシミュレーション
まとめ
8章 ECUや他の組込みシステムへの攻撃
回路基板の解析
型番の特定
ICチップの解体と識別
JTAGやシリアル線を使ったハードウェアのデバッグ
JTAG
シリアル線を使ったデバッグ
Advanced User Debugger
Nexus
ChipWhispererを使ったサイドチャネル解析
ソフトウェアのインストール
Victim Boardの準備
電力解析攻撃によるセキュアブートローダの総当たり調査
AVRDUDESSを使ったテストの準備
ChipWhispererをシリアル通信用に設定
独自パスワードの設定
AVRをリセットする
ChipWhispererの ADCセットアップ
パスワード入力時における電力使用量のモニタ
Pythonスクリプトによる ChipWhispererの処理
フォルトインジェクション
クロックグリッチ
トリガラインの設定
電源グリッチ
侵襲的フォルトインジェクション
まとめ
9章 車載インフォテイメントシステム
アタックサーフェース
アップデートシステムを利用した攻撃
システムの識別
アップデートのファイルタイプの特定
システムの改変
アプリとプラグイン
脆弱性の特定
IVIハードウェアへの攻撃
IVIユニットの接続の解析
IVIユニットの分解
インフォテイメントのテストベンチ
GENIVI Meta-IVI
Automotive Grade Linux
テスト用の自動車メーカ製 IVIの取得
まとめ
10章 車車間通信
車車間通信の方式
DSRCプロトコル
機能と使用方法
DSRC路側システム
WAVE規格
DSRCによる車両追跡
セキュリティ上の懸念
PKIベースのセキュリティ対策
車両証明書
匿名証明書
証明書プロビジョニング
証明書失効リストの更新
不正動作の報告
まとめ
11章 攻撃ツールの作成
C言語によるエクスプロイトの作成
アセンブラコードへの変換
アセンブラコードからシェルコードへの変換
NULL値の削除
Metasploitペイロードの作成
ターゲットの車種の特定
対話的な調査法
受動的な CANバスのフィンガープリント識別法
エクスプロイトに対する責任
まとめ
12章 SDRを用いた無線システムへの攻撃
無線システムとSDR
信号変調
TPMSのハッキング
無線受信機による傍受
TPMSパケット
起動信号
車両の追跡
イベントのトリガ
偽造パケットの送信
キーフォブとイモビライザへの攻撃
キーフォブハッキング
PKESシステムへの攻撃
イモビライザで使われている暗号
イモビライザシステムへの物理攻撃
フラッシュバック:ホットワイヤ
まとめ
13章 パフォーマンスチューニング
パフォーマンスチューニングのトレードオフ
ECUチューニング
チップチューニング
フラッシュチューニング
スタンドアロンエンジンの管理
まとめ
付録A 市販のツール
ハードウェア
ローエンドなCANデバイス
ハイエンドなCANデバイス
ソフトウェア
Wireshark
PyOBDモジュール
Linuxツール
CANiBUSサーバ
Kayak
SavvyCAN
O2OOデータロガー
Caring Caribou
c0fフィンガープリント取得ツール
UDSim ECUシミュレータ
Octane CANバススニファ
AVRDUDESS GUI
RomRaider ECUチューナ
Komodo CANバススニファ
Vehicle Spy
付録B 診断コードのモードとPID
0x10以上のモード
よく使われるPID
付録C 自分たちのOpen Garageを作ろう
Character Sheetの記入
ミーティングの日時
アフィリエーションとプライベートメンバーシップ
ミーティングの場所の決定
連絡先
創設当初の幹事
機材
略語集
索引
監修者あとがき