インターネットのハッキングによって車のブレーキとトランスミッションを制御できることをセキュリティ・リサーチャーが初めて実証したとき、そのソフトウェア脆弱性を修正するために140万台がリコールされました。2015年に起こった不名誉なジープ・ハッキングにより、自動車業界は高価な代償を払って目を覚ますことになりました。以後、ソフトウェア・セキュリティ規格は進化していきましたが、果たしてその内容は将来のコネクテッドカーの安全を保護するために十分といえるでしょうか。
最近の車はセーフティ・クリティカルなシステム(アンチロック・ブレーキやパワーステアリング)や基本的な制御(ドアやウィンドウ)からナビゲーションやインフォテイメント・システムに至るまで、すべてソフトウェアで制御されています。そのソフトウェアはそれぞれ異なるベンダーから提供されています。さまざまなベンダーがソフトウェアに関わり、最終製品に至るまでのソフトウェアのサプライチェーンが長くなるにしたがって、生命を脅かすような機能不全を防ぐために、コーディング規約が不可欠になっています。
MISRA(Motor Industry Software Reliability Association)は、安全・セキュリティに関連する電子システム、組み込み制御システム、ソフトウェア集約的アプリケーション、スタンドアロン・ソフトウェアの開発に関するガイドラインを提供しています。
MISRAガイドラインは以下の基準を満たすコードの開発を促進します。
特に注目されるMISRAガイドラインは、CおよびC++プログラミング言語を使った開発プロジェクトに関するものです。これにはMISRA C 2004、MISRA C++ 2008、MISRA C 2012の規約が含まれます。MISRA C/C++は車載システムのコーディング規約のデファクトスタンダードになっていますが、C++言語の最近の改善に対応しておらず、最近のセキュリティ違反や脆弱性に関する情報も反映されていません。
では、MISRAは接続機能の増加、OTAアップデート、急増するオープンソースコードへの用意ができているのでしょうか。最近の発表ではMISRAはC++のガイドラインをAUTOSARと統合するとしているので、対応するものと思われます。
AUTOSARは2003年(MISRA設立の約10年後)、オープン・スタンダードの車載ソフトウェア・アーキテクチャの構築を目指して創設されました。AUTOSARはセーフティ・クリティカルな環境に対するC++14の使用を定義しました。この規格はMISRA C++ 2008で取り残したものを拾い出していくつかの不足を補い、規約を拡張するために定められたもので、ダイナミック・メモリー、標準ライブラリ、例外、仮想関数などに対応しています。
AUTOSARは2017年3月以降、年に2回、C++のガイドラインをリリースしています。その堅牢なルールセット、発行頻度の高さ、そして200社以上との開発パートナーシップにより、AUTOSARは性能のみならず安全性とセキュリティを重視した車載電気・電子システムの開発への道を切り拓いてきました。AUTOSARは将来のC++を担う存在です。
MISRAはAUTOSARのガイドラインを独自に策定したベストプラクティスと統合することにより、安全性に関するC++開発の統一された「決定版」言語サブセットの開発を目指しています。MISRA主導のガイドラインには、言語の最新バージョン(C++17)および提供開始になった際にはその後継バージョン(C++20)に関する内容が盛り込まれる予定です。
MISRAとAUTOSARのC++の規約の統合により、業界をリードする2つの組織の優れた発想が1つになります。さらに重要な点は、サプライチェーン全体にわたるすべての開発者が共通のルールセットを参照する、統一された業界標準が実現することです。このガイドラインはC++言語の最新版に対応したAUTOSARの3年ごとのリリースで標準的に進化していきます。
規格の統合について、AUTOSAR議長のリック・フローレス氏は次のように語っています。「革新的な業界を共通のわかりやすいC++言語でサポートし、統一された業界標準のソースを開発者に提供することが重要です。コネクテッド自動運転車やAIの開発など、変革が特に激しい産業分野でC++の利用が広がりを見せ、次世代のソフトウェア集約型システムを下支えしています。」
最近の車には1億行以上のソフトウェア・コードが搭載されています。今後10年で平均的な車に搭載されるコードは3億行レベルに上るでしょう。自動車のインターネット接続機能が強化されるに伴い、車載アプリケーションがハッカーの標的になりやすくなります。シノプシスでは、こうした攻撃への対抗を支援するため、MISRA準拠の包括的でスケーラブルなCoverity静的解析ソリューションをご用意しています。車載ソフトウェアのセキュリティと品質に関するシノプシスのソリューションの詳細をご覧ください。