自動車セキュリティ(カーハック)知見まとめ

Automotive CTF 2024(グローバル予選・日本決勝・世界決勝)の対策として、自動車セキュリティの知見とか手を動かしたことを公開用Notionにまとめておりました。

Notion Siteで公開しているだけでは検索引っかかりにくいので、こちらにリンクとアウトラインを記載しておきます(2024/10/25時点。子ページやリンク先は勝手に更新する可能性があります)。


自動車セキュリティ (Car Hacking) - laysakura Public Notion

アウトライン紹介

メインページ(自動車セキュリティ (Car Hacking))

リンク: https://laysakura.notion.site/Car-Hacking-deca002ee9de42f89ba18ddcdb5c183a

  1. 自動車ハックのフロー
    1. フローチャート
    2. 行動の詳細
      1. [G1-a1, G2-a1, G3-a1] 解錠
      2. [G2-a2] 外装破壊 → CANバス物理接続
      3. [G2-a4] ECUのシェル取得 → PrivEsc → CANバス論理接続
      4. [G2-a3] CANで解錠
      5. [G3-a1] IG-ON
      6. [G4-a1] OBD2ポートに物理接続
      7. [G4-a2] 内装破壊 → CANバス物理接続
      8. [G5-a1] CANでECU・車体操作
      9. [G5-a2] UDSで情報収集
      10. [G5-a3] 診断ツールのリバースエンジニアリング
      11. [G5-a7, G5-a8] ECU外装破壊 → デバッグ回路接続
      12. [G5-a9, G5-a10] デバッグ回路からファームウェアダンプ・更新
      13. [G5-a4] UDSのSecurityAccess突破
      14. [G5-a5] UDSでファームウェアダンプ
      15. [G5-a6] UDSでファームウェア更新
    3. フロー作成時の参考文献
  2. 便利CAN / UDSツール
    1. 自作
    2. Caring Caribou
  3. 便利コマンド集
    1. CANダンプ
    2. ECU Reset
    3. USBシリアル通信
    4. Bluetooth
  4. 知識
    1. 規格上のUDSサービス
    2. CANのリプレイアタック
    3. UDS (OBD-II) のソースCAN ID, ディスティネーションCAN IDを特定する
    4. UDSでサポートされているサービスを列挙する
    5. 特定のUDSサービスでサポートされているsub funcを列挙する
    6. DiagnosticSessionControlのセッションをTesterPresentで維持する
    7. Read Memory By Identifier (0x22) サービスで、DIDと対応するメモリ値を列挙する
    8. SecurityAccessのシードを収集する
    9. Read Memory By Address でメモリダンプ
    10. ECUにファームを書き込む
    11. CANデータベース (.dbc)
  5. Car Hacking 学習リソース
    1. 全般
    2. CAN, UDSプロトコル
    3. 実車hack
    4. 車シミュレーター
    5. Car Hack情報源
    6. Car Hack CTF writeup
    7. 無線
  6. 子ページ

UDS基礎

リンク: https://laysakura.notion.site/UDS-ebe28870d7d84347a25757e19ea08f80

  1. 読み方
  2. 座学
    1. UDSによる診断の概要
    2. リクエスト
    3. ポジティブレスポンス
    4. ネガティブレスポンス
    5. DTC (Diagnostic Trouble Code)
  3. 演習(知り合いに講演したときに使ったメモ書き)
    1. Simulation VIN
    2. Engine Trouble?
    3. Secrets in Memory?
    4. Security Access Level 3
  4. More to do

ECU hack - スピードメーター編

リンク: https://laysakura.notion.site/ECU-hack-127e7f3e990d8022836fd15524b24794

  1. 調達したもの
  2. 動作させるまでの参考資料
  3. 構成・配線
  4. ソフトウェア準備(動作確認)
  5. CAN通信
    1. ODOメーター
    2. CANデータファジングをしてみる
    3. ファジングデータの生成
    4. ワンライナーでCAN IDを絞りながらリプレイ攻撃
    5. 前半(0x000 ~ 0x07F)を送る
    6. 後半(0x080 ~ 0x0FF)を送る
    7. 0x080 から 64 個送る
    8. 0x080 から 32 個送る
    9. 0xA0 から 32個送る
    10. … (省略)
    11. cansend で速度変える
    12. cangen で速度変える
    13. 応用: ブラウザGUIでメーター操作
  6. UDS
    1. Source ID, Destination ID 特定
    2. 対応サービス特定
    3. DID総当たり
    4. 手動
      1. TesterPresent
      2. DiagnosticSessionControl
      3. SecurityAccess

