(57)【要約】【課題】不正なデータフレームの存在をより適切に検出し、より安全な情報処理方法を提供する。【解決手段】記憶装置を備える情報処理システムが行う、１以上の電子制御ユニットを含む車載ネットワークに流れる複数のデータフレームを処理する情報処理方法は、複数のデータフレームを順次受信する受信ステップ（Ｓ８１）と、複数のデータフレーム間の受信間隔を示す受信間隔情報をフレーム情報として記録するフレーム収集ステップ（Ｓ８２）と、受信間隔情報から、複数のデータフレーム間の受信間隔の分布に関する特徴量を取得する特徴量取得ステップと、特徴量を用いて、複数のデータフレームの中の不正なデータフレームの存否を判定する不正データ存否判定ステップ（Ｓ８７）とを含む。【選択図】図８
2018152842.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を備える情報処理システムが行う、１以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理方法であって、
前記車載ネットワークに流れる複数のデータフレームを順次受信する受信ステップと、
前記複数のデータフレーム間の受信間隔を示す受信間隔情報を、前記記憶装置に保持される受信ログにフレーム情報として記録するフレーム収集ステップと、
前記受信間隔情報から、前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得する特徴量取得ステップと、
前記特徴量を用いて、前記複数のデータフレームの中の不正なデータフレームの存否を判定する不正データ存否判定ステップとを含む、
情報処理方法。
【請求項２】
前記記憶装置には、正常なデータフレームの特徴を示す正常モデルがさらに保持され、
前記不正データ存否判定ステップにおいて、前記受信間隔情報を用いて求められた前記特徴量と、前記正常モデルとを用いて前記複数のデータフレームの中の不正なデータフレームの存否を判定する、
請求項１に記載の情報処理方法。
【請求項３】
前記正常モデルは、前記特徴として正常なデータフレーム間の受信間隔を示し、
前記特徴量取得ステップにおいて取得される特徴量は、受信された前記複数のデータフレーム間の受信間隔と前記正常モデルが示す正常なデータフレーム間の受信間隔との密度比推定を用いて算出される、受信された前記複数のデータフレーム間の受信間隔の異常度であり、
前記不正データ存否判定ステップにおいて、前記異常度に基づいて前記複数のデータフレームの中の不正なデータフレームの存否を判定する、
請求項２に記載の情報処理方法。
【請求項４】
前記正常モデルは、前記特徴として正常なデータフレーム間の受信間隔の分散を示し、
前記特徴量取得ステップにおいて取得される特徴量は、受信された前記複数のデータフレーム間の受信間隔の分散であり、
前記不正データ存否判定ステップにおいて、前記正常なデータフレーム間の受信間隔の分散と前記受信間隔の分散との差を算出し、前記差の大きさに基づいて前記複数のデータフレームの中の不正なデータフレームの存否を判定する、
請求項２に記載の情報処理方法。
【請求項５】
前記フレーム情報には、前記受信間隔情報と対応づけて、前記複数のデータフレームのそれぞれが含むデータ値がさらに含まれ、
さらに、前記フレーム情報が含む前記受信間隔情報及び前記データ値に基づいて、前記複数のデータフレームの少なくとも一部を含む１以上のグループを設定するグルーピングステップを含み、
前記特徴量取得ステップにおいて、前記受信ログに含まれる前記受信間隔情報から、前記１以上のグループのそれぞれについて、当該グループが含む前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得し、
前記不正データ存否判定ステップにおいて、前記１以上のグループのそれぞれについて求められた特徴量に少なくとも基づいて、前記１以上のグループの中から不正なデータフレームを含むグループ又は不正なデータフレームを含まないグループを識別する、
請求項２から４のいずれか１項に記載の情報処理方法。
【請求項６】
前記不正データ存否判定ステップにおいて前記１以上のグループのそれぞれについてグループを識別した後に実行した前記受信ステップで受信したデータフレームについて、
前記識別されたグループに属するか否かを判定することで当該データフレームが正常なデータフレームであるか又は不正なデータフレームであるかを判定するデータフレーム判定ステップをさらに含む、
請求項５に記載の情報処理方法。
【請求項７】
前記記憶装置には、データフレームの受信間隔に関する規定である受信間隔ルールと、データフレームに含まれるデータ値の時間的変化量に関する規定であるデータ変化量ルールとがさらに保持され、
前記グルーピングステップにおいて、前記受信間隔情報及び前記データ値と、前記受信間隔ルール及び前記データ変化量ルールとに基づいて、前記１以上のグループを設定し、
前記１以上のグループのそれぞれに含まれるデータフレームの数が所定数以上である場合に、前記１以上のグループに対して前記不正データ存否判定ステップを実行する、
請求項５又は６に記載の情報処理方法。
【請求項８】
前記記憶装置には、データフレームの受信間隔に関する規定である受信間隔ルールと、正常なデータフレームに含まれるデータ値の時間的変化量に関する規定であるデータ変化量ルールがさらに保持され、
前記グルーピングステップにおいて、前記受信間隔情報及び前記データ値と、前記受信間隔ルール及び前記データ変化量ルールとに基づいて、前記複数のデータフレームに複数のグループを設定し、
前記複数のグループのそれぞれに含まれるデータフレームのデータ値の平均の差が所定の大きさ以上である場合に、前記複数のグループに対して前記不正データ存否判定ステップを実行する、
請求項５又は６に記載の情報処理方法。
【請求項９】
前記データ変化量ルールは、前記データフレームに含まれるデータ値の時間的変化量が所定値以下であることを規定する、
請求項７又は８に記載の情報処理方法。
【請求項１０】
前記記憶装置には、正常なデータフレームの受信間隔の時系列データから求めた自己回帰係数がさらに保持され、
前記グルーピングステップにおいて設定される前記１以上のグループは複数のグループであり、
前記複数のグループのそれぞれが含む前記複数のデータフレーム間の受信間隔に関する特徴量は、前記受信間隔情報を用いて予測される予測受信間隔であり、
前記特徴量取得ステップにおいて、前記複数のグループのそれぞれが含む前記複数のデータフレーム間の受信間隔に関する特徴量として、前記自己回帰係数及び前記フレーム情報とを用いて予測受信間隔を取得し、
前記不正データ存否判定ステップにおいて、前記複数のグループのそれぞれについて、前記予測受信間隔と、当該グループに含まれる最新のデータフレームの実際の受信間隔との誤差である予測誤差を算出し、前記複数のグループの中で前記予測誤差が最も小さいグループを、不正なデータフレームを含まないグループと識別する、
請求項５から９のいずれか１項に記載の情報処理方法。
【請求項１１】
前記不正データ存否判定ステップにおいて、
正常なデータフレームの受信間隔ベクトルと、不正なデータフレームの受信間隔ベクトルとを学習した識別器を用いて、前記複数のグループの中から、不正なデータフレームを含むグループと不正なデータフレームを含まないグループとを識別する、
請求項５から９のいずれか１項に記載の情報処理方法。
【請求項１２】
前記識別器は、ランダムフォレスト（Ｒａｎｄｏｍ  Ｆｏｒｅｓｔ）、サポートベクターマシン（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）、ＮＮ（Ｎｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒ）、ニューラルネットワーク（Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）のいずれかひとつで、又は複数を組み合わせて構成される、
請求項１１に記載の情報処理方法。
【請求項１３】
プロセッサ及び記憶装置を備え、１以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理システムであって、
前記プロセッサは、
前記車載ネットワークに流れる複数のデータフレームを順次受信し、
前記複数のデータフレーム間の受信間隔を示す受信間隔情報を、前記記憶装置に保持される受信ログにフレーム情報として記録し、
前記受信間隔情報から、前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得し、
前記特徴量を用いて、前記複数のデータフレームの中の不正なデータフレームの存否を判定する、
情報処理システム。
【請求項１４】
プロセッサ及び記憶装置を備える情報処理システムにおいて、前記プロセッサによって実行されることで前記情報処理システムに請求項１に記載の情報処理方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載ネットワークに流れるデータの処理のための技術に関する。
【背景技術】
【０００２】
近年、自動車の中のシステムには、電子制御ユニット（以下、ＥＣＵ（Ｅｌｅｃｒｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ））と呼ばれる装置が多数配置されている。これらのＥＣＵをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の通信規格が存在する。その中でも最も主流な車載ネットワークの規格の一つに、Ｃｏｎｔｒｏｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（以下、ＣＡＮ）がある。
【０００３】
ＣＡＮ通信のネットワークでは、２本のバスが通信線に用いられ、このバスに接続されているＥＣＵはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信するノード（以下、送信ノードともいう）は２本のバスに電圧をかけ、それぞれのバス間での電位差の有無を応じたレセシブと呼ばれる“１”の値及びドミナントと呼ばれる“０”の値を送信することでフレームのバイナリデータを送信する。
【０００４】
複数の送信ノードが全く同一のタイミングで、レセシブとドミナントを送信した場合は、ドミナントが優先されて送信される。
【０００５】
受信ノードは、受け取ったフレームのフォーマットに異常がある場合には、エラーフレームと呼ばれるフレームを送信する。エラーフレームは、例えば連続する６ｂｉｔのドミナントで始まるフレームであり、このフレームを受信した送信ノード及び他の受信ノードはエラーの発生を検出する。
【０００６】
またＣＡＮでは送信先又は送信元を示す識別子は存在せず、送信ノードはフレームごとにデータの種類等を示すＩＤを付けて送信し、各受信ノードはあらかじめ決められたＩＤを含むフレームのみ受信する。
【０００７】
また、ＣＡＮではＣＳＭＡ／ＣＲ（Ｃａｒｒｉｅｒ  Ｓｅｎｓｅ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ／Ｃｏｌｌｉｓｉｏｎ  Ｒｅｓｏｌｕｔｉｏｎ）方式が採用されており、複数ノードの同時送信時にはＩＤによる調停が行われ、ＩＤの値が小さいフレームが優先的に送信される。
【０００８】
一方、攻撃者がＣＡＮのバスにアクセスし、不正なフレームを送信することで、ＥＣＵを不正制御するといった脅威が存在し、セキュリティ対策が検討されている。
【０００９】
例えば特許文献１では、ＣＡＮネットワークの通信状態を監視するＣＡＮフレーム監視機能を開示している。具体的には、フレームがあらかじめ規定された通信間隔でネットワークに送信されているかを検出し、規定された通信間隔から外れて送信されているフレームを不正なフレームであると判断することで、不正フレームを用いる制御を防止する方法が開示されている。
【００１０】
特許文献２においても、フレームの通信間隔が規定の通信間隔より短い場合に、所定の時間を経過するまでに同一の識別子を持つフレームを受信するかを待ち、時間内に同一の識別子を持つフレームをさらに受信したときに、不正が発生したと判断する方法が開示されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特許第５６６４７９９号公報
【特許文献２】特開２０１４−１４６８６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、特許文献１のようなＣＡＮフレーム監視機能では、規定の通信間隔に適合する不正なフレームは、正常なフレームであると判断されてしまう。また、特許文献２のような不正の判断方法では、不正が発生したと判断した場合に、受信した２つのフレームのうちのいずれが不正であるかを判断できない。
【００１３】
本発明は、不正なフレームをより適切に検出することでより安全な車載ネットワークシステムを実現する情報処理方法等を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の一態様に係る情報処理方法は、記憶装置を備える情報処理システムが行う、１以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理方法であって、前記車載ネットワークに流れる複数のデータフレームを順次受信する受信ステップと、前記複数のデータフレーム間の受信間隔を示す受信間隔情報を、前記記憶装置に保持される受信ログにフレーム情報として記録するフレーム収集ステップと、前記受信間隔情報から、前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得する特徴量取得ステップと、前記特徴量を用いて、前記複数のデータフレームの中の不正なデータフレームの存否を判定する不正データ存否判定ステップとを含む。
【発明の効果】
【００１５】
本発明の情報処理方法等は、不正なフレームをより適切に検出し、より安全な車載ネットワークシステムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態における車載ネットワークシステムの全体構成を示すブロック図である。
【図２】ＣＡＮプロトコルのデータフレームフォーマットを示す図である。
【図３】ＣＡＮプロトコルのエラーフレームフォーマットを示す図である。
【図４】実施の形態における監視ＥＣＵの機能構成を示すブロック図である。
【図５】実施の形態における監視ＥＣＵの受信ログ保持部が保持する受信ログのデータ構成の一例を示す図である。
【図６】実施の形態における監視ＥＣＵの正常モデル保持部が保持する正常モデルのデータ構成の一例を示す図である。
【図７】実施の形態における監視ＥＣＵのルール保持部が保持するルールのデータ構成の一例を示す図である。
【図８】実施の形態における監視ＥＣＵの処理を示すフローチャートである。
【図９】実施の形態における監視ＥＣＵの不正発生検知部による処理の具体例を示すフローチャートである。
【図１０】実施の形態における車載ネットワークに接続されるノードの例であるＥＣＵの機能構成を示すブロック図である。
【図１１】実施の形態におけるＥＣＵがバスに送信するデータフレームの一例を示す図である。
【図１２Ａ】実施の形態における監視ＥＣＵの受信ログ保持部が保持する受信ログの、別の例を示す図である。
【図１２Ｂ】実施の形態における監視ＥＣＵが受信したデータフレームを説明するための図である。
【図１３Ａ】実施の形態における監視ＥＣＵの受信ログ保持部が保持する受信ログの、別の例を示す図である。
【図１３Ｂ】実施の形態における監視ＥＣＵが受信したデータフレームを説明するための図である。
【図１４Ａ】実施の形態における監視ＥＣＵの受信ログ保持部が保持する受信ログの、別の例を示す図である。
【図１４Ｂ】実施の形態における監視ＥＣＵが受信したデータフレームを説明するための図である。
【図１５】実施の形態における監視ＥＣＵにより設定された各グループの受信間隔の分散を示す図である。
【発明を実施するための形態】
【００１７】
本開示の一実施様態に係る情報処理方法は、記憶装置を備える情報処理システムが行う、１以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理方法であって、前記車載ネットワークに流れる複数のデータフレームを順次受信する受信ステップと、前記複数のデータフレーム間の受信間隔を示す受信間隔情報を、前記記憶装置に保持される受信ログにフレーム情報として記録するフレーム収集ステップと、前記受信間隔情報から、前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得する特徴量取得ステップと、前記特徴量を用いて、前記複数のデータフレームの中の不正なデータフレームの存否を判定する不正データ存否判定ステップとを含む。
【００１８】
これにより、攻撃者による不正なデータフレームの送信の検知が、攻撃者が制御困難な特徴量を利用して実行される。つまり、攻撃者は不正対策の回避が困難になる。したがって、車載ネットワークをより確実に保護することができる。
【００１９】
また、前記記憶装置には、正常なデータフレームの特徴を示す正常モデルがさらに保持され、前記不正データ存否判定ステップにおいて、前記受信間隔情報を用いて求められた前記特徴量と、前記正常モデルとを用いて前記複数のデータフレームの中の不正なデータフレームの存否を判定してもよい。
【００２０】
これにより、例えば正常なデータフレームの受信間隔の分布に関する特徴量と不正なデータフレームの受信間隔の分布に関する特徴量との差異の大きさに基づいて不正なデータフレームの存否を判定することができる。従来は不正の判定が困難であった一群のデータフレームについても、より高い精度での判定が可能になる。
【００２１】
例えば、前記正常モデルは、前記特徴として正常なデータフレーム間の受信間隔を示し、前記特徴量取得ステップにおいて取得される特徴量は、受信された前記複数のデータフレーム間の受信間隔と前記正常モデルが示す正常なデータフレーム間の受信間隔との密度比推定を用いて算出される、受信された前記複数のデータフレーム間の受信間隔の異常度であり、前記不正データ存否判定ステップにおいて、前記異常度に基づいて前記複数のデータフレームの中の不正なデータフレームの存否を判定してもよい。
【００２２】
これにより、正常なデータフレームの受信間隔と、実際に受信したデータフレームの受信間隔の確率分布の差を検知することができる。そして、不正なデータフレームの存否を判定することができる。従来は不正の判定が困難であった一群のデータフレームについても、より高い精度での判定が可能になる。
【００２３】
また例えば、前記正常モデルは、前記特徴として正常なデータフレーム間の受信間隔の分散を示し、前記特徴量取得ステップにおいて取得される特徴量は、受信された前記複数のデータフレーム間の受信間隔の分散であり、前記不正データ存否判定ステップにおいて、前記正常なデータフレーム間の受信間隔の分散と前記受信間隔の分散との差を算出し、前記差の大きさに基づいて前記複数のデータフレームの中の不正なデータフレームの存否を判定してもよい。
【００２４】
これにより、正常なデータフレームの受信間隔と、不正なデータフレームの受信間隔の統計的な際に基づいて不正なデータフレームを検知することができるそして従来では、正常と不正との判定が困難であったデータフレームに関しても精度よく識別することができ、車載ネットワークの保護が可能となる。
【００２５】
また、前記フレーム情報には、前記受信間隔情報と対応づけて、前記複数のデータフレームのそれぞれが含むデータ値がさらに含まれ、さらに、前記フレーム情報が含む前記受信間隔情報及び前記データ値に基づいて、前記複数のデータフレームの少なくとも一部を含む１以上のグループを設定するグルーピングステップを含み、前記特徴量取得ステップにおいて、前記受信ログに含まれる前記受信間隔情報から、前記１以上のグループのそれぞれについて、当該グループが含む前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得し、前記不正データ存否判定ステップにおいて、前記１以上のグループのそれぞれについて求められた特徴量に少なくとも基づいて、前記１以上のグループの中から不正なデータフレームを含むグループ又は不正なデータフレームを含まないグループを識別してもよい。
【００２６】
これにより、従来では、通信間隔の規定の範囲内で複数のデータフレームが受信された場合に、これらのデータフレームについての不正なデータフレームの存否の判定が困難であった。このような場合にも、不正なデータフレームを含むグループ又は不正なデータフレームを含まないグループを識別することができる。したがって、車載ネットワークをより確実に保護することができる。
【００２７】
また、不正データ存否判定ステップにおいて前記１以上のグループのそれぞれについてグループを識別した後に実行した前記受信ステップで受信したデータフレームについて、前記識別されたグループに属するか否かを判定することで当該データフレームが正常なデータフレームであるか又は不正なデータフレームであるかを判定するデータフレーム判定ステップをさらに含んでもよい。
【００２８】
これにより、個々のデータフレームの正常又は不正判定によるフィルタリングが可能になる。
【００２９】
また、前記記憶装置には、データフレームの受信間隔に関する規定である受信間隔ルールと、データフレームに含まれるデータ値の時間的変化量に関する規定であるデータ変化量ルールとがさらに保持され、前記グルーピングステップにおいて、前記受信間隔情報及び前記データ値と、前記受信間隔ルール及び前記データ変化量ルールとに基づいて、前記１以上のグループを設定し、前記１以上のグループのそれぞれに含まれるデータフレームの数が所定数以上である場合に、前記１以上のグループに対して前記不正データ存否判定ステップを実行してもよい。または、前記記憶装置には、データフレームの受信間隔に関する規定である受信間隔ルールと、正常なデータフレームに含まれるデータ値の時間的変化量に関する規定であるデータ変化量ルールがさらに保持され、前記グルーピングステップにおいて、前記受信間隔情報及び前記データ値と、前記受信間隔ルール及び前記データ変化量ルールとに基づいて、前記複数のデータフレームに複数のグループを設定し、前記複数のグループのそれぞれに含まれるデータフレームのデータ値の平均の差が所定の大きさ以上である場合に、前記複数のグループに対して前記不正データ存否判定ステップを実行してもよい。またさらに、前記データ変化量ルールは、前記データフレームに含まれるデータ値の時間的変化量が所定値以下であることを規定してもよい。
【００３０】
これにより、複数のデータフレームに対してより精度よくグループを設定でき、従来では困難であった不正なデータフレームの存否の判定をすることができる。したがって、車載ネットワークをより確実に保護することができる。
【００３１】
また、前記記憶装置には、正常なデータフレームの受信間隔の時系列データから求めた自己回帰係数がさらに保持され、前記グルーピングステップにおいて設定される前記１以上のグループは複数のグループであり、前記複数のグループのそれぞれが含む前記複数のデータフレーム間の受信間隔に関する特徴量は、前記受信間隔情報を用いて予測される予測受信間隔であり、前記特徴量取得ステップにおいて、前記複数のグループのそれぞれが含む前記複数のデータフレーム間の受信間隔に関する特徴量として、前記自己回帰係数及び前記フレーム情報とを用いて予測受信間隔を取得し、前記不正データ存否判定ステップにおいて、前記複数のグループのそれぞれについて、前記予測受信間隔と、当該グループに含まれる最新のデータフレームの実際の受信間隔との誤差である予測誤差を算出し、前記複数のグループの中で前記予測誤差が最も小さいグループを、不正なデータフレームを含まないグループと識別してもよい。
【００３２】
これにより、正常なデータフレームの受信間隔と、不正なデータフレームの受信間隔の時系列モデルへの当てはまりのよさを用いて、不正なデータフレームを含まないグループを識別することができる。したがって、車載ネットワークをより確実に保護することができる。
【００３３】
また、前記不正データ存否判定ステップにおいて、正常なデータフレームの受信間隔ベクトルと、不正なデータフレームの受信間隔ベクトルとを学習した識別器を用いて、前記複数のグループの中から、不正なデータフレームを含むグループと不正なデータフレームを含まないグループとを識別してもよい。また、この識別器は、ランダムフォレスト（Ｒａｎｄｏｍ  Ｆｏｒｅｓｔ）、サポートベクターマシン（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）、ＮＮ（Ｎｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒ）、ニューラルネットワーク（Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）のいずれか、又は複数を組み合わせて構成されてもよい。
【００３４】
これにより、正常なデータフレームの受信間隔ベクトルと、不正なデータフレームの受信間隔ベクトルを学習した識別器によって、不正なデータフレームを含むグループが従来に比べて精度よく識別される。したがって、車載ネットワークをより確実に保護することができる。
【００３５】
また、本開示の一実施様態に係る情報処理システムは、プロセッサ及び記憶装置を備え、１以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理システムであって、前記プロセッサは、前記車載ネットワークに流れる複数のデータフレームを順次受信し、前記複数のデータフレーム間の受信間隔を示す受信間隔情報を、前記記憶装置に保持される受信ログにフレーム情報として記録し、前記受信間隔情報から、前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得し、前記特徴量を用いて、前記複数のデータフレームの中の不正なデータフレームの存否を判定する。または、本開示の一実施様態に係るプログラムは、プロセッサ及び記憶装置を備える情報処理システムにおいて、前記プロセッサによって実行されることで前記情報処理システムに請求項１に記載の情報処理方法を実行させる。
【００３６】
これにより、攻撃者による不正なデータフレームの送信の検知が、攻撃者が制御困難な特徴量を利用して実行される。つまり、攻撃者は不正対策の回避が困難になる。したがって、車載ネットワークをより確実に保護することができる。
【００３７】
以下、図面を参照しながら、実施の形態について説明する。なお、以下で説明する実施の形態は、包括的又は具体的な例を示す。したがって、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置及び接続形態、ステップ、ステップの順序などは一例であり、本発明を限定する趣旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素は、任意で含まれる構成要素として説明される。
【００３８】
（実施の形態）
［１．システムの構成］
実施の形態として説明する情報処理システムは、プロセッサ及び記憶装置を備え、１以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理システムである。このプロセッサは、車載ネットワークに流れる複数のデータフレームを順次受信し、これらのデータフレーム間の受信間隔を示す受信間隔情報を、記憶装置に保持される受信ログにフレーム情報として記録する。また、このプロセッサは、この記録された受信間隔情報から、複数のデータフレーム間の受信間隔の分布に関する特徴量を取得し、この取得した特徴量を用いて、複数のデータフレームの中の不正なデータフレームの存否を判定する。本実施の形態では、種類を示す識別子（ＩＤ）が共通である複数個のデータフレームを２つの系列（グループ）に分類する。
【００３９】
以下、車載ネットワークに接続される監視ＥＣＵについて、本実施の形態における情報処理システムの一例として図面を参照しながら説明する。
【００４０】
［１．１  車載ネットワークシステムの全体構成］
図１は、本実施の形態における車載ネットワークシステムの全体構成を示すブロック図である。図１において、車載ネットワークシステム１０は、監視ＥＣＵ１００と、ＥＣＵ２００ａと、ＥＣＵ２００ｂと、バス３００とを備える。
【００４１】
監視ＥＣＵ１００は、バス３００に接続され、バス３００上に流れるデータフレームを監視し、不正なデータフレームが流れているか否かを監視する。監視ＥＣＵ１００は、通信回路、プロセッサ及びメモリを含むマイクロコントローラ（図示なし）を備える、本実施の形態における情報処理システムの一例である。
【００４２】
ＥＣＵ２００ａは、バス３００に接続され、さらに速度センサ２１０に接続されている。ＥＣＵ２００ａは、速度センサ２１０から得られる車両の速度をデータフレームに含めて定期的にバス３００へ送信する。
【００４３】
ＥＣＵ２００ｂは、バス３００に接続され、さらにメータ２２０に接続されている。ＥＣＵ２００ｂは、ＥＣＵ２００ａからバス３００に送信される、車両の速度を含むデータフレームを取得し、データフレームから取得した車両の速度をメータ２２０に表示させる。
【００４４】
［１．２  データフレームフォーマット］
図２は、ＣＡＮプロトコルのデータフレームのフォーマットを示す図である。ここではＣＡＮプロトコルにおける標準ＩＤフォーマットにおけるデータフレームを示している。
【００４５】
図２において、データフレームは、Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ（以下、ＳＯＦという）と、ＩＤフィールド、Ｒｅｍｏｔｅ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｒｅｑｕｅｓｔ（以下、ＲＴＲという）、ＩＤｅｎｔｉｆｉｅｒ  Ｅｘｔｅｎｓｉｏｎ（以下、ＩＤＥという）、予約ビット（以下、ｒ）、データレングスコード（以下、ＤＬＣという）、データフィールド、Ｃｙｃｒｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ（以下、ＣＲＣという）シーケンス、ＣＲＣデリミタ（図中、左のＤＥＬ）と、Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ（以下、ＡＣＫという）スロットと、ＡＣＫデリミタ（図中、右のＤＥＬ）と、エンドオブフレーム（以下、ＥＯＦという）から構成される。
【００４６】
ＳＯＦは、１ビットのドミナントである。バス３００はアイドルときレセシブになっており、送信ノードはバス３００をレセシブからドミナントへ変更することでフレームの送信開始を通知する。
【００４７】
ＩＤは、１１ビット長の値で、データフレームの種類を示す。ここでいうデータフレームの種類とは、例えばデータの内容又はデータフレームの送信元である送信ノードを指す。また、ＩＤは同一ネットワーク上で複数のノードが同時に送信を開始したデータフレーム間での通信調停にも用いられる。より具体的には、ＩＤがより小さい値を持つデータフレームは優先順位が高い。
【００４８】
ＲＴＲは、１ビットのドミナントで、データフレームであることを示す。
【００４９】
ＩＤＥ及びｒは、それぞれ１ビットのドミナントである。
【００５０】
ＤＬＣは４ビット長の値で、続くデータフィールドの長さを示す。
【００５１】
データフィールドは、最大６４ビット長の送信されるデータの部分であり、データフレームのペイロードである。長さは８ビット単位で調整可能である。送信されるデータのこの部分への割り当てに関する仕様は、車種や製造者に依存する。
【００５２】
ＣＲＣシーケンスは、１５ビット長で、ＳＯＦ、ＩＤフィールド、コントロールフィールド、及びデータフィールドの送信値より算出される値を示す。受信ノードは、各データフレームについてＳＯＦ、ＩＤフィールド、コントロールフィールド、及びデータフィールドの受信値から算出した結果をＣＲＣシーケンスの値と比較することで異常の有無を判断する。
【００５３】
ＣＲＣデリミタは、１ビットのレセシブで、ＣＲＣシーケンスの終了を表す区切り記号である。
【００５４】
ＡＣＫスロットは、１ビット長、送信ノードはこの部分でレセシブを送信する。受信ノードはＣＲＣシーケンスまで正常に受信ができていれば、この部分でドミナントを送信する。ことで、ＣＡＮの規格では、同時に送信されたドミナントとレセシブとでは上述のとおりドミナントが優先されるため、通信が正常に行われている車載ネットワークシステム１０では、ＡＣＫスロットの送信中、バス３００はドミナントの状態である。
【００５５】
ＡＣＫデリミタは、１ビット長のレセシブで、ＡＣＫスロットの終了を表す区切り記号である。
【００５６】
ＥＯＦは、７ビット長のレセシブで、データフレームの終了を示す。
【００５７】
［１．３  エラーフレームフォーマット］
図３は、ＣＡＮプロトコルのエラーフレームのフォーマットを示す図である。図３において、エラーフレームは、エラーフラグ（プライマリ）、エラーフラグ（セカンダリ）、及びエラーデリミタ（図中ＤＥＬ）の３個の部分から構成される。
【００５８】
エラーフラグ（プライマリ）は、エラーの発生を他のノードに知らせるために使用される。連続する６ビットのドミナントであり、ＣＡＮプロトコルにおける、連続する同じ値の５ビットの次には異なる値を１ビット送信するというビットスタッフィングルールに違反する。このビットスタッフィングルール違反の発生によって、他のノードからのエラーフラグ（セカンダリ）の送信が引き起こされる。
【００５９】
エラーフラグ（セカンダリ）は、エラーの発生を他のノードに通知するために送信される６ビット長のドミナントである。エラーフラグ（プライマリ）を受信した全てのノードが送信する。
【００６０】
エラーデリミタ（ＤＥＬ）は、８ビット長のレセシブで、エラーフレームの終了を示す。
【００６１】
［１．４  監視ＥＣＵの構成］
図４は、本実施の形態における監視ＥＣＵの機能構成を示すブロック図である。図４において、監視ＥＣＵ１００は、フレーム送受信部１１０と、フレーム収集部１２０と、不正発生検知部１３０と、グループ設定部１４０と、不正データ識別部１５０と、不正対応部１６０と、フレーム生成部１７０と、受信ログ保持部１８０と、ルール保持部１９０と、正常モデル保持部１９１とを備える。
【００６２】
フレーム送受信部１１０は、バス３００に対して、ＣＡＮのプロトコルに従ったデータフレームを送受信する。即ち、フレーム送受信部１１０は、車載ネットワークシステム１０を構成するバス３００からデータフレームを１ビットずつ受信することで、複数のデータフレームを順次受信する（受信ステップ）。また、各データフレームの受信がエラー無く完了すると、データフレームの一部であるＩＤ、ＤＬＣ、及びデータフィールドをフレーム収集部１２０及び不正発生検知部１３０に転送する。
【００６３】
また、受信したデータフレームがＣＡＮプロトコルに従っていないと判断した場合、フレーム送受信部１１０は、上記で図３を参照して説明したエラーフレームを送信する。
【００６４】
また、フレーム送受信部１１０は、他のノードからエラーフレームを受信した場合、つまり受け取ったフレームがその値からエラーフレームであると判断した場合には、それ以降はそのフレームを破棄する。
【００６５】
また、フレーム生成部１７０からデータフレームの送信要求を受けたフレーム送受信部１１０は、バス３００へデータフレームを１ビットずつ送信する。
【００６６】
フレーム収集部１２０は、フレーム送受信部１１０からデータフレームの上述の一部を受け取り、このデータフレームが受信された時刻（以下、受信時刻という）、並びにデータフレームに含まれていたＩＤ及びデータフィールドを、受信ログ保持部１８０に保持される受信ログのレコードとして記録する（フレーム収集ステップ）。なお、以下では、このようにレコードに記録される、各データフレームに関する情報のことをフレーム情報ともいう。また、受信時刻は、本実施の形態における受信間隔情報の例である。データフレームの受信時刻は、監視ＥＣＵ１００が起動してから経過した時間を計測するタイマを参照することで得られる時刻である。このようなタイマは、例えば監視ＥＣＵ１００が備えるマイクロコントローラに含まれる。
【００６７】
不正発生検知部１３０は、受信ログ保持部１８０に保持されている受信ログと、ルール保持部１９０に格納されているルール、具体的には、データフレームの受信間隔に関する規定（以下、受信間隔ルールともいう）とを用いて不正が発生しているか否かを判断する。受信間隔ルールは、例えば車載ネットワークシステム１０の仕様に基づいてＩＤごとに定められる。
【００６８】
より具体的には、不正発生検知部１３０は、受信ログ保持部１８０に保持されている受信ログを参照して、ＩＤが共通のデータフレームの受信間隔を取得する。そしてこの取得した受信間隔を、ルール保持部１９０に保持されている受信間隔ルールである当該ＩＤの受信間隔の平均とマージンとに照らして不正が発生しているか否かを判断する。
【００６９】
図５は、本実施の形態における監視ＥＣＵ１００の受信ログ保持部１８０が保持する受信ログのデータ構成の一例を示す図である。この例では、受信ログにはＩＤが０ｘ１００である３件のデータフレームのレコード（又はフレーム情報）が格納されている。
【００７０】
受信ログには、フレーム収集部１２０から通知された各データフレームの情報、具体的には、受信時刻、ＩＤ、データフィールドの値（以下、データ値ともいう）、基準、及びグループが含まれる。
【００７１】
この例で格納されている３件のデータフレームの情報の中で最も古いデータフレームの受信時刻は５０，２５０μｓであり、データフィールドの値は０ｘ００  ０ｘ００である。また、最も新しいデータフレームの受信時刻は１５０，５６０μｓであり、データフィールドの値は０ｘ００  ０ｘ１Ａである。また、受信ログには「基準」の欄がある。この欄の値は、各データフレームの受信時刻又はデータ値が、一連の処理の中で、不正なデータフレームの存否に関する判定の基準として用いられるか否かを示す。この例では、「基準」の欄の値が１であるデータフレームがこのような基準に用いられる。
【００７２】
例えば不正発生検知部１３０は、受信ログ保持部１８０に格納されている受信ログにフレーム情報が記録されている各データフレームが受信間隔ルールに適合するか否か判定する。この判定では、例えば判定対象のＩＤのデータフレームのうち基準の欄の値が１であるデータフレームの受信時刻に、所定の受信間隔の平均を加算した値が次回想定受信時刻として用いられる。不正発生検知部１３０は、当該データフレームの後に受信した同ＩＤのデータフレームのうち、受信時刻がこの次回想定受信時刻から受信間隔のマージンを減算した値以上であり、かつ、次回想定受信時刻に受信間隔のマージンを加算した値以下であるデータフレームを、受信間隔ルールに適合するデータフレームであると判定する。
【００７３】
また、次回想定受信時刻の受信間隔ルールに適合するデータフレームが１つ存在し、かつ、現在の時刻が次回想定受信時刻に受信間隔のマージンを加算した値より大きい場合、不正発生検知部１３０は、受信間隔ルールに適合すると判定したデータフレームの基準の欄の値を１に変更する。
【００７４】
また、受信間隔ルールに適合するデータフレームが２つ以上存在する場合、不正発生検知部１３０は、受信間隔ルールに適合する各データフレームのデータ値がルール保持部１９０に格納されているデータ変化量のルールに適合するか否かを判定する。この判定では、例えばデータ値が、上記の基準の欄の値が１であるデータフレームのデータ値に所定のデータ変化量のマージンを加算した値以下であり、かつ、当該データ値からデータ変化量のマージンを減算した値以上であるデータフレームを、データ変化量の規定（以下、データ変化量ルールという）に適合するデータフレームであると判定する。そして、データ変化量ルールに適合するデータフレームが２つ以上存在する場合、不正発生検知部１３０は、不正が発生していると判断する。データ変化量ルールとは、データフレームに含まれるデータ値の時間的変化量に関する規定であり、データフレームに含まれるデータ値の時間的変化量が所定値以下であることを規定している。この所定値は、例えば車載ネットワークシステム１０の仕様に基づいて定められる。
【００７５】
不正が発生していると判断した場合、不正発生検知部１３０は、不正が発生していることを、グループ設定部１４０と、不正対応部１６０とに通知する。
【００７６】
またこの場合に、現在の時刻が次回想定受信時刻に受信間隔のマージンを加算した値より大きいとき、不正発生検知部１３０は、データ変化量ルールに適合すると判定した全てのデータフレームの基準の欄の値を１に変更する。
【００７７】
また、不正発生検知部１３０は、受信ログ保持部１８０に格納されている受信ログの判定対象のデータフレームのＩＤに関して、基準の欄の値が１に設定されているデータフレームが複数存在する場合、基準の欄の値が１に設定されているデータフレームそれぞれを基準とする上記の受信間隔ルール及びデータ変化量ルールを用いた判定を行う。そして各データフレームがいずれかの基準を用いて受信間隔ルールに適合し、かつ、データ変化量ルールに適合する場合に、現在の時刻が、次回想定受信時刻に受信間隔のマージンを加算した値より大きいときは、当該データフレームの基準の欄の値を１に変更する。
【００７８】
なお、受信ログ保持部１８０に格納されている受信ログの判定対象のＩＤのデータフレームのうちで、基準の欄の値が１であるデータフレームが存在しない場合、すなわち、初めて当該ＩＤのデータフレームを受信する場合、不正発生検知部１３０は、初めて受信したそのデータフレームの基準の欄の値を１に設定する。
【００７９】
グループ設定部１４０は、受信ログ保持部１８０に格納されている受信ログに含まれるフレーム情報に基づいて複数のデータフレームの少なくとも一部を含む１以上のグループを設定する（グルーピングステップ）。
【００８０】
グループ設定部１４０によるグループの設定は、受信ログ保持部１８０の受信ログにおいて基準の欄の値が１に設定されているデータフレームが複数存在する場合、つまり不正が発生していると判断されている場合に行われる。データフレームに設定されているグループは、受信ログのグループの欄の値で示される。
【００８１】
基準の欄の値が１に設定されているデータフレームが複数存在しない場合は、グループ設定部１４０は、グループの設定を行わない。つまり、受信ログのグループの欄の値は、初期値の０のまま、つまりグループは未設定である。
【００８２】
図５の例では、全てのデータフレームについて設定されたグループを示す値が初期値の０である。これは、不正発生検知部１３０による判定で、このＩＤを持つデータフレームでは不正が発生しているという結果がこの時点までに出ていないため、グループの設定は行われていないことを示している。
【００８３】
あるいは、基準の欄の値が１に設定されている複数のデータフレームに含まれるデータ値が全て同じである場合には、グループ設定部１４０は、グループの設定を行わない。したがって、受信ログ保持部１８０に格納される受信ログのグループの欄の値は初期値の０である。また、複数のデータフレームに含まれるデータ値が同じという条件に代えて、例えば、データフレームの特定のサブフィールドの値が一致する、データフィールド全体又は特定のサブフィールドの値の変化が所定の範囲に収まっている、ということがグループの設定が行われない条件であってもよい。以下、データ値が同じであることの記載は、矛盾のない限り、これらの条件に表される状況に読み替えることができる。
【００８４】
基準の欄の値が１に設定されているデータフレームが複数存在し、当該データフレームのグループの欄の値が初期値の０（グループが未設定）であり、かつ当該データフレームの値が互いに異なる場合に、グループ設定部１４０は、基準の欄の値が１に設定されている複数のデータフレームを互いに異なるグループに分類する。
【００８５】
より具体的には、グループ設定部１４０は、基準の欄の値が１に設定されているデータフレームの受信時刻からルール保持部１９０に格納されているデータフレームの受信間隔の平均を引いた値を、前回受信想定時刻とする。そして、受信ログに記録されているデータフレームのうち、受信時刻の値が、前回受信想定時刻からルール保持部１９０に格納されているデータフレームの受信間隔のマージンを減算した値以上であり、かつ、前回受信想定時刻からデータフレームの受信間隔のマージンを加算した値以下であるデータフレームを、前回基準フレームとする。複数の前回基準フレームが存在し、かつ、これらの前回基準フレームに設定されているグループが互いに異なる場合、グループ設定部１４０は、基準の欄の値が１に設定されているデータフレームのデータ値が、複数の前回基準フレームのデータ値のうちで最も近い前回基準フレームのグループと同じグループを、当該データフレームのグループに分類する。
【００８６】
ここで、グループ設定部１４０は、基準の欄の値が１に設定されている複数のデータフレームを互いに異なるグループに設定する。例えば、前回基準として用いられたデータフレームが２つあり、それぞれ、グループ１に含まれ、データ値がＤ１のデータフレームと、グループ２に含まれ、データ値がＤ２のデータフレームであるとする。また、現在基準として用いられるデータフレームに設定されているデータフレームも２つあり、それぞれのデータ値をＸ、Ｙとする。
【００８７】
このときＸ、ＹともにＤ１が最も近い値である場合には、次の２つの式の計算結果の比較の結果に基づいて各データフレームにグループが設定される。
（Ｄ１−Ｘ）＾２＋（Ｄ２−Ｙ）＾２・・・（１）
（Ｄ１−Ｙ）＾２＋（Ｄ２−Ｘ）＾２・・・（２）
【００８８】
より具体的には、（１）の値が（２）の値より小さい場合に、データ値がＸのデータフレームはグループ１に、データ値がＹのデータフレームはグループ２に設定される。また、（２）の値が（１）の値より小さい場合には、データ値がＸのデータフレームをグループ２に設定し、データ値がＹのデータフレームはグループ１に設定される。これにより、前回の基準フレームのデータ値と、不正の判定対象のデータフレームのデータ値との２乗誤差が最小となるデータフレームの組み合わせが同じグループに設定される。
【００８９】
また、異なるグループに設定されている複数の前回基準フレームが存在する場合にデータ値が同じ複数のデータフレームを受信したときは、グループ設定部１４０は、これらの複数のデータフレームに対し、受信時刻順に、グループ１、グループ２・・・と互いに異なるグループを設定する。そして設定された各グループで当該グループに含まれるデータフレームの個数が所定の数、例えば２０に達すると、グループ設定部１４０は、不正データ識別部１５０へ通知を行う。
【００９０】
不正データ識別部１５０は、受信ログ保持部１８０が保持する受信ログにフレーム情報が記録されているデータフレームの受信間隔をグループ別に算出する。そして不正データ識別部１５０は、正常モデル保持部１９１が保持する正常モデルと、算出した受信間隔とに基づいて、不正なデータフレームを含むグループを識別する。
【００９１】
図６は、監視ＥＣＵ１００の正常モデル保持部１９１が保持する正常モデルのデータ構成の一例を示す図である。図６に示される正常モデルは、正常なデータフレームの特徴として統計的に得られた、ＩＤが０ｘ１００である正常なデータフレームの受信間隔の分散を示す。つまりこの例は、ＩＤが０ｘ１００の正常なデータフレームの特徴として、受信間隔の分散は２５００００であることを示す。正常モデルが示す分散は、本実施の形態における、データフレームの特徴の一例である。
【００９２】
不正データ識別部１５０は、受信ログに記録される受信時刻からグル―プごとに受信間隔を算出し、さらに受信間隔の分散を算出する（特徴量算出ステップ）。この受信間隔の分散は、本実施の形態におけるデータフレーム間の受信間隔の分布に関する特徴量の例である。次に不正データ識別部１５０は、算出した分散が、正常モデルが示す分散に最も近いグループを正常なデータフレームのグループ、つまりは不正なデータフレームを含まないグループと識別する（不正データ存否判定ステップ）。また、不正データ識別部１５０は、受信ログの正常なデータフレームのグループに含まれる最新のデータフレームの基準の欄の値を１に変更する。
【００９３】
不正対応部１６０は、不正発生検知部１３０から不正の発生の通知を受けると、他のＥＣＵへ不正の発生を通知するために、フレーム生成部１７０へデータフレームの生成を要求する。
【００９４】
フレーム生成部１７０は、不正対応部１６０からデータフレームの生成を要求されると、不正なデータフレームを受信していることを通知するためのデータフレームを生成し、当該データフレームの送信をフレーム送受信部１１０へ要求する。
【００９５】
受信ログ保持部１８０は、図５に示す例を用いて上記に説明した受信ログを保持する。
【００９６】
ルール保持部１９０は、データフレームのＩＤごとに規定されている受信間隔ルール及びデータ変化量ルールが格納されている。受信間隔ルールは、より具体的には、データフレームの受信間隔の平均及びマージンとを示す受信間隔に関するルールである。データ変化量ルールは、より具体的には、データフレームに含まれるデータの変化量のマージンに関するルールである。図７は、監視ＥＣＵ１００のルール保持部１９０が保持するルールのデータ構成の一例を示す図である。図７に示される例は、ＩＤが０ｘ１００のデータフレームのルールであり、受信間隔ルール及びデータ変化量ルールを含む。
【００９７】
この例における受信間隔ルールでは、受信間隔の平均は５０，０００μｓであり、受信間隔のマージンは３，０００μｓであると規定されている。
【００９８】
また、データ変化量ルールによれば、データ変化量のマージンは１００である。ＩＤが０ｘ１００のデータフレームに含まれるデータ値が車速を示す場合、このデータ変化量ルールでは、連続する２つのデータフレームでのデータ値の差の絶対値は１ｋｍ／ｈ以下であるとデータ変化量ルールで規定されている。ただし、データ変化量マージンの欄にあるカッコ書きは説明の便宜上示したものであり、実際のデータ変化量ルールには含まれなくてもよい。
【００９９】
正常モデル保持部１９１は、図６に示す例を用いて上記のとおり説明した正常モデルを格納する。
【０１００】
これらの機能的な構成要素は、監視ＥＣＵ１００が備えるマイクロコントローラにおいて、プロセッサが、通信回路を通じて受信したデータフレームを、メモリに格納されたプログラムを実行して処理し、必要に応じて処理の中間又は最終で生成されるデータがメモリに保持されることによって実現される。
【０１０１】
［１．５  監視ＥＣＵによる処理］
図８は、本実施の形態における監視ＥＣＵ１００の処理を示すフローチャートである。
【０１０２】
（ステップＳ８１）監視ＥＣＵ１００のフレーム送受信部１１０は、ネットワークに流れるデータフレームを受信する（受信ステップ）。
【０１０３】
（ステップＳ８２）監視ＥＣＵ１００のフレーム収集部１２０は、ステップＳ８１で受信したデータフレームのフレーム情報を受信ログ保持部１８０が保持する受信ログに記録する（フレーム収集ステップ）。
【０１０４】
（ステップＳ８３）監視ＥＣＵ１００の不正発生検知部１３０は、受信ログ保持部１８０が保持する受信ログと、ルール保持部１９０が保持する受信間隔ルールとを用いて、不正が発生しているか否かを判断する（不正発生検知ステップ）。この判断のための処理の詳細は後述する。
【０１０５】
（ステップＳ８４）不正が発生している場合（ＹＥＳの場合）は、監視ＥＣＵ１００による処理はステップＳ８５に進む。不正が発生していない場合（ＮＯの場合）は、監視ＥＣＵ１００は処理を終了する。
【０１０６】
（ステップＳ８５）監視ＥＣＵ１００のグループ設定部１４０は、受信ログ保持部１８０が保持する受信ログにフレーム情報が記録されている複数のデータフレームに１以上のグループを設定する（グルーピングステップ）。
【０１０７】
（ステップＳ８６）監視ＥＣＵ１００のグループ設定部１４０は、グループ設定部１４０が設定した各グループについて、当該グループに含まれるデータフレームの数が所定数、例えば２０以上であるか否かを判定する。各グループに含まれるデータフレームの数が所定数以上である場合（ＹＥＳの場合）は、監視ＥＣＵ１００による処理は、ステップＳ８７に進む。所定数未満のデータフレームしか含んでいないグループが存在する場合（ＮＯの場合）、監視ＥＣＵ１００は処理を終了する。
【０１０８】
（ステップＳ８７）監視ＥＣＵ１００の不正データ識別部１５０は、受信ログに記録されているデータフレームの受信間隔と、正常モデル保持部１９１が保持する正常モデルとを用いて、グループ設定部１４０が設定した各グループについて正常なデータフレームのグループであるか不正なデータフレームのグループであるかを識別する（特徴量取得ステップ、不正データ存否判定ステップ）。
【０１０９】
（ステップＳ８８）監視ＥＣＵ１００の不正データ識別部１５０は、ステップＳ８７での結果に基づいて、受信ログにおける、基準として用いられるデータフレームの基準の欄の値が１に、基準として用いないデータフレームの基準の欄の値が０になるよう設定する（基準データフレーム再設定ステップ）。
【０１１０】
［１．６  不正発生検知部による処理］
図９は、本実施の形態における監視ＥＣＵ１００の不正発生検知部１３０による、上記のステップＳ８３の処理の具体例を示すフローチャートである。
【０１１１】
（ステップＳ９１）不正発生検知部１３０は、受信ログ保持部１８０が保持する受信ログを参照する（受信ログ参照ステップ）。
【０１１２】
（ステップＳ９２）不正発生検知部１３０は、受信ログに、基準の欄の値が１に設定されているデータフレームが存在するか否かを確認する（基準データフレーム存否確認ステップ）。基準の欄の値が１に設定されているデータフレームが存在する場合、不正発生検知部１３０による処理はステップＳ９４に進む。基準の欄の値が１に設定されているデータフレームが存在しない場合、不正発生検知部１３０による処理はステップＳ９３を実行する。
【０１１３】
（ステップＳ９３）不正発生検知部１３０は、受信ログ保持部１８０が保持する受信ログに記録されているデータフレームのうち、最新のデータフレームの基準の欄の値を１に設定する（基準データフレーム設定ステップ）。
【０１１４】
（ステップＳ９４）不正発生検知部１３０は、受信ログに含まれるフレーム情報から、受信済みのデータフレーム間の受信間隔及びデータ変化量を取得する（受信間隔・データ変化量取得ステップ）。
【０１１５】
（ステップＳ９５）不正発生検知部１３０は、ステップＳ９４で取得した受信間隔及びデータ変化量を用いて、ルール保持部１９０が保持する受信間隔ルール及びデータ変化量ルールに適合するデータフレームが、受信ログ保持部１８０が保持する受信ログに複数記録されているかを確認する（ルール適合性確認ステップ）。このとき、受信ログ内に基準の欄の値が１に設定されているデータフレームが複数存在する場合は、不正発生検知部１３０は、基準の欄の値が１に設定されているデータフレームそれぞれについて、全てのルールに適合しているか否かを判断する。各データフレームについて受信間隔ルール及びデータ変化量ルールの両方に適合していると判断された場合に、不正発生検知部１３０は、当該データフレームはルールに適合すると判断する。ルールに適合するデータフレームが複数存在する場合、不正発生検知部１３０による処理はステップＳ９６に進む。ルールに適合するデータフレームが存在しないか又は１つのみである場合、不正発生検知部１３０による処理はステップＳ９７に進む。
【０１１６】
（ステップＳ９６）不正発生検知部１３０は、不正が発生していると判断して、不正対応部１６０と、グループ設定部１４０とに、不正が発生していることを通知する。
【０１１７】
（ステップＳ９７）不正発生検知部１３０は、現在の時刻が、基準の欄の値が１に設定されているデータフレームの受信時刻に、ルール保持部１９０が保持する対応する受信間隔の平均に受信間隔のマージンを加算した時刻を経過しているか否か判断する。
【０１１８】
（ステップＳ９８）当該時刻を経過している場合、不正発生検知部１３０は、受信ログにおいて、ルールに適合する全てのデータフレームの基準の欄の値を１に変更する。当該時刻を経過していない場合は、いずれのデータフレームについても基準の欄の値は変更されない。
【０１１９】
［１．１０  他のＥＣＵの構成］
図１０は、車載ネットワークに接続されるノードの例であるＥＣＵ２００ａ又はＥＣＵ２００ｂの機能構成を示すブロック図である。ＥＣＵ２００ａとＥＣＵ２００ｂとの機能構成は共通であってもよい。
【０１２０】
ＥＣＵ２００ａは、フレーム送受信部２０１と、フレーム処理部２０２と、外部機器入出力部２０３と、フレーム生成部２０４とを備える。これらの機能的な構成要素は、ＥＣＵ２００ａにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ又はデジタル回路等により実現される。
【０１２１】
フレーム送受信部２０１は、バス３００に対して、ＣＡＮのプロトコルに従ったデータフレームを送受信する。即ち、フレーム送受信部２０１はバス３００からデータフレームを１ビットずつ受信する。また、データフレームの受信がエラー無く完了すると、データフレームに含まれるＩＤ、ＤＬＣ、及びデータフィールド（データ値）をフレーム処理部２０２に転送する。
【０１２２】
受信したデータフレームがＣＡＮプロトコルに従っていないデータフレームと判断した場合、フレーム送受信部２０１はエラーフレームを送信する。また、他のノードからエラーフレームを受信した場合、フレーム送受信部２０１は受信中のデータフレームを破棄する。
【０１２３】
フレーム送受信部２０１はさらに、通信調停といったＣＡＮのプロトコルに従った処理も実行する。
【０１２４】
フレーム処理部２０２は、受信したデータフレームの内容を解釈する。例えばＥＣＵ２００ｂでは、ＥＣＵ２００ａから送信されるデータフレームのデータフィールドに含まれる、速度センサ２１０が計測した速度の情報を解釈する。そして、フレーム処理部２０２は、解釈して取得した速度の情報をメータ２２０に表示させるための制御情報を外部機器入出力部２０３に通知する。
【０１２５】
外部機器入出力部２０３は、ＥＣＵ２００ａ又はＥＣＵ２００ｂに接続される外部機器と通信を行う。例えばＥＣＵ２００ａの場合、外部機器入出力部２０３は、速度センサ２１０と接続され、現在の車両の速度の情報を取得し、この情報をフレーム生成部２０４に通知する。ＥＣＵ２００ｂの場合、外部機器入出力部２０３は、メータ２２０に接続され、現在の車両の速度の情報を運転者に通知するために、この情報を表示させる信号をメータ２２０に送信する。
【０１２６】
フレーム生成部２０４は、バス３００へ送信するデータフレームを生成する。例えばＥＣＵ２００ａでは、外部機器入出力部２０３から通知された、速度センサ２１０から取得した車両の速度を含むデータフレームを、あらかじめ定められた周期、例えば、５０ｍｓ間隔で生成しフレーム送受信部２０１に送信する。
【０１２７】
なお、データフレームが生成される間隔は上記に例示した５０ｍｓに限定されず、５０ｍｓ以外の任意の間隔でもよい。
【０１２８】
［１．１１  ＥＣＵが送信するデータフレーム］
本実施の形態における車載ネットワークに接続される各ＥＣＵが送信するデータフレームの構成について例を用いて説明する。図１１は、ＥＣＵ２００ａがバス３００に送信するデータフレームの例を示す図である。監視ＥＣＵ１００及びＥＣＵ２００ｂは、バス３００からこのデータフレームを受信する。ただし、図１１では本実施の形態の理解に必要な部分のみを抜粋して示している。
【０１２９】
図１１に示すように、ＥＣＵ２００ａは、ＩＤが０ｘ１００で、ＤＬＣが２のデータフレームを送信する。データフィールドはＤＬＣに示される２バイトのデータ長であり、データフィールド全体で速度を（０．０１ｋｍ／ｈ単位）を示す。図１１に例として示されるデータフィールドの値「０ｘ１５４Ｂ」は、５４．５１ｋｍ／ｈの車速を示す。
【０１３０】
［１．１２  監視ＥＣＵによる処理の具体例］
次に、監視ＥＣＵ１００によるデータフレームの受信に伴う一連の処理（図８及び図９参照）の具体例を説明する。
【０１３１】
図１２Ａ、図１３Ａ、及び図１４Ａは、本実施の形態における監視ＥＣＵ１００の受信ログ保持部１８０が保持する受信ログの、図５の例とは別の例を時系列順に示す。ただし、データ値の欄にある十進数での時速表示は説明の便宜上示したものであり、実際の受信ログのデータ値には含まれなくてもよい。
【０１３２】
図１２Ｂ、図１３Ｂ、及び図１４Ｂは、本実施の形態における監視ＥＣＵ１００が受信したデータフレームを説明するための図であり、それぞれ図１２Ａ、図１３Ａ、及び図１４Ａに対応する。図１２Ｂに示されるグラフ空間内の丸は、図１２Ａに示されている受信ログに記録されている各データフレームの受信時刻及びデータ値に基づいてプロットされている。同様に、図１３Ｂに示されるグラフ空間内の丸は、図１３Ａ中の各データフレームの受信時刻及びデータ値に基づいて、図１４Ｂに示されるグラフ空間内の丸は、図１４Ａ中の各データフレームの受信時刻及びデータ値に基づいてプロットされているものと理解されたい。
【０１３３】
図１５は、本実施の形態における監視ＥＣＵ１００により設定された各グループの受信間隔の分散を示す図である。
【０１３４】
また、以下の具体例においては、車載ネットワークシステム１０では、ＩＤ「０ｘ１００」のデータフレームのルールとして、図７に示される受信間隔ルール及びデータ変化量ルールが用いられ、正常モデルとして、図６に示される正常ルールが用いられる。そして車載ネットワークシステム１０に不正なＥＣＵが接続されており、この不正なＥＣＵからバス３００に不正なデータフレームが流されている場合を想定している。
【０１３５】
図１２Ａによれば、監視ＥＣＵ１００は３個のデータフレームを受信し、これらの各データフレームが受信ログに記録されている（ステップＳ８１、Ｓ８２）。まず、この時点までの監視ＥＣＵ１００による処理を説明する。
【０１３６】
最初のデータフレームの受信後の処理では基準として用いられるデータフレームがまだ存在していないため、監視ＥＣＵ１００では当該データフレームが基準として設定される。つまり、不正発生検知部１３０によって、ステップＳ９２でＮＯと判定されて、ステップＳ９３が実行される（図９参照）。その結果、受信ログにおける最初のデータ行の基準の欄の値が１に設定される（図示なし）。
【０１３７】
また、不正の発生は検知されていないため、監視ＥＣＵ１００ではステップＳ８４でＮＯと判定されて、このデータフレームの受信に関連する一連の処理は終了する（図８参照）。したがって、最初のデータフレームのグループの欄では、初期値のゼロのままである。
【０１３８】
２番目のデータフレームの受信に関連する一連の処理では、最初に受信されたデータフレームが基準に用いられる。したがって不正発生検知部１３０は、ステップＳ９２ではＹＥＳと判定して、ステップＳ９４へ進む（図９参照）。不正発生検知部１３０は、最初に受信されたデータフレームと２番目に受信されたデータフレームとで受信時刻及びデータ値の差分を取って、それぞれを受信間隔ルール及びデータ変化量ルールに照らす（ステップＳ９５）。
【０１３９】
この例では、受信時刻の差、つまり受信間隔は４９，４５０μｓであり、受信間隔の平均５０，０００μｓからのマージン（許容差）３，０００μｓ内に収まる。つまり２番目に受信されたデータフレームは受信間隔ルールを満たす。また、データ値の差は０．１２ｋｍ／ｈである。したがって、２番目に受信されたデータフレームはデータ変化量ルールも満たす。
【０１４０】
この時点で、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは２番目に受信されたデータフレームのみである。したがって、ステップＳ９５では、不正発生検知部１３０はＮＯと判定し、ステップＳ９７に進む（図９参照）。
【０１４１】
ステップＳ９７では、不正発生検知部１３０は、現在の時刻が最初のデータフレームの受信時刻にマージンを加算した時刻を経過しているか否かを判定する。この例では、その時刻より手前である（ステップＳ９７でＮＯ）と想定して、最初に受信されたデータフレームが引き続き基準として用いられる（図示なし）。
【０１４２】
２番目のデータフレームの受信に関連する処理は、その後（ステップＳ８４以降）は最初に受信されたデータフレームの場合と同様に進んで終了する。したがって、グループの欄の値については、いずれも初期値のゼロのままである（図示なし）。
【０１４３】
次の３番目のデータフレームの受信に関連する一連の処理では、最初に受信されたデータフレームが再び基準に用いられる。したがって不正発生検知部１３０は、ステップＳ９２ではＹＥＳと判定して、ステップＳ９４へ進む（図９参照）。不正発生検知部１３０は、最初に受信されたデータフレームと３番目に受信されたデータフレームとで受信時刻及びデータ値の差分を取って（ステップＳ９４）、それぞれを受信間隔ルール及びデータ変化量ルールに照らす（ステップＳ９５）。
【０１４４】
この場合の受信間隔は５０，２５０μｓであり、受信間隔の平均５０，０００μｓからのマージン３，０００μｓ内に収まる。つまり３番目に受信されたデータフレームは受信間隔ルールを満たす。また、データ値の差は０．１１ｋｍ／ｈである。したがって、３番目に受信されたデータフレームはデータ変化量ルールも満たす。
【０１４５】
なお、図１２Ｂを参照すると、受信された３つのデータフレームの受信間隔及びデータ値の大小関係が模式的に示されている。黒丸で示されるのが、最初のデータフレームである。この例では、この最初のデータフレームの受信時刻及びデータ値を基準に、続く２つのデータフレームのそれぞれについて２つのルールに適合するか否かが判定され、いずれについても２つのルールに適合すると判定されている。
【０１４６】
この時点で、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは２番目に受信されたデータフレーム及び３番目に受信されたデータフレームの２つである。したがって、次のステップＳ９５では、不正発生検知部１３０はＹＥＳと判定してステップＳ９６に進み、不正発生をグループ設定部１４０及び不正対応部１６０に通知する（図９参照）。
【０１４７】
次に不正発生検知部１３０は、現在の時刻が、最初のデータフレームの受信時刻にマージンを加算した時刻を経過しているか否かを判定する。この例では、その時刻を経過している（ステップＳ９７でＹＥＳ）と想定して、ルールに適合する全てのデータフレームを基準として用いるデータフレームに設定する（ステップＳ９８）。つまり、２番目に受信されたデータフレーム及び３番目に受信されたデータフレームの２つが基準として用いるデータフレームに設定される（図１２Ａの「基準」の欄を参照）。
【０１４８】
次に監視ＥＣＵ１００は、ステップＳ８４からステップＳ８５へ進む。ステップＳ８５では、不正が発生していることの通知を不正発生検知部１３０から受けているグループ設定部１４０が、フレーム情報を用いて、受信ログに記録されている複数のデータフレームにグループを設定する。この例では、２番目に受信されたデータフレーム及び３番目に受信されたデータフレームが互いに異なるグループに含まれるよう設定される。図１２Ａが示すのは、この時点での受信ログの状態である。図１２Ａに示される受信ログのグループの欄の値は、２番目に受信されたデータフレームはグループ１に、３番目に受信されたデータフレームはグループ２に含まれることを示している。
【０１４９】
次にグループ設定部１４０は、グループ１及びグループ２のそれぞれに含まれるデータフレームの個数が所定数以上であるか否か判定する（ステップＳ８６、図８参照）。この例では所定数は１０と想定する。この場合、ステップＳ８６ではＮＯと判定され、３番目のデータフレームの受信に関連する一連の処理は終了する（図８参照）。
【０１５０】
次に、図１３Ａ及び図１３Ｂを参照して、４番目及び５番目のデータフレームの受信に伴う監視ＥＣＵ１００による一連の処理を説明する。ただし、３番目までのデータフレームの受信に伴う処理と共通の点については省略するか又は簡単に説明する。
【０１５１】
４番目に受信されたデータフレームについてのステップＳ９５の手順では、２番目に受信されたデータフレーム及び３番目に受信されたデータフレームの両方が基準に用いられる。
【０１５２】
４番目に受信されたデータフレームと２番目に受信されたデータフレームとの受信間隔は５０，８５０μｓ、データ値の差は１ｋｍ／ｈ未満である。また、４番目に受信されたデータフレームと３番目に受信されたデータフレームとの受信間隔は、５０，０５０μｓ、データ値の差は１ｋｍ／ｈ未満である。つまり、４番目に受信されたデータフレームは、受信間隔ルールとデータ変化量ルールとの両方に適合する。なお、この例のように基準として用いられるデータフレームが複数ある場合には、少なくとも１つの基準として用いられるデータフレームとの関係で受信間隔及びデータ変化量が基準を満たせば、ルールに適合すると判断される。
【０１５３】
この時点では、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは４番目に受信されたデータフレームのみである。したがって、不正発生検知部１３０はステップＳ９５ではＮＯと判定し、ステップＳ９７に進む。
【０１５４】
次のステップＳ９７では、この例では、その時刻より手前である（ステップＳ９７でＮＯ）と想定して、２番目及び３番目に受信されたデータフレームが引き続き基準として用いられる。
【０１５５】
ステップＳ８４以降については、２番目に受信されたデータフレームの場合と同様である。
【０１５６】
５番目に受信されたデータフレームについてのステップＳ９５の手順では、２番目に受信されたデータフレーム及び３番目に受信されたデータフレームが再び基準に用いられる。
【０１５７】
５番目に受信されたデータフレームと２番目に受信されたデータフレームとの受信間隔は５１，３００μｓ、データ値の差は１ｋｍ／ｈ未満である。また、５番目に受信されたデータフレームと３番目に受信されたデータフレームとの受信間隔は、５０，５００μｓ、データ値の差は１ｋｍ／ｈ未満である。つまり、５番目に受信されたデータフレームは、受信間隔ルールとデータ変化量ルールとの両方に適合する。
【０１５８】
なお、図１３Ｂを参照すると、この時点までに受信された５つのデータフレームの受信間隔及びデータ値の大小関係が模式的に示されている。黒丸で示されるのが、２番目及び３番目に受信されたデータフレームである。この例では、この２番目及び３番目に受信されたデータフレームの受信時刻及びデータ値を基準に、続く４番目及び５番目に受信されたデータフレームのそれぞれについて２つのルールに適合するか否かが判定され、いずれについても２つのルールに適合すると判定されている。
【０１５９】
この時点では、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは４番目に受信されたデータフレーム及び５番目に受信されたデータフレームの２つである。したがって不正発生検知部１３０は、ステップＳ９５でＹＥＳと判定してステップＳ９６に進み、不正発生をグループ設定部１４０及び不正対応部１６０に通知する（図９参照）。
【０１６０】
ステップＳ９７では、この例ではその時刻を経過している（ステップＳ９７でＹＥＳ）と想定して、基準として用いられるデータフレームの設定が、４番目及び５番目に受信されたデータフレームに更新される（ステップＳ９８、図１３Ａの「基準」の欄を参照）。
【０１６１】
ステップＳ８４以降については、３番目に受信されたデータフレームの場合と同様である。ただしステップＳ８５ではグループ設定部１４０が、４番目に受信されたデータフレームを、データ値の差がより小さい２番目に受信されたデータフレームと同じグループ１に設定する。また、５番目に受信されたデータフレームを、データ値の差がより小さい３番目に受信されたデータフレームと同じグループ２に設定する。図１３Ａに示される受信ログのグループの欄では、４番目に受信されたデータフレームはグループ１に、５番目に受信されたデータフレームはグループ２に含まれることが示されている。図１３Ｂでは、同一のグループに含まれるデータフレームは点線の枠で囲んで示されている。
【０１６２】
６番目から１９番目に受信されたデータフレームは、４番目又は５番目に受信されたデータフレームと同様に処理されるため説明を省略し、図１４Ａ及び図１４Ｂを参照して、２０番目及び２１番目のデータフレームの受信に伴う監視ＥＣＵ１００による一連の処理を説明する。ただし、５番目までのデータフレームの受信に伴う処理と共通の点については省略するか又は簡単に説明する。また、６番目から１７番目に受信されたデータフレームについては、図１４Ａに記載の受信ログでの記載も省略している。
【０１６３】
２０番目及び２１番目に受信されたデータフレームについてのステップＳ９５の手順では、１８番目に受信されたデータフレーム及び１９番目に受信されたデータフレームの両方が基準に用いられる。
【０１６４】
２０番目に受信されたデータフレームと１８番目に受信されたデータフレームとの受信間隔は４９，１００μｓ、データ値の差は１ｋｍ／ｈ未満である。また、２０番目に受信されたデータフレームと１９番目に受信されたデータフレームとの受信間隔は、４８，５００μｓであるが、データ値の差は１ｋｍ／ｈを超える。このように、２０番目に受信されたデータフレームは、１８番目に受信されたデータフレームとの関係で受信間隔及びデータ変化量が基準を満たすため、受信間隔ルールとデータ変化量ルールとの両方に適合すると判断される。
【０１６５】
この時点では、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは２０番目に受信されたデータフレームのみである。したがって、不正発生検知部１３０は、ステップＳ９５ではＮＯと判定し、ステップＳ９７に進む。
【０１６６】
次のステップＳ９７では、この例では、その時刻より手前である（ステップＳ９７でＮＯ）と想定して、１８番目及び１９番目に受信されたデータフレームが引き続き基準として用いられる。
【０１６７】
ステップＳ８４以降については、２番目又は４番目に受信されたデータフレームの場合と同様である。
【０１６８】
２１番目に受信されたデータフレームについてのステップＳ９４の手順では、再び１９番目に受信されたデータフレーム及び２０番目に受信されたデータフレームが基準に用いられる。
【０１６９】
２１番目に受信されたデータフレームと１８番目に受信されたデータフレームとの受信間隔は４９，７００μｓ、データ値の差は１ｋｍ／ｈを超える。また、２１番目に受信されたデータフレームと１９番目に受信されたデータフレームとの受信間隔は、４９，１００μｓであるが、データ値の差は１ｋｍ／ｈ未満である。このように、２１番目に受信されたデータフレームは、１９番目に受信されたデータフレームとの関係で受信間隔及びデータ変化量が基準を満たすため、受信間隔ルールとデータ変化量ルールとの両方に適合する。
【０１７０】
この時点では、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは２０番目に受信されたデータフレーム及び２１番目に受信されたデータフレームの２つである。したがって不正発生検知部１３０は、ステップＳ９５でＹＥＳと判定してステップＳ９６に進み、不正発生をグループ設定部１４０及び不正対応部１６０に通知する（図９参照）。
【０１７１】
次のステップＳ９７では、この例では、その時刻を経過している（ステップＳ９７でＹＥＳ）と想定して、基準として用いられるデータフレームの設定が、２０番目及び２１番目に受信されたデータフレームに更新される（図示なし）。
【０１７２】
ステップＳ８４では、３番目又は５番目に受信されたデータフレームの場合と同様に、ＹＥＳと判定される。
【０１７３】
ステップＳ８５ではグループ設定部１４０が、２０番目に受信されたデータフレームを、データ値の差がより小さい１８番目に受信されたデータフレームと同じグループ１に設定する。また、２１番目に受信されたデータフレームを、データ値の差がより小さい１９番目に受信されたデータフレームと同じグループ２に設定する。
【０１７４】
次にグループ設定部１４０は、グループ１及びグループ２のそれぞれに含まれるデータフレームの個数が所定数以上であるか否か判定する（ステップＳ８６、図８参照）。この時点では、各グループに含まれるデータフレームの個数が１０個である（図１４Ｂ参照）。したがって、グループ設定部１４０は、ステップＳ８６でＹＥＳと判定する。
【０１７５】
次に監視ＥＣＵ１００では、不正データ識別部１５０が、各グループについて正常なデータフレームのグループであるか不正なデータフレームのグループであるかを識別する（ステップＳ８７、図８参照）。不正データ識別部１５０は、各グループの受信間隔の分散を算出する。図１５は、不正データ識別部１５０が算出した受信間隔の分散の例を示す。不正データ識別部１５０は、これらの分散のそれぞれと、図６に示される正常モデル保持部１９１が保持する正常モデルが示す正常なＩＤが０ｘ１００のデータフレームの受信間隔の分散との差分を比較する。この例では、不正データ識別部１５０は、正常モデルが示す分散との差分のより小さい、つまり、より正常モデルに近い分散を示すグループ１を正常なデータフレームのグループであると識別する。また、グループ２を不正なデータフレームのグループであると識別する。
【０１７６】
また不正データ識別部１５０は、不正なデータフレームのグループであるグループ２に含まれるデータフレームを基準として用いないよう設定を変更する。つまり、受信ログにおける、グループ２に含まれるデータフレームの基準の欄の値を０に設定する（ステップＳ８８、図８参照）。この例では、次に受信されるデータフレームについては、グループ１の最新のデータフレーム、つまり２０番目に受信されたデータフレームのみが基準として用いられる。図１４Ａに示される受信ログの基準の欄では、２０番目に受信されたデータフレームについてのみ１の値が入り、その他のデータフレームについては０とされている。
【０１７７】
図１４Ｂは、この時点までに受信されたデータフレームの受信間隔及びデータ値の大小関係を模式的に示す。クロスを含む丸は、ステップＳ８７で不正なデータフレームのグループと識別されたグループ２に含まれるデータフレームを示す。また、黒丸は、２１番目に受信されたデータフレームについて実行されたステップＳ８８の後、つまり、２２番目に受信されるデータフレームについての処理におけるステップＳ９５で基準として用いられるデータフレームを示す。
【０１７８】
なお、その後にグループ２に含まれるデータフレームを送信していた不正なＥＣＵから新たに送信するデータフレームは、２０番目に受信されたデータフレームのみが基準として用いる場合には、少なくともデータ変化量ルールに適合しない。つまり、いずれのデータフレームとの関係においてもルールに適合しないため、監視ＥＣＵ１００では不正なデータフレームとして扱われる。
【０１７９】
［１．１３  効果］
本実施の形態において、車載ネットワークシステム１０を流れるデータフレームを監視する監視ＥＣＵ１００では、所定のルールに適合するデータフレームが複数存在する場合に、各データフレームには、含むデータ値に基づいてグループが設定される。そして、さらに、設定したグループごとに、データフレームの受信間隔の分布に関する特徴（特徴量）を正常モデルと比較することで、当該グループが正常なデータフレームを含むグループであるかを識別する。これにより、従来では正常と不正の識別が困難であったデータフレームについて、より精度よく正常なデータフレームを識別することができ、より確実に車載ネットワークを保護することができる。
【０１８０】
［２．  変形例］
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【０１８１】
（１）上記実施の形態は、データフレームに含まれるデータ値によって、データフレームに２個のグループを設定する場合を例に用いて説明したものであり、設定されるグループは３つ以上であってもよい。また、設定されるグループの個数は、例えばグループ設定部１４０によって、所定の受信間隔の時間内に受信される同じＩＤのデータフレームの数に応じて動的に変更されてもよい。これにより、例えば車載ネットワークシステム１０に流される不正なデータフレームが、正常なデータフレームの個数に対して非常に多い場合にも対応可能となり、より効果的である。
【０１８２】
また、上記実施の形態では、２個のグループが一度に設定されているが、一時に設定されるグループは、ある時間幅の中でルールを満たす等の所定の条件を満たす一群のデータフレームに１個のみでもよく、グループが設定される都度、不正なデータフレームを含むグループであるか否かが判定されてもよい。
【０１８３】
（２）上記実施の形態は、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは、いずれも基準として用いるデータフレームに設定する場合を例に用いて説明したものであり、基準として用いるデータフレームの個数を所定の数以下に抑えてもよい。例えば、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームが３個以上存在する場合には、これらのデータフレームの中からグループ設定部１４０がランダムに、受信順に、又はデータ値間の差分等に基づいて、基準に用いるデータフレームとして２個を選択してもよい。これにより、不正発生検知部１３０による計算量の増加を抑えてより効率よく安定した処理ができる。
【０１８４】
（３）上記実施の形態は、各グループに含まれるデータフレームが２０個又は１０個以上のときに、不正なデータフレームを含むグループか否かの判断が実行される（ステップＳ８６）場合を例に用いて説明したものである。ただし、不正データ識別部１５０がこの判断を行うときに各グループに含まれるデータフレームの個数はこれらに限定されず、多くても少なくてもよい。不正なデータフレームを含むグループの識別の処理は、各グループに含まれるデータフレームの個数が少なければ、より高速な処理が可能である。その一方で、各グループに含まれるデータフレームの個数が多ければ、より高い精度の識別が期待できる。このようなグループあたりのデータフレームの個数は、例えば処理速度と、用途に応じて要求される識別の精度とのバランスを考慮して決定されてもよい。
【０１８５】
また、上記実施の形態は、不正データ識別部１５０が不正なデータフレームを含むグループの識別を開始する条件に、各グループに含まれるデータフレームの個数を用いる場合を例に用いて説明したものであり、この条件には、このようなデータフレームの個数以外のものが用いられてもよい。不正データ識別部１５０は、例えば、各グループに含まれるデータフレームのデータ値の平均の差が所定の値を超えた場合に、不正なデータフレームの識別を実行してもよい。また、グループが３個以上ある場合には、例えば各グループ間でのデータ値の平均の差の中で最大のもの、又は最小のものが所定の値を超えた場合に不正なデータフレームの識別を実行してもよい。
【０１８６】
または、各グループに含まれる最新のデータフレームのデータ値間の差が所定の値を超えた場合に、不正なデータフレームの識別を実行してもよい。これらの場合に用いられる所定の値は、同一ＩＤのデータフレームのデータ値の差が大きいことが車両の動作に悪影響を及ぼさない範囲で選択して決定される。
【０１８７】
これにより、車両の動作に影響が及ばない程度であればデータフレームを蓄積することが可能となる。したがって、車両の動作に影響が及ぶ前に不正なデータフレームを含むグループを識別でき、かつ、識別精度の向上が期待できる。
【０１８８】
また、上記のような開始の条件が満たされた後に不正なデータフレームを含むグループであるかの識別を実行したものの、例えばデータフレームの受信間隔の分散の差が所定の値よりも小さいなどの理由で、不正なデータフレームを含むグループであると識別しなかった場合には、さらにデータフレームの収集を継続してグループに追加してから再度識別が実行されてもよい。
【０１８９】
これにより、不正であるか否かの識別が所望の精度で実行するのに要する数までデータフレームを収集することができる。
【０１９０】
（４）上記実施の形態は、各グループに含まれるデータフレームの個数が所定の数に達すると、不正なデータフレームを含むグループであるか否かの識別が、正常モデルとの比較の１回の結果に基づいて実行されている場合を例に用いて説明されているが、これに限定されない。
【０１９１】
例えば、１回の比較の結果が不正なデータフレームを含むグループであることを示す場合、データフレームを引き続き受信してから判定を繰り返し実施し、同じグループが所定の回数、例えば３回連続して不正だと判定した場合に、当該グループを不正なデータフレームのグループと識別してもよい。
【０１９２】
これにより、不正なデータフレームを含むグループであるかの識別がより慎重に実行されることで、識別精度の向上が期待できる。
【０１９３】
（５）上記実施の形態は、受信ログにフレーム情報が記録されているデータフレームに対して、グループ設定部１４０によって設定された各グループに含まれるデータフレームの数がカウントされる場合を例に用いて説明したものである。しかしながら、各グループに含まれるデータフレームの個数の上限をあらかじめ定めておき、データフレームが受信されるたびにＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）バッファを用いて各グループに含まれるデータフレームを更新してもよい。これにより、データフレームは古いものから順に自動的にグループから除去されてその影響が小さくなり、識別の精度向上に効果的である。
【０１９４】
（６）上記実施の形態は、データフレームへのグループの設定方法として、前回の基準として用いられたデータフレームのデータ値と、現在の基準であるデータフレームのデータ値の２乗誤差が最小となる組み合わせが同じグループに設定される例を用いて説明したものである。しかしながら、データフレームへのグループの設定方法はこの例に限定されない。例えば、前回の基準として用いられたデータフレームと、前回よりさらに１つ前、すなわち、前々回の基準として用いられたデータフレームを用いて、１つ前及び２つ前に各グループが設定されたデータフレーム間のデータ値の差から現在のデータ値を予測し、予測に最も近いデータ値のデータフレームを当該グループに設定してもよい。または、Ｋ−ｍｅａｎｓ法や、ＤＢＳＣＡＮ（Ｄｅｎｓｉｔｙ−Ｂａｓｅｄ  Ｓｐａｔｉａｌ  Ｃｌｕｓｔｅｒｉｎｇ  ｏｆ  Ａｐｐｌｉｃａｔｉｏｎｓ  ｗｉｔｈ  Ｎｏｉｓｅ）などの既知の各種のクラスタリング手法を用いてデータフレームにグループを設定してもよい。
【０１９５】
（７）上記実施の形態では、受信間隔の分布に関する特徴量として受信間隔の分散が用いられているが、これに限定されない。例えば、受信間隔の最大値や最小値、標準偏差等の他の統計量が用いられてもよい。また、正常モデルとしても、受信間隔の分散が用いられているが、これに限らず他の統計量が正常モデルとして用いられてもよい。例えば、受信間隔の最大値や最小値、標準偏差が用いられてもよい。
【０１９６】
（８）上記実施の形態では、正常モデルに示される特徴量とより近い特徴量を示すグループを正常なデータフレームを含むグループとして識別しているが、正常モデルはこれに限定されない。正常モデルは正常なデータフレームの特徴を示すものであればよく、例えば正常モデルとして、過去に正常と判定されたグループに含まれるデータフレーム、又は仕様で規定されている正常な受信間隔のデータが正常モデル保持部１９１に保持されてもよい。そして、不正データ識別部１５０は、正常モデルのデータが示す受信間隔と識別対象のデータフレームのグループの受信間隔との密度比推定を介した異常度をデータフレーム間の受信間隔の分布に関する特徴量として算出し、不正なデータフレームを含むグループであるかの判定がなされてもよい。この場合、不正データ識別部１５０は、異常度に基づいて正常又は不正なデータフレームの識別を実行する。
【０１９７】
これにより、受信間隔の集合から求まる統計量からではなく、正常な受信間隔との確率分布の差異からデータフレームのグループの不正を判定することが可能となり、識別の可能性が高まる。例えば、識別対象のグループに含まれるデータフレームが単独又は比較的少数であっても、その受信間隔から、正常又は不正なデータフレームを含むグループの識別をより精度よく実行することができる。
【０１９８】
また、正常モデルの別の例をさらに挙げると、正常なデータフレームの受信間隔の時系列データから求めた自己回帰係数を示すものであってもよい。この場合、正常なデータフレームの識別は、グループごとに、グループに含まれるデータフレームの受信間隔の時系列データ、つまりフレーム情報から自己回帰係数を用いて予測される予測受信間隔と、当該グループに含まれる最新のデータフレームの実際の受信間隔との誤差である予測誤差を算出し、予測誤差が最も小さいものが正常なデータフレームを含むグループと識別されてもよい。
【０１９９】
これにより、受信間隔の時系列モデルに沿った出現確率に基づいて正常なデータフレームのグループを判定することが可能となり、識別の可能性が高まる。
【０２００】
また、正常なデータフレームのグループの識別には機械学習を用いる方法が利用されてもよい。
【０２０１】
例を挙げると、各グループに含まれるデータフレーム間の受信間隔についてのベクトル（以下、受信間隔ベクトルという）を主成分分析又はオートエンコーダなどを用いて次元削減した結果が用いられてもよい。例えばあるグループに含まれるデータフレームが１０個ある場合、９個の受信間隔を要素とする９次元のベクトルが利用可能であり、次元削減の対象とすることができる。そして復元後の再構成誤差が小さいデータフレームのグループが正常なデータフレームを含むグループと識別されてもよい。
【０２０２】
なお、上記のような受信間隔ベクトルは、機械学習を用いる方法に限らず利用されてもよい。例えば、受信間隔ルールは正常なデータフレーム間の受信間隔についての受信間隔ベクトル（正常受信間隔ベクトル）の分散等の特徴量に関する規定であってもよい。この場合、不正データ識別部１５０は、例えば、受信間隔ルールが示す正常受信間隔ベクトルの分散と、識別対象のデータフレームの受信間隔ベクトルの分散との差に基づいて識別を実行する。
【０２０３】
機械学習を用いる方法の別の例を挙げると、あらかじめ不正なデータフレームを正常なデータフレーム近傍に注入した受信間隔のデータを不正なデータフレームのグループのラベルとして学習させたランダムフォレスト（Ｒａｎｄｏｍ  Ｆｏｒｅｓｔ）、又はサポートベクターマシン（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）などの識別器が用いられてもよい。
【０２０４】
（９）上記実施の形態及びその変形例では、データフレームに含まれるデータ値によって、データフレームにグループを設定した後に、グループごとのデータフレームの受信間隔から算出される特徴（受信間隔に関する特徴量）を用いて不正なデータフレームを含むグループを識別している。しかしながら、データフレームにグループを設定することなく、複数のデータフレームの受信間隔の分布の特徴量に基づいて不正なデータフレームの存否が判定されてもよい。
【０２０５】
これにより、ネットワークに正常なデータフレームが送信されずに不正なデータフレームのみが送信される状況においても、データフレームの受信間隔を用いて不正なデータフレームが送信されていることを検知することができ、車載ネットワークを効果的に保護することができる。このような状況は、例えば攻撃によって送信されるデータフレームによって正常なデータフレームが置換される場合に発生し得る。
【０２０６】
ＣＡＮのような仕様のネットワークでは、ＩＤで識別されるデータの種類（内容）ごとにデータフレームの送信の周期がほぼ一定であり、攻撃のためのデータフレームもその周期から許容範囲内の誤差で送信される必要がある。しかしながら、データフレームの実際の送信の周期には、ＥＣＵの個体差又は処理内容によって差が生じる。したがって、実際に送信されたデータフレームのサンプルから統計的に得られる、データフレームの受信間隔の分布に関する特徴量は、攻撃者にとって偽装が困難である。したがって、受信間隔に関する特徴量を利用する攻撃対策は、攻撃者に回避されにくい。これにより、より確実に車載ネットワークを保護することができる。
【０２０７】
（１０）上記実施の形態では、不正を検知した監視ＥＣＵ１００の動作として、不正を通知するデータフレームを他のＥＣＵ等に送信する例を示したが、これに限定されない。例えば監視ＥＣＵ１００は、データフレームの受信中に不正検知を行い、受信間隔ルール及びデータ変化量ルールのいずれかに適合しないデータフレームをエラーフレームの送信により無効化してもよい。
【０２０８】
また車載ネットワークがゲートウェイＥＣＵを含む場合、監視ＥＣＵ１００と同等の監視機能をゲートウェイＥＣＵに追加してもよい。このゲートウェイＥＣＵは、ルールに適合しないデータフレームを転送しないという動作をしてもよい。このようにゲートウェイＥＣＵに監視機能を追加することで、より多数の車載ネットワークの情報を監視できる。したがって、実現できる機能の幅が広がり、また、効率的な監視が可能である。
【０２０９】
また、不正を検知した監視ＥＣＵ１００の動作の他の例として、不正を検知したことのユーザへの通知、車両のフェールセーフモードへの移行、検知した不正のログへの記録、携帯電話網などを通じての検知した不正の、車外にあるクラウドサーバ等への通知が挙げられる。
【０２１０】
これにより、不正を検知した後の、ユーザ又は車載ネットワークシステム１０と連携するシステム等による柔軟な対応が可能となる。また、不正なデータフレームを含むグループについて、データ値又は受信間隔情報といったフレーム情報の集合が不正の指標となるラベルとして機械学習に用いられてもよい。
【０２１１】
（１１）上記実施の形態は、ステップＳ８８で基準となるデータフレームを設定し直し、このデータフレームを基準に用いて以降の不正の発生検知の処理（ステップＳ８３）をしていたが、これに限定されない。例えば、ステップＳ８８の処理に代えて、その後に受信する各データフレームについて、そのデータ値に基づいて、ステップＳ８７で識別された不正なデータフレームを含むグループに属するか否かが判定されてもよい（データフレーム判定ステップ）。例えばこの判定の結果がＹＥＳであるデータフレームは、ゲートウェイで転送されない対象として扱われてもよい。
【０２１２】
または、データフレーム判定ステップでは、受信する各データフレームについて、ステップＳ８７で識別された不正なデータフレームを含まないグループ（正常なデータフレームのグループ）に属するか否かが判定されてもよく、例えば、この判定の結果がＹＥＳであるデータフレームのみがゲートウェイでの転送の対象として扱われてもよい。
【０２１３】
これにより、個々のデータフレームの正常又は不正の判定によるフィルタリングが可能になる。
【０２１４】
（１２）上記実施の形態は、ＣＡＮプロトコルの標準フォーマットにおけるＩＤの例を示して説明したが、ＣＡＮプロトコルの拡張フォーマットのＩＤであってもよい。
【０２１５】
（１３）上記実施の形態は、受信ログには各データフレームのフレーム情報に、受信間隔情報として受信時刻が含まれ、データフレーム間の実際の受信間隔はこの受信時刻の差を算出することで取得される場合を例に説明されているがこれに限定されない。例えば受信ログには、受信時刻に代えて、直前のデータフレームとの受信時刻の差の計算結果が受信間隔情報として含まれてもよく、監視ＥＣＵ１００では、この計算結果である受信間隔情報が不正発生検知部１３０によって取得されてそのまま用いられてもよい。
【０２１６】
（１４）上記実施の形態は、１つのＩＤ「０ｘ１００」について保持されるデータフレームの受信ログ、正常モデル、受信間隔ルール、及びデータ変化量ルールを用いて説明したが、監視ＥＣＵ１００では、これらは、それぞれ１つ以上のＩＤについて保持されてもよい。例えば、監視対象であるデータフレームの全てのＩＤの各々について保持されてもよい。
【０２１７】
また、通信の仕様でデータフレームに複数の種類がない場合、又は種類は複数あっても受信間隔及びデータ変化量の正常範囲が共通であることが既知な場合には、受信ログにＩＤを含めなくてもよい。
【０２１８】
（１５）上記実施の形態では、データフレームは平文でバス３００に流される例を示したが、データフレームは、暗号化されてからバスに送信されてもよい。また、データフレームにメッセージ認証コードを含んでいてもよい。
【０２１９】
（１６）上記実施の形態では、正常モデル及び受信ログは、それぞれ正常モデル保持部１９１、受信ログ保持部１８０に平文で保持されている例を示したが、暗号化されていてもよい。
【０２２０】
（１７）上記実施の形態では、車載ネットワークとしてＣＡＮプロトコルを用いていたが、これに限るものではない。例えば、ＣＡＮ−ＦＤ（ＣＡＮ  ｗｉｔｈ  Ｆｌｅｘｉｂｌｅ  Ｄａｔａ−Ｒａｔｅ）、ＦｌｅｘＲａｙ、Ｅｔｈｅｒｎｅｔ（登録商標）、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）、ＭＯＳＴ（Ｍｅｄｉａ  Ｏｒｉｅｎｔｅｄ  Ｓｙｓｔｅｍｓ  Ｔｒａｎｓｐｏｒｔ）などを用いてもよい。あるいはこれらのネットワークをサブネットワークとして、ＣＡＮと組み合わせたネットワークであってもよい。
【０２２１】
（１８）上記実施の形態では、不正発生検知部１３０、グループ設定部１４０、不正データ識別部１５０、及び各種のデータを保持する記憶装置を構成要素として含む監視ＥＣＵ１００を説明しているが、全ての構成要素が一の装置に備えられる必要はない。例えば、不正発生検知部１３０、グループ設定部１４０、不正データ識別部１５０、又は記憶装置は、車外のクラウドサーバに備えられてもよい。例えばこれらの構成要素を備えるクラウドサーバでは、車載ネットワークシステムが接続可能な携帯電話回線網等の無線通信網を通じて監視ＥＣＵ１００のフレーム収集部１２０から受け取ったデータが、記憶装置上で実現される受信ログ保持部１８０に記録される。また、不正発生検知部１３０、グループ設定部１４０、及び不正データ識別部１５０は、受信ログ保持部１８０に保持される受信ログの読み書きをする。一方、監視ＥＣＵ１００では、クラウドサーバの不正発生検知部１３０から無線通信網を通じて不正の発生の通知を受けると、不正対応部１６０がフレーム生成部１７０へデータフレームの生成を要求する。
【０２２２】
なお、このような変形的な実施の形態も包含して、本発明は１台以上の情報処理装置を含む情報処理システムとして実現され得る。
【０２２３】
（１９）上記の実施の形態における各ＥＣＵは、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。ＲＡＭ又はハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各ＥＣＵは、その機能を実現する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０２２４】
（２０）上記実施の形態における各ＥＣＵは、構成の一部又は全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０２２５】
また、上記の各ＥＣＵを構成する各構成要素は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
【０２２６】
また、ここでは、各ＥＣＵの構成をシステムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０２２７】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０２２８】
（２１）上記の各ＥＣＵを構成の一部又は全部は、各ＥＣＵに脱着可能なＩＣカード又は単体のモジュールから構成されているとしてもよい。ＩＣカード又はモジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。ＩＣカード又はモジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ＩＣカード又はモジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
【０２２９】
（２２）本発明は、上記に示すステップを含む方法であるとしてもよい。例えば、監視ＥＣＵ１００の各構成要素が実行する処理の内容を手順として含む方法として実現され得る。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０２３０】
また、本発明は、コンピュータプログラム又はデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。
【０２３１】
また、本発明は、コンピュータプログラム又はデジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０２３２】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
【０２３３】
また、プログラム又はデジタル信号を記録媒体に記録して移送することにより、又はプログラムまたはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０２３４】
（２３）上記実施の形態及び上記変形例をそれぞれ組み合わせてもよい。
【０２３５】
以上、上記のいずれの実施の形態又はその変形例を用いて説明された本発明の情報処理システム等は、車載ネットワークを流れるデータフレームを監視し、ルールに適合するデータフレームが複数送信された場合でも、受信間隔の分布に関する特徴に基づいて不正なデータフレームの存否を判定することができる。また、受信したデータフレームに、データ値に基づいてグループを設定し、受信間隔の分布に関する特徴量を設定したグループごとに取得して正常モデルと比較することで、正常なデータフレームのグループを識別することができる。これにより、従来は正常か不正の識別が困難であったルールに適合する複数のデータフレームについても、精度よく、正常又は不正なデータフレームのグループであるか否かの識別、又は受信した複数のデータフレームの中に不正なデータフレームが含まれているか否かの判定をすることができ、より確実な車載ネットワークの保護が可能となる。
【０２３６】
なお、本願の記載では、複数のデータフレームの中の不正なデータフレームの存否を判定する、との表現は、複数のデータフレーム中の各々が正常又は不正であるか否かであるかに基づく識別、及び複数のデータフレーム中にひとつでも不正なデータフレームが含まれているか否かに基づく正常又は不正の判定のいずれの場合も指し得る意味で用いている。
【産業上の利用可能性】
【０２３７】
本発明は、車載ネットワークを含む車載ネットワークシステム等に利用可能である。
【符号の説明】
【０２３８】
１０  車載ネットワークシステム
１００  監視ＥＣＵ
１１０  フレーム送受信部
１２０  フレーム収集部
１３０  不正発生検知部
１４０  グループ設定部
１５０  不正データ識別部
１６０  不正対応部
１７０  フレーム生成部
１８０  受信ログ保持部
１９０  ルール保持部
１９１  正常モデル保持部
２００ａ、２００ｂ  ＥＣＵ
２０１  フレーム送受信部
２０２  フレーム処理部
２０３  外部機器入出力部
２０４  フレーム生成部
２１０  速度センサ
２２０  メータ
３００  バス
【図１】
2018152842.tif 000003
【図２】
2018152842.tif 000004
【図３】
2018152842.tif 000005
【図４】
2018152842.tif 000006
【図５】
2018152842.tif 000007
【図６】
2018152842.tif 000008
【図７】
2018152842.tif 000009
【図８】
2018152842.tif 000010
【図９】
2018152842.tif 000011
【図１０】
2018152842.tif 000012
【図１１】
2018152842.tif 000013
【図１２Ａ】
2018152842.tif 000014
【図１２Ｂ】
2018152842.tif 000015
【図１３Ａ】
2018152842.tif 000016
【図１３Ｂ】
2018152842.tif 000017
【図１４Ａ】
2018152842.tif 000018
【図１４Ｂ】
2018152842.tif 000019
【図１５】
2018152842.tif 000020