(57)【要約】  受信メッセージの異常を判定する異常判定方法であって、周期性を有する複数のメッセージを含む複数のメッセージであって、固定されている値を有する第１フィールドと、変化する値を有する第２フィールドとをそれぞれが含む複数のメッセージのそれぞれを前記受信メッセージとして受信し、前記異常判定方法が実行されうる時間、負荷量、データ量、または、メッセージの個数のうちの１以上の基準に応じて、前記周期性に基づく受信タイミング、または、前記受信メッセージの個数が用いられる異常判定、前記第１フィールドが用いられる異常判定、および、前記第２フィールドが用いられる異常判定を含む複数の異常判定のうちの１以上でそれぞれが構成される複数の組み合わせのいずれで判定が行われるかを選択する（Ｓ１１０３）。
2020162075.tif 000002
【特許請求の範囲】
【請求項１】
受信メッセージの異常を判定する異常判定方法であって、
周期性を有する複数のメッセージを含む複数のメッセージであって、固定されている値を有する第１フィールドと、変化する値を有する第２フィールドとをそれぞれが含む複数のメッセージのそれぞれを前記受信メッセージとして受信し、
前記異常判定方法が実行されうる時間、負荷量、データ量、または、メッセージの個数のうちの１以上の基準に応じて、前記周期性に基づく受信タイミング、または、前記受信メッセージの個数が用いられる異常判定、前記第１フィールドが用いられる異常判定、および、前記第２フィールドが用いられる異常判定を含む複数の異常判定のうちの１以上でそれぞれが構成される複数の組み合わせのいずれで判定が行われるかを選択する、
異常判定方法。
【請求項２】
前記異常判定を前記選択された組み合わせで実行する、
請求項１に記載の異常判定方法。
【請求項３】
前記選択された異常判定が実行された後に前記異常判定方法を実行するための時間に別の異常判定が行われる時間が残った場合、選択されなかった前記異常判定を実行する、
請求項２に記載の異常判定方法。
【請求項４】
前記異常判定方法が行われた時に、前記複数の異常判定のうちの、前回の情報を用いる前記異常判定が実行されていなかった場合、次に前記異常判定方法が行われる時に、前記前回の情報を用いる異常判定に用いられる前記前回の情報をリセットする、
請求項１または２に記載の異常判定方法。
【請求項５】
前記受信メッセージを受信するためのネットワークの負荷率が所定の閾値を下回ったとき、直前に受信した、種類の異なる前記受信メッセージの情報を、前記リセットされた前回の情報の代わりの情報として用いる、
請求項４に記載の異常判定方法。
【請求項６】
ネットワーク及び前記ネットワークに接続される１以上の電子制御ユニットを含む車載ネットワークシステムにおける異常判定装置であって、
１個以上のプロセッサと、
前記１個以上のプロセッサからアクセス可能な記憶部と、を備え、
前記１個以上のプロセッサは、
前記ネットワークから、周期性を有する複数のメッセージを含む複数のメッセージであって、固定されている値を有する第１フィールドと、変化する値を有する第２フィールドとをそれぞれが含む複数のメッセージのそれぞれを受信メッセージとして受信し、
前記異常判定装置が行う異常判定方法が実行されうる時間、負荷量、データ量、または、メッセージの個数のうちの１以上の基準に応じて、前記周期性に基づく受信タイミング、または、前記受信メッセージの個数が用いられる異常判定、前記第１フィールドが用いられる異常判定、および、前記第２フィールドが用いられる異常判定を含む複数の異常判定のうちの１以上でそれぞれが構成される複数の組み合わせのいずれで判定が行われるかを選択する、
異常判定装置。
【請求項７】
コンピュータに請求項１に記載の異常判定方法を実施させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、車載ネットワークにおける異常なメッセージを検知する際の処理負荷に応じた検知機能の判定方法等に関する。
【背景技術】
【０００２】
近年、自動車の中のシステムには、電子制御ユニット（ＥＣＵ：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）と呼ばれる装置が多数配置されている。これらのＥＣＵをつなぐ通信ネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の通信規格が存在する。その中でも最も主流な車載ネットワークの規格の一つに、Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（以降、ＣＡＮと呼ぶ）がある。【０００３】
ＣＡＮの規格に拠るネットワーク（以下、ＣＡＮネットワークともいう）では、通信路（バス）は２本のケーブルで構成され、バスに接続されているＥＣＵはノードとも呼ばれる。バスに接続されている各ノードは、フレームまたはメッセージと呼ばれる単位でデータを送受信する。またＣＡＮでは、データの送信先又は送信元を示す識別子は用いられない。【０００４】
フレームを送信するノード（以下、送信ノードともいう）は、メッセージ毎にメッセージの種類を示すメッセージＩＤと呼ばれるＩＤを付けてメッセージを送信、つまりバスに信号を送出する。メッセージを受信するノード（以下、受信ノードともいう）は、予め決められたメッセージＩＤを含むメッセージのみ受信、つまりバスから信号を読み取る。同一ＩＤのメッセージは、一定の周期で送信される。【０００５】
上述の通り、自動車の中のシステムに多数配置されているＥＣＵは、それぞれがＣＡＮネットワークに接続され、様々なメッセージを互いにやりとりしながら動作している。【０００６】
ここで、ＣＡＮネットワークの外部と通信機能を持つＥＣＵが、外部から不正にアクセスされること等により、何者かに不正に制御され、ＣＡＮネットワークに対して異常なメッセージ（攻撃メッセージともいう）を送信することが起こり得る。このような何者かに不正に制御されたＥＣＵ（不正ＥＣＵともいう）は、例えば他のＥＣＵになりすまして異常なメッセージを送信し、車両を不正に制御することが可能となる。このような、いわゆるなりすまし攻撃を検知するための方法が、例えば、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２０１５／１５１４１８号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に開示されている方法では、車載ネットワークに送出された異常なメッセージを検知するための異常検知処理が実行されることが可能な時間が短い場合に、異常検知処理が実行されないという課題がある。【０００９】
そこで、本開示は、効果的な異常検知処理が行える異常判定方法、および、異常判定装置等を提供する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本開示の一態様に係る異常判定方法は、受信メッセージの異常を判定する異常判定方法であって、周期性を有する複数のメッセージを含む複数のメッセージであって、固定されている値を有する第１フィールドと、変化する値を有する第２フィールドとをそれぞれが含む複数のメッセージのそれぞれを前記受信メッセージとして受信し、前記異常判定方法が実行されうる時間、負荷量、データ量、または、メッセージの個数のうちの１以上の基準に応じて、前記周期性に基づく受信タイミング、または、前記受信メッセージの個数が用いられる異常判定、前記第１フィールドが用いられる異常判定、および、前記第２フィールドが用いられる異常判定を含む複数の異常判定のうちの１以上でそれぞれが構成される複数の組み合わせのいずれで判定が行われるかを選択する。【００１１】
なお、これらの包括的または具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なＣＤ−ＲＯＭなどの非一時的な記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【００１２】
本開示の一態様に係る異常判定方法等によれば、検知処理時間に応じて適切な異常検知処理を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施の形態１における車載ネットワークシステムの全体構成を示すブロック図である。
【図２】図２は、実施の形態１におけるＣＡＮプロトコルのメッセージ（データフレーム）のフォーマットを示す図である。
【図３】図３は、実施の形態１における車載ネットワークシステムに含まれるゲートウェイの一例を示すブロック図である。
【図４】図４は、実施の形態１における受信ＩＤリストの一例を示す図である。
【図５】図５は、実施の形態１における転送ルールの一例を示す図である。
【図６】図６は、実施の形態１における異常検知処理機能群の一例を示すブロック図である。
【図７】図７は、実施の形態１における判定機能と処理時間・検知性能の関係の一例を示す図である。
【図８】図８は、実施の形態１における判定機能と処理時間・検知性能の関係の一例を示す図である。
【図９】図９は、実施の形態１における判定機能と処理時間・検知性能の関係の一例を示す図である。
【図１０】図１０は、実施の形態１における車載ネットワークシステムに含まれるＥＣＵの一例を示すブロック図である。
【図１１】図１１は、実施の形態１における転送処理の一例を示すフローチャートである。
【図１２】図１２は、実施の形態１における異常検知処理の別の一例を示すフローチャートである。
【図１３】図１３は、実施の形態１における異常検知処理のさらに別の一例を示すフローチャートである。
【図１４】図１４は、実施の形態１における異常検知処理の他の一例を示すフローチャートである。
【図１５】図１５は、実施の形態１における異常検知処理のさらに他の一例を示すフローチャートである。
【図１６】図１６は、実施の形態１における異常検知処理のその他の一例を示すフローチャートである。
【図１７】図１７は、実施の形態１におけるリセット処理を含む異常検知処理の一例を示すフローチャートである。
【図１８】図１８は、実施の形態１におけるリセット処理を含む異常検知処理の別の一例を示すフローチャートである。
【図１９】図１９は、実施の形態１におけるリセット処理を含む異常検知処理のさらに別の一例を示すフローチャートである。
【図２０】図２０は、変形例におけるリセット処理の一例を示す図である。
【図２１】図２１は、実施の形態２における異常検知処理機能群の一例を示すブロック図である。
【図２２】図２２は、実施の形態２における異常検知処理の一例を示すフローチャートである。
【図２３】図２３は、実施の形態２における異常検知処理の別の一例を示すフローチャートである。
【図２４】図２４は、実施の形態２における異常検知処理のさらに別の一例を示すフローチャートである。
【図２５】図２５は、実施の形態２における異常検知処理の他の一例を示すフローチャートである。
【図２６】図２６は、実施の形態２における異常検知処理のさらに他の一例を示すフローチャートである。
【図２７】図２７は、実施の形態３における異常検知処理機能群の一例を示すブロック図である。
【図２８】図２８は、実施の形態３における異常検知処理機能群の別の一例を示すブロック図である。
【図２９】図２９は、実施の形態３における非選択情報の一例を示す図である。
【図３０】図３０は、実施の形態３における異常検知処理の一例を示すフローチャートである。
【図３１】図３１は、実施の形態３における異常検知処理の別の一例を示すフローチャートである。
【図３２】図３２は、実施の形態３における非選択情報後追い処理の一例を示すフローチャートである。
【図３３】図３３は、変形例における判定機能と判定機能の選択条件を示す表である。
【図３４】図３４は、変形例における異常検知処理の一例を示すフローチャートである。
【図３５】図３５は、変形例における異常検知処理の別の一例を示すフローチャートである。
【図３６】図３６は、変形例におけるＥＣＵの一例を示すブロック図である。
【図３７】図３７は、変形例におけるＥＣＵの別の一例を示すブロック図である。
【図３８】図３８は、変形例における車載ネットワークシステムの全体構成を示すブロック図である。
【図３９】図３９は、変形例における車載ネットワークシステムに含まれる通信ＥＣＵの一例を示すブロック図である。
【図４０】図４０は、変形例におけるサーバの一例を示すブロック図である。
【図４１】図４１は、変形例における判定機能と判定機能の選択条件を示す表である。
【発明を実施するための形態】
【００１４】
（本開示の基礎になった知見）
ＣＡＮネットワーク上に異常なメッセージが送信されたことを検知する機能が、当該検知結果、および、当該検知結果に関連する情報をログとして生成し、出力する場合、異常の検知に至った状況の詳細な事後確認がなされるためには、多くのデータが必要とされる。しかし、ログの出力先の記憶容量、または、ログの出力先に検知結果を送出するための通信量が多い場合、多大な時間的または資源的コストがかかる。
【００１５】
そこで、本開示の一態様に係る異常判定方法は、受信メッセージの異常を判定する異常判定方法であって、周期性を有する複数のメッセージを含む複数のメッセージであって、固定されている値を有する第１フィールドと、変化する値を有する第２フィールドとをそれぞれが含む複数のメッセージのそれぞれを前記受信メッセージとして受信し、前記異常判定方法が実行されうる時間、負荷量、データ量、または、メッセージの個数のうちの１以上の基準に応じて、前記周期性に基づく受信タイミング、または、前記受信メッセージの個数が用いられる異常判定、前記第１フィールドが用いられる異常判定、および、前記第２フィールドが用いられる異常判定を含む複数の異常判定のうちの１以上でそれぞれが構成される複数の組み合わせのいずれで判定が行われるかを選択する。
【００１６】
これにより、本開示の一態様に係る異常判定方法は、限られた時間である検知処理時間に応じて、適切な異常検知処理を行うことができる。
【００１７】
また、本開示の一態様に係る異常判定装置は、ネットワーク及び前記ネットワークに接続される１以上の電子制御ユニットを含む車載ネットワークシステムにおける異常判定装置であって、１個以上のプロセッサと、前記１個以上のプロセッサからアクセス可能な記憶部と、を含み、前記１個以上のプロセッサは、前記ネットワークから、周期性を有する複数のメッセージを含む複数のメッセージであって、固定されている値を有する第１フィールドと、変化する値を有する第２フィールドとをそれぞれが含む複数のメッセージのそれぞれを前記受信メッセージとして受信し、前記異常判定方法が実行されうる時間、負荷量、データ量、または、メッセージの個数のうちの１以上の基準に応じて、前記周期性に基づく受信タイミング、または、前記受信メッセージの個数が用いられる異常判定、前記第１フィールドが用いられる異常判定、および、前記第２フィールドが用いられる異常判定を含む複数の異常判定のうちの１以上でそれぞれが構成される複数の組み合わせのいずれで判定が行われるかを選択する。
【００１８】
これにより、本開示の一態様に係る異常判定装置は、限られた時間である検知処理時間に応じて、適切な異常検知処理を行うことができる。
【００１９】
また、本開示の一態様に係るプログラムは、上記の異常判定装置において、前記１個以上のプロセッサに上記の異常判定方法を実施させるためのプログラムである。
【００２０】
これにより、検知処理時間に応じて適切な異常検知処理を行うことができる。
【００２１】
以下、実施の形態について図面を参照しながら具体的に説明する。
【００２２】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置および接続形態、ステップ、ステップの順序などは一例であり、本開示を限定する趣旨ではない。以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素は、任意で含まれる構成要素として説明されるものである。
【００２３】
（実施の形態１）
［１．概要］
本実施の形態では、車載ネットワークシステムにおいて、異常検知処理を実行されうる時間に応じて、異常を判定する機能の実行を適切に制御し、異常を判定する場合について図面を参照しながら、詳細に説明する。
【００２４】
［１．１  車載ネットワークシステムの全体構成］
図１は、本実施の形態における車載ネットワークシステムの全体構成を示すブロック図である。
【００２５】
図１において、車載ネットワークシステム１０は、ＣＡＮネットワークで構成され、ＥＣＵ１００ａ、ＥＣＵ１００ｂ、ＥＣＵ１００ｃ、及び、ＥＣＵ１００ｄと、バス２００ａ及びバス２００ｂと、ゲートウェイ３００とを含む。なお、ＥＣＵ１００ａ、ＥＣＵ１００ｂ、ＥＣＵ１００ｃ、及び、ＥＣＵ１００ｄ等は、電子制御ユニットの一例である。
【００２６】
以下では、ＥＣＵ１００ａ、ＥＣＵ１００ｂ、ＥＣＵ１００ｃ、及び、ＥＣＵ１００ｄに対して、これらを集合的に、又は特定しない一部を指して、ＥＣＵ１００として説明する場合がある。
【００２７】
また、以下では、バス２００ａ、及び、バス２００ｂに対して、これらを集合的に、又は特定しない一方を指して、バス２００として説明する場合がある。
【００２８】
ＥＣＵ１００ａはエンジン１０１に接続され、ＥＣＵ１００ｂはブレーキ１０２に接続され、ＥＣＵ１００ｃはドア開閉センサ１０３に接続され、ＥＣＵ１００ｄはウィンドウ開閉センサ１０４に接続されている。
【００２９】
ＥＣＵ１００は、接続されている機器の状態を表すメッセージを取得し、取得した状態を表すメッセージを周期的にバス２００に送出している。例えばＥＣＵ１００ａは、エンジン１０１の状態の１つである回転数に関する情報を取得し、この回転数を表すデータ値を含むメッセージに所定のＩＤを付けてバス２００に送出する。
【００３０】
また、各ＥＣＵ１００は、他のＥＣＵ１００が送信したメッセージをバス２００から読み出し、メッセージに付されたＩＤに応じて選択的に受信する。この選択的な受信については後述する。
【００３１】
ゲートウェイ３００は、ＥＣＵ１００ａ及びＥＣＵ１００ｂが接続されているバス２００ａと、ＥＣＵ１００ｃ及びＥＣＵ１００ｄが接続されているバス２００ｂとを接続している。ゲートウェイ３００は一方のバス２００から受信したメッセージを、もう一方のバス２００に転送する機能を持つ。ゲートウェイ３００もまた、ＣＡＮネットワーク上ではひとつのノードである。
【００３２】
なお、車載ネットワークシステムは、メッセージが異常なメッセージであるか否かの判定を行い、異常判定方法等が適用可能な対象を説明するための例であり、その適用対象は車載ネットワークシステムに限定されない。
【００３３】
［１．２  メッセージのデータフォーマット］
図２は、ＣＡＮプロトコルのメッセージ（データフレーム）のフォーマットを示す図である。ここではＣＡＮプロトコルにおける標準ＩＤフォーマットにおけるメッセージを示している。
【００３４】
メッセージは、Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ（ＳＯＦ）と、ＩＤフィールド、Ｒｅｍｏｔｅ  Ｔｒａｎｓｉｍｉｓｓｉｏｎ  Ｒｅｑｕｅｓｔ（ＲＴＲ）と、ＩＤＥ（ＩＤｅｎｔｉｆｉｅｒ  Ｅｘｔｅｎｓｉｏｎ）と、予約ｂｉｔ（ｒ）と、データレングスコード（ＤＬＣ）と、データフィールドと、ＣＲＣ（Ｃｙｃｒｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）シーケンス、ＣＲＣデリミタ（図中、左のＤＥＬ）と、ＡＣＫ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）スロットと、ＡＣＫデリミタ（図中、右のＤＥＬ）と、ＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｒａｍｅ）とから構成される。
【００３５】
ＳＯＦは、１ｂｉｔのドミナントである。ドミナントは、優性の意である。ドミナントは、データの伝達にデジタル方式が用いられるＣＡＮネットワークにおいて、“０”の値を送信するようにバスを構成する２本のケーブルに電圧がかけられた状態、または送信されるこの“０”の値のことである。これに対し、バスを構成する２本のケーブルに“１”の値を送信するように電圧がかけられた状態、または送信されるこの“１”の値のことはレセシブと呼ばれる。レセシブは、劣勢の意である。２つのノードからバスに同時に“０”の値と“１”の値とが送信された場合には、“０”の値が優先される。アイドル時のバスはレセシブの状態である。各ＥＣＵ１００は、バス２００の状態をレセシブからドミナントへ変化させることでメッセージの送信を開始し、他のＥＣＵ１００はこの変化を読み取って同期する。図２において、メッセージを構成するドミナント又はレセシブを示す線が実線である部分は、ドミナント又はレセシブの各値を取り得ることを示す。ＳＯＦはドミナントの状態で固定されているため、ドミナントの線は実線であり、レセシブの線は破線である。
【００３６】
ＩＤとは、メッセージが含むデータの種類を示す１１ｂｉｔの値である。またＣＡＮでは、複数のノードが同時に送信を開始したメッセージ間での通信調停において、ＩＤの値がより小さいメッセージがより高い優先度となるよう設計されている。ＩＤとは、メッセージＩＤおよびＣＡＮ  ＩＤと同義である。
【００３７】
ＲＴＲとは、フレームがメッセージであることを示す１ｂｉｔのドミナントである。
【００３８】
ＩＤＥとは、それぞれ１ｂｉｔのドミナントである。メッセージはデータフレームともいう。
【００３９】
ＤＬＣは、続くデータフィールドの長さを示す４ｂｉｔの値である。
【００４０】
データフィールドは、送信されるデータの内容を示す値であり、最大６４ｂｉｔ長で、８ｂｉｔ単位で長さを調整できる。送られるデータのこの部分への割り当てに関する仕様は、車種又は製造者に依存する。
【００４１】
ＣＲＣシーケンスは、ＳＯＦ、ＩＤフィールド、コントロールフィールド、データフィールドの送信値より算出される１５ｂｉｔの値である。
【００４２】
ＣＲＣデリミタは１ｂｉｔのレセシブ固定の、ＣＲＣシーケンスの終了を表す区切り記号である。受信ノードは、受信したメッセージのＳＯＦ、ＩＤフィールド、コントロールフィールド、及びデータフィールドの値から算出した結果をＣＲＣシーケンスの値と比較することで異常の有無を判断する。
【００４３】
ＡＣＫスロットは１ｂｉｔ長で、送信ノードはこの部分でレセシブを送信する。受信ノードはＣＲＣシーケンスまで正常に受信ができていれば確認応答としてドミナントを送信する。ドミナントが優先されるため、１メッセージの通信がＣＲＣシーケンスまで正常に行われていれば、ＡＣＫスロットの送信中のバス２００はドミナントである。
【００４４】
ＡＣＫデリミタは１ｂｉｔのレセシブに固定されており、ＡＣＫスロットの終了を表す区切り記号である。
【００４５】
ＥＯＦは７ｂｉｔのレセシブに固定されており、メッセージの終了を示す。  
【００４６】
［１．３  ゲートウェイの構成］
図３は、実施の形態１における車載ネットワークシステム１０に含まれるゲートウェイ３００の一例を示すブロック図である。図３において、ゲートウェイ３００は、フレーム送受信部３１０と、フレーム解釈部３２０と、受信ＩＤ判定部３３０と、受信ＩＤリスト保持部３４０と、フレーム処理部３５０と、転送ルール保持部３６０と、異常検知処理機能群３７０と、フレーム生成部３８０とを備える。
【００４７】
なお、これらの構成は機能を示す構成であり、ゲートウェイ３００は、例えばプロセッサで実現される処理部、半導体メモリ等で実現される記憶部、入出力ポートで実現される入出力部等を備える情報処理装置として提供される。
【００４８】
上記の機能を示す構成は、記憶部に保持されるプログラムを処理部により読み出し、実行し、記憶部へ所定のデータを記録することで実現される。若しくは、記憶部へ所定のデータを記録することの代わりに、入出力部を介してデータの送受信を実行することでこれらの構成が実現されてもよい。又は、上記の機能を示す構成は、これらの組み合わせで実現されてもよい。
【００４９】
フレーム送受信部３１０は、バス２００ａ、２００ｂのそれぞれに対して、ＣＡＮのプロトコルに従ったメッセージを送受信する。
【００５０】
より具体的には、フレーム送受信部３１０は、バス２００に送出されたメッセージを１ｂｉｔずつ読み出し、読み出したメッセージをフレーム解釈部３２０に転送する。
【００５１】
また、フレーム送受信部３１０は、フレーム生成部３８０より送信されたバス情報に応じて、メッセージをバス２００ａ及び２００ｂに１ｂｉｔずつ送出する。
【００５２】
フレーム送受信部３１０は、バス２００ａから受信したメッセージをバス２００ｂに送信し、バス２００ｂから受信したメッセージをバス２００ａに送信することでバス２００間でのメッセージの転送を実行する。
【００５３】
フレーム解釈部３２０は、フレーム送受信部３１０よりメッセージの値を受け取り、ＣＡＮプロトコルにおける各フィールドにマッピングして、受信したメッセージの解釈を行う。フレーム解釈部３２０は、ＩＤフィールドの値と解釈した一連の値を、受信ＩＤ判定部３３０へ転送する。
【００５４】
フレーム解釈部３２０はさらに、受信ＩＤ判定部３３０から送出される判定結果に応じて、メッセージのＩＤフィールドの値及びＩＤフィールド以降に現れるデータフィールドをフレーム処理部３５０へ転送するか、メッセージの受信を中止するかを決定する。
【００５５】
また、フレーム解釈部３２０は、受信したメッセージがＣＡＮプロトコルに則っていないメッセージと判断した場合は、エラーフレームを送信するようにフレーム生成部３８０へ要求する。
【００５６】
エラーフレームは、ＣＡＮネットワーク上でエラーが発生した場合に、ノードから送信される、上述のメッセージとは異なる、ＣＡＮプロトコルで規定される所定のフォーマットのフレームである。エラーフレームがバスに送出されると、そのネットワークでのメッセージの送信は中断される。
【００５７】
また、フレーム解釈部３２０は、他のノードが送信したエラーフレームを受信したと解釈した場合、読み取り中のメッセージを破棄する。
【００５８】
受信ＩＤ判定部３３０は、フレーム解釈部３２０からＩＤフィールドの値を受け取り、受信ＩＤリスト保持部３４０が保持しているメッセージＩＤのリストに従い、読み出したメッセージを受信するか否かの判定を行う。受信ＩＤ判定部３３０は、この判定の結果をフレーム解釈部３２０へ送出する。
【００５９】
受信ＩＤリスト保持部３４０は、ゲートウェイ３００が受信するメッセージＩＤのリスト（受信ＩＤリストともいう）を保持する。図４は、実施の形態１における受信ＩＤリストの一例を示す図である。図４における受信ＩＤリストの詳細は、後述する。
【００６０】
フレーム処理部３５０は、転送ルール保持部３６０が保持するデータ転送に関するルールに従って、受信したメッセージのＩＤに応じて転送先のバス２００を決定し、転送先となるバス２００を示す情報と、フレーム解釈部３２０より送出されたメッセージＩＤと、転送するデータとをフレーム生成部３８０へ送出する。
【００６１】
またフレーム処理部３５０は、フレーム解釈部３２０より受け取ったメッセージを異常検知処理機能群３７０へ送り、異常検知処理機能群３７０に対して、そのメッセージが、異常なメッセージであるか否かの判定を行うように要求する。フレーム処理部３５０は、異常検知処理機能群３７０において異常なメッセージであると判定されたメッセージを転送しない。
【００６２】
転送ルール保持部３６０は、バス２００毎のデータ転送に関するルール（以下、転送ルールともいう）を保持する。図５は、実施の形態１における転送ルールの一例を示す図である。図５における転送ルールの詳細は、後述する。
【００６３】
異常検知処理機能群３７０は、受信中のメッセージが異常なメッセージであるか否かの判定する機能群である。異常検知処理機能群３７０に含まれる機能構成の詳細は後述する。異常検知処理機能群３７０は、判定結果をフレーム処理部３５０へ送出する。
【００６４】
フレーム生成部３８０は、フレーム解釈部３２０からのエラーフレーム送信の要求に従い、エラーフレームを生成し、フレーム送受信部３１０にエラーフレームを送出させる。
【００６５】
またフレーム生成部３８０は、フレーム処理部３５０より受け取ったメッセージＩＤ及びデータを使ってメッセージフレームを生成し、バス情報とともに、フレーム送受信部３１０にメッセージフレームを送出する。
【００６６】
［１．４  受信ＩＤリスト］
図４に示されるように、受信ＩＤリストは、ゲートウェイ３００が、受信して処理を行うメッセージのメッセージＩＤのリストであり、受信ＩＤリスト保持部３４０で保持されている。
【００６７】
図４において、受信ＩＤリストは、各行にメッセージのＩＤが格納されている。図４の受信ＩＤリストは、メッセージＩＤが、「１」、「２」、「３」及び「４」であり、ゲートウェイ３００は、これらのメッセージＩＤのメッセージを受信する。ゲートウェイ３００は、受信ＩＤリストに含まれないメッセージＩＤのメッセージの受信を中止する。
【００６８】
なお、ＩＤの値及び受信ＩＤリストに含まれるＩＤの個数は説明のための一例であり、ゲートウェイ３００で用いられる受信ＩＤリストの構成をこれに限定するものではない。
【００６９】
［１．５  転送ルール］
転送ルールは、転送ルール保持部３６０で保持されている。図５において、転送ルールは、各行にメッセージの転送元のバス２００と転送先のバス２００、及び転送対象のメッセージＩＤの組み合わせが格納されている。
【００７０】
具体的には、転送ルールの１行目は、転送元「バス２００ａ」、転送先「バス２００ｂ」、ＩＤ「＊」であり、ゲートウェイ３００は、バス２００ａから受信するメッセージを、ＩＤが何であってもバス２００ｂに転送する、というルールである。転送ルールの２行目は、転送元「バス２００ｂ」、転送先「バス２００ａ」、ＩＤ「３」であり、ゲートウェイ３００は、バス２００ｂから受信するメッセージは、ＩＤが「３」のメッセージであればバス２００ａに転送する、というルールである。
【００７１】
［１．６  異常検知処理機能群の構成］
図６は、実施の形態１における異常検知処理機能群の一例を示すブロック図である。図６において、異常検知処理機能群３７０は、判定機能選択部３７１と、制御部３７２と、異常検知部３７３と、検知ルール保持部３８１とを含む。
【００７２】
なお、これらの構成は機能を示す構成であり、これらの構成は、ゲートウェイ３００において、記憶部に保持されるプログラムを、処理部が、読み出し、実行すること、処理部が記憶部へ所定のデータを格納すること、または、処理部が入出力部を介してデータの送受信を実行することで実現される、又は、これらの組み合わせで実現される。
【００７３】
判定機能選択部３７１は、異常検知部３７３が備える判定機能のうち、どの判定機能を実行するかを選択して制御部に送出する。判定機能選択部３７１は、異常検知部３７３の異常検知処理に利用可能な時間（検知処理時間）を算出し、当該検知処理時間に収まるように判定機能を選択する。図７は、実施の形態１における判定機能と処理時間・検知性能の関係の一例を示す図である。例えば、判定機能選択部３７１は、図７に示すような判定機能毎の処理時間と、検知性能（例えば誤検知率と検知率）を保持しており、判定機能選択部３７１が算出した検知処理時間に収まる判定機能の組み合わせを求め、当該判定機能を選択する。この時、判定機能選択部３７１が算出した検知処理時間に収まる判定機能の組み合わせが複数あれば、検知性能が一番よい組み合わせ（例えば、誤検知率が低く、検知率が高い組み合わせ）を選択する。
【００７４】
制御部３７２は、異常検知部３７３が備える判定機能のうち、判定機能選択部３７１が選択した機能を、異常検知部３７３が実行するように制御する。
【００７５】
異常検知部３７３は、少なくとも７種類の判定機能を含んでいる。具体的には、判定機能として、単位時間あたりに送信されるメッセージ量（メッセージ量はデータ量ともいう）からＤｏＳ攻撃が発生しているかどうかを判定する機能、メッセージのＩＤフィールドをチェックする機能、メッセージのデータ長をチェックする機能、メッセージが送信される周期（周期は時間間隔でもよい）をＣＡＮ  ＩＤ毎にチェックする機能、メッセージが送信される頻度をＣＡＮ  ＩＤ毎にチェックする機能、及び、メッセージのデータフィールドの値（データフィールドの値をデータ値と呼ぶ）をチェックする機能を含む。
【００７６】
上述した機能は、順に、ＤｏＳ攻撃判定機能、ＩＤ判定機能、データ長判定機能、送信周期判定機能、送信頻度判定機能、および、データ値判定機能と呼ばれる。周期性に基づく受信タイミング、または、受信メッセージの個数が用いられる異常判定は、ＤｏＳ攻撃判定機能、送信周期判定機能、送信頻度判定機能等である。また、値が固定されているフィールドが用いられる異常判定は、ＩＤ判定機能等である。ＩＤフィールド等の値が固定されているフィールドは、第１フィールドの具体例である。加えて、値が変化するフィールドが用いられる異常判定は、データ長判定機能およびデータ値判定機能等である。データフィールド等の値が変化するフィールドは、第２フィールドの具体例である。
【００７７】
さらに、これらの判定機能の判定結果、送信周期、頻度、データ値、又はデータ値の変化量などに基づいて車両の状態を認識し、車両状態をチェックする機能を含む。この機能は、車両状態判定機能と呼ばれる。さらに異常検知部３７３は、フレーム処理部３５０から受信したメッセージが異常なメッセージであるか否かを、これらの判定機能による判定結果から総合的に判定する総合判定機能を含む。そして、総合判定機能によって判定された結果が、異常検知部３７３による検知処理の結果となる。
【００７８】
検知ルール保持部３８１は、各判定機能を実行するために必要となる判定基準を保持している。検知ルール保持部３８１は、ＣＡＮ  ＩＤ毎に個別の判定基準を保持する。また、異常検知部３７３は、検知ルールが設定されていないために、判定機能を実行しない場合もある。制御部３７２は、検知ルール保持部３８１に格納されている判定基準に従って判定機能の実行を制御する。
【００７９】
なお、検知ルール保持部３８１が保持する判定基準は、上述したようにＣＡＮ  ＩＤ毎に存在し、当該判定基準は、さらに、判定機能ごとに異なる。また、ＣＡＮ  ＩＤ毎に、判定基準が存在する判定機能が異なる。そして、ＣＡＮ  ＩＤ毎に存在する判定基準は、１つの判定機能に対して複数存在してもよい。これにより、判定機能選択部３７１が優先して選択する判定機能は、受信メッセージのＣＡＮ  ＩＤ毎に異なる。
【００８０】
なお、判定機能選択部３７１は、算出した検知処理時間に収まる判定機能の組み合わせが複数あれば、検知性能が一番よい判定機能の組み合わせを選択するとしたが、これに限定されない。例えば、誤検知率が低く、検知率が高い組み合わせを選択するとしたが、これに限定されない。判定機能選択部３７１は、検知性能として誤検知率と検知率のどちらか片方だけを用いて、判定機能の組み合わせを選択してもよいし、誤検知率、または、検知率ではなく、検知精度（Ｐｒｅｃｉｓｉｏｎ）、Ｆ値（Ｆ−ｍｅａｓｕｒｅ）、Ｉｎｆｏｍｅｄｎｅｓｓ、もしくは、Ｍａｒｋｅｄｎｅｓｓなどの検知性能を表す評価指標、または、これらの組み合わせを用いてもよい。このため、判定機能選択部３７１は、システム毎に適切な指標を採用することで、対象となるシステムに応じた効果的な判定機能の組み合わせを選択することができる。
【００８１】
なお、判定機能選択部３７１は、算出した検知処理時間に収まる判定機能の組み合わせを求め、当該判定機能の組み合わせの中から適切な組み合わせを選択するとしたが、これに限定されない。図８は、実施の形態１における判定機能と処理時間・検知性能の関係の一例を示す図である。図８に示すように、例えば、ＤｏＳ攻撃判定機能、ＩＤ判定機能、データ長判定機能、送信周期判定機能、データ値（範囲）判定機能、および、車両状態判定機能の順番で処理を行う場合に、実行する判定機能の範囲と、実行しない判定機能の範囲との選択を行ってもよい。ここで、判定機能の処理の順番は一例であり、これに限定されない。判定機能を実行する順番が異なってもよいし、他の判定機能が説明された判定機能に加わってもよい。
【００８２】
また、図９は、実施の形態１における判定機能と処理時間・検知性能の関係の一例を示す図である。判定機能選択部３７１は、図９に示すような各判定機能の組み合わせに対する処理時間と検知性能を事前に保持し、保持している組み合わせの１つを選択してもよい。これにより、異常検知部３７３は、システム毎に適切な順番で判定機能の処理を行い、実行する判定機能を適切に選択することができる。また、設計時などに、事前に、判定機能選択部３７１が選択する判定機能を決定しておくことで、選択に要する時間を減らすことができる。
【００８３】
なお、判定機能選択部３７１が、算出した検知処理時間に収まる判定機能の組み合わせを求め、その判定機能を選択するとしたが、これに限定されない。例えば、異常検知部３７３が何らかの異常を検知している際に、異常検知部３７３は、異常が検知された判定機能を必ず選択し、異常を検知していない判定機能の一部、または、全部を選択しなくてもよい。異常検知部３７３が異常を検知していない場合には、異常検知部３７３は、検知処理時間に収まる範囲で必要最低限の判定機能を選択してもよい。これにより、異常が検知されている判定機能による異常判定処理は異常検知部３７３によって選択され続けるため、継続して異常が検知され続けることが可能である。また、異常検知部３７３が異常を検知していない場合には、異常検知処理時間が短縮されることが可能である。
【００８４】
なお、フレーム送受信部３１０が、ゲートウェイ３００に接続されている複数のネットワークからメッセージを受信している場合には、異常が発生しても車両の動作に影響がないメッセージが送信されているネットワークよりも、異常検知部３７３は、異常が発生すると車両の動作に影響があるメッセージが送信されているネットワークのメッセージに対する異常検知処理が長くなるように、判定機能を選択してもよい。また、異常検知部３７３は、メッセージ毎にどの判定機能を選択するかを決めてもよい。これにより、異常検知部３７３は、重要なメッセージに対する検知処理時間を十分に確保することができる可能性が高くなるため、車載ネットワークシステム１０がより安全なものとなる。
【００８５】
なお、判定機能選択部３７１は、検知処理時間を算出するために、ゲートウェイ３００がメッセージを受信してから転送が完了するまでに許された時間（許可時間）のうち、転送先のバス２００の決定、または、フレーム送受信部３１０が実際に各バス２００にメッセージを送信する処理などの転送処理に要した転送処理時間を除いた時間を検知処理時間としてもよい。また、判定機能選択部３７１は、許可時間から転送時間を除き、更に他に必要な処理も除いた時間を検知処理時間として算出してもよい。これにより、車載ネットワークシステム１０が、異常検知処理をその他の処理よりも優先して実行することも可能であり、また、逆に、他の処理を異常検知処理よりも優先して実行することも可能である。
【００８６】
なお、判定機能選択部３７１は、検知処理時間を算出するとしたが、これに限定されるものではなく、異常検知処理機能群３７０に検知処理時間を算出する処理時間算出部があり、判定機能選択部３７１は処理時間算出部から処理時間を取得して、判定機能を選択してもよいし、異常検知処理機能群３７０はフレーム処理部３５０から検知処理時間を受け取り、それを元に判定機能を選択してもよい。これにより、異常検知処理機能群３７０以外も処理時間を算出する場合は、処理時間の算出を効率化することができる。
【００８７】
［１．７  ＥＣＵの構成］
図１０は、実施の形態１における車載ネットワークシステムに含まれるＥＣＵの一例を示すブロック図である。図１０において、ＥＣＵ１００は、フレーム送受信部１１０と、フレーム解釈部１２０と、受信ＩＤ判定部１３０と、受信ＩＤリスト保持部１４０と、フレーム処理部１５０と、データ取得部１７０と、フレーム生成部１８０とを備える。
【００８８】
なお、これらの構成は機能を示す構成であり、これらの構成は、ゲートウェイ３００において、記憶部に保持されるプログラムを、処理部が、読み出し、実行すること、処理部が記憶部へ所定のデータを格納すること、または、処理部が入出力部を介してデータの送受信を実行することで実現される、又は、これらの組み合わせで実現される。
【００８９】
フレーム送受信部１１０は、バス２００に対して、ＣＡＮのプロトコルに従ったメッセージを送受信する。
【００９０】
より具体的には、フレーム送受信部１１０は、バス２００に送出されたメッセージを１ｂｉｔずつ読み出し、読み出したメッセージをフレーム解釈部１２０に転送する。
【００９１】
また、フレーム送受信部１１０は、フレーム生成部１８０より送出されたメッセージをバス２００に送出する。
【００９２】
フレーム解釈部１２０は、フレーム送受信部１１０よりメッセージを表す値を受け取り、ＣＡＮプロトコルにおける各フィールドにマッピングしてメッセージの解釈を行う。フレーム解釈部１２０は、ＩＤフィールドである解釈した一連の値を、受信ＩＤ判定部１３０へ転送する。
【００９３】
フレーム解釈部１２０はさらに、受信ＩＤ判定部１３０から送出される判定結果に応じて、メッセージに含まれるＩＤフィールドの値及びＩＤフィールド以降に現れるデータフィールドの値をフレーム処理部１５０へ転送するか、メッセージの受信を中止するかを決定する。
【００９４】
また、フレーム解釈部１２０は、対象となるメッセージが、ＣＡＮプロトコルに則っていないメッセージであると判断した場合は、エラーフレームを送信するようにフレーム生成部１８０へ要求する。
【００９５】
また、フレーム解釈部１２０は、他のノードが送信したエラーフレームを受信したと解釈した場合、読取中のメッセージを破棄する。
【００９６】
受信ＩＤ判定部１３０は、フレーム解釈部１２０からＩＤフィールドの値を受け取り、受信ＩＤリスト保持部１４０が保持しているメッセージＩＤのリストに従い、読み出したメッセージを受信するか否かの判定を行う。受信ＩＤ判定部１３０は、この判定の結果をフレーム解釈部１２０へ送出する。
【００９７】
受信ＩＤリスト保持部１４０は、ＥＣＵ１００が受信する受信ＩＤリストを保持する。受信ＩＤリストは、図４に示されるものと同様の形式であるため、ここではその説明を省略する。
【００９８】
フレーム処理部１５０は、受信したメッセージのデータに応じた処理を行う。処理の内容は、ＥＣＵ１００毎に異なる。
【００９９】
例えば、ＥＣＵ１００ａでは、自動車の時速が３０ｋｍを超えているときに、ドアが開いていることを示すメッセージを受信すると、アラーム音を鳴らすための処理を実行する。ＥＣＵ１００ｃは、ブレーキがかかっていないことを示すメッセージを受信しているときにドアが開くと、アラーム音を鳴らすための処理を実行する。
【０１００】
これらの処理は、説明のための一例であり、ＥＣＵ１００は上記以外の処理を実行してもよい。このような処理を実行するために送出するフレームを、フレーム処理部１５０はフレーム生成部１８０に生成させる。
【０１０１】
データ取得部１７０は、ＥＣＵ１００に接続されている機器状態又はセンサによる計測値等を示す出力データを取得し、取得した出力データをフレーム生成部１８０に転送する。
【０１０２】
フレーム生成部１８０は、フレーム解釈部１２０からのエラーフレーム送信の要求に従い、エラーフレームを構成してフレーム送受信部１１０へ送る。
【０１０３】
またフレーム生成部１８０は、データ取得部１７０より受け取ったデータの値に対して予め定められたメッセージＩＤを付けてメッセージフレームを生成し、生成したメッセージフレームをフレーム送受信部１１０へ送る。
【０１０４】
［１．８  転送処理］
図１１は、実施の形態１における転送処理の一例を示すフローチャートである。ゲートウェイ３００が行う転送処理は、転送の方向に関わらず、共通であるため、ここでは、ゲートウェイ３００がバス２００ａから受信したメッセージをバス２００ｂへ転送する場合を一例として説明する。
【０１０５】
まず、フレーム送受信部３１０は、バス２００ａからメッセージを読み出す（ステップＳ１００１）。フレーム送受信部３１０は、読み出したメッセージの各フィールドのデータをフレーム解釈部３２０へ送出する。
【０１０６】
次に、フレーム解釈部１２０は、受信ＩＤ判定部１３０と連携して、読み出したメッセージのＩＤフィールドの値（メッセージＩＤ）から、処理を行う対象のメッセージであるか否かを判定する（ステップＳ１００２）。
【０１０７】
フレーム解釈部１２０が、読み出されたメッセージを処理を行う対象のメッセージではないと判定した場合（ステップＳ１００２でＮｏ）、当該メッセージの転送は行われない。
【０１０８】
フレーム解釈部１２０は、読み出されたメッセージを処理を行う対象のメッセージであると判断した場合（ステップＳ１００２でＹｅｓ）、フレーム解釈部１２０は、フレーム処理部３５０へメッセージ内の各フィールドの値を転送する。その後、フレーム処理部３５０は、転送ルール保持部３６０に保持される転送ルールに従って、転送先となるバスを決定する（ステップＳ１００３）。
【０１０９】
フレーム処理部３５０は、フレーム解釈部３２０から受け取ったメッセージ内の各フィールドの値を異常検知処理機能群３７０へ送出し、異常なメッセージであるか否かの判定を要求する。異常検知処理機能群３７０は、送出されたメッセージの各フィールドの値から、送出されたメッセージが異常なメッセージであるか否かを判定し、その判定の結果をフレーム処理部３５０へ送出する（ステップＳ１００４）。
【０１１０】
異常検知処理機能群３７０が、メッセージは異常なメッセージであると判定した場合（ステップＳ１００５でＹｅｓ）、当該メッセージの転送は行われない。
【０１１１】
異常検知処理機能群３７０が、メッセージは異常なメッセージではなく正常なメッセージであると判定した場合（ステップＳ１００５でＮｏ）、フレーム処理部３５０は、当該メッセージをステップＳ１００３で決定した転送先のバスに転送するよう、フレーム生成部３８０へ要求する。
【０１１２】
フレーム生成部３８０は、フレーム処理部３５０からの要求を受けて、指定された転送先が受信するようにメッセージを生成し、当該メッセージをフレーム送受信部３１０に送出させる（ステップＳ１００６）。
【０１１３】
なお、上記の例では、受信したメッセージの転送先の決定（ステップＳ１００３）の後にこのメッセージが異常なメッセージであるかの判定（ステップＳ１００４）がなされているが、これに限定されない。受信したメッセージが異常なメッセージであるかの判定の後にこのメッセージの転送先の決定がなされてもよい。また、受信したメッセージの転送先の決定と異常なメッセージであるかの判定が並行して行われてもよい。
【０１１４】
［１．９  異常検知処理］
図１２は、実施の形態１における異常検知処理の別の一例を示すフローチャートである。
【０１１５】
まず、異常検知処理機能群３７０は、フレーム処理部３５０から異常検知処理の要求を受けて、異常検知処理に利用可能な時間を算出する（ステップＳ１１０１）。ここで、異常検知処理に利用可能な時間を検知処理時間と呼ぶ。検知処理時間は、ネットワークに送出されたメッセージ量、メッセージに含まれるデータ量、または、メッセージの転送先の数等に応じて、算出される。
【０１１６】
次に、判定機能選択部３７１は、算出された検知処理時間が、検知処理のために必要な時間より短いか否かを判定する（ステップＳ１１０２）。
【０１１７】
判定機能選択部３７１が、算出された検知処理時間が、検知処理のために必要な時間より短いと判定した場合（ステップＳ１１０２でＹｅｓ）、判定機能選択部３７１は、処理を実行する判定機能を選択する（ステップＳ１１０３）。
【０１１８】
続いて、判定機能選択部３７１は、選択した判定機能に関する情報を、制御部３７２へ送出する。
【０１１９】
続いて、制御部３７２は、ステップＳ１１０３で判定機能選択部３７１が選択した機能のみを実行するように各判定機能を制御し、異常検知部３７３は、異常検知処理を実行する（ステップＳ１１０４）。
【０１２０】
判定機能選択部３７１が、検知処理時間が検知処理のために必要な時間より長いと判定した場合（ステップＳ１１０２でＮｏ）、制御部３７２は、本来実行すべき検知処理をすべて実行するように異常検知部３７３の各判定機能を制御する。
【０１２１】
なお、判定機能選択部３７１が実行する判定機能を個別に選択する場合は、図１２の異常検知処理を実行するステップ（ステップＳ１１０４）で行われる処理は、図１３のステップＳ１１１０からステップＳ１１１９で行われる処理になる。図１３は、実施の形態１における異常検知処理のさらに別の一例を示すフローチャートである。また、図１２の判定機能選択部３７１が実行する判定機能を選択するステップＳ１１０３で行われる処理は、図１３のステップＳ１１０５で行われる処理になる。
【０１２２】
判定機能選択部３７１が、算出された検知処理時間が検知処理のために必要な時間より短いと判定した場合（ステップＳ１１０２でＹｅｓ）、判定機能選択部３７１は、検知処理時間内に実行可能な判定機能を選択する（ステップＳ１１０５）。そして、判定機能選択部３７１は、制御部３７２へ選択された判定機能に関する情報を送出する。
【０１２３】
判定機能選択部３７１が、算出された検知処理時間が検知処理のために必要な時間より長いと判定した場合（ステップＳ１１０２でＮｏ）、以下に説明されるステップＳ１１１０が行われる。
【０１２４】
制御部３７２は、判定機能選択部３７１がＤｏＳ攻撃判定機能を選択したか否かを判定する（ステップＳ１１１０）。
【０１２５】
制御部３７２が、ＤｏＳ攻撃判定機能が判定機能選択部３７１によって選択されたと判定した場合（ステップＳ１１１０でＹｅｓの場合）、制御部３７２は異常検知部３７３のＤｏＳ攻撃判定機能を実行する（ステップＳ１１１１）。
【０１２６】
制御部３７２が、ＤｏＳ攻撃判定機能が選択されていないと判定した場合（ステップＳ１１１０でＮｏの場合）、制御部３７２は異常検知部３７３のＤｏＳ攻撃判定機能を実行しない。
【０１２７】
続いて、制御部３７２は、判定機能選択部３７１がＩＤ判定機能を選択したか否かを判定する（ステップＳ１１１２）。
【０１２８】
制御部３７２が、判定機能選択部３７１によってＩＤ判定機能が選択されたと判定した場合（ステップＳ１１１２でＹｅｓの場合）、制御部３７２は異常検知部３７３のＩＤ判定機能を実行する（ステップＳ１１１３）。
【０１２９】
制御部３７２が、判定機能選択部３７１によってＩＤ判定機能が選択されていないと判定した場合（ステップＳ１１１２でＮｏの場合）、制御部３７２は異常検知部３７３のＩＤ判定機能を実行しない。
【０１３０】
次に、制御部３７２は、判定機能選択部３７１がデータ長判定機能を選択したか否かを判定する（ステップＳ１１１４）。
【０１３１】
制御部３７２が、判定機能選択部３７１によってデータ長判定機能が選択されたと判定した場合（ステップＳ１１１４でＹｅｓの場合）、制御部３７２は異常検知部３７３のデータ長判定機能を実行する（ステップＳ１１１５）。
【０１３２】
制御部３７２が、判定機能選択部３７１によってデータ長判定機能が選択されていないと判定した場合（ステップＳ１１１４でＮｏの場合）、制御部３７２は異常検知部３７３のデータ長判定機能を実行しない。
【０１３３】
制御部３７２は、判定機能選択部３７１が送信周期判定機能を選択したか否かを判定する（ステップＳ１１１６）。
【０１３４】
制御部３７２が、判定機能選択部３７１によって送信周期判定機能が選択されたと判定した場合（ステップＳ１１１６でＹｅｓの場合）、制御部３７２は異常検知部３７３の送信周期判定機能を実行する（ステップＳ１１１７）。
【０１３５】
制御部３７２が、判定機能選択部３７１によって送信周期判定機能が選択されていないと判定した場合（ステップＳ１１１６でＮｏの場合）、制御部３７２は異常検知部３７３の送信周期判定機能を実行しない。
【０１３６】
制御部３７２は、判定機能選択部３７１がデータ値判定機能を選択したか否かを判定する（ステップＳ１１１８）。
【０１３７】
制御部３７２が、判定機能選択部３７１によってデータ値判定機能が選択されたと判定した場合（ステップＳ１１１８でＹｅｓの場合）、制御部３７２は異常検知部３７３のデータ値判定機能を実行する（ステップＳ１１１９）。
【０１３８】
制御部３７２が、判定機能選択部３７１によってデータ値判定機能が選択されていないと判定した場合（ステップＳ１１１８でＮｏの場合）、制御部３７２は異常検知部３７３のデータ値判定機能を実行しない。
【０１３９】
ここで、ＤｏＳ攻撃判定、ＩＤ判定、データ長判定、送信周期判定、及び、データ値判定の５つの判定機能に関する異常検知処理を記載したが、異常検知処理には、更に送信頻度判定と車両状態判定とに関する異常検知処理が含まれてもよい。また、異常検知処理には、上記の判定機能のうちのいくつかの組み合わせが含まれてもよいし、説明されていない他の判定処理が含まれていてもよい。例えば、判定機能選択部３７１が各判定機能を選択したか否かを制御部３７２が判定し、その判定結果に応じて制御部３７２が判定機能の実行を制御する処理が含まれてもよい。これにより、実行する判定機能を柔軟に制御することができる。
【０１４０】
なお、判定機能選択部３７１が実行する判定機能の範囲と、実行しない判定機能の範囲の選択を行う場合は、図１２の異常検知処理を実行するステップ（Ｓ１１０４）で行われる処理は、図１４に示される処理になる。また、図１２の判定機能選択部３７１が機能を選択するステップＳ１１０３で行われる処理は、図１４のステップＳ１１０６で行われる処理になる。
【０１４１】
図１４は、実施の形態１における異常検知処理の他の一例を示すフローチャートである。判定機能選択部３７１が、検知処理時間が検知処理のために必要な時間より短いと判定した場合（ステップＳ１１０２でＹｅｓ）、判定機能選択部３７１は、検知処理時間内に実行可能な判定機能を判定し、異常検知処理を終了する時点の判定機能を選択する（ステップＳ１１０６）。
【０１４２】
そして、判定機能選択部３７１は、制御部３７２へ送出する。
【０１４３】
判定機能選択部３７１が、検知処理時間が検知処理のために必要な時間より長いと判定した場合（ステップＳ１１０２でＮｏ）、以下に説明されるステップＳ１１２０が行われる。
【０１４４】
制御部３７２は、判定機能選択部３７１がＤｏＳ攻撃判定機能前で処理を終了する選択をしたか否かを判定する（ステップＳ１１２０）。
【０１４５】
制御部３７２が、判定機能選択部３７１によってＤｏＳ攻撃判定機能前で処理を終了しない選択がされたと判定した場合（ステップＳ１１２０でＮｏの場合）、制御部３７２は異常検知部３７３のＤｏＳ攻撃判定機能を実行する（Ｓ１１１１）。
【０１４６】
制御部３７２が、判定機能選択部３７１によってＤｏＳ攻撃判定機能前で処理を終了する選択がされたと判定した場合（ステップＳ１１２０でＹｅｓの場合）、制御部３７２は異常検知処理を終了する。
【０１４７】
続けて、制御部３７２は、判定機能選択部３７１がＩＤ判定機能前で処理を終了する選択をしたか否かを判定する（ステップＳ１１１２）。
【０１４８】
制御部３７２が、判定機能選択部３７１によってＩＤ判定機能前で処理を終了しない選択がされたと判定した場合（ステップＳ１１１２でＮｏ）、制御部３７２は異常検知部３７３のＩＤ判定機能を実行する（ステップＳ１１１３）。
【０１４９】
制御部３７２が、判定機能選択部３７１によってＩＤ判定機能前で処理を終了する選択がされたと判定した場合（ステップＳ１１１２でＹｅｓ）、制御部３７２は異常検知処理を終了する。
【０１５０】
次に、制御部３７２は、判定機能選択部３７１がデータ長判定機能前で処理を終了する選択をしたか否かを判定する（ステップＳ１１２２）。
【０１５１】
制御部３７２が、判定機能選択部３７１によってデータ長判定機能前で処理を終了しない選択がされたと判定した場合（ステップＳ１１２２でＮｏ）、制御部３７２は異常検知部３７３のデータ長判定機能を実行する（ステップＳ１１１５）。
【０１５２】
制御部３７２が、データ長判定機能前で処理を終了する選択がされたと判定した場合（ステップＳ１１２２でＹｅｓ）、制御部３７２は異常検知処理を終了する。
【０１５３】
そして、制御部３７２は、判定機能選択部３７１が送信周期判定機能前で処理を終了する選択をしたか否かを判定する（ステップＳ１１２３）。
【０１５４】
制御部３７２が、判定機能選択部３７１によって送信周期判定機能前で処理を終了しない選択がされたと判定した場合（ステップＳ１１２３でＮｏ）、制御部３７２は異常検知部３７３の送信周期判定機能を実行する（ステップＳ１１１７）。
【０１５５】
制御部３７２が、判定機能選択部３７１によって送信周期判定機能前で処理を終了する選択がされたと判定した場合（ステップＳ１１２３でＹｅｓ）、制御部３７２は異常検知処理を終了する。
【０１５６】
次に、制御部３７２は、判定機能選択部３７１がデータ値判定機能前で処理を終了する選択をしたか否かを判定する（ステップＳ１１２４）。
【０１５７】
制御部３７２が、判定機能選択部３７１によってデータ値判定機能前で処理を終了しない選択がされたと判定した場合（ステップＳ１１２４でＮｏ）、制御部３７２は異常検知部３７３のデータ値判定機能を実行する（ステップＳ１１１９）。
【０１５８】
制御部３７２が、判定機能選択部３７１によってデータ値判定機能前で処理を終了する選択がされたと判定した場合（ステップＳ１１２４でＹｅｓ）、制御部３７２は異常検知処理を終了する。
【０１５９】
ここで、ＤｏＳ攻撃判定、ＩＤ判定、データ長判定、送信周期判定、および、データ値判定の５つの判定機能に関する異常検知処理が説明されたが、図１４で説明された処理には、更に送信頻度判定と車両状態判定とに関する異常検知処理が含まれていてもよい。また、図１４で説明された処理は、上記で説明された判定機能のうちのいくつかの組み合わせでもよいし、他の判定機能が含まれていてもよい。図１４で説明された処理には、判定機能選択部３７１が実行する判定機能の範囲と、実行しない判定機能の範囲とを選択したか否かを制御部３７２が判定し、その判定結果に応じて制御部３７２が判定機能の実行を制御する処理が含まれてもよい。これにより、各判定機能が選択されているか否かを逐一確認する必要がなく、処理時間が削減されることが可能である。
【０１６０】
なお、判定機能選択部３７１が送信周期判定機能とデータ値判定機能を実行するか否かのみを選択する場合は、図１２に示される異常検知処理を実行するステップ（ステップＳ１１０４）は、図１５に示される処理になる。
【０１６１】
図１５は、実施の形態１における異常検知処理のさらに他の一例を示すフローチャートである。また、図１２に示される判定機能選択部３７１が判定機能を選択するステップＳ１１０３で行われる処理は、図１５に示されるステップＳ１１０７で行われる処理になる。
【０１６２】
判定機能選択部３７１は、ステップＳ１１０１で算出された検知処理時間が、送信周期判定機能とデータ値判定機能とによる異常検知処理のために必要な時間より長いか否かを判定する（ステップＳ１１０２）。
【０１６３】
判定機能選択部３７１が、当該検知処理時間が上記の必要な時間より短いと判定した場合（ステップＳ１１０２でＹｅｓ）、判定機能選択部３７１は、送信周期判定機能とデータ値判定機能とを選択しない（ステップＳ１１０７）。
【０１６４】
判定機能選択部３７１が、当該検知処理時間が上記の必要な時間より長いと判定した場合（ステップＳ１１０２でＮｏ）、次に説明されるステップＳ１１１１が行われる。
【０１６５】
制御部３７２は、ＤｏＳ攻撃判定機能の処理を実行する（ステップＳ１１１１）。
【０１６６】
そして、制御部３７２は、ＩＤ判定機能の処理を実行する（ステップＳ１１１３）。
【０１６７】
次に、制御部３７２は、データ長判定機能の処理を実行する（ステップＳ１１１５）。
【０１６８】
その後、制御部３７２は、判定機能選択部３７１が送信周期判定機能とデータ値判定機能とを選択したか否かを判定する（ステップＳ１１３０）。
【０１６９】
制御部３７２が、判定機能選択部３７１によって送信周期判定機能とデータ値判定機能とが選択されたと判定した場合（ステップＳ１１３０でＹｅｓ）、制御部３７２は異常検知部３７３の送信周期判定機能を実行する（ステップＳ１１１７）。
【０１７０】
続いて、制御部３７２は、データ値判定機能を実行する（ステップＳ１１１９）。
【０１７１】
制御部３７２が、判定機能選択部３７１によって送信周期判定機能とデータ値判定機能とが選択されていないと判定した場合（ステップＳ１１３０でＮｏ）、制御部３７２は異常検知部３７３の送信周期判定機能とデータ値判定機能とを実行しない。
【０１７２】
ここで、ＤｏＳ攻撃判定、ＩＤ判定、データ長判定、送信周期判定、および、データ値判定の５つの判定機能に関する異常検知処理が説明されたが、図１５で説明された処理には、更に送信頻度判定と車両状態判定とに関する異常検知処理が含まれていてもよい。図１５で説明された処理は、上記で説明された判定処理のうちのいくつかの組み合わせでもよいし、他の判定機能が含まれていてもよい。図１５で説明された処理は、送信周期判定機能とデータ値判定機能とを実行するか否かのみを選択するだけでなく、判定機能選択部３７１が各判定機能の一部の機能の組み合わせを選択したか否かを制御部３７２が判定し、その判定結果に応じて制御部３７２が判定機能の実行を制御する処理であればよい。これにより、設計時等に、事前に、実行される処理を行う組み合わせを決めることができ、判定機能が選択されているか否かをまとめて確認できるため、処理時間が短縮されることが可能である。
【０１７３】
図１６は、実施の形態１における異常検知処理のその他の一例を示すフローチャートである。
【０１７４】
なお、判定機能選択部３７１が、送信周期判定機能とデータ値判定機能とを実行するか否かを選択するだけでなく、全ての判定機能を実行しない選択を行う場合は、図１５で示されるステップＳ１１０７で行われる処理とステップＳ１１３１で行われる処理の間に、図１６で示されるステップＳ１１０８で行われる処理とステップＳ１１０９で行われる処理が加わる。
【０１７５】
次に、判定機能選択部３７１は、ステップＳ１１０１で算出した検知処理時間が、ＤｏＳ攻撃判定機能とＩＤ判定機能とデータ長判定機能とによる異常検知処理のために必要な時間より長いか否かを判定する（ステップＳ１１０８）。
【０１７６】
判定機能選択部３７１が、当該検知処理時間が上述の必要な時間より短いと判定した場合、判定機能選択部３７１は、全判定機能を選択しない（ステップＳ１１０９）。
【０１７７】
続いて、制御部３７２は、判定機能選択部３７１が全ての判定機能を選択したか否かを判定する（ステップＳ１１３１）。つまり、制御部３７２は、判定機能選択部３７１が、ＤｏＳ攻撃判定機能、ＩＤ判定機能、または、データ長判定機能を選択しなかったか否かを判定する。
【０１７８】
制御部３７２が、判定機能選択部３７１によってＤｏＳ攻撃判定機能とＩＤ判定機能とデータ長判定機能とが選択されたと判定した場合（ステップＳ１１３１でＹｅｓ）、制御部３７２は異常検知部３７３のＤｏＳ攻撃判定機能を実行する（ステップＳ１１１１）。
【０１７９】
その後、制御部３７２は、異常検知部３７３のＩＤ判定機能を実行する（ステップＳ１１１３）。
【０１８０】
そして、制御部３７２は、異常検知部３７３のデータ長判定機能の実行する（ステップＳ１１１５）。
【０１８１】
その後の、送信周期判定機能とデータ値判定機能に関する処理は、図１５で説明された処理と同様であるため、説明を省略する。
【０１８２】
制御部３７２が、判定機能選択部３７１によってＤｏＳ攻撃判定機能、ＩＤ判定機能、および、データ長判定機能が選択されていないと判定した場合（ステップＳ１１３１でＮｏ）、制御部３７２は異常検知部３７３の各判定機能を実行しない。
【０１８３】
ここで、ＤｏＳ攻撃判定、ＩＤ判定、データ長判定、送信周期判定、および、データ値判定の５つの判定機能に関する異常検知処理を、図１６で説明される処理として記載したが、図１６で説明される処理は、更に送信頻度判定と車両状態判定に関する異常検知処理を含んでもよい。また、図１６で説明される処理は、上記の判定処理のいくつかの組み合わせでもよいし、他の判定機能を含んでもよい。図１６で説明される処理は、ＤｏＳ攻撃判定機能とＩＤ判定機能とデータ長判定機能とを選択したか否かを判定する処理と、送信周期判定機能とデータ値判定機能とを実行するか否かのみを選択する処理に分けられて説明されたが、これに限定されない。図１６で説明される処理は、制御部３７２が、判定機能選択部３７１が全判定機能を選択したという判定を行い、その判定結果に応じて制御部３７２が判定機能の実行を制御する処理であればよい。これにより、本実施の形態における異常判定方法は、異常検知処理を行う時間が無い場合でも、異常判定を実施することができる。
【０１８４】
なお、判定機能選択部３７１と制御部３７２との異常検知処理は、上記に限定されるものではなく、上記の組み合わせであってもよい。
【０１８５】
なお、判定機能選択部３７１は、検知処理のために必要な時間より検知処理時間が短いと判定した場合（ステップＳ１１０２）、処理を行う実行する判定機能を選択するとしたが、これに限定されない。判定機能選択部３７１は、ステップＳ１１０２の判定処理を行わず、処理を行う実行する判定機能を選択する際に、検知処理のために必要な時間より検知処理時間が長ければ、全ての判定機能を選択してもよい。これにより、判定機能選択部３７１による処理を単純化することができる。
【０１８６】
なお、制御部３７２が各判定機能を実行する場合、制御部３７２がＣＡＮ  ＩＤ毎に設定されている検知ルールを参照する。そして、判定機能選択部３７１により選択され、かつ、検知ルールに記載されている判定機能を実行するように、制御部３７２が制御を行う。つまり、判定機能選択部３７１により選択されたとしても、検知ルールに記載されていない判定機能は実行されない。また、ステップＳ１１０２において算出された検知処理時間が、検知処理のために必要な時間より長いと判定された場合、制御部３７２は、全ての判定機能が判定機能選択部３７１により選択されたとみなして、検知ルールに記載されている機能を実行する。
【０１８７】
［１．１０  リセット処理］
異常検知処理において、判定機能選択部３７１が、実行される機能を選択したときに選択されなかった判定機能の種類によっては、次にいずれかの判定機能が実行されるときに、通常とは異なる判定結果になる可能性がある。例えば、送信周期判定機能は、車載ネットワークシステム１０が周期的にメッセージを受信することを前提としており、前回受信時に受信時刻（前回受信時刻という）を記録して、その前回受信時刻と今回の受信時刻との差から、今回受信したメッセージが異常なメッセージであるかどうかを判定する。
【０１８８】
この時、メッセージが正常に来ていたにもかかわらず判定機能選択部３７１によって送信周期判定機能が選択されなかった場合、１回前の受信時刻が記録できないため、２回前の受信時刻と今回の受信時刻とを比較することになり、正常な判定が出来ない可能性がある。特に、連続して送信周期判定機能が選択されなかった場合には、受信時刻を記録できない区間が長くなるため、正常な判定が出来ない可能性が高くなる。同様の懸念は、データ値判定機能において、前回のデータ値と今回のデータ値との変化量から正常メッセージか異常なメッセージかを判定する場合にも当てはまる。
【０１８９】
そこで、ある判定機能が、判定機能選択部３７１により選択されず処理がスキップされた場合に、次に当該判定機能を実行する前に、当該判定機能に対してリセット処理を行うことで、想定外の判定結果にならないようにする必要がある。特に、送信周期判定機能、もしくは、データの変化量を判定するデータ値判定機能など、前回の値と今回の値との比較で判定を行う機能、または、送信頻度判定機能のように、累積計算を行う機能に対して、判定機能選択部３７１により選択されず処理がスキップされた場合に、前回の値、または、累積値をクリアするリセット処理を事前に行う必要がある。
【０１９０】
図１７は、実施の形態１におけるリセット処理を含む異常検知処理の一例を示すフローチャートである。また、図１８は、実施の形態１におけるリセット処理を含む異常検知処理の別の一例を示すフローチャートであり、図１９は、実施の形態１におけるリセット処理を含む異常検知処理のさらに別の一例を示すフローチャートである。図１５に示した判定機能選択部３７１が送信周期判定機能とデータ値判定機能とを実行するか否かのみを選択する場合の異常検知処理に対して、リセット処理を追加したフローチャートになっている。そのため、リセット処理以外の図１５と同じ処理に関しては、説明を省略する。
【０１９１】
まず、判定機能選択部３７１は、送信周期判定機能とデータ値判定機能との処理をスキップしたことを示すフラグを確認することで、前回の処理をスキップしたか否かを判定する（ステップＳ１１４０）。
【０１９２】
判定機能選択部３７１が、前回の処理をスキップしたと判定した場合（ステップＳ１１４０でＹｅｓ）、判定機能選択部３７１は、制御部３７２に送信周期判定機能とデータ値判定機能とのリセット処理の実行を依頼する。
【０１９３】
そして、制御部３７２は、判定機能選択部３７１からの依頼を受けて、送信周期判定機能のリセット処理を実行する（ステップＳ１１４１）。
【０１９４】
次に、制御部３７２は、データ値判定機能のリセット処理を実行する（ステップＳ１１４２）。
【０１９５】
また、ステップＳ１１０１およびステップＳ１１０２の後、判定機能選択部３７１は、ステップＳ１１０７において、送信周期判定機能とデータ値判定機能とを選択しないという処理を行った後に、送信周期判定機能とデータ値判定機能との処理をスキップしたことを示すフラグをセットする（ステップＳ１１４３）。ここで、送信周期判定機能とデータ値判定機能との処理をスキップしたことを示すフラグはＣＡＮ  ＩＤ毎に設定される。
【０１９６】
なお、リセット処理としては、例えば、記憶している前回の値をクリアした後に、最初に判定機能が実行された時にその値を前回の値として記憶してもよいし、記憶している前回の値をクリア後に、前回の値を持たない判定機能が最初に正常メッセージと判定したメッセージを前回の値として記憶してもよい。ここで、前回の値がＣＡＮ  ＩＤ毎に記憶されている場合は、前回の値をクリアしたときと同じＣＡＮ  ＩＤのメッセージを最初に受信したときを最初に判定機能が実行されたとき、または、前回の値をクリアしたときと同じＣＡＮ  ＩＤのメッセージに対して前回の値を持たない判定機能が、受信したメッセージを最初に正常メッセージであると判定したときに、前回の値として記憶する。また、同じＣＡＮ  ＩＤのメッセージではなく、別のＣＡＮ  ＩＤを持つメッセージを基準として、前回の値として記憶するかどうかを判断してもよい。
【０１９７】
例えば、正しいメッセージ認証コード（ＭＡＣ：Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）が付いているメッセージを基準として前回の値として記憶するかどうかを判定してもよいし、送信周期が近いか送信周期が同じ別のＣＡＮ  ＩＤを持つメッセージを基準として前回の値として記憶するかどうかを判定してもよい。
【０１９８】
図２０は、変形例におけるリセット処理の一例を示す図である。図２０では、送信周期が同じ別のＣＡＮ  ＩＤを持つメッセージの例が示される。例えば、本開示にかかる異常判定方法では、時刻Ｔ２の直前で負荷率がしきい値を下回った場合、ＩＤ１、ＩＤ２、および、ＩＤ３のメッセージをほぼ同じタイミングで受信したときに、ＩＤ１、ＩＤ２、および、ＩＤ３のメッセージの受信時刻が前回の値として記憶される。また、本開示にかかる異常判定方法では、記憶されている累積値を初期化してもよいし、保持されている車両状態を初期化してもよい。これにより、リセット処理後の判定機能による判定が、より正確に行われることが可能である。
【０１９９】
なお、本開示にかかる異常判定方法では、送信周期判定機能とデータ値判定機能とに対してリセット処理が行われるとしたが、これに限定するものではなく、前回の値を持つ他の判定機能に対してリセット処理が行われてもよいし、累積値または車両状態を記憶している送信頻度判定機能や車両状態判定機能に対してリセット処理が行われてもよい。また、リセット処理は、図１７に示されたタイミングで行われる必要は無く、例えば、図１８や図１９に示すタイミングで行われてもよい。
【０２００】
さらに、図１７から図１９で示される処理は、図１５に示されるフローチャートに対してリセット処理が追加されているが、これに限定するものではなく、他の異常検知処理のフローチャート（例えば、図１２から図１４や図１６、図２１以降に示されるフローチャート）に対してリセット処理が追加されてもよい。また、ＣＡＮ  ＩＤ毎に、リセット処理が実行されるタイミングが変更されてもよい。これにより、本開示の実施の形態における異常判定方法では、記憶されている情報に応じて、適切なタイミングでリセット処理が実行されることが可能である。
【０２０１】
なお、判定機能選択部３７１が、送信周期判定機能とデータ値判定機能とを選択しなかった際に、処理をスキップしたことを示すフラグをセットするとしたが、これに限定されるものではない。例えば、判定機能選択部３７１は、ＣＡＮ  ＩＤ毎に設定されている検知ルールも参照し、判定機能選択部３７１が選択しなかった判定機能が検知ルールとして実行されない場合には、処理をスキップしたことを示すフラグをセットしなくてもよいし、処理をスキップしたことを示すフラグをセットしたとしてもリセット処理の際にリセット処理を実行しなくてもよい。これにより、不要なリセット処理を減り、処理時間の短縮、またはリセット処理による検知性能の低下を防ぐことができる。
【０２０２】
［１．１１  効果］
本実施の形態では、異常検知処理機能群３７０は、異常検知処理のために利用可能な時間（検知処理時間）に応じて実行する判定機能を選択することで、検知処理時間が短い場合でも、検知処理時間に応じて大きな異常検知効果を発揮できるような判定機能の組み合わせを選択することができる。また、各判定機能のうちのいくつかまたは全てに対してリセット処理を実施することで、当該判定機能を実行しなかったことによる弊害を緩和することができるため、異常検知性能をより高めることができる。
【０２０３】
（実施の形態２）
［２．概要］
実施の形態１では、異常検知処理機能群３７０において、判定機能選択部３７１が処理を行う判定機能を選択し、制御部３７２が判定機能選択部３７１の選択結果に応じて各判定機能の実行を制御していた。本実施の形態では、車載ネットワークシステムにおいて、制御部３７２が検知処理時間に応じて、どの判定機能を実行するかを判定する場合について図面を参照しながら説明する。
【０２０４】
［２．１  異常検知処理機能群の構成］
図２１は、実施の形態２における異常検知処理機能群の一例を示すブロック図である。図２１において、異常検知処理機能群３７０は、制御部３７４と、異常検知部３７３とを含む。なお、実施の形態１と同じ構成要素に関しては、説明を省略する。
【０２０５】
なお、これらの構成は機能を示す構成であり、ゲートウェイ３００において記憶部に保持されているプログラムを処理部が読み出し、実行し、記憶部へ所定のデータを格納、または、入出力部を介してデータの送受信を実行することまたは、これらの処理の組み合わせで実現される。
【０２０６】
制御部３７４は、異常検知部３７３が備える判定機能のうち、検知処理時間内に実行できる判定機能を判断し、判定機能の実行を制御する。制御部３７４は、異常検知部３７３の異常検知処理のために利用可能な時間（検知処理時間）を算出し、その検知処理時間に収まるように判定機能の実行を制御する。
【０２０７】
例えば、制御部３７４は、実施の形態１における判定機能選択部３７１と同様に、図７に示されるような判定機能毎の処理時間と、検知性能（例えば誤検知率と検知率）のデータを保持しており、算出した検知処理時間に収まる判定機能の組み合わせを求め、その判定機能のみを実行するように制御を行う。この時、算出した検知処理時間に収まる判定機能の組み合わせが複数あれば、検知性能が最も良い判定機能の組み合わせ（例えば、誤検知率が低く、検知率が高い組み合わせ）を実行する。
【０２０８】
なお、制御部３７４は、検知処理時間を算出するとしたが、これに限定されるものではない。異常検知処理機能群３７０には検知処理時間を算出する処理時間算出部があり、制御部３７４は処理時間算出部から処理時間を取得して、判定機能を選択してもよいし、異常検知処理機能群３７０はフレーム処理部３５０から検知処理時間に関する情報を取得し、それに基づいて、実行する判定機能を選択してもよい。これにより、制御部３７４は、異常検知処理に関する処理時間のみ管理すればよいため、異常検知処理を他の機能と疎結合にすることができ、異常検知処理に対する他の機能の影響を抑えることができる。
【０２０９】
［２．２  異常検知処理］
図２２は、実施の形態２における異常検知処理の一例を示すフローチャートである。
【０２１０】
まず、異常検知処理機能群３７０は、フレーム処理部３５０から異常検知処理の要求を受けて、異常検知処理に利用可能な時間（検知処理時間）を算出する（ステップＳ１１０１）。
【０２１１】
次に、制御部３７４は、ステップＳ１１０１で算出された検知処理時間が、実行すべき検知処理のために必要な時間より長いか否かを判定する（ステップＳ１２００）。
【０２１２】
ステップＳ１２００で制御部３７４が、実行すべき検知処理のために必要な時間より検知処理時間が長いと判定した場合（ステップＳ１２００でＹｅｓ）、制御部３７４は、異常検知処理を実行する（ステップＳ１１０４）。
【０２１３】
なお、制御部３７４が実行する判定機能を個別に制御する場合、図２２に示される異常検知処理を実行するステップ（ステップＳ１１０４）は、図２３に示される処理になる。図２３は、実施の形態２における異常検知処理の別の一例を示すフローチャートであり、図２４は、実施の形態２における異常検知処理のさらに別の一例を示すフローチャートである。
【０２１４】
制御部３７４は、ステップＳ１１０１で検知処理時間を算出した後に、ＤｏＳ攻撃判定機能を実行する時間があるかを判定する（ステップＳ１２１０）。
【０２１５】
制御部３７４が、ＤｏＳ攻撃判定機能を実行する時間があると判定した場合（ステップＳ１２１０でＹｅｓ）、制御部３７４は異常検知部３７３のＤｏＳ攻撃判定機能を実行する（Ｓ１１１１）。
【０２１６】
制御部３７４が、ＤｏＳ攻撃判定機能を実行する時間がないと判定した場合（ステップＳ１２１０でＮｏ）、制御部３７４は異常検知部３７３のＤｏＳ攻撃判定機能を実行しない。
【０２１７】
続いて、制御部３７４は、ＤｏＳ攻撃判定機能を実行した後の残りの検知処理時間に対して、ＩＤ判定機能を実行する時間があるかを判定する（ステップＳ１２１１）。
【０２１８】
制御部３７４が、ＩＤ判定機能を実行する時間があると判定した場合（ステップＳ１２１１でＹｅｓ）、制御部３７４は異常検知部３７３のＩＤ判定機能を実行する（Ｓ１１１３）。
【０２１９】
制御部３７４が、ＩＤ判定機能を実行する時間がないと判定した場合（ステップＳ１２１１でＮｏ）、制御部３７４は異常検知部３７３のＩＤ判定機能を実行しない。
【０２２０】
次に、制御部３７４は、ＩＤ判定機能を実行した後の残りの検知処理時間に対して、データ長判定機能を実行する時間があるかを判定する（ステップＳ１２１２）。
【０２２１】
制御部３７４が、データ長判定機能を実行する時間があると判定した場合（ステップＳ１２１２でＹｅｓ）、制御部３７４は異常検知部３７３のデータ長判定機能を実行する（Ｓ１１１５）。
【０２２２】
制御部３７４が、データ長判定機能を実行する時間がないと判定した場合（ステップＳ１２１２でＮｏ）、制御部３７４は異常検知部３７３のデータ長判定機能を実行しない。
【０２２３】
そして、制御部３７４は、データ長判定機能を実行した後の残りの検知処理時間に対して、送信周期判定機能を実行する時間があるかを判定する（ステップＳ１２１３）。
【０２２４】
制御部３７４が、送信周期判定機能を実行する時間があると判定した場合（ステップＳ１２１３でＹｅｓ）、制御部３７４は、異常検知部３７３の送信周期判定機能を実行する（Ｓ１１１７）。
【０２２５】
制御部３７４が、送信周期判定機能を実行する時間がないと判定した場合（ステップＳ１２１３でＮｏ）、制御部３７４は異常検知部３７３の送信周期判定機能を実行しない。
【０２２６】
続いて、制御部３７４は、送信周期判定機能を実行した後の残りの検知処理時間に対して、データ値判定機能を実行する時間があるかを判定する（ステップＳ１２１４）。
【０２２７】
制御部３７４が、データ値判定機能を実行する時間があると判定した場合（ステップＳ１２１４でＹｅｓ）、制御部３７４は異常検知部３７３のデータ値判定機能を実行する（Ｓ１１１９）。
【０２２８】
制御部３７４が、データ値判定機能を実行する時間がないと判定した場合（ステップＳ１２１４でＮｏ）、制御部３７４は異常検知部３７３のデータ値判定機能を実行しない。これにより、本開示にかかる異常判定方法は、実行する判定機能の選択を柔軟に制御することができる。
【０２２９】
なお、制御部３７４が実行する判定機能の範囲の判定を行う場合は、実施の形態１における図１４に示されるフローチャートの処理が、図２４に示されるフローチャートの処理になる。これにより、各判定機能に対して、選択されているか否かを逐一確認する必要がなくなり、確認のための処理時間を削減することができる。
【０２３０】
また、制御部３７４が送信周期判定機能とデータ値判定機能とを実行するか否かのみを判定する場合は、実施の形態１における図１５に示されるフローチャートの処理が、図２５に示されるフローチャートの処理になる。図２５は、実施の形態２における異常検知処理の他の一例を示すフローチャートである。
【０２３１】
まず、異常検知処理機能群３７０は、フレーム処理部３５０から異常検知処理の要求を受けて、異常検知処理に利用可能な時間を算出する（ステップＳ１１０１）。  
【０２３２】
次に、制御部３７４は異常検知部３７３のＤｏＳ攻撃判定機能を実行する（ステップＳ１１１１）。
【０２３３】
続いて、制御部３７４は異常検知部３７３のＩＤ判定機能を実行する（ステップＳ１１１３）。
【０２３４】
そして、制御部３７４は異常検知部３７３のデータ長判定機能を実行する（ステップＳ１１１５）。
【０２３５】
次に、制御部３７４は、検知処理時間が、実行すべき処理に必要な時間より長いか否かを判定する（ステップＳ１２３０）。
【０２３６】
続いて、制御部３７４が、検知処理時間が、実行すべき処理に必要な時間より長いと判断した場合（ステップＳ１２３０でＹｅｓ）、制御部３７４は、異常検知部３７３の送信周期判定機能を実行する（ステップＳ１１１７）。
【０２３７】
そして、制御部３７４が、検知処理時間が、実行すべき処理に必要な時間より長いと判断した場合（ステップＳ１２３０でＹｅｓ）、制御部３７４は、異常検知部３７３のデータ値判定機能を実行する（ステップＳ１１１９）。
【０２３８】
制御部３７４が、検知処理時間が、実行すべき処理に必要な時間より短いと判断した場合（ステップＳ１２３０でＮｏ）、制御部３７４は動作を終了する。
【０２３９】
これにより、設計時等に、事前に実行する処理を行う組み合わせを決めることができる場合は、判定機能が選択されているか否かをまとめて確認することができる、処理時間を短縮することができる。また、制御部３７４が送信周期判定機能とデータ値判定機能とを実行するか否かを判定するだけでなく、全ての判定機能を実行しないと判定する場合は、実施の形態１における図１６に示されるフローチャートの処理が図２６に示されるフローチャートの処理になる。図２６は、実施の形態２における異常検知処理のさらに他の一例を示すフローチャートである。これにより、本開示にかかる異常判定方法は、異常検知処理を行う時間が無い場合にも対応することができる。
【０２４０】
まず、異常検知処理機能群３７０は、フレーム処理部３５０から異常検知処理の要求を受けて、異常検知処理に利用可能な時間を算出する（ステップＳ１１０１）。  
【０２４１】
続いて、制御部３７４は、制御部３７４が行う最低限の処理に必要な時間より検知処理時間が長いか否かを判定する（ステップＳ１２３１）。
【０２４２】
次に、制御部３７４が、制御部３７４が行う最低限の処理に必要な時間より検知処理時間が長いと判断した場合（ステップＳ１２３１でＹｅｓ）、制御部３７４は異常検知部３７３のＤｏＳ攻撃判定機能を実行する（ステップＳ１１１１）。
【０２４３】
続いて、制御部３７４が、制御部３７４が行う最低限の処理に必要な時間より検知処理時間が長いと判断した場合（ステップＳ１２３１でＹｅｓ）、制御部３７４は異常検知部３７３のＩＤ判定機能を実行する（ステップＳ１１１３）。
【０２４４】
そして、制御部３７４が、制御部３７４が行う最低限の処理に必要な時間より検知処理時間が長いと判断した場合（ステップＳ１２３１でＹｅｓ）、制御部３７４は異常検知部３７３のデータ長判定機能を実行する（ステップＳ１１１５）。
【０２４５】
次に、制御部３７４は、検知処理時間が、実行すべき処理に必要な時間より長いか否かを判定する（ステップＳ１２３０）。
【０２４６】
続いて、制御部３７４が、検知処理時間が、実行すべき処理に必要な時間より長いと判断した場合（ステップＳ１２３０でＹｅｓ）、制御部３７４は、異常検知部３７３の送信周期判定機能を実行する（ステップＳ１１１７）。
【０２４７】
そして、制御部３７４が、検知処理時間が、実行すべき処理に必要な時間より長いと判断した場合（ステップＳ１２３０でＹｅｓ）、制御部３７４は、異常検知部３７３のデータ値判定機能を実行する（ステップＳ１１１９）。
【０２４８】
制御部３７４が、制御部３７４が行う最低限の処理に必要な時間より検知処理時間が短いと判断した場合（ステップＳ１２３１でＮｏ）、制御部３７４は動作を終了する。
【０２４９】
また、制御部３７４が、検知処理時間が、実行すべき処理に必要な時間より短いと判断した場合（ステップＳ１２３０でＮｏ）、制御部３７４は動作を終了する。
【０２５０】
なお、ＤｏＳ攻撃判定、ＩＤ判定、データ長判定、送信周期判定、および、データ値判定の５つの判定機能に関する異常検知処理について説明したが、本開示にかかる異常判定方法には、更に送信頻度判定と車両状態判定とに関する異常検知処理が含まれていてもよい。また、本開示にかかる異常判定方法には、上記の処理のいくつかの組み合わせが含まれてもよいし、他の判定機能が含まれていてもよい。
【０２５１】
なお、制御部３７４が行う異常検知処理は、上記に限定されるものではなく、上記の組み合わせであってもよい。
【０２５２】
なお、図１３から図１９、および、図２３から図２６で示されるＤｏＳ攻撃判定機能、ＩＤ判定機能、データ長判定機能、送信周期判定機能、および、データ値判定機能に関する処理は、メッセージＩＤ毎に異なる順序で処理が行われてもよい。
【０２５３】
［２．３  リセット処理］
異常検知処理において、制御部３７４が各判定機能を実行するか否かを判定したとき、実行されなかった判定機能によっては、次に当該判定機能が実行されるときに、通常とは異なる判定結果が出る可能性がある。そのため、実施の形態１と同様に、制御部３７４で実行しないと判定した判定機能に関して、リセット処理が実施される必要がある。
【０２５４】
実施の形態１においては、判定機能選択部３７１が判定機能を選択する処理を実施した際に、処理をスキップしたことを示すフラグがセットされた。実施の形態２においては、制御部３７４が各判定機能を実行しないと判定した際に、処理をスキップしたことを示すフラグが設定される必要がある。処理をスキップしたことを示すフラグに応じて制御部３７４が行う、リセット処理を実行するか否かの判定は、実施の形態１の図１７から図１９に示された処理と同様であるため、説明は省略する。
【０２５５】
［２．４  効果］
本実施の形態では、異常検知処理機能群３７０は、各判定機能の実行直前に、当該判定機能を実行するか否かを判断することで、当該判定機能を実行するか否かの判断に、各判定機能の実行時間を正確に反映することができ、大きな異常検知効果を発揮できる判定機能の組み合わせを実行することができる。
【０２５６】
（実施の形態３）
［３．概要］
実施の形態１では、異常検知処理機能群３７０において、判定機能選択部３７１が処理を行う判定機能を選択し、制御部３７２が判定機能選択部３７１の選択結果に応じて各判定機能の実行を制御していた。本実施の形態では、車載ネットワークシステムにおいて、判定機能が実行されなかった場合に、その時のメッセージを保存しておき、検知処理時間に余裕がある場合に、そのメッセージに対する異常検知処理を後から実行する場合について図面を参照しながら説明する。
【０２５７】
［３．１  異常検知処理機能群の構成］
図２７は、実施の形態３における異常検知処理機能群の一例を示すブロック図である。図２７において、異常検知処理機能群３７０は、判定機能選択部３７１と、異常検知部３７３と、非選択情報保持部３７５と、制御部３７６とを含む。または、図２８に示すように、実施の形態２と同様に判定機能選択部３７１を備えず、異常検知部３７３と非選択情報保持部３７５と制御部３７７とを含む構成であってもよい。図２８は、実施の形態３における異常検知処理機能群の別の一例を示すブロック図である。なお、実施の形態１と同じ構成要素に関しては、説明を省略する。
【０２５８】
なお、これらの構成は機能を示す構成であり、ゲートウェイ３００において記憶部に格納されるプログラムを処理部により読み出し、実行し、記憶部へ所定のデータを保持、または入出力部を介してデータの送受信を実行すること、または、これらの組み合わせを実行することで実現される。
【０２５９】
非選択情報保持部３７５は、異常検知部３７３の各判定機能のうちの一部の判定機能が実行されなかった場合に、受信したメッセージの情報を送出し、保持する。また、非選択情報保持部３７５は、制御部３７６からの依頼に応じて、保持しているメッセージを制御部３７６へ送出する。
【０２６０】
制御部３７６は、実施の形態１における制御部３７２の機能に加えて、過去の処理において選択されなかった判定機能があり、かつ、非選択情報保持部３７５にメッセージが保持されており、当該メッセージの異常検知処理を実行する時間があると判定できた場合に、非選択情報保持部３７５からメッセージを取得し、当該メッセージに対する異常検知処理を実行する。
【０２６１】
なお、制御部３７７は、実施の形態１における制御部３７２の機能の代わりに実施の形態２における制御部３７４の機能を備えること以外は、制御部３７６と同じ機能を備える。
【０２６２】
なお、非選択情報保持部３７５は、異常検知部３７３の各判定機能のうちの一部の判定機能が実行されなかった場合に、受信したメッセージを保持するだけでなく、例えば、図２８に示されるように、実行されなかった判定機能に関する情報も保持し、制御部３７６や制御部３７７が異常検知処理を実行するときに、当該実行されなかった判定機能のみに関する異常検知処理を実行できるようにしてもよい。図２９は、実施の形態３における非選択情報の一例を示す図である。これにより、本開示にかかる異常判定方法では、必要な判定機能のみが実行されることが可能となるため、処理時間が短縮されることが可能である。
【０２６３】
［３．２  異常検知処理］
図３０は、実施の形態３における異常検知処理の一例を示すフローチャートであり、図３１は、実施の形態３における異常検知処理の別の一例を示すフローチャートである。図１２に示される実施の形態１における異常検知処理において、ある判定機能が実行されなかった場合、その時点で受信したメッセージを保存する（ステップＳ１３００）。そして、検知処理時間に余裕がある場合に、当該メッセージに対する異常検知処理を後から実行する（ステップＳ１３０２）。ここで、図１２に示される処理と同じ処理に関しては説明を省略する。
【０２６４】
判定機能選択部３７１は、本来実行すべき判定処理のために必要な時間より検知処理時間が短く、処理を行う判定機能を選択した後に（ステップＳ１１０３の後）、非選択情報保持部３７５へメッセージに関する情報の保存を依頼する。非選択情報保持部３７５は、判定機能選択部３７１からの依頼に応じて、メッセージに関する情報を保存する（ステップＳ１３００）。
【０２６５】
その後、制御部３７６は、異常検知処理を実行し、非選択情報保持部３７５に非選択情報があるか否かを問い合わせ、非選択情報があるか否かを判定する（ステップＳ１３０１）。
【０２６６】
制御部３７６が、非選択情報があると判定した場合（ステップＳ１３０１でＹｅｓ）、制御部３７６は、非選択情報後追い処理を実行する（ステップＳ１３０２）。非選択情報後追い処理については、後述する。
【０２６７】
制御部３７６が、非選択情報がないと判定した場合（ステップＳ１３０１でＮｏ）、制御部３７６は、異常検知処理を終了する。
【０２６８】
なお、フレーム処理部３５０から要求された異常検知処理を行うメッセージ（受信メッセージ）のＣＡＮ  ＩＤと同じＣＡＮ  ＩＤを持つメッセージが非選択情報保持部３７５に保持されている場合、一部の判定機能で前回の値を使用する処理があると、異常検知処理が正しく行われない可能性がある。そのため、受信メッセージのＣＡＮ  ＩＤと同じＣＡＮ  ＩＤを持つメッセージが非選択情報保持部３７５に保持されている場合、判定機能選択部３７１は、前回の値を使用する処理がある判定機能を選択せず、受信メッセージのＣＡＮ  ＩＤと同じＣＡＮ  ＩＤを持つメッセージに対する非選択情報後追い処理が終了した後に、全ての判定機能による異常検知処理を実行してもよい。
【０２６９】
以上の処理を図３１に示す。
【０２７０】
判定機能選択部３７１が、検知処理のために必要な時間より検知処理時間が長いと判定した場合（ステップＳ１１０２でＮｏ）、判定機能選択部３７１は、受信メッセージのＣＡＮ  ＩＤと同じＣＡＮ  ＩＤを持つメッセージが、非選択情報保持部３７５に保持されているか否かを判定する（ステップＳ１３１０）。
【０２７１】
判定機能選択部３７１が、受信メッセージのＣＡＮ  ＩＤと同じＣＡＮ  ＩＤを持つメッセージが非選択情報保持部３７５に保持されていると判定した場合（ステップＳ１３１０でＹｅｓ）、判定機能選択部３７１は、前回の値が不要な判定機能のみを選択する（ステップＳ１３１１）。
【０２７２】
そして、判定機能選択部３７１は、一部の判定機能をスキップすることになるため、非選択情報を保存する（ステップＳ１３００）。
【０２７３】
判定機能選択部３７１が、受信メッセージのＣＡＮ  ＩＤと同じＣＡＮ  ＩＤを持つメッセージが非選択情報保持部３７５に保持されていないと判定した場合（ステップＳ１３１０でＮｏ）、制御部３７６は、異常検知処理を実行する（ステップＳ１１０４）。これにより、非選択情報後追い処理が終了したタイミングで、各判定機能の状態が、判定機能の選択処理を行わなかった場合と同じ状態になるため、リセット処理が行われる必要が無くなる。
【０２７４】
［３．３  非選択情報後追い処理］
図３２は、実施の形態３における非選択情報後追い処理の一例を示すフローチャートである。図３２では、上述の非選択情報後追い処理が説明される。
【０２７５】
まず、制御部３７６は、非選択情報に含まれるメッセージのための異常検知処理に利用可能な時間（検知処理時間）を算出する（ステップＳ１３２０）。
【０２７６】
次に、制御部３７６は、非選択情報保持部３７５から非選択情報を１つ取得する（ステップＳ１３２１）。
【０２７７】
続いて、制御部３７６は、取得した非選択情報に含まれるメッセージの異常検知処理のために必要な時間を算出し、検知処理時間より短いか否かを判定する（ステップＳ１３２２）。
【０２７８】
制御部３７６が、取得した非選択情報に含まれるメッセージの異常検知処理のために必要な時間が検知処理時間より短く、時間に余裕があると判定した場合（ステップＳ１３２２でＹｅｓ）、制御部３７６は、非選択情報に含まれるメッセージに対して異常検知処理を実行する（ステップＳ１３２３）。
【０２７９】
その後、ステップＳ１３２０に戻る。
【０２８０】
制御部３７６が、取得した非選択情報に含まれるメッセージの異常検知処理のために必要な時間が検知処理時間より長く、時間に余裕がないと判定した場合（ステップＳ１３２２でＮｏ）、制御部３７６は、非選択情報を非選択情報保持部３７５へ戻す（ステップＳ１３２４）。
【０２８１】
ここで、制御部３７６は、非選択情報後追い処理を終了する。
【０２８２】
なお、ステップＳ１３２３において非選択情報に含まれるメッセージに対して異常検知処理を実行する場合、制御部３７６は、前に行われた異常検知処理で選択されなかった判定機能のみを実行してもよい。この時、ステップＳ１３２２において時間に余裕があるかどうかの判定において、前に行われた異常検知処理で選択されなかった判定機能の処理を行う時間に対して余裕があるか否かを判定する。これにより、本開示にかかる異常判定方法では、必要な判定機能のみが実行されることが可能であるため、処理時間が短縮されることが可能である。
【０２８３】
［３．４  効果］
本実施の形態では、異常検知処理機能群３７０は、判定機能が実行されなかった場合に、その時点で受信したメッセージを保存しておき、検知処理時間に余裕がある場合に、当該メッセージに対する異常検知処理を後から実行する。これにより、異常検知処理機能群３７０は、メッセージ受信時には時間制約を満たしつつ、最大限の異常検知効果を発揮できる判定を行えるだけでなく、タイミングは遅れるものの、当初の予定通りの判定機能による異常検知処理を実行することができる。これにより、本開示にかかる異常判定方法等では、異常検知性能が落ちることなく、処理時間制約が満たされる。
【０２８４】
［４．  その他の変形例］
本開示は、上記で説明した各実施の形態に限定されない。また、本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態に施したもの、および、異なる実施の形態における構成要素を組み合わせて構成される形態も、本開示の範囲内に含まれる。例えば以下のような変形例も本開示に含まれる。
【０２８５】
（１）上記の実施の形態では、異常検知処理機能群３７０は、異常検知処理に利用可能な時間（検知処理時間）を算出し、その検知処理時間が、本来実行すべき検知処理のために必要な時間より長いか否かによって、異常検知処理で実行する判定機能を選択するか否か、または、選択する判定機能を決定したが、本開示はこれに限定されない。例えば、車載ネットワークシステム１０の負荷率、データ量、または、メッセージ量などから、異常検知処理で実行する判定機能を選択するか否か、または、選択する判定機能を決定してもよい。ここで、負荷率とは、車載ネットワークに送信可能なデータ量もしくはメッセージ量の最大値に対する単位時間当たりに送信されたデータ量またはメッセージ量の割合である。
【０２８６】
図３３は、変形例における判定機能と判定機能の選択条件を示す表である。また、図３４は、変形例における異常検知処理の一例を示すフローチャートである。例えば図３４では、負荷率に応じて選択される判定機能の例が示されている。判定機能選択部３７１は、図７で説明された実施の形態１の情報の代わりに、図３３で説明された情報に基づいて、選択する判定機能を決めてもよい。
【０２８７】
例えば、負荷率が６０％以上の時を高負荷と定義した場合、図３４に示される異常検知処理において、判定機能選択部３７１は、ステップＳ１４００で算出した負荷率が、６０％以上の値の場合、「高負荷」であると判定する（ステップＳ１４０１）。
【０２８８】
続いて、判定機能選択部３７１は、図３３に示された情報に基づいて、処理を行う判定機能を選択する（ステップＳ１４０２）。
【０２８９】
次に、制御部３７４は、異常検知処理を実行する（ステップＳ１１０４）。
【０２９０】
また、判定機能選択部３７１が、「高負荷」であると判定しなかった場合（ステップＳ１４０１でＮｏ）、制御部３７４が、異常検知処理を実行する（ステップＳ１１０４）。      
【０２９１】
図３５は、変形例における異常検知処理の別の一例を示すフローチャートである。図３４に示される負荷率をメッセージ量としている点以外は、実施される処理は同じである。また、図示されていないが、データ量に応じて、判定機能選択部３７１が選択する判定機能を決定する場合も同様である。
【０２９２】
なお、高負荷の時にのみ判定機能を選択するのではなく、負荷率によって定まる状態を「高負荷」、「中負荷」、「低負荷」の３段階で定義し、いずれの段階であるかによって、判定機能選択部３７１が選択する判定機能を決めてもよいし、それぞれの段階を組み合わせて、「高負荷」、「高負荷」＋「中負荷」、「全負荷」のような条件に基づいて、判定機能選択部３７１が選択する判定機能を決めてもよい。また、負荷率によって定まる状態は、３段階ではなく、２段階または４段階以上の段階で定義されてもよい。
【０２９３】
なお、負荷率、データ量、または、メッセージ量以外の指標が用いられてもよいし、負荷率、データ量、または、メッセージ量が算出される際に、車載ネットワーク全体から算出されてもよい。また、例えば、ゲートウェイ３００であれば、ゲートウェイ３００が転送するメッセージに対して、負荷率、データ量、または、メッセージ量などの指標に関する値が算出されてもよいし、ゲートウェイ３００に入力されるメッセージに対して、負荷率、データ量、または、メッセージ量などの指標に関する値が算出されてもよい。
【０２９４】
なお、異常検知処理機能群３７０は、負荷率、データ量、または、メッセージ量をフレーム処理部３５０から受け取り、それを元に判定機能を選択、および、判定機能の実行を制御してもよい。また、負荷率やデータ量、メッセージ量をメッセージ受信毎に受け取るのではなく、段階に変化があったときに受け取ってもよい。この時、異常検知処理機能群３７０は、フレーム処理部３５０から負荷率、データ量、または、メッセージ量を受け取らなかったときは、それらの値が前回と同じであったと判定する。
【０２９５】
また、判定機能選択部３７１は、車両が停車中か、走行中か、高速走行中か、定速走行中か、自動運転中か、自動運転を開始したか、自動運転を終了したか、運転支援機能が動作中か、運転支援機能を開始したか、また、運転支援機能を終了したかなどの車両の状態を基に判定機能を選択し、制御部３７７は、判定機能の実行を制御してもよい。
【０２９６】
なお、判定機能選択部３７１は、ＣＡＮ  ＩＤ毎に設定されている検知ルールで利用する判定機能と、検知処理時間、負荷率、データ量、および、メッセージ量とから、判定機能を選択し、制御部３７７は、判定機能の実行を制御してもよい。つまり、判定機能選択部３７１または制御部３７４、３７７は、検知ルールで利用する機能の組み合わせから判定機能を選ぶ。
【０２９７】
なお、判定機能選択部３７１は、図３３に示された情報に基づいて、選択する判定機能を決めたが、これに限定するものではない。例えば、判定機能選択部３７１は、図４１に示されるように判定機能の組み合わせと選択条件とから選択する判定機能を決めてもよい。
【０２９８】
図３５は、変形例における異常検知処理の別の一例を示すフローチャートである。
【０２９９】
まず、制御部３７４は、メッセージ量を算出する（ステップＳ１４１０）。
【０３００】
次に、制御部３７４は、メッセージ量が多いか否かを判定する（ステップＳ１４１１）。
【０３０１】
制御部３７４が、メッセージ量が所定値よりも多いと判定した場合（ステップＳ１４１１でＹｅｓ）、制御部３７４は、処理を行う判定機能を選択する（ステップＳ１４１２）。
【０３０２】
そして、制御部３７４は、異常検知処理を実行する（ステップＳ１１０４）。
【０３０３】
また、制御部３７４が、メッセージ量が所定値よりも少ないと判定した場合（ステップＳ１４１１でＮｏ）、制御部３７４は異常検知処理を実行する（ステップＳ１１０４）。
【０３０４】
これにより、本開示にかかる異常判定方法等は、検知処理時間の算出が難しい場合、または、検知処理時間が一意に求まらない場合においても、負荷率、データ量、および、メッセージ量等の別の指標を用いて判定機能の選択を行うことができる。
【０３０５】
（２）上記の実施の形態では、ＥＣＵ１００は、フレーム送受信部１１０と、フレーム解釈部１２０と、受信ＩＤ判定部１３０と、受信ＩＤリスト保持部１４０と、フレーム処理部１５０と、データ取得部１７０と、フレーム生成部１８０とを備えると説明されたが、本開示における車載ネットワークシステムが備えるＥＣＵの構成はこれに限定されない。
【０３０６】
図３６は、変形例におけるＥＣＵの一例を示すブロック図である。図３６において、ＥＣＵ１００ｆは、フレーム送受信部１１０と、フレーム解釈部１２０と、フレーム生成部１８０と、異常検知処理機能群３７０とで構成される。フレーム解釈部１２０は、例えばＩＤによらず全てのメッセージを受信し、全てのメッセージについて異常検知処理機能群３７０へ異常なメッセージであるかどうかの判定を依頼してもよい。
【０３０７】
また、ＥＣＵ１００ｆは、図３６の構成に加えて、受信ＩＤ判定部１３０と、受信ＩＤリスト保持部１４０とを備え、受信ＩＤリスト保持部が保持する受信ＩＤリストに記載されたメッセージＩＤを持つメッセージのみを受信し、そのメッセージに関して、異常検知処理機能群３７０へ異常なメッセージであるか否かの判定を依頼してもよい。
【０３０８】
なお、ＥＣＵ１００ｇは、更に、外部通信部３９０を備えてもよい。
【０３０９】
これにより、ゲートウェイだけでなく、ＥＣＵも、車載ネットワークに送信されているメッセージが異常なメッセージであるか否かを解析できる。その結果、例えば車載ネットワークシステムにおける異常検知のための機能が向上し、より高度に安全が確保される。
【０３１０】
図３７は、変形例におけるＥＣＵの別の一例を示すブロック図である。図３７に示されるＥＣＵ１００ｇは、バス２００へ送信するデータを他の接続機器または外部等から取得する送信データ取得部１７１と、異常検知処理機能群３７０ｇとを備えてもよい。ＥＣＵ１００ｇが備える異常検知処理機能群３７０ｇは、送信データ取得部１７１から受信したデータが異常なメッセージであるか否かについても判定し、当該受信したデータが異常なメッセージではないと判定した場合のみ、フレーム生成部１８０へメッセージの送信を依頼してもよい。
【０３１１】
なお、ＥＣＵ１００ｇは、更に、外部通信部３９０を備えてもよい。
【０３１２】
これにより、本開示にかかる異常判定方法等は、例えば、カーナビゲーションと一緒に利用されるＥＣＵが、外部から不正に操作されたカーナビゲーションから異常なメッセージが送信される場合において、ＥＣＵ１００ｇが含まれる車載ネットワークへの当該メッセージの拡散を抑制することができる。また、本開示にかかる異常判定方法等は、車外から送信が試みられる異常なメッセージの車載ネットワークシステム内部への侵入を抑制することができる。
【０３１３】
（３）上記実施の形態では、判定機能選択部３７１は、選択される判定機能、または、実行される判定機能を決定するために、１つの基準を用いて判定するとしたが、これに限定されるものではない。例えば、判定機能選択部３７１は、ＣＡＮ  ＩＤ毎に異なる基準を用いてもよい。また、ゲートウェイ３００やＥＣＵに複数のバスが接続されている場合は、判定機能選択部３７１は、複数のバス毎に異なる基準を用いてもよい。また、判定機能選択部３７１は、車両が停車中か、走行中か、高速走行中か、定速走行中か、自動運転中か、自動運転を開始したか、自動運転を終了したか、運転支援機能が動作中か、運転支援機能を開始したかまたは、運転支援機能を終了したかなどの車両の状態毎に異なる基準を用いてもよい。
【０３１４】
なお、ＣＡＮ  ＩＤ毎に基準がある場合、判定機能選択部３７１は、重要なＣＡＮ  ＩＤに対しては判定機能を選択せず、重要でないＣＡＮ  ＩＤに対しては判定機能を選択してもよい。また、判定機能選択部３７１は、重要度に応じて、選択する判定機能を変更してもよい。
【０３１５】
これにより、本開示にかかる異常判定方法等は、より柔軟に判定機能の実行を制御することができるため、様々なシステムや、様々な状況に応じて、最適な実行を行える。
【０３１６】
（４）上記実施の形態では、異常検知処理機能群３７０はフレーム処理部３５０へ判定結果を返すとしたが、これに限定されるものではなく、判定結果と一緒に、選択した判定機能に関する情報、または、実行した判定機能に関する情報を共に返してもよい。
【０３１７】
これにより、異常検知処理機能群３７０を呼び出したフレーム処理部３５０等は、異常検知処理機能群３７０の判定結果の確からしさを確認することができる。
【０３１８】
（５）上記の実施の形態では、ＣＡＮプロトコルに従って通信するネットワーク通信システムの例として車載ネットワークを示した。本開示に係る技術は、車載ネットワークでの利用に限定されるものではなく、ロボット、産業機器等のネットワークその他、車載ネットワーク以外のＣＡＮプロトコルに従って通信するネットワーク通信システムに利用されてもよい。
【０３１９】
また、車載ネットワークとしてＣＡＮプロトコルを用いていたが、これに限るものではない。例えば、ＣＡＮ−ＦＤ（ＣＡＮ  ｗｉｔｈ  Ｆｌｅｘｉｂｌｅ  Ｄａｔａ  Ｒａｔｅ）、ＦｌｅｘＲａｙ、Ｅｔｈｅｒｎｅｔ、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）、ＭＯＳＴ（Ｍｅｄｉａ  Ｏｒｉｅｎｔｅｄ  Ｓｙｓｔｅｍｓ  Ｔｒａｎｓｐｏｒｔ）などが用いられてもよい。あるいはこれらのネットワークがサブネットワークとして、組み合わされたネットワークであってもよい。
【０３２０】
例えば、Ｅｔｈｅｒｎｅｔの場合、判定機能選択部３７１は、ＤｏＳ攻撃判定機能、送信元アドレス判定機能、送信先アドレス判定機能、プロトコル判定機能、送信元ポート番号判定機能、送信先ポート番号判定機能、または、データ値判定機能などの機能から判定機能を選択する。または、判定機能選択部３７１は、制御部３７７が実行する判定機能として、上記の複数の判定機能の中から１つ以上の判定機能を選択すればよい。Ｅｔｈｅｒｎｅｔ以外のネットワーク規格においても、ヘッダ情報、または、ペイロードの値を判定する機能などに対して、ＣＡＮまたはＥｔｈｅｒｎｅｔの場合と同様の処理が行われる。
【０３２１】
（６）上記の実施の形態におけるゲートウェイ３００は、第一の処理部と第二の処理部とを含み、異常検知処理機能群３７０のうち、判定機能選択部３７１の機能を第一の処理部で処理を行い、制御部３７２および異常検知部３７３の機能を第二の処理部で処理を行ってもよい。この時、判定機能選択部３７１が選択した結果が、第一の処理部から第二の処理部へ送出される。そして、第二の処理部では、判定機能選択部３７１から送出された選択結果に応じて、制御部３７２が異常検知部３７３の判定機能を制御してもよい。
【０３２２】
また、ゲートウェイ３００は、第三の処理部と、第四の処理部と、第五の処理部とを含んでもよい。第三の処理部は、判定機能選択部３７１が処理を行っていた検知処理時間の算出を行う処理時間算出部を含み、処理時間算出部が算出した検知処理時間が第四の処理部へ送出される。第四の処理部では、判定機能選択部３７１が検知処理時間に応じて判定機能を選択し、選択した結果が第五の処理部へ送出される。第五の処理部では、送出された選択結果に応じて、制御部３７２が異常検知部３７３の判定機能を制御してもよい。
【０３２３】
また、第一の処理部は、判定機能選択部３７１と制御部３７２と異常検知部３７３とを含み、第二の処理部は、制御部３７２と異常検知部３７３とを含んでもよい。第一の処理部では、判定機能選択部３７１が第一の処理部の異常検知部３７３を使った異常検知処理を行う際に、判定機能選択部３７１が選択しなかった判定機能を選択して、第二の処理部へ送出し、第二の処理部の制御部３７２と異常検知部３７３とが異常検知処理を行うことで、本来実行が望まれた異常検知処理が行われてもよい。
【０３２４】
なお、ゲートウェイ３００の中で、処理部が分割されて存在するだけではなく、ゲートウェイ３００には第二の処理部および第五の処理部があり、他のＥＣＵに第一の処理部、第三の処理部および第四の処理部があってもよい。また、図３８は、変形例における車載ネットワークシステムの全体構成を示すブロック図であり、図３９は、変形例における車載ネットワークシステムに含まれる通信ＥＣＵの一例を示すブロック図である。図３７に示されるように、車載ネットワークシステムは通信ＥＣＵ１００ｅを含み、外部ネットワーク４００を経由してサーバ５００と通信し、通信ＥＣＵ１００ｅは、図３９に示されるように外部通信部３９０を含み、車載ネットワークから受信したメッセージ、異常検知処理機能群３７０による異常検知処理結果、および、実行した判定機能に関する情報をサーバ５００へ送出してもよい。
【０３２５】
図４０は、変形例におけるサーバの一例を示すブロック図であり、図４１は、変形例における判定機能と判定機能の選択条件を示す表である。サーバ５００は、図４０に示されるように、受信部５１０とメッセージ保持部５２０と処理部５３０とを含み、上記の第一の処理部と第四の処理部とが処理部５３０であってもよい。また、処理部５３０は、表示部と入力部とを含み、検知処理時間、負荷率、データ量、メッセージ量、または、車両状態などを表示し、オペレーターが、表示された情報、または、他から入手した情報から実行する判定機能を選択し、入力部を介して選択結果を入力してもよい。
【０３２６】
入力された結果は、サーバ５００から制御部３７２へ送出され、制御部３７２が入力された結果に応じて、異常検知部３７３の判定機能を制御してもよい。また、サーバ５００は、異常検知部３７３が実行した判定機能に関する情報から、本来実行が望まれる判定機能が実行されていないと判断した場合には、サーバ５００の処理部５３０において、そのメッセージに対する異常検知処理を行ってもよい。
【０３２７】
これにより、本開示の車載ネットワークシステムは、柔軟な構成で実現されうるため、様々なシステム制約をふまえた構成となることができる。
【０３２８】
（７）上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、および、マウスなどから構成されるコンピュータシステムである。ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０３２９】
（８）上記の実施の形態における各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されていてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、および、ＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０３３０】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又はすべてを含むように１チップ化されてもよい。
【０３３１】
また、ここでは、実施の形態における各装置を構成する構成要素の一部または全部はシステムＬＳＩで実現されるとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、または、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法は、ＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現される手法であってもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）または、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサが利用されても良い。
【０３３２】
さらには、半導体技術の進歩、または、派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、当該技術が用いられて機能ブロックの集積化が行われてもよい。ＬＳＩに置き換わる集積回路化の技術としては、バイオ技術の適用等の可能性も想定される。
【０３３３】
（９）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。ＩＣカードまたはモジュールは、マイクロプロセッサ、ＲＯＭ、または、ＲＡＭなどから構成されるコンピュータシステムである。ＩＣカードまたはモジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有してもよい。
【０３３４】
（１０）本開示は、上記に示す方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０３３５】
また、本開示は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、または、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。
【０３３６】
また、本開示は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、または、データ放送等を経由して伝送するものとしてもよい。
【０３３７】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
【０３３８】
また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、もしくは、プログラムまたはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０３３９】
（１１）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【０３４０】
以上、一つ又は複数の態様に係る車載ネットワークにおける、不正メッセージによる不正制御を目的とする不正通信検知の基準として用いられるメッセージの決定のための技術について実施の形態及びその変形例に基づいて説明した。
【０３４１】
これらの各実施の形態及びその変形例では、車載ネットワークシステムに接続されて通信するゲートウェイもしくはＥＣＵ、又はこれらとサーバコンピュータとの組み合わせによって不正通信検知の基準として用いられるメッセージが決定される。
【０３４２】
このような不正通信検知を実行する、１個以上のプロセッサ及び記憶部を含むシステムを、本開示では不正通信検知基準決定システムと呼ぶ。
【０３４３】
したがって、不正通信検知基準決定システムは車載ネットワークシステムに接続される１台のゲートウェイのように１個の装置によって実現されるものも、このようなゲートウェイとＥＣＵとの組み合わせ、又はゲートウェイ若しくはＥＣＵと遠隔にあるサーバコンピュータとの組み合わせのように複数個の装置によって実現されるものも含む。
【０３４４】
また、この技術は、上記各実施の形態又はその変形例において、各構成要素が実行する処理のステップの一部又は全部を含む方法として、又は不正通信検知基準決定システムのプロセッサに実行されて、不正通信検知基準決定システムがこの方法を実施させるためのプログラムとしても実現可能である。
【０３４５】
また、上記実施の形態又はその変形例において、特定の構成要素が実行する処理を特定の構成要素の代わりに別の構成要素が実行してもよい。また、複数の処理の順序が変更されてもよいし、複数の処理が並行して実行されてもよい。
【０３４６】
上記の異常判定方法は、１個以上のプロセッサと、その１個以上のプロセッサからアクセス可能な記憶部とを備える異常判定装置によって、実行されてもよい。この異常判定装置は、ゲートウェイ３００またはサーバ５００などであってもよいし、それらに含まれていてもよい。
【０３４７】
［効果等］
本開示における異常判定方法は、受信メッセージの異常を判定する異常判定方法であって、周期性を有する複数のメッセージであって、固定されている値を含む第１フィールドと、変化する値を含む第２フィールドとを有する複数のメッセージのそれぞれを前記受信メッセージとして受信し、前記異常判定方法が実行されうる時間、負荷量、データ量、または、メッセージの個数のうちの１以上の基準に応じて、前記周期性に基づく受信タイミング、または、前記受信メッセージの個数が用いられる異常判定、前記値が固定されているフィールドが用いられる異常判定、および、前記値が変化するフィールドが用いられる異常判定のうちの１以上でそれぞれが構成される複数の組み合わせのいずれで判定が行われるかを選択する。
【０３４８】
これにより、本開示にかかる異常判定方法は、限られた時間内で、実行するべき異常判定を選択しながら処理を進めることができる。よって、本開示にかかる異常判定方法は、効果的に、受信メッセージの異常を判定することができる。
【０３４９】
また、本開示における異常判定方法は、前記異常判定を前記選択された組み合わせで実行してもよい。
【０３５０】
これにより、本開示にかかる異常判定方法は、あらかじめ選択された異常判定の組み合わせを実行することで、限られた時間内で、効果的に、受信メッセージの異常を判定することができる。
【０３５１】
また、本開示にかかる異常判定方法は、前記異常判定方法が行われた時に、前記複数の異常判定のうちの前回の情報を用いる前記異常判定が実行されていなかった場合、次に異常判定方法が行われる時に、前記前回の情報を用いる異常判定に用いられる前記前回の情報をリセットしてもよい。
【０３５２】
これにより、本開示にかかる異常判定方法は、ある異常判定がスキップされた後に、同一の異常判定が行われる際に、当該異常判定がスキップされたことにより正常なデータが記録されていないことに起因して、同一の異常判定が行われる際に正常な判定が行われないことを回避することができる。よって、本開示にかかる異常判定方法は、効果的に受信メッセージの異常を判定することができる。
【０３５３】
また、本開示にかかる異常判定方法は、前記受信メッセージを受信するためのネットワークの負荷率が所定の閾値を下回ったとき、直前に受信した、種類の異なる前記受信メッセージの情報を、前記リセットされた前回の情報の代わりの情報として用いてもよい。
【０３５４】
これにより、本開示にかかる異常判定方法は、ある異常判定がスキップされた後に、同一の異常判定が行われる際に、当該異常判定がスキップされたことにより正常なデータが記録されていないことに起因して、同一の異常判定が行われる際に、当該異常判定処理が行われることができないという事態を回避することができる。つまり、本開示にかかる異常判定方法は、上述の場合に、直前に受信したＩＤの異なる受信メッセージの情報を使用することで、スキップされた異常判定処理と同一の異常判定処理を行うことができる。
【０３５５】
また、本開示にかかる異常判定方法は、前記選択された判定処理が実行された後に前記異常判定方法を実行するための時間に余裕が発生した場合、選択されなかった前記異常判定を実行してもよい。
【０３５６】
これにより、本開示にかかる異常判定方法は、より多くの異常判定を行うことが可能である。よって、本開示にかかる異常判定方法は、より効果的に、受信メッセージの異常を判定することができる。
【０３５７】
本開示に係る異常判定装置は、ネットワーク及び前記ネットワークに接続される１以上の電子制御ユニットを含む車載ネットワークシステムにおける異常判定装置であって、１個以上のプロセッサと、前記１個以上のプロセッサからアクセス可能な記憶部と、を備え、前記１個以上のプロセッサは、前記ネットワークから、周期性を有する複数のメッセージを含む複数のメッセージであって、固定されている値を有する第１フィールドと、変化する値を有する第２フィールドとをそれぞれが含む複数のメッセージのそれぞれを受信メッセージとして受信し、前記異常判定装置が行う異常判定方法が実行されうる時間、負荷量、データ量、または、メッセージの個数のうちの１以上の基準に応じて、前記周期性に基づく受信タイミング、または、前記受信メッセージの個数が用いられる異常判定、前記第１フィールドが用いられる異常判定、および、前記第２フィールドが用いられる異常判定を含む複数の異常判定のうちの１以上でそれぞれが構成される複数の組み合わせのいずれで判定が行われるかを選択する。
【０３５８】
これにより、本開示にかかる異常判定装置は、上記異常判定方法と同様の効果を奏することができる。
【０３５９】
また、本開示にかかるプログラムは、コンピュータに本開示にかかる異常判定方法を実施させるためのプログラムであってもよい。
【０３６０】
これにより、本開示にかかるプログラムは、上記異常判定方法と同様の効果を奏することができる。
【０３６１】
なお、本開示にかかる異常判定方法は、前記異常判定方法が実行されうる時間が、所定の時間より短いと判定された場合、前記周期性に基づく受信タイミング、または、前記受信メッセージの個数を用いた異常判定、前記第１フィールドが用いられる異常判定、または、前記第２フィールドが用いられる異常判定のうちから、所定の基準よりも誤検知率が低く検知率が高い、１つ以上の異常判定の組み合わせを実行してもよい。
【０３６２】
これにより、本開示にかかる異常判定方法は、より効果的に、受信メッセージの異常を判定することができる。
【０３６３】
なお、本開示にかかる異常判定方法は、前記異常判定方法が実行されうる時間が、所定の時間より短いと判定された場合、前記周期性に基づく受信タイミング、前記受信メッセージの個数を用いた異常判定、および、前記第２フィールドが用いられる異常判定を実行しなくてもよい。
【０３６４】
これにより、本開示にかかる異常判定方法は、変化する値を有するフィールドが用いられる異常判定のみを行うことで、限られた時間内で、より効果的に、受信メッセージの異常を判定することができる。
【０３６５】
本開示にかかる異常判定方法は、前記異常判定方法が実行されうる時間が、所定の時間より短いと判定された場合、前記周期性に基づく受信タイミング、または、前記受信メッセージの個数を用いた異常判定、前記第１フィールドが用いられる異常判定、または、前記第２フィールドが用いられる異常判定のうちのいずれかの異常判定の前で処理を終了することを選択してもよい。  これにより、本開示にかかる異常判定方法は、限られた時間内で、より効果的に、受信メッセージの異常を判定することができる。
【０３６６】
本開示にかかる異常判定方法は、前記異常判定方法が実行されうる時間が、所定の時間より短いと判定された場合、前記周期性に基づく受信タイミング、または、前記受信メッセージの個数を用いた異常判定、前記値が固定されているフィールドが用いられる異常判定、または、前記値が変化するフィールドが用いられる異常判定のうち、実行されないと決定された異常判定に関する情報、または、実行されないと決定された異常判定が行われる対象のメッセージに関する情報を、メモリに記憶してもよい。
【０３６７】
これにより、本開示にかかる異常判定方法は、実行されないと決定された異常判定を、状況に応じて、後から実行することができる。これにより、本開示にかかる異常判定方法は、より効果的に、受信メッセージの異常を判定することができる。
【産業上の利用可能性】
【０３６８】
本開示にかかる異常検知方法等は、車載ネットワークにおけるメッセージの異常検知等に利用することができる。また、本開示にかかる異常検知方法等は、異常検知処理に利用できる検知処理時間に応じて適切な異常検知処理を行うことができる。これにより、本開示にかかる異常検知方法等は、従来では異常検知処理が実行できなかったタイミングにおいても、精度よく、正常なメッセージを識別することができ、ネットワークの保護が可能となる。
【符号の説明】
【０３６９】
１０  車載ネットワークシステム
１００、１００ａ、１００ｂ、１００ｃ、１００ｄ、１００ｅ、１００ｆ、１００ｇ  ＥＣＵ
１０１  エンジン
１０２  ブレーキ
１０３  ドア開閉センサ
１０４  ウィンドウ開閉センサ
１１０  フレーム送受信部
１２０  フレーム解釈部
１３０  受信ＩＤ判定部
１４０  受信ＩＤリスト保持部
１５０  フレーム処理部
１７０  データ取得部
１７１  送信データ取得部
１８０、３８０  フレーム生成部
２００、２００ａ、２００ｂ  バス
３００  ゲートウェイ
３１０  フレーム送受信部
３２０  フレーム解釈部
３３０  受信ＩＤ判定部
３４０  受信ＩＤリスト保持部
３５０  フレーム処理部
３６０  転送ルール保持部
３７０  異常検知処理機能群
３７１  判定機能選択部
３７２、３７４、３７６、３７７  制御部
３７３  異常検知部
３７５  非選択情報保持部
３８１  検知ルール保持部
３９０  外部通信部
４００  外部ネットワーク
５００  サーバ
５１０  受信部
５２０  メッセージ保持部
５３０  処理部
【図１】
2020162075.tif 000003
【図２】
2020162075.tif 000004
【図３】
2020162075.tif 000005
【図４】
2020162075.tif 000006
【図５】
2020162075.tif 000007
【図６】
2020162075.tif 000008
【図７】
2020162075.tif 000009
【図８】
2020162075.tif 000010
【図９】
2020162075.tif 000011
【図１０】
2020162075.tif 000012
【図１１】
2020162075.tif 000013
【図１２】
2020162075.tif 000014
【図１３】
2020162075.tif 000015
【図１４】
2020162075.tif 000016
【図１５】
2020162075.tif 000017
【図１６】
2020162075.tif 000018
【図１７】
2020162075.tif 000019
【図１８】
2020162075.tif 000020
【図１９】
2020162075.tif 000021
【図２０】
2020162075.tif 000022
【図２１】
2020162075.tif 000023
【図２２】
2020162075.tif 000024
【図２３】
2020162075.tif 000025
【図２４】
2020162075.tif 000026
【図２５】
2020162075.tif 000027
【図２６】
2020162075.tif 000028
【図２７】
2020162075.tif 000029
【図２８】
2020162075.tif 000030
【図２９】
2020162075.tif 000031
【図３０】
2020162075.tif 000032
【図３１】
2020162075.tif 000033
【図３２】
2020162075.tif 000034
【図３３】
2020162075.tif 000035
【図３４】
2020162075.tif 000036
【図３５】
2020162075.tif 000037
【図３６】
2020162075.tif 000038
【図３７】
2020162075.tif 000039
【図３８】
2020162075.tif 000040
【図３９】
2020162075.tif 000041
【図４０】
2020162075.tif 000042
【図４１】
2020162075.tif 000043
【国際調査報告】
2020162075.tif 000044
2020162075.tif 000045
2020162075.tif 000046
2020162075.tif 000047