<aside> 💡
いろいろなページへのリンクが貼ってあります。筆者(laysakura)が執筆した記事のアウトラインは下記ブログ記事にまとめているのでご参照ください。
https://laysakura.github.io/2024/10/25/automotive-security-notes/
</aside>
CANバスを使った自動車への攻撃手順の鳥瞰図を描く。大まかには↓の2フェーズに分かれる。
CANバスを使わない攻撃もあり得るが、その場合でも一部参考になると期待する。
<aside> 🔍
凡例
G[0-9]
: 前提条件 (what’s given?)a[0-9]+
: 行動 (action)
graph TB
subgraph G1["G1: 施錠された車 (IG-OFF)"]
G1-a1["`G1-a1: 解錠`"]
end
G1-a1-->G3
subgraph G2["G2: 施錠された車 (IG-ON)"]
G2-a1["`G2-a1: 解錠`"]
G2-a2["`G2-a2: 外装破壊
-> CANバス物理接続
**[初期侵入]**`"]
G2-a3["`G2-a3: CANで解錠`"]
G2-a4["`G2-a4: ECU(IVI,テレマ,etc)のシェル奪取
-> 権限昇格
-> CANバス論理接続
**[初期侵入]**`"]
G2-a2-->G2-a3
style G2-a2 fill:#ff0
style G2-a4 fill:#ff0
end
G2-a1-->G4
G2-a3-->G4
G2-a4-->G2-a3
subgraph G3["G3: 解錠された車 (IG-OFF)"]
G3-a1["`G3-a1: IG-ON`"]
end
G3-a1-->G4
subgraph G4["G4: 解錠された車 (IG-ON)"]
G4-a1["`G4-a1: OBD2ポートに物理接続
**[初期侵入]**`"]
G4-c1{"`攻撃対象ECUにCAN受送信できる?`"}
G4-a2["`G4-a2: 内装破壊
-> CANバス物理接続
**[初期侵入]**`"]
G4-dummy1{{"攻撃開始"}}
G4-a1-->G4-c1
G4-c1-->|Yes|G4-dummy1
G4-c1-->|No|G4-a2
G4-a2-->G4-c1
style G4-a1 fill:#ff0
style G4-a2 fill:#ff0
end
G4-dummy1-->G5
subgraph G5["G5: 攻撃対象ECUに初期侵入済"]
direction TB
G5-a1["`G5-a1: CANでECU・車体操作
**[攻撃]**`"]
G5-a2["`G5-a2: UDSで情報収集`"]
G5-a3["`G5-a3: 診断ツールのリバースエンジニアリング`"]
G5-a4["`G5-a4: UDSのSecurityAccess突破`"]
G5-a5["`G5-a5: UDSでファームウェアダンプ
**[攻撃]**`"]
G5-a6["`G5-a6: UDSでファームウェア更新
**[攻撃]**`"]
G5-a7["`G5-a7: ECU外装破壊`"]
G5-a8["`G5-a8: デバッグ回路接続`"]
G5-a9["`G5-a9: 回路からファームウェアダンプ
**[攻撃]**`"]
G5-a10["`G5-a10: 回路からファームウェア更新
**[攻撃]**`"]
G5-a2-->G5-a4
G5-a3-->G5-a4
G5-a4-->G5-a5
G5-a4-->G5-a6
G5-a7-->G5-a8
G5-a8-->G5-a9
G5-a8-->G5-a10
G5-a9-->G5-a4
style G5-a1 fill:#f88
style G5-a5 fill:#f88
style G5-a6 fill:#f88
style G5-a9 fill:#f88
style G5-a10 fill:#f88
end