Eclipse Kuksaのセキュリティ監査がリリースされました
自動車用ソフトウェア開発における信頼性の向上
Eclipse Kuksaの外部セキュリティ監査レポートの公開を発表できることを大変嬉しく思います。これは、安全で信頼性の高い自動車ソフトウェア開発への継続的な取り組みにおける重要なマイルストーンです。ETASの開発者はEclipse KUKSAへの参画を通じて、シンプルで安全なAPIを使用して車両シグナルへの読み書きアクセスを可能にするオープンソースプロジェクトに貢献しています。この取り組みにより生まれたコンポーネントがKuksaデータブローカーです。これはVSS(Vehicle Signal Specification)で定義されたデータポイントを管理します。この組み合わせにより、車両の包括的なビューを提供する抽象化層が形成され、ソフトウェアデファインドビークル(SDV)システムにおける多様なアプリケーションの基盤として理想的な基盤となります。
しかしながら、これらのアプリケーションはデータブローカーのセキュアな実行に依存する必要があります。そこで、Quarkslabによる外部監査報告書の公開をお知らせできることを嬉しく思います。本監査はOSTIFおよびEclipse Foundationの仲介により実施され、Alpha-Omegaプロジェクトの資金提供によって実現しました。監査対象はKUKSAデータブローカーとその対応PythonクライアントSDKです。19件の発見事項があり、うち2件は深刻度が高いものでした。KUKSAチームは、報告書公開前にほとんどの指摘事項に対処しました。
本記事では、監査結果の一部とその対応策について説明します。監査報告書の全文はこちらからご覧いただけます。
Open Source Software(オープンソースソフトウェア)での共同開発は、多様な背景を持つ開発者が直接コード上で協働することを可能にすることで、イノベーションを加速し、複雑なソフトウェア開発プロセスを効率化します。
調査結果
プロバイダーは新しいシグナルを追加することでデータブローカーをクラッシュさせることができる
Kuksaの展開環境では、いわゆるプロバイダーが車載バス(例:CAN)から値を取得し、VSS信号に変換してデータブローカーに書き込むことでシグナルを更新する。Kuksa API「sdv.databroker.v1」を用いれば、プロバイダーはランタイムにデータブローカーが管理するデータモデルを拡張するため、新規シグナルを登録できる。しかし、プロバイダーが追加できるエントリ数に上限は設けられていませんでした。監査担当者が調査中に2,900万個のシグナルを登録したところ、32GBのRAMを搭載したコンピュータ上でオペレーティングシステムがデータブローカーを停止させました。VSS 4.0のデフォルトデータモデルは現在約1,000個のシグナルで構成されているため、このシナリオがいかに異常であるかが浮き彫りになりました。
ユーザーはサブスクリプションクエリでデータブローカーをクラッシュさせることができる
'sdv.databroker.v1' APIでは、ユーザーはシグナルの変更を購読できます。さらに、通知の受け取り条件を特定するフィルターを登録することも可能です。例えば、Vehicle.Speedが時速100キロを超える場合にのみメッセージを送信するクエリを定義できます。このAPIはSQLを用いてフィルタを表現するため、ユーザーが特定のクエリを作成することでデータブローカーをクラッシュさせる可能性があります。
その結果
ユーザーは起動時に明示的に「sdv.databroker.v1」を有効にする必要があります。そうしない場合、非アクティブのままとなります。Eclipse Velocitasなどの一部のアプリケーションは「sdv.databroker.v1」の機能に依存しているため、移行期間を延長するため、現時点では削除されていません。不足している機能のうち、『kuksa.val.v1』または将来のバージョンに含めるべきものについて、コミュニティからのフィードバックを収集します。『sdv.databroker.v1』に関係しないその他の発見事項については、提案された変更を実装しました。例えば、Python SDKにおけるいくつかの特殊ケースの処理などです。
お問い合わせ
ご質問やご不明な点などございましたら、お問い合わせフォームよりメッセージをお送りください。または、サポートホットラインをご利用ください。
お気軽にお問い合わせください!