(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-20
(45)【発行日】2024-05-28
(54)【発明の名称】リスクスコアに応じた事象対応
(51)【国際特許分類】
G06F 21/55 20130101AFI20240521BHJP
【FI】
G06F21/55
(21)【出願番号】P 2023033951
(22)【出願日】2023-03-06
【審査請求日】2023-03-06
(32)【優先日】2022-03-10
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【氏名又は名称】久保 貴則
(72)【発明者】
【氏名】モラー・ゴールディング カーロース
(72)【発明者】
【氏名】キャシャニー アミア
(72)【発明者】
【氏名】アイアー ゴパラクリシュナン
(72)【発明者】
【氏名】山下 普史
【審査官】小林 秀和
(56)【参考文献】
【文献】国際公開第2021/019638(WO,A1)
【文献】特表2017-502620(JP,A)
【文献】国際公開第2021/019636(WO,A1)
【文献】米国特許出願公開第2022/0019676(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
1つ以上のプロセッサと、
1つ以上のプロセッサに通信可能に結合されるメモリと、を備え、
メモリは、
1つ以上のプロセッサによる実行時に、1つ以上のプロセッサに、
コンピューティングシステムの脅威に晒されているコンポーネントに対する攻撃の検出に応答して、少なくとも、脅威に晒されているコンポーネントに関連するコンポーネントを特定する依存関係リストを含む、脅威に晒されているコンポーネントに関する情報を収集させ、
攻撃に関連するリスクレベル、脅威に晒されているコンポーネントのリスクタイプ、及び関連するコンポーネントが危機に陥ることに関連する複合リスクに従って、攻撃のリスクスコアを決定させ、そして、
少なくともリスクスコアを含む、攻撃に関する情報を特定するレポートを提供させる命令を含む制御モジュールを格納する、セキュリティシステム。
【請求項2】
制御モジュールが含むリスクスコアを決定する命令は、既知の脅威の特徴を示すリスクデータベース内で攻撃を識別する命令、及びリスクタイプと、攻撃による関連するコンポーネントに対する影響である複合リスクと組み合わせて、リスクデータベースから得られるリスクレベルを少なくとも含む特徴を使用して、リスクスコアを生成する命令を含む、請求項1のセキュリティシステム。
【請求項3】
制御モジュールが含む情報を収集する命令は、脅威に晒されているコンポーネントに関する情報を識別する命令を含み、脅威に晒されているコンポーネントとの相互作用に従って関連するコンポーネントを識別することによって依存関係リストを生成し、相互作用は、少なくともメモリの共有、及び実行の依存関係を含む、請求項1のセキュリティシステム。
【請求項4】
制御モジュールが含む依存関係リストを生成する命令は、事前設定されたリストを解析して、脅威に晒されているコンポーネントと関連するコンポーネントとの関係を識別する命令を含む、請求項3のセキュリティシステム。
【請求項5】
制御モジュールが含むレポートを提供する命令は、リスクスコアが対応閾値を満たすと攻撃に対する自動化された対応を生成する命令を含み、自動化された対応は、攻撃に対抗するため、脅威に晒されているコンポーネントを制御することと、脅威に晒されているコンポーネントと関連するコンピューティングシステムを制御することの少なくとも1つを含む、請求項1のセキュリティシステム。
【請求項6】
制御モジュールが含むレポートを提供する命令は、攻撃を報告するためにセキュリティオペレーションセンターへレポートを通信する命令を含み、レポートは、脅威に晒されているコンポーネントの識別子、メモリスタックの現在の状態を含む攻撃の特徴、依存関係リスト、及びリスクスコアを含む、請求項1のセキュリティシステム。
【請求項7】
制御モジュールが含む攻撃を検出する命令は、脅威に晒されているコンポーネントの動作の異常を検出する命令を含み、脅威に晒されているコンポーネントと関連するコンピューティングシステムの特徴を識別する、請求項1のセキュリティシステム。
【請求項8】
セキュリティシステムは車両内に組み込まれ、コンピューティングシステムは車両の一部である、請求項1のセキュリティシステム。
【請求項9】
1つ以上のプロセッサによる実行時に、1つ以上のプロセッサに、
コンピューティングシステムの脅威に晒されているコンポーネントに対する攻撃の検出に応答して、少なくとも、脅威に晒されているコンポーネントに関連するコンポーネントを特定する依存関係リストを含む、脅威に晒されているコンポーネントに関する情報を収集させ、
攻撃に関連するリスクレベル、脅威に晒されているコンポーネントのリスクタイプ、及び関連するコンポーネントが危機に陥ることに関連する複合リスクに従って、攻撃のリスクスコアを決定させ、そして、
少なくともリスクスコアを含む、攻撃に関する情報を特定するレポートを提供させる命令を格納した非一時的コンピュータ可読
記憶媒体。
【請求項10】
リスクスコアを決定する命令は、既知の脅威の特徴を示すリスクデータベース内で攻撃を識別する命令、及びリスクタイプと、攻撃による関連するコンポーネントに対する影響である複合リスクと組み合わせて、リスクデータベースから得られるリスクレベルを少なくとも含む特徴を使用して、リスクスコアを生成する命令を含む、請求項9の非一時的コンピュータ可読
記憶媒体。
【請求項11】
情報を収集する命令は、脅威に晒されているコンポーネントに関する情報を識別し、脅威に晒されているコンポーネントとの相互作用に従って関連するコンポーネントを識別することによって依存関係リストを生成する命令を含み、相互作用は、少なくともメモリの共有、及び実行の依存関係を含む、請求項9の非一時的コンピュータ可読
記憶媒体。
【請求項12】
依存関係リストを生成する命令は、事前設定されたリストを解析して、脅威に晒されているコンポーネントと関連するコンポーネントとの関係を識別する命令を含む、請求項11の非一時的コンピュータ可読
記憶媒体。
【請求項13】
レポートを提供する命令は、リスクスコアが対応閾値を満たすと攻撃に対する自動化された対応を生成する命令を含み、自動化された対応は、攻撃に対抗するため、脅威に晒されているコンポーネントを制御することと、脅威に晒されているコンポーネントと関連するコンピューティングシステムを制御することの少なくとも1つを含む、請求項9の非一時的コンピュータ可読
記憶媒体。
【請求項14】
1つ以上のプロセッサによって実行される方法であって、
コンピューティングシステムの脅威に晒されているコンポーネントに対する攻撃の検出に応答して、少なくとも、脅威に晒されているコンポーネントに関連するコンポーネントを特定する依存関係リストを含む、脅威に晒されているコンポーネントに関する情報を収集すること、
攻撃に関連するリスクレベル、脅威に晒されているコンポーネントのリスクタイプ、及び関連するコンポーネントが危機に陥ることに関連する複合リスクに従って、攻撃のリスクスコアを決定すること、及び、
少なくともリスクスコアを含む、攻撃に関する情報を特定するレポートを提供すること、を備える方法。
【請求項15】
リスクスコアを決定することは、既知の脅威の特徴を示すリスクデータベース内で攻撃を識別すること、及びリスクタイプと、攻撃による関連するコンポーネントに対する影響である複合リスクと組み合わせて、リスクデータベースから得られるリスクレベルを少なくとも含む特徴を使用して、リスクスコアを生成することを含む、請求項14の方法。
【請求項16】
情報を収集することは、脅威に晒されているコンポーネントに関する情報を識別すること、及び脅威に晒されているコンポーネントとの相互作用に従って関連するコンポーネントを識別することによって依存関係リストを生成することを含み、相互作用は、少なくともメモリの共有、及び実行の依存関係を含む、請求項14の方法。
【請求項17】
依存関係リストを生成することは、事前設定されたリストを解析して、脅威に晒されているコンポーネントと関連するコンポーネントとの関係を識別することを含む、請求項16の方法。
【請求項18】
レポートを提供することは、リスクスコアが対応閾値を満たすと攻撃に対する自動化された対応を生成することを含み、自動化された対応は、攻撃に対抗するため、脅威に晒されているコンポーネントを制御することと、脅威に晒されているコンポーネントと関連するコンピューティングシステムを制御することの少なくとも1つを含む、請求項14の方法。
【請求項19】
レポートを提供することは、攻撃を報告するためにセキュリティオペレーションセンターへレポートを通信することを含み、レポートは、脅威に晒されているコンポーネントの識別子、メモリスタックの現在の状態を含む攻撃の特徴、依存関係リスト、及びリスクスコアを含む、請求項14の方法。
【請求項20】
攻撃を検出することは、脅威に晒されているコンポーネントの動作の異常を検出すること、及び脅威に晒されているコンポーネントと関連するコンピューティングシステムの特徴を識別することを含む、請求項14の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書で説明する主題は、概して、電子デバイスに対する攻撃を検出して対応するシステム及び方法に関し、より具体的には、リスクスコアに従って選択的に攻撃に対応することに関する。
【背景技術】
【0002】
従来、車両のセキュリティには、車両の所有者が物理的なキーを使用してドアをロックする、及び/又は、手動で車両を始動することが含まれていた。技術が進歩するにつれて、この従来の車両セキュリティは、追加機能を含むより複雑なシステムに変化したが、追加の/異なるリスクに直面することにもなった。例えば、現在、多くの車両には、車両の操作に関するデータの収集、リモートシステムとの通信、電子制御の受信/提供などの機能を備えた電子システムが含まれている。しかし、強化された機能と外部ネットワークへの接続性に伴い、悪意のある行為者による攻撃の可能性が生じている。例えば、悪意のある行為者は、車両の操作を変更したり、機密情報を盗んだりなどを行うため、車両システムへのアクセスを試みる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
様々な侵入検知システム(IDS)は、システム内の異常を広く検出するように機能することができるが、概して、処理の関係の全体的な影響と、悪意のある攻撃が車両内の関連システムにどのように影響するかを正確に評価することに失敗する可能性がある。さらに、車両に関して言えば、このようなシステムは、一般に、攻撃に関する情報を収集するリモートオペレーションセンターに依存しており、攻撃への対応をリモートで実施する場合があり、それは、遅れることが多く、攻撃の影響を迅速に解決できない可能性がある。従って、車両システムは、保護された情報を公開し、システムに損害を与えたりする可能性のある敵対的な攻撃に対して脆弱なままである。
【課題を解決するための手段】
【0004】
一実施形態では、車両環境内の事象対応を改善することに関連する例示的なシステム及び方法が開示される。前述のように、さまざまな敵対的攻撃には、車両の電子システムへの不正アクセスを得る試みが含まれ得る。つまり、例えば、敵対者は、電子通信の操作、プログラムの実行の操作、悪意のあるソフトウェアのインストールなどを試みる可能性がある。さらに、これらの攻撃を通じて、敵対者は、暗号化キー、機密ソフトウェアなどを含む機密情報を抽出し、及び/又は、さもなければ、車両100の電子システムの機能、それにより、車両自体の機能を妨害することができる。前述のように、車両に関する侵入検知システムは、車両が多くの多様なシステム及び相互に関連する機能を備えたモバイルプラットフォームであるという点で、特に困難である可能性がある。対照的に、侵入検知システムは、概して、車両の運用上の考慮事項(例えば、限られた電力など)やシステムの多様な接続によって制限されない、管理されたコンテキスト内でシステムが静的な監視ポイントを有する、企業又は商用のコンテキストに焦点を当てている。従って、車両内の悪意のある攻撃を検出して対応することは、他のアプローチとは大きく異なる検討事項である。
【0005】
それゆえ、一実施形態において、開示されたアプローチは、攻撃を監視し、対応を知らせるリスクスコアの使用を通じて、測定されたアプローチにおいて攻撃に対応するためのメカニズムを含む。例えば、一つの構成では、システムは車両の様々なシステムを監視して攻撃を検出する。システムは、通信内のパターンの認識、操作されたメモリ又は制御フローの識別など、様々な技術を使用して攻撃を検出することができる。いずれの場合でも、システムは攻撃又は少なくとも可能性がある攻撃の存在を検出し、リスクを評価するために攻撃に関する情報の取得に進む。例えば、システムは攻撃を受けているプログラムの識別子を収集し、そして、依存関係リストを生成する。このリストには、攻撃されたプログラムとやり取りする他のプロセスやシステムコンポーネントが列挙されている。
【0006】
この情報から、システムは攻撃に関連するリスクスコアを決定する。少なくとも1つの構成では、システムは既知の攻撃のデータベースを使用して現在の攻撃を分析し、スコアを生成する。例えば、システムは攻撃の特徴をデータベース内の既知の攻撃と照合して、現在の攻撃に関連するリスクを決定することができる。さらなる態様では、システムは、データベース内で識別された1つ以上の攻撃との類似性を判定し、識別された攻撃の特徴を現在の攻撃に適用する。さらに別の構成では、システムは、既知の攻撃のデータベースを使用する代わりに、攻撃を特徴付けるためのポリシーを適用しても良い。いずれの場合も、システムは攻撃に関連するリスクを判定し、全体的な影響を評価するために、依存関係リストに従ってリスクを推定する。この情報から、システムは攻撃に関連するリスクを一般的に特徴付けるリスクスコアを生成する。
【0007】
従って、リスクスコアを使用して、システムは、攻撃の特徴及び影響を受ける車両の側面を示す攻撃に関するレポートを生成することができる。さらに、セキュリティオペレーションセンターやその他のサイバーセキュリティエンティティにレポートを提供することに加えて、システムは攻撃を妨げるための自動化された反応を生成しても良い。反応には、通信リンクからの車両の切断、ユーザへの警告、メモリの再初期化などが含まれる。このようにして、システムは攻撃をより適切に識別して対応することにより、電子的攻撃への対応を改善する。
【0008】
一実施形態では、セキュリティシステムが開示される。セキュリティシステムは、1つ以上のプロセッサと、1つ以上のプロセッサに通信可能に結合されるメモリとを含む。メモリは、1つ以上のプロセッサによる実行時に、1つ以上のプロセッサに、コンピューティングシステムの脅威に晒されているコンポーネントに対する攻撃の検出に応答して、少なくとも、脅威に晒されているコンポーネントに関連するコンポーネントを特定する依存関係リストを含む、脅威に晒されているコンポーネントに関する情報を収集させる命令を含む制御モジュールを格納する。制御モジュールは、攻撃に関連するリスクレベル、脅威に晒されているコンポーネントのリスクタイプ、及び関連するコンポーネントが危機に陥ることに関連する複合リスクに従って、攻撃のリスクスコアを決定するための命令を含む。制御モジュールは、少なくともリスクスコアを含む、攻撃に関する情報を指定するレポートを提供する命令を含む。
【0009】
一実施形態において、非一時的なコンピュータ可読記憶媒体が開示される。コンピュータ可読記憶媒体は、1つ以上のプロセッサによる実行時に、1つ以上のプロセッサに、開示された機能を実行させる命令を格納する。命令には、コンピューティングシステムの脅威に晒されているコンポーネントに対する攻撃の検出に応答して、少なくとも、脅威に晒されているコンポーネントに関連するコンポーネントを特定する依存関係リストを含む、脅威に晒されているコンポーネントに関する情報を収集する命令が含まれる。命令には、攻撃に関連するリスクレベル、脅威に晒されているコンポーネントのリスクタイプ、及び関連するコンポーネントが危機に陥ることに関連する複合リスクに従って、攻撃のリスクスコアを決定する命令が含まれる。命令には、少なくともリスクスコアを含む、攻撃に関する情報を指定するレポートを提供する命令が含まれる。
【0010】
一実施形態において、1つ以上のプロセッサによって実行される方法が開示される。一実施形態において、この方法は、コンピューティングシステムの脅威に晒されているコンポーネントに対する攻撃の検出に応答して、少なくとも、脅威に晒されているコンポーネントに関連するコンポーネントを特定する依存関係リストを含む、脅威に晒されているコンポーネントに関する情報を収集することを含む。この方法は、攻撃に関連するリスクレベル、脅威に晒されているコンポーネントのリスクタイプ、及び関連するコンポーネントが危機に陥ることに関連する複合リスクに従って、攻撃のリスクスコアを決定することを含む。この方法は、少なくともリスクスコアを含む、攻撃に関する情報を指定するレポートを提供することを含む。
【図面の簡単な説明】
【0011】
本明細書に組み込まれ、その一部を構成する添付の図面は、本開示の様々なシステム、方法、及び他の実施形態を示す。図において示される要素の境界(例えば、ボックス、ボックスのグループ、又は他の形状)は、境界の一実施形態を表すことを理解されたい。いくつかの実施形態では、1つの要素が複数の要素として設計されても良く、又は複数の要素が1つの要素として設計されても良い。いくつかの実施形態では、別の要素の内部コンポーネントとして示されている要素が、外部コンポーネントとして実現されても良いし、その逆であっても良い。さらに、要素はスケール通りに描かれていない場合がある。
【0012】
【
図1】例示的なシステム及び方法を実施することができる車両の構成の一実施形態を示す。
【
図2】車両への攻撃を監視し、リスクスコアに従って攻撃に対応することに関連するセキュリティシステムの一実施形態を示す。
【
図3】セキュリティシステムのサブモジュールの一例を示す。
【
図4】リスクスコアの生成に関連する方法の一実施形態を示す。
【発明を実施するための形態】
【0013】
車両環境内の事象対応を改善することに関連するシステム、方法、及び他の実施形態が開示される。前述のように、電子システムへの不正アクセスを得ようとする試み、もしくは、システムの動作を妨害しようとする試みは、車両にとって問題である。すなわち、例えば、敵対者は、車両へのアクセスを得よう、又は車両の電子システムに存在を与えようとする試みにおいて、電子通信を操作したり、プログラムの実行を操作したり、悪意のあるソフトウェアをインストールしたりしようとするかもしれない。さらに、これらの攻撃を通じて、敵対者は、暗号化キー、機密ソフトウェアなどを含む機密情報を抽出し、及び/又は、さもなければ、車両100の電子システムの機能、それにより、車両自体の機能を妨害することができる。前述のように、車両に関する侵入検知システムは、車両が多くの多様なシステム及び相互に関連する機能を備えたモバイルプラットフォームであるという点で、特に困難である可能性がある。対照的に、侵入検知システムは、概して、車両の運用上の考慮事項(例えば、限られた電力など)やシステムの多様な接続によって制限されない、管理されたコンテキスト内でシステムが静的な監視ポイントを有する、企業又は商用のコンテキストに焦点を当てている。従って、車両内の悪意のある攻撃を検出して対応することは、他のアプローチとは大きく異なる検討事項である。
【0014】
それゆえ、一実施形態において、開示されたアプローチは、攻撃を監視し、対応を知らせ、独立したアクションを容易にするリスクスコアの使用を通じて、測定されたアプローチにおいて攻撃に対応するためのメカニズムを含む。例えば、一つの構成では、セキュリティシステムは、車両の様々な側面を監視して攻撃を検出する。システムは、通信内のパターンの認識、操作されたメモリ又は制御フローの識別など、様々な技術を使用して攻撃を検出することができる。いずれの場合でも、システムは攻撃又は少なくとも可能性がある攻撃の存在を検出し、リスクを評価するために攻撃に関する情報の取得に進む。例えば、システムは攻撃を受けているプログラムの識別子を収集し、そして、依存関係リストを生成する。依存関係リストは、攻撃されたプログラムとやり取りする他のプログラム、機能、プロセス、及びシステムコンポーネント(例えば、共有メモリ)を特定する。
【0015】
この情報から、システムは攻撃に関連するリスクスコアを決定する。少なくとも1つの構成では、システムは既知の攻撃のデータベースを使用して現在の攻撃を分析し、スコアを生成する。例えば、システムは攻撃の特徴をデータベース内の既知の攻撃と照合して、現在の攻撃に関連するリスクを決定することができる。データベースは、攻撃の特徴、攻撃の影響などを詳述するリスクランクデータベースである。代替的に、又は追加的に、システムは、既知の攻撃のデータベースを使用する代わりに、攻撃を特徴付けるためのポリシーを適用しても良い。いずれの場合も、システムは攻撃に関連するリスクを判定し、全体的な影響を評価するために、依存関係リストに従ってリスクを推定する。すなわち、システムは、攻撃を受けているプログラムの重要性と、プログラムと相互作用する車両の追加の側面を比較検討して、攻撃の全体的な影響を評価する。この情報から、システムは攻撃に関連するリスクを一般的に特徴付けるリスクスコアを生成する。
【0016】
従って、リスクスコアを使用して、システムは、攻撃の特徴及び影響を受ける車両の側面を示す攻撃に関するレポートを生成することができる。さらに、セキュリティオペレーションセンターやその他のサイバーセキュリティエンティティにレポートを提供することに加えて、システムは攻撃を妨げるための自動化された反応を生成しても良い。反応には、通信リンクからの車両の切断、ユーザへの警告、メモリの再初期化などが含まれる。このようにして、システムは攻撃をより適切に識別して対応することにより、電子的攻撃への対応を改善する。
【0017】
図1を参照すると、車両100の一例が示されている。本明細書で使用される場合、「車両」は、任意の形態の動力輸送機である。1つ以上の実施形態では、車両100は自動車である。本明細書では自動車に関して構成を説明するが、実施形態は自動車に限定されないことを理解されたい。いくつかの実装形態では、車両100に代えて、輸送インフラストラクチャ(たとえば路側機)に関連付けられた電子デバイス、モバイルデバイスと通信するクラウドベースのシステム、又は悪意のある攻撃に対して脆弱である可能性があり、それゆえ、本明細書で説明する機能から恩恵を受ける電子システムを実現し得る他のデバイスであっても良い。
【0018】
車両100は、様々な要素も含む。様々な実施形態において、車両100は、
図1に示される要素のすべてを有していない場合があることが理解されたい。車両100は、
図1に示される様々な要素の異なる組み合わせを有することができる。さらに、車両100は、
図1に示される要素に対して、追加の要素を有することができる。いくつかの構成では、車両100は、
図1に示される1つ以上の要素を有することなく、実現され得る。
図1では、様々な要素が車両100内に配置されているように示されているが、これらの要素の1つ以上を車両100の外部に配置できることを理解されたい。さらに、示されている要素は物理的に大きな距離だけ離されて、リモートサービス(例えば、クラウドコンピューティングサービス)として提供されても良い。
【0019】
車両100の可能な要素のいくつかが
図1に示されており、これらは、後続の図とともに説明される。
図1の要素の多くに関する説明は、この説明を簡潔にするために、
図2-
図4の説明の後に提供される。さらに、説明を簡単かつ明確にするために、必要に応じて、対応する、類似の、又は同様の要素を示すために、異なる図面間で参照番号が繰り返されることを理解されたい。さらに、本明細書に記載の実施形態は、記載された要素の様々な組み合わせを使用して実施できることを理解されたい。
【0020】
いずれの場合も、車両100は、車両100の電子システムに対する悪意のある攻撃の検出を改善するように機能するセキュリティシステム170を含む。さらに、スタンドアロンのコンポーネントとして示されているが、1つ以上の実施形態では、セキュリティシステム170は、車両100の自動化された、及び/又はユーザ起因の制御と関連するシステム/モジュールの機能のセキュリティを改善することを容易にするため、支援システム160、又は車両100の別の類似のシステムと統合される。言及された機能及び方法は、図のさらなる説明によってより明らかになる。
【0021】
図2を参照すると、セキュリティシステム170の一実施形態がさらに示されている。示されるように、セキュリティシステム170は、プロセッサ110を含む。このように、プロセッサ110は、セキュリティシステム170の一部であっても良いし、セキュリティシステム170は、データバス又は別の通信経路を介してプロセッサ110にアクセスしても良い。1つ以上の実施形態では、プロセッサ110は、制御モジュール220に関連する機能を実行するように構成された特定用途向け集積回路である。より一般的には、1つ以上の態様において、プロセッサ110は、セキュリティシステム170に関連するコード化された機能を実行するとき、本明細書で説明される様々な機能を実行することが可能な、マイクロプロセッサなどの電子プロセッサである。さらに、プロセッサ110又はセキュリティシステム170に関連付けられた別の電子処理ユニットは、安全にする/保護されるべき様々なプログラムを実行する。様々な実施形態において、プログラムの特定の機能は変化し得るが、自動運転機能(例えば、ADAS機能、機械認識、マッピング、物体検出/識別、経路計画、車両制御ルーチンなど)、車両100の制御に関連する機能、車両100内のインフォテインメントシステムの実行など、を含むことができる。このように、プログラムの様々な態様は、改善されたセキュリティ手段によって保護されるべき、車両100の機能的安全性、機密情報/個人情報などに関連する場合がある。さらに、プログラム自体は様々な方法で構成することができるが、通常は複数のセグメントで構成されることを理解されたい。セグメントには、データ要素(例えば、変数)と様々な機能(つまり、特定の機能の実行に関連するコードのブロック)が含まれる。それゆえに、セキュリティシステム170は、後でさらに概説するように、プログラムを悪意のある攻撃から保護するように機能する。
【0022】
一実施形態において、セキュリティシステム170は、制御モジュール220、及び、様々な構成において、追加の要素(例えば、プログラム)を格納するメモリ210を含む。メモリ210は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ハードディスクドライブ、フラッシュメモリ、又は制御モジュール220を格納するための他の適切なメモリである。制御モジュール220は、例えば、プロセッサ110による実行時に、プロセッサ110に本明細書に開示される様々な機能を実行させるコンピュータ可読命令である。1つ以上の実施形態では、モジュール220は、メモリ210に組み込まれた命令であるが、さらなる態様では、モジュール220は、説明される機能の1つ以上を独立して実行するための処理コンポーネント(例えば、コントローラ)、回路などのハードウェアを含む。このように、制御モジュール220は、メモリ210内の命令として、又はシステムオンチップ(SoC)、ASIC、又は別の電子デバイスなどのスタンドアロンコンポーネントとして具現化され得る。
【0023】
さらに、一実施形態では、セキュリティシステム170は、データストア230を含む。データストア230は、1つの構成では、情報を格納するための電子ベースのデータ構造である。例えば、1つのアプローチにおいて、データストア230は、メモリ210又は別の適切な電子記憶媒体(例えば、RAM、ROM、オンチップキャッシュなど)に記憶され、記憶されたデータを分析し、記憶されたデータを提供し、記憶されたデータを組織化するなどのためにプロセッサ110によって実行され得るルーチンを備えて構成される、データベースである。いずれの場合も、1つの構成において、データストア230は、様々な機能を実行する際に制御モジュール220によって使用されるデータを格納する。一実施形態では、データストア230は、例えば、制御モジュール220によって使用される他の情報とともに、レポート240、ポリシー250及びリスクランクデータベース260を含む。
【0024】
最初の問題として、リスクランクデータベース260は、様々な攻撃と関連するリスクに関する情報を保持する。すなわち、例えば、リスクランクデータベース260は、以前に観察され記録された個々の攻撃に関する情報を含む。リスクランクデータベース260内の攻撃に関する情報は、関連する攻撃プログラムの特定のパターン(例えば、ハッシュ)、ファイルの名前、インストールの場所、攻撃プログラムの挙動(例えば、プログラムが相互作用するシステムの要素、攻撃プログラムによって逸脱するプログラムフローなど)、攻撃プログラムによって生成される通信、メモリアクセス及び格納パターンなどを含む、識別情報/特徴を含むことができる。概して、識別情報には、プログラムを識別するのに役立つ攻撃プログラムに関する既知の情報が含まれる。さらに、識別情報に加えて、リスクランクデータベース260は、少なくとも1つの実施例において、プログラムに固有のリスクの評価された特徴表示を含む。リスクの特徴表示は、リスクのタイプ、プログラムの特定の影響など、実施例に応じて様々な形式を取り得る。例えば、リスクのタイプは、プログラムがどのようにシステムを攻撃するか(例えば、プログラムフローの操作、メモリの変更など)を特定することができる。対照的に、プログラムの特定の影響には、特定のプロセス、メモリの場所、通信の形式、及び攻撃プログラムに関連するその他の要素が含まれる。
【0025】
セキュリティシステム170は、攻撃の初期識別を行うことができるが、概して、セキュリティシステム170は、リスクデータベース270などの外部ソースからの更新を通じて、リスクランクデータベース260を事前設定することを理解されたい。従って、リスクデータベース270は、既知の攻撃に関する情報を集約し、セキュリティシステム170などのクライアントデバイスに情報を提供するセキュリティオペレーションセンター(SOC)又は別の機関によって更新され、制御され得る。このようにして、セキュリティシステム170は、脅威に関する最新の認識を維持することができ、それにより、攻撃をよりよく識別して阻止することができる。
【0026】
このように、制御モジュール220は、概して、プロセッサ110を制御して、攻撃の発生を検出するために車両100の電子システムを監視するように機能する命令を含む。例えば、制御モジュール220は、リスクランクデータベース260で定義された特徴など、攻撃を示す異常について車両100の電子システムの様々な側面を監視する。さらなるアプローチでは、制御モジュール220は、特定のプログラムによる特定のメモリアドレスへのアクセス、通信の異常、プロセスの中断など、システムの異常な動作を定義するポリシー250を実装する。
【0027】
追加の説明として、制御モジュール220のさらなる機能を示す
図3を検討する。大まかに言えば、
図3に示される制御モジュール220の構成要素は、セキュリティシステム170内に存在し得る様々な要素の表現と共に、異なる機能及びその関連付けを抽象化したものである。従って、
図3とともに説明される要素は、少なくとも1つの態様において、プロセッサ110による実行時に、制御モジュール220の命令が実施する機能を表す。
【0028】
従って、
図3には、代表的なプログラム300の実行が示されている。プログラム300が実行されると、制御モジュール220は、以前に概説したように、様々な特徴の監視に従って攻撃320を検出する。実行が310で継続している間、コレクタエンジン330は、プログラム300に関する情報を収集する。例えば、コレクタエンジン330は、少なくとも1つのアプローチにおいて、プログラム識別子、プログラムの状態、関連するメモリのメモリ状態、アクティブなファイルの記述子、現在のネットワーク通信などを収集する。コレクタエンジン330は、レポート240に情報を集約し、また、プログラム識別子を依存関係リストエンジン340に渡す。依存関係リストエンジン340は、依存関係リスト350を作成するように機能し、依存関係リスト350は、代替的に、プログラム300のグラフの形態を取り得る。依存関係リスト350は、プログラム300に関連付けられた車両100の要素を識別する。従って、依存関係リスト350は、共有ライブラリ、プログラムに関連するハードウェア要素、共有メモリアドレス、プログラム300の特権レベルなどを含む、プログラム300と相互作用する他のプログラム/プロセスを含むことができる。概して、依存関係リストエンジン340は、車両100のどの側面が攻撃による問題に遭遇する可能性があるかを示すことにより、攻撃の全体的な影響又は可能性の決定を容易にするために、依存関係リスト350を生成して、プログラム300のシステム全体の関係を識別する。
【0029】
いずれの場合でも、依存関係リストエンジン340はさらに、依存関係リスト350をリスクスコアエンジン360に提供する。リスクスコアエンジン360は、リスクスコア370を生成するように機能する。1つの構成では、リスクスコアエンジン360は、リスクランクデータベース260内の既知の攻撃に関する情報にアクセスする。前述のように、リスクランクデータベース260は、制御モジュール220が攻撃の発生を識別するために使用することができる既知の攻撃の特徴を含む。さらに、リスクランクデータベース260は、既知の攻撃のリスク評価又は影響も含む。このように、リスクランクデータベース260は、攻撃によって影響を受けるシステム、攻撃がシステムにどのように影響するかなど、攻撃に伴う既知の問題を含むことができる。この情報から、リスクスコアエンジン360は、リスクスコア370を生成する。例えば、1つのアプローチでは、リスクスコアエンジン360は、一連のルールを使用して、特定の攻撃に関連するリスクスコア370を決定する。ルールは、攻撃の様々な態様を、プログラムの特性及び依存関係リスト350からの依存関係との関係に関連付けることができる。1つのアプローチでは、リスクスコアエンジン360は、攻撃に関連するリスクランクデータベース260からの定義された数値リスク(例えば、0~100)を使用し、プログラム300の特性(例えば、特権レベルなど)及び依存関係リスト(関連するプログラム/要素の重要度、関連するプロセスの特権レベルなど)に従って定義されるリスクを推定する。
【0030】
1つのアプローチでは、リスクスコアエンジン360は、関連する要素の関連リスクを、プログラム300の攻撃によるリスクと、関係の程度、プログラム300の特性などの様々な要因に依存し得る加重合計に従って結合する。さらなる例として、リスクスコアエンジン360は、メモリ破損の問題、情報漏えい、プログラムのサイズ/コードの行数などの知識に基づいてリスクスコア370を決定しても良く、最終的なリスクスコア370を決定する際に異なる重みを用いることができる。リスクスコア370自体は、数値(例えば、0~100)、コード化されたリスクカテゴリ(例えば、リスクA、B、C、Dなど)、バイナリでの決定(例えば、リスクがあるかどうか)など、特定の実施例に従って異なる形式を取ることができる。このようにして、制御モジュール220は、攻撃に関連するリスクの程度を評価することができる。
【0031】
次いで、制御モジュール220は、リスクスコア370を使用して、攻撃に対する対応を提供する。1つのアプローチでは、レポートエンジン380は、プログラム300のリスクスコア370及び依存関係リスト350をレポート240に集約して、攻撃320の全体的な評価を提供する。次に、レポートエンジン380は、車両100の製造業者に関連するオペレーションセンター(すなわち、セキュリティオペレーションセンター)にレポート240を提供することができる。すると、オペレーションセンター390は、攻撃を阻止し、及び/又は攻撃の拡散を防止するために、1台以上の車両の制御モジュール220に、リスクスコア370に従って1つ以上のアクションを実行させることができる。さらに別の構成では、制御モジュール220は、リスクスコア370に従って対応を決定し、実行する。例えば、制御モジュール220は、1つ以上のアプローチにおいて、車両100への接続を解除する、車両100内の1つ以上のシステム(例えば、脅威に晒されているコンポーネントと、そのコンポーネントに関連するコンポーネントの少なくとも1つなど)の機能を低下させる(例えば、機能の実行を制限又は監視する)、ユーザ(例えば、運転者/所有者)に警告する、ランダム化されたオフセットでメモリを再初期化する、個人識別情報(PII)及び/又は他の機密情報(例えば、暗号化キーなど)を消去する、車両100の運転を防止するなどによって、攻撃320に対応する。このようにして、セキュリティシステム170は、車両システムに対する悪意のある攻撃の検出及び応答を改善することができる。
【0032】
アクティブな脅威監視を使用して悪意のある攻撃から車両の電子システムを保護する追加の態様が、
図4に関連して説明される。
図4は、車両システムに対する脅威をアクティブに監視して、対応することに関連する方法400を示す。方法400は、
図1のセキュリティシステム170の観点から説明される。方法400はセキュリティシステム170と組み合わせて説明されるが、方法400はセキュリティシステム170で実施されることに限定されず、方法400を実施できるシステムの一例にすぎないことを理解されたい。
【0033】
410で、制御モジュール220は、現在、攻撃が発生しているかどうかを決定する。1つの構成では、制御モジュール220は、車両100の様々なシステムを監視して、脅威に晒されているコンポーネントへの攻撃を検出する。概して、セキュリティシステム170は、車両100内に組み込まれて、その中の様々な電子コンピュータシステムを監視することを理解されたい。従って、制御モジュール220は、監視を実行するために様々な技術を駆使することができ、これには、通信を傍受することによって様々なシステムを受動的に観察すること、もしくは、車両100内の電子制御装置(ECU)、インストルメンテーション、データネットワークなどから情報(例えば、ログに記録されたテレマティクスデータ)を獲得することが含まれる。それに応じて、制御モジュール220は、利用可能な情報を分析して、脅威に晒されているコンポーネントの動作における異常を検出し、脅威にさらされたコンポーネントに関連する攻撃の特徴そのものを識別する。前述のように、異常には、通信パケットの頻度の変化、ECUが通常はそのECUに関連付けられていないメッセージを送信すること、制御フローの整合性の異常、プロセスが通常は相互作用しないコンポーネントと相互作用することなどが含まれる。いくつかの例が列挙されているが、この列挙はすべてを網羅することを意図したものではなく、考えられる異常のいくつかの例の単なる例示であることを理解されたい。
【0034】
420で、制御モジュール220は、脅威に晒されているコンポーネントに関する情報を収集する。脅威に晒されているコンポーネントは、選択的に、メモリなど、ハードウェア要素又はハードウェア内の情報でありえるが、最初の態様として、脅威に晒されているコンポーネントは、概して、車両100のシステム内で実行されているプロセス/プログラムであるとみなす。いずれにせよ、制御モジュール220は、プログラム識別子、現在の実行ポイントに関連付けられた制御フローマーカー、メモリスタックの状態、通信にフラグが立てられた理由に関するインジケータなどを決定することによって、コンポーネントに関する情報を収集する。制御モジュール220は、その後のリスク評価を容易にするために、プログラムの現在の状態及び関連するコンポーネント/実行状態に関して利用可能な情報を収集する。
【0035】
430で、制御モジュール220は依存関係リストを生成する。1つの構成では、制御モジュール220は、脅威にさらされたコンポーネントと、脅威にさらされたコンポーネントがリンクを有する、関係を有する、又は相互作用する可能性がある関連コンポーネントとの間の関係を識別するために、依存関係リストを生成する。例えば、関連するコンポーネントには、他の関連するプロセス、依存/共有メモリアドレス、共通のハードウェアコンポーネントなどが含まれ得る。制御モジュール220は、依存関係リスト内の要素を識別して、脅威にさらされたコンポーネントが故障した場合に関連するコンポーネントも故障するか、さもなければ危機に陥る可能性があるため、脅威にさらされたコンポーネントが危機に陥った場合の潜在的な影響についての認識を提供する。それに応じて、制御モジュール220は、1つの構成では、脅威にさらされたコンポーネントの制御フローを追跡することによって、車両100の脅威にさらされたコンポーネントとそれに依存する側面との関係をマッピングする。制御フローは、プロセス間の共有データなど、コンポーネント間の相互作用を明らかにする。さらに別の例では、制御モジュール220は、製造業者によって提供されるか、又は定期的に生成され得る、車両100のシステムの依存関係の事前設定されたリストを使用する。そのような場合、制御モジュール220は代わりに、事前設定されたリストを解析して、攻撃を受けているプログラムのコンポーネントの関係を決定することができる。
【0036】
440で、制御モジュール220は、攻撃のリスクスコアを決定する。1つの構成では、制御モジュール220は、攻撃に関連するリスクレベル、脅威に晒されているコンポーネントのリスクタイプ、関連するコンポーネントが危機に陥ることに関連する複合リスクなど、攻撃及び関連するコンポーネントに関するさまざまな情報を考慮する。例えば、制御モジュール220は、既知の脅威の特徴を示すリスクランクデータベース260内で攻撃を識別することによって、リスクレベルを決定する。さらに、リスクタイプは、脅威にさらされるコンポーネントの特権レベル、脅威にさらされるコンポーネントの機能(例えば、機能安全、ISO21434によって定義される重要性など)などに関連し得る。最後に、制御モジュール220は、依存関係リストに従って、影響を受ける車両100の他のコンポーネントに関連する複合リスク又は依存関係リスクを考慮する。すなわち、依存関係リストは、車両100の他の関連するコンポーネントに対する、攻撃の影響及び脅威にさらされたコンポーネントの潜在的な障害の影響を知らせる。
【0037】
そして、制御モジュール220は、実施例に応じて異なる方法で、記録された情報からリスクスコアを生成することができる。1つのアプローチとして、制御モジュール220は、識別されたリスク(例えば、脅威に晒されているコンポーネントに対するリスク、依存関係に対するリスク、など)の加重平均に従ってリスクスコアを決定する。あるいは、制御モジュール220は、いずれかの要素に対して識別された最大のリスクに従ってリスクスコアを割り当てることができる。いずれにせよ、リスクスコアの決定には、様々な要素のリスクの評価が含まれる。リスクには、一般的に、脅威に晒されているコンポーネントの重要性、メモリの共有、特権レベル、公にされる可能性のある情報の機密性などが含まれる。
【0038】
450で、制御モジュール220は、攻撃の特徴を示すレポート240を生成する。1つの構成では、制御モジュール220は、収集され評価された情報を集約し、それらの情報を組み合わせてレポート240を作る。レポートには、脅威に晒されているコンポーネントの識別子、メモリスタックの現在の状態を含む攻撃の特徴、及び依存関係リストが含まれ得る。そして、レポート240は、例えばオフラインコンポーネント(例えば、ヒューリスティック、機械学習アルゴリズムなど)又はリモートオペレーションセンターによって攻撃をさらに分析できるように、発生を定量化し、ログとして又は直接通信として情報を提供するために、攻撃を特徴付ける。
【0039】
460で、制御モジュール220は、リスクスコア及び/又は他の収集された情報を含む、攻撃に関する情報を明示するレポートを提供する。少なくとも1つのアプローチでは、制御モジュール220は、レポート240を提供することの一部として、攻撃に対する自動化された対応を生成する。例えば、制御モジュール220は、攻撃が、例えば脅威の即時性のために直接的な対応を獲得する特定の脅威レベルのものである場合を識別する対応閾値をリスクスコアが満たすかどうかに従って、自動化された対応を選択的に生成することができる。制御モジュール220はまた、前述のリスクスコアレベルなど、他の条件とは無関係である、時間ベースの閾値に従って自動化された対応を生成しても良い。このように、制御モジュール220は、例えば、リスクスコアが応答閾値を満たさない限り、レポート240を通信せず、代わりに、定義された時間間隔でのその後のアップロードのためにレポート240を保持しても良い。
【0040】
しかしながら、リスクスコアが満たす(例えば、超える)場合、制御モジュール220は、様々な自動化された対応を実行することができ、1つの構成では、様々な値の間でのリスクスコアの上昇に従ってそうしても良い。例えば、制御モジュール220は、レポート240を評価して、特定の対応を決定することができるセキュリティオペレーションセンターにレポート240を単に通信しても良い。別のシナリオでは、制御モジュール220は、例えば、車両内のシステムのモードを、様々なシステムのアクセス可能性及び機能性を制限する「セーフモード」に変更する、様々なシステムから接続性(すなわち、無線通信リンク)を除去する、ユーザに警告する、メモリの情報をクリアする、ランダムなオフセットでメモリを再初期化する、などの1つ以上を実行することによって、攻撃に直接的に対抗する対応を実行する。このようにして、セキュリティシステム170は、車両システムに対する悪意のある攻撃の検出及び対応を改善することができる。
【0041】
さらに、
図1のセキュリティシステム170は、別個の集積回路及び/又は電子チップを用いて様々な配置で構成できることを理解されたい。そのような実施形態では、制御モジュール220は、別個の集積回路として具現化することができる。回路は、接続パスを介して接続され、別個の回路間で信号を通信する。もちろん、別個の集積回路が議論されているが、様々な実施形態において、回路は共通の集積回路及び/又は集積回路基板に統合されてもよい。さらに、集積回路は、より少ない集積回路に組み合わされても良いし、より多くの集積回路に分割されてもよい。別の実施形態では、モジュール220に関連する機能の一部は、プロセッサによって実行可能であり、非一時的メモリに格納されるファームウェアとして具現化されても良い。さらに別の実施形態では、モジュール220は、プロセッサ110のハードウェアコンポーネントとして統合される。
【0042】
別の実施形態では、説明された方法、及び/又は、それらの等価物は、コンピュータ実行可能命令で実装されてもよい。従って、一実施形態では、非一時的コンピュータ可読媒体は、機械(例えば、プロセッサ、コンピュータなど)によって実行されるとき、機械(及び/又は関連するコンポーネント)に方法を実行させる、格納されたコンピュータ実行可能命令を備えて構成される。
【0043】
説明を簡単にするために、図に示されている方法論は一連のブロックとして示され説明されているが、いくつかのブロックは図示及び説明されたものから異なる順序で、及び/又は、他のブロックと同時に実行することができるので、方法論はブロックの順序によって制限されないことが理解されるべきである。さらに、例示されたすべてのブロックよりも少ないブロックを使用して、例示的な方法論を実施してもよい。ブロックは、組み合わされても良いし、複数のコンポーネントに分離されても良い。さらに、追加及び/又は代替の方法論は、図示されていない追加のブロックを使用することができる。
【0044】
ここで、本明細書で開示されるシステム及び方法が動作することができる例示的な環境について、
図1で詳細に説明する。場合によっては、車両100は、自律モード、1つ以上の半自律動作モード、及び/又は手動モードの間で選択的に切り替えられるように構成される。このような切り替えは、適切な方法で実施することができる。「手動モード」とは、車両の航行及び/又は操縦のすべて又は大部分が、ユーザ(例えば、人間のドライバ)から受けた入力に従って実行されることを意味する。
【0045】
1つ以上の実施形態において、車両100は自律車両である。本明細書で使用される「自律車両」は、自律モードで動作する車両を指す。「自律モード」は、人間のドライバからの最小限の入力で、又は入力なしで、車両100を制御する1つ以上のコンピューティングシステムを使用して、移動経路に沿って車両100を航行及び/又は操縦することを指す。1つ以上の実施形態において、車両100は完全に自動化される。1つの実施形態では、車両100は、1つ以上のコンピューティングシステムが移動経路に沿った車両100の航行及び/又は操縦の一部を実行し、車両運転者(すなわち、ドライバ)が移動経路に沿った車両100の航行及び/又は操縦の一部を実行するための入力を車両に提供する、1つ以上の半自律動作モードを備えて構成される。そのような半自律動作は、車両100が定義された状態制約内に留まることを確実にするために、セキュリティシステム170によって実施されるような監視制御を含むことができる。
【0046】
車両100は、1つ以上のプロセッサ110を含むことができる。1つ以上の構成では、プロセッサ110は、車両100のメインプロセッサであり得る。例えば、プロセッサ110は、電子制御ユニット(ECU)であり得る。車両100は、1つ以上のタイプのデータを格納するための1つ以上のデータストア115(例えば、データストア230)を含むことができる。データストア115は、揮発性及び/又は不揮発性メモリを含むことができる。適切なデータストア115の例には、RAM(ランダムアクセスメモリ)、フラッシュメモリ、ROM(リードオンリーメモリ)、PROM(プログラマブルリードオンリーメモリ)、EPROM(消去可能プログラマブルリードオンリーメモリ)、EEPROM(電気的消去可能プログラマブルリードオンリーメモリ)、レジスタ、磁気ディスク、光ディスク、ハードドライブ、その他の適切な記憶媒体、又はそれらの任意の組み合わせが含まれる。データストア115は、プロセッサ110のコンポーネントとすることができ、又はデータストア115は、使用のためプロセッサ110に動作可能に接続することができる。この説明全体を通して使用される「動作可能に接続される」又は「通信可能に接続される」という用語は、直接的な物理的接触のない接続を含む、直接又は間接の接続を含み得る。
【0047】
1つ以上の構成では、1つ以上のデータストア115は地図データを含むことができる。地図データには、1つ以上の地理的領域の地図を含めることができる。場合によっては、地図データは、1つ以上の地理的領域における、道路、交通管制装置、道路標示、構造物、特徴、及び/又はランドマークに関する情報(例えば、メタデータ、ラベルなど)を含むことができる。場合によっては、地図データに航空/衛星ビューを含めることができる。場合によっては、地図データに、360度の地上ビューを含む、領域の地上ビューを含めることができる。地図データは、測定値、寸法、距離、及び/又は地図データに含まれる1つ以上のアイテムの情報、及び/又は地図データに含まれる他のアイテムに関連する情報を含むことができる。地図データには、道路の形状に関する情報を含むデジタル地図を含めることができる。地図データは、建物、縁石、電柱などの相対的な位置に関する情報など、特徴ベースの地図データをさらに含むことができる。1つ以上の構成では、地図データは1つ以上の地形図を含むことができる。
【0048】
1つ以上のデータストア115は、センサデータを含むことができる。この文脈において、「センサデータ」とは、車両100が装備しているセンサからの、当該センサに関する能力及びその他の情報を含む任意の情報を意味する。
【0049】
前述したように、車両100はセンサシステム120を含むことができる。センサシステム120は、1つ以上のセンサを含むことができる。「センサ」とは、何かを検出、認識、及び/又は感知することができる任意のデバイス、コンポーネント、及び/又はシステムを意味する。1つ以上のセンサは、リアルタイムで動作するように構成することができる。本明細書で使用される「リアルタイム」という用語は、特定のプロセス又は決定が行われるのに十分に即時であるとユーザ又はシステムが感じる、又はプロセッサが何らかの外部プロセスに追いつくことができる処理応答性のレベルを意味する。
【0050】
センサシステム120が複数のセンサを含む構成では、センサは互いに独立して機能することができる。あるいは、2つ以上のセンサが相互に組み合わされて機能することができる。このような場合、2つ以上のセンサがセンサネットワークを形成することができる。センサシステム120及び/又は1つ以上のセンサは、プロセッサ110、データストア115、及び/又は車両100の別の要素(
図1に示す要素のいずれかを含む)に動作可能に接続することができる。センサシステム120は、車両100の外部環境の少なくとも一部のデータを取得することができる。
【0051】
センサシステム120は、任意の適切なタイプのセンサを含むことができる。本明細書では、異なるタイプのセンサの様々な例について説明する。しかしながら、実施形態は、記載された特定のセンサに限定されないことが理解されよう。センサシステム120は、1つ以上の車両センサ121を含むことができる。車両センサ121は、車両100自体又は車両100の内部乗員室に関する情報を検出、決定、及び/又は感知することができる。1つ以上の構成において、車両センサ121は、例えば慣性加速度に基づいて、車両100の位置及び向きの変化を検出及び/又は感知するように構成することができる。1つ以上の構成において、車両センサ121は、1つ以上の加速度計、1つ以上のジャイロスコープ、慣性測定ユニット(IMU)、推測航法システム、全地球航法衛星システム(GNSS)、グローバル測位システム(GPS)、ナビゲーションシステム、及び/又はその他の適切なセンサを含むことができる。車両センサ121は、車両100の1つ以上の特性を検出及び/又は感知するように構成することができる。1つ以上の構成において、車両センサ121は、車両100の現在の速度を決定するための速度計を含むことができる。さらに、センサシステム120は、シート内の圧力/重量センサ、シートベルトセンサ、カメラなどの乗員室全体に及ぶセンサを含むことができる。
【0052】
代替的又は追加的に、センサシステム120は、運転環境データを取得及び/又は感知するように構成された1つ以上の環境センサ122を含むことができる。「運転環境データ」は、自律車両が位置する外部環境、又はその1つ以上の部分に関するデータ又は情報を含む。例えば、1つ以上の環境センサ122は、車両100の外部環境の少なくとも一部における障害物及び/又はそのような障害物に関する情報/データを検出及び/又は感知するように構成することができる。このような障害物は、静止物体及び/又は動的物体であり得る。1つ以上の環境センサ122は、例えば、レーンマーク、標識、信号機、交通標識、車線、横断歩道、車両100近傍の縁石、道路外物体など、車両100の外部環境における他のものを検出及び/又は感知するように構成され得る。
【0053】
センサシステム120のセンサの様々な例が、本明細書で説明される。例示的なセンサは、1つ以上の環境センサ122及び/又は1つ以上の車両センサ121の一部であっても良い。しかしながら、実施形態は、記載された特定のセンサに限定されないことが理解されよう。一例として、1つ以上の構成において、センサシステム120は、1つ以上のレーダセンサ、1つ以上のLIDARセンサ、1つ以上のソナーセンサ、及び/又は1つ以上のカメラを含むことができる。1つ以上の構成において、1つ以上のカメラは、高ダイナミックレンジ(HDR)カメラ又は赤外線(IR)カメラであり得る。
【0054】
車両100は、入力システム130を含むことができる。「入力システム」は、限定するものではないが、情報/データを機械に入力できるようにするデバイス、コンポーネント、システム、要素、又はそれらの取り合わせ又はグループを含む。入力システム130は、車両の乗員(例えば、運転者又は同乗者)からの入力を受け取ることができる。車両100は、出力システム140を含むことができる。「出力システム」は、情報/データを車両の乗員(例えば、人、車両の同乗者など)に提示できるようにする任意のデバイス、コンポーネント、又はそれらの取り合わせ又はグループを含む。
【0055】
車両100は、1つ以上の車両システム150を含むことができる。1つ以上の車両システム150の様々な例は
図1に示されているが、車両100は、与えられた例に示されるものとは異なるシステムの組み合わせを含むことができる。1つの例では、車両100は、推進システム、ブレーキシステム、ステアリングシステム、スロットルシステム、トランスミッションシステム、信号システム、ナビゲーションシステムなどを含むことができる。前述のシステムは、1つ以上のデバイス、コンポーネント、及び/又はそれらの組み合わせを別々に又は組み合わせて含むことができる。
【0056】
例として、ナビゲーションシステムは、車両100の地理的位置を決定し、及び/又は車両100の走行経路を決定するように構成された、1つ以上のデバイス、アプリケーション、及び/又はそれらの組み合わせを含むことができる。ナビゲーションシステムは、車両100の走行経路を決定するための1つ以上のマッピングアプリケーションを含むことができる。ナビゲーションシステムは、グローバルポジショニングシステム、ローカルポジショニングシステム、又はジオロケーションシステムを含むことができる。
【0057】
プロセッサ110、セキュリティシステム170、及び/又は支援システム160は、様々な車両システム150及び/又はその個々のコンポーネントと通信するように動作可能に接続することができる。例えば、
図1に戻ると、プロセッサ110、セキュリティシステム170、及び/又は、支援システム160は、車両100の動き、速度、操縦、進路、方向などを制御するために、様々な車両システム150と情報を送信及び/又は受信するように通信することができる。プロセッサ110、セキュリティシステム170、及び/又は支援システム160は、これら車両システム150の一部又はすべてを制御することができ、従って、部分的又は完全に自律的であり得る。
【0058】
プロセッサ110、セキュリティシステム170、及び/又は支援システム160は、1つ以上の車両システム150及び/又はそれらのコンポーネントを制御することによって、車両100の航行及び/又は操縦を制御するように動作可能であり得る。例えば、自律モードで動作する場合、プロセッサ110、セキュリティシステム170、及び/又は支援システム160は、車両100の方向及び/又は速度を制御することができる。プロセッサ110、セキュリティシステム170、及び/又は支援システム160は、車両100を加速させ(例えば、エンジンに与えられるエネルギーの供給を増加させることによって)、減速させ(例えば、エンジンへのエネルギーの供給を減少させる、及び/又はブレーキをかけることによって)、及び/又は、方向を変えさせる(例えば、前輪2輪を回すことによって)ことができる。
【0059】
さらに、セキュリティシステム170及び/又は支援システム160は、さまざまな運転関連タスクを実行するように機能することができる。車両100は、1つ以上のアクチュエータを含むことができる。アクチュエータは、プロセッサ110及び/又は支援システム160からの信号又は他の入力の受信に応答して、1つ以上の車両システム又はそのコンポーネントを修正、調整、及び/又は変更するように動作可能な任意の要素又は要素の組み合わせとすることができる。任意の適切なアクチュエータが使用され得る。例えば、1つ以上のアクチュエータは、いくつかの可能性を挙げると、モータ、空気圧アクチュエータ、油圧ピストン、リレー、ソレノイド、及び/又は圧電アクチュエータを含むことができる。
【0060】
車両100は、1つ以上のモジュールを含むことができ、そのうちの少なくともいくつかは本明細書に記載されている。モジュールは、プロセッサ110による実行時に、本明細書に記載された様々なプロセスのうちの1つ以上を実行するコンピュータ可読プログラムコードとして実装することができる。1つ以上のモジュールは、プロセッサ110のコンポーネントとすることができ、又は1つ以上のモジュールは、プロセッサ110が動作可能に接続されている他の処理システム上で実行及び/又は他の処理システム間で分散することができる。モジュールは、1つ以上のプロセッサ110によって実行可能な命令(例えば、プログラムロジック)を含むことができる。代替的に、あるいは追加して、1つ以上のデータストア115が、そのような命令を含むことができる。
【0061】
1つ以上の構成において、本明細書に記載の1つ以上のモジュールは、人工又は計算知能要素、例えばニューラルネットワーク、ファジーロジック、又は他の機械学習アルゴリズムを含むことができる。さらに、1つ以上の構成において、1つ以上のモジュールが、本明細書で説明される複数のモジュールに分散されることができる。1つ以上の構成では、本明細書に記載のモジュールのうちの2つ以上を組み合わせて単一のモジュールにすることができる。
【0062】
車両100は、支援システム160を形成する1つ以上のモジュールを含むことができる。支援システム160は、センサシステム120から、及び/又は、車両100及び/又は車両100の外部環境に関する情報を取得できる任意の他のタイプのシステムから、データを受信するように構成することができる。1つ以上の構成では、支援システム160は、そのようなデータを使用して、1つ以上の運転シーンモデルを生成することができる。支援システム160は、車両100の位置及び速度を決定することができる。支援システム160は、障害物、又は、交通標識、樹木、低木、近隣車両、歩行者などを含む他の環境的特徴の位置を決定することができる。
【0063】
支援システム160は、プロセッサ110、及び/又は本明細書に記載の1つ以上のモジュールによる使用のため、車両100の外部環境内の障害物の位置情報を受信及び/又は決定するように構成され、車両100の位置及び向き、複数の衛星からの信号に基づくグローバル座標における車両位置、又は、車両100の現在の状態を決定するために又は地図を作成するか、地図データに関して車両100の位置を決定するかのいずれかでの使用のため環境に対する車両100の位置を決定するために使用され得る任意の他のデータ及び/又は信号を推定する。
【0064】
支援システム160は、センサシステム120によって取得されたデータ、運転シーンモデル、及び/又は任意の他の適切なソースからのデータに基づいて、移動経路、車両100の現在の自律運転操作、将来の自律運転操作、及び/又は現在の自律運転操作に対する修正を決定するように構成することができる。「運転操作」とは、車両の動きに影響を与える1つ以上のアクションを意味する。運転操作の例には、いくつかの可能性を挙げると、加速、減速、ブレーキ、旋回、車両100の横方向への移動、走行車線の変更、走行車線への合流、及び/又は後退が含まれる。支援システム160は、決定された運転操作を実施するように構成することができる。支援システム160は、直接的又は間接的に、そのような自律運転操作を実行させることができる。本明細書で使用される場合、「させる」又は「させている」は、直接的又は間接的に、イベント又はアクションが発生するように又は少なくともそのようなイベント又はアクションが発生し得る状態となるようにする、命令する、指示する、及び/又は可能にすることを意味する。支援システム160は、様々な車両機能を実行し、及び/又は車両100又はその1つ以上のシステム(例えば、車両システム150の1つ以上)にデータを送信し、それらからデータを受信し、それらと相互作用し、及び/又はそれらを制御するように構成することができる。
【0065】
詳細な実施形態が本明細書に開示される。しかしながら、開示された実施形態は、例としてのみ意図されていることを理解されたい。従って、本明細書に開示される特定の構造的及び機能的詳細は、限定するものとして解釈されるべきではなく、単に請求項の基礎として、及び、実質的に任意の適切な詳細な構造で本明細書の態様を様々に使用することを当業者に教示するための代表的な基礎としてのみ解釈されるべきである。さらに、本明細書で使用される用語及び語句は、限定することを意図するものではなく、むしろ可能な実施形態の理解可能な説明を提供することを意図している。様々な実施形態が
図1~
図4に示されているが、実施形態は、図示された構造又は用途に限定されない。
【0066】
図中のフローチャート及びブロック図は、様々な実施形態による、システム、方法、及びコンピュータプログラム製品の可能な実施形態のアーキテクチャ、機能、及び動作を示している。これに関して、フローチャート又はブロック図の各ブロックは、特定される論理機能を実行するための1つ以上の実行可能な命令を含むモジュール、セグメント、又はコードの一部を表すことができる。また、一部の代替実施形態では、ブロックに記載されている機能が、図に記載されている順序とは異なる順序で発生する場合があることにも注意されたい。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行されても良いし、関係する機能に応じて、時には、ブロックが逆の順序で実行されても良い。
【0067】
上記のシステム、コンポーネント、及び/又はプロセスは、ハードウェア又はハードウェアとソフトウェアの組み合わせで実現でき、1つの処理システムにおいて集中方式によって、又は、様々な要素が相互接続されたいくつかの処理システムに分散している分散方式によって実現することができる。本明細書に記載の方法を実行するように適合された任意の種類の処理システム又は別の装置が適している。ハードウェアとソフトウェアの組み合わせが、コンピュータで使用可能なプログラムコードを備えた処理システムであり、読み込まれて実行されるとき、本明細書で説明する方法を実行するように処理システムを制御する。システム、コンポーネント、及び/又はプロセスはまた、コンピュータプログラム製品又は他のデータプログラム記憶装置などのコンピュータ読み取り可能ストレージに埋め込まれ、機械によって読み取り可能であり、本明細書に記載された方法及びプロセスを実行するために機械によって実行可能な命令のプログラムを実体的に具現化することができる。これらの要素は、本明細書に記載の方法の実施を可能にする全ての特徴を備え、処理システムにロードされたときにこれらの方法を実行できるアプリケーション製品に組み込むこともできる。
【0068】
さらに、本明細書で説明された構成は、例えば記憶されて、具現化されるコンピュータ可読プログラムコードを有する1つ以上のコンピュータ可読媒体に具現化されるコンピュータプログラム製品の形をとることができる。1つ以上のコンピュータ可読媒体の任意の組み合わせが利用されてもよい。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体であり得る。「コンピュータ可読記憶媒体」との語句は、非一時的な記憶媒体を意味する。コンピュータ可読媒体は、限定されるものではないが、不揮発性媒体及び揮発性媒体を含む、形態をとることができる。不揮発性媒体には、例えば、光ディスク、磁気ディスクなどが含まれ得る。揮発性媒体には、例えば、半導体メモリ、ダイナミックメモリなどが含まれ得る。このようなコンピュータ可読媒体の例には、限定されるものではないが、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、ASIC、CD、他の光学媒体、RAM、ROM、メモリチップ又はカード、メモリスティック、及びコンピュータ、プロセッサ、又は他の電子デバイスが読み取ることが可能な他の媒体が含まれる。本明細書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、又はデバイスによる使用のための、又はそれと接続された、プログラムを含むことができる又は格納できる任意の有形の媒体であっても良い。
【0069】
以下は、本明細書で使用される選択された用語の定義を含む。定義は、用語の範囲内にあり、様々な実施形態に使用できる様々な例及び/又はコンポーネントの形式を含む。例は、限定することを意図していない。用語の単数形と複数形の両方が定義内に含まれ得る。
【0070】
「1つの実施形態」、「一実施形態」、「1つの例」、「一例」などへの言及は、そのように記載された実施形態又は例が、特定の特徴、構造、特性、性質、要素、又は制限を含み得ることを示すが、すべての実施形態又は例が、必ずしも、その特定の特徴、構造、特性、性質、要素、又は制限を含むわけではないことを示す。さらに、「1つの実施形態では」という語句の繰り返しの使用は、同じ実施形態を指す場合もあるが、必ずしもそうとは限らない。
【0071】
本明細書で使用される「モジュール」は、機能又はアクションを実行するように構成された、及び/又は、別のロジック、方法、及び/又はシステムから機能又はアクションを発揮させるように構成された、コンピュータ又は電気ハードウェアコンポーネント、ファームウェア、命令を格納する非一時的コンピュータ可読媒体、及び/又は、これらのコンポーネントの組み合わせを含む。モジュールは、アルゴリズムによって制御されるマイクロプロセッサ、ディスクリート論理回路(例えば、ASIC)、アナログ回路、デジタル回路、プログラムされた論理デバイス、実行時にアルゴリズムを実行する命令を含むメモリデバイスなどを含むことができる。モジュールは、1つ以上の実施形態では、1つ以上のCMOSゲート、ゲートの組み合わせ、又は他の回路コンポーネントを含む。複数のモジュールが説明される場合、1つ以上の実施形態では、複数のモジュールを1つの物理的なモジュールコンポーネントに組み込むことを含む。同様に、単一のモジュールが説明される場合、1つ以上の実施形態では、複数の物理的なコンポーネント間に、単一のモジュールを分散させることを含む。
【0072】
さらに、本明細書で使用されるモジュールは、特定のタスクを実行する、又は、特定のデータ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらなる態様では、メモリは、一般に、記載されたモジュールを格納する。モジュールに関連付けられたメモリは、プロセッサ、RAM、ROM、フラッシュメモリ、又は、別の適切な電子記憶媒体内に埋め込まれたバッファ又はキャッシュであっても良い。さらに別の態様では、本開示によって想定されるモジュールは、特定用途向け集積回路(ASIC)、システムオンチップ(SoC)のハードウェアコンポーネント、プログラマブルロジックアレイ(PLA)、又は開示された機能を実行するための定義された構成セット(例えば、命令)が組み込まれた別の適切なハードウェアコンポーネントとして実現される。
【0073】
1つ以上の構成において、本明細書で説明する1つ以上のモジュールは、人工又は計算知能要素、例えば、ニューラルネットワーク、ファジー論理、又は他の機械学習アルゴリズムを含むことができる。さらに、1つ以上の構成では、1つ以上のモジュールは、本明細書で説明する複数のモジュールに分散させることができる。1つ以上の構成において、本明細書に記載の2つ以上のモジュールは単一のモジュールに組み合わせることができる。
【0074】
コンピュータ可読媒体に具現化されるプログラムコードは、無線、有線、光ファイバ、ケーブル、RFなど、又は、前述の任意の適切な組み合わせを含むが、これらに限定されない任意の適切な媒体を使用して送信され得る。本構成の態様の動作を実行するためのコンピュータプログラムコードは、Java(登録商標)、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び、Cプログラミング言語又は同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述することができる。プログラムコードは、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、あるいは、一部をユーザのコンピュータ上でかつ一部をリモートコンピュータ上で、もしくは、完全にリモートコンピュータ又はサーバ上で実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されても良く、又は、その接続が外部コンピュータ(例えば、インターネットサービスプロバイダを使用してインターネットを介して)になされても良い。
【0075】
本明細書で使用される要素の数は、1つ、又は、2つ以上として定義される。本明細書で使用される「複数」という用語は、2つ、又は、3つ以上として定義される。本明細書で使用される「別の」という用語は、少なくとも2番目、又は、それ以上として定義される。本明細書で使用される「含む」、及び/又は、「有する」という用語は、「備える」を意味し、すなわち、他の要素の存在を許容する用語として定義される。本明細書で使用される「・・・と・・・との少なくとも1つ」という表現は、関連付けて列挙された項目の1つ、又は、複数のありとあらゆる可能な組み合わせを指し、それらを包含する。一例として、「A、B、及び、Cのうちの少なくとも1つ」という表現は、Aのみ、Bのみ、Cのみ、又はそれらの任意の組み合わせ(例えば、AB、AC、BC、又は、ABC)を含む。
【0076】
本明細書の態様は、その主旨又は本質的な特質から逸脱することなく、他の形態で具現化することができる。従って、本明細書の範囲を示すものとして、前述した明細書ではなく、以下の特許請求の範囲を参照すべきである。
【符号の説明】
【0077】
100:車両、110:プロセッサ、115:データストア、120:センサシステム、121:車両センサ、122:環境センサ、130:入力システム、140:出力システム、150:車両システム、160:支援システム、170:セキュリティシステム、210:メモリ、220:制御モジュール、230:データストア、240:レポート、250:ポリシー、260:リスクランクデータベース、270:リスクデータベース、300:プログラム、320:攻撃、330:コレクタエンジン、340:依存関係リストエンジン、350:依存関係リスト、360:リスクスコアエンジン、370:リスクスコア、380:レポートエンジン、390:オペレーションセンター