Upgrade to Pro — share decks privately, control downloads, hide ads and more …

面倒くさいCANバスリバーシングの方法論

jptomoya
September 21, 2019
1.1k

 面倒くさいCANバスリバーシングの方法論

面倒くさいCAN バスリバーシングの方法論 @ IoTSecJP名古屋 #2
(en: Time-consuming CAN bus reverse engineering techniques)

# keywords
CAN通信, CANバス, ECU, リバースエンジニアリング, 解析

# contents
注意
自己紹介
CANバスリバーシングの目的
作業前/作業後の注意
Controller Area Network(CAN)
CANバスリバーシング概要
1-a. 工具・道具
補足: 修理書の入手
1-b. 対象車両のCANバスアーキテクチャ
2-a. CANバスへのアクセス
2-b. CANバスへのアクセス
補足: 試しにcandumpしてみる
3-a. 送信元特定の必要性
3-a. 送信元の特定
補足: ヒューズを抜く
補足: コネクタを抜く
補足: CAN-LとCAN-Hの短絡
補足: 単体試験
補足: 波形比較
バスオフを利用した切り分け
3-b. CANメッセージ内容の特定
補足: センサ情報の偽装
成果物 (CAN ID一覧表)
なぜ車は攻撃されるか
最近のトピックス
まとめ

jptomoya

September 21, 2019
Tweet

Transcript

  1. CANバスリバーシングの目的 本日は、CANバスリバーシングのための方法論を紹介。 目的 • 車両の電子制御への理解を深める • 車両データの利活用 以下は扱わない。 • CANバスのキャプチャ方法

    • 電気回路の基礎知識 • 自動車の故障診断の概念 4 車両データを活用してギア位置を表示する例 車両データの活用(グラフ表示)
  2. 作業前/作業後の注意 作業前 • 車載通信機の通信機能を無効にする • ディーラーへの無用な通知を避けるため • ダイアグの消去手順を確認する 作業後 •

    車載通信機の通信機能を有効にする • ダイアグを消去、警告灯の消灯確認 • ディーラーでの点検時に無用な指摘を避けるため • 警告灯の点灯しないダイアグコードもあるため必ずDTCを確認 5 OBD-II >clear DTC DCM OFF センター
  3. Controller Area Network(CAN) • 車載ネットワークとして最も使われているプロトコル • 1980年代にドイツBosch社が提唱し, ISO15118で標準化 • 1対のツイストペア線に複数のECUが接続される

    6 脆弱性 もたらされる攻撃 ブロードキャスト リプレイ攻撃 認証機構を備えない なりすまし 暗号化されていない ログデータの解析が容易 CAN IDによる優先度 Denial of Service (DoS)攻撃 [1] Jiajia Liu et al., “In-Vehicle Network Attacks and Countermeasures: Challenges and Future Directions,” IEEE Network, Vol. 31, No. 5, pp. 50-58, 2017. • CANプロトコルは本質的に脆弱[1]
  4. CANバスリバーシング概要 大まかな流れ 7 初度登録年月 2019年2月 (2018年発表モデル) 種別 ガソリン車 トランスミッション 6MT

    主なADAS機能 その他装備 車載通信機 ACC AEB LKAS RSA AHB BSM 1.準備 • a. 工具・道具の調達 • b. CANバス アーキテクチャの 事前調査 2.CANバスへのアクセス • CAN-L, CAN-Hの特定 • 信号線の取り出し 3.解析 • 送信元の特定 • CANメッセージ内容 の特定 対象車両 概要
  5. 1-a. 工具・道具 以下を準備するといろいろ捗る。 8 ワイヤーストリッパー ニードル型プローブ 圧着ペンチ OBD-II治具 オシロスコープ (CANトリガ・デコード付)

    DC電源 他、ドライバー、マルチテスター等の一般的な工具も 故障診断機や OBDスキャナ CANダンプ できるやつ RPi MCP2515 修理書
  6. 補足: 修理書の入手 • 修理書はディーラーや共販店で注文可能 • 修理書には様々な情報が記載。大幅な時間節約が可能 • CANバスの配置 • 配線図/艤装図

    • パネル類の正しい取り外し手順 • 各ECUの機能 • どのような信号をどのECUに送るか • フェイルセーフ時の大まかな動作 • 以下は記載されていない • どのECUがどのCAN IDを発するか • CANメッセージ毎の意味 9
  7. 1-b. 対象車両のCANバスアーキテクチャ • 修理書を参照して、CANバスのアーキテクチャを把握する • CGWは各バス間の通信を中継する 10 CGW OBD-II ECU

    ECU ECU ECU : CAN通信線 ECU ECU ECU ECU ECU ECU ECU ECU ECU ECU ECU ECU ECU プロトコル CAN 2.0B (標準フォーマット) バス速度 500 kbps ECU数 17 バス1 (ADAS) バス2 (パワトレ) バス4 (シャシ) バス5 (ボデー) バス3 (テレマティクス)
  8. バスオフを利用した切り分け 1. オシロスコープで特定のCAN IDに対してトリガをかけておく 2. マイコンでトリガ出力を拾ってエラーフレームをCANバスに送る 3. 対象のCAN IDを送信しているECUはバスオフとなり、同ECUが 送信していた他のCAN

    IDも消える 21 オシロスコープ マイコン CANトランシーバ : CAN通信線 ECU1 ECU2 トリガ出力 Rx Tx ① ② ③バスオフ ※ほとんどのECUは数十~数百msでrestartし、自動的にバスオフ状態から復帰する