車両サイバーセキュリティの実現に向けて
はじめに
Turing Vehicleチームのチーフエンジニアの徳弘 (@res_circuit) です。
Turingは、完全自動運転システムを搭載した車を商品として販売することを目指しており、これに向けて量産を見据えた完全独自の車両の設計に取り組んでいます。お客様の元に届く商品としての車両を自社で開発する上では、膨大な数の課題を解決する必要が出てきます。
今回は、そのうちの一つであるサイバーセキュリティについての概要を説明した上で、Turingでの取り組みを少し紹介します。
車両サイバーセキュリティとは?
車両のサイバーセキュリティとは、車両に対するサイバー攻撃の防衛策が実施されており、車両を構成する部品や資産が保護されていることを意味します。現代の車両システムは多数のECU(電子制御ユニット)で構成され、車両内でネットワークを構築しています。車両の走行に関する制御指令や、ユーザーの個人情報も車両ネットワークを流れるため、これらを保護する必要があります。システムのセキュリティは、システムを構成する要素の中で最も脆い部分に依存するためシステム全体としてセキュリティを実現することが重要です。
近年、車両に対するサイバー攻撃が問題となっており、完成車メーカー各社には然るべき対応が求められています。過去には、脆弱な車両に対するサイバー攻撃の結果として車が遠隔で操作されてしまった事件があり、百万台規模のリコールに繋がった例があります。この時の車両のオーナーは非常に大きな潜在的なリスクを抱えていた上、リコール対応に迫られたメーカーは甚大な被害を受けました。
こういった事例も踏まえた上で、日本国内では2022年7月以降に発売されるOTA (Over the Air Update) 機能付きの新型車両はサイバーセキュリティに関する法規に適合することが要求されるようになりました。
車両内ネットワークが複雑になってきたことはさることながら、ネットワークを構成する各ECUのソフトウェアの複雑性も増してきています。ソフトウェアの規模が肥大すると、潜在的な脆弱性や脆弱性につながるバグを含む可能性が高まるため、適切な対応が必要です。
車両サイバーセキュリティを実現するには?
サイバーセキュリティの実現とはつまり、車両を構成する部品や資産が保護されている状態を作り出すことです。一方で、どんな状況においても資産が必ず保護されていると言い切るのは困難です。車両を構成するハードやソフトに未知の脆弱性の可能性があるからです。
車両セキュリティでは組織のセキュリティやネットワークセキュリティと同様に、システム自体の防衛とシステムを開発するプロセスの二つの観点から施策を講じることが推奨されます。
システム観点での対策を講じる際は、リスクを評価し対応策を講じるというアプローチを取ります。サイバー攻撃を直接の原因としてECU間の通信が汚染されたり偽装されることによって発生しうる被害や、秘匿されるべき情報が傍受される被害を、攻撃の実現可能性との天秤にかけて評価するという方法です。この方法はTARA(脅威分析とリスク分析)と呼ばれ、車両サイバーセキュリティにおいてはISO/SAE 21434という規格でも定義されています。
例えば、ADAS ECUの指令信号が何者かに乗っ取られた場合、意図しない急加速や急転舵の指示が飛ばされる可能性があります。Level 5の完全自動運転車両において、こういった状況が発生しかつ他ECUによる検知や対策が困難な場合は重大な事故につながる恐れがあります。ペネトレーションテストや実装レビューの結果としてADAS ECUへの攻撃が現実的と考えられた場合、ADAS ECUに対するセキュリティ要件を厳しく設定する必要があります。
リスク分析の結果を踏まえてどのようにサイバーセキュリティを実現するのか?(つまりは、どのようにリスクを許容値以下に下げるのか?)という防衛策については高低さまざまなレイヤーで講じる方法があります。
ここでは、例として以下の電気電子アーキテクチャを想定して議論します。
アーキテクチャ全体の観点での防衛策
サイバー防衛策の基本的なアプローチとして、多層防御 (Defence in depth) があります。これは、保護されるべき資産や電子制御部品と攻撃対象領域(アタックサーフェス)の間に複数のハードウェアやシステムを挟むことで攻撃実現可能性を下げる試みです。アタックサーフェスとは、攻撃者がシステムへの侵入を試みる際に最初にアクセスする領域を指します。例のアーキテクチャ図でいうと、Wi-Fi(アクセスポイントやホットスポット)、4G/LTEを経由したネットワーク通信、ワイヤレスキーで使用されているUWB/Bluetooth、各ECUがもつ物理通信線やデバッグポートといったものです。
物理層のアタックサーフェスまであげるとキリがありませんが、フィジカル攻撃は車両を破壊したり車内に入らない限りは攻撃が困難なため比較的リスクは低いと考えられます。一方で、車両システムへの侵入が成立した例の9割はインターネット経由という報告があります。このうちアタックサーフェスから深い階層まで到達した攻撃が何割を占めるかまでは追えていませんが、少なくともネットワークのアタックサーフェスから階層的に近いところにあるECUは定性的には攻撃実現可能性が高いと考えられます。
Turingでは、アーキテクチャ全体として機能安全とサイバーセキュリティを担保できる車両システムの開発を行っています。現時点で公開できる情報は残念ながらありませんが、Level 5に要求される安全性とセキュリティをシステム全体の基本レベルで実現させることを目指しています。
実装の観点での防衛策
各ECUや通信のシグナルに対して実施できる防衛策も様々あります。
車両内ネットワークでは、車の本来機能の制御に関する通信やユーザーのプライバシー情報など様々なデータが流れています。攻撃に対する防衛策は流れるデータの種別に応じて適切に講じる必要があります。車内ネットワークの通信はアーキテクチャによって決まることではありますが、ここでは実装の観点として、通信の暗号化と改ざん検知の防衛策に触れたいと思います。
通信の暗号化
ユーザーのプライバシー情報など、秘匿するべきデータについては暗号化を施して通信を行い、送信元と送信先でのみ平文が読めるようにする措置を取ります。
例に出ているアーキテクチャにおいて、秘匿情報を扱う主体としてはIn-Vehicle Infotainment ECUやCommunication Moduleが考えられます。これらのECUは例の構成においてはEthernetで繋がれています。車載Ethernet (1000BASE-T1など) においてもSSL/TLSを使った秘匿通信を使用する手法は確立しており、Ethernetインターフェースと暗号通信ソフトウェアスタックを備えるECU同士であれば比較的容易にセキュリティを実現可能です。
改ざん検知
車両の制御指令などは、データの秘匿性は低いものの不正な入力をされた際に危険な挙動につながる恐れがあります。こういったデータの通信に関しては、データの内容が不正な場合を検知し適切な異常状態に移行する機構が必要になります。
車両内の制御指令や制御に用いるデータはCAN通信がよく使用されます。CAN通信において改ざんを検知するためのソリューションとして、メッセージ証明コード(Message Authentication Code, MAC)を用いる方法があります。MACは、メッセージに対して共通鍵を用いて生成する比較的計算負荷の少ないコードであり、メッセージの内容が正当なものであることを確認する目的で使用されます。
以下の画像は、MACを使用した検証のスキームです。
MACを使用しても、送信元自体が正当であることの検証ができなかったり、全く同じ内容のメッセージに対しては偽装が容易という問題があります。偽装を困難にするための工夫として、メッセージにカウンタを付与し内容が同じでも毎回異なるMACを生成することができます。
MACをベースとした改ざん検知の手法はAUTOSARにて規格化されており、市販車でも実装されています。
改ざんを検知した際に、システムとしてどういう挙動をするべきかというのも重要なトピックの一つです。ECUが乗っ取られた場合、挙動としてはECUが失陥(故障)した状況に近いとみなせます。また、侵入自体を検知するということも重要なトピックの一つです。
開発組織と開発プロセスの観点での対策
以上は車両単体として攻撃を未然に防ぐための方法を挙げました。サイバーセキュリティにおいて攻撃を未然に防ぐことと同様に重要なことは、攻撃や攻撃による被害(インシデント)が発生した際の対応です。インシデントが発生していなくとも、新たな脆弱性が発見された際に迅速に対応策を講じることも同時に重要です。こういったアプローチを講じるチームは、CSIRT (Cyber Security Incident Response Team) やPSIRT (Product Security Incident Response Team) と呼ばれ、Webなどのネットワークシステムを運営する組織においても実践されています。
CSIRTは、市場からの不具合報告をサイバーの観点で分析したり、CVEdetailsなどに報告されている既知の脆弱性が自社の製品に該当しているかの監視、車両に対する攻撃が検知された際の対応などが主な役割となります。CSIRTが組織として機能するためには、車両における攻撃やその予兆を検知し車外サーバーへレポーティングする仕組み、挙がってきたアラートをトリアージできる体制、対策を講じたファームウェア・ソフトウェアを車両に適用する仕組みが必要になってきます。こういった仕組みは、車両の電子アーキテクチャと各ECUに予め実装する必要があるため、システムを設計する際は車両製造時(鍵情報の登録、管理)や市場に出荷されてからのユースケースを把握することが重要です。
開発組織視点での対策としてはCSIRTだけでなく、レビューやテストといった工程の導入、ドキュメント管理、セキュアコーディングのための規約への準拠といった脆弱性の早期検知と混入防止の施策を開発プロセスに組み込むことが要求されます。
Turingでは、社内で開発している車両システム、ソフトウェアとその依存パッケージに既知の脆弱性が混入していないかの監視と開発へのフィードバックに加えて、将来リリースする予定の車両プロダクトのユースケースを踏まえたサイバーアーキテクチャの設計と実装に取り組んでいます。
おわりに
本記事では、車両サイバーセキュリティに関する概要を説明し、車両内のサイバーセキュリティを実現する主要な実装手法について触れました。実際のところ、車両は外部システムとも接続しているため近接通信、遠隔サーバー、生産工程などの周辺環境も含めてサイバーセキュリティを実現する必要があります。
Turingは量産車の販売を目標としており、そのための法規要件であるサイバーセキュリティ対応とサイバーセキュリティマネジメントの実践に取り組んでいます。ただし、これはあくまでも完全自動運転EVを世の中に出すための通過点に過ぎず、車体ハードウェアも含めた車両の設計と機能実装も並行して取り組んでいます。
興味がある方は、Turing の公式 Web サイト、採用情報などをご覧ください。話を聞きたいという方は私やCTOの青木さんの Twitter DM からでもお気軽にご連絡ください。
Discussion