先日、書店で「カーハッカーズ・ハンドブック」なるものを見つけました。
ぱっと見た感じ、クルマに使われている通信の仕組みとかを勉強するのに良さそうかなという感じでした。でもそこそこ値段がするのと(専門書としては安いですが)、サイズが大きいので電子版があればなあ…と思って調べてみたら、なんと無料で英語版が公開されているではありませんか。
書籍版の方が日本語で読みやすいというのはありますが、そろそろ英語に慣れないとな〜ということで、英語の勉強もかねてこっちで読んでみました。幸い、育児休暇中だし外出自粛ムードで、ゆっくり読む時間はあったので。笑
折角なので、読んだ内容を簡単にですがレビューしてみます。
章構成について
この本は13の章と3つの付録から成ります。ざっと書くと、下記の通り。
Chapter 1: Understanding Threat Models
Chapter 2: Bus Protocols
Chapter 3: Vehicle Communication with SocketCAN
Chapter 4: Diagnostics and Logging
Chapter 5: Reverse Engineering the CAN Bus
Chapter 6: ECU Hacking
Chapter 7: Building and Using ECU Test Benches
Chapter 8: Attacking ECUs and Other Embedded Systems
Chapter 9: In-Vehicle Infotainment Systems
Chapter 10: Vehicle-to-Vehicle Communication
Chapter 11: Weaponizing CAN Findings
Chapter 12: Attacking Wireless Systems with SDR
Chapter 13: Performance Tuning
Appendix A: Tools of the Trade
Appendix B: Diagnostic Code Modes and PIDs
Appendix C: Creating Your Own Open Garage
1章で「Threat model(脅威モデル)」って用語が出てきてますが、要は自動車のハッキングに関する脅威としてどんなものがあるかを抽出するための考え方をまとめています。
もう少し具体的にいうと、ECUやセンサなど、クルマにはどんな装置が載っていてそれらがどう繋がっていて…というところから、どんな脅威が考えられるかを抽出しています。とはいえここは一般論であって、特に実例を挙げたりはしていません。
2章では自動車の通信(CAN通信)について触れ、3章以降では実際にどういうツールを使ってどのようにクルマのデータを取得するか、CANをリバースエンジニアリングするにはどうするか、具体的な装置に対するハッキングはどうやるのか、といったような事を書いています。
個人的に興味を持ったところ
LinuxにはCANに対応したドライバがある
3章で触れられていますが、LinuxではSocketCANというCAN通信ドライバが使えるようです。ちょうど手持ちのノートPCにubuntuが入っているので、手っ取り早く試せそうなのが嬉しいところ。
もしかして、AndroidもLinuxベースだし、頑張れば手持ちのAndroidタブレットでも使えるのか…?それが出来るならより嬉しいですが。。
元々、Androidスマホにtorqueというアプリを入れて回転数などのデータは取っていましたが、もっと色々と自分でやってみたいので、Linux環境でクルマと接続はどっかで試してみたいところです。仕事にも繋がるしな!
車車間通信について
10章では、どういったケースで車車間通信が役立つかということや、通信手段として何を用いるか、どういう構成で通信するかということについて触れています。
車車間通信については、今後必要になってくるやろなあ…というぼんやりとした理解しかしておらず、あまり具体的に考えた事がなかったので、読んでいて面白かったです。自動運転が普及していくには不可欠な技術だと思うので、今のうちに詳しく知っておくと後々何かの役に立つかもしれません。
まとめ
The car hacker’s handbook について、ざっと読んだ感想をレビューしました。
上で書いたように試してみたい事もあるので、また結果が出たら書こうと思います。
コメント