IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トヨタ自動車株式会社の特許一覧

特許7622456車載情報処理装置、情報処理方法及びプログラム
<>
  • 特許-車載情報処理装置、情報処理方法及びプログラム 図1
  • 特許-車載情報処理装置、情報処理方法及びプログラム 図2
  • 特許-車載情報処理装置、情報処理方法及びプログラム 図3
  • 特許-車載情報処理装置、情報処理方法及びプログラム 図4
  • 特許-車載情報処理装置、情報処理方法及びプログラム 図5
  • 特許-車載情報処理装置、情報処理方法及びプログラム 図6
  • 特許-車載情報処理装置、情報処理方法及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-20
(45)【発行日】2025-01-28
(54)【発明の名称】車載情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
   G06F 21/62 20130101AFI20250121BHJP
   G06F 21/44 20130101ALI20250121BHJP
   G06F 9/455 20180101ALI20250121BHJP
【FI】
G06F21/62
G06F21/44
G06F9/455 150
【請求項の数】 9
(21)【出願番号】P 2021017750
(22)【出願日】2021-02-05
(65)【公開番号】P2022120689
(43)【公開日】2022-08-18
【審査請求日】2023-10-26
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】守谷 友和
【審査官】塩澤 如正
(56)【参考文献】
【文献】国際公開第2006/114878(WO,A1)
【文献】国際公開第2013/168461(WO,A1)
【文献】特開2001-337864(JP,A)
【文献】米国特許第11188376(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/44
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
ハイパーバイザー、前記ハイパーバイザー上で互いに独立して動作する第1オペレーションシステム及び第2オペレーションシステム並びに前記第1オペレーションシステム上で動作する少なくとも一つの第1アプリケーションがインストールされた車載情報処理装置であって、
前記第1アプリケーションが前記ハイパーバイザー及び前記第2オペレーションシステムを介してアクセス可能である複数種類のデータが記録された第1記録部と、
前記各第1アプリケーションと、前記各第1アプリケーションがアクセスを許可された前記データである許可データとの対応関係を規定した対応関係リストが記録された第2記録部と、
前記対応関係リストに基づいて、前記第1アプリケーションがアクセスを試みている前記データである対象データが前記許可データであるか否かを判定する判定部と、
前記判定部が前記対象データが前記許可データであると判定したときに、前記第1アプリケーションが前記対象データへアクセスすることを許可し、且つ、前記判定部が前記対象データが前記許可データでないと判定したときに、前記第1アプリケーションが前記対象データへアクセスすることを許可しないアクセス制御部と、
を備える車載情報処理装置。
【請求項2】
前記第1オペレーションシステム上で動作する第1ミドルウェアが、少なくとも1つのAPI(Application Programmable Interface)を実現し、
前記各第1アプリケーションが前記第1ミドルウェア上で動作し、
前記対応関係リストが、前記各第1アプリケーションと、前記各第1アプリケーションがアクセスを許可された前記APIであり且つ前記各第1アプリケーションがアクセスすることにより前記許可データを取得可能な許可APIとの対応関係を規定し、
前記判定部が、
前記第1アプリケーションが少なくとも1つの前記APIである対象APIにアクセスしたと判定したときに、前記対応関係リストに基づいて、前記対象APIが前記許可APIであるか否かを判定する、前記第1ミドルウェアによって実現される第1判定部を備え、
前記アクセス制御部が、
前記第1判定部によって前記許可APIへアクセスしたと判定された前記第1アプリケーションが、前記第1オペレーションシステム及び前記ハイパーバイザーを介して前記第2オペレーションシステムにアクセスすることを許可する、前記第1ミドルウェアによって実現される第1アクセス制御部を備える請求項1に記載の車載情報処理装置。
【請求項3】
前記第2オペレーションシステム上で動作する第2ミドルウェアが、少なくとも1つの前記APIを実現し、
前記判定部が、
前記第1判定部によって前記許可APIへアクセスしたと判定された前記第1アプリケーションがアクセスした前記対象APIが前記許可APIであるか否かを、前記対応関係リストに基づいて判定する、前記第2ミドルウェアによって実現される第2判定部を備え、
前記アクセス制御部が、
前記対象APIが前記許可APIであると前記第2判定部が判定したときに、前記第1アプリケーションが、前記許可データにアクセスすることを許可する、前記第2ミドルウェアによって実現される第2アクセス制御部を備える請求項2に記載の車載情報処理装置。
【請求項4】
前記第1アプリケーションによる前記許可APIへのアクセス頻度に関する条件である頻度条件を規定した頻度リストが記録された第3記録部を備え、
前記第2判定部が、前記第1アプリケーションによる前記許可APIへのアクセス頻度が前記頻度条件を満たさないと判定したときに、前記第1アプリケーションが前記許可データにアクセスすることを前記第2アクセス制御部が許可しない請求項3に記載の車載情報処理装置。
【請求項5】
前記許可APIではないと前記第2判定部によって判定された前記対象APIにアクセスした前記第1アプリケーションを前記車載情報処理装置からアンインストールする、前記第2ミドルウェアによって実現される異常時処理部を備える請求項3又は請求項4に記載の車載情報処理装置。
【請求項6】
前記第1記録部に記録された前記データが、前記ハイパーバイザー上で前記第1オペレーションシステム及び前記第2オペレーションシステムとは独立して動作する第3オペレーションシステム上で動作する少なくとも一つの第2アプリケーションによって取得されたデータである請求項3~5の何れか1項に記載の車載情報処理装置。
【請求項7】
少なくとも一つの前記第2アプリケーションが、前記車載情報処理装置が搭載された車両の走行、操舵及び制動の少なくとも一つに連動して変化する物理量に関するデータを取得する請求項6に記載の車載情報処理装置。
【請求項8】
ハイパーバイザー、前記ハイパーバイザー上で互いに独立して動作する第1オペレーションシステム及び第2オペレーションシステム並びに前記第1オペレーションシステム上で動作する少なくとも一つの第1アプリケーションがインストールされた車載情報処理装置が行う情報処理方法であって、
前記第1アプリケーションが前記ハイパーバイザー及び前記第2オペレーションシステムを介して複数種類のデータが記録された記録部へのアクセスを試みたときに、前記第1アプリケーションと、前記各第1アプリケーションがアクセスを許可された前記データである許可データとの対応関係を規定した対応関係リストに基づいて、前記第1アプリケーションがアクセスを試みている前記データである対象データが前記許可データであるか否かを判定するステップと、
前記対象データが前記許可データであると判定されたときに、前記第1アプリケーションが前記対象データへアクセスすることを許可し、且つ、前記対象データが前記許可データでないと判定されたときに、前記第1アプリケーションが前記対象データへアクセスすることを許可しないステップと、
を有する情報処理方法。
【請求項9】
ハイパーバイザー、
前記ハイパーバイザー上で互いに独立して動作する第1オペレーションシステム及び第2オペレーションシステム、並びに
複数種類のデータへ前記ハイパーバイザー及び前記第2オペレーションシステムを介してアクセス可能である、前記第1オペレーションシステム上で動作する少なくとも一つの第1アプリケーション、
を有し、
前記各第1アプリケーションと、前記各第1アプリケーションがアクセスを許可された前記データである許可データとの対応関係を規定した対応関係リストに基づいて、前記第1アプリケーションがアクセスを試みている前記データである対象データが前記許可データであるか否かを判定する処理と、
前記対象データが前記許可データであると判定されたときに、前記第1アプリケーションが前記対象データへアクセスすることを許可し、且つ、前記対象データが前記許可データでないと判定されたときに、前記第1アプリケーションが前記対象データへアクセスすることを許可しない処理と、
を車載情報処理装置に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車載情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
下記特許文献1には、アプリケーション(プログラム)の如何なるプロセス(振る舞い)がCPUへの攻撃であるかを定義したルールに基づいて、アプリケーションのプロセスが攻撃であると判定した場合に、当該プロセスを無効にする情報処理装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-8503号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
車載情報処理装置には様々なアプリケーションがインストールされる可能性がある。例えば、車載情報処理装置が搭載された車両を製造した車両メーカーとは異なる組織であるサードパーティが作成したアプリケーションが車載情報処理装置にインストールされることがある。この場合に、このアプリケーションが車載情報処理装置に記録されたデータに不正アクセスするおそれがある。即ち、このアプリケーションが車載情報処理装置に対して攻撃を行う可能性がある。
【0005】
上記特許文献1においてアプリケーションの全てのプロセスについて攻撃に該当するか否かを判定するためには、上記ルールを内容が複雑なルールにする必要がある。そのため上記特許文献1の技術思想を車載情報処理装置に適用した場合は、車載情報処理装置にかかる演算負荷が大きくなる。そのため高価なハード構成を用いて車載情報処理装置を構築する必要がある。
【0006】
本発明は上記事実を考慮し、アプリケーションのデータへのアクセス動作を、簡単なルールに基づいて監視できる車載情報処理装置、情報処理方法及びプログラムを得ることを目的とする。
【課題を解決するための手段】
【0007】
請求項1に記載の車載情報処理装置は、ハイパーバイザー、前記ハイパーバイザー上で互いに独立して動作する第1オペレーションシステム及び第2オペレーションシステム並びに前記第1オペレーションシステム上で動作する少なくとも一つの第1アプリケーションがインストールされた車載情報処理装置であって、前記第1アプリケーションが前記ハイパーバイザー及び前記第2オペレーションシステムを介してアクセス可能である複数種類のデータが記録された第1記録部と、前記各第1アプリケーションと、前記各第1アプリケーションがアクセスを許可された前記データである許可データとの対応関係を規定した対応関係リストが記録された第2記録部と、前記対応関係リストに基づいて、前記第1アプリケーションがアクセスを試みている前記データである対象データが前記許可データであるか否かを判定する判定部と、前記判定部が前記対象データが前記許可データであると判定したときに、前記第1アプリケーションが前記対象データへアクセスすることを許可し、且つ、前記判定部が前記対象データが前記許可データでないと判定したときに、前記第1アプリケーションが前記対象データへアクセスすることを許可しないアクセス制御部と、を備える。
【0008】
請求項1に記載の車載情報処理装置は、第1オペレーションシステム上で動作する少なくとも一つの第1アプリケーションがハイパーバイザー及び第2オペレーションシステムを介してアクセス可能である複数種類のデータが記録された第1記録部を有する。さらに、車載情報処理装置は、各第1アプリケーションと、各第1アプリケーションがアクセスを許可されたデータである許可データとの対応関係を規定した対応関係リストが記録された第2記録部を有する。さらに、対応関係リストに基づいて、第1アプリケーションがアクセスを試みているデータである対象データが許可データであるか否かを判定部が判定する。さらに、判定部が対象データが許可データであると判定したときに、アクセス制御部が、第1アプリケーションが対象データへアクセスすることを許可する。
【0009】
このように対応関係リストが規定する各第1アプリケーションと許可データとの対応関係を表すルールに基づいて、第1アプリケーションのデータへのアクセス動作が監視される。さらに、各第1アプリケーションと許可データとの対応関係を規定するルールは、全ての第1アプリケーションの全てのプロセス(振る舞い)を定義したルールよりも簡単である。そのため請求項1に記載の車載情報処理装置では、第1アプリケーションのデータへのアクセス動作を、簡単なルールに基づいて監視できる。そのため、車載情報処理装置にかかる演算負荷が大きくならない。そのため高価なハード構成を用いて車載情報処理装置を構築する必要がない。
【0010】
請求項2に記載の発明に係る車載情報処理装置は、請求項1記載の発明において、前記第1オペレーションシステム上で動作する第1ミドルウェアが、少なくとも1つのAPI(Application Programmable Interface)を実現し、前記各第1アプリケーションが前記第1ミドルウェア上で動作し、前記対応関係リストが、前記各第1アプリケーションと、前記各第1アプリケーションがアクセスを許可された前記APIであり且つ前記各第1アプリケーションがアクセスすることにより前記許可データを取得可能な許可APIとの対応関係を規定し、前記判定部が、前記第1アプリケーションが少なくとも1つの前記APIである対象APIにアクセスしたと判定したときに、前記対応関係リストに基づいて、前記対象APIが前記許可APIであるか否かを判定する、前記第1ミドルウェアによって実現される第1判定部を備え、前記アクセス制御部が、前記第1判定部によって前記許可APIへアクセスしたと判定された前記第1アプリケーションが、前記第1オペレーションシステム及び前記ハイパーバイザーを介して前記第2オペレーションシステムにアクセスすることを許可する、前記第1ミドルウェアによって実現される第1アクセス制御部を備える。
【0011】
請求項2に記載の発明では、第1オペレーションシステム上で動作する第1ミドルウェアが、少なくとも1つのAPIを実現し、各第1アプリケーションが第1ミドルウェア上で動作する。さらに判定部が、第1アプリケーションが少なくとも1つのAPIである対象APIにアクセスしたと判定したときに、対応関係リストに基づいて、対象APIが許可APIであるか否かを判定する、第1ミドルウェアによって実現される第1判定部を備える。さらに、アクセス制御部が、第1判定部によって許可APIへアクセスしたと判定された第1アプリケーションが、第1オペレーションシステム及びハイパーバイザーを介して第2オペレーションシステムにアクセスすることを許可する、第1ミドルウェアによって実現される第1アクセス制御部を備える。
【0012】
このように対応関係リストが規定する各第1アプリケーションと許可APIとの対応関係を表すルールに基づいて、第1アプリケーションのデータへのアクセス動作が監視される。各第1アプリケーションと許可APIとの対応関係を規定するルールは、全ての第1アプリケーションの全てのプロセスを定義したルールよりも簡単である。そのため請求項2に記載の発明は、第1アプリケーションのデータへのアクセス動作を、簡単なルールに基づいて監視できる。
【0013】
請求項3に記載の発明に係る車載情報処理装置は、請求項2記載の発明において、前記第2オペレーションシステム上で動作する第2ミドルウェアが、少なくとも1つの前記APIを実現し、前記判定部が、前記第1判定部によって前記許可APIへアクセスしたと判定された前記第1アプリケーションがアクセスした前記対象APIが前記許可APIであるか否かを、前記対応関係リストに基づいて判定する、前記第2ミドルウェアによって実現される第2判定部を備え、前記アクセス制御部が、前記対象APIが前記許可APIであると前記第2判定部が判定したときに、前記第1アプリケーションが、前記許可データにアクセスすることを許可する、前記第2ミドルウェアによって実現される第2アクセス制御部を備える。
【0014】
請求項3に記載の発明では、第2オペレーションシステム上で動作する第2ミドルウェアが、少なくとも1つのAPIを実現する。さらに判定部が、第1判定部によって許可APIへアクセスしたと判定された第1アプリケーションがアクセスした対象APIが許可APIであるか否かを、対応関係リストに基づいて判定する、第2ミドルウェアによって実現される第2判定部を備える。さらに、アクセス制御部が、対象APIが許可APIであると第2判定部が判定したときに、第1アプリケーションが、許可データにアクセスすることを許可する、第2ミドルウェアによって実現される第2アクセス制御部を備える。
【0015】
このように対応関係リストが規定する各第1アプリケーションと許可APIとの対応関係を表すルールに基づいて、第1アプリケーションのデータへのアクセス動作が監視される。各第1アプリケーションと許可APIとの対応関係を規定するルールは、全ての第1アプリケーションの全てのプロセスを定義したルールよりも簡単である。そのため請求項3に記載の発明は、第1アプリケーションのデータへのアクセス動作を、簡単なルールに基づいて監視できる。
【0016】
さらに請求項3の車載情報処理装置では、第1ミドルウェアによって実現される第1判定部によって許可APIにアクセスしたと判定された第1アプリケーションがアクセスした対象APIが許可APIであるか否かを、第2ミドルウェアによって実現される第2判定部が、対応関係リストに基づいて判定する。このように第1アプリケーションのデータ(第1記録部)へのアクセスを2回に渡って監視するので、第1アプリケーションがアクセスした対象APIが許可APIであるか否かが、より高い精度で判定される。
【0017】
請求項4に記載の発明に係る車載情報処理装置は、請求項3記載の発明において、前記第1アプリケーションによる前記許可APIへのアクセス頻度に関する条件である頻度条件を規定した頻度リストが記録された第3記録部を備え、前記第2判定部が、前記第1アプリケーションによる前記許可APIへのアクセス頻度が前記頻度条件を満たさないと判定したときに、前記第1アプリケーションが前記許可データにアクセスすることを前記第2アクセス制御部が許可しない。
【0018】
請求項4に記載の発明の車載情報処理装置は、第1アプリケーションによる許可APIへのアクセス頻度に関する条件である頻度条件を規定した頻度リストが記録された第3記録部を備える。さらに第2判定部が、第1アプリケーションによる許可APIへのアクセス頻度が頻度条件を満たさないと判定したときに、第1アプリケーションが許可データにアクセスすることを第2アクセス制御部が許可しない。この頻度条件に関するルールは、全ての第1アプリケーションの全てのプロセスを定義したルールよりも簡単である。そのため請求項4に記載の発明は、第1アプリケーションのデータへのアクセス動作を、簡単なルールに基づいて監視できる。
【0019】
請求項5に記載の発明に係る車載情報処理装置は、請求項3又は請求項4に記載の発明において、前記許可APIではないと前記第2判定部によって判定された前記対象APIにアクセスした前記第1アプリケーションを前記車載情報処理装置からアンインストールする、前記第2ミドルウェアによって実現される異常時処理部を備える。
【0020】
許可APIではないと第2判定部によって判定された対象APIへの第1アプリケーションによるアクセスは、危険度の高いプロセスであると考えられる。即ち、このような第1アプリケーションは、車載情報処理装置に対して危険度の高い攻撃を行う恐れがある。請求項5に記載の発明では、許可APIではないと第2判定部によって判定された対象APIにアクセスした第1アプリケーションを、異常時処理部が車載情報処理装置からアンインストールする。そのため、請求項5に記載の発明は、危険度の高い攻撃を行うおそれがある第1アプリケーションから車載情報処理装置を守ることが可能である。
【0021】
請求項6に記載の発明に係る車載情報処理装置は、請求項3~5の何れか1項に記載の発明において、前記第1記録部に記録された前記データが、前記ハイパーバイザー上で前記第1オペレーションシステム及び前記第2オペレーションシステムとは独立して動作する第3オペレーションシステム上で動作する少なくとも一つの第2アプリケーションによって取得されたデータである。
【0022】
請求項6に記載の発明では、第3オペレーションシステム上で動作する少なくとも一つの第2アプリケーションによって取得されたデータへの第1アプリケーションのアクセス動作を、簡単なルールに基づいて監視できる。
【0023】
請求項7に記載の発明に係る車載情報処理装置は、請求項6記載の発明において、少なくとも一つの前記第2アプリケーションが、前記車載情報処理装置が搭載された車両の走行、操舵及び制動の少なくとも一つに連動して変化する物理量に関するデータを取得する。
【0024】
請求項7に記載の発明では、車載情報処理装置が搭載された車両の走行、操舵及び制動の少なくとも一つに連動して変化する物理量に関するデータへの第1アプリケーションのアクセス動作を、簡単なルールに基づいて監視できる。そのため、車載情報処理装置へ攻撃を行うおそれがある第1アプリケーションが、これらのデータを不正に取得するおそれが小さくなる。
【0025】
請求項8に記載の情報処理方法は、ハイパーバイザー、前記ハイパーバイザー上で互いに独立して動作する第1オペレーションシステム及び第2オペレーションシステム並びに前記第1オペレーションシステム上で動作する少なくとも一つの第1アプリケーションがインストールされた車載情報処理装置が行う情報処理方法であって、前記第1アプリケーションが前記ハイパーバイザー及び前記第2オペレーションシステムを介して複数種類のデータが記録された記録部へのアクセスを試みたときに、前記第1アプリケーションと、前記各第1アプリケーションがアクセスを許可された前記データである許可データとの対応関係を規定した対応関係リストに基づいて、前記第1アプリケーションがアクセスを試みている前記データである対象データが前記許可データであるか否かを判定するステップと、前記対象データが前記許可データであると判定されたときに、前記第1アプリケーションが前記対象データへアクセスすることを許可し、且つ、前記対象データが前記許可データでないと判定されたときに、前記第1アプリケーションが前記対象データへアクセスすることを許可しないステップと、を有する。
【0026】
請求項9に記載のプログラムは、ハイパーバイザー、前記ハイパーバイザー上で互いに独立して動作する第1オペレーションシステム及び第2オペレーションシステム、並びに複数種類のデータへ前記ハイパーバイザー及び前記第2オペレーションシステムを介してアクセス可能である、前記第1オペレーションシステム上で動作する少なくとも一つの第1アプリケーション、を有し、前記各第1アプリケーションと、前記各第1アプリケーションがアクセスを許可された前記データである許可データとの対応関係を規定した対応関係リストに基づいて、前記第1アプリケーションがアクセスを試みている前記データである対象データが前記許可データであるか否かを判定する処理と、前記対象データが前記許可データであると判定されたときに、前記第1アプリケーションが前記対象データへアクセスすることを許可し、且つ、前記対象データが前記許可データでないと判定されたときに、前記第1アプリケーションが前記対象データへアクセスすることを許可しない処理と、を車載情報処理装置に実行させる。
【発明の効果】
【0027】
以上説明したように、本発明に係る車載情報処理装置、情報処理方法及びプログラムは、アプリケーションのデータへのアクセス動作を、簡単なルールに基づいて監視できる、という優れた効果を有する。
【図面の簡単な説明】
【0028】
図1】実施形態に係る車載情報処理装置を搭載した車両の模式図である。
図2図1に示される車載情報処理装置の制御ブロック図である。
図3図2に示される車載情報処理装置の階層を表す模式図である。
図4図2に示される車載情報処理装置に記録された対応関係リストを表す図である。
図5図2に示される車載情報処理装置に記録された頻度リストを表す図である。
図6図2に示される車載情報処理装置の機能ブロック図である。
図7図2に示される車載情報処理装置が行う処理を示すフローチャートである。
【発明を実施するための形態】
【0029】
以下、本発明に係る車載情報処理装置10、情報処理方法及びプログラムの実施形態について、図面を参照しながら説明する。
【0030】
図1は、実施形態の車載情報処理装置10を搭載した車両12を示す。車載情報処理装置10はECU(Electronic Control Unit)である。そのため、以下の説明では車載情報処理装置10をECU10と称する。車両12はECU10及びECU10とは別の複数のECU(図示省略)を有する。ECU10及び複数のECUは、AUTOSAR仕様に準拠したECUである。各ECU10及び複数のECUはバス(図示省略)により互いに接続されている。ECU10、複数のECU及びバスを有するネットワークは、例えば、CAN、Ethernet(登録商標)又はFlex Ray(登録商標)である。ECU10及び複数のECUはバスを介して、様々な情報を互いに送受信可能である。
【0031】
図2に示されるように、ECU10及び複数のECUは、CPU(Central Processing Unit:プロセッサ)10A、ROM(Read Only Memory)10B、RAM(Random Access Memory)10C、ストレージ10D、通信I/F(Inter Face)10E及び入出力I/F10Fを含んで構成されている。CPU10A、ROM10B、RAM10C、ストレージ10D、通信I/F10E及び入出力I/F10Fは、バス10Zを介して相互に通信可能に接続されている。ECU10及び複数のECUは、タイマー(図示省略)から時刻に関する情報を取得可能である。
【0032】
CPU10Aは、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU10Aは、ROM10B又はストレージ10Dから後述する各種のプログラムを読み出し、RAM10Cを作業領域としてプログラムを実行する。CPU10Aは、ROM10B又はストレージ10Dに記録されているプログラムに従って、各構成の制御及び各種の演算処理を行う。
【0033】
ROM10Bは、各種プログラム及び各種データを格納する。RAM10Cは、作業領域として一時的にプログラム又はデータを記憶する。ストレージ10Dは、HDD(Hard Disk Drive)又はSSD(Solid State Drive)等の記憶装置により構成され、各種プログラム及び各種データを格納する。通信I/F10Eは、ECU10(ECU)が他の機器と通信するためのインタフェースである。通信I/F10Eはバスに接続される。入出力I/F10Fは、車両12に搭載される各装置と通信するためのインタフェースである。例えば、ECU10の入出力I/F10Fには、後述する車輪速センサ14、操舵トルクセンサ16及び冷却水温センサ18が接続される。
【0034】
図3に示されるように、ECU10は、ハードウェア層、ハイパーバイザー層、OS層、ミドルウェア層及びアプリケーション層を有する。ROM10Bには、上記プログラムとして、ハイパーバイザーHV、第1オペレーションシステムOS1、第2オペレーションシステムOS2、第3オペレーションシステムOS3、第1ミドルウェアMW1、第2ミドルウェアMW2、第3ミドルウェアMW3、非純正アプリケーション30(以下、非純正APR30と称する)、純正アプリケーション32(以下、純正APP32と称する)及び純正アプリケーション34(以下、純正APP34と称する)がインストールされている。なお、非純正APP30は、2つの非純正APP30-1、30-2の総称である。純正APP34は、3つの純正APP34-1、34-2、34-3の総称である。純正APP32及び純正APP34は、車両12を製造した車両メーカーによって作成されたプログラムである。一方、非純正APP30はサードパーティによって作成されたプログラムである。
【0035】
ハイパーバイザーHVによってECU10は仮想マシンとして機能する。ECU10は3つの領域に仮想的に区画されている。即ち、ECU10は、非信頼領域AR1、公開用データ管理領域AR2及び制御領域AR3に区画されている。非信頼領域AR1に、ハイパーバイザーHV上で動作する第1オペレーションシステムOS1、第1オペレーションシステムOS1上で動作する第1ミドルウェアMW1及び第1ミドルウェアMW1上で動作する非純正APP30及び純正APP32がインストールされている。公開用データ管理領域AR2に、ハイパーバイザーHV上で第1オペレーションシステムOS1とは独立して動作する第2オペレーションシステムOS2及び第2オペレーションシステムOS2上で動作する第2ミドルウェアMW2がインストールされている。制御領域AR3に、ハイパーバイザーHV上で第1オペレーションシステムOS1及び第2オペレーションシステムOS2とは独立して動作する第3オペレーションシステムOS3、第3オペレーションシステムOS3上で動作する第3ミドルウェアMW3並びに第3ミドルウェアMW3上で動作する純正APP34がインストールされている。
【0036】
ECU10は、車両12の走行、操舵及び制動の少なくとも一つに連動して変化する物理量を検出するセンサ14、16、18に接続されている。本実施形態のセンサ14は車輪速を検出可能な車輪速センサ14であり、センサ16はステアリングホイールの操舵トルクを検出可能な操舵トルクセンサ16であり、センサ18はエンジンの冷却水温を検出可能な冷却水温センサである。但し、センサ14、16、18は、これらの物理量とは異なる物理量(例えば、ステアリングホイールの操舵角、車両12のヨーレート、ブレーキペダルの踏力)を検出するように構成されてもよい。
【0037】
本実施形態では、純正APP34-1が車輪速センサ14によって取得される車輪速に関するデータを用いて所定の制御を実行する。純正APP34-2が操舵トルクセンサ16によって取得される操舵トルクに関するデータを用いて所定の制御を実行する。純正APP34-3が冷却水温センサ18によって取得される冷却水温に関するデータを用いて所定の制御を実行する。
【0038】
純正APP34が取得した車輪速に関するデータ、操舵トルクに関するデータ及び冷却水温に関するデータは、第3ミドルウェアMW3、第3オペレーションシステムOS3、ハイパーバイザーHV、第2オペレーションシステムOS2及び第2ミドルウェアMW2を介して、ROM10B又はストレージ10Dによって構成された公開データ記録部20に記録される。
【0039】
第1ミドルウェアMW1及び第2ミドルウェアMW2は、2つの公開API(Application Programmable Interface)21-1、21-2及び1つのネイティブAPI22を実現するためのプログラムを有する。以下、公開API21-1及び公開API21-2の総称として公開API21を用いる場合がある。さらにハイパーバイザーHVが実現する仮想通信経路上に、第1ミドルウェアMW1の公開API21-1と第2ミドルウェアMW2の公開API21-1とが形成される。さらに仮想通信経路上に、第1ミドルウェアMW1の公開API21-2と第2ミドルウェアMW2の公開API21-2とが形成される。さらに仮想通信経路上に、第1ミドルウェアMW1のネイティブAPI22と第2ミドルウェアMW2のネイティブAPI22とが形成される。
【0040】
各非純正APP30は、第1ミドルウェアMW1及び第2ミドルウェアMW2の公開API21にアクセス可能である。図4に示される対応関係リスト25は、各非純正APP30と、各非純正APP30がアクセス可能な公開API21との対応関係を示す。換言すると、対応関係リスト25は、各非純正APP30と、後述する許可データとの対応関係を規定する。対応関係リスト25は、非信頼領域AR1の記録部(例えば、ROM10B)と公開用データ管理領域AR2の記録部(例えば、ROM10B)にそれぞれ記録されている。非純正APP30-1は公開API21-1にアクセス可能であり、非純正APP30-2は公開API21-2にアクセス可能である。非純正APP30-1は公開API21-1にアクセスすることにより、公開データ記録部20に記録され且つ公開API21-1に紐づけられた車輪速に関するデータを読み書き可能である。非純正APP30-2は公開API21-2にアクセスすることにより、公開データ記録部20に記録され且つ公開API21-2に紐づけられた操舵トルクに関するデータを読み書き可能である。対応関係リスト25は、非純正APP30を作成したサードパーティと、車両メーカーとの間の契約に基づいて作成される。なお、純正APP32はネイティブAPI22にアクセス可能であり、ネイティブAPI22にアクセスすることにより、公開データ記録部20に記録され且つネイティブAPI22に紐づけられた冷却水温に関するデータを読み書き可能である。非純正APP30及び純正APP32は取得したデータを利用して様々な制御を実行する。
【0041】
さらにROM10Bには、図5に示される頻度リスト27が記録されている。頻度リスト27は、各公開API21と、各公開API21にそれぞれ設定されたアクセス頻度と、の関係を表す頻度条件を規定する。非純正APP30の公開API21へのアクセス頻度が、頻度リスト27に規定された頻度以下の場合は、非純正APP30による公開API21へのアクセスは正常なアクセスであると考えられる。一方、頻度リスト27に規定された頻度より高い頻度で非純正APP30が公開API21へアクセスする場合は、非純正APP30による公開API21へのアクセスは不正アクセスであると考えられる。本実施形態の頻度リスト27は、公開API21-1に設定されたアクセス頻度が100ms(ミリ秒)であり、且つ、公開API21-2に設定されたアクセス頻度が200ms(ミリ秒)であることを示している。
【0042】
図6には、ECU10の機能構成の一例がブロック図で示されている。ECU10は、機能構成として、第1判定部101、第1アクセス制御部102、第2判定部103、第2アクセス制御部104及び異常時処理部105を有する。第1判定部101、第1アクセス制御部102、第2判定部103、第2アクセス制御部104及び異常時処理部105は、CPU10AがROM10Bに記憶されたハイパーバイザーHV、第1オペレーションシステムOS1、第2オペレーションシステムOS2、第1ミドルウェアMW1、第2ミドルウェアMW2を読み出し、実行することにより実現される。
【0043】
第1判定部101は第1ミドルウェアMW1により実現される機能である。第1判定部101は、非純正APP30がアクセスしたAPIが公開API21であるか否かを判定する。さらに第1判定部101は、非純正APP30が公開API21にアクセスしたと判定したときに、対応関係リスト25に基づいて、アクセスを受けた公開API21が、アクセスすることが許可された公開API21であるか否かを判定する。以下、非純正APP30からアクセスを受けたAPIを「対象API」と称する場合がある。さらに対象APIが、非純正APP30がアクセスすることを許可されたAPIの場合に、この対象APIを「許可API」と称する場合がある。
【0044】
第1アクセス制御部102は第1ミドルウェアMW1により実現される機能である。第1アクセス制御部102は、対象API21が許可API21であると第1判定部101が判定したときに、許可API21にアクセスした非純正APP30が、仮想通信経路に沿って第1オペレーションシステムOS1、ハイパーバイザーHV及び第2オペレーションシステムOS2を介して第2ミドルウェアMW2にアクセスすることを許可する。
【0045】
第2判定部103は第2ミドルウェアMW2により実現される機能である。第2判定部103は、第1判定部101によって許可API21にアクセスしたと判定された非純正APP30による許可API21へのアクセス頻度が、頻度リスト27に規定された頻度より高いか否かを判定する。
【0046】
さらに第2判定部103は、対応関係リスト25に基づいて第1判定部101と同じ処理を行う。即ち、第2判定部103は、対応関係リスト25に基づいて、対象API21が許可API21であるか否かを判定する。
【0047】
第2アクセス制御部104は、第2ミドルウェアMW2により実現される機能である。第2アクセス制御部104は、対象API21が許可API21であると第2判定部103が判定したときに、許可API21にアクセスした非純正APP30が、公開データ記録部20に記録され且つ許可API21に紐づけられたデータである許可データにアクセスすることを許可する。
【0048】
異常時処理部105は、第2ミドルウェアMW2により実現される機能である。異常時処理部105は、後述するように、非純正APP30の公開API21へのアクセス態様に基づいて、公開API21へアクセスした非純正APP30に対して必要な処理を行う。
【0049】
続いてECU10が行う処理の流れについて、図7のフローチャートを用いて説明する。ECU10は、所定時間が経過する毎にフローチャートの処理を繰り返し実行する。
【0050】
ステップS10において、ECU10の第1判定部101が、いずれかの非純正APP30が公開API21又はネイティブAPI22へアクセスしたか否かを判定する。
【0051】
ステップS10においてYesと判定したとき、ECU10はステップS11へ進む。ステップS11において、第1判定部101が、非純正APP30が公開API21へアクセスしたか否かを判定する。
【0052】
ステップS11においてYesと判定したとき、ECU10はステップS12へ進む。ステップS12において、第1判定部101が、対応関係リスト25に基づいて、非純正APP30がアクセスした公開API21が許可APIか否かを判定する。換言すると、第1判定部101が、非純正APP30がアクセスを試みているデータである対象データが許可データであるか否かを判定する。例えば、この非純正APP30が非純正APP30-1の場合は、非純正APP30-1が公開API21-1にアクセスしたか否かを第1判定部101が判定する。
【0053】
ステップS12においてYesと判定したとき、ECU10はステップS13へ進む。ステップS13において、許可API21にアクセスした非純正APP30が、第1オペレーションシステムOS1、ハイパーバイザーHV及び第2オペレーションシステムOS2を介して第2ミドルウェアMW2にアクセスすることを第1アクセス制御部102が許可する。
【0054】
ステップS13の処理を終えたECU10はステップS14へ進み、第2判定部103が、非純正APP30による許可API21へのアクセス頻度が、頻度リスト27に規定された頻度以下か否かを判定する。非純正APP30-1が公開API21-1にアクセスした場合は、非純正APP30-1が公開API21-1へ100msより短い間隔で繰り返しアクセスするか否かを第2判定部103が判定する。非純正APP30のアクセス頻度が頻度リスト27に規定された頻度以下の場合、第2判定部103はステップS14においてYesと判定し、ECU10はステップS15へ進む。
【0055】
ステップS15へ進んだ第2判定部103は、対応関係リスト25に基づいて、非純正APP30がアクセスした公開API21が許可APIか否かを判定する。
【0056】
ステップS15においてYesと判定したとき、ECU10はステップS16へ進む。ステップS16において、許可API21にアクセスした非純正APP30が、公開データ記録部20に記録された許可データにアクセスすることを第2アクセス制御部104が許可する。そのため非純正APP30は許可データを取得可能である。また、許可データにアクセスした非純正APP30は、許可データを書き換え可能である。
【0057】
ステップS11、S12又はS14においてECU10がNoと判定したとき、ECU10はステップS17へ進む。
【0058】
ステップS17へ進んだECU10の異常時処理部105は、NGカウント数に「1」を加える。なお、NGカウント数の初期値は「0」である。
【0059】
ステップS17の処理を終えたECU10はステップS18へ進み、異常時処理部105が、NGカウント数の合計値が閾値以上か否かを判定する。この閾値は、2以上の自然数である。閾値はROM10B又はストレージ10Dに記録されている。
【0060】
ステップS18においてYesと判定したとき、ECU10はステップS19へ進む。ステップS19へ進んだ異常時処理部105は、ステップS18においてYesと判定された非純正APP30の公開API21へのアクセスを所定時間に渡って禁止する。異常時処理部105は、この所定時間が経過したか否かを、上記タイマーから取得した情報に基づいて判定する。
【0061】
ステップS19の処理を終えたECU10はステップS20へ進み、異常時処理部105が、NGカウント数の合計値を「0」に設定する。
【0062】
ステップS15において第2判定部103がNoと判定したとき、ECU10はステップS21へ進む。ステップS21へ進んだ異常時処理部105は、ステップS15においてNoと判定された非純正APP30をECU10からアンインストールする。
【0063】
ステップS16、S20若しくはS21の処理を終えたとき、又は、ステップS10、S18でNoと判定したとき、ECU10はフローチャートの処理を一旦終了する。
【0064】
(作用並びに効果)
次に、本実施形態の作用並びに効果について説明する。
【0065】
本実施形態のECU10の対応関係リスト25は、各非純正APP30と、各非純正APP30がアクセスを許可された許可API21との対応関係を表すルールを規定する。そして第1ミドルウェアMW1によって実現される第1判定部101が、対応関係リスト25に基づいて、非純正APP30の公開データ記録部20に記録されたデータへのアクセス動作を監視する。対応関係リスト25が規定するルールは、全ての非純正APP30の全てのプロセス(振る舞い)を定義したルールよりも簡単である。そのため本実施形態のECU10は、公開データ記録部20に記録された各データへの非純正APP30のアクセス動作を、簡単なルールに基づいて監視できる。そのためECU10にかかる演算負荷が大きくならない。そのため高価なハード構成を用いてECU10を構築する必要がない。
【0066】
さらにECU10では、第2ミドルウェアMW2によって実現される第2判定部103が、対応関係リスト25に基づいて、第1判定部101によって許可APIにアクセスしたと判定された非純正APP30の公開データ記録部20に記録されたデータへのアクセス動作を監視する。このように非純正APP30の公開データ記録部20へのアクセスを2回に渡って監視するので、非純正APP30がアクセスした対象API21が許可API21であるか否かが高い精度で判定される。
【0067】
さらにECU10では、第1判定部101によって非純正APP30の公開データ記録部20に記録されたデータへのアクセス動作が監視される。そのためECU10が第1判定部101及び第1アクセス制御部102を具備しない場合と比べて、ECU10の公開用データ管理領域AR2における演算負荷が高くなり難い。
【0068】
さらに頻度リスト27が、各公開API21と、各公開API21にそれぞれ設定されたアクセス頻度と、の関係を表す頻度条件を規定する。そして第2判定部103が、非純正APP30による許可API21へのアクセス頻度が頻度条件を満たさないと判定したときに、非純正APP30が許可データにアクセスすることを第2アクセス制御部104が許可しない。頻度リスト27が定める頻度条件に関するルールは、全ての非純正APP30の全てのプロセスを定義したルールよりも簡単である。そのためECU10は、公開データ記録部20に記録された各データへの非純正APP30のアクセス動作を、簡単なルールに基づいて監視できる。
【0069】
さらにステップS15において、第2判定部103によって許可APIでない公開API21にアクセスしたと判定された非純正APP30は、第1判定部101によって第1オペレーションシステムOS1、ハイパーバイザーHV、第2オペレーションシステムOS2及び第2ミドルウェアMW2へのアクセスが禁止されるべきアプリケーションである。それにも拘わらず、この非純正APP30は第1判定部101によるチェックをパスして、第1オペレーションシステムOS1、ハイパーバイザーHV、第2オペレーションシステムOS2及び第2ミドルウェアMW2へアクセスしようとする。そのため、この非純正APP30による公開API21へのアクセスは、極めて危険な不正アクセスであると考えられる。そのため、異常時処理部105がこの非純正APP30をECU10からアンインストールする。従って、危険度の高い攻撃を行うおそれがある非純正APP30からECU10を守ることが可能である。
【0070】
第1判定部101によってステップS11、12においてNoと判定された非純正APP30及び第2判定部103によってステップS14においてNoと判定された非純正APP30による不正アクセス動作は、ステップS15においてNoと判定された非純正APP30による不正アクセス動作よりも危険度が低い。そのため本実施形態では、このような非純正APP30をECU10からアンインストールしない。即ち、このような不正アクセス動作を上記閾値以上繰り返した非純正APP30は、異常時処理部105によって、公開API21へのアクセスが所定時間に渡って禁止される。
【0071】
さらに公開データ記録部20には、純正APP34によって取得された、車両12の走行、操舵及び制動の少なくとも一つに連動して変化する物理量に関するデータが記録されている。本実施形態では、これらのデータへの非純正APP30による不正アクセスを防止可能である。そのため、これらのデータを不正に取得した非純正APP30が、これらのデータに基づく制御を実行するおそれは小さい。
【0072】
以上、本実施形態に係るECU10について説明したが、ECU10は本発明の要旨を逸脱しない範囲内において、適宜設計変更可能である。
【0073】
ECU10が第2判定部103及び第2アクセス制御部104を備えなくてもよい。この場合は、第1判定部101によって許可APIへアクセスしたと判定された非純正アプリケーション30は、第1アクセス制御部102によって許可データへのアクセスが許容される。
【0074】
ECU10が第1判定部101及び第1アクセス制御部102を備えなくてもよい。この場合は、第2判定部103によって許可APIへアクセスしたと判定された非純正アプリケーション30は、第2アクセス制御部104によって許可データへのアクセスが許容される。
【0075】
異常時処理部105が、ステップS17~S20の処理と、ステップS21の処理の一方のみを実行してもよい。
【0076】
非信頼領域AR1にインストールされる全てのアプリケーションが、車両メーカーによって作成されたアプリケーションであり、非信頼領域AR1及び公開用データ管理領域AR2の全てのAPIがネイティブAPIであってもよい。また、非信頼領域AR1にインストールされる全てのアプリケーションが、サードパーティによって作成されたアプリケーションであり、非信頼領域AR1及び公開用データ管理領域AR2の全てのAPIが公開APIであってもよい。
【0077】
異常時処理部105が、第1オペレーションシステムOS1及び第1ミドルウェアMW1の少なくとも一方が記録したシステムログに基づいて、第1オペレーションシステムOS1及び第1ミドルウェアMW1の少なくとも一方の稼働状況を監視してもよい。さらに異常時処理部105は、この稼働状況に基づいて、第1オペレーションシステムOS1及び第1ミドルウェアMW1の少なくとも一方が不正なプロセスを実行していると判定したときに、非信頼領域AR1全体の動作を一時的に停止してもよい。
【0078】
例えばインターネットを介して新しい非純正APP30がECU10にダウンロードされたときに、この非純正APP30と公開API21(許可API)との対応関係に関する情報が記録されるように対応関係リスト25を更新してもよい。
【0079】
非信頼領域AR1にインストールされるアプリケーションの数及び制御領域AR3にインストールされるアプリケーションの数はいくつであってもよい。また、非信頼領域AR1及び公開用データ管理領域AR2のAPIの数はいくつであってもよい。
【0080】
公開データ記録部20に、車両の走行、操舵及び制動の少なくとも一つに連動して変化する物理量に関するデータとは異なる種類のデータが記録されてもよい。
【符号の説明】
【0081】
10 ECU(車載情報処理装置)
10B ROM(記録部)(第1記録部)(第2記録部)(第3記録部)
10D ストレージ(記録部)(第1記録部)(第2記録部)(第3記録部)
101 第1判定部(判定部)
102 第1アクセス制御部(アクセス制御部)
103 第2判定部(判定部)
104 第2アクセス制御部(アクセス制御部)
105 異常時処理部
20 公開データ記録部(記録部)(第1記録部)
21(21-1、21-2) 公開API(API)
25 対応関係リスト
27 頻度リスト
30(30-1、30-2) 非純正アプリケーション(非純正APP)(第1アプリケーション)(プログラム)
34(34-1、34-2、34-3) 純正アプリケーション(第2アプリケーション)(プログラム)
HV ハイパーバイザー(プログラム)
OS1 第1オペレーションシステム(プログラム)
OS2 第2オペレーションシステム(プログラム)
MW1 第1ミドルウェア(プログラム)
MW2 第2ミドルウェア(プログラム)
図1
図2
図3
図4
図5
図6
図7