このページの本文へ

ここから本文

2022年度 三菱電機ソフトウエア技術レポート

車載機器用ソフトウェア開発におけるサイバーセキュリティ対応

【執筆者】

モビリティ事業統括部 姫路事業所 技術第2部 技術第3課
岸本 由加

【概要】

近年、コネクテッドカーと呼ばれる外部機器との通信機能を有する自動車が普及してきている。自動車が外部とつながることで、サイバー攻撃の対象となり、自動車の制御が奪われるといった実証実験も公表されている。
そのため、車載機器用ソフトウェアにはサイバー攻撃による障害を未然に防止する対策が必須であり、当社ではセキュリティ対策を講じたソフトウェアを開発している。
本稿では、車載機器用ソフトウェアに関する脅威(プログラムの改ざんや情報漏洩等)、また、脅威に対するサイバーセキュリティ技術について紹介する。

1. まえがき

近年、自動運転や運転支援機能の実現のため、外部機器との通信機能を有するコネクテッドカーと呼ばれる自動車が普及してきている。自動車が外部ネットワークとつながることで、サイバー攻撃の対象となり、自動車の制御が奪われるといった実証実験も公表されている。
そのため、車載機器用ソフトウェアにはサイバー攻撃による障害を未然に防止する対策が必須であり、当社ではセキュリティ対策を講じたソフトウェアを開発している。
本稿では、プログラムの改ざんや情報漏洩といった車載機器用ソフトウェアへの脅威と脅威に対するサイバーセキュリティ(以下、セキュリティ)技術について紹介する。

2. 自動車業界を取り巻く環境

2.1 セキュリティ対策の重要性

自動車には、エンジン、ブレーキ、モーターなど様々な機器を制御する電子制御ユニット(Electronic Control Unit:以下、ECU)が数多く搭載されている。ECUは、車載ネットワークを介して通信し合うことで各機器の制御を行っている。
自動車が外部ネットワークにつながるコネクテッドカーの普及に伴い、外部から車載ネットワークへ不正にアクセスされ、自動車の制御が奪われるなどの脅威が増大する。
実際に、以下のような自動車の脆弱性による事案が発生している。

  • (1)セキュリティ研究者により、携帯電話ネットワークに接続する車載システムに脆弱性が発見され、この脆弱性を利用しソフトウェアを改ざんすることによって、ハンドルやブレーキ等のリモート操作が可能になることが実証された。この実証実験の結果を受け、自動車メーカーがリコールを実施した。
  • (2)車体の部品を外して、車両内の配線にアクセスすることで、車載ネットワークに侵入し、鍵の開錠とエンジン始動により車両が盗難された。

セキュリティ対策が不十分であれば、人命に関わる事故発生の恐れがある。また、新たなセキュリティ対策を施したソフトウェアへの改修も必要となる。その結果、企業として、社会的信用の低下や金銭的な損失を被ることになり、大きなダメージを受けることになる。
重大事故の発生防止、損失の最小化のためにもセキュリティ対策が欠かせないものとなっている。

2.2 車両システムのセキュリティ標準化

図 1. WP.29 CS/SU 適用時期 (日本市場)

コネクテッドカーの普及に伴い、自動車メーカーやサプライヤに対し、セキュリティ対策やソフトウェアアップデートに関する義務化が進んでいる。
WP.29(注1)において、型式認証の要件となるCS(注2)/SU(注3)に関する法規が策定された。また、WP.29 CSの具体的な実現方法に関する国際標準としてISO/SAE 21434が2021年8月に発行されている。
日本では2020年から自動運転機能を備える自動車に対して法規が適用されていたが、2022年7月以降、自動運転機能を備えない自動車に対しても、法規が順次適用されることとなった。(図1参照)
そのため、自動運転機能の有無に関わらず、車両型式審査では、CS/SUのプロセスが構築され、管理・運用されていることを示す適合証明書が求められている。

  • (注1)World Forum for the harmonization of vehicle regulations(自動車基準調和世界フォーラム)
  • (注2)Cyber Securityの略。
  • (注3)Software Updateの略。

3. 車載機器用ソフトウェアへの脅威

図 2. コネクテッドカーへの脅威と攻撃

セキュリティにおける脅威とは、資産に対して害を及ぼす原因のことである。自動車における資産の例として、位置情報、ソフトウェアやハードウェアの設定情報、走行情報、制御通信などがある。コネクテッドカーへの脅威と攻撃の例を図2に示す。

脅威の抽出時に使用される脅威分析手法として、脅威を下記の6つに分類するSTRIDE(注5)がある。

  • (1)なりすまし (Spoofing)
  • (2)改ざん (Tampering)
  • (3)否認 (Repudiation)
  • (4)情報漏洩 (Information disclosure)
  • (5)サービス妨害 (Denial of service)
  • (6)権限昇格 (Elevation of privilege)

このうち、本稿では車載機器用ソフトウェアとして対策を求められることが増えている、「なりすまし」、「改ざん」、「情報漏洩」について説明する。

  • (注4)Advanced Driver-Assistance Systemsの略。自動ブレーキ装置などドライバーの運転操作を支援する先進運転支援システム。
  • (注5)米国Microsoft社によって提唱された脅威分析手法。

3.1 なりすまし

なりすましとは、第三者が特定の個人または組織、コンピュータを装った行動をとることである。
自動車の場合、ECUになりすまし、偽のメッセージを送ることでアクセルを作動させるといった攻撃が考えられる。ECUのなりすましに対する対策は4.1節にて紹介する。

3.2 改ざん

改ざんとは、無断でデータやプログラムを書き換える行為のことである。
自動車の場合、車載ネットワークに入り込み、ECU内のプログラムの書き換えや、走行距離やメンテナンス情報などのデータを書き換えるといった攻撃が考えられる。改ざんに対する対策は4.2節にて紹介する。

3.3 情報漏洩

情報漏洩は、意図しない相手に情報が漏れてしまうことである。自動車の場合、車載ネットワークの通信データが盗聴され外部に漏れると、通信データを解析され、車載機器が操作されるといった攻撃が考えられる。情報漏洩に対する対策は4.3節にて紹介する。

4. 脅威に対するソフトウェアでの対策

本章では、3章で説明した脅威に対するソフトウェア設計や実装での対策について紹介する。

4.1 認証

なりすましの対策の一つとして、通信相手が本物であるかを確認する「認証」がある。
車載ネットワーク内でのECUへのなりすまし対策として、MAC(注6)を用いたメッセージ認証について説明する。
共通鍵を用いたMACによる認証の仕組みを図3に示す。図3における送信者・受信者はそれぞれ共通鍵を持つ。車載ネットワークの場合、送信者・受信者はECUとなる。
まず、送信者は共通鍵でMAC値を計算する(図3の①)。次に、送信するメッセージにMAC値を付与し送信する(図3の②)。受信者は、受信したメッセージから共通鍵を用いてMAC値を生成し、生成したMAC値と受け取ったMAC値が一致するか確認することで、認証を行う(図3の③)。MAC値が不一致の場合は、受信メッセージを拒否する等の処理を行い、なりすましからの不正なアクセスを防ぐ。
MACアルゴリズムとして、共通鍵暗号を用いるCMAC(注7)やハッシュ関数を用いるHMAC(注8)がある。

図 3. MACによる認証

  • (注6)Message Authentication Codeの略。メッセージ認証コード。
  • (注7)Cipher-based MACの略。
  • (注8)Hash-based MACの略。

4.2 署名

改ざんの対策の一つとして、送付されてきたデータが本物であることを証明する「署名」がある。
プログラムの不正な書き換えへの対策として、デジタル署名について説明する。デジタル署名の仕組みを図4に示す。
事前に送信者は鍵ペアを作成し、受信者に公開鍵を送付する。まず、メッセージに対してハッシュ関数を用いてハッシュ値を作成する。そのハッシュ値を秘密鍵にて暗号化し、デジタル署名を作成する(図4の①)。次に、送信するメッセージに対してデジタル署名を付与し送信する(図4の②)。受信者は、受信したメッセージに対してハッシュ関数を用いてハッシュ値を作成する。作成したハッシュ値と、受信したデジタル署名から公開鍵にて復号したハッシュ値が一致するかを確認する(図4の③)。不一致の場合は、メッセージが改ざんされていると判断できる。
車載機器用ソフトウェアのリプログラミング機能においてデジタル署名を適用することで、不正なプログラム書き換えを防ぐことができる。

図 4. デジタル署名

4.3 暗号化

図 5. 共通鍵暗号方式

情報漏洩の対策の一つとして、「暗号化」がある。暗号化することで情報の機密性を保ち、情報が盗聴された場合にでも暗号化していることにより、漏洩を防ぐことができる。
車載機器用ソフトウェアにおける暗号化の適用例として、リプログラミング時に書き込むプログラムの暗号化がある。暗号化することにより、リプログラミングツールとECUとの通信を盗聴された場合にでも、プログラム情報の漏洩を防ぐことができる。
暗号化の種類として、本節では、共通鍵暗号方式と公開鍵暗号方式について説明する。
まず、共通鍵暗号方式の仕組みを図5に示す。共通鍵暗号方式は、暗号化と復号化で同じ鍵を用いる方式である。共通鍵暗号方式のメリットとして、公開鍵暗号方式と比較すると処理速度が速いことが挙げられる。デメリットとしては、データを送る相手の数だけ異なる共通鍵が必要となり、鍵の管理が煩雑となる。また、通信相手への鍵の配送時に鍵が漏洩しないよう安全に行う必要がある。代表的な暗号アルゴリズムとして、AES(注9)、DES(注10)がある。

次に、公開鍵暗号方式の仕組みを図6に示す。公開鍵暗号方式は、暗号化と復号化で異なる鍵を用いる方式である。受信者が公開鍵と秘密鍵を生成し、公開鍵を送信者に配送する。秘密鍵でのみ復号が可能であり、公開鍵では復号することはできない。公開鍵暗号方式のメリットとして、通信相手の数に関係なく守るべきは秘密鍵の1つだけのため、鍵の管理が共通鍵暗号方式に比べ容易である。デメリットとしては、共通鍵暗号方式に比べ、処理時間が遅いことである。代表的な暗号アルゴリズムとして、RSA(注11)がある。
共通鍵暗号方式と公開鍵暗号方式の特徴を表1に示す。

図 6. 公開鍵暗号方式

表 1. 暗号方式の特徴

  • (注9)Advanced Encryption Standardの略。
  • (注10)Data Encryption Standardの略。
  • (注11)Rivest-Shamir-Adleman cryptosystemの略。

4.4 セキュアコーディング

4.1~4.3節で紹介した対策は、設計段階で脆弱性を作りこまないための対策であったが、本節では、実装段階で脆弱性を作りこまないための対策である「セキュアコーディング」について説明する。
セキュアコーディングとは、サイバー攻撃に耐えられる堅牢なプログラムを書くことである。車載機器用ソフトウェアの開発では広く一般にC言語が使用されている。C言語の特徴として、以下の事項があげられる。

  • (1)機械語やアセンブリ言語に近く、メモリなどへの柔軟なアクセスが可能である。
  • (2)自由度・汎用性が高い反面、規格では厳密に仕様を定めていない、未規定、未定義、処理系定義の動作が存在する。

これらの特徴は脆弱性が含まれやすい原因ともなっている。例えば、符号付き整数のオーバーフローが発生しても処理結果がどうなるかは言語仕様で決められておらず、オーバーフローを悪用したコードの実行につながる可能性がある。
脆弱性を作りこまないためには、コーディングスタンダード(コーディングルール)を適用し、ソフトウェアの品質を確保することが重要である。

図 7. MISRA-CとCERT-Cのコーディングルールの範囲

ISO/SAE 21434においては、プログラミング言語自身でセキュリティが十分に満たされない場合、ガイドラインや開発環境によってカバーすることが求められており、例として、C言語のセキュアコーディングのためにMISRA-C:2012(注12)やCERT-C(注13)の使用が示されている。
MISRA-CやCERT-CはC言語のコーディングスタンダードである。MISRA-Cは安全性、信頼性、移植性の確保を目的としており、CERT-Cはセキュリティの確保を目的としている。MISRA-CとCERT-Cは互いに補完する関係であり(図7参照)、両方に対応することで信頼性が高くセキュアな実装が可能となる。

  • (注12)MISRA-CはMISRA(Motor Industry Software Reliability Association)が開発したC言語のためのソフトウェア設計標準規格。
    MISRA-C:2012は2012年に改訂された最新版。
  • (注13)CERT(Computer Emergency Response Team)が作成するC言語のセキュアコーディング規約。

実装したソースコードがMISRA-CやCERT-Cのルールに準拠できているかチェックするには、静的解析ツールを使用することができる。静的解析ツールでソースコードをチェックすることで、ルール逸脱箇所を発見・対処し、不具合を未然防止することが可能である。
しかし、静的解析ツールの結果から違反件数の確認や違反箇所に対する修正要否の検討には大きな工数を要する。この工数の削減に向け、下記2点の対策を実施した。

  • (1)コーディングルールの策定
    MISRA-CやCERT-Cのルールを基にコーディングルールを策定した。本ルールに従いコーディングすることで、静的解析ツールで違反検出される件数を減らし、修正にかかる工数を抑制した。
  • (2)「解析結果表示機能」の開発
    静的解析ツールの出力結果は複雑であるため、出力結果を整理して帳票出力する「解析結果表示機能」を開発した。本機能を使用することで違反箇所の確認が容易になり作業工数を削減した。「解析結果表示機能」は、MESWが開発ツールした「CESARⅢ(注14)」、「電子DIFF(注15)」に組み込まれている。

「解析結果表示機能」には下記の機能がある。

  • (a)静的解析結果一覧から任意の違反箇所をダブルクリックすることで、ソースコード上の当該箇所の表示が可能であり、違反箇所を容易に確認できる。
  • (b)各違反箇所に対し、MISRA-C、 CERT-Cのルール番号、ルール内容が表示されるため、違反内容をツール上で確認可能である。
  • (c)違反箇所を4段階にレベル分けし、レベル毎に表示可能なため、重要度の高い箇所から効率的に確認することができる。
  • (d)変更行の違反箇所のみを表示するフィルタ機能があるため、前回からの差分だけを効率的に確認することができる。
  • (e)解析結果をExcelに出力することができ、確認結果を容易に文書化できる。
  • (注14)MESW開発のソフトウェア開発支援環境である。
  • (注15)MESW開発のソース等の差分確認を行うためのレビュー支援ツールである。

5. むすび

本稿では、車載機器用ソフトウェア開発におけるセキュリティ技術について紹介した。
サイバー攻撃は、日々、多様化・巧妙化しているため、製品の出荷後も新たな攻撃手法により脆弱性が発見される可能性もある。そのため、製品の出荷以降、製品サポート終了まで脆弱性情報を収集・管理し、セキュリティ活動を継続する必要がある。また、脆弱性対策のためのセキュリティ技術の最新動向を把握していく必要がある。
最後に、本稿執筆にあたり、ご指導ご協力頂いた社内外の関係各位に深く感謝申し上げる。

【参考文献】
  • (1)国土交通省 : 報道発表資料「自動車の特定改造等の許可制度を本年11月より開始します」(2020)
    https://www.mlit.go.jp/report/press/jidosha08_hh_003789.html
  • (2)国土交通省 : 報道発表資料「自動運転技術に関する国際基準等を導入します」(2020)
    https://www.mlit.go.jp/report/press/jidosha10_hh_000242.html
  • (3)三菱電機株式会社 姫路製作所 品質保証部 : 製品セキュリティ基礎 (2021)
  • (4)三菱電機株式会社 姫路製作所 品質保証部 : セキュアコーディング基礎 (2021)

筆者紹介

■ 岸本 由加(キシモト ユカ)

2011年入社。主に車載システムのソフトウェア開発に従事。現在、モビリティ事業統括部姫路事業所技術第2部技術第3課所属。