(57)【要約】  異常検知装置（１１０ａ）は、バス（１３０）とＥＣＵ（１０１ａ）の間に配置され、ＥＣＵ（１０１ａ）からメッセージを受信して当該メッセージをバス（１３０）へ送信し、バス（１３０）からメッセージを受信して当該メッセージをＥＣＵ（１０１ａ）へ送信する通信部（１１１）と、通信部（１１１）がバス（１３０）から受信しＥＣＵ（１０１ａ）へ送信したメッセージのＩＤのリストである受信済みＩＤリストを保持する受信済みＩＤリスト保持部（１１４）と、制御部（１１２）と、を備え、制御部（１１２）は、通信部（１１１）がバス（１３０）から受信したメッセージのＩＤが受信済みＩＤリストに存在しない場合に、当該ＩＤを受信済みＩＤリストに追加し、通信部（１１１）がＥＣＵ（１０１ａ）から受信したメッセージのＩＤが受信済みＩＤリストに存在する場合に、当該メッセージをバス（１３０）へ送信しない。
2019225257.tif 000002
【特許請求の範囲】
【請求項１】
複数の電子制御ユニットと、ネットワークバスと、異常検知装置から構成される車載ネットワークに配置される異常検知装置であって、
前記異常検知装置は、
前記ネットワークバスと前記複数の電子制御ユニットのうちのいずれかの第１電子制御ユニットの間に配置され、
前記第１電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークバスへ送信し、前記ネットワークバスからメッセージを受信して当該メッセージを前記第１電子制御ユニットへ送信する通信部と、
前記通信部が前記ネットワークバスから受信し前記第１電子制御ユニットへ送信したメッセージのＩＤのリストである受信済みＩＤリストを保持する受信済みＩＤリスト保持部と、
前記通信部および前記受信済みＩＤリスト保持部を制御する制御部と、を備え、
前記制御部は、
前記通信部が前記ネットワークバスから受信したメッセージのＩＤが前記受信済みＩＤリストに存在しない場合に、当該ＩＤを前記受信済みＩＤリストに追加し、
前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、当該メッセージを前記ネットワークバスへ送信しないことを特徴とする、
異常検知装置。
【請求項２】
前記制御部は、前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、前記第１電子制御ユニットを前記ネットワークバスから隔離することを特徴とする、
請求項１記載の異常検知装置。
【請求項３】
前記制御部は、前記通信部が前記複数の電子制御ユニットのうちの前記第１電子制御ユニットとは異なる第２電子制御ユニットから送信された異常なＩＤを示す異常ＩＤ情報を前記ネットワークバスから受信した場合に、前記受信済みＩＤリストから前記異常ＩＤ情報が示すＩＤを消去することを特徴とする、
請求項１または２に記載の異常検知装置。
【請求項４】
前記受信済みＩＤリスト保持部は、前記受信済みＩＤリストに含まれるＩＤ毎のメッセージ受信回数を記録する領域を持ち、
前記制御部は、
前記通信部が前記ネットワークバスからメッセージを受信したとき、当該メッセージのＩＤについて記録されるメッセージ受信回数を更新し、
前記車載ネットワークを搭載した車両のシャットダウン時に、前記受信済みＩＤリストに含まれるＩＤのうち、前記受信済みＩＤリスト保持部に記録されたメッセージ受信回数、または、当該メッセージ受信回数に基づくメッセージ受信頻度が所定の値以下となっているＩＤを不揮発性メモリに退避させ、
前記車両の起動時に、前記不揮発性メモリに退避させた前記ＩＤを前記受信済みＩＤリストに追加することを特徴とする、
請求項１〜３のいずれか１項に記載の異常検知装置。
【請求項５】
前記制御部は、前記車両の起動時に、前回の起動時から前記第１電子制御ユニットのファームウェア情報が変更されている場合に、前記不揮発性メモリに退避させた前記ＩＤを消去し、当該ＩＤを前記受信済みＩＤリストに追加しないことを特徴とする、
請求項４記載の異常検知装置。
【請求項６】
前記異常検知装置は、さらに、前記通信部が前記第１電子制御ユニットから受信し前記ネットワークバスへ送信したメッセージのＩＤのリストである送信済みＩＤリストを保持する送信済みＩＤリスト保持部を備え、
前記制御部は、さらに、
前記送信済みＩＤリスト保持部を制御し、
前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記送信済みＩＤリストに存在しない場合に、当該ＩＤを前記送信済みＩＤリストに追加し、
前記通信部が前記ネットワークバスから受信したメッセージのＩＤが前記送信済みＩＤリストに存在する場合、当該メッセージを前記第１電子制御ユニットへ送信しないことを特徴とする、
請求項１〜５のいずれか１項に記載の異常検知装置。
【請求項７】
前記送信済みＩＤリスト保持部は、前記送信済みＩＤリストに含まれるＩＤ毎のメッセージ送信回数を記録する領域を持ち、
前記制御部は、
前記通信部が前記第１電子制御ユニットからメッセージを受信したときに、当該メッセージのＩＤについて記録されるメッセージ送信回数を更新し、
前記車載ネットワークを搭載した車両のシャットダウン時に、前記送信済みＩＤリストに含まれるＩＤのうち、前記送信済みＩＤリスト保持部に記録されたメッセージ送信回数、または、当該メッセージ送信回数に基づくメッセージ送信頻度が所定の値以下となっているＩＤを不揮発性メモリに退避させ、
前記車両の起動時に、前記不揮発性メモリに退避させた前記ＩＤを前記送信済みＩＤリストに追加することを特徴とする、
請求項６記載の異常検知装置。
【請求項８】
前記制御部は、前記車両の起動時に、前回の起動時から前記第１電子制御ユニットのファームウェア情報が変更されている場合に、前記不揮発性メモリに退避させた前記ＩＤを消去し、当該ＩＤを前記送信済みＩＤリストに追加しないことを特徴とする、
請求項７記載の異常検知装置。
【請求項９】
複数の電子制御ユニットと、ネットワークバスと、異常検知装置から構成される車載ネットワークに配置される異常検知装置により実行される異常検知方法であって、
前記異常検知装置は、
前記ネットワークバスと前記複数の電子制御ユニットのうちのいずれかの第１電子制御ユニットの間に配置され、
前記第１電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークバスへ送信し、前記ネットワークバスからメッセージを受信して当該メッセージを前記第１電子制御ユニットへ送信する通信部と、
前記通信部が前記ネットワークバスから受信し前記第１電子制御ユニットへ送信したメッセージのＩＤのリストである受信済みＩＤリストを保持する受信済みＩＤリスト保持部と、を備え、
前記異常検知方法では、
前記通信部が前記ネットワークバスから受信したメッセージのＩＤが前記受信済みＩＤリストに存在しない場合に、当該ＩＤを前記受信済みＩＤリストに追加し、
前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、当該メッセージを前記ネットワークバスへ送信しないことを特徴とする、
異常検知方法。
【請求項１０】
請求項９に記載の異常検知方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、車載ネットワーク等で用いられる異常検知装置等に関する。
【背景技術】
【０００２】
電子化が進んだ自動車において、電子化が進んでいない自動車と比較すると、車載ネットワークの重要性は高くなっている。自動車には各種のシステムを制御する多数の電子制御ユニット（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ、以下ＥＣＵと表記する）が搭載されている。ＥＣＵは車載ネットワークに接続され、自動車の諸機能を実現するためにこの車載ネットワークを介して通信を行う。ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）は、このような車載ネットワークの規格のひとつで、ＩＳＯ１１８９８、ＩＳＯ１１５１９において規格化され標準的な技術として多くの国および地域で採用されている。【０００３】
ＣＡＮのプロトコルに準拠するネットワークは１台の車上で閉じた通信経路として構築可能である。しかしながら、自動車には外部からのアクセスが可能なネットワークが構築され、搭載されるのが珍しくない。例えば車載ネットワークには、ネットワークを流れる情報を自動車に搭載された各システムの診断に利用する目的で取り出すためのポートが設置されたり、無線ＬＡＮを提供する機能を備えるカーナビゲーションシステムが接続されたりしている。車載ネットワークへの外部からのアクセスが可能になることで自動車のユーザにとっての利便性は向上し得るが、その一方で脅威も増大する。【０００４】
例えば、２０１３年には、車載ネットワークの外部からの駐車支援機能等の悪用による不正な車両制御が可能であることが実証された。また、２０１５年には特定の車種の遠隔からの不正制御が可能であることが実証され、この実証が発端となって当該車種のリコールに発展した。【０００５】
このような外部からのアクセスによる車両の不正制御は、自動車業界にとっては看過できない問題であり、車載ネットワークのセキュリティ対策は急務な状況にある。【０００６】
車載ネットワークへの攻撃の一手法としては、車載ネットワークに接続されるＥＣＵに外部からアクセスして乗っ取り、乗っ取ったＥＣＵから攻撃のためのメッセージ（以下では不正メッセージまたは異常メッセージともいう）を車載ネットワークに向けて送信させて自動車を不正に制御するものがある。【０００７】
このような攻撃に対し、非特許文献１では、車載ネットワークに送信されたメッセージから不正メッセージを検知するＩＤＳ（Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）ＥＣＵと呼ばれるノードを車載ネットワークに追加し、ＩＤＳＥＣＵが不正なメッセージのハッシュ値をネットワークに送信し、このハッシュ値を各ＥＣＵが送信したメッセージのハッシュ値と比較することで、不正なメッセージを送信する不正ＥＣＵを特定し、車載ネットワークから遮断する方法を開示している。【０００８】
また、非特許文献２では、車載ネットワークでは同一のＩＤを持つメッセージを複数のＥＣＵが送信しないという前提で、各ＥＣＵが自身の送信するＩＤを持つメッセージを受信した際に、そのメッセージを不正メッセージとして遮断する方法を開示している。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Ｓｍａｒｔ  ＣＡＮ  ｃａｂｌｅ，  Ａｎｏｔｈｅｒ  ｐｒｏｐｏｓａｌ  ｏｆ  ｉｎｔｒｕｓｉｏｎ  ｐｒｅｖｅｎｔｉｏｎ  ｓｙｓｔｅｍ（ＩＰＳ）  ｆｏｒ  ｉｎ−ｖｅｈｉｃｌｅ  ｎｅｔｗｏｒｋｓ  −  ＬＡＣ  Ｃｏ．，Ｌｔｄ．，  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｒｙｐｔｏｇｒａｐｈｙ  ａｎｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｃｕｒｉｔｙ，  ２０１８．
【非特許文献２】Ａ  Ｍｅｔｈｏｄ  ｏｆ  Ｐｒｅｖｅｎｔｉｎｇ  Ｕｎａｕｔｈｏｒｉｚｅｄ  Ｄａｔａ  Ｔｒａｎｓｍｉｓｓｉｏｎ  ｉｎ  ｃｏｎｔｒｏｌｌｅｒ  ａｒｅａ  ｎｅｔｗｏｒｋ−Ｙｏｋｏｈａｍａ  Ｎａｔｉｏｎａｌ  Ｕｎｉｖｅｒｓｉｔｙ：  Ｖｅｈｉｃｕｌａｒ  Ｔｅｃｈｎｏｌｏｇｙ  Ｃｏｎｆｅｒｅｎｃｅ，２０１２
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、非特許文献１の方法では、車載ネットワーク内にＩＤＳＥＣＵを追加するコストおよび、不正なメッセージのハッシュ値をネットワークに送ることによる、ネットワークのトラフィック量の増大が発生する。【００１１】
また、非特許文献２の方法では、不正メッセージの遮断を行うためにＣＡＮコントローラーを改造する（例えば、各ＥＣＵが送信するメッセージのＩＤを予め記憶させておく）必要があり導入コストが大きい。【００１２】
そこで、本開示では上記課題を解決するために、車載ネットワークにおける異常を容易に検知できる異常検知装置等を提供する。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本開示の一態様に係る異常検知装置は、複数の電子制御ユニットと、ネットワークバスと、異常検知装置から構成される車載ネットワークに配置される異常検知装置であって、前記異常検知装置は、前記ネットワークバスと前記複数の電子制御ユニットのうちのいずれかの第１電子制御ユニットの間に配置され、前記第１電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークバスへ送信し、前記ネットワークバスからメッセージを受信して当該メッセージを前記第１電子制御ユニットへ送信する通信部と、前記通信部が前記ネットワークバスから受信し前記第１電子制御ユニットへ送信したメッセージのＩＤのリストである受信済みＩＤリストを保持する受信済みＩＤリスト保持部と、前記通信部および前記受信済みＩＤリスト保持部を制御する制御部と、を備え、前記制御部は、前記通信部が前記ネットワークバスから受信したメッセージのＩＤが前記受信済みＩＤリストに存在しない場合に、当該ＩＤを前記受信済みＩＤリストに追加し、前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、当該メッセージを前記ネットワークバスへ送信しないことを特徴とする。【００１４】
なお、上記の包括的または具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラムまたはコンピュータ読取可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性の記録媒体を含む。
【発明の効果】
【００１５】
本開示によれば、車載ネットワークにおける異常を容易に検知できる。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施の形態１における、車載ネットワークの全体構成図である。
【図２】図２は、実施の形態１における、車載ネットワークの全体構成の変形例１を示す図である。
【図３】図３は、実施の形態１における、車載ネットワークの全体構成の変形例２を示す図である。
【図４】図４は、実施の形態１における、ＣＡＮプロトコルのデータフレームフォーマットを示す図である。
【図５】図５は、実施の形態１における、車載ネットワークを構成するＥＣＵが送信するＩＤの仕様を示す図である。
【図６】図６は、実施の形態１における、ＩＤＳＥＣＵの構成図である。
【図７】図７は、実施の形態１における、異常検知装置の構成図である。
【図８】図８は、実施の形態１における、異常検知機能を有するＥＣＵの構成図である。
【図９】図９は、実施の形態１における、受信済みＩＤリストの一例を示す図である。
【図１０】図１０は、実施の形態１における、送信済みＩＤリストの一例を示す図である。
【図１１】図１１は、実施の形態１における、受信済みＩＤリストのアップデート処理のシーケンスを示す図である。
【図１２】図１２は、実施の形態１における、受信済みＩＤリストを用いた異常検知処理のシーケンスを示す図である。
【図１３】図１３は、実施の形態１における、送信済みＩＤリストのアップデート処理のシーケンスを示す図である。
【図１４】図１４は、実施の形態１における、送信済みＩＤリストを用いた異常検知処理のシーケンスを示す図である。
【図１５】図１５は、実施の形態１における、ＩＤＳＥＣＵが異常を検知した場合の処理シーケンスを示す図である。
【図１６】図１６は、実施の形態１における、異常検知装置の全体処理のフローチャートである。
【図１７】図１７は、実施の形態１における、受信済みＩＤリスト更新処理のフローチャートである。
【図１８】図１８は、実施の形態１における、送信済みＩＤリスト更新処理のフローチャートである。
【図１９】図１９は、実施の形態１における、受信済みＩＤリストによる異常検知処理のフローチャートである。
【図２０】図２０は、実施の形態１における、受信済みＩＤリストによる異常検知処理の変形例のフローチャートである。
【図２１】図２１は、実施の形態１における、送信済みＩＤリストによる異常検知処理のフローチャートである。
【図２２】図２２は、実施の形態１における、異常検知装置がＩＤＳＥＣＵから異常通知を受信した場合の処理のフローチャートである。
【図２３】図２３は、実施の形態１における、異常検知装置の全体処理の変形例のフローチャートである。
【図２４】図２４は、実施の形態１における、異常検知装置の車両シャットダウン時の処理のフローチャートである。
【図２５】図２５は、実施の形態１における、低頻度受信済みＩＤの退避の処理のフローチャートである。
【図２６】図２６は、実施の形態１における、低頻度送信済みＩＤの退避の処理のフローチャートである。
【図２７】図２７は、実施の形態１における、異常検知装置の車両起動時の処理のフローチャートである。
【発明を実施するための形態】
【００１７】
本開示の異常検知装置は、複数の電子制御ユニットと、ネットワークバスと、異常検知装置から構成される車載ネットワークに配置される異常検知装置であって、前記異常検知装置は、前記ネットワークバスと前記複数の電子制御ユニットのうちのいずれかの第１電子制御ユニットの間に配置され、前記第１電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークバスへ送信し、前記ネットワークバスからメッセージを受信して当該メッセージを前記第１電子制御ユニットへ送信する通信部と、前記通信部が前記ネットワークバスから受信し前記第１電子制御ユニットへ送信したメッセージのＩＤのリストである受信済みＩＤリストを保持する受信済みＩＤリスト保持部と、前記通信部および前記受信済みＩＤリスト保持部を制御する制御部と、を備え、前記制御部は、前記通信部が前記ネットワークバスから受信したメッセージのＩＤが前記受信済みＩＤリストに存在しない場合に、当該ＩＤを前記受信済みＩＤリストに追加し、前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、当該メッセージを前記ネットワークバスへ送信しないことを特徴とする。
【００１８】
異常検知装置は、ネットワークバスから受信したメッセージのＩＤを受信済みＩＤリストに追加していく。つまり、異常検知装置は、複数のＥＣＵのうち、自身を介してネットワークバスと接続された第１ＥＣＵ以外のＥＣＵがネットワークバスへ送信したメッセージのＩＤを受信済みＩＤリストに追加していく。一般的に、車載ネットワークにおける複数のＥＣＵのそれぞれは、同じＩＤを含むメッセージを送信しないという仕様になっていることが多い。この仕様のもとでは、受信済みＩＤリストは、第１ＥＣＵが送信しないメッセージのＩＤのリストとなる。これに対して、異常検知装置が第１ＥＣＵから受信したメッセージ（つまり、第１ＥＣＵが送信したメッセージ）のＩＤが受信済みＩＤリストに存在する場合、本来第１ＥＣＵが送信するはずのないメッセージを第１ＥＣＵが送信していることになる。つまり、第１ＥＣＵが異常なメッセージを送信していることがわかる。したがって、このような場合に、第１ＥＣＵからのメッセージをネットワークバスに送信しないようにすることで、異常なメッセージがネットワークバスに流れることを抑制できる。このように、車載ネットワーク内にＩＤＳＥＣＵを追加（つまり、ネットワークトラフィックおよびコストが増大）したり、各ＥＣＵが送信するメッセージのＩＤを予め記憶させておいたりすることなく、車載ネットワークにおける異常を容易に検知できる。また、正規メッセージがネットワークバスに流れる前に、攻撃者が不正メッセージをネットワークバスへ送信しない限り、誤検知をすることなく異常メッセージを遮断可能である。
【００１９】
また例えば、前記制御部は、前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、前記第１電子制御ユニットを前記ネットワークバスから隔離してもよい。
【００２０】
この場合、第１ＥＣＵが不正なＥＣＵであるため、不正なＥＣＵをネットワークバスから隔離する（例えば、第１ＥＣＵから送信される全てのメッセージを異常検知装置において遮断してネットワークバスへ送信しないようにする）ことが可能となり、異常メッセージのみを遮断する場合と比べて、車載ネットワークに不正なＥＣＵが与える影響をより軽減できる。
【００２１】
また例えば、前記制御部は、前記通信部が前記複数の電子制御ユニットのうちの前記第１電子制御ユニットとは異なる第２電子制御ユニットから送信された異常なＩＤを示す異常ＩＤ情報を前記ネットワークバスから受信した場合に、前記受信済みＩＤリストから前記異常ＩＤ情報が示すＩＤを消去してもよい。
【００２２】
正規メッセージがネットワークバスに流れる前に、攻撃者が不正メッセージをネットワークバスへ送信する場合が考えられる。この場合、受信済みＩＤリストに不正メッセージに含まれるＩＤが追加されることになる。例えば、正規な第１ＥＣＵが送信するメッセージに含まれるＩＤが不正メッセージに含まれる場合、正規な第１ＥＣＵから送信される正規メッセージが不正メッセージであると判定されてしまう。つまり、以降は、正規メッセージがネットワークバスへ送信されず、攻撃者が第１ＥＣＵになりすまして不正メッセージがネットワークバスへ送信されることになる。これに対して、第２ＥＣＵとして例えばＩＤＳＥＣＵ等が車載ネットワークに配置されることで、攻撃者が送信した不正メッセージを検知することが可能となる。したがって、正規メッセージがネットワークバスに流れる前に、攻撃者が不正メッセージをネットワークバスへ送信した場合（つまり、受信済みＩＤリストが汚染された場合）であっても、受信済みＩＤリストを修正して、受信済みＩＤリストに追加された不正メッセージに含まれるＩＤ（つまり第１ＥＣＵが送信するメッセージに含まれるＩＤ）を受信済みＩＤリストから消去することで、異常検知装置が正規メッセージを不正メッセージであると誤検知することを防止することが可能である。
【００２３】
また例えば、前記受信済みＩＤリスト保持部は、前記受信済みＩＤリストに含まれるＩＤ毎のメッセージ受信回数を記録する領域を持ち、前記制御部は、前記通信部が前記ネットワークバスからメッセージを受信したとき、当該メッセージのＩＤについて記録されるメッセージ受信回数を更新し、前記車載ネットワークを搭載した車両のシャットダウン時に、前記受信済みＩＤリストに含まれるＩＤのうち、前記受信済みＩＤリスト保持部に記録されたメッセージ受信回数、または、当該メッセージ受信回数に基づくメッセージ受信頻度が所定の値以下となっているＩＤを不揮発性メモリに退避させ、前記車両の起動時に、前記不揮発性メモリに退避させた前記ＩＤを前記受信済みＩＤリストに追加してもよい。
【００２４】
メッセージ受信回数またはメッセージ受信頻度が所定の値以下となっているＩＤ（低頻度で受信されるメッセージに含まれるＩＤ）は、車両が起動した後、当該ＩＤを含むメッセージがネットワークバスを流れるまでに時間を要する場合がある。つまり、当該ＩＤを含む正規メッセージがネットワークバスを流れるまでに、攻撃者が当該ＩＤを含む不正メッセージをネットワークバスへ送信して、受信済みＩＤリストに不正メッセージに含まれるＩＤが追加されてしまう（言い換えると、受信済みＩＤリストが不正なＩＤで汚染されてしまう）場合がある。これに対して、車両の起動時に、不揮発性メモリに退避させた低頻度で受信されるメッセージに含まれるＩＤを受信済みＩＤリストに追加することで、低頻度で受信されるメッセージが最初にネットワークバスに流れる前に攻撃者が不正メッセージを送信することによる受信済ＩＤリストの汚染を防ぐことが可能である。また、高頻度に受信されるメッセージの含まれるＩＤを不揮発性メモリに退避させないことで、その分メモリ容量を削減することが可能である。
【００２５】
また例えば、前記制御部は、前記車両の起動時に、前回の起動時から前記第１電子制御ユニットのファームウェア情報が変更されている場合に、前記不揮発性メモリに退避させた前記ＩＤを消去し、当該ＩＤを前記受信済みＩＤリストに追加しなくてもよい。
【００２６】
第１ＥＣＵのファームウェアアップデートに伴い第１ＥＣＵのファームウェア情報が変更された場合、第１ＥＣＵから送信されるメッセージに含まれるＩＤの仕様が変更されることがある。したがって、この場合に、不揮発性メモリに退避させたＩＤを消去し、当該ＩＤを受信済みＩＤリストに追加しないようにすることで、仕様が変更されたＩＤが原因で発生する正常メッセージの誤遮断を防止することが可能である。
【００２７】
また例えば、前記異常検知装置は、さらに、前記通信部が前記第１電子制御ユニットから受信し前記ネットワークバスへ送信したメッセージのＩＤのリストである送信済みＩＤリストを保持する送信済みＩＤリスト保持部を備え、前記制御部は、さらに、前記送信済みＩＤリスト保持部を制御し、前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記送信済みＩＤリストに存在しない場合に、当該ＩＤを前記送信済みＩＤリストに追加し、前記通信部が前記ネットワークバスから受信したメッセージのＩＤが前記送信済みＩＤリストに存在する場合、当該メッセージを前記第１電子制御ユニットへ送信しなくてもよい。
【００２８】
異常検知装置は、第１ＥＣＵから受信したメッセージのＩＤを送信済みＩＤリストに追加していく。車載ネットワークにおける複数のＥＣＵのそれぞれは、同じＩＤを含むメッセージを送信しないという仕様のもとでは、送信済みＩＤリストは、複数のＥＣＵのうちの第１ＥＣＵ以外のＥＣＵ等が送信しないメッセージのＩＤのリストとなる。これに対して、異常検知装置がネットワークバスから受信したメッセージ（つまり、第１ＥＣＵ以外のＥＣＵが送信したメッセージ）のＩＤが送信済みＩＤリストに存在する場合、本来第１ＥＣＵ以外のＥＣＵ等が送信するはずのないメッセージを第１ＥＣＵ以外のＥＣＵ等が送信していることになる。つまり、第１ＥＣＵ以外のＥＣＵ等が異常なメッセージを送信していることがわかる。したがって、このような場合に、第１ＥＣＵ以外のＥＣＵ等からのメッセージを第１ＥＣＵに送信しないようにすることで、異常なメッセージが第１ＥＣＵに送信されることを抑制できる。このように車載ネットワーク内にＩＤＳＥＣＵを追加（つまり、ネットワークトラフィックおよびコストが増大）したり、各ＥＣＵが送信するメッセージのＩＤを予め記憶させておいたりすることなく、車載ネットワークにおける異常を容易に検知できる。また、正規メッセージがネットワークバスに流れる前に、攻撃者が不正メッセージをネットワークバスへ送信しない限り、誤検知をすることなく異常メッセージを検知可能である。
【００２９】
また例えば、前記送信済みＩＤリスト保持部は、前記送信済みＩＤリストに含まれるＩＤ毎のメッセージ送信回数を記録する領域を持ち、前記制御部は、前記通信部が前記第１電子制御ユニットからメッセージを受信したときに、当該メッセージのＩＤについて記録されるメッセージ送信回数を更新し、前記車載ネットワークを搭載した車両のシャットダウン時に、前記送信済みＩＤリストに含まれるＩＤのうち、前記送信済みＩＤリスト保持部に記録されたメッセージ送信回数、または、当該メッセージ送信回数に基づくメッセージ送信頻度が所定の値以下となっているＩＤを不揮発性メモリに退避させ、前記車両の起動時に、前記不揮発性メモリに退避させた前記ＩＤを前記送信済みＩＤリストに追加してもよい。
【００３０】
メッセージ送信回数またはメッセージ送信頻度が所定の値以下となっているＩＤ（低頻度で第１ＥＣＵから送信されるメッセージに含まれるＩＤ）は、車両が起動した後、当該ＩＤを含むメッセージを異常検知装置が第１ＥＣＵから受信するまでに時間を要する場合がある。つまり、当該ＩＤを含む正規メッセージを異常検知装置が受信するまでに、攻撃者が第１ＥＣＵを攻撃して不正な第１ＥＣＵから不正メッセージを異常検知装置へ送信して、送信済みＩＤリストに不正メッセージに含まれるＩＤが追加されてしまう（言い換えると、送信済みＩＤリストが不正なＩＤで汚染されてしまう）場合がある。これに対して、車両の起動時に、不揮発性メモリに退避させた低頻度で送信されるメッセージに含まれるＩＤを送信済みＩＤリストに追加することで、低頻度で送信されるメッセージを異常検知装置が受信する前に攻撃者が不正メッセージを送信することによる送信済ＩＤリストの汚染を防ぐことが可能である。また、高頻度に送信されるメッセージに含まれるＩＤを不揮発性メモリに退避させないことで、その分メモリ容量を削減することが可能である。
【００３１】
また例えば、前記制御部は、前記車両の起動時に、前回の起動時から前記第１電子制御ユニットのファームウェア情報が変更されている場合に、前記不揮発性メモリに退避させた前記ＩＤを消去し、当該ＩＤを前記送信済みＩＤリストに追加しなくてもよい。
【００３２】
第１ＥＣＵのファームウェアアップデートに伴い第１ＥＣＵのファームウェア情報が変更された場合、第１ＥＣＵから送信されるメッセージに含まれるＩＤの仕様が変更されることがある。したがって、この場合に、不揮発性メモリに退避させたＩＤを消去し、当該ＩＤを送信済みＩＤリストに追加しないようにすることで、仕様が変更されたＩＤによる正常メッセージの誤遮断の防止が可能である。
【００３３】
本開示の異常検知方法は、複数の電子制御ユニットと、ネットワークバスと、異常検知装置から構成される車載ネットワークに配置される異常検知装置により実行される異常検知方法であって、前記異常検知装置は、前記ネットワークバスと前記複数の電子制御ユニットのうちのいずれかの第１電子制御ユニットの間に配置され、前記第１電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークバスへ送信し、前記ネットワークバスからメッセージを受信して当該メッセージを前記第１電子制御ユニットへ送信する通信部と、前記通信部が前記ネットワークバスから受信し前記第１電子制御ユニットへ送信したメッセージのＩＤのリストである受信済みＩＤリストを保持する受信済みＩＤリスト保持部と、を備え、前記異常検知方法では、前記通信部が前記ネットワークバスから受信したメッセージのＩＤが前記受信済みＩＤリストに存在しない場合に、当該ＩＤを前記受信済みＩＤリストに追加し、前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、当該メッセージを前記ネットワークバスへ送信しないことを特徴とする。
【００３４】
これにより、車載ネットワークにおける異常を容易に検知できる異常検知方法を提供できる。
【００３５】
本開示のプログラムは、上記の異常検知方法をコンピュータに実行させるプログラムである。
【００３６】
これにより、車載ネットワークにおける異常を容易に検知できるプログラムを提供できる。
【００３７】
以下、実施の形態に係る異常検知装置について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。したがって、以下の実施の形態で示される数値、構成要素、構成要素の配置および接続形態、並びに、ステップ（工程）およびステップの順序等は、一例であって本開示を限定するものではない。
【００３８】
また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。各図は模式図であり、必ずしも厳密に図示されたものではない。
【００３９】
また、以下に含まれるＣＡＮおよび異常検知装置に関する説明は、本開示の理解の一助を主な趣旨とするものであり、この説明のうち請求項に含まれない事項については、本開示を限定する趣旨で記載されるものではない。
【００４０】
（実施の形態１）
［１−１．車載ネットワーク構成］
図１は、車載ネットワーク１００の全体構成図である。なお、図１には、車載ネットワーク１００を搭載し車両１０を示している。車両１０は、その内部に車載ネットワーク１００を持つ。車両１０は、例えば自動車である。
【００４１】
車載ネットワーク１００は、複数のＥＣＵと、ネットワークバスと、異常検知装置から構成される。例えば、図１に示す例では、車載ネットワーク１００は、複数のＥＣＵのそれぞれに対応するように設けられた複数の異常検知装置を備える。例えば、車載ネットワーク１００は、複数のＥＣＵとして、ＥＣＵ１０１ａ、１０１ｂ、１０１ｃ、１０１ｄ、１０１ｅおよび１０１ｆとバス１３０（ネットワークバス）と異常検知装置１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅおよび１１０ｆとから構成される。ＥＣＵ１０１ａとバス１３０は、異常検知装置１１０ａを間に介して接続され、通信を行う。ＥＣＵ１０１ｂとバス１３０は、異常検知装置１１０ｂを間に介して接続され、通信を行う。ＥＣＵ１０１ｃとバス１３０は、異常検知装置１１０ｃを間に介して接続され、通信を行う。ＥＣＵ１０１ｄとバス１３０は、異常検知装置１１０ｄを間に介して接続され、通信を行う。ＥＣＵ１０１ｅとバス１３０は、異常検知装置１１０ｅを間に介して接続され、通信を行う。ＥＣＵ１０１ｆとバス１３０は、異常検知装置１１０ｆを間に介して接続され、通信を行う。例えば、異常検知装置１１０ａに着目すると、異常検知装置１１０ａは、バス１３０と複数のＥＣＵのうちのいずれかの第１ＥＣＵ（ここではＥＣＵ１０１ａ）の間に配置される。ＥＣＵ１０１ａがバス１３０へ向けてメッセージを送信する際、および、ＥＣＵ１０１ａがバス１３０からメッセージが受信する際に、異常検知装置１１０ａを介してメッセージの送受信が行われる。
【００４２】
車載ネットワーク１００では、例えばＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）プロトコルに従って通信が行われる。
【００４３】
車載ネットワーク１００を構成するＥＣＵ１０１ａ、１０１ｂ、１０１ｃ、１０１ｄ、１０１ｅおよび１０１ｆとしては、例えば、ステアリング、ブレーキ、エンジン、ドアまたはウィンドウ等に関連したＥＣＵがあり、これらのＥＣＵは、走行制御やインストルメントパネルの制御等の車両１０の各種制御を行う。
【００４４】
ＥＣＵは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等であり、プロセッサにより実行されるプログラムを記憶することができる。例えばプロセッサが、プログラムに従って動作することにより、ＥＣＵは各種機能を実現することになる。ＥＣＵは、例えば、ＣＡＮプロトコルに従って車載ネットワークにおけるネットワークバスを介してメッセージの送受信を行う。
【００４５】
各ＥＣＵは、ネットワークバスに対して、ＣＡＮのプロトコルに従ったメッセージを送受信する。例えば、ネットワークバスから他のＥＣＵが送信したメッセージを受信し、また、他のＥＣＵに送信したい内容を含むメッセージを生成してバスに送信する。具体的には、各ＥＣＵは、受信したメッセージの内容に応じた処理を行い、また、ＥＣＵに接続されている機器、センサ等の状態を示すメッセージもしくは他のＥＣＵへの指示値（制御値）等のメッセージを生成して送信する。
【００４６】
異常検知装置の詳細については後述する。
【００４７】
［１−２．車載ネットワーク構成（変形例１）］
図２は、車載ネットワーク１００の全体構成の変形例１を示す図である。図１の車載ネットワーク１００では、全てのＥＣＵに異常検知装置が接続されていたが、図２の車載ネットワーク１００は、一部のＥＣＵには異常検知装置が接続されていない場合の一例である。つまり、車載ネットワーク１００における複数のＥＣＵには、異常検知装置を介さずにバス１３０に接続されるＥＣＵが含まれていてもよい。
【００４８】
図２において、具体的にはＥＣＵ１０１ｃおよび１０１ｅには異常検知装置が接続されずに直接バス１３０に接続されている。図２に示すように、異常検知装置は必ずしも全てのＥＣＵに接続する必要はない。例えば、車両の安全性に大きな影響を及ぼす可能性の高い走行制御に関わるＥＣＵとバス１３０との間のみに異常検知装置を接続することでコストダウンを図ってもよい。
【００４９】
［１−３．車載ネットワーク構成（変形例２）］
図３は、車載ネットワーク１００の全体構成の変形例２を示す図であり、図１および図２の車載ネットワーク１００に対して、異常検知機能を持ったノードが存在する。以後、異常検知機能を持ったノードをＩＤＳＥＣＵとも表記する。図３において、ＩＤＳＥＣＵ１２０は、バス１３０を流れるメッセージの異常検知を行い、異常を検知した際はその情報を車載ネットワーク内の異常検知装置１１０ａ、１１０ｂ、１１０ｄ、１１０ｆに通知する。ＩＤＳＥＣＵ１２０を、異常検知装置を介してバス１３０に接続されたＥＣＵ（第１ＥＣＵ）と区別するために、第２ＥＣＵとも呼ぶ。
【００５０】
［１−４．ＣＡＮメッセージのフォーマット］
図４は、ＣＡＮプロトコルのデータフレームのフォーマットを示す図である。ここではＣＡＮプロトコルにおける標準ＩＤフォーマットにおけるデータフレームを示している。データフレームは、Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ（ＳＯＦ）、ＩＤフィールド、Ｒｅｍｏｔｅ  Ｔｒａｎｓｉｍｉｓｓｉｏｎ  Ｒｅｑｕｅｓｔ（ＲＴＲ）、ＩＤｅｎｔｉｆｉｅｒ  Ｅｘｔｅｎｓｉｏｎ（ＩＤＥ）、予約ｂｉｔ（ｒ）、データレングスコード（ＤＬＣ）、データフィールド、ＣＲＣシーケンス、ＣＲＣデリミタ（ＤＥＬ）、Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔスロット（ＡＣＫ）、ＡＣＫデリミタ（ＤＥＬ）、および、エンドオブフレーム（ＥＯＦ）から構成される。ＩＤフィールドには、各ＥＣＵが送信するメッセージに固有のＩＤが格納される。
【００５１】
［１−５．ＥＣＵの送信ＩＤの仕様］
図５は、車載ネットワーク１００を構成するＥＣＵが送信するＩＤの仕様を示す図である。
【００５２】
本実施の形態の車載ネットワーク１００では、図５に示すように、同じＩＤのメッセージを複数のＥＣＵが送信しないものとする。例えば、エンジンＥＣＵが送信する「０ｘ１３」というＩＤを含むメッセージを、ブレーキＥＣＵまたはドア制御ＥＣＵは送信しない。同じＩＤのメッセージを複数のＥＣＵが送信しない、という仕様はＣＡＮを用いた通信において一般的である。異常検知装置は、この仕様を利用することで、車載ネットワーク１００における異常を容易に検知することを可能としている。
【００５３】
［１−６．ＩＤＳＥＣＵの構成］
図６は、ＩＤＳＥＣＵ１２０の構成図である。ＩＤＳＥＣＵ１２０は、ＣＡＮメッセージの送受信を行う通信部１２１と、受信したメッセージの異常検知を行う異常検知部１２２を持つＥＣＵであって、複数のＥＣＵのうちの第１ＥＣＵ（例えば、ＥＣＵ１０１ａ、ＥＣＵ１０１ｂ、ＥＣＵ１０１ｄおよびＥＣＵ１０１ｆ）とは異なる第２ＥＣＵである。
【００５４】
通信部１２１は、バス１３０に流れるメッセージを受信し、また、バス１３０に流れるメッセージに含まれる異常なＩＤを示す異常ＩＤ情報をバス１３０へ送信する。
【００５５】
異常検知部１２２は、通信部１２１が受信したバス１３０に流れるメッセージの異常検知を行う。例えば、ＩＤＳＥＣＵ１２０は、異常を判定するための判定ルールを保持しており、異常検知部１２２は、バス１３０から受信するメッセージを判定ルールに照らし合わせることで、メッセージの異常検知を行う。具体的には、異常検知部１２２は、判定ルールに基づいて、バス１３０を流れるメッセージの送信周期に異常があったり、バス１３０を流れるメッセージに含まれる指示値に異常があったりした場合に、当該メッセージを異常と検知する。
【００５６】
ＩＤＳＥＣＵ１２０は、通信部１２１で受信したメッセージを、異常検知部１２２で異常と検知した場合、そのメッセージに含まれる異常なＩＤを示す異常ＩＤ情報を通信部１２１からバス１３０を介して車載ネットワーク１００内の異常検知装置（図３に示す例では、異常検知装置１１０ａ、１１０ｂ、１１０ｄおよび１１０ｆ）に送信する。これにより、各異常検知装置は、異常なＩＤを認識することができる。
【００５７】
［１−７．異常検知装置の構成］
図７は、異常検知装置１１０ａの構成図である。図７には、異常検知装置１１０ａの他に、異常検知装置１１０ａに直接接続されたＥＣＵ１０１ａおよびバス１３０も示されている。本実施の形態では、複数の異常検知装置のうち異常検知装置１１０ａに着目して説明する。
【００５８】
異常検知装置１１０ａは、バス１３０とＥＣＵ１０１ａの間に配置される。
【００５９】
異常検知装置１１０ａは、通信部１１１、制御部１１２、送信済みＩＤリスト保持部１１３および受信済みＩＤリスト保持部１１４を備える。異常検知装置１１０ａは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ＲＯＭ、ＲＡＭ等であり、プロセッサにより実行されるプログラムを記憶することができる。例えば、プロセッサが、プログラムに従って動作することにより、異常検知装置１１０ａは制御部１１２を実現することになる。通信部１１１は、例えば通信回路により実現される。送信済みＩＤリスト保持部１１３および受信済みＩＤリスト保持部１１４は、例えばメモリにより実現される。
【００６０】
通信部１１１は、ＥＣＵ１０１ａからメッセージを受信して当該メッセージをバス１３０へ送信し、バス１３０からメッセージを受信して当該メッセージをＥＣＵ１０１ａへ送信する通信回路である。通信部１１１は、バス１３０からＥＣＵ１０１ａへ送信されるメッセージおよび、ＥＣＵ１０１ａからバス１３０へ送信されるメッセージを中継する機能を持つ。
【００６１】
送信済みＩＤリスト保持部１１３は、通信部１１１がＥＣＵ１０１ａから受信しバス１３０へ送信したメッセージのＩＤのリストである送信済みＩＤリストを保持する。送信済みＩＤリストについては後述する。
【００６２】
受信済みＩＤリスト保持部１１４は、通信部１１１がバス１３０から受信しＥＣＵ１０１ａへ送信したメッセージのＩＤのリストである受信済みＩＤリストを保持する。受信済みＩＤリストについては後述する。
【００６３】
制御部１１２は、通信部１１１、送信済みＩＤリスト保持部１１３および受信済みＩＤリスト保持部１１４を制御する。制御部１１２は、以下の処理を行う（それぞれ詳細は後述する）。
【００６４】
制御部１１２は、通信部１１１がバス１３０から受信したメッセージのＩＤが受信済みＩＤリストに存在しない場合に、当該ＩＤを受信済みＩＤリストに追加する。また、制御部１１２は、通信部１１１がＥＣＵ１０１ａから受信したメッセージのＩＤが受信済みＩＤリストに存在する場合に、当該メッセージをバス１３０へ送信しない。例えば、制御部１１２は、通信部１１１がＥＣＵ１０１ａから受信したメッセージのＩＤが受信済みＩＤリストに存在する場合に、ＥＣＵ１０１ａをバス１３０から隔離する。
【００６５】
また、制御部１１２は、通信部１１１が複数のＥＣＵのうちの他のＥＣＵ（具体的にはＩＤＳＥＣＵ１２０）から送信された異常なＩＤを示す異常ＩＤ情報をバス１３０から受信した場合に、受信済みＩＤリストから異常ＩＤ情報が示すＩＤを消去する。
【００６６】
また、制御部１１２は、通信部１１１がバス１３０からメッセージを受信したとき、当該メッセージのＩＤについて記録されるメッセージ受信回数を更新する。また、制御部１１２は、車載ネットワーク１００を搭載した車両１０のシャットダウン時に、受信済みＩＤリストに含まれるＩＤのうち、受信済みＩＤリスト保持部１１４に記録されたメッセージ受信回数、または、当該メッセージ受信回数に基づくメッセージ受信頻度が所定の値以下となっているＩＤを不揮発性メモリに退避させ、車両１０の起動時に、不揮発性メモリに退避させたＩＤを受信済みＩＤリストに追加する。また、制御部１１２は、車両１０の起動時に、前回の起動時からＥＣＵ１０１ａのファームウェア情報が変更されている場合に、不揮発性メモリに退避させたＩＤを消去し、当該ＩＤを受信済みＩＤリストに追加しない。
【００６７】
また、制御部１１２は、ＥＣＵ１０１ａから受信したメッセージのＩＤが送信済みＩＤリストに存在しない場合に、当該ＩＤを送信済みＩＤリストに追加する。また、制御部１１２は、通信部１１１がバス１３０から受信したメッセージのＩＤが送信済みＩＤリストに存在する場合、当該メッセージをＥＣＵ１０１ａへ送信しない。
【００６８】
また、制御部１１２は、通信部１１１がＥＣＵ１０１ａからメッセージを受信したときに、当該メッセージのＩＤについて記録されるメッセージ送信回数を更新する。また、制御部１１２は、車載ネットワーク１００を搭載した車両１０のシャットダウン時に、送信済みＩＤリストに含まれるＩＤのうち、送信済みＩＤリスト保持部１１３に記録されたメッセージ送信回数、または、当該メッセージ送信回数に基づくメッセージ送信頻度が所定の値以下となっているＩＤを不揮発性メモリに退避させ、車両１０の起動時に、不揮発性メモリに退避させたＩＤを送信済みＩＤリストに追加する。制御部１１２は、車両１０の起動時に、前回の起動時からＥＣＵ１０１ａのファームウェア情報が変更されている場合に、不揮発性メモリに退避させたＩＤを消去し、当該ＩＤを送信済みＩＤリストに追加しない。
【００６９】
なお、異常検知装置１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅおよび１１０ｆは、異常検知装置１１０ａと同様の構成であり、異常検知装置１１０ａと同様のことが言えるため説明は省略する。ただし、異常検知装置１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅおよび１１０ｆに接続されるＥＣＵはそれぞれＥＣＵ１０１ｂ、１０１ｃ、１０１ｄ、１０１ｅおよび１０１ｆである点が異なる。
【００７０】
［１−８．異常検知機能を有するＥＣＵの構成］
図８は、異常検知機能を有するＥＣＵ１０１ｇの構成図である。図８において、ＥＣＵ１０１ｇは、図７に示した異常検知装置１１０ａをＥＣＵに実装した場合の構成を示している。具体的には、異常検知装置１１０ａが有する機能を異常検知部１１０ｇとして示し、ＥＣＵ１０１ａが有する車両制御等に関する処理を行う機能をＥＣＵ処理部１１５として示している。この場合、異常検知部１１０ｇ（異常検知装置１１０ａに対応）は、バス１３０とＥＣＵ処理部１１５（ＥＣＵ１０１ａに対応）の間に配置されることになる。図８に示すように、異常検知機能はＥＣＵに直接実装されてもよい。
【００７１】
［１−９．受信済みＩＤリスト例］
図９は、受信済みＩＤリストの一例を示す図である。受信済みＩＤリストは、受信済みＩＤリスト保持部１１４に保持される。受信済みＩＤリスト保持部１１４は、異常検知装置１１０ａに接続されたＥＣＵ１０１ａが受信したメッセージのＩＤ、受信済みＩＤリストに含まれるＩＤ毎のメッセージ受信回数を記録する領域を持つ。言い換えると、受信済みＩＤリストには、例えば、異常検知装置１１０ａに接続されたＥＣＵ１０１ａが受信したメッセージのＩＤ、そのＩＤを持つメッセージの車両１０の起動時からのメッセージ受信回数、および、メッセージ受信回数に基づくメッセージ受信頻度（例えば最近１分間の受信回数）が含まれる。なお、ＥＣＵ１０１ａが受信したメッセージとは、異常検知装置１１０ａがバス１３０から受信して、異常検知装置１１０ａがＥＣＵ１０１ａへ送信したメッセージのことである。制御部１１２は、受信済みＩＤリスト保持部１１４を制御することで、受信済みＩＤリストに含まれるこれらの情報を更新する。具体的には、制御部１１２は、通信部１１１がバス１３０からメッセージを受信して当該メッセージをＥＣＵ１０１ａへ送信したときに当該メッセージに含まれるＩＤを受信済みＩＤリストに追加する。また、制御部１１２は、メッセージに含まれるＩＤごとにメッセージをＥＣＵ１０１ａへ送信した回数を車両１０の起動時からカウントすることで、ＩＤごとにＥＣＵ１０１ａがメッセージを受信した受信回数を更新する。また、制御部１１２は、例えば、１分ごとに最近１分間の受信回数を更新する。
【００７２】
図９では、ＩＤとして０ｘ２５、０ｘ２７、０ｘ８９のメッセージのそれぞれについて、受信回数および最近１分間の受信回数が受信済みＩＤリスト保持部１１４に保持されていることを示している。
【００７３】
なお、図９では最近１分間の受信回数が示されているが、最近３０分間もしくは最近１時間等の受信回数、または、車両起動時からの受信回数を車両起動時間で割った回数等が保持されるように受信済みＩＤリスト保持部１１４を構成してもよい。
【００７４】
［１−１０．送信済みＩＤリスト例］
図１０は、送信済みＩＤリストの一例を示す図である。送信済みＩＤリストは、送信済みＩＤリスト保持部１１３に保持される。送信済みＩＤリスト保持部１１３は、異常検知装置１１０ａに接続されたＥＣＵ１０１ａが送信したメッセージのＩＤ、送信済みＩＤリストに含まれるＩＤ毎のメッセージ送信回数を記録する領域を持つ。言い換えると、送信済みＩＤリストは、異常検知装置１１０ａに接続されたＥＣＵ１０１ａが送信したメッセージのＩＤ、そのＩＤを持つメッセージの車両１０の起動時からのメッセージ送信回数、および、メッセージ送信回数に基づくメッセージ送信頻度（例えば最近１分間の送信回数）が含まれる。なお、ＥＣＵ１０１ａが送信したメッセージとは、異常検知装置１１０ａがＥＣＵ１０１ａから受信して、異常検知装置１１０ａがバス１３０へ送信したメッセージのことである。制御部１１２は、送信済みＩＤリスト保持部１１３を制御することで、送信済みＩＤリストに含まれるこれらの情報を更新する。具体的には、制御部１１２は、通信部１１１がＥＣＵ１０１ａからメッセージを受信して当該メッセージをバス１３０へ送信したときに当該メッセージに含まれるＩＤを送信済みＩＤリストに追加する。また、制御部１１２は、メッセージに含まれるＩＤごとにメッセージをバス１３０へ送信した回数を車両１０の起動時からカウントすることで、ＩＤごとにＥＣＵ１０１ａがメッセージを送信した送信回数を更新する。また、制御部１１２は、例えば、１分ごとに最近１分間の送信回数を更新する。
【００７５】
図１０では、ＩＤとして０ｘ２５３、０ｘ２７２、０ｘ３４９のメッセージのそれぞれについて、送信回数および最近１分間の送信回数が送信済みＩＤリスト保持部１１３に保持されていることを示している。
【００７６】
なお、図１０では最近１分間の送信回数が示されているが、最近３０分間または最近１時間等の送信回数等が保持されるように送信済みＩＤリスト保持部１１３を構成してもよい。
【００７７】
［１−１１．受信済みＩＤリストのアップデート処理シーケンス］
図１１は、受信済みＩＤリストのアップデート処理のシーケンスを示す図である。図１１では異常検知装置１１０ａが、受信済みＩＤリストに存在しないＩＤのメッセージをバス１３０から受信した場合の受信済みＩＤリストのアップデート処理のシーケンスの一例である。
【００７８】
ステップＳ１１１では、バス１３０から異常検知装置１１０ａにメッセージが送信される。
【００７９】
ステップＳ１１２では、異常検知装置１１０ａがバス１３０から受信したメッセージのＩＤを読み出す。
【００８０】
ステップＳ１１３では、異常検知装置１１０ａは、ステップＳ１１２で読み出したＩＤが受信済みＩＤリストに存在するか否かを確認し、読み出したＩＤが受信済みＩＤリストに存在していないと判断する場合、受信済みＩＤリストに、読み出したＩＤを追加する。
【００８１】
ステップＳ１１４では、異常検知装置１１０ａがバス１３０から受信したメッセージをＥＣＵ１０１ａに転送する。
【００８２】
このようにして、異常検知装置１１０ａは、バス１３０から受信したメッセージのＩＤを受信済みＩＤリストに追加していく。つまり、異常検知装置１１０ａは、複数のＥＣＵのうち、自身を介してバス１３０と接続されたＥＣＵ１０１ａ以外のＥＣＵがバス１３０へ送信したメッセージのＩＤを受信済みＩＤリストに追加していく。車載ネットワーク１００における複数のＥＣＵのそれぞれは、同じＩＤを含むメッセージを送信しないという仕様のもとでは、受信済みＩＤリストは、ＥＣＵ１０１ａが送信しないメッセージのＩＤのリストとなる。
【００８３】
［１−１２．受信済みＩＤリストによる異常検知処理シーケンス］
図１２は、受信済みＩＤリストを用いた異常検知処理のシーケンスを示す図である。図１２では、受信済みＩＤリストにあるＩＤのメッセージ（つまり、ＥＣＵ１０１ａが送信しないメッセージ）をＥＣＵ１０１ａが送信した場合のシーケンスの一例である。
【００８４】
ステップＳ１２１では、ＥＣＵ１０１ａから異常検知装置１１０ａにメッセージが送信される。これにより、異常検知装置１１０ａは、ＥＣＵ１０１ａから送信されたメッセージを受信する。
【００８５】
ステップＳ１２２では、異常検知装置１１０ａが受信したメッセージのＩＤを読み出す。
【００８６】
ステップＳ１２３では、異常検知装置１１０ａは、ステップＳ１２２で読み出したＩＤが受信済みＩＤリストに存在するか否かを確認し、読み出したＩＤが受信済みＩＤリストに存在していると判断する。この場合、本来ＥＣＵ１０１ａが送信するはずのないメッセージをＥＣＵ１０１ａが送信していることになる。つまり、ＥＣＵ１０１ａが異常なメッセージを送信していることがわかる。
【００８７】
ステップＳ１２４では、異常検知装置１１０ａは、ＥＣＵ１０１ａが送信したメッセージをバス１３０へ送信することを中止する。このような場合に、ＥＣＵ１０１ａからのメッセージをバス１３０に送信しないようにすることで、異常なメッセージがバス１３０に流れることを抑制できる。
【００８８】
ステップＳ１２５では、異常検知装置１１０ａは、ＥＣＵ１０１ａが異常であることをバス１３０に送信し、バス１３０に接続されたＥＣＵ１０１ａ以外の各ノードにＥＣＵ１０１ａが異常であることを通知する。例えば、ＥＣＵ１０１ａに異常があることをＥＣＵ１０１ａ以外の各ノードが認識することで、各ノードは、ＥＣＵ１０１ａの機能に応じて適切な処理ができる。例えば、ＥＣＵ１０１ａが車両１０の走行に関するＥＣＵである場合、各ノードは、車両１０を停止させるような処理をすることができる。
【００８９】
ステップＳ１２６では、異常検知装置１１０ａは、ＥＣＵ１０１ａが異常であるという通知をＥＣＵ１０１ａ自身に送信する。ＥＣＵ１０１ａが自身に異常があることを認識することで、ＥＣＵ１０１ａは、ＥＣＵ１０１ａの異常の程度にもよるが、例えばフェイルセーフ機能を起動させることができる。
【００９０】
［１−１３．送信済みＩＤリストのアップデート処理シーケンス］
図１３は、送信済みＩＤリストのアップデート処理のシーケンスを示す図である。図１３では、送信済みＩＤリストに存在しないＩＤを異常検知装置１１０ａが自身に接続されたＥＣＵ１０１ａから受信した場合の送信済みＩＤリストのアップデート処理のシーケンスの一例である。
【００９１】
ステップＳ１３１では、ＥＣＵ１０１ａから異常検知装置１１０ａへメッセージが送信される。
【００９２】
ステップＳ１３２では、ＥＣＵ１０１ａが送信したメッセージを異常検知装置１１０ａが受信し、ＩＤを読み出す。
【００９３】
ステップＳ１３３では、異常検知装置１１０ａは、ステップＳ１３２で読み出したＩＤが送信済みＩＤリストに存在するか否かを確認し、読み出したＩＤが送信済みＩＤリストに存在していないと判断する場合、送信済みＩＤリストに、読み出したＩＤを追加する。
【００９４】
ステップＳ１３４では、異常検知装置１１０ａがＥＣＵ１０１ａから受信したメッセージをバス１３０に転送する。
【００９５】
このようにして、異常検知装置１１０ａは、ＥＣＵ１０１ａから受信したメッセージのＩＤを送信済みＩＤリストに追加していく。つまり、異常検知装置１１０ａは、複数のＥＣＵのうち、自身を介してバス１３０と接続されたＥＣＵ１０１ａがバス１３０へ送信したメッセージのＩＤを送信済みＩＤリストに追加していく。車載ネットワーク１００における複数のＥＣＵのそれぞれは、同じＩＤを含むメッセージを送信しないという仕様のもとでは、送信済みＩＤリストは、ＥＣＵ１０１ａ以外のＥＣＵ等が送信しないメッセージのＩＤのリストとなる。
【００９６】
［１−１４．送信済みＩＤリストによる異常検知処理シーケンス］
図１４は、送信済みＩＤリストを用いた異常検知処理のシーケンスを示す図である。図１４では、送信済みＩＤリストに存在するＩＤのメッセージ（つまり、ＥＣＵ１０１ａ以外のＥＣＵ等が送信しないメッセージ）がバス１３０に送信された場合のシーケンスである。
【００９７】
ステップＳ１４１では、バス１３０から異常検知装置１１０ａにメッセージが送信される。これにより、異常検知装置１１０ａは、バス１３０からのメッセージを受信する。
【００９８】
ステップＳ１４２では、異常検知装置１１０ａが受信したメッセージのＩＤを読み出す。
【００９９】
ステップＳ１４３では、異常検知装置１１０ａは、ステップＳ１４２で読み出したＩＤが送信済みＩＤリストに存在するか否かを確認し、読み出したＩＤが送信済みＩＤリストに存在していると判断する。この場合、本来ＥＣＵ１０１ａ以外のＥＣＵ等が送信するはずのないメッセージをＥＣＵ１０１ａ以外のＥＣＵ等が送信していることになる。つまり、ＥＣＵ１０１ａ以外のＥＣＵ等が異常なメッセージを送信していることがわかる。
【０１００】
ステップＳ１４４では、異常検知装置１１０ａは、バス１３０が送信したメッセージをＥＣＵ１０１ａへ送信することを中止している。このような場合に、ＥＣＵ１０１ａ以外のＥＣＵ等からのメッセージをＥＣＵ１０１ａに送信しないようにすることで、異常なメッセージがＥＣＵ１０１ａに送信されることを抑制できる。
【０１０１】
ステップＳ１４５では、異常検知装置１１０ａは、車載ネットワーク１００に異常なＥＣＵ等が存在することをＥＣＵ１０１ａに通知している。例えば、異常なＥＣＵ等は、ＥＣＵ１０１ａが送信するメッセージに含まれるＩＤを使って不正メッセージを送信しているため、ＥＣＵ１０１ａになりすまそうとしている可能性がある。このため、ＥＣＵ１０１ａは、自身が有する機能に応じて適切な処理ができる。例えば、ＥＣＵ１０１ａが車両１０の走行に関するＥＣＵである場合、ＥＣＵ１０１ａは、車両１０を停止させるような処理をすることができる。
【０１０２】
ステップＳ１４６では、異常検知装置１１０ａは、車載ネットワーク１００に異常なＥＣＵ等が存在することをバス１３０に通知する。つまり、異常検知装置１１０ａは、バス１３０に接続されたＥＣＵ１０１ａ以外のＥＣＵ１０１ｂ、１０１ｃ、１０１ｄ、１０１ｅ、１０１ｆにその旨を通知する。これにより、各ＥＣＵは、ＥＣＵ１０１ａが有する機能に応じて適切な処理ができる。
【０１０３】
［１−１５．ＩＤＳＥＣＵが異常を検知した場合のシーケンス］
図１１から図１４では、送信済みＩＤリストに含まれるＩＤおよび受信済みＩＤリストに含まれるＩＤが正規なＩＤであるとして説明した。基本的には、車両１０が起動してすぐに各ＥＣＵからのメッセージの送信が開始され、送信済みＩＤリストおよび受信済みＩＤリストには、すぐに正規のＩＤが追加されることになるためである。
【０１０４】
しかし、車両１０が起動した後、送信済みＩＤリストおよび受信済みＩＤリストに正規のＩＤが追加される前に、攻撃者によって攻撃を受けて異常なＩＤが送信済みＩＤリストまたは受信済みＩＤリストに追加される場合も考えられる。
【０１０５】
以下では、正規のＩＤが追加される前に、異常なＩＤ（例えばＥＣＵ１０１ａが送信する正規のメッセージに含まれるＩＤ）が異常検知装置１１０ａの受信済みＩＤリストに追加された場合の処理について説明する。
【０１０６】
図１５は、ＩＤＳＥＣＵ１２０が異常を検知した場合の処理のシーケンスを示す図である。図１５では、図３に示すように、車載ネットワーク１００にＩＤＳＥＣＵ１２０が存在する場合に、ＩＤＳＥＣＵ１２０が異常を検知した場合の処理のシーケンスの一例である。ＩＤＳＥＣＵ１２０が異常を検知した場合は、検知した異常なメッセージに含まれる異常なＩＤを異常検知装置１１０ａが保持する受信済みＩＤリストから消去する。
【０１０７】
ステップＳ１５１では、バス１３０からＩＤＳＥＣＵ１２０へメッセージが送信される。
【０１０８】
ステップＳ１５２では、ＩＤＳＥＣＵ１２０が受信したメッセージの異常判定を行い、受信したメッセージは異常と判定する。
【０１０９】
ステップＳ１５３では、ＩＤＳＥＣＵ１２０は、異常と判定したメッセージの異常なＩＤを示す異常ＩＤ情報をバス１３０へ送信する。
【０１１０】
ステップＳ１５４では、バス１３０に送信された、ＩＤＳＥＣＵ１２０で異常と判定されたメッセージについての異常ＩＤ情報を、バス１３０に接続された異常検知装置１１０ａは受信する。なお、ＩＤＳＥＣＵ１２０で異常と判定されたメッセージについての異常ＩＤ情報は、バス１３０に接続された全ての異常検知装置、すなわち、異常検知装置１１０ａ、１１０ｂ、１１０ｄ、１１０ｆに通知される。
【０１１１】
ステップＳ１５５では、異常検知装置１１０ａが受信済みＩＤリストから、ＩＤＳＥＣＵ１２０で異常と判定されたメッセージのＩＤ（つまり、異常ＩＤ情報が示すＩＤ）を消去する。
【０１１２】
このように、正規メッセージがバス１３０に流れる前に、攻撃者が不正メッセージをバス１３０へ送信した場合であっても、受信済みＩＤリストを修正して、受信済みＩＤリストに追加された不正メッセージに含まれるＩＤ（例えばＥＣＵ１０１ａが送信するメッセージに含まれるＩＤ）を受信済みＩＤリストから消去することで正規メッセージ（例えば正規なＥＣＵ１０１ａが送信するメッセージ）を不正メッセージであると異常検知装置１１０ａが誤検知することを防止することが可能である。すなわち、正規なＥＣＵ１０１ａが送信するメッセージに含まれるＩＤが受信済みＩＤリストに存在しなくなるため、正規なＥＣＵ１０１ａからバス１３０へのメッセージの送信が可能となる。
【０１１３】
［１−１６．異常検知装置の全体処理フロー］
図１６は、実施の形態１における異常検知装置１１０ａの全体処理のフローチャートである。異常検知装置１１０ａは、異常検知装置１１０ａに接続されるＥＣＵ１０１ａとバス１３０間で送受信されるメッセージを受信し、メッセージがバス１３０からＥＣＵ１０１ａへ送信されたものか、ＥＣＵ１０１ａからバス１３０へ送信されたものかに応じて受信済みＩＤリストまたは送信済みＩＤリストの更新とメッセージの異常判定を行い、異常を検知した場合はＥＣＵ１０１ａまたはバス１３０へのメッセージの転送を中止する。
【０１１４】
ステップＳ１６１では、異常検知装置１１０ａがバス１３０または、異常検知装置１１０ａに接続されたＥＣＵ１０１ａからメッセージを受信する。
【０１１５】
ステップＳ１６２では、異常検知装置１１０ａは、受信したメッセージがＥＣＵ１０１ａから送信されたメッセージか、バス１３０から送信されたメッセージかを判定する。例えば、異常検知装置１１０ａは、ＥＣＵ１０１ａに接続された入出力端子と、バス１３０に接続された入出力端子を有し、どちらの入出力端子からメッセージを受信したかに応じて上記判定を行ってもよい。
【０１１６】
ステップＳ１６３およびＳ１６４は、受信したメッセージがバス１３０から送信された場合（ステップＳ１６２で「バス」の場合）の処理であり、異常検知装置１１０ａは、受信済みＩＤリストの更新処理および、送信済みＩＤリストによる異常検知処理を行う。
【０１１７】
ステップＳ１６５およびステップＳ１６６は、受信したメッセージがＥＣＵ１０１ａから送信された場合（ステップＳ１６２で「ＥＣＵ」の場合）の処理であり、異常検知装置１１０ａは、送信済みＩＤリスト更新処理および、受信済みＩＤリストによる異常検知処理を行う。
【０１１８】
ステップＳ１６３は、図１７を用いて後述し、ステップＳ１６４は、図２１を用いて後述し、ステップＳ１６５は、図１８を用いて後述し、ステップＳ１６６は、図１９および図２０を用いて後述する。
【０１１９】
［１−１７．受信済みＩＤリスト更新処理フロー］
図１７は、受信済みＩＤリスト更新処理のフローチャートである。図１７は、図１６のステップＳ１６３の受信済みＩＤリスト更新処理の詳細な処理フローである。異常検知装置１１０ａは、バス１３０からメッセージが送信された際に、受信済みＩＤリスト保持部１１４に保持している受信済みＩＤリストを更新する。
【０１２０】
ステップＳ１７１では、異常検知装置１１０ａは、バス１３０から受信したメッセージのＩＤを読み出す。
【０１２１】
ステップＳ１７２では、異常検知装置１１０ａは、受信済みＩＤリストにステップＳ１７１で読み出したＩＤが存在するか否かを判断する。
【０１２２】
異常検知装置１１０ａは、受信済みＩＤリストに読み出したＩＤが存在しない場合（ステップＳ１７２でＮＯの場合）は、ステップＳ１７３で、受信済みＩＤリストに読み出したＩＤを追加する。異常検知装置１１０ａは、受信済みＩＤリストに読み出したＩＤが存在する場合（ステップＳ１７２でＹＥＳの場合）は、ステップＳ１７４の処理を行う。
【０１２３】
ステップＳ１７４では、異常検知装置１１０ａは、読み出したＩＤについて、受信済みＩＤリスト保持部１１４に記録されるメッセージ受信回数をインクリメントして更新する。
【０１２４】
［１−１８．送信済みＩＤリスト更新処理フロー］
図１８は、送信済みＩＤリスト更新処理のフローチャートである。図１８は、図１６のステップＳ１６５の送信済みＩＤリスト更新処理の詳細な処理フローである。異常検知装置１１０ａは、ＥＣＵ１０１ａからメッセージが送信された際に、送信済みＩＤリスト保持部１１３に保持している送信済みＩＤリストを更新する。
【０１２５】
ステップＳ１８１では、異常検知装置１１０ａは、ＥＣＵ１０１ａから受信したメッセージのＩＤを読み出す。
【０１２６】
ステップＳ１８２では、異常検知装置１１０ａは、送信済みＩＤリストにステップＳ１８１で読み出したＩＤが存在するか否かを判断する。
【０１２７】
異常検知装置１１０ａは、送信済みＩＤリストに読み出したＩＤが存在しない場合（ステップＳ１８２でＮＯの場合）は、ステップＳ１８３で、送信済みＩＤリストに読み出したＩＤを追加する。異常検知装置１１０ａは、送信済みＩＤリストに読み出したＩＤが存在する場合（ステップＳ１８２でＹＥＳの場合）は、ステップＳ１８４の処理を行う。
【０１２８】
ステップＳ１８４では、異常検知装置１１０ａは、読み出したＩＤについて、送信済みＩＤリスト保持部１１３に記録されるメッセージ送信回数をインクリメントして更新する。
【０１２９】
［１−１９．受信済みＩＤリストによる異常検知処理フロー］
図１９は、受信済みＩＤリストによる異常検知処理のフローチャートである。図１９は、図１６のステップＳ１６６の受信済みＩＤリストによる、異常検知装置１１０ａに接続されたＥＣＵ１０１ａの異常検知処理の詳細な処理フローである。
【０１３０】
ステップＳ１９１では、異常検知装置１１０ａは、ＥＣＵ１０１ａから受信したメッセージのＩＤを読み出す。
【０１３１】
ステップＳ１９２では、異常検知装置１１０ａは、読み出したＩＤが受信済みＩＤリストに存在するか否かを判断する。
【０１３２】
異常検知装置１１０ａは、読み出したＩＤが受信済みＩＤリストに存在する場合（ステップＳ１９２でＹＥＳの場合）、ＥＣＵ１０１ａから受信したメッセージが異常であると検知して、ステップＳ１９３、Ｓ１９４およびＳ１９５の処理を行う。異常検知装置１１０ａは、読み出したＩＤが受信済みＩＤリストに存在しない場合（ステップＳ１９２でＮＯの場合）、ＥＣＵ１０１ａから受信したメッセージは正常であると検知して、ステップＳ１９６の処理を行う。
【０１３３】
ステップＳ１９３では、異常検知装置１１０ａは、受信したメッセージを破棄する。つまり、異常検知装置１１０ａは、ＥＣＵ１０１ａから受信したメッセージをバス１３０へ送信しない。ＥＣＵ１０１ａからのメッセージをバス１３０に送信しないようにすることで、異常なメッセージがバス１３０に流れることを抑制できる。
【０１３４】
ステップＳ１９４では、異常検知装置１１０ａは、ＥＣＵ１０１ａが異常であるとバス１３０に通知する。
【０１３５】
ステップＳ１９５では、異常検知装置１１０ａは、ＥＣＵ１０１ａにＥＣＵ１０１ａが異常であると通知する。
【０１３６】
一方で、ステップＳ１９６では、異常検知装置１１０ａは、ＥＣＵ１０１ａから受信したメッセージは正常なため、バス１３０へ当該メッセージを転送する。
【０１３７】
［１−２０．受信済みＩＤリストによる異常検知処理フロー（変形例）］
図２０は、受信済みＩＤリストによる異常検知処理の変形例のフローチャートである。図２０は、図１６のステップＳ１６６の受信済みＩＤリストによる異常検知処理の変形例の詳細な処理フローである。図１９における受信済みＩＤリストによる異常検知処理では、受信したメッセージのＩＤが受信済みＩＤリストに存在する場合、異常検知装置１１０ａは、ステップＳ１９３にて受信したメッセージを破棄しバス１３０に転送しないという処理を行うようにしたが、図２０の変形例では、ステップＳ１９３の処理を実施せず、代わりにステップＳ２０１の処理を実施する。具体的には、異常検知装置１１０ａは、ＥＣＵ１０１ａをバス１３０から隔離する。より具体的には、異常検知装置１１０ａは、ＥＣＵ１０１ａから受信するメッセージをすべて遮断する。これにより、ＥＣＵ１０１ａをバス１３０から隔離し被害が拡大することを防止して、異常メッセージのみを遮断する場合と比べて、車載ネットワーク１００に不正なＥＣＵが与える影響をより軽減できる。なお、例えば、異常検知装置１１０ａとＥＣＵ１０１ａとの間に異常検知装置１１０ａとＥＣＵ１０１ａとの接続および非接続を切り替えるスイッチが設けられていてもよく、当該スイッチの切り替えによって異常検知装置１１０ａとＥＣＵ１０１ａと接続されないようにすることで、ＥＣＵ１０１ａをバス１３０から隔離してもよい。
【０１３８】
［１−２１．送信済みＩＤリストによる異常検知処理フロー］
図２１は、送信済みＩＤリストによる異常検知処理のフローチャートである。図２１は、図１６のステップＳ１６４の送信済みＩＤリストによる、バス１３０に存在するＥＣＵの異常検知処理の詳細な処理フローである。
【０１３９】
ステップＳ２１１では、異常検知装置１１０ａは、バス１３０から受信したメッセージのＩＤを読み出す。
【０１４０】
ステップＳ２１２では、異常検知装置１１０ａは、読み出したＩＤが送信済みＩＤリストに存在するか否かを判断する。
【０１４１】
異常検知装置１１０ａは、読み出したＩＤが送信済みＩＤリストに存在する場合（ステップＳ２１２でＹＥＳの場合）、バス１３０から受信したメッセージが異常であると検知して、ステップＳ２１３、Ｓ２１４およびＳ２１５の処理を行う。異常検知装置１１０ａは、読み出したＩＤが送信済みＩＤリストに存在しない場合（ステップＳ２１２でＮＯの場合）、バス１３０から受信したメッセージは正常であると検知して、ステップＳ２１６の処理を行う。
【０１４２】
ステップＳ２１３では、異常検知装置１１０ａは、受信したメッセージを破棄する。つまり、異常検知装置１１０ａは、バス１３０から受信したメッセージをＥＣＵ１０１ａへ送信しない。バス１３０に存在するＥＣＵからのメッセージをＥＣＵ１０１ａに送信しないようにすることで、異常なメッセージがＥＣＵ１０１ａに送信されることを抑制できる。
【０１４３】
ステップＳ２１４では、異常検知装置１１０ａは、バス１３０に異常なＥＣＵが存在することをバス１３０に通知する。
【０１４４】
ステップＳ２１５では、異常検知装置１１０ａは、ＥＣＵ１０１ａにバス１３０に異常なＥＣＵが存在することを通知する。
【０１４５】
一方で、ステップＳ２１６では、異常検知装置１１０ａは、バス１３０から受信したメッセージは正常なため、ＥＣＵ１０１ａへ当該メッセージを転送する。
【０１４６】
以上のように、車載ネットワーク１００内に必ずしもＩＤＳＥＣＵ１２０を追加（つまり、ネットワークトラフィックおよびコストが増大）したり、各ＥＣＵが送信するメッセージのＩＤを予め記憶させておいたりすることなく、車載ネットワーク１００における異常を容易に検知できる。
【０１４７】
［１−２２．異常検知装置がＩＤＳＥＣＵから異常通知を受信した場合の処理フロー］
図２２は、異常検知装置がＩＤＳＥＣＵ１２０から異常通知を受信した場合の処理のフローチャートである。なお、図２２には、異常検知装置がＩＤＳＥＣＵ１２０から異常通知を受信する前のＩＤＳＥＣＵ１２０での処理（ステップＳ２２１からステップＳ２２４）についても示している。
【０１４８】
ステップＳ２２１では、ＩＤＳＥＣＵ１２０がバス１３０からメッセージを受信する。
【０１４９】
ステップＳ２２２では、ＩＤＳＥＣＵ１２０は受信したメッセージの異常判定を行う。
【０１５０】
ステップＳ２２３では、ステップＳ２２２の異常判定の結果が異常か否かを判断する。ＩＤＳＥＣＵ１２０は、異常判定の結果が異常である場合（ステップＳ２２３でＹＥＳの場合）、ステップＳ２２４の処理を行い、異常判定の結果が異常でない場合（ステップＳ２２３でＮＯの場合）、処理を終了する。
【０１５１】
ステップＳ２２４では、ＩＤＳＥＣＵ１２０は、異常と判定したメッセージに含まれる異常なＩＤを示す異常ＩＤ情報をバス１３０に接続されている異常検知装置１１０ａ、１１０ｂ、１１０ｄおよび１１０ｆに通知する。ここでは、異常検知装置１１０ａに着目して説明する。
【０１５２】
ステップＳ２２５では、異常検知装置１１０ａが、ＩＤＳＥＣＵ１２０から送信された異常なＩＤを示す異常ＩＤ情報をバス１３０から受信する。異常検知装置１１０ａは、ＩＤＳＥＣＵ１２０から送信された異常なＩＤを示す異常ＩＤ情報をバス１３０から受信した場合に、受信済みＩＤリストから異常ＩＤ情報が示すＩＤを消去する。具体的には以下の処理が行われる。
【０１５３】
ステップＳ２２６では、異常検知装置１１０ａは、受信した異常ＩＤ情報が示す異常なＩＤが受信済みＩＤリストに存在するか否かを判断する。異常なＩＤが受信済みＩＤリストに存在する場合（ステップＳ２２６でＹＥＳの場合）は、異常検知装置１１０ａは、ステップＳ２２７の処理を行い、異常なＩＤが受信済みＩＤリストに存在しない場合（ステップＳ２２６でＮＯの場合）は、異常検知装置１１０ａは、処理を終了する。
【０１５４】
ステップＳ２２７では、異常検知装置１１０ａは、受信済みＩＤリストから異常なＩＤを消去する。
【０１５５】
正規メッセージがバス１３０に流れる前に、攻撃者が不正メッセージをバス１３０へ送信する場合が考えられる。この場合、受信済みＩＤリストに不正メッセージに含まれるＩＤが追加されることになる。例えば、正規なＥＣＵ１０１ａが送信するメッセージに含まれるＩＤが不正メッセージに含まれる場合、正規なＥＣＵ１０１ａから送信される正規メッセージが不正メッセージであると判定されてしまう。つまり、以降は、正規メッセージがバス１３０へ送信されず、攻撃者がＥＣＵ１０１ａになりすまして不正メッセージがバス１３０へ送信されることになる。これに対して、上記説明のように、例えばＩＤＳＥＣＵ１２０が車載ネットワーク１００に配置されることで、攻撃者が送信した不正メッセージを検知することが可能となる。したがって、正規メッセージがバス１３０に流れる前に、攻撃者が不正メッセージをバス１３０へ送信した場合（つまり、受信済みＩＤリストが汚染された場合）であっても、受信済みＩＤリストを修正して、受信済みＩＤリストに追加された不正メッセージに含まれるＩＤ（例えばＥＣＵ１０１ａが送信するメッセージに含まれるＩＤ）を受信済みＩＤリストから消去することで正規メッセージを不正メッセージであると異常検知装置１１０ａが誤検知することを防止することが可能である。
【０１５６】
［１−２３．異常検知装置の全体処理フロー（変形例）］
図２３は、異常検知装置１１０ａの全体処理の変形例を記載したフローチャートである。図２３は、図１６の異常検知装置１１０ａの全体処理のフローチャートの変形例である。具体的には、図２３では、図１６の全体処理に加えて、ステップＳ１６７の車両シャットダウン操作があるか否かの判断の処理、ステップＳ２３１の車両１０の起動時の処理、および、ステップＳ２３２の車両１０のシャットダウン時の処理が追加されている。
【０１５７】
ステップＳ２３１は、後ほど図２７にて詳細に説明する。
【０１５８】
ステップＳ１６７では、異常検知装置１１０ａは、車両シャットダウン操作があれば（ステップＳ１６７でＹＥＳの場合）、ステップＳ２３２を行い、車両シャットダウン操作がなければ（ステップＳ１６７でＮＯの場合）、ステップＳ１６１に戻る。ステップＳ２３２については、図２４から図２６にて詳細に説明する。
【０１５９】
［１−２４．車両シャットダウン時の処理フロー］
図２４は、異常検知装置１１０ａの車両シャットダウン時の処理のフローチャートである。図２４は、図２３のステップＳ２３２の異常検知装置１１０ａの車両シャットダウン時の処理の詳細なフローチャートである。
【０１６０】
ステップＳ２４１では、異常検知装置１１０ａは、低頻度受信済みＩＤ退避処理を行う。ステップＳ２４１の処理は、図２５にて詳細に説明する。
【０１６１】
ステップＳ２４２では、異常検知装置１１０ａは、低頻度送信済みＩＤ退避処理を行う。ステップＳ２４２の処理は、図２６にて詳細に説明する。
【０１６２】
［１−２５．低頻度受信済みＩＤの退避処理フロー］
図２５は、低頻度受信済みＩＤの退避の処理のフローチャートである。図２５は、図２４のステップＳ２４１の低頻度受信済みＩＤ退避処理の詳細な処理のフローチャートである。
【０１６３】
ステップＳ２５１では、異常検知装置１１０ａは、受信済みＩＤリストから、低頻度受信済みＩＤの退避の処理においてまだ選択していないＩＤを選択する。
【０１６４】
ステップＳ２５２では、異常検知装置１１０ａは、選択したＩＤについて、受信済みＩＤリスト保持部１１４に記録されたメッセージ受信回数に基づくメッセージ受信頻度を算出する。例えば、異常検知装置１１０ａは、メッセージ受信回数を車両１０の起動からシャットダウンまでの時間で割ることでメッセージ受信頻度を算出する。なお、異常検知装置１１０ａは、選択したＩＤについて、受信済みＩＤリスト保持部１１４に記録されたメッセージ受信回数を取得してもよい。メッセージ受信回数は、例えば、シャットダウン前最近１分間、３０分間または１時間等の所定の時間にＥＣＵ１０１ａがバス１３０からメッセージを受信した回数であってもよい。
【０１６５】
ステップＳ２５３では、異常検知装置１１０ａは、ステップＳ２５２で算出したメッセージ受信頻度が予め設定した所定の値以下であるか否かの判断を行う。異常検知装置１１０ａは、メッセージ受信頻度が所定の値以下ならば（ステップＳ２５３でＹＥＳの場合）、メッセージ受信頻度が所定の値以下となっているＩＤを低頻度受信済みＩＤと判断し、ステップＳ２５４の処理を行い、メッセージ受信頻度が所定の値よりも大きいならば（ステップＳ２５３でＮＯの場合）、ステップＳ２５５の処理を行う。なお、異常検知装置１１０ａは、ステップＳ２５２で、選択したＩＤについて、受信済みＩＤリスト保持部１１４に記録されたメッセージ受信回数を取得する場合、ステップＳ２５２で取得したメッセージ受信回数が予め設定した所定の値以下であるか否かの判断を行ってもよい。そして、異常検知装置１１０ａは、メッセージ受信回数が所定の値以下ならば、メッセージ受信回数が所定の値以下となっているＩＤを低頻度受信済みＩＤと判断し、ステップＳ２５４の処理を行い、メッセージ受信回数が所定の値よりも大きいならば、ステップＳ２５５の処理を行う。このように、メッセージ受信回数が少なければメッセージ受信頻度も低いとみなすことで、ステップＳ２５２においてメッセージ受信回数からメッセージ受信頻度を算出せず、メッセージ受信回数を取得するだけでもよい。
【０１６６】
ステップＳ２５４では、異常検知装置１１０ａは、選択したＩＤを不揮発性メモリに退避させる。
【０１６７】
そして、ステップＳ２５５では、異常検知装置１１０ａは、受信済みＩＤリストに未選択のＩＤが存在するか否かを判定し、存在する場合（ステップＳ２５５でＹＥＳの場合）は、ステップＳ２５１に戻り、存在しない場合（ステップＳ２５５でＮＯの場合）は、処理を終了する。これにより、複数の低頻度受信済みＩＤを不揮発性メモリに退避することができる。
【０１６８】
［１−２６．低頻度送信済みＩＤの退避処理フロー］
図２６は、低頻度送信済みＩＤの退避の処理フローチャートである。図２６は、図２４のステップＳ２４２の低頻度送信済みＩＤ退避処理の詳細な処理のフローチャートである。
【０１６９】
ステップＳ２６１では、異常検知装置１１０ａは、送信済みＩＤリストから、低頻度送信済みＩＤの退避の処理においてまだ選択していないＩＤを選択する。
【０１７０】
ステップＳ２６２では、異常検知装置１１０ａは、選択したＩＤについて、送信済みＩＤリスト保持部１１３に記録されたメッセージ送信回数に基づくメッセージ送信頻度を算出する。例えば、異常検知装置１１０ａは、メッセージ送信回数を車両１０の起動からシャットダウンまでの時間で割ることでメッセージ送信頻度を算出する。なお、異常検知装置１１０ａは、選択したＩＤについて、送信済みＩＤリスト保持部１１３に記録されたメッセージ送信回数を取得してもよい。メッセージ送信回数は、シャットダウン前最近１分間、３０分間または１時間等の所定の時間にＥＣＵ１０１ａがバス１３０へメッセージを送信した回数であってもよい。
【０１７１】
ステップＳ２６３では、異常検知装置１１０ａは、ステップＳ２６２で算出したメッセージ送信頻度が予め設定した所定の値以下であるか否かの判定を行う。異常検知装置１１０ａは、メッセージ送信頻度が所定の値以下ならば（ステップＳ２６３でＹＥＳの場合）、メッセージ送信頻度が所定の値以下となっているＩＤを低頻度送信済みＩＤと判断し、ステップＳ２６４の処理を行い、メッセージ送信頻度が所定の値よりも大きいならば（ステップＳ２６３でＮＯの場合）、ステップＳ２６５の処理を行う。なお、異常検知装置１１０ａは、ステップＳ２６２で、選択したＩＤについて、送信済みＩＤリスト保持部１１３に記録されたメッセージ送信回数を取得する場合、ステップＳ２６２で取得したメッセージ送信回数が予め設定した所定の値以下であるか否かの判断を行ってもよい。そして、異常検知装置１１０ａは、メッセージ送信回数が所定の値以下ならば、メッセージ送信回数が所定の値以下となっているＩＤを低頻度送信済みＩＤと判断し、ステップＳ２６４の処理を行い、メッセージ送信回数が所定の値よりも大きいならば、ステップＳ２６５の処理を行う。このように、メッセージ送信回数が少なければメッセージ送信頻度も低いとみなすことで、異常検知装置１１０ａは、ステップＳ２６２においてメッセージ送信回数からメッセージ送信頻度を算出せず、メッセージ送信回数を取得するだけでもよい。
【０１７２】
ステップＳ２６４では、異常検知装置１１０ａは、選択したＩＤを不揮発性メモリに退避させる。
【０１７３】
そして、ステップＳ２６５では、異常検知装置１１０ａは、送信済みＩＤリストに未選択のＩＤが存在するか否かを判定し、存在する場合（ステップＳ２５５でＹＥＳの場合）は、ステップＳ２６１に戻り、存在しない場合（ステップＳ２５５でＮＯの場合）は、処理を終了する。これにより、複数の低頻度送信済みＩＤを不揮発性メモリに退避することができる。
【０１７４】
［１−２７．車両起動時の処理フロー］
図２７は、異常検知装置１１０ａの車両起動時の処理のフローチャートである。図２７は、図２３のステップＳ２３１の異常検知装置１１０ａの車両起動時の詳細な処理のフローチャートである。
【０１７５】
ステップＳ２７１では、異常検知装置１１０ａは、車両１０の起動時に、異常検知装置１１０ａに接続されたＥＣＵ１０１ａのファームウェア情報を確認する。
【０１７６】
そして、ステップＳ２７２では、異常検知装置１１０ａは、現在のファームウェア情報を次回の車両１０の起動時に行うステップＳ２７１の処理で使用するために退避する。
【０１７７】
次に、ステップＳ２７３では、異常検知装置１１０ａは、前回の車両１０の起動時からＥＣＵ１０１ａのファームウェア情報が変更（更新）されているか否かを判断する。ファームウェア情報が変更されている場合（ステップＳ２７３でＹＥＳの場合）は、異常検知装置１１０ａは、ステップＳ２７４の処理を行う。ファームウェア情報が変更されていない場合（ステップＳ２７３でＮＯの場合）は、異常検知装置１１０ａは、ステップＳ２７６の処理を行う。なお、車両１０の初回起動時は、前回のファームウェア情報は存在しないので、ファームウェア情報が変更されていないものとして扱う。また、車両１０の前回の起動時のＥＣＵ１０１ａのファームウェア情報は、前回の起動時のステップＳ２７２の処理で退避されている。つまり、車両１０が起動するごとに、図２７に示す処理が行われる。
【０１７８】
ステップＳ２７４では、異常検知装置１１０ａは、図２５のステップＳ２５４にて不揮発性メモリに退避していた低頻度受信済みＩＤをリセットする。
【０１７９】
さらに、ステップＳ２７５では、異常検知装置１１０ａは、図２６のステップＳ２６４にて不揮発性メモリに退避していた低頻度送信済みＩＤをリセットする。
【０１８０】
ＥＣＵのファームウェアアップデートに伴いＥＣＵのファームウェア情報が変更された場合、ＥＣＵから送信されるメッセージに含まれるＩＤの仕様が変更されることがある。したがって、この場合に、不揮発性メモリに退避させたＩＤを消去し、当該ＩＤを受信済みＩＤリストまたは送信済みＩＤリストに追加しないようにすることで、仕様が変更されたＩＤが原因で発生する正常メッセージの誤遮断を防止することが可能である。
【０１８１】
ステップＳ２７６では、異常検知装置１１０ａは、図２５のステップＳ２５４にて不揮発性メモリに退避していた低頻度受信済みＩＤを異常検知装置１１０ａの受信済みＩＤリストに読み込む。
【０１８２】
メッセージ受信回数またはメッセージ受信頻度が所定の値以下となっているＩＤ（低頻度で受信されるメッセージに含まれるＩＤ）は、車両１０が起動した後、当該ＩＤを含むメッセージがバス１３０を流れるまでに時間を要する場合がある。つまり、当該ＩＤを含む正規メッセージがバス１３０を流れるまでに、攻撃者が当該ＩＤを含む不正メッセージをバス１３０へ送信して、受信済みＩＤリストに不正メッセージに含まれるＩＤが追加されてしまう（言い換えると、受信済みＩＤリストが不正なＩＤで汚染されてしまう）場合がある。これに対して、車両１０の起動時に、不揮発性メモリに退避させた低頻度で受信されるメッセージに含まれるＩＤを受信済みＩＤリストに追加することで、低頻度で受信されるメッセージが最初にネットワークバスに流れる前に攻撃者が不正メッセージを送信することによる受信済ＩＤリストの汚染を防ぐことが可能である。また、高頻度に受信されるメッセージの含まれるＩＤを不揮発性メモリに退避させないことで、その分メモリ容量を削減することが可能である。
【０１８３】
さらに、ステップＳ２７７では、異常検知装置１１０ａは、図２６のステップＳ２６４にて不揮発性メモリに退避していた低頻度送信済みＩＤを異常検知装置１１０ａの送信済みＩＤリストに読み込む。
【０１８４】
メッセージ送信回数またはメッセージ送信頻度が所定の値以下となっているＩＤ（低頻度でＥＣＵ１０１ａから送信されるメッセージに含まれるＩＤ）は、車両１０が起動した後、当該ＩＤを含むメッセージを異常検知装置１１０ａがＥＣＵ１０１ａから受信するまでに時間を要する場合がある。つまり、当該ＩＤを含む正規メッセージを異常検知装置１１０ａが受信するまでに、攻撃者がＥＣＵ１０１ａを攻撃して不正なＥＣＵ１０１ａから不正メッセージを異常検知装置１１０ａへ送信して、送信済みＩＤリストに不正メッセージに含まれるＩＤが追加されてしまう（言い換えると、送信済みＩＤリストが不正なＩＤで汚染されてしまう）場合がある。これに対して、車両１０の起動時に、不揮発性メモリに退避させた低頻度で送信されるメッセージに含まれるＩＤを送信済みＩＤリストに追加することで、低頻度で送信されるメッセージを異常検知装置１１０ａが受信する前に攻撃者が不正メッセージを送信することによる送信済ＩＤリストの汚染を防ぐことが可能である。また、高頻度に送信されるメッセージに含まれるＩＤを不揮発性メモリに退避させないことで、その分メモリ容量を削減することが可能である。
【０１８５】
なお、異常検知装置１１０ａは、車両１０の起動時に、ファームウェア情報の確認を行わず、不揮発性メモリに退避させたＩＤを受信済みＩＤリストまたは送信済みＩＤリストに追加してもよい。つまり、車両１０の起動時にステップＳ２７１からステップＳ２７５の処理が行われず、ステップＳ２７６およびステップＳ２７７の処理が行われてもよい。
【０１８６】
（他の実施の形態）
例えば、上記実施の形態では、異常検知装置は、送信済みＩＤリスト保持部１１３を備えていたが、備えていなくてもよい。この場合、制御部１１２は、送信済みＩＤリスト保持部１１３に関連する制御を行わなくてもよい。
【０１８７】
また、例えば、上記実施の形態では、異常検知装置は、受信済みＩＤリスト保持部１１４を備えていたが、備えていなくてもよい。この場合、制御部１１２は、受信済みＩＤリスト保持部１１４に関連する制御を行わなくてもよい。
【０１８８】
また、例えば、上記実施の形態では、制御部１１２は、通信部１１１がＥＣＵから受信したメッセージのＩＤが受信済みＩＤリストに存在する場合に、当該ＥＣＵをバス１３０から隔離するとしたが、隔離しなくてもよく、当該メッセージをバス１３０へ送信しないようにするのみでもよい。
【０１８９】
また、例えば、上記実施の形態では、受信済みＩＤリスト保持部１１４は、受信済みＩＤリストに含まれるＩＤ毎のメッセージ受信回数を記録する領域を持っているとしたが、持っていなくてもよい。この場合、制御部１１２は、メッセージ受信回数に関連する制御を行わなくてもよい。
【０１９０】
また、例えば、上記実施の形態では、送信済みＩＤリスト保持部１１３は、送信済みＩＤリストに含まれるＩＤ毎のメッセージ送信回数を記録する領域を持っているとしたが、持っていなくてもよい。この場合、制御部１１２は、メッセージ送信回数に関連する制御を行わなくてもよい。
【０１９１】
本開示の車載ネットワーク１００は、典型的には上述のとおり車載のＣＡＮネットワークであるが、これに限定されない。例えば、ＣＡＮ−ＦＤ（ＣＡＮ  ｗｉｔｈ  Ｆｌｅｘｉｂｌｅ  Ｄａｔａ  ｒａｔｅ）、ＦｌｅｘＲａｙ（登録商標）、Ｅｔｈｅｒｎｅｔ（登録商標）、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）、ＭＯＳＴ（Ｍｅｄｉａ  Ｏｒｉｅｎｔｅｄ  Ｓｙｓｔｅｍｓ  Ｔｒａｎｓｐｏｒｔ）などのネットワークであってもよい。あるいはこれらのネットワークをサブネットワークとして、ＣＡＮネットワークと組み合わせた車載ネットワークであってもよい。
【０１９２】
また、上記実施の形態では、自動車に搭載される車載ネットワーク１００におけるセキュリティ対策として説明したが、本開示の適用範囲はこれに限られない。本開示は、自動車に限らず、建機、農機、船舶、鉄道、飛行機などのモビリティにも適用してもよい。すなわち、本開示は、モビリティネットワークおよびモビリティネットワークシステムにおけるサイバーセキュリティ対策として適用可能である。
【０１９３】
上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニットなどから構成されるコンピュータシステムである。ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１９４】
上記の実施の形態における各装置は、構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０１９５】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部またはすべてを含むように１チップ化されてもよい。
【０１９６】
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１９７】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０１９８】
上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。ＩＣカードまたはモジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。ＩＣカードまたはモジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ＩＣカードまたはモジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０１９９】
本開示は、異常検知装置として実現できるだけでなく、異常検知装置を構成する各構成要素が行うステップ（処理）を含む異常検知方法として実現できる。
【０２００】
異常検知方法は、複数のＥＣＵと、バス１３０と、異常検知装置から構成される車載ネットワーク１００に配置される異常検知装置により実行される異常検知方法であって、異常検知装置は、バス１３０と複数のＥＣＵのうちのいずれかの第１ＥＣＵの間に配置され、前記第１ＥＣＵからメッセージを受信して当該メッセージをバス１３０へ送信し、バス１３０からメッセージを受信して当該メッセージを前記第１ＥＣＵへ送信する通信部１１１と、通信部１１１がバス１３０から受信し前記第１ＥＣＵへ送信したメッセージのＩＤのリストである受信済みＩＤリストを保持する受信済みＩＤリスト保持部１１４と、を備え、異常検知方法では、通信部１１１がバス１３０から受信したメッセージのＩＤが受信済みＩＤリストに存在しない場合（図１７のステップＳ１７２でＮｏの場合）に、当該ＩＤを受信済みＩＤリストに追加し（図１７のステップＳ１７３）、通信部１１１が前記第１ＥＣＵから受信したメッセージのＩＤが受信済みＩＤリストに存在する場合（図１９のステップＳ１９２でＹｅｓ）に、当該メッセージをバス１３０へ送信しない（図１９のステップＳ１９３）ことを特徴とする。
【０２０１】
また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０２０２】
また、本開示は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。
【０２０３】
また、本開示は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０２０４】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
【０２０５】
また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０２０６】
以上、一つまたは複数の態様に係る異常検知装置などについて、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、および異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
【０２０７】
例えば、上記実施の形態において、特定の構成要素が実行する処理を特定の構成要素の代わりに別の構成要素が実行してもよい。また、複数の処理の順序が変更されてもよいし、複数の処理が並行して実行されてもよい。
【産業上の利用可能性】
【０２０８】
本開示は、車載ネットワークを搭載した車両等に利用可能である。
【符号の説明】
【０２０９】
１０  車両
１００  車載ネットワーク
１０１ａ、１０１ｂ、１０１ｃ、１０１ｄ、１０１ｅ、１０１ｆ、１０１ｇ  ＥＣＵ
１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅ、１１０ｆ  異常検知装置
１１０ｇ  異常検知部
１１１  通信部
１１２  制御部
１１３  送信済みＩＤリスト保持部
１１４  受信済みＩＤリスト保持部
１１５  ＥＣＵ処理部
１２０  ＩＤＳＥＣＵ
１２１  通信部
１２２  異常検知部
１３０  バス
【図１】
2019225257.tif 000003
【図２】
2019225257.tif 000004
【図３】
2019225257.tif 000005
【図４】
2019225257.tif 000006
【図５】
2019225257.tif 000007
【図６】
2019225257.tif 000008
【図７】
2019225257.tif 000009
【図８】
2019225257.tif 000010
【図９】
2019225257.tif 000011
【図１０】
2019225257.tif 000012
【図１１】
2019225257.tif 000013
【図１２】
2019225257.tif 000014
【図１３】
2019225257.tif 000015
【図１４】
2019225257.tif 000016
【図１５】
2019225257.tif 000017
【図１６】
2019225257.tif 000018
【図１７】
2019225257.tif 000019
【図１８】
2019225257.tif 000020
【図１９】
2019225257.tif 000021
【図２０】
2019225257.tif 000022
【図２１】
2019225257.tif 000023
【図２２】
2019225257.tif 000024
【図２３】
2019225257.tif 000025
【図２４】
2019225257.tif 000026
【図２５】
2019225257.tif 000027
【図２６】
2019225257.tif 000028
【図２７】
2019225257.tif 000029
【手続補正書】
【提出日】令和1年7月10日(2019.7.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の電子制御ユニットと、ネットワークと、異常検知装置から構成される車載ネットワークに配置される異常検知装置であって、
前記異常検知装置は、
前記ネットワークと前記複数の電子制御ユニットのうちのいずれかの第１電子制御ユニットの間に配置され、
前記第１電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークへ送信し、前記ネットワークからメッセージを受信して当該メッセージを前記第１電子制御ユニットへ送信する通信部と、
前記通信部が前記ネットワークから受信し前記第１電子制御ユニットへ送信したメッセージのＩＤのリストである受信済みＩＤリストを保持する受信済みＩＤリスト保持部と、
前記通信部および前記受信済みＩＤリスト保持部を制御する制御部と、を備え、
前記制御部は、
前記通信部が前記ネットワークから受信したメッセージのＩＤが前記受信済みＩＤリストに存在しない場合に、当該ＩＤを前記受信済みＩＤリストに追加し、
前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、当該メッセージを前記ネットワークへ送信しないことを特徴とする、
異常検知装置。
【請求項２】
前記制御部は、前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、前記第１電子制御ユニットを前記ネットワークから隔離することを特徴とする、
請求項１記載の異常検知装置。
【請求項３】
前記制御部は、前記通信部が前記複数の電子制御ユニットのうちの前記第１電子制御ユニットとは異なる第２電子制御ユニットから送信された異常なＩＤを示す異常ＩＤ情報を前記ネットワークから受信した場合に、前記受信済みＩＤリストから前記異常ＩＤ情報が示すＩＤを消去することを特徴とする、
請求項１または２に記載の異常検知装置。
【請求項４】
前記受信済みＩＤリスト保持部は、前記受信済みＩＤリストに含まれるＩＤ毎のメッセージ受信回数を記録する領域を持ち、
前記制御部は、
前記通信部が前記ネットワークからメッセージを受信したとき、当該メッセージのＩＤについて記録されるメッセージ受信回数を更新し、
前記車載ネットワークを搭載した車両のシャットダウン時に、前記受信済みＩＤリストに含まれるＩＤのうち、前記受信済みＩＤリスト保持部に記録されたメッセージ受信回数、または、当該メッセージ受信回数に基づくメッセージ受信頻度が所定の値以下となっているＩＤを不揮発性メモリに退避させ、
前記車両の起動時に、前記不揮発性メモリに退避させた前記ＩＤを前記受信済みＩＤリストに追加することを特徴とする、
請求項１〜３のいずれか１項に記載の異常検知装置。
【請求項５】
前記制御部は、前記車両の起動時に、前回の起動時から前記第１電子制御ユニットのファームウェア情報が変更されている場合に、前記不揮発性メモリに退避させた前記ＩＤを消去し、当該ＩＤを前記受信済みＩＤリストに追加しないことを特徴とする、
請求項４記載の異常検知装置。
【請求項６】
前記異常検知装置は、さらに、前記通信部が前記第１電子制御ユニットから受信し前記ネットワークへ送信したメッセージのＩＤのリストである送信済みＩＤリストを保持する送信済みＩＤリスト保持部を備え、
前記制御部は、さらに、
前記送信済みＩＤリスト保持部を制御し、
前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記送信済みＩＤリストに存在しない場合に、当該ＩＤを前記送信済みＩＤリストに追加し、
前記通信部が前記ネットワークから受信したメッセージのＩＤが前記送信済みＩＤリストに存在する場合、当該メッセージを前記第１電子制御ユニットへ送信しないことを特徴とする、
請求項１〜５のいずれか１項に記載の異常検知装置。
【請求項７】
前記送信済みＩＤリスト保持部は、前記送信済みＩＤリストに含まれるＩＤ毎のメッセージ送信回数を記録する領域を持ち、
前記制御部は、
前記通信部が前記第１電子制御ユニットからメッセージを受信したときに、当該メッセージのＩＤについて記録されるメッセージ送信回数を更新し、
前記車載ネットワークを搭載した車両のシャットダウン時に、前記送信済みＩＤリストに含まれるＩＤのうち、前記送信済みＩＤリスト保持部に記録されたメッセージ送信回数、または、当該メッセージ送信回数に基づくメッセージ送信頻度が所定の値以下となっているＩＤを不揮発性メモリに退避させ、
前記車両の起動時に、前記不揮発性メモリに退避させた前記ＩＤを前記送信済みＩＤリストに追加することを特徴とする、
請求項６記載の異常検知装置。
【請求項８】
前記制御部は、前記車両の起動時に、前回の起動時から前記第１電子制御ユニットのファームウェア情報が変更されている場合に、前記不揮発性メモリに退避させた前記ＩＤを消去し、当該ＩＤを前記送信済みＩＤリストに追加しないことを特徴とする、
請求項７記載の異常検知装置。
【請求項９】
複数の電子制御ユニットと、ネットワークと、異常検知装置から構成される車載ネットワークに配置される異常検知装置により実行される異常検知方法であって、
前記異常検知装置は、
前記ネットワークと前記複数の電子制御ユニットのうちのいずれかの第１電子制御ユニットの間に配置され、
前記第１電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークへ送信し、前記ネットワークからメッセージを受信して当該メッセージを前記第１電子制御ユニットへ送信する通信部と、
前記通信部が前記ネットワークから受信し前記第１電子制御ユニットへ送信したメッセージのＩＤのリストである受信済みＩＤリストを保持する受信済みＩＤリスト保持部と、を備え、
前記異常検知方法では、
前記通信部が前記ネットワークから受信したメッセージのＩＤが前記受信済みＩＤリストに存在しない場合に、当該ＩＤを前記受信済みＩＤリストに追加し、
前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、当該メッセージを前記ネットワークへ送信しないことを特徴とする、
異常検知方法。
【請求項１０】
請求項９に記載の異常検知方法をコンピュータに実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
上記課題を解決するために、本開示の一態様に係る異常検知装置は、複数の電子制御ユニットと、ネットワークと、異常検知装置から構成される車載ネットワークに配置される異常検知装置であって、前記異常検知装置は、前記ネットワークと前記複数の電子制御ユニットのうちのいずれかの第１電子制御ユニットの間に配置され、前記第１電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークへ送信し、前記ネットワークからメッセージを受信して当該メッセージを前記第１電子制御ユニットへ送信する通信部と、前記通信部が前記ネットワークから受信し前記第１電子制御ユニットへ送信したメッセージのＩＤのリストである受信済みＩＤリストを保持する受信済みＩＤリスト保持部と、前記通信部および前記受信済みＩＤリスト保持部を制御する制御部と、を備え、前記制御部は、前記通信部が前記ネットワークから受信したメッセージのＩＤが前記受信済みＩＤリストに存在しない場合に、当該ＩＤを前記受信済みＩＤリストに追加し、前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、当該メッセージを前記ネットワークへ送信しないことを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
本開示の異常検知装置は、複数の電子制御ユニットと、ネットワークと、異常検知装置から構成される車載ネットワークに配置される異常検知装置であって、前記異常検知装置は、前記ネットワークと前記複数の電子制御ユニットのうちのいずれかの第１電子制御ユニットの間に配置され、前記第１電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークへ送信し、前記ネットワークからメッセージを受信して当該メッセージを前記第１電子制御ユニットへ送信する通信部と、前記通信部が前記ネットワークから受信し前記第１電子制御ユニットへ送信したメッセージのＩＤのリストである受信済みＩＤリストを保持する受信済みＩＤリスト保持部と、前記通信部および前記受信済みＩＤリスト保持部を制御する制御部と、を備え、前記制御部は、前記通信部が前記ネットワークから受信したメッセージのＩＤが前記受信済みＩＤリストに存在しない場合に、当該ＩＤを前記受信済みＩＤリストに追加し、前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、当該メッセージを前記ネットワークへ送信しないことを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
異常検知装置は、ネットワークから受信したメッセージのＩＤを受信済みＩＤリストに追加していく。つまり、異常検知装置は、複数のＥＣＵのうち、自身を介してネットワークと接続された第１ＥＣＵ以外のＥＣＵがネットワークへ送信したメッセージのＩＤを受信済みＩＤリストに追加していく。一般的に、車載ネットワークにおける複数のＥＣＵのそれぞれは、同じＩＤを含むメッセージを送信しないという仕様になっていることが多い。この仕様のもとでは、受信済みＩＤリストは、第１ＥＣＵが送信しないメッセージのＩＤのリストとなる。これに対して、異常検知装置が第１ＥＣＵから受信したメッセージ（つまり、第１ＥＣＵが送信したメッセージ）のＩＤが受信済みＩＤリストに存在する場合、本来第１ＥＣＵが送信するはずのないメッセージを第１ＥＣＵが送信していることになる。つまり、第１ＥＣＵが異常なメッセージを送信していることがわかる。したがって、このような場合に、第１ＥＣＵからのメッセージをネットワークに送信しないようにすることで、異常なメッセージがネットワークに流れることを抑制できる。このように、車載ネットワーク内にＩＤＳＥＣＵを追加（つまり、ネットワークトラフィックおよびコストが増大）したり、各ＥＣＵが送信するメッセージのＩＤを予め記憶させておいたりすることなく、車載ネットワークにおける異常を容易に検知できる。また、正規メッセージがネットワークに流れる前に、攻撃者が不正メッセージをネットワークへ送信しない限り、誤検知をすることなく異常メッセージを遮断可能である。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
また例えば、前記制御部は、前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、前記第１電子制御ユニットを前記ネットワークから隔離してもよい。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
この場合、第１ＥＣＵが不正なＥＣＵであるため、不正なＥＣＵをネットワークから隔離する（例えば、第１ＥＣＵから送信される全てのメッセージを異常検知装置において遮断してネットワークへ送信しないようにする）ことが可能となり、異常メッセージのみを遮断する場合と比べて、車載ネットワークに不正なＥＣＵが与える影響をより軽減できる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
また例えば、前記制御部は、前記通信部が前記複数の電子制御ユニットのうちの前記第１電子制御ユニットとは異なる第２電子制御ユニットから送信された異常なＩＤを示す異常ＩＤ情報を前記ネットワークから受信した場合に、前記受信済みＩＤリストから前記異常ＩＤ情報が示すＩＤを消去してもよい。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
正規メッセージがネットワークに流れる前に、攻撃者が不正メッセージをネットワークへ送信する場合が考えられる。この場合、受信済みＩＤリストに不正メッセージに含まれるＩＤが追加されることになる。例えば、正規な第１ＥＣＵが送信するメッセージに含まれるＩＤが不正メッセージに含まれる場合、正規な第１ＥＣＵから送信される正規メッセージが不正メッセージであると判定されてしまう。つまり、以降は、正規メッセージがネットワークへ送信されず、攻撃者が第１ＥＣＵになりすまして不正メッセージがネットワークへ送信されることになる。これに対して、第２ＥＣＵとして例えばＩＤＳＥＣＵ等が車載ネットワークに配置されることで、攻撃者が送信した不正メッセージを検知することが可能となる。したがって、正規メッセージがネットワークに流れる前に、攻撃者が不正メッセージをネットワークへ送信した場合（つまり、受信済みＩＤリストが汚染された場合）であっても、受信済みＩＤリストを修正して、受信済みＩＤリストに追加された不正メッセージに含まれるＩＤ（つまり第１ＥＣＵが送信するメッセージに含まれるＩＤ）を受信済みＩＤリストから消去することで、異常検知装置が正規メッセージを不正メッセージであると誤検知することを防止することが可能である。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
また例えば、前記受信済みＩＤリスト保持部は、前記受信済みＩＤリストに含まれるＩＤ毎のメッセージ受信回数を記録する領域を持ち、前記制御部は、前記通信部が前記ネットワークからメッセージを受信したとき、当該メッセージのＩＤについて記録されるメッセージ受信回数を更新し、前記車載ネットワークを搭載した車両のシャットダウン時に、前記受信済みＩＤリストに含まれるＩＤのうち、前記受信済みＩＤリスト保持部に記録されたメッセージ受信回数、または、当該メッセージ受信回数に基づくメッセージ受信頻度が所定の値以下となっているＩＤを不揮発性メモリに退避させ、前記車両の起動時に、前記不揮発性メモリに退避させた前記ＩＤを前記受信済みＩＤリストに追加してもよい。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
メッセージ受信回数またはメッセージ受信頻度が所定の値以下となっているＩＤ（低頻度で受信されるメッセージに含まれるＩＤ）は、車両が起動した後、当該ＩＤを含むメッセージがネットワークを流れるまでに時間を要する場合がある。つまり、当該ＩＤを含む正規メッセージがネットワークを流れるまでに、攻撃者が当該ＩＤを含む不正メッセージをネットワークへ送信して、受信済みＩＤリストに不正メッセージに含まれるＩＤが追加されてしまう（言い換えると、受信済みＩＤリストが不正なＩＤで汚染されてしまう）場合がある。これに対して、車両の起動時に、不揮発性メモリに退避させた低頻度で受信されるメッセージに含まれるＩＤを受信済みＩＤリストに追加することで、低頻度で受信されるメッセージが最初にネットワークに流れる前に攻撃者が不正メッセージを送信することによる受信済ＩＤリストの汚染を防ぐことが可能である。また、高頻度に受信されるメッセージの含まれるＩＤを不揮発性メモリに退避させないことで、その分メモリ容量を削減することが可能である。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
また例えば、前記異常検知装置は、さらに、前記通信部が前記第１電子制御ユニットから受信し前記ネットワークへ送信したメッセージのＩＤのリストである送信済みＩＤリストを保持する送信済みＩＤリスト保持部を備え、前記制御部は、さらに、前記送信済みＩＤリスト保持部を制御し、前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記送信済みＩＤリストに存在しない場合に、当該ＩＤを前記送信済みＩＤリストに追加し、前記通信部が前記ネットワークから受信したメッセージのＩＤが前記送信済みＩＤリストに存在する場合、当該メッセージを前記第１電子制御ユニットへ送信しなくてもよい。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
異常検知装置は、第１ＥＣＵから受信したメッセージのＩＤを送信済みＩＤリストに追加していく。車載ネットワークにおける複数のＥＣＵのそれぞれは、同じＩＤを含むメッセージを送信しないという仕様のもとでは、送信済みＩＤリストは、複数のＥＣＵのうちの第１ＥＣＵ以外のＥＣＵ等が送信しないメッセージのＩＤのリストとなる。これに対して、異常検知装置がネットワークから受信したメッセージ（つまり、第１ＥＣＵ以外のＥＣＵが送信したメッセージ）のＩＤが送信済みＩＤリストに存在する場合、本来第１ＥＣＵ以外のＥＣＵ等が送信するはずのないメッセージを第１ＥＣＵ以外のＥＣＵ等が送信していることになる。つまり、第１ＥＣＵ以外のＥＣＵ等が異常なメッセージを送信していることがわかる。したがって、このような場合に、第１ＥＣＵ以外のＥＣＵ等からのメッセージを第１ＥＣＵに送信しないようにすることで、異常なメッセージが第１ＥＣＵに送信されることを抑制できる。このように車載ネットワーク内にＩＤＳＥＣＵを追加（つまり、ネットワークトラフィックおよびコストが増大）したり、各ＥＣＵが送信するメッセージのＩＤを予め記憶させておいたりすることなく、車載ネットワークにおける異常を容易に検知できる。また、正規メッセージがネットワークに流れる前に、攻撃者が不正メッセージをネットワークへ送信しない限り、誤検知をすることなく異常メッセージを検知可能である。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】変更
【補正の内容】
【００３３】
本開示の異常検知方法は、複数の電子制御ユニットと、ネットワークと、異常検知装置から構成される車載ネットワークに配置される異常検知装置により実行される異常検知方法であって、前記異常検知装置は、前記ネットワークと前記複数の電子制御ユニットのうちのいずれかの第１電子制御ユニットの間に配置され、前記第１電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークへ送信し、前記ネットワークからメッセージを受信して当該メッセージを前記第１電子制御ユニットへ送信する通信部と、前記通信部が前記ネットワークから受信し前記第１電子制御ユニットへ送信したメッセージのＩＤのリストである受信済みＩＤリストを保持する受信済みＩＤリスト保持部と、を備え、前記異常検知方法では、前記通信部が前記ネットワークから受信したメッセージのＩＤが前記受信済みＩＤリストに存在しない場合に、当該ＩＤを前記受信済みＩＤリストに追加し、前記通信部が前記第１電子制御ユニットから受信したメッセージのＩＤが前記受信済みＩＤリストに存在する場合に、当該メッセージを前記ネットワークへ送信しないことを特徴とする。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
車載ネットワーク１００は、複数のＥＣＵと、ネットワークと、異常検知装置から構成される。例えば、図１に示す例では、車載ネットワーク１００は、複数のＥＣＵのそれぞれに対応するように設けられた複数の異常検知装置を備える。例えば、車載ネットワーク１００は、複数のＥＣＵとして、ＥＣＵ１０１ａ、１０１ｂ、１０１ｃ、１０１ｄ、１０１ｅおよび１０１ｆとバス１３０（ネットワーク）と異常検知装置１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅおよび１１０ｆとから構成される。ＥＣＵ１０１ａとバス１３０は、異常検知装置１１０ａを間に介して接続され、通信を行う。ＥＣＵ１０１ｂとバス１３０は、異常検知装置１１０ｂを間に介して接続され、通信を行う。ＥＣＵ１０１ｃとバス１３０は、異常検知装置１１０ｃを間に介して接続され、通信を行う。ＥＣＵ１０１ｄとバス１３０は、異常検知装置１１０ｄを間に介して接続され、通信を行う。ＥＣＵ１０１ｅとバス１３０は、異常検知装置１１０ｅを間に介して接続され、通信を行う。ＥＣＵ１０１ｆとバス１３０は、異常検知装置１１０ｆを間に介して接続され、通信を行う。例えば、異常検知装置１１０ａに着目すると、異常検知装置１１０ａは、バス１３０と複数のＥＣＵのうちのいずれかの第１ＥＣＵ（ここではＥＣＵ１０１ａ）の間に配置される。ＥＣＵ１０１ａがバス１３０へ向けてメッセージを送信する際、および、ＥＣＵ１０１ａがバス１３０からメッセージが受信する際に、異常検知装置１１０ａを介してメッセージの送受信が行われる。
【国際調査報告】
2019225257.tif 000030
2019225257.tif 000031
2019225257.tif 000032
2019225257.tif 000033