カーハッカーズハンドブックを読みました。
最近はよくオライリージャパンの本を読んでます。
実践CSIRTプレイブックもそうですが、日本語の訳がとても簡潔で理解しやすいです。
今回は、カーハッカーズハンドブックを呼んだので、自分の備忘録を兼ねて重要なポイントをブログします。
1章 脅威モデルの理解
脅威モデルの考え方
段階的にアタックサーフェスを詳細にする。
受信機として、
- 携帯電話
- Wi-Fi
- キーフォブ
- 空気圧センサ(TPMS)
- インフォテイメントコンソール
- USB
- Bluetooth
- CAN
などがあり、これら受信機について、携帯電話はHSI、Wi-Fiはwpa_supplicant、USBはudevなどモジュールレベルにブレイクダウンする。
そして、これらモジュールに古いバージョンへの攻撃や不正通信の搾取など、様々の脅威を洗い出す。
ポイントは、モジュールの中でLinuxのカーネルにアクセスできるものについて、特に対応が重要となる。
脅威の評価
DREAS評価システムが紹介されている。
これは次のイニシャルをとったもの。
- Damege potential(潜在的な損害)
- Preproducibility(再現性)
- Exploitability(攻撃の容易性)
- Affected users(影響するユーザ)
- Discoverabilty(発見の可能性)
それぞれについて、3段階程度に評価して点数を付けて、脅威を評価する。
ただし、これはCVSSに代替えできる。
2章 バスプロトコル
CAN
ほぼ全ての車両で標準的に使われている。
エンジンやブレーキなど時間的な制約が厳しい通信は高速なバスライン、その他、例えばドアロックやエアコンなどは中低速なバスラインが使われている。
通信の動作原理はCANHighとCANLow2つの信号線で動作します。差動信号であり、ノイズへの耐性が強い。
CANバスのパケットには標準パケットと拡張パケットがある。
標準パケットには
- アービトレーションID・・送信先のID(競合時は低数値優先)
- データ長
- データ
- CRCフィールド
がある。
ブロードキャスト方式であり、全ノードが全パケットを受信する。
送信元はわからないため、なりすましなどは容易にできる。
拡張パケットはより長いアービトレーションIDを扱える。
LIN
車両プロトコルの中で最も安価である。
CANを補完するプロトコルで、CANバスに接続された1つのマスタノードが、最大16のスレーブノードをサポートする。
最大転送速度は20kbpsで、スレーブノードへCANパケットを送信して制御する
LINメッセージフレームにはマスタノード用のヘッダーと、スレーブノード用の応答エリアがある。
車載イーサネット
標準的なコンピュータネットワークと同様である。
CANパケットはUDPとしてカプセル化され、音声はVoIPとして転送される。
最大10Gbpsと高速である。
その他
現状はCAN、LIN、車載イーサネットが主流である。
最大10MbpsのFlexRayもあった。
CANに比べ高速ということであったが、実装コストが高いことなどから、その用途は車載イーサネットが主流となった。
その他、あまり日本国内の自動車では使われていないが、ISO-TP、CANopen、GMLAN1、SAE J1850、PWM、VPW、ISO9141-2、MOSTなど多種多様な規格がある。
診断用にはOBD-Ⅱコネクタがあり、車両の内部ネットワークと通信する。OBD-ⅡコネクタはDLC(diagnositc link connector)とも呼ばれる。
コメント