(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023064480
(43)【公開日】2023-05-11
(54)【発明の名称】検知装置、検知方法および検知プログラム
(51)【国際特許分類】
H04L 51/212 20220101AFI20230501BHJP
【FI】
H04L51/212
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021174792
(22)【出願日】2021-10-26
(71)【出願人】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(71)【出願人】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(71)【出願人】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】110000682
【氏名又は名称】弁理士法人ワンディ-IPパ-トナ-ズ
(72)【発明者】
【氏名】石川 史也
(57)【要約】
【課題】車載ネットワークにおける不正メッセージの検知をより正確に行う。
【解決手段】検知装置は、車両に搭載される車載ネットワークにおける不正メッセージを検知する検知装置であって、前記車載ネットワークにおける送信メッセージを取得するメッセージ取得部と、前記メッセージ取得部によって取得された前記送信メッセージに対する判定を行うことにより、前記車載ネットワークにおける不正メッセージに関する判定を行う判定部とを備え、前記判定部は、前記メッセージ取得部によって取得された前記送信メッセージが前記不正メッセージであるか否かの第1の判定結果に加え、前記送信メッセージに関する第2の判定結果を出力可能である。
【選択図】
図3
【特許請求の範囲】
【請求項1】
車両に搭載される車載ネットワークにおける不正メッセージを検知する検知装置であって、
前記車載ネットワークにおける送信メッセージを取得するメッセージ取得部と、
前記メッセージ取得部によって取得された前記送信メッセージに対する判定を行うことにより、前記車載ネットワークにおける不正メッセージに関する判定を行う判定部とを備え、
前記判定部は、前記メッセージ取得部によって取得された前記送信メッセージが前記不正メッセージであるか否かの第1の判定結果に加え、前記送信メッセージに関する第2の判定結果を出力可能である、検知装置。
【請求項2】
前記判定部は、前記第1の判定結果を出力した場合と、前記第2の判定結果を出力した場合とで、前記送信メッセージに関して互いに異なる処理を行う、請求項1に記載の検知装置。
【請求項3】
前記判定部は、前記第2の判定結果の統計値を算出し、算出した前記統計値に基づいて、前記不正メッセージが存在するか否かを判定する、請求項2に記載の検知装置。
【請求項4】
前記第2の判定結果は、複数種類の判定結果を含み、
前記判定部は、前記統計値の算出において、前記種類に応じた重み付けを行う、請求項3に記載の検知装置。
【請求項5】
前記判定部は、前記第2の判定結果を出力した場合、前記第2の判定結果を出力したことを示すログデータを作成する、請求項2に記載の検知装置。
【請求項6】
前記判定部は、第1の判定として、前記第2の判定結果を出力した場合、判定対象とした前記送信メッセージとは異なる他の前記送信メッセージに対して、異なる内容の第2の判定を行い、前記第2の判定の判定結果に基づいて、前記不正メッセージが存在するか否かを判定する、請求項2に記載の検知装置。
【請求項7】
前記第1の判定の判定対象である前記送信メッセージと、前記第2の判定の判定対象である他の前記送信メッセージとは、前記車両に関する互いに異なる種類の計測結果を示す、請求項6に記載の検知装置。
【請求項8】
前記第1の判定の判定対象である前記送信メッセージは、前記車両の車速の計測結果を示し、
前記判定部は、前記車速の計測結果が所定条件を満たすか否かに応じて、前記第2の判定の判定基準を変える、請求項6または請求項7に記載の検知装置。
【請求項9】
前記メッセージ取得部によって取得された前記送信メッセージは、前記車両の車速の計測結果を示し、
前記検知装置は、さらに、
前記不正メッセージが存在しない正常時における前記車速の計測結果である正常時車速、ならびに前記正常時車速に基づいて定められた大小関係を有する第1閾値および第2閾値を記憶する記憶部を備え、
前記判定部は、前記送信メッセージの示す前記車速の計測結果と前記正常時車速との差と、前記第1閾値および前記第2閾値とを比較し、比較結果に応じて前記第1の判定結果または前記第2の判定結果を出力する、請求項1から請求項8のいずれか1項に記載の検知装置。
【請求項10】
前記記憶部は、さらに、前記第1閾値より大きく、かつ前記第2閾値より小さい第3閾値を記憶し、
前記判定部は、前記差が前記第1閾値より大きく、かつ前記第2閾値以下である場合、前記第2の判定結果を出力し、
前記判定部は、前記第2の判定結果を出力した場合、前記送信メッセージに対して、前記記憶部に保存されている前記第3閾値を用いて、前記不正メッセージに関する判定を行う、請求項9に記載の検知装置。
【請求項11】
前記検知装置は、さらに、
カウンタを備え、
前記判定部は、前記差と、前記第1閾値、前記第2閾値および前記第3閾値との大小関係に応じて、前記カウンタのカウントアップ値を変更し、前記カウンタのカウント値を用いて、前記不正メッセージに関する判定を行う、請求項10に記載の検知装置。
【請求項12】
前記判定部は、前記カウンタのカウント値が所定値以上である場合、前記不正メッセージが存在すると判定し、
前記所定値は、前記カウンタの複数の前記カウントアップ値の最大値よりも大きい、請求項11に記載の検知装置。
【請求項13】
前記第1の判定の判定対象である前記送信メッセージは、前記車両の車速の計測結果を示し、
前記第2の判定の判定対象である前記送信メッセージは、前記車両のエンジン回転数の計測結果を示し、
前記検知装置は、さらに、
前記不正メッセージが存在しない正常時における前記エンジン回転数の計測結果である正常時エンジン回転数、ならびに前記正常時エンジン回転数に基づいて定められた第4閾値を記憶する記憶部を備え、
前記判定部は、前記第2の判定において、前記送信メッセージの示す前記エンジン回転数の計測結果と前記正常時エンジン回転数との差と、前記第4閾値とを比較する、請求項6または請求項7に記載の検知装置。
【請求項14】
車両に搭載される車載ネットワークにおける不正メッセージを検知する検知装置における検知方法であって、
前記車載ネットワークにおける送信メッセージを取得するステップと、
取得した前記送信メッセージに対する判定を行うことにより、前記車載ネットワークにおける不正メッセージに関する判定を行うステップとを含み、
前記不正メッセージに関する判定において、取得した前記送信メッセージが前記不正メッセージであるか否かの第1の判定結果に加え、前記送信メッセージに関する第2の判定結果を出力可能である、検知方法。
【請求項15】
車両に搭載される車載ネットワークにおける不正メッセージを検知する検知装置において用いられる検知プログラムであって、
コンピュータを、
前記車載ネットワークにおける送信メッセージを取得するメッセージ取得部と、
前記メッセージ取得部によって取得された前記送信メッセージに対する判定を行うことにより、前記車載ネットワークにおける不正メッセージに関する判定を行う判定部、
として機能させるためのプログラムであり、
前記判定部は、前記メッセージ取得部によって取得された前記送信メッセージが前記不正メッセージであるか否かの第1の判定結果に加え、前記送信メッセージに関する第2の判定結果を出力可能である、検知プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、検知装置、検知方法および検知プログラムに関する。
【背景技術】
【0002】
従来、車載ネットワークにおけるセキュリティを向上させるための車載ネットワークシステムが開発されている。
【0003】
たとえば、特許文献1(特開2019-29961号公報)には、以下のような不正検知方法が開示されている。すなわち、車載ネットワークシステムにおいてネットワークに接続された監視電子制御ユニットで用いられる不正検知方法では、第1識別子を有するフレームと、第2識別子を有するフレームとの内容の関係についての条件である第1条件を示す不正検知ルール情報を用いて、ネットワークから受信されたフレームの集合が当該第1条件を満たすか否かを判定し、第1識別子を有するフレームと、第3識別子を有するフレームとの内容の関係についての条件である第2条件を示す不正検知ルール情報を用いて、ネットワークから受信されたフレームの集合が当該第2条件を満たすか否かを判定し、満たされないと判定された条件の数に応じて前記第1種フレームの送信に関する異常度を算定し、算定された異常度に応じて所定フレームを送信する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
車載ネットワークにおける車載装置から送信されたメッセージが不正メッセージであるか否かの判定を行う場合、当該メッセージに含まれるデータの値などによっては明確な判定が困難な場合が想定される。
【0006】
この発明は、上述の課題を解決するためになされたもので、その目的は、車載ネットワークにおける不正メッセージの検知をより正確に行うことができる検知装置、検知方法および検知プログラムを提供することである。
【課題を解決するための手段】
【0007】
本開示の検知装置は、車両に搭載される車載ネットワークにおける不正メッセージを検知する検知装置であって、前記車載ネットワークにおける送信メッセージを取得するメッセージ取得部と、前記メッセージ取得部によって取得された前記送信メッセージに対する判定を行うことにより、前記車載ネットワークにおける不正メッセージに関する判定を行う判定部とを備え、前記判定部は、前記メッセージ取得部によって取得された前記送信メッセージが前記不正メッセージであるか否かの第1の判定結果に加え、前記送信メッセージに関する第2の判定結果を出力可能である。
【0008】
本開示の検知方法は、車両に搭載される車載ネットワークにおける不正メッセージを検知する検知装置における検知方法であって、前記車載ネットワークにおける送信メッセージを取得するステップと、取得した前記送信メッセージに対する判定を行うことにより、前記車載ネットワークにおける不正メッセージに関する判定を行うステップとを含み、前記不正メッセージに関する判定において、取得した前記送信メッセージが前記不正メッセージであるか否かの第1の判定結果に加え、前記送信メッセージに関する第2の判定結果を出力可能である。
【0009】
本開示の検知プログラムは、車両に搭載される車載ネットワークにおける不正メッセージを検知する検知装置において用いられる検知プログラムであって、コンピュータを、前記車載ネットワークにおける送信メッセージを取得するメッセージ取得部と、前記メッセージ取得部によって取得された前記送信メッセージに対する判定を行うことにより、前記車載ネットワークにおける不正メッセージに関する判定を行う判定部、として機能させるためのプログラムであり、前記判定部は、前記メッセージ取得部によって取得された前記送信メッセージが前記不正メッセージであるか否かの第1の判定結果に加え、前記送信メッセージに関する第2の判定結果を出力可能である。
【0010】
本開示の一態様は、このような特徴的な処理部を備える検知装置として実現され得るだけでなく、検知装置の一部または全部を実現する半導体集積回路として実現され得たり、検知装置を含む車載通信システムとして実現され得る。
【発明の効果】
【0011】
本開示によれば、車載ネットワークにおける不正メッセージの検知をより正確に行うことができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、本開示の実施の形態に係る車載通信システムの構成を示す図である。
【
図2】
図2は、本開示の実施の形態に係るバス接続装置群の構成を示す図である。
【
図3】
図3は、本開示の実施の形態に係る車載通信システムにおけるゲートウェイ装置の構成を示す図である。
【
図4】
図4は、車載ネットワークにおける不正メッセージの検知を行う際の課題を説明するための図である。
【
図5】
図5は、本開示の実施の形態に係る検知装置における判定部による不正メッセージに関する判定の動作手順の概要を定めたフローチャートである。
【
図6】
図6は、本開示の実施の形態に係る検知装置における判定部による不正メッセージに関する判定の、不明判定処理の詳細を含む動作手順を定めたフローチャートである。
【
図7】
図7は、本開示の実施の形態に係る検知装置における判定部による不正メッセージに関する判定の、変形例2に係る不明判定処理の詳細を含む動作手順を定めたフローチャートである。
【発明を実施するための形態】
【0013】
最初に、本開示の実施形態の内容を列記して説明する。
【0014】
(1)本開示の実施の形態に係る検知装置は、車両に搭載される車載ネットワークにおける不正メッセージを検知する検知装置であって、前記車載ネットワークにおける送信メッセージを取得するメッセージ取得部と、前記メッセージ取得部によって取得された前記送信メッセージに対する判定を行うことにより、前記車載ネットワークにおける不正メッセージに関する判定を行う判定部とを備え、前記判定部は、前記メッセージ取得部によって取得された前記送信メッセージが前記不正メッセージであるか否かの第1の判定結果に加え、前記送信メッセージに関する第2の判定結果を出力可能である。
【0015】
このような構成により、たとえば、不正メッセージであるか否かの明確な判定が困難な送信メッセージに対する判定において第2の判定結果を出力することができるため、当該送信メッセージが不正メッセージであるか否かの誤判定を防ぐことができる。したがって、車載ネットワークにおける不正メッセージの検知をより正確に行うことができる。
【0016】
(2)前記判定部は、前記第1の判定結果を出力した場合と、前記第2の判定結果を出力した場合とで、前記送信メッセージに関して互いに異なる処理を行ってもよい。
【0017】
このような構成により、たとえば、不正メッセージであるか否かの明確な判定を行うことができる送信メッセージに関してはログデータの作成等を行い、不正メッセージであるか否かの明確な判定を行うことが困難である送信メッセージに関してはログデータの作成等を保留にするなど、判定結果に応じたより適切な処理を行うことができる。
【0018】
(3)前記判定部は、前記第2の判定結果の統計値を算出し、算出した前記統計値に基づいて、前記不正メッセージが存在するか否かを判定してもよい。
【0019】
このような構成により、一定期間における第2の判定結果の出力回数など、複数回出力された第2の判定結果を統計的に考慮した、より正確な判定結果を得ることができる。
【0020】
(4)前記第2の判定結果は、複数種類の判定結果を含み、前記判定部は、前記統計値の算出において、前記種類に応じた重み付けを行ってもよい。
【0021】
このような構成により、たとえば、第2の判定結果として、判定対象である送信メッセージが不正メッセージである可能性に応じた種類の判定結果を出力することができるため、より一層正確な判定結果を得ることができる。
【0022】
(5)前記判定部は、前記第2の判定結果を出力した場合、前記第2の判定結果を出力したことを示すログデータを作成してもよい。
【0023】
このような構成により、たとえば、不正メッセージであるか否かの明確な判定が困難な送信メッセージに関して別途解析等を行うことができる。
【0024】
(6)前記判定部は、第1の判定として、前記第2の判定結果を出力した場合、判定対象とした前記送信メッセージとは異なる他の前記送信メッセージに対して、異なる内容の第2の判定を行い、前記第2の判定の判定結果に基づいて、前記不正メッセージが存在するか否かを判定してもよい。
【0025】
このように、互いに異なる内容である第1の判定および第2の判定の両方を行う構成により、不正メッセージの検知性能をより向上させることができる。
【0026】
(7)前記第1の判定の判定対象である前記送信メッセージと、前記第2の判定の判定対象である他の前記送信メッセージとは、前記車両に関する互いに異なる種類の計測結果を示してもよい。
【0027】
このような構成により、1つの計器の異常等による誤判定を防ぎ、不正メッセージが存在するか否かのより正確な判定結果を得ることができる。
【0028】
(8)前記第1の判定の判定対象である前記送信メッセージは、前記車両の車速の計測結果を示し、前記判定部は、前記車速の計測結果が所定条件を満たすか否かに応じて、前記第2の判定の判定基準を変えてもよい。
【0029】
ここで、車両が低速走行している場合における、当該車両のエンジン回転数、舵角、アクセル開度または車体加速度などの計測結果と、当該車両が高速走行している場合における当該計測結果とは、互いに異なる傾向を有する場合が多い。
【0030】
このため、上記のような構成により、第2の判定において、車両に関する計測結果の、当該車両の車速に応じて変化する傾向を考慮した、より適切な判定基準を用いることができるため、不正メッセージが存在するか否かのより正確な判定結果を得ることができる。
【0031】
(9)前記メッセージ取得部によって取得された前記送信メッセージは、前記車両の車速の計測結果を示し、前記検知装置は、さらに、前記不正メッセージが存在しない正常時における前記車速の計測結果である正常時車速、ならびに前記正常時車速に基づいて定められた大小関係を有する第1閾値および第2閾値を記憶する記憶部を備え、前記判定部は、前記送信メッセージの示す前記車速の計測結果と前記正常時車速との差と、前記第1閾値および前記第2閾値とを比較し、比較結果に応じて前記第1の判定結果または前記第2の判定結果を出力してもよい。
【0032】
このような構成により、正常時における車両の状態との違いを容易に把握して、不正メッセージに関する判定を容易に行うことができる。
【0033】
(10)前記記憶部は、さらに、前記第1閾値より大きく、かつ前記第2閾値より小さい第3閾値を記憶し、前記判定部は、前記差が前記第1閾値より大きく、かつ前記第2閾値以下である場合、前記第2の判定結果を出力し、前記判定部は、前記第2の判定結果を出力した場合、前記送信メッセージに対して、前記記憶部に保存されている前記第3閾値を用いて、前記不正メッセージに関する判定を行ってもよい。
【0034】
このように、第2の判定結果を出力した場合において、第3閾値を用いたより詳細な判定を行う構成により、より正確な判定結果を得ることができる。
【0035】
(11)前記検知装置は、さらに、カウンタを備え、前記判定部は、前記差と、前記第1閾値、前記第2閾値および前記第3閾値との大小関係に応じて、前記カウンタのカウントアップ値を変更し、前記カウンタのカウント値を用いて、前記不正メッセージに関する判定を行ってもよい。
【0036】
このような構成により、たとえば、送信メッセージの示す車両の車速の計測結果と正常時車速との差、すなわち当該送信メッセージが不正メッセージである可能性をカウント値に反映させることができるため、より一層正確な判定結果を得ることができる。
【0037】
(12)前記判定部は、前記カウンタのカウント値が所定値以上である場合、前記不正メッセージが存在すると判定してもよく、前記所定値は、前記カウンタの複数の前記カウントアップ値の最大値よりも大きい。
【0038】
このような構成により、第2の判定結果を複数回出力することが、不正メッセージが存在するとの判定結果を得るための条件の1つになるため、より正確な判定結果を得ることができる。
【0039】
(13)前記第1の判定の判定対象である前記送信メッセージは、前記車両の車速の計測結果を示し、前記第2の判定の判定対象である前記送信メッセージは、前記車両のエンジン回転数の計測結果を示し、前記検知装置は、さらに、前記不正メッセージが存在しない正常時における前記エンジン回転数の計測結果である正常時エンジン回転数、ならびに前記正常時エンジン回転数に基づいて定められた第4閾値を記憶する記憶部を備え、前記判定部は、前記第2の判定において、前記送信メッセージの示す前記エンジン回転数の計測結果と前記正常時エンジン回転数との差と、前記第4閾値とを比較してもよい。
【0040】
このような構成により、車速を計測するセンサの異常等による誤判定を防ぎ、不正メッセージが存在するか否かのより正確な判定結果を得ることができる。また、正常時における車両の状態との違いを容易に把握して、不正メッセージに関する判定を容易に行うことができる。
【0041】
(14)本開示の実施の形態に係る検知方法は、車両に搭載される車載ネットワークにおける不正メッセージを検知する検知装置における検知方法であって、前記車載ネットワークにおける送信メッセージを取得するステップと、取得した前記送信メッセージに対する判定を行うことにより、前記車載ネットワークにおける不正メッセージに関する判定を行うステップとを含み、前記不正メッセージに関する判定において、取得した前記送信メッセージが前記不正メッセージであるか否かの第1の判定結果に加え、前記送信メッセージに関する第2の判定結果を出力可能である。
【0042】
このような方法により、たとえば、不正メッセージであるか否かの明確な判定が困難な送信メッセージに対する判定において第2の判定結果を出力することができるため、当該送信メッセージが不正メッセージであるか否かの誤判定を防ぐことができる。したがって、車載ネットワークにおける不正メッセージの検知をより正確に行うことができる。
【0043】
(15)本開示の実施の形態に係る検知プログラムは、車両に搭載される車載ネットワークにおける不正メッセージを検知する検知装置において用いられる検知プログラムであって、コンピュータを、前記車載ネットワークにおける送信メッセージを取得するメッセージ取得部と、前記メッセージ取得部によって取得された前記送信メッセージに対する判定を行うことにより、前記車載ネットワークにおける不正メッセージに関する判定を行う判定部、として機能させるためのプログラムであり、前記判定部は、前記メッセージ取得部によって取得された前記送信メッセージが前記不正メッセージであるか否かの第1の判定結果に加え、前記送信メッセージに関する第2の判定結果を出力可能である。
【0044】
このような構成により、たとえば、不正メッセージであるか否かの明確な判定が困難な送信メッセージに対する判定において第2の判定結果を出力することができるため、当該送信メッセージが不正メッセージであるか否かの誤判定を防ぐことができる。したがって、車載ネットワークにおける不正メッセージの検知をより正確に行うことができる。
【0045】
以下、本開示の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0046】
<構成および基本動作>
[全体構成]
図1は、本開示の実施の形態に係る車載通信システムの構成を示す図である。
図1を参照して、車載通信システム301は、ゲートウェイ装置(検知装置)101と、複数の車載通信機111と、複数のバス接続装置群121とを備える。
【0047】
図2は、本開示の実施の形態に係るバス接続装置群の構成を示す図である。
図2を参照して、バス接続装置群121は、複数の制御装置122を含む。なお、バス接続装置群121は、複数の制御装置122を備える構成に限らず、1つの制御装置122を含む構成であってもよい。
【0048】
再び
図1を参照して、車載通信システム301は、道路を走行する車両(以下、対象車両とも称する。)1に搭載される。車載ネットワーク12は、対象車両1の内部における装置である車載装置を複数含む。具体的には、車載ネットワーク12は、車載装置の一例である、複数の車載通信機111、および
図2に示す複数の制御装置122を含む。
【0049】
なお、車載ネットワーク12は、複数の車載装置を含む構成であれば、複数の車載通信機111を含みかつ制御装置122を含まない構成であってもよいし、車載通信機111を含まずかつ複数の制御装置122を含む構成であってもよいし、1つの車載通信機111および1つの制御装置122を含む構成であってもよい。
【0050】
車載ネットワーク12において、車載通信機111は、たとえば、対象車両1の外部における装置と通信する。具体的には、車載通信機111は、たとえば、TCU(Telematics Communication Unit)、近距離無線端末装置、およびITS(Intelligent Transport Systems)無線機である。
【0051】
ゲートウェイ装置101は、たとえば、ファームウェアのアップデート等のデータ、およびゲートウェイ装置101により蓄積されたデータ等を対象車両1の外部における外部装置とポート112を介して送受信することが可能である。
【0052】
ゲートウェイ装置101は、たとえば、セントラルゲートウェイ(Central Gateway:CGW)であり、バス13,14を介して車載装置と接続される。具体的には、バス13,14は、たとえば、CAN(Controller Area Network)(登録商標)、FlexRay(登録商標)、MOST(Media Oriented Systems Transport)(登録商標)、イーサネット(登録商標)、およびLIN(Local Interconnect Network)等の規格に従うバスである。
【0053】
たとえば、車載通信機111は、イーサネットの規格に従う対応のバス14を介してゲートウェイ装置101と接続されている。また、たとえば、バス接続装置群121における各制御装置122は、CANの規格に従う対応のバス13を介してゲートウェイ装置101と接続されている。制御装置122は、対象車両1における、計器、エンジンおよびブレーキなどの機能部を制御可能である。
【0054】
なお、バス13には、制御装置122が接続される構成に限らず、制御装置122以外の装置、たとえばセンサが接続されてもよい。
【0055】
ゲートウェイ装置101は、たとえば、対象車両1において異なるバス13に接続された制御装置122間でやり取りされる情報、各車載通信機111間でやり取りされる情報、制御装置122および車載通信機111間でやり取りされる情報を中継する中継処理を行う。
【0056】
より詳細には、対象車両1では、たとえば、所定の取り決めに従って、ある車載装置から他の車載装置へ周期的にメッセージが送信される。メッセージの送信は、ブロードキャストによって行われてもよいし、ユニキャストによって行われてもよい。以下、周期的に送信されるメッセージを周期メッセージとも称する。
【0057】
また、対象車両1では、周期メッセージの他に、ある制御装置122から他の制御装置122へ不定期に送信されるメッセージが存在する。メッセージには、メッセージの内容および送信元等を識別するためのIDが含まれる。メッセージが周期メッセージであるか否かをIDによって識別することが可能である。
【0058】
以下では、ある制御装置122から他の制御装置122へ送信されるメッセージについて説明するが、制御装置122および車載通信機111間において送信されるメッセージ、ならびに各車載通信機111間において送信されるメッセージについても同様である。
【0059】
[ゲートウェイ装置の構成]
図3は、本開示の実施の形態に係る車載通信システムにおけるゲートウェイ装置の構成を示す図である。
図3を参照して、ゲートウェイ装置101は、IDS(Intrusion Detection System)における検知装置として機能し、対象車両1に搭載される車載ネットワーク12における不正メッセージを検知する。
【0060】
より詳細には、ゲートウェイ装置101は、通信処理部51と、記憶部52と、カウンタ53と、判定部54と、メッセージ取得部55とを備える。通信処理部51、判定部54およびメッセージ取得部55は、たとえば、CPU(Central Processing Unit)およびDSP(Digital Signal Processor)等のプロセッサにより実現される。記憶部52は、たとえば不揮発性メモリである。
【0061】
通信処理部51は、ある制御装置122から対応のバス13経由でメッセージを受信すると、受信したメッセージを他の制御装置122へ対応のバス13経由で送信する中継処理を行う。
【0062】
より詳細には、通信処理部51は、制御装置122からのメッセージを受信すると、たとえば、後述するように、メッセージ取得部55または判定部54から当該メッセージの中継処理を許可する旨の指示を受けるまで当該メッセージを保持して待機する。そして、通信処理部51は、メッセージ取得部55または判定部54から当該メッセージの中継処理を許可する旨の指示を受けると、当該メッセージの中継処理を行う。
【0063】
メッセージ取得部55は、車載ネットワーク12における送信メッセージ、すなわち通信処理部51による中継処理の対象となるメッセージを取得し、取得したメッセージを記憶部52に保存する。
【0064】
より詳細には、記憶部52には、車載ネットワーク12における不正メッセージの検知に用いられるデータの種類を示す検出条件情報が登録されている。データの種類は、たとえば、エンジン回転数、車速、ヨーレート、舵角、アクセル開度および車体加速度等の各計測結果である。検出条件情報の詳細については、後述する。
【0065】
メッセージ取得部55は、記憶部52に登録されている検出条件情報を参照して、自己が監視対象とすべきデータの種類を認識する。そして、メッセージ取得部55は、通信処理部51が中継するメッセージに含まれるデータを監視し、監視対象の種類のデータを含むメッセージを検出するごとに、検出したメッセージを通信処理部51から取得する。そして、メッセージ取得部55は、取得したメッセージに、当該メッセージの受信時刻を示すタイムスタンプを付して、タイムスタンプを付したメッセージを記憶部52に保存する。
【0066】
また、メッセージ取得部55は、通信処理部51が保持するメッセージが監視対象の種類のデータを含まない場合、たとえば、当該メッセージの中継処理を許可する旨の指示を通信処理部51に対して行う。
【0067】
記憶部52に登録されている検出条件情報は、不正メッセージの検知に用いられるデータの種類に加えて、さらに、データの種類ごとに、当該データを含むメッセージが不正メッセージであるか否かを判定する際の判定基準などを示す。
【0068】
具体的には、検出条件情報は、たとえば、不正メッセージの検知に用いられるデータの種類が車速であり、車速を示すデータを含むメッセージが不正メッセージであるか否かを判定する際の判定基準となる閾値を示す。判定基準となる閾値は、たとえば、車載ネットワーク12において不正メッセージが存在しない正常時における車速の計測結果に基づいて予め定められている。
【0069】
判定部54は、メッセージ取得部55によって取得されたメッセージに対する判定を行うことにより、車載ネットワーク12における不正メッセージに関する判定を行う。より詳細には、判定部54は、メッセージ取得部55により記憶部52に保存されたメッセージに含まれるデータを取得する。そして、判定部54は、たとえば、取得したデータに基づいて、当該データを含むメッセージが不正メッセージであるか否かを判定する。
【0070】
また、判定部54は、たとえば、当該メッセージが不正メッセージではないと判定した場合、当該メッセージの中継処理を許可する旨の指示を通信処理部51に対して行う。
【0071】
[課題の説明]
図4は、車載ネットワークにおける不正メッセージの検知を行う際の課題を説明するための図である。ここでは、車速を示すメッセージ(以下、「車速メッセージ」とも称する。)が判定対象であるとする。
図4に示すグラフの横軸は、正常時における車速との差Dを示し、縦軸は、車速を示す複数のメッセージに含まれる、正常なメッセージと不正メッセージとの割合の算出結果の一例を示す。正常時における車速は、たとえば、正常時における対象車両1の走行時の車速の平均値である。
【0072】
図4を参照して、差Dが0<D<D1の範囲に含まれる複数の車速メッセージにおいては、100%が正常なメッセージである。また、差DがD=D2(>D1)である複数の車速メッセージにおいては、80%が正常なメッセージであり、20%が不正メッセージである。
【0073】
また、差DがD=D3(>D2)である複数の車速メッセージにおいては、50%が正常なメッセージであり、50%が不正メッセージである。また、差DがD=D4(>D3)である複数の車速メッセージにおいては、20%が正常なメッセージであり、80%が不正メッセージである。また、差DがD>D5(>D4)の範囲に含まれる複数の車速メッセージにおいては、100%が不正メッセージである。
【0074】
このように、判定対象となるメッセージの示す車速と、正常時における車速との差DがD1~D5の範囲内である場合、当該メッセージは、正常なメッセージと不正メッセージとの両方の可能性を有し、不正メッセージであるか否かの判定において明確な判定が困難であり、誤判定が生じ得る。特に、当該差DがD3に近い値であるほど、不正メッセージであるか否かの判定の難易度が高くなり、誤判定が生じる可能性が高くなる。そこで、本開示の実施の形態に係る検知装置では、以下のような構成および動作により、このような課題を解決する。
【0075】
<判定部による不正メッセージに関する判定の動作の流れ>
[動作の流れの概要]
車載通信システム301における各装置は、メモリを含むコンピュータを備え、当該コンピュータにおけるCPU等の演算処理部は、以下のフローチャートの各ステップの一部または全部を含むプログラムを当該メモリからそれぞれ読み出して実行する。これら複数の装置のプログラムは、それぞれ、外部からインストールすることができる。これら複数の装置のプログラムは、それぞれ、記録媒体に格納された状態で流通する。
【0076】
図5は、本開示の実施の形態に係る検知装置における判定部による不正メッセージに関する判定の動作手順の概要を定めたフローチャートである。
【0077】
ここでは、車速を示すメッセージが判定対象であるとする。また、記憶部52には、正常時における車速、および正常時における車速との差Dの閾値を示す検出条件情報が登録されているとする。たとえば、閾値として、大小関係を有する2つの閾値Ta(第1閾値),Tb(第2閾値)が保存されているとする。これら2つの閾値Ta,Tbの大小関係は、Ta<Tbである。
【0078】
図5を参照して、まず、判定部54は、メッセージ取得部55により取得された判定対象とすべきメッセージが記憶部52に新たに保存されると、新たに保存されたメッセージに含まれるデータを取得する。そして、判定部54は、取得したデータの示す車速と、記憶部52に保存されている正常時における車速との差Dを算出する(ステップS11)。
【0079】
次に、判定部54は、算出した差Dと、記憶部52に保存されている2つの閾値Ta,Tbとを比較し、比較結果に応じた種類の判定結果を出力する判定X1を行う(ステップS12)。
【0080】
判定X1において、判定部54は、取得したデータを含むメッセージが不正メッセージであるか否かの第1の判定結果に加え、当該メッセージに関する第2の判定結果を出力可能である。
【0081】
具体的には、判定部54は、算出した差Dが閾値Ta以下である場合(D≦Ta)(ステップS12において「A」)、第1の判定結果として、当該メッセージが正常なメッセージである旨の判定結果Aを出力する。また、判定部54は、算出した差Dが閾値Tbより大きい場合(Tb<D)(ステップS12において「B」)、第1の判定結果として、当該メッセージが不正メッセージである旨の判定結果Bを出力する。
【0082】
また、判定部54は、算出した差Dが閾値Taより大きく、かつ閾値Tb以下である場合(Ta<D≦Tb)(ステップS12において「C」)、第2の判定結果として、当該メッセージが、正常なメッセージであるか、または不正メッセージであるかを明確に判定することのできないメッセージ(以下、「不明メッセージ」とも称する。)である旨の判定結果Cを出力する。
【0083】
次に、判定部54は、判定結果A,Bを出力した場合と、判定結果Cを出力した場合とで、当該メッセージに関して互いに異なる処理を行う。たとえば、判定部54は、判定X1において判定結果Aを出力した場合(ステップS12において「A」)、当該メッセージのID、および当該メッセージに含まれるデータ等を記憶部52に保存し、また、当該メッセージの中継処理を許可する旨の指示を通信処理部51に対して行うなどの正常判定用処理を行う(ステップS13)。
【0084】
一方、判定部54は、判定X1において判定結果Cを出力した場合(ステップS12において「C」)、後述のように、判定結果Cの統計値を算出し、算出した統計値に基づいて、車載ネットワーク12において不正メッセージが存在するか否かを判定する不明判定用処理を行う(ステップS14)。
【0085】
また、判定部54は、判定X1において判定結果Bを出力した場合(ステップS12において「B」)、たとえば、IPS(Intrusion Prevention System)処理などの不正判定用処理を行う。
【0086】
具体的には、判定部54は、不正判定用処理として、たとえば、不正メッセージの送信元を特定し、特定した車載通信機111または制御装置122をリセットし、当該不正メッセージに含まれるデータを破棄して、代替値を示すデータに差し替え、差し替え後のメッセージの中継処理を通信処理部51に対して指示する。また、判定部54は、不正判定用処理として、たとえば、不正メッセージが伝送されていることを対象車両1内または対象車両1外における上位装置へ通信処理部51経由で通知する(ステップS15)。
【0087】
判定部54は、判定対象とすべきメッセージが記憶部52に新たに保存されると、ステップS11以降の動作を再び行う。
【0088】
なお、判定部54は、対象車両1の車速など、判定対象となるメッセージに含まれるデータの示す計測結果を判定X1に用いる構成に限らない。判定部54は、たとえば、判定対象となるメッセージが周期メッセージである場合、判定X1において、周期メッセージの送信間隔と、当該周期メッセージの正常時における送信間隔とを比較する構成でもよい。
【0089】
また、不正メッセージを検知する検知装置は、ゲートウェイ装置に限らず、メッセージの中継処理を行わない装置であってもよい。この場合、判定部54に相当する、当該装置における判定部は、判定結果Aを出力した場合、正常判定用処理(ステップS13)を行わない構成であってもよい。
【0090】
[不明判定処理の詳細]
図6は、本開示の実施の形態に係る検知装置における判定部による不正メッセージに関する判定の、不明判定処理の詳細を含む動作手順を定めたフローチャートである。
図6では、
図5に示す不明判定用処理(ステップS14)の詳細を示し、さらに、
図5に対して複数のステップを追加している。
【0091】
ここでは、記憶部52には、閾値Ta,Tbに加えて、さらに、閾値Tc(第3閾値)が保存されているとする。閾値Ta,Tb,Tcの大小関係は、Ta<Tc<Tbである。
【0092】
図6を参照して、判定部54は、判定X1において判定結果Cを出力した場合(ステップS12において「C」)、閾値Tcを用いて不正メッセージに関する判定X2を行い、判定X2において、判定対象であるメッセージが不正メッセージである可能性に応じた種類の判定結果を出力する。
【0093】
より詳細には、判定部54は、ステップS11において算出した差Dと、記憶部52に保存されている3つの閾値Ta,Tb,Tcとを比較し、比較結果に応じた種類の判定結果を出力する判定X2を行う(ステップS21)。
【0094】
具体的には、判定部54は、算出した差Dが閾値Taより大きく、かつ閾値Tc以下である場合(Ta<D≦Tc)、判定対象であるメッセージが正常である可能性の高い不明メッセージである旨の判定結果C1を出力する(ステップS21において「C1」)。
【0095】
また、判定部54は、算出した差Dが閾値Tcより大きく、かつ閾値Tb以下である場合(Tc<D≦Tb)、判定対象であるメッセージが不正メッセージである可能性の高い不明メッセージである旨の判定結果C2を出力する(ステップS21において「C2」)。
【0096】
次に、判定部54は、判定結果Cの統計値として、判定X2の複数回分の統計値を算出する。たとえば、判定部54は、判定結果Cの統計値として、判定結果Cの出力回数、すなわち判定X2における判定結果C1または判定結果C2の出力回数をカウントする。
【0097】
このとき、判定部54は、差Dと閾値Ta,Tb,Tcとの大小関係に応じて、カウントアップ値を変更する。言い換えると、判定部54は、カウント値の算出において、判定結果Cの種類に応じた重み付けを行う。すなわち、判定部54は、判定結果Cの種類に応じて、カウントアップ値の重み付けを行う。
【0098】
たとえば、判定部54は、判定X2において判定結果C1を出力した場合(ステップS21において「C1」)、カウンタ53のカウント値を1つ増加させる(ステップS22)。
【0099】
一方、判定部54は、判定X2において判定結果C2を出力した場合(ステップS21において「C2」)、カウンタ53のカウント値をn増加させる。nは、2以上の整数である(ステップS23)。
【0100】
次に、判定部54は、カウント値がm以上であるか否かを確認する。mは、カウンタ53の複数のカウントアップ値の最大値より大きい。ここでは、mは、当該最大値であるnより大きい整数である。(ステップS24)。
【0101】
次に、判定部54は、カウント値がm未満である場合(ステップS24において「NO」)、たとえば、判定対象であるメッセージの中継処理を許可する旨の指示を通信処理部51に対して行う(ステップS25)。
【0102】
次に、判定部54は、判定対象とすべきメッセージが記憶部52に新たに保存されるまで待機する。そして、判定部54は、判定対象とすべきメッセージが記憶部52に新たに保存されると、ステップS11以降の動作を再び行う。
【0103】
次に、判定部54は、新たに保存されたメッセージに対する判定X1において判定結果Aを出力した場合(ステップS12において「A」)、カウント値をリセットして(ステップS26)、正常判定用処理を行う(ステップS13)。
【0104】
一方、判定部54は、新たに保存されたメッセージに対する判定X1において判定結果Bを出力した場合(ステップS12において「B」)、カウント値をリセットして(ステップS27)、不正判定用処理を行う(ステップS15)。
【0105】
また、判定部54は、新たに保存されたメッセージに対する判定X1において判定結果Cを出力した場合(ステップS12において「C」)、ステップS21以降の動作を再び行う。
【0106】
また、判定部54は、ステップS24において、カウント値がm以上である場合(ステップS24において「YES」)、車載ネットワーク12において不正メッセージが存在すると判定する。そして、判定部54は、カウント値をリセットして(ステップS27)、たとえば直近の判定対象であるメッセージに対して不正判定用処理を行う(ステップS15)。
【0107】
このように、判定結果Cを複数回連続して出力した場合、不正メッセージが存在すると判定する構成により、不正メッセージに関する誤判定を防ぎ、より正確な判定を行うことができる。
【0108】
また、判定結果C1を出力する場合と比較して、判定結果C2を出力する場合におけるカウント値の増加量を大きくする構成により、判定結果C1を出力するよりも、判定結果C2を出力する方が、不正メッセージが存在するとの判定結果を得やすく、より一層正確な判定を行うことができる。
【0109】
なお、記憶部52には、3つの閾値Ta,Tb,Tcが保存されている構成に限らず、2つの閾値、または4つ以上の閾値が保存されていてもよい。また、判定部54は、記憶部52に4つ以上の閾値が保存されている場合、ステップS21の判定X2において、4つ以上の閾値を用いて、3種類以上の判定結果C1,C2,C3,・・・を出力することができる。
【0110】
また、判定部54は、判定結果Cの統計値として、判定結果C1,C2の出力回数に基づくカウント値を算出する構成に限らない。判定部54は、判定結果Cの統計値として、たとえば、判定X2の判定回数に対する判定結果C2の出力回数の割合を算出してもよい。
【0111】
具体的には、判定部54は、たとえば、判定X1において判定結果Cを出力するたびに判定X2を行い、直近10回分の判定X2の判定結果のうち判定結果C2を出力した回数が所定数以上である場合、車載ネットワーク12において不正メッセージが存在すると判定する。
【0112】
[不明判定用処理の変形例1]
再び
図5を参照して、判定部54は、判定X1において判定結果Cを出力した場合、
図6に示すような不明判定用処理を行う構成に限定されず、たとえば、不明判定用処理(ステップS14)として、判定結果Cを出力したことを示すログデータを作成する構成であってもよい。
【0113】
この場合、判定部54は、たとえば、判定対象であるメッセージが不明メッセージである旨、当該不明メッセージのID、および当該メッセージに含まれるデータ等をログデータとして記憶部52に保存し、また、当該メッセージの中継処理を許可する旨の指示を通信処理部51に対して行う。
【0114】
[不明判定用処理の変形例2]
図7は、本開示の実施の形態に係る検知装置における判定部による不正メッセージに関する判定の、変形例2に係る不明判定処理の詳細を含む動作手順を定めたフローチャートである。
図7は、
図5に示す不明判定用処理(ステップS14)の詳細を示す。
【0115】
図7を参照して、判定部54は、判定X1において判定結果Cを出力した場合(ステップS12において「C」)、判定対象としたメッセージとは異なる他のメッセージに対して、判定X1とは異なる内容の判定X3を行い、判定X3の判定結果に基づいて、車載ネットワーク12において不正メッセージが存在するか否かを判定する。
【0116】
より詳細には、判定部54は、判定X1において判定結果Cを出力した場合(ステップS12において「C」)、たとえば、判定X1の判定対象であるメッセージに含まれるデータとは異なる種類の、対象車両1に関する計測結果を示すデータを含む他のメッセージに対して、判定X3を行う。
【0117】
ここでは、判定部54は、車速を示すメッセージを判定X1の判定対象とし、エンジン回転数を示すメッセージを判定X3の判定対象とすることとする。また、記憶部52には、正常時におけるエンジン回転数、および正常時におけるエンジン回転数との差Dsの閾値Ts(第4閾値)を示す検出条件情報が登録されているとする。正常時におけるエンジン回転数は、たとえば、正常時における対象車両1の走行時のエンジン回転数の平均値である。
【0118】
この場合、判定部54は、たとえば、メッセージ取得部55により記憶部52に保存された複数のメッセージのうち、エンジン回転数を示すメッセージに含まれるデータを取得する。そして、判定部54は、取得したデータの示すエンジン回転数と、記憶部52に保存されている正常時におけるエンジン回転数との差Dsを算出する(ステップS31)。
【0119】
次に、判定部54は、算出した差Dsと、記憶部52に保存されている閾値Tsとを比較する判定X3を行う(ステップS32)。
【0120】
そして、判定部54は、算出した差Dsが閾値Ts以下である場合(Ds≦Ts)(ステップS32において「YES」)、車載ネットワーク12において不正メッセージは存在しないと判定し、正常判定用処理を行う(ステップS13)。
【0121】
一方、判定部54は、算出した差Dsが閾値Tsより大きい場合(Ts<Ds)(ステップS32において「NO」)、車載ネットワーク12において不正メッセージが存在すると判定し、不正判定用処理を行う(ステップS15)。
【0122】
なお、判定部54は、判定X1(ステップS12)において、車速の計測結果が所定条件を満たすか否かに応じて、判定X3(ステップS32)の判定基準を変える構成であってもよい。
【0123】
ここで、対象車両1が高速で走行している場合の方が、低速で走行している場合と比較して、エンジン回転数が上がりにくい。このため、判定部54は、たとえば、対象車両1が高速で走行している場合、対象車両1が低速で走行している場合と比較して、判定X3における、不正メッセージが存在していると判定するための基準を低く設定する。
【0124】
より詳細には、記憶部52には、対象車両1が低速で走行しているか否かの判断基準となる車速Pが保存されているとする。この場合、判定部54は、判定X1において判定結果Cを出力した場合(ステップS12において「C」)、判定対象としたメッセージの示す車速と、記憶部52に保存されている車速Pとを比較する。
【0125】
そして、判定部54は、当該メッセージの示す車速が車速P以下である場合、対象車両1は低速で走行していると判定する。一方、判定部54は、当該メッセージの示す車速が車速Pより大きい場合、対象車両1は高速で走行していると判定する。
【0126】
そして、判定部54は、対象車両1が高速で走行していると判定した場合、判定X3において、不正メッセージが存在していると判定するための基準として閾値Ts1を用いる。一方、判定部54は、対象車両1が低速で走行していると判定した場合、判定X3において、不正メッセージが存在していると判定するための基準として、閾値Ts1よりも大きい閾値Ts2を用いる。
【0127】
具体的には、判定部54は、対象車両1が高速で走行していると判定した場合であり、かつ判定X3の判定対象であるメッセージの示すエンジン回転数と、正常時におけるエンジン回転数との差Dsが閾値Ts1以下である場合(Ds≦Ts1)、車載ネットワーク12において不正メッセージが存在しないと判定する。
【0128】
一方、判定部54は、対象車両1が高速で走行していると判定した場合であり、かつ差Dsが閾値Ts1より大きい場合(Ts1<Ds)、車載ネットワーク12において不正メッセージが存在すると判定する。
【0129】
また、判定部54は、対象車両1が低速で走行していると判定した場合であり、かつ差Dsが閾値Ts2以下である場合(Ds≦Ts2)、車載ネットワーク12において不正メッセージが存在しないと判定する。
【0130】
一方、判定部54は、対象車両1が高速で走行していると判定した場合であり、かつ差Dsが閾値Ts2より大きい場合(Ts2<Ds)、車載ネットワーク12において不正メッセージが存在すると判定する。
【0131】
また、判定X1に用いられるデータの種類と、判定X3に用いられるデータの種類とは同じであってもよい。たとえば、判定部54は、記憶部52に新たに保存された、車速を示すメッセージを判定X1の判定対象として、記憶部52に保存されている過去の車速を示すメッセージを判定X3の判定対象としてもよい。
【0132】
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は、上記説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0133】
以上の説明は、以下に付記する特徴を含む。
【0134】
[付記1]
車両に搭載される車載ネットワークにおける不正メッセージを検知する検知装置であって、
前記車載ネットワークにおける送信メッセージを取得するメッセージ取得部と、
前記メッセージ取得部によって取得された前記送信メッセージに対する判定を行うことにより、前記車載ネットワークにおける不正メッセージに関する判定を行う判定部とを備え、
前記判定部は、前記メッセージ取得部によって取得された前記送信メッセージが前記不正メッセージであるか否かの第1の判定結果に加え、前記送信メッセージに関する第2の判定結果を出力可能であり、
前記判定部は、前記第2の判定結果を出力した場合、不正メッセージに関する他の判定を行い、前記他の判定において、判定対象である前記送信メッセージが不正メッセージである可能性に応じた種類の判定結果を出力し、
前記判定部は、前記他の判定の複数回分の統計値に基づいて、前記不正メッセージが存在するか否かを判定する、検知装置。
【符号の説明】
【0135】
1 対象車両
12 車載ネットワーク
13,14 バス
51 通信処理部
52 記憶部
53 カウンタ
54 判定部
55 メッセージ取得部
101 ゲートウェイ装置(検知装置)
111 車載通信機
112 ポート
121 バス接続装置群
122 制御装置
301 車載通信システム