車載CANプロトコルの基礎とゼロ知識解析


実車での解析と攻撃手法の検証


[受講無料]GPU/CPU/量子コンピュータによるサイバーセキュリティ実践プログラミング(8月27日~9月3日 オンライン受講)


解析演習の手法と実装例

図1 ルネサス エレクトロニクスで開発中のCAN FDを2ch備えるMPU搭載Arduino互換ボード

車載LANでは,主にCAN(Controller Area Network)プロトコルが利用されています.CANは最大8byteのペイロードをもち,送信元アドレスを持たず,宛先アドレスであるCAN IDだけで通信を行うしくみです.共有バスでの通信であるため,すべてのメッセージが丸見えであり,認証や暗号化のしくみも存在しません.そのため,盗聴,なりすまし,DoS攻撃に本質的に弱い構造です

ゼロ知識解析では,特定の事前情報を持たない状態から,実車に接続してCANメッセージを観測・分析します.正規通信中のCANメッセージをキャプチャし,それを再送信することで,各メッセージと車両の動作との関係を理解します.ペイロードが小さいため,暗号化は困難ですが,送信周期やCAN IDから自動車の状態を推測できます

実車に接続した解析装置では,ラズベリー・パイなどの小型Linuxマシンを用い,Arduinoで作成したCANインターフェースを経由して車載LANと通信します.解析装置はGPS測位や車両状態のデータを支援サーバに送信し,攻撃者は特定の条件を指定して車両に対してメッセージを注入できます.これにより,ドアロック解錠や窓開放,DoS攻撃などの挙動を確認できます

バスオフ攻撃では,ターゲットECUが送信したフレームを連続してエラーにすることで,送信ECUをバスオフ状態に遷移させ,CANバスから離脱させることが可能です.この手法により,攻撃者は正規のCANメッセージをなりすまし,車両制御を行うことができます

演習環境の例は,ECUエミュレータやJ1979表示器の間で通信を行い,トラフィックを観測します.ブロードキャスト通信の特性上,複数の受講生が同じメッセージを確認可能です.演習では以下の手順で解析です

  1. 正常通信中のCANメッセージをキャプチャする
  2. キャプチャしたメッセージを再送信し,自動車の動作との関係を解析する
  3. 車両速度,エンジン回転数,アクセルペダルの踏量,ハンドル舵角などの情報をCANバスから読み出す
  4. icsimなどのツールを使い,入力操作に応じてCANメッセージがどのように変化するかを観測する
  5. ArduinoやPython(Pyvitライブラリ)を用いて,なりすましメッセージの送信や診断プロトコルの解析を実施する

このように,ゼロ知識から始めて実車に接続し,CANメッセージの観測と解析を行うことで,車載LANの挙動や脆弱性を理解し,攻撃手法および防御手法の基礎を習得できます.〈著:ZEPマガジン〉

著者 井上 博之

  • 1989年 住友電気工業にて,Unixワークステーションの開発やインターネット通信機器の研究開発に従事
  • 2000年 インターネット総合研究所にて,ネットワーク関連企業のコンサルティングや事業の立ち上げに従事
  • 2007年 広島市立大学 大学院情報科学研究科
  • 2021年 京都産業大学 情報理工学部

著書

  1. カーハッカーズ・ハンドブック ―車載システムの仕組み・分析・セキュリティ,監修・一部翻訳,オライリー・ジャパン.
  2. ステップ方式で仕組みを学ぶIPネットワーク設計演習,ナノオプトニクス・エナジー.
  3. IoT時代のセキュリティと品質―ダークネットの脅威と脆弱性,共著,日科技連出版社.
  4. マスタリングTCP/IP IPv6編 第2版,共著,オーム社.
  5. ユビキタステクノロジーのすべて,編纂・共著,NTS出版.

参考文献

  1. 強度128ビット! AES暗号セキュリティ・プログラミング入門,ZEPエンジニアリング.
  2. 宇宙ロケットの高セキュア暗号通信技術,ZEPエンジニアリング.