ECU動作用電源 (12V, 13A; ブレッドボード)

リンク: https://laysakura.notion.site/ECU-12V-13A-129e7f3e990d80e79a2bd1cf9a4cce73

  1. はじめに
  2. 機材
  3. 完成図と解説
  4. 使い方

SDR (ソフトウェア無線)

リンク: https://laysakura.notion.site/SDR-117e7f3e990d80cf9acfe11b9f83e69f

  1. 機材
  2. ソフトウェアについて前書き
  3. GNU RadioでFMラジオ受信
    1. radiocondaインストール
    2. 受信して聞くのみ: フローグラフ
    3. もっとリッチに: フローグラフ
  4. GqrxでFMラジオ受信
    1. 動作確認
  5. GqrxでヤリスのKey Fob解析
  6. Universal Radio HackerでヤリスのKey Fob詳細解析

シミュレーターでのCAN, UDS学習(Automotive CTF 2023 (Proving Grounds) - writeup)

リンク: https://laysakura.notion.site/Automotive-CTF-2023-Proving-Grounds-writeup-8428584750dc47e0bf83b92525eb1b4a

  1. リソース
    1. 問題の場所
    2. 自動車hack・このシリーズのCTFに使えそうな知見まとめ
    3. 順位
  2. VSEC Garage: UDS Challenge
    1. Simulation VIN
    2. Startup Message
    3. Engine Trouble?
    4. Secrets in Memory?
    5. Security Access Level 3
    6. Security Access Level 1
  3. VSEC Garage: User Space Diagnostics
    1. Read Data By Identifier
    2. Routine Control
    3. Security Access Level 1
    4. Read Memory By Address
    5. Security Access Level 3
    6. Security Access Level 5
    7. Custom Firmware
  4. Web
    1. Sorry, But Your Princess is in Another Castle
  5. OSINT
    1. what is a great default password?
    2. Founding Fathers
  6. Getting Started
    1. Can you find the interface?
    2. Arbitration
    3. Data Field 1
    4. Data Field 2
    5. Message Frequency
  7. ICSim
    1. Unlock my door
    2. Speedometer Arbid
  8. Vehicle OSINT
    1. Finding a VIN
    2. Make and model
    3. Manufactured at?
    4. Imported when?
    5. Mac Track!
  9. Crypto
    1. pow pow!
    2. The IFP
    3. Holy Hell
  10. Pwn
    1. Sandbox Escaper
    2. Web Server Woes
  11. Steganography
    1. Alpha Beta Gamma Delta
    2. sadcarnoises
  12. Reversing
    1. Reversing #1
    2. Obscure.

Bluetooth学習(BLE CTF - writeup)

リンク: https://laysakura.notion.site/BLE-CTF-writeup-6e11a055619f4d78b636994d321c06c1

  1. セットアップ
  2. 参考文献
  3. 基本操作
    1. デバイスのMACアドレスを調べる
    2. characteristicからのread
    3. characteristicへのwrite
    4. notifyのlisten
    5. indicationの受信
    6. bettercap
    7. スコア確認
  4. フラグ提出方法
    1. Flag 1 - This flag is a gift and can only be obtained from reading the hint!
    2. Flag 0x002e - Learn how to read handles
    3. Flag 0x0030 Read handle puzzle fun
    4. Flag 0x0016 Learn about discoverable device attributes
    5. Flag 0x0032 Learn about reading and writing to handles
    6. Flag 0x0034 Learn about reading and writing ascii to handles
    7. Flag 0x0036 Learn about reading and writing hex to handles
    8. Flag 0x0038 Learn about reading and writing to handles differently
    9. Flag 0x003c Learn about write fuzzing
    10. Flag 0x003e Learn about read and write speeds
    11. Flag 0x0040 Learn about single response notifications
    12. Flag 0x0042 Learn about single response indicate
    13. Flag 0x0046 Learn about multi response notifications
    14. Flag 0x0048 Learn about multi response indicate
    15. Flag 0x004c Learn about BT client device attributes
    16. Flag 0x004e Learn about message sizes MTU
    17. Flag 0x0050 Learn about write responses
    18. Flag 0x0052 Hidden notify property
    19. Flag 0x0054 Use multiple handle properties
    20. Flag 0x0056 - OSINT the author!
author Sho Nakatani a.k.a. laysakura

トヨタ自動車株式会社所属。プリンシパル・リサーチャーとして、セキュリティ・プライバシー・データ基盤に関する業務に従事。
OSCP/BSCP/CISSP/情報処理安全確保支援士(合格) 等の資格保有。CTF出場やセキュリティ関連の講演活動も行っている。
詳細プロフィール