いよいよ車の電動化が普及してくる時代になりました。現在国内にもLevel2と言われる自動運転車が出てきており、今後も様々な電動化が加速してくると思います。そういった中、重要になってくる技術というのが、ISO/SAE21434の、自動車におけるサイバーセキュリティ技術です。車がコンピュータ化してくるという事は、パソコン同様、ハッキングの心配、それによる誤動作による事故、制御の乗っ取りによる盗難、そういった問題が次に課題として出てきます。
本記事では、今後車が電動化していくにつれ、必要になってくる、「サイバーセキュリティ」技術に関し、自動車におけるサイバーセキュリティとは何かを、分かりやすく説明していきたいと思います。
本来はISO/SAE21434に従い解説していくのが良いかもしれませんが、ISOを語り始めると難しくなりますので、結局エンジニアは何をしなければいけないのか?という内容のフォーカスし、実戦で行うべき内容にかみ砕き記載していきたいと思います。
自動運転に関わる内容は下記の記事も参照頂けると嬉しいです。
->自動運転に関わる難しい英語の略語30個を、分かりやすく解説します
->自動運転に必要な車載カメラモジュールの5つ役割【自動運転には必須】
自動車におけるサイバーセキュリティとは
まずはじめに自動車におけるサイバーセキュリティとは何かを説明していきます。
サイバーセキュリティとは、
ECUに格納された、プログラムやデータといった保護資産への攻撃を防止する為、ECUの脆弱性を少なく設計する事。つまり以下の事を防ぐ為の技術です。
・ECU内、またはECU間の情報の改ざん
・ECU内、またはECU間の情報の盗み見
・ECU内、またはECU間の情報の破壊
※ECU: Electronic Control Unit 車に搭載されているコンピュータ
つまり、プログラムを書き換えられたり、情報の抜き出しが出来ないような設計をして、悪意のある第三者からこれらの改ざんを防止する事をサイバーセキュリティと言います。
サイバー攻撃の種類
サイバー攻撃とは一体どういったものがあるのか解説していきます。大きな分類として、次の2点に分かれます。
①ECUを開封せずに攻撃する方法
ECUの多くはケースに入っており、車のどこか見えない場所の配置されております。それを取り出すのも一苦労。そのECUを移動させずに攻撃する方法が①
ECUを開封しない時、ECUの中のプログラムにアクセス可能な口は次の2点
- ECUについているコネクタ経由の物理的通信線
- 無線通信時の通信ライン
想定される攻撃は次の3点。これらにおける対策をする必要があります。
- 通信ライン上を流れているプログラムの解読
- 物理線や無線を経由、なりすましによるメモリへのアクセス
- デバッグ用ポートを利用した、メモリへのアクセス
②ECUを開封して攻撃する方法
ECUを車から取り出して、ケースを開封して細工をしたり、情報を抜き出す方法がこちら。
ECUを開封した時、ECUの中のプログラムにアクセス可能な部分は次の4点
- 基板表面のランドやテスト用のパッド。
- プログラムの入ったのチップそのものへの直接的アクセス
- 異常環境の生成による誤動作生成によるハッキング
- チップの物理的な解析
想定される攻撃は次の6点。これらにおける対策をする必要があります。
- ECU内の基板に搭載されているデバッグ用の通信線からメモリへのアクセス
- ECU内の基板に搭載されているCPUとメモリのチップ間通信のデータの読み書き
- 基板上に乗っているチップを剥がして解析もしくはチップ交換によるプログラムの書き換え
- ノイズを基板に注入し、誤動作によるプログラムの解析
- チップ外部からの電磁波等の外部攻撃によるプログラム解読
- チップの破壊解析、電子顕微鏡による解析
サイバー攻撃に対する対応方法
前のトピックで説明したサイバー攻撃に対し、対策をしていく事が求められてきます。それぞれ、代表的なセキュリティ対策をここでは説明していきたいと思います。
■ECUのコネクタからの攻撃に対するセキュリティ対策
コネクタからの攻撃に対するセキュリティ対策としては、主に次の4点があげられます。簡単に書くと、対策としては、ソフトウェアのコーディングルールを守り、プログラムは起動前に本物かどうかを確認した後に起動し、通信ラインは暗号化、製品として使わない通信ラインは通信出来ない状態にしておく。というのが対策となります。ソフトウェアのコーデイングルールにはMISRAと呼ばれるものがメジャーかと思います。
- 通信ラインの暗号アルゴリズムや乱数による対策
- デバッグ用のポートの無効化や、パスワード認証等による通信制限
- プログラム実行前の確認による、偽プログラムの起動を防止
- ソフトウェアのコーディング自体の脆弱性の排除(コーディングルールの徹底)
■基板表層からの攻撃に対するセキュリティ対策
基板表層からの攻撃は要注意です。そんな事出来るの?と思われる方もいるかと思いますが、基板の表面はセキュリティホールになる可能性が高いので注意が必要です。特に基板には、そのECUを生産ラインで検査する為のテストパットもありますし、各デバイスの端子が物理的にむき出しになっていますので、そこをプロービングする事で、物理的にはアクセスできてしまいます。それに対するセキュリティ対策は次の通りです。
- 生産や、デバッグ、メンテナンスで活用する予定のプログラムを書き込む為の通信線は、パスワード等でロックをかける。
- チップ間の通信線をチップの端子をプローブする事で盗聴されないように、BGAのデバイス、通信ラインはすべて基板内層とするか、もしくは複数チップを用いず、単一チップで成立するよう設計する。
■チップ剥離に対するセキュリティ対策
チップを基板から剥がして通電する事で、そこからデータをハッキングする事も可能です。対策方法は他の対策と重複するところもありますが、下記の通り。
- プログラムの暗号化により、例えチップ単体でプログラムを読みだしたとしても、中身が分からない状態にしておく。
- セキュアマイコンを使用したデータのリードライトの保護
■チップ解析対するセキュリティ対策
顕微鏡等を用いてチップの中身を解読する手法。これに対する対策は次の通り。
- セキュアマイコンの使用
■異常環境を生成し誤動作状態で情報を吸い出す方法に対するセキュリティ対策
電圧を変換させたり、外部からの電磁波等により、誤動作をさせ、セキュリティを緩めた上でハッキングする手法。それに対する対策は下記。
- セキュアマイコンの使用
まとめ
いかがでしたでしょうか。サイバーセキュリティの概要、攻撃の種類、対応を簡単に記載してきました。エンジニア視点で言うと、これだけの対策をすべての製品で実施するのは大変!
と思われると思います。もちろんすべての製品ですべての対策を適用できれば良いですが、それぞれのECUでハッキングを受けた時の影響が異なりますので、製品の特性に合わせ、セキュリティのレベルを変える事が良くあります。
自分たちが扱う製品の特性とセキュリティに対する方針を明確化した上で、どの程度セキュリティの強化をする必要があるのか考える必要がありますが、車と外部間で通信できるECUはセキュリティを高く、外部との通信が無く、そもそもハッキングの恐れが少ないECUに関しては、少しセキュリティ対策を緩め、その分コストを抑える、といった事も製品開発には必要だと思います。
自動車の機能安全ISO26262関連の記事もありますので、よろしかったら、ご確認ください。
参考:難解な規格、自動車の機能安全、ISO26262、ASILを超簡単に解説します
記事が気に入って頂けたら、クリックして頂けると嬉しいです。
コメント