サイバー攻撃の脅威にどのように対策すべきか?
自動車のコネクティッド化、スマート化が進むと同時に、車載ソフトウェアを狙ったサイバー攻撃のリスクが急速に高まっており、実際にホワイトハッカーによる車載ECUのハッキング事例もいくつも挙げられています。車載ECUの脆弱性のうち、危険度の高い脆弱性はすべてソフトウェアに存在するという調査結果もあり、自動車業界において「車載ソフトウェアのセキュリティ対応」は急務といえるでしょう。
多くの車載ソフトウェア開発の現場では、すでにCERTやMISRAなどのセキュアコーディング規約への準拠や、脆弱性を含むOSSを検出するソフトウェアコンポジション解析(SCA)などのセキュリティ対応が進んでいましたが、新たに自動車サイバーセキュリティに関する国際規格「ISO/SAE 21434」が発行され、自動車におけるセキュリティ対応はこれからさらに本格化していくことが予想されます。
狙われる車載ECUと求められるセキュリティ対応
自動車がどのようにセキュリティ侵害を受ける可能性があるのかに関しては、ホワイトハッカーによる実証や研究、実際に脆弱性が悪用された過去の事例などから、すでに多くの知見が得られています。たとえば、2015年に起こったジープのハッキングや、2016年および2017年のテスラのハッキング、2018年のBMWのハッキングなどは自動車のハッキング事例として有名ですが、これらのケースは例外なくECUを標的としたセキュリティ侵害により、車両機能の動作の再プログラムや変更が行われていました。
また、世界最大級のセキュリティカンファレンス「DEF CON28」の「Car Hacking Village」にて紹介された研究では、車載ECUの危険度の高い脆弱性はソフトウェアに存在しているという結果が出ています。本研究では、さまざまなメーカーやサプライヤーの40以上のECUを対象に調査を行い、ECUのハードウェアおよびソフトウェアに300以上の脆弱性を発見していますが、そのうち危険度の高い脆弱性はすべてソフトウェアに関するものであったことが報告されています。
サイバーセキュリティ国際規格「ISO/SAE 21434」とは?
サイバー攻撃のリスクに対応するため、国連欧州経済委員会(UNECE)の自動車基準調和世界フォーラム(WP29)は、自動車に関するサイバーセキュリティ法規基準を策定しています。2020年に採択されたサイバーセキュリティ法規「UN-R155」では、サイバーセキュリティマネジメントシステム(CSMS)に対応した自動車の開発プロセスが要求されており、ISO/SAE21434はCSMSを構築するうえで参照されるサイバーセキュリティに関する国際規格です。UN-R155の適応は今月(2022年7月)から一部の自動車を対象にスタートしています。
ISO/SAE21434は、製品開発のライフサイクル全体を通じて高水準な安全性およびサイバーセキュリティ対策を統合することによって、自動車が搭載する機能の信頼性、完全性、可溶性、真正性を保護するセキュリティメカニズムを備えた形で、自動車が設計、製造、展開されることを求めます。ISO/SAE21434の要点としては、脅威分析および脅威評価(TARA)活動を行い、用いられる可能性が高い攻撃ベクターを把握すること、コンセプト(設計)から廃棄に至る製品開発のライフサイクルにおけるすべての段階で製品開発がサイバーセキュリティに対応していることが挙げられます。
ISO/SAE 21434が求めるソフトウェア検証とは?
ISO/SAE21434は自動車メーカーおよびサプライヤーが、サイバーセキュリティのため確固としたアーキテクチャ設計要件に従う際の指標として、ISO/SAE21434はシステムエンジニアリングのV字モデルと整合性を取ることを推奨しています。そのため、製品テストの一部としてソフトウェア検証および妥当性の確認が必要になります。
ISO/SAE 21434で説明されている「要件や推奨」項目に対応するためには、適切なソフトウェアテストの実施が重要な役割を果たします。ソフトウェア検証作業においてISO/SAE21434の要求に対応するためには、どのようなソフトウェアテストを実施することが必要なのか?いま求められる「車載ソフトウェアのセキュリティ対策」について、ホワイトペーパーにて詳しく解説しています。ぜひダウンロードください。
静的解析・単体テストツールC++test
C++testは、静的解析(コーディング規約チェック/フロー解析)、単体テスト、カバレッジの計測、実行時メモリエラー検出、効率的な運用や規格順守を補助する機能などを搭載したC言語/C++言語対応のオールインワンテストツールです。
MISRA C/C++、AUTOSAR C++14コーディングガイドライン、CERT C/C++コーディングスタンダード、CWEなどで定められた規約に基づくコーディングの支援や、単体テストやアプリケーション実行時に自動的にカバレッジを計測するなど、さまざまな要件に対応し、ソフトウェアの品質向上とテスト工数の大幅削減をサポートします。
また、C++testは、効率的な運用や規格遵守を補助する機能を搭載しています。第三者認証機関であるTÜV SÜD社よりIEC 61508およびISO 26262、IEC 62304に準拠したテストツールとして認証を取得済みです。また、CIツール連携、Docker連携、レポート生成、ダッシュボード表示など各種機能を搭載しています。