(57)【要約】【課題】ネットワーク上での攻撃を検知する精度を向上させる。【解決手段】攻撃検知装置は、受信部、予測部、カウント部、及び判定部を備える。受信部は、識別情報を含むメッセージを受信する。予測部は、所定のモニタ期間内に受信部が受信するメッセージの個数をメッセージの識別情報に対応する送信周期に基づいて予測する。カウント部は、モニタ期間内に受信部が受信したメッセージの個数をカウントする。判定部は、予測部により得られる予測値、予測値に早着許容値を加算することで得られる参照値、およびカウント部により得られるカウント値を用いてネットワークが攻撃されたか否かを判定する。判定部は、カウント値が予測値よりも大きく且つ参照値以下である状態を検出したときは、早着許容値に対応する早着猶予期間が経過した後に、カウント値と予測値との比較の結果に基づいてネットワークが攻撃されたか否かを判定する。【選択図】図４
2019126004.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内で送信される識別情報を含むメッセージを受信する受信部と、
所定のモニタ期間内に前記受信部が受信するメッセージの個数を前記メッセージの前記識別情報に対応する送信周期に基づいて予測する予測部と、
前記モニタ期間内に前記受信部が受信したメッセージの個数をカウントするカウント部と、
前記予測部により得られる予測値、前記予測値に予め指定される早着許容値を加算することで得られる第１の参照値、および前記カウント部により得られるカウント値を用いて、前記ネットワークが攻撃されたか否かを判定する判定部と、を備え、
前記判定部は、前記カウント値が前記予測値よりも大きく且つ前記第１の参照値以下である状態を検出したときは、前記早着許容値に対応する早着猶予期間が経過した後に、前記カウント値と前記予測値との比較の結果に基づいて、前記ネットワークが攻撃されたか否かを判定する
ことを特徴とする攻撃検知措置。
【請求項２】
前記早着猶予期間は、前記周期を単位とする整数で表され、
前記判定部は、
前記カウント値が前記予測値以下であるときは、警告フラグをオフ状態に設定し、
前記カウント値が前記予測値よりも大きく且つ前記第１の参照値以下であり、且つ、前記警告フラグがオフ状態であるときは、前記予測値を開始値として記録すると共に、前記警告フラグをオフ状態からオン状態に変更し、
前記カウント値が前記予測値よりも大きく且つ前記第１の参照値以下であり、且つ、前記警告フラグがオン状態であり、且つ、前記予測値が前記開始値に前記早着猶予期間を加算することで得られる第２の参照値よりも大きいときは、前記ネットワークが攻撃されたと判定する
ことを特徴とする請求項１に記載の攻撃検知装置。
【請求項３】
前記早着猶予期間は、前記周期を単位として表され、
前記判定部は、
前記カウント値が前記予測値以下であるときは、警告フラグをオフ状態に設定し、
前記カウント値が前記予測値よりも大きく且つ前記第１の参照値以下であり、且つ、前記警告フラグがオフ状態であるときは、前記予測値を開始値として記録すると共に、前記警告フラグをオフ状態からオン状態に変更し、
前記カウント値が前記予測値よりも大きく且つ前記第１の参照値以下であり、且つ、前記警告フラグがオン状態であり、且つ、前記カウント値が前記開始値に前記早着猶予期間を加算することで得られる第２の参照値よりも大きいときは、前記ネットワークが攻撃されたと判定する
ことを特徴とする請求項１に記載の攻撃検知装置。
【請求項４】
ネットワーク内で送信される識別情報を含むメッセージを受信する受信部と、
所定のモニタ期間内に前記受信部が受信するメッセージの個数を前記メッセージの前記識別情報に対応する送信周期に基づいて予測する予測部と、
前記モニタ期間内に前記受信部が受信したメッセージの個数をカウントするカウント部と、
前記予測部により得られる予測値と前記カウント部により得られるカウント値との比較の結果に基づいて、前記ネットワークが攻撃されたか否かを判定する判定部と、を備え、
前記判定部は、
前記カウント値が前記予測値以下であるときは、警告フラグをオフ状態に設定し、
前記カウント値が前記予測値に１を加算することで得られる参照値と一致し、且つ、前記警告フラグがオフ状態であるときは、前記警告フラグをオフ状態からオン状態に変更し、
前記カウント値が前記参照値と一致し、且つ、前記警告フラグがオン状態であるときは、前記ネットワークが攻撃されたと判定する
ことを特徴とする攻撃検知装置。
【請求項５】
前記判定部は、前記ネットワークが攻撃されたと判定したときは、前記カウント値を１だけ減算すると共に、前記警告フラグをオン状態からオフ状態に変更する
ことを特徴とする請求項４に記載の攻撃検知装置。
【請求項６】
前記カウント値が前記参照値よりも大きいときは、前記判定部は、前記ネットワークが攻撃されたと判定する
ことを特徴とする請求項４に記載の攻撃検知装置。
【請求項７】
ネットワーク内で送信される識別情報を含むメッセージを、受信器を用いて受信し、
所定のモニタ期間内に前記受信器が受信するメッセージの個数を前記メッセージの前記識別情報に対応する送信周期に基づいて予測し、
前記モニタ期間内に前記受信器が受信したメッセージの個数をカウントし、
カウントされたメッセージの個数を表すカウント値が、予測されたメッセージの個数を表す予測値よりも大きく且つ前記予測値に予め指定される早着許容値を加算することで得られる参照値以下である状態が検出されたときは、前記早着許容値に対応する早着猶予期間が経過した後に、前記カウント値と前記予測値との比較の結果に基づいて、前記ネットワークが攻撃されたか否かを判定する
ことを特徴とする攻撃検知方法。
【請求項８】
ネットワーク内で送信される識別情報を含むメッセージを、受信器を用いて受信し、
所定のモニタ期間内に前記受信器が受信するメッセージの個数を前記メッセージの前記識別情報に対応する送信周期に基づいて予測し、
前記モニタ期間内に前記受信器が受信したメッセージの個数をカウントし、
カウントされたメッセージの個数を表すカウント値が予測されたメッセージの個数を表す予測値以下であるときは、警告フラグをオフ状態に設定し、
前記カウント値が前記予測値に１を加算することで得られる参照値と一致し、且つ、前記警告フラグがオフ状態であるときは、前記警告フラグをオフ状態からオン状態に変更し、
前記カウント値が前記参照値と一致し、且つ、前記警告フラグがオン状態であるときは、前記ネットワークが攻撃されたと判定する
ことを特徴とする攻撃検知方法。
【請求項９】
ネットワーク内で送信される識別情報を含むメッセージを、受信器を用いて受信し、
所定のモニタ期間内に前記受信器が受信するメッセージの個数を前記メッセージの前記識別情報に対応する送信周期に基づいて予測し、
前記モニタ期間内に前記受信器が受信したメッセージの個数をカウントし、
カウントされたメッセージの個数を表すカウント値が、予測されたメッセージの個数を表す予測値よりも大きく且つ前記予測値に予め指定される早着許容値を加算することで得られる参照値以下である状態が検出されたときは、前記早着許容値に対応する早着猶予期間が経過した後に、前記カウント値と前記予測値との比較の結果に基づいて、前記ネットワークが攻撃されたか否かを判定する
処理をプロセッサに実行させる攻撃検知プログラム。
【請求項１０】
ネットワーク内で送信される識別情報を含むメッセージを、受信器を用いて受信し、
所定のモニタ期間内に前記受信器が受信するメッセージの個数を前記メッセージの前記識別情報に対応する送信周期に基づいて予測し、
前記モニタ期間内に前記受信器が受信したメッセージの個数をカウントし、
カウントされたメッセージの個数を表すカウント値が予測されたメッセージの個数を表す予測値以下であるときは、警告フラグをオフ状態に設定し、
前記カウント値が前記予測値に１を加算することで得られる参照値と一致し、且つ、前記警告フラグがオフ状態であるときは、前記警告フラグをオフ状態からオン状態に変更し、
前記カウント値が前記参照値と一致し、且つ、前記警告フラグがオン状態であるときは、前記ネットワークが攻撃されたと判定する
処理をプロセッサに実行させる攻撃検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、攻撃検知装置および攻撃検知方法に係わる。
【背景技術】
【０００２】
自動車の車載ネットワークにおいて、ＣＡＮ（Controller Area Network）と呼ばれるネットワーク技術が使用されることがある。ＣＡＮを使用するネットワークにおいては、各ノードにＥＣＵ（electronic control unit）が実装される。
【０００３】
ＥＣＵから送信されるメッセージには、識別情報（ＩＤ）が付与されている。このメッセージは、ネットワーク内のＥＣＵにブロードキャストされる。ここで、各ＥＣＵは、自分が取得すべきメッセージのＩＤを認識している。そして、各ＥＣＵは、受信メッセージのＩＤをチェックすることにより、必要なメッセージを取得する。
【０００４】
上記構成のＣＡＮシステムにおいて、悪意ある第３者によりＥＣＵが乗っ取られ、そのＥＣＵから悪意あるメッセージが出力される攻撃が行われることがある。例えば、ＣＡＮシステムにおいて使用されるＩＤが、悪意あるメッセージに付与される。そうすると、そのメッセージを受信したＥＣＵは、意図しない処理を実行するおそれがある。
【０００５】
ところで、多くのＣＡＮシステムにおいて、ＥＣＵは、所定の周期でメッセージを出力する。したがって、メッセージが出力される周期が既知であるケースでは、各ＥＣＵは、メッセージの到着予定時刻と実際の到着時刻とを比較することにより、悪意のあるメッセージを検出できる。
【０００６】
なお、データフレームの送信周期に係わる所定ルールに適合しないデータフレームを受信すると、データフレーム中の特定識別子を検証して、データフレームが攻撃によるものかを判定する方法が提案されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２０１５／１７０４５１号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述のＣＡＮシステムにおいて、予定時刻よりも早く正規メッセージが送信されることがある。すなわち、各ＥＣＵにおいて、到着予定時刻よりも早くその正規メッセージが到着することがある。この場合、メッセージの到着予定時刻と実際の到着時刻とを比較する方法では、悪意あるメッセージを正しくモニタできないことがある。例えば、予定時刻よりも早く送信された正規メッセージが悪意のメッセージと判定されるおそれがある。すなわち、メッセージの送信タイミングが予定時刻より早くなり得る環境下では、攻撃を検知する精度が低下するおそれがある。
【０００９】
本発明の１つの側面に係わる目的は、ネットワーク上での攻撃を検知する精度を向上させることである。
【課題を解決するための手段】
【００１０】
本発明の１つの態様の攻撃検知装置は、ネットワーク内で送信される識別情報を含むメッセージを受信する受信部と、所定のモニタ期間内に前記受信部が受信するメッセージの個数を前記メッセージの前記識別情報に対応する送信周期に基づいて予測する予測部と、前記モニタ期間内に前記受信部が受信したメッセージの個数をカウントするカウント部と、前記予測部により得られる予測値、前記予測値に予め指定される早着許容値を加算することで得られる参照値、および前記カウント部により得られるカウント値を用いて、前記ネットワークが攻撃されたか否かを判定する判定部と、を備える。前記判定部は、前記カウント値が前記予測値よりも大きく且つ前記参照値以下である状態を検出したときは、前記早着許容値に対応する早着猶予期間が経過した後に、前記カウント値と前記予測値との比較の結果に基づいて、前記ネットワークが攻撃されたか否かを判定する。
【発明の効果】
【００１１】
上述の態様によれば、ネットワーク上での攻撃を検知する精度が向上する。
【図面の簡単な説明】
【００１２】
【図１】攻撃検知装置が実装されるネットワークの一例を示す図である。
【図２】メッセージを伝送するフレームのフォーマットの例を示す図である。
【図３】攻撃検知方法の一例を示す図である。
【図４】本発明の実施形態に係わる攻撃検知装置の一例を示す図である。
【図５】攻撃検知装置が実装されるＥＣＵのハードウェア構成の一例を示す図である。
【図６】攻撃検知装置の動作の一例を示す図である。
【図７】メッセージ早着時に起こり得る問題の一例を示す図である。
【図８】第１の実施形態の攻撃検知方法の動作例を示す図（その１）である。
【図９】第１の実施形態の攻撃検知方法の動作例を示す図（その２）である。
【図１０】第１の実施形態の攻撃検知方法の動作例を示す図（その３）である。
【図１１】第１の実施形態の攻撃検知方法の動作例を示す図（その４）である。
【図１２】第１の実施形態の攻撃検知方法の一例を示すフローチャートである。
【図１３】第１の実施形態の判定処理の一例を示すフローチャートである。
【図１４】再設定処理の他の例を示すフローチャートである。
【図１５】再設定処理のさらに他の例を示すフローチャートである。
【図１６】第２の実施形態の攻撃検知方法の動作例を示す図（その１）である。
【図１７】第２の実施形態の攻撃検知方法の動作例を示す図（その２）である。
【図１８】第２の実施形態の攻撃検知方法の動作例を示す図（その３）である。
【図１９】第２の実施形態の攻撃検知方法の一例を示すフローチャートである。
【図２０】第２の実施形態の判定処理の一例を示すフローチャートである。
【図２１】第３の実施形態の判定処理の一例を示すフローチャートである。
【図２２】第３の実施形態の攻撃検知方法の動作例を示す図である。
【図２３】攻撃検知装置の処理についての実施例（その１）を示す図である。
【図２４】攻撃検知装置の処理についての実施例（その２）を示す図である。
【図２５】攻撃検知装置の処理についての実施例（その３）を示す図である。
【発明を実施するための形態】
【００１３】
図１は、本発明の実施形態に係わる攻撃検知装置が実装されるネットワークの一例を示す。図１に示すネットワーク１００は、複数のＥＣＵ（ＥＣＵ０〜ＥＣＵｋ）を備える。複数のＥＣＵは、バスを介して互いに接続されている。そして、この実施例では、複数のＥＣＵは、ＣＡＮ（Controller Area Network）システムを構成する。
【００１４】
各ＥＣＵは、バスを介してメッセージを送信することができる。このメッセージは、ネットワーク１００の全てのＥＣＵにブロードキャストされる。このとき、メッセージは、送信元ノードにも到着する。また、各メッセージには、識別情報（ＩＤ）が付与されている。ここで、各ＥＣＵは、自分が取得すべきメッセージのＩＤを認識している。そして、各ＥＣＵは、受信メッセージのＩＤをチェックすることにより、必要なメッセージを取得する。なお、各ＥＣＵは、「通信装置」の一例である。
【００１５】
上記ネットワーク１００において、複数のＥＣＵの中の１つに攻撃検知装置が実装される。図１に示す例では、ＥＣＵ０に攻撃検知装置が実装されるものとする。攻撃検知装置は、ネットワーク１００に対する攻撃を検知する。なお、以下の記載では、悪意あるメッセージを「攻撃メッセージ」と呼ぶことがある。
【００１６】
ＥＣＵ１〜ＥＣＵｋのうちの少なくとも１つのＥＣＵは、所定の周期でメッセージを送信する機能を備えている。図１に示す例では、ＥＣＵ１は、識別情報ID_Aを含むメッセージを所定の周期で送信し、ＥＣＵ２は、識別情報ID_Bを含むメッセージを所定の周期で送信し、ＥＣＵ３は、識別情報ID_Cを含むメッセージを所定の周期で送信する。メッセージの送信周期は、ＩＤごとに予め決められている。例えば、ＩＤ＝0x123が付与されるメッセージは１０ｍ秒間隔で送信され、ＩＤ＝0x456が付与されるメッセージは２０ｍ秒間隔で送信される。
【００１７】
なお、車載ネットワークにおいては、複数のＥＣＵは、車両を制御するために使用される。例えば、ＩＤ＝0x123が付与されるメッセージは、アクセル開度を表すデータを伝送し、ＩＤ＝0x456が付与されるメッセージは、ブレーキ踏込み角度を表すデータを伝送する。
【００１８】
ネットワーク１００において送信される各メッセージは、上述したように、ブロードキャストされる。よって、各ＥＣＵには、すべてのメッセージが到着する。なお、図１のタイミングチャートは、ＥＣＵ１〜ＥＣＵ３から送信されるメッセージがＥＣＵ０に到着する状況を示している。
【００１９】
図２は、メッセージを伝送するフレームのフォーマットの例を示す。なお、Ｆ１は、一般仕様のフレームのフォーマット例を示し、Ｆ２は、拡張仕様で使用されるフレームのフォーマット例を示す。
【００２０】
一般仕様のフレームＦ１は、ＳＯＦ（Start of Frame）、調停（arbitration）フィールド、コントロールフィールド、データフィールド、ＣＲＣフィールド、ＡＣＫフィールド、およびＥＯＦ（End of Frame）を含む。調停フィールドは、ＩＤおよびＲＴＲ（Remote Transmission Request）を含む。ＩＤは、メッセージを識別するための識別情報を表す。コントロールフィールドは、ＩＤＥ（Identifier Extension）、予約ビット、ＤＬＣ（Data Length Code）を含む。ＣＲＣフィールドは、ＣＲＣシーケンスおよびＣＲＣデリミタを含む。ＡＣＫフィールドは、ＡＣＫスロットおよびＡＣＫデリミタを含む。なお、図２において各情報要素に対して表記されている値は、ビット長を表す。例えば、ＩＤの長さは１１ビットであり、データフィールドの長さは０〜６４ビットの可変長である。
【００２１】
一般仕様のフレームＦ１と同様に、拡張仕様で使用されるフレームＦ２も、ＳＯＦ、調停フィールド、コントロールフィールド、データフィールド、ＣＲＣフィールド、ＡＣＫフィールド、ＥＯＦを含む。ただし、拡張仕様では、より多くのビット数で識別情報が表される。
【００２２】
以下の記載では、一般仕様のフレームを利用してメッセージが伝送されるものとする。ただし、本発明の実施形態に係わる攻撃検知方法は、拡張仕様のフレームを利用してメッセージが伝送されるケースにも適用される。またＣＡＮ−ＦＤと呼ばれる規格にも対応可能である。
【００２３】
図３は、攻撃検知方法の一例を示す。この例では、検知対象のＩＤを有するメッセージは、１００ｍ秒間隔で送信される。そして、攻撃検知装置は、基準メッセージＭ０を受信すると、モニタ領域を設定する。各モニタ領域の許容範囲は、±４０ｍ秒である。すなわち、基準メッセージＭ０の受信時刻に対して、モニタ領域Ｚ１は１００±４０ｍ秒に設定され、モニタ領域Ｚ２は２００±４０ｍ秒に設定され、モニタ領域Ｚ３は３００±４０ｍ秒に設定される。
【００２４】
図３（ａ）に示す例では、基準メッセージＭ０に続くメッセージＭ１、Ｍ２、Ｍ３は、それぞれ対応するモニタ領域Ｚ１、Ｚ２、Ｚ３において検出される。この場合、攻撃検知装置は、メッセージＭ１〜Ｍ３がそれぞれ正規メッセージであると判定する。なお、メッセージＭ１〜Ｍ３には、それぞれ検知対象のＩＤが付与されている。
【００２５】
図３（ｂ）に示す例では、予定時刻よりも早くメッセージＭ２が送信されてしまい、メッセージＭ２がモニタ領域Ｚ２の外で検出される。この場合、攻撃検知装置は、メッセージＭ２を攻撃メッセージと判定する。すなわち、予定時刻よりも早くメッセージが送信されると、攻撃検知装置は、正規メッセージを受信したにもかかわらず、ネットワークが攻撃されたと判定するおそれがある。なお、以下の記載では、予定時刻よりも早く攻撃検知装置にメッセージが到着する状態を「早着」と呼ぶことがある。また、予定時刻よりも早く攻撃検知装置に到着するメッセージを「早着メッセージ」と呼ぶことがある。
【００２６】
本発明の実施形態に係わる攻撃検知装置は、上述の問題を解決または抑制する機能を備える。すなわち、本発明の実施形態に係わる攻撃検知装置は、周期的に送信されるべきメッセージが予定時刻よりも早く送信されたことに起因する誤検知を抑制して、攻撃を検知する精度を向上させる機能を備える。なお、実施形態に係わる攻撃検知は、１周期以内の早着だけでなく、１周期を超える早着であっても対応可能である。
【００２７】
図４は、本発明の実施形態に係わる攻撃検知装置の一例を示す。攻撃検知装置１は、図４に示すように、受信部２、予測部３、カウント部４、判定部５、再設定制御部６を備える。受信部２は、ネットワーク１００に実装されるＥＣＵから周期的に送信されるメッセージを受信する。なお、攻撃検知装置１は、各メッセージに付与されているＩＤ毎に受信時刻を検出できる。メッセージの受信時刻は、例えば、攻撃検知装置１に実装される不図示のタイマを利用して検出される。
【００２８】
予測部３は、検出対象ＩＤに対してモニタ期間を設定する。そして、予測部３は、検出対象ＩＤの送信周期に基づいて、そのモニタ期間内に受信部２が受信すると見込まれるメッセージの個数を予測する。カウント部４は、モニタ期間内に受信部２が実際に受信したメッセージの個数をカウントする。ただし、カウント部４により得られるカウント値は、攻撃と判定したメッセージをカウントしないように補正されるようにしてもよい。
【００２９】
判定部５は、予測部３により得られる予測値、その予測値に予め指定される早着許容値を加算することで得られる参照値、およびカウント部４により得られるカウント値を用いて、ネットワーク１００が攻撃されたか否かを判定する。例えば、判定部５は、カウント値が予測値よりも大きく且つ参照値以下である状態を検出したときは、早着許容値に対応する早着猶予期間が経過した後に、カウント値と予測値との比較の結果に基づいて、ネットワーク１００が攻撃されたか否かを判定する。なお、猶予期間が経過するまでの期間については、カウント値が参照値を超えているかどうかに基づいて、ネットワーク１００が攻撃されたか否かを判定する。
【００３０】
早着許容値は、正規メッセージが予定到着時刻よりも早く攻撃検知装置１に到着したときに、その正規メッセージが攻撃メッセージであると判定されないようにするために使用される。具体的には、早着許容値は、正規メッセージと判定することを許容する、早着メッセージの最大数を表す。
【００３１】
例えば、所定の周期で送信される正規メッセージに加えて、ネットワーク１００に攻撃メッセージが入力されると、攻撃検知装置１において受信メッセージの数が予測値よりも多くなる。ところが、攻撃メッセージが入力されないときであっても、正規メッセージが予定到着時刻よりも早く攻撃検知装置１に到着すると、受信メッセージの数が一時的に予測値よりも多くなる。よって、攻撃検知の精度を高くするためには、攻撃メッセージと早着メッセージとを識別することが要求される。
【００３２】
ここで、メッセージの早着に起因して受信メッセージの数が一時的に予測値よりも多くなったときは、その後、一時的に、受信メッセージの到着頻度が低くなると考えられる。すなわち、攻撃メッセージがない場合は、早着メッセージに起因してカウント値が一時的に予測値を超えても、そのカウント値は、やがて予測値に一致すると見込まれる。具体的には、ｅ個のメッセージが予定到着時刻よりも早く到着したときは、正規メッセージの送信周期のｅ倍以上の時間が経過すれば、カウント値が予測値に一致する状態が回復すると見込まれる。
【００３３】
そこで、カウント値が予測値よりも大きく且つ「予測値＋早着許容値」以下となったときには、判定部は、警告フラグをＯＦＦ状態からＯＮ状態に変更する。そして、判定部５は、早着許容値に対応する早着猶予期間が経過した後に、カウント値と予測値との比較の結果に基づいてネットワーク１００が攻撃されたか否かを判定する。この比較の結果、カウント値が予測値以下であれば、警告フラグの原因が早着メッセージであったと推定されるので、判定部５は、ネットワーク１００が攻撃されたと判定しない。一方、早着猶予期間が経過した後においてもなおカウント値が予測値よりも大きければ、警告フラグの原因が攻撃メッセージであったと推定されるので、判定部５は、ネットワーク１００が攻撃されたと判定する。なお、早着猶予期間は、早着メッセージに起因してカウント値が予測値を超えたときから、カウント値が予測値に一致する状態が回復すると見込まれるまでの時間に相当する。
【００３４】
再設定制御部６は、所定の条件が満たされたときに、予測部３により得られる予測値およびカウント部４により得られるカウント値をそれぞれ再設定する。このとき、再設定制御部６は、次のモニタ期間を設定してもよい。
【００３５】
図５は、攻撃検知装置１が実装されるＥＣＵのハードウェア構成の一例を示す。ＥＣＵ１０は、この例では、ＣＡＮトランシーバ１１、ＣＡＮコントローラ１２、処理回路１３を含む。処理回路１３は、プロセッサ１４およびメモリ１５を含む。
【００３６】
ＣＡＮトランシーバ１１は、図２に示すフレームを送信および受信する機能を備える。ＣＡＮコントローラ１２は、ＣＡＮトランシーバ１１が受信したフレームからデータを抽出すると共に、そのフレームの受信時刻を測定する。なお、ＣＡＮコントローラ１２は、受信フレームに対してＣＲＣチェックを実行してもよい。また、ＣＡＮコントローラ１２は、送信フレームにデータを格納することができる。プロセッサ１４は、メモリ１５に格納されているプログラムを実行することにより、攻撃検知を実現する。この場合、メモリ１５には、図４に示す予測部３、カウント部４、判定部５、および再設定制御部６の機能を記述したプログラムが格納される。そして、プロセッサ１４は、このプログラムを実行することにより予測部３、カウント部４、判定部５、および再設定制御部６の機能を提供する。なお、受信部２は、例えば、ＣＡＮトランシーバ１１により実現される。
【００３７】
図６は、攻撃検知装置１の動作の一例を示す。攻撃検知装置１は、図１に示すＥＣＵ０に実装され、ネットワーク１００を攻撃する悪意あるメッセージ（すなわち、攻撃メッセージ）を検出する。なお、この例では、検知対象ＩＤが付与されたメッセージは、所定の周期で送信されるように設計されているものとする。また、ネットワーク１００において以下の通信が行われるものとする。
（１）メッセージは、欠落することはない。
（２）メッセージ送信が遅延したときは、そのメッセージは後で送信されるので、合計メッセージ数は回復する。
（３）メッセージ送信が予定時刻よりも早く行われたときは、そのメッセージは既に送信済みであり、あらためて送信されることはないので、合計メッセージ数は回復する。
【００３８】
なお、以下の記載において、「メッセージ」は、特に断らない限りは、検知対象ＩＤが付与されたメッセージを表すものとする。また、△印は、受信部２により正規メッセージが攻撃検知装置１に到着したタイミングを表す。
【００３９】
図６において、カウント値ｎは、受信部２により受信されたメッセージの個数を表し、カウント部４によりカウントされる。予測値ｘは、モニタ期間内に受信部２が受信すると見込まれるメッセージの個数を表し、予測部３により算出される。
【００４０】
予測部３は、メッセージの送信周期ＴＣに基づいてモニタ期間を設定する。モニタ期間は、基準メッセージの受信時刻に対して設定される。例えば、時刻ＴＳにおいて攻撃検知装置１に基準メッセージＭ０が到着するものとする。この場合、モニタ期間は、時刻ＴＳに対して設定される。また、モニタ期間は、１または複数のカウント領域を含む。たとえば、最初のモニタ期間ＴＳ〜ｔ(1)は、カウント領域Ｃ１から構成される。モニタ期間ＴＳ〜ｔ(2)は、カウント領域Ｃ１、Ｃ２から構成される。モニタ期間ＴＳ〜ｔ(5)は、カウント領域Ｃ１〜Ｃ５から構成される。各カウント領域の長さは、送信周期ＴＣと同じである。ただし、最初のカウント領域Ｃ１の長さは、送信周期ＴＣに「１＋ｐ」を乗算することで得られる。タイミングパラメータｐは、ゼロよりも大きく、１よりも小さい実数である。また、タイミングパラメータｐは、例えば、メッセージが遅延なく送信周期ＴＣで送信されたときに、各カウント領域の中心で受信部２が対応するメッセージを受信するように決定される。この場合、タイミングパラメータｐの値は0.5である。
【００４１】
モニタ期間は、基準メッセージＭ０の受信時刻に対して設定される。例えば、時刻ＴＳにおいて攻撃検知装置１に基準メッセージＭ０が到着するものとする。この場合、モニタ期間の終了時刻ｔ(i)は、下式で表される。
ｔ(i)＝ＴＳ＋（ｉ＋ｐ）×ＴＣ
ｉは、各モニタ期間を識別する自然数である。よって、例えば、最初のモニタ期間の終了時刻ｔ(1)はTS＋1.5TCで表され、２番目のモニタ期間の終了時刻ｔ(2)はTS＋2.5TCで表される。なお、ｐは0.5である。
【００４２】
さらに、予測部３は、モニタ期間内に受信部２が受信すると見込まれるメッセージの個数を予測する。すなわち、各モニタ期間に対してそれぞれ予測値ｘが生成される。この例では、最初のモニタ期間（時刻ＴＳ〜ｔ(1)）に対して予測値ｘとして「１」が算出され、２番目のモニタ期間（時刻ＴＳ〜ｔ(2)）に対して予測値ｘとして「２」が算出される。同様に、ｉ番目のモニタ期間（時刻ＴＳ〜ｔ(i)）に対して予測値ｘとして「ｉ」が算出される。
【００４３】
判定部５は、攻撃検知装置１にメッセージが到着する毎に、ネットワーク１００に攻撃メッセージが入力された否かを判定する。なお、以下の記載では、攻撃検知装置１に到着するメッセージ（攻撃メッセージを含む）には、検知対象ＩＤが付与されているものとする。
【００４４】
攻撃検知装置１にメッセージＭ１が到着すると、カウント値ｎがゼロから１にインクリメントされる。このとき、予測部３により算出される予測値ｘは１である。そして、判定部５は、カウント値ｎと予測値ｘとを比較する。ここで、カウント値ｎは、予測値ｘを超えていない。この場合、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。なお、図６に示す「ＯＫ」は、攻撃が検知されなかった状態を表す。
【００４５】
攻撃検知装置１にメッセージＭ２が到着すると、カウント値ｎが１から２にインクリメントされる。このとき、予測部３により算出される予測値ｘは２である。そして、判定部５は、カウント値ｎと予測値ｘとを比較する。この場合も、カウント値ｎは予測値ｘを超えていないので、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。
【００４６】
同様に、判定部５は、攻撃検知装置１にメッセージが到着する毎に、ネットワーク１００に攻撃メッセージが入力された否かを判定する。ただし、各ＥＣＵのクロックは、誤差を有する。そして、この誤差が蓄積すると、攻撃検知装置１は、各モニタ期間内で正しく受信メッセージの数をカウントできないことがある。この場合、攻撃検知装置１は、ネットワーク１００が攻撃されたか否かを正しく判定できないことがある。したがって、判定部５は、誤差の蓄積を解消するために、予測値ｘおよびカウント値ｎを定期的に再設定する機能を備える。
【００４７】
具体的には、カウント値ｎが所定の閾値ｒ以上になったときに、予測値ｘおよびカウント値ｎが再設定される。閾値ｒは、図６に示す例では、５である。そして、カウント値ｎが閾値ｒ以上になると、カウンタ値ｎは、ゼロに初期化される。予測値ｘは、「ｘ」から「ｘ−ｎ」に更新される。図６に示す例では、予測値ｘは、「５」から「ゼロ」に更新されている。ただし、予測値ｘは、ケースによっては、ゼロ以外の値に更新されることがある。
【００４８】
このように、攻撃検知装置１は、攻撃検知装置１にメッセージが到着する毎に、モニタ期間内に受信部２が受信したメッセージの個数を表すカウント値ｎとその予測値ｘとを比較する。そして、カウント値ｎが予測値ｘ以下であるときは、攻撃検知装置１は、ネットワーク１００は攻撃を受けていないと判定する。
【００４９】
ただし、上述の方法では、攻撃検知装置１に早着メッセージが到着したときに、誤検知が発生することがある。例えば、図７に示す例では、メッセージＭ４が予定到着時刻よりも早く攻撃検知装置１に到着し、時刻ｔ(3)よりも前に、カウント値ｎが３から４にインクリメントされている。このとき、予測値ｘは３である。すなわち、カウント値ｎが予測値ｘよりも大きい。この場合、メッセージＭ１〜Ｍ４が正規メッセージであるにもかかわらず、判定部５は、ネットワーク１００が攻撃されたと判定してしまう。
【００５０】
本発明の実施形態に係わる攻撃検知装置は、この問題を解決するための機能を備える。以下、本発明の第１〜第３の実施形態について記載する。
【００５１】
＜第１の実施形態＞
図８〜図１１は、第１の実施形態における攻撃検知方法の動作例を示す。△印は、正規メッセージが攻撃検知装置１に到着したタイミングを表す。▲印は、攻撃メッセージが攻撃検知装置１に到着したタイミングを表す。そして、攻撃検知装置１は、基準メッセージＭ０を受信すると、受信メッセージをカウントする処理を開始する。なお、基準メッセージＭ０は、例えば、攻撃検知処理が開始された後に最初に攻撃検知装置１に到着したメッセージである。
【００５２】
モニタ期間は、上述したように、１または複数のカウント領域から構成される。たとえば、最初のモニタ期間は、カウント領域Ｃ１から構成される。２番目のモニタ期間は、カウント領域Ｃ１〜Ｃ２から構成される。ここで、各カウント領域の長さは、メッセージの送信周期ＣＴと同じである。ただし、最初のカウント領域Ｃ１の長さは、送信周期ＣＴの１．５倍である。
【００５３】
予測値ｘは、各モニタ期間内に攻撃検知装置１に到着することが期待されるメッセージの個数を表し、予測部３により算出される。換言すれば、予測値ｘは、各カウント領域の終了時刻までに攻撃検知装置１に到着することが期待されるメッセージの個数を表す。なお、カウント値ｎが再設定されるときに、予測値ｘも再設定される。ただし、再設定において、予測値ｘは「ｘ−ｎ」に更新される。
【００５４】
カウント値ｎは、攻撃検知装置１に到着したメッセージの個数を表し、カウント部４によりカウントされる。また、カウント値ｎは、カウント値ｎが閾値ｒ以上となったときに再設定される。閾値ｒは、この実施例では５である。ただし、この実施例では、カウント値ｎは、警告フラグがＯＦＦ状態であるときにカウント値ｎが閾値ｒ以上となると再設定されるものとする。なお、再設定において、カウント値ｎはゼロに更新される。
【００５５】
図８に示す例では、攻撃メッセージは存在しない。ただし、メッセージＭ４は、予定到着時刻よりも早く攻撃検知装置１に到着している。具体的には、メッセージＭ４は、カウント領域Ｃ４に到着することが見込まれていたが、実際には、カウント領域Ｃ３に到着している。なお、攻撃検知処理の開始時において、警告フラグはＯＦＦ状態に初期化されているものとする。
【００５６】
攻撃検知装置１にメッセージＭ１が到着すると、カウント値ｎがゼロから１にインクリメントされる。また、メッセージＭ１は、カウント領域Ｃ１内に攻撃検知装置１に到着しているので、予測部３により算出される予測値ｘは１である。そして、判定部５は、カウント値ｎと予測値ｘとを比較する。ここで、カウント値ｎは、予測値ｘを超えていない。この場合、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。
【００５７】
攻撃検知装置１にメッセージＭ２が到着すると、カウント値ｎが１から２にインクリメントされる。また、メッセージＭ２は、カウント領域Ｃ２内に攻撃検知装置１に到着しているので、予測値ｘは２である。そして、判定部５は、カウント値ｎと予測値ｘとを比較する。この場合も、カウント値ｎは予測値ｘを超えていないので、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。攻撃検知装置１にメッセージＭ３が到着したときも、同様に、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。
【００５８】
攻撃検知装置１にメッセージＭ４が到着すると、カウント値ｎが３から４にインクリメントされる。ただし、メッセージＭ４は、カウント領域Ｃ３内に攻撃検知装置１に到着しているので、予測値ｘは３である。すなわち、カウント値ｎは予測値ｘよりも大きい。そうすると、判定部５は、警告フラグをチェックする。このとき、警告フラグはＯＦＦ状態である。この場合、判定部５は、警告フラグをＯＦＦ状態からＯＮ状態に変更する。ただし、判定部５は、ネットワーク１００が攻撃されたとは判定しない。
【００５９】
攻撃検知装置１にメッセージＭ５が到着すると、カウント値ｎが４から５にインクリメントされる。また、メッセージＭ５は、カウント領域Ｃ５内に攻撃検知装置１に到着しているので、予測値ｘは５である。そして、判定部５は、カウント値ｎと予測値ｘとを比較する。ここで、カウント値ｎは、予測値ｘを超えていない。よって、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。また、判定部５は、警告フラグをＯＮ状態からＯＦＦ状態に変更する。
【００６０】
このように、攻撃検知装置１に正規メッセージが早着したときは、警告フラグがＯＦＦ状態からＯＮ状態に変更される。すなわち、攻撃検知装置１は、ネットワーク１００が攻撃された可能性があると判定する。ただし、この時点では、攻撃検知装置１は、正規メッセージが早着したのか、攻撃メッセージが入力されたのかを判定しない。そして、攻撃検知装置１は、次のメッセージが予定到着時刻の近傍で到着するか否かをモニタする。図８に示す例では、攻撃検知装置１は、次のメッセージ（すなわち、メッセージＭ５）が予定到着時刻の近傍で到着している。この場合、メッセージＭ４が到着したときからメッセージＭ５が到着するまでの間に予測値が３から５へインクリメントされる。この結果、カウント値ｎは予測値ｘ以下となり、判定部５は、ネットワーク１００は攻撃されていないと判定する。すなわち、攻撃検知装置１は「警告フラグは、攻撃メッセージではなく、早着した正規メッセージに起因してＯＮ状態に設定された」と判定する。したがって、第１の実施形態によれば、正規メッセージの早着に起因する誤検知が回避または抑制される。
【００６１】
図９に示す例では、攻撃検知装置１は、図８に示すメッセージＭ１〜Ｍ１０に加えて、攻撃メッセージを受信する。なお、メッセージＭ４が攻撃検知装置１に到着したときに、カウント値ｎは３から４にインクリメントされ、また、警告フラグがＯＦＦ状態からＯＮ状態に変更される。そして、メッセージＭ４の次に攻撃メッセージＭＸが攻撃検知装置１に到着する。
【００６２】
カウント領域Ｃ４において攻撃検知装置１にメッセージＭ４が到着すると、カウント値ｎが４から５にインクリメントされる。このとき、予測部３により算出される予測値ｘは４である。即ち、カウント値ｎは、予測値ｘよりも大きい。そうすると、判定部５は、警告フラグをチェックする。このとき、警告フラグはＯＮ状態である。この場合、判定部５は、ネットワーク１００が攻撃されたと判定する。
【００６３】
このように、警告フラグがＯＮ状態であるとき受信したメッセージに起因してカウント値ｎが予測値ｘよりも大きくなると、判定部５は、ネットワーク１００が攻撃されたと判定する。すなわち、早着メッセージの後に攻撃メッセージが到着した場合、攻撃検知装置１は、その攻撃メッセージを検知することができる。
【００６４】
図１０に示す例では、メッセージＭ４〜Ｍ６が遅延している。なお、攻撃メッセージは存在しない。
【００６５】
メッセージＭ１〜Ｍ３に続いて、カウント領域Ｃ６において、メッセージＭ４〜Ｍ５が攻撃検知装置１に到着すると、カウント値ｎが３から５にインクリメントされる。このとき、予測値ｘは６である。即ち、カウント値ｎは、予測値ｘを超えていない。この場合、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。また、カウント値ｎが閾値ｒに達しているので、判定部５は、カウント値ｎおよび予測値ｘを再設定する。このとき、カウント値ｎは５からゼロに更新されが、予測値ｘは「ｘ−ｎ」に更新される。すなわち、予測値ｘは、６から１に更新される。
【００６６】
カウント領域Ｃ７においてメッセージＭ６〜Ｍ７が攻撃検知装置１に到着すると、カウント値ｎがゼロから２にインクリメントされる。一方、予測値ｘは、１から２にインクリメントされる。すなわち、カウント値ｎは、予測値ｘを超えていない。この場合、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。このように、攻撃検知装置１は、正規メッセージが遅延した場合、そのメッセージを攻撃メッセージと判定しない。
【００６７】
図１１に示す例では、メッセージＭ１とメッセージＭ２との間に攻撃メッセージが送信されている。また、メッセージＭ２〜Ｍ７は、指定された送信周期ＴＣよりも短い時間間隔で送信されている。なお、この実施例では、以下の３つの条件が満たされたときに、カウント値ｎおよび予測値ｘは再設定されるものとする。
（１）カウント値ｎが閾値ｒ以上
（２）警告フラグがＯＦＦ状態
（３）最も新しく攻撃検知装置１に到着した２個のメッセージの受信時刻の差分が、送信周期ＴＣに対して所定の誤差の範囲内（例えば、送信周期ＴＣが１０ｍ秒であり、所定の誤差が１０パーセントである場合、２個のメッセージの受信時刻の差分が９〜１１ｍ秒であることが要求される）
【００６８】
カウント領域Ｃ２において攻撃検知装置１に攻撃メッセージＭＸが到着すると、カウント値ｎが１から２にインクリメントされる。このとき、予測値ｘは２であり、カウント値ｎは、予測値ｘを超えていない。この場合、判定部５は、ネットワーク１００が攻撃されたとは判定しない。また、警告フラグもＯＦＦ状態のまま維持される。
【００６９】
カウント領域Ｃ５において、メッセージＭ２〜Ｍ４が攻撃検知装置１に到着すると、カウント値ｎが２から５にインクリメントされる。このとき、予測値ｘは５である。即ち、カウント値ｎは予測値ｘを超えていないので、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。なお、メッセージＭ４が攻撃検知装置１に到着したとき、カウント値ｎは５であり、閾値ｒに達している。ただし、メッセージＭ４、Ｍ５の受信時刻の差分が小さく、上述した条件（３）は満たされない。よって、カウント値ｎおよび予測値ｘは再設定されない。
【００７０】
カウント領域Ｃ６において、メッセージＭ５〜Ｍ６が攻撃検知装置１に到着すると、カウント値ｎが５から７にインクリメントされる。このとき、予測値ｘは６であり、カウント値ｎは予測値ｘよりも大きい。しかし、警告フラグはＯＦＦ状態なので、判定部５は、ネットワーク１００が攻撃されたとは判定しない。ただし、警告フラグは、ＯＦＦ状態からＯＮ状態に変更される。なお、このケースでも、メッセージＭ５、Ｍ６の受信時刻の差分が小さく、上述した条件（３）が満たされないので、カウント値ｎおよび予測値ｘは再設定されない。
【００７１】
カウント領域Ｃ７において、メッセージＭ７が攻撃検知装置１に到着すると、カウント値ｎが７から８にインクリメントされる。このとき、予測値ｘは７であり、カウント値ｎは予測値ｘよりも大きい。ここで、警告フラグはＯＮ状態なので、判定部５は、ネットワーク１００が攻撃されたと判定する。そうすると、判定部５は、カウント値ｎを１だけデクリメントする。また、警告フラグは、ＯＮ状態からＯＦＦ状態に変更される。なお、このケースでも、メッセージＭ６、Ｍ７の受信時刻の差分が小さく、上述した条件（３）が満たされないので、カウント値ｎおよび予測値ｘは再設定されない。
【００７２】
カウント領域Ｃ８において、メッセージＭ８が攻撃検知装置１に到着すると、カウント値ｎが７から８にインクリメントされる。このとき、予測値ｘは８であり、カウント値ｎは予測値ｘを超えていない。よって、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。なお、このケースでは、メッセージＭ７、Ｍ８の受信時刻の差分が大きく、上述した条件（３）が満たされないので、カウント値ｎおよび予測値ｘは再設定されない。
【００７３】
カウント領域Ｃ９において、メッセージＭ９が攻撃検知装置１に到着すると、カウント値ｎが８から９にインクリメントされる。このとき、予測値ｘは９であり、カウント値ｎは予測値ｘを超えていない。よって、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。なお、このケースでは、メッセージＭ８、Ｍ９の受信時刻の差分が送信周期ＴＣとほぼ同じなので、上述した条件（３）が満たされる。したがって、カウント値ｎおよび予測値ｘがそれぞれゼロに更新される。
【００７４】
図１２は、第１の実施形態の攻撃検知方法の一例を示すフローチャートである。このフローチャートの処理は、例えば、検知対象ＩＤが指定されたときに攻撃検知装置１により実行される。
【００７５】
Ｓ１において、攻撃検知装置１は、制御パラメータを取得する。制御パラメータは、検知対象ＩＤの送信周期ＴＣ、再設定を実行する周期を表す閾値ｒ、タイミングパラメータｐを含む。なお、制御パラメータは、例えば、図５に示すメモリ１５に予め格納されている。或いは、制御パラメータは、ユーザまたはネットワーク管理者から与えられる。
【００７６】
Ｓ２において、受信部２は、基準メッセージを受信する。なお、基準メッセージは、たとえば、図１２に示すフローチャートの処理が開始された後に最初に攻撃検知装置１に到着したメッセージであってもよい。このとき、受信部２は、基準メッセージの受信時刻ＲＴ(0)を記録する。
【００７７】
Ｓ３において、攻撃検知装置１は、初期化処理を実行する。即ち、カウント部４は、カウント値ｎをゼロに初期化する。予測部３は、最初のモニタ期間の終了時刻ｔ(i)を算出する。この実施例では、最初のモニタ期間の終了時刻ｔ(i)は、基準メッセージの受信時刻ＲＴ(0)に（１＋ｐ）×ＴＣを加算することにより算出される。ＴＣは検知対象ＩＤの送信周期を表し、ｐは予め決められたタイミングパラメータ（例えば、0.5）を表す。また、予測部３は、予測値ｘに１を設定する。判定部５は、警告フラグをＯＦＦ状態に設定する。
【００７８】
Ｓ４において、受信部２は、メッセージを受信する。このとき、受信部２は、このメッセージの受信時刻ＲＴ(i)を検出する。また、カウント部４は、カウント値ｎを１だけインクリメントする。
【００７９】
Ｓ５〜Ｓ６において、攻撃検知装置１は、メッセージの受信時刻ＲＴ(i)がモニタ期間の終了時刻ｔ(i)よりも前であるか判定する。そして、メッセージの受信時刻ＲＴ(i)がモニタ期間の終了時刻ｔ(i)よりも前でないときは、攻撃検知装置１は、予測値ｘを１だけインクリメントすると共に、終了時刻ｔ(i)に送信周期ＴＣを加算する。なお、Ｓ５〜Ｓ６の処理は、モニタ期間の終了時刻ｔ(i)がメッセージの受信時刻ＲＴ(i)より後ろになるまで繰返し実行される。そして、モニタ期間の終了時刻ｔ(i)がメッセージの受信時刻ＲＴ(i)よりも後ろになると、攻撃検知装置１の処理はＳ７に進む。
【００８０】
Ｓ７において、攻撃検知装置１は、ネットワーク１００が攻撃を受けたか否か（即ち、ネットワーク１００に攻撃メッセージが入力されたか否か）を判定する判定処理を実行する。判定処理は、主に、判定部５により実行される。
【００８１】
図１３は、第１の実施形態の判定処理の一例を示すフローチャートである。この判定処理は、図１２に示すＳ７に相当し、攻撃検知装置１にメッセージ（正規メッセージおよび攻撃メッセージを含む）が到着するごとに実行される。
【００８２】
Ｓ２１において、判定部５は、カウント値ｎと予測値ｘとを比較する。そして、カウント値ｎが予測値ｘ以下であれば、Ｓ２２において、判定部５は、ネットワーク１００は攻撃されていないと判定する。続いて、Ｓ２３において、判定部５は、警告フラグをＯＦＦ状態に設定する。一方、カウント値ｎが予測値ｘよりも大きいときは、Ｓ２４において、判定部５は、カウント値ｎがｘ＋１（即ち、予測値ｘに１を加算することで得られる参照値）であるか否かを判定する。
【００８３】
カウント値ｎがｘ＋１であるときは、Ｓ２５において、判定部５は、警告フラグの状態をチェックする。警告フラグがＯＦＦ状態であれば、Ｓ２６において、判定部５は、ネットワーク１００は攻撃されていないと判定する。ただし、判定部５は、Ｓ２７において、警告フラグをＯＦＦ状態からＯＮ状態に変更する。
【００８４】
一方、警告フラグがＯＮ状態であれば（Ｓ２５：Ｙｅｓ）、Ｓ２８において、判定部５は、ネットワーク１００が攻撃されたと判定する。また、判定部５は、カウント値ｎを１だけデクリメントする。この後、Ｓ２９において、判定部５は、警告フラグをＯＮ状態からＯＦＦ状態に変更する。
【００８５】
カウント値ｎがｘ＋１よりも大きいときは（Ｓ２４：Ｎｏ）、Ｓ３０において、判定部５は、ネットワーク１００が攻撃されたと判定する。また、判定部５は、カウント値ｎを１だけデクリメントする。
【００８６】
このように、カウント値ｎが予測値ｘ以下であれば、判定部５は、ネットワーク１００は攻撃されていないと判定する。また、警告フラグがＯＦＦ状態であるときに受信したメッセージに起因してカウント値ｎが予測値ｘよりも大きくなったときも、判定部５は、ネットワーク１００が攻撃されたとは判定しない。ただし、この場合、警告フラグがＯＦＦ状態からＯＮ状態に変更される。一方、警告フラグがＯＮ状態であるときに受信したメッセージに起因してカウント値ｎが予測値ｘよりも大きくなったときは、判定部５は、ネットワーク１００が攻撃されたと判定する。なお、カウント値ｎがｘ＋１よりも大きいときは、判定部５は、警告フラグの状態にかかわりなく、ネットワーク１００が攻撃されたと判定してもよい。
【００８７】
また、判定部５は、ネットワーク１００が攻撃されたと判定したときは、カウント値ｎを１だけデクリメントする。図９に示す例では、カウント領域Ｃ４において攻撃が検出されると、カウント値ｎは５から４に更新される。このように、カウント値ｎは、攻撃メッセージが検出されたときはデクリメントされる。すなわち、カウント値ｎは、正規メッセージの個数をカウントする。
【００８８】
なお、ネットワーク１００が攻撃されたと判定したときは、攻撃検知装置１は、アラーム信号を出力する。アラーム信号は、ネットワーク１００が攻撃されたことをユーザに通知する。このとき、攻撃検知装置１は、ネットワーク１００と外部ネットワークとを切断してもよい。また、ネットワーク１００が車載ネットワークである場合、攻撃検知装置１は、車両を停止するための制御信号を出力してもよい。
【００８９】
このように、攻撃検知装置１に正規メッセージが早着したときは、警告フラグがＯＦＦ状態からＯＮ状態に変更される。すなわち、攻撃検知装置１は、ネットワーク１００が攻撃された可能性があると判定する。ただし、この時点では、攻撃検知装置１は、正規メッセージが早着したのか、攻撃メッセージが入力されたのかを判定しない。そして、攻撃検知装置１は、次のメッセージが予定到着時刻の近傍において到着するのか否かをモニタする。図８に示す例では、攻撃検知装置１は、次のメッセージ（即ち、メッセージＭ５）を予定到着時刻の近傍で受信している。この場合、攻撃検知装置１は、メッセージＭ４は攻撃メッセージではなく、早着した正規メッセージであると判定する。したがって、第１の実施形態によれば、正規メッセージの早着に起因する誤検知が回避または抑制される。
【００９０】
判定処理が終了すると、攻撃検知装置１は、再設定処理を実行するか否かを決定する。すなわち、Ｓ８において、再設定制御部６は、カウント値ｎと閾値ｒとを比較する。ここで、閾値ｒは、再設定を実行する周期を表す。そして、カウント値ｎが閾値ｒよりも小さいときは、攻撃検知装置１の処理はＳ４に戻る。一方、カウント値ｎが閾値ｒ以上であれば、Ｓ９において、再設定制御部６は、警告フラグの状態をチェックする。
【００９１】
警告フラグがＯＦＦ状態であれば、Ｓ１０において、再設定制御部６は再設定処理を実行する。再設定処理では、予測値ｘは、「ｘ」から「ｘ−ｎ」に更新される。カウント値ｎは、ゼロに初期化される。次のモニタ期間の終了時刻ｔ(i)として、ＲＴ(i)＋ｐ×ＴＣが設定される。ＲＴ(i)は、受信部２が直前に受信したメッセージの受信時刻を表す。ＴＣは、検知対象ＩＤの送信周期を表し、ｐは、タイミングパラメータを表す。この後、攻撃検知装置１の処理はＳ４に戻る。
【００９２】
なお、再設定制御部６は、Ｓ９の処理を実行しなくてもよい。この場合、カウント値ｎが閾値ｒに達したときには、警告フラグの状態にかかわらず再設定処理が実行される。
【００９３】
図１４は、再設定処理の他の例を示すフローチャートである。図１４に示す手順は、図１２に示すＳ８〜Ｓ１０の代わりに実行される。すなわち、図１４に示す手順では、図１２に示すＳ８〜Ｓ１０に加えてＳ１１が実行される。なお、再設定制御部６により図１４に示す手順が実行されるときは、攻撃検知装置１は、図１２に示すＳ１において、目標受信時刻に対する許容範囲を表す情報を取得する。
【００９４】
Ｓ１１において、再設定制御部６は、Ｓ４で受信したメッセージの受信時刻ＲＴ(i)が目標受信時刻に対する許容範囲内であるか判定する。目標受信時刻は、メッセージの理想的な受信時刻を表す。理想的な受信時刻は、上述したタイミングパラメータｐが0.5である場合、各カウント領域の中心である。たとえば、図６に示す例において、カウント領域Ｃ５の開始時刻ｔ(4)および終了時刻ｔ(5)は、下式で計算される。ここで、基準時刻ＴＳが３ｍ秒であり、送信周期ＴＣが１０ｍ秒であり、タイミングパラメータｐが0.5であるものとする。
ｔ(4)＝3＋4.5×10＝48
ｔ(5)＝3＋5.5×10＝58
この場合、カウント領域Ｃ５に対する目標受信時刻は、ｔ(4)およびｔ(5)の平均であり、５３ｍ秒である。或いは、カウント領域Ｃ５に対する目標受信時刻は、カウント領域Ｃ５の終了時刻から「ｐ×ＴＣ」を減算することで算出してもよい。
【００９５】
許容範囲は、特に限定されるものではないが、例えば、送信周期ＴＣの±２０パーセントである。そして、Ｓ４で受信したメッセージの受信時刻ＲＴ(i)が目標受信時刻に対する許容範囲内であれば、再設定制御部６は、Ｓ１０の再設定処理を実行する。一方、受信時刻ＲＴ(i)が許容範囲内でなければ、Ｓ１０の再設定処理はスキップされる。
【００９６】
このように、図１４に示す手順では、カウント値ｎが閾値ｒ以上であり、且つ、警告フラグがＯＦＦ状態であり、且つ、メッセージの受信時刻が目標受信時刻に近いときに、再設定が実行される。ここで、メッセージの受信時刻が目標受信時刻に近いときは、そのメッセージは正規メッセージである可能性が高いと考えられる。したがって、図１４に示す手順によれは、攻撃メッセージに起因する再設定が回避または削減される。この結果、攻撃検知装置１の検知精度が向上する。
【００９７】
図１５は、再設定処理のさらに他の例を示すフローチャートである。図１５に示す手順は、図１４に示す手順と同様に、図１２に示すＳ８〜Ｓ１０の代わりに実行される。ただし、図１５に示す手順では、図１２に示すＳ８〜Ｓ１０に加えてＳ１２およびＳ１３が実行される。なお、再設定制御部６により図１５に示す手順が実行されるときは、攻撃検知装置１は、図１２に示すＳ１において、受信時刻の差分に対する許容範囲を表す情報を取得する。
【００９８】
Ｓ１２において、再設定制御部６は、受信部２により直前に受信された２個のメッセージの受信時刻の差分が所定の許容範囲内であるか判定する。この差分は、新たに到着したメッセージの受信時刻ＲＴ(i)から直前に到着したメッセージの受信時刻を表す基準時刻ＴＲを引算することで算出される。なお、直前に到着したメッセージの受信時刻は、基準時刻ＲＴとしてメモリに記録されているものとする。また、受信時刻の差分に対する許容範囲は、例えば、検知対象ＩＤの送信周期ＴＣに対して±２０パーセントである。この場合、許容範囲は、0.8TC〜1.2TCである。
【００９９】
直前に受信された２個のメッセージの受信時刻の差分が許容範囲内であれば、再設定制御部６は、Ｓ１０の再設定処理を実行する。一方、この差分が許容範囲内でなければ、Ｓ１０の再設定処理はスキップされる。
【０１００】
Ｓ１３において、再設定制御部６は、Ｓ４で受信したメッセージの受信時刻ＲＴ(i)を次のメッセージのための基準時刻ＲＴとして記録する。このとき、先に記録されている基準時刻ＲＴは、新たに受信したメッセージの受信時刻に更新される。なお、Ｓ１３の処理は、攻撃メッセージが検出されたか否かにかかわらず実行される。
【０１０１】
このように、図１５に示す手順では、受信部２が直前に受信した２個のメッセージの受信時刻の差分が、送信周期ＴＣとほぼ同じであるか判定される。そして、この差分が、送信周期ＴＣから大きくずれているときは、攻撃メッセージを受信したものと判定し、再設定処理を実行しない。この結果、攻撃検知アルゴリズムの動作が不安定になる状態が回避される。
【０１０２】
なお、Ｓ５においてメッセージの受信時刻ＲＴ(i)がモニタ期間の終了時刻ｔ(i)と同じまたは前であるときに、Ｓ６が実行されるようにしてもよい。また、攻撃検知装置１は、複数の検知対象ＩＤについてそれぞれ攻撃検知を実行することができる。この場合、攻撃検知装置１は、図１２に示すフローチャートの処理を並列に実行してもよい。
【０１０３】
＜第２の実施形態＞
図１６〜図１８は、第２の実施形態における攻撃検知方法の動作例を示す。△印は、正規メッセージが攻撃検知装置１に到着したタイミングを表す。▲印は、攻撃メッセージが攻撃検知装置１に到着したタイミングを表す。そして、攻撃検知装置１は、第１の実施形態と同様に、基準メッセージＭ０を受信すると、受信メッセージのカウントする処理を開始する。
【０１０４】
カウント値ｎは、第１の実施形態と同様に、攻撃検知装置１に到着したメッセージの個数を表し、カウント部４によりカウントされる。カウント値ｎは、カウント値ｎが閾値ｒ以上となり、且つ、警告フラグがＯＦＦ状態であるときにゼロに再設定される。この実施例では、閾値ｒは５である。
【０１０５】
予測値ｘは、第１の実施形態と同様に、各モニタ期間内に攻撃検知装置１に到着することが期待されるメッセージの個数を表し、予測部３により算出される。なお、カウント値ｎが再設定されるときに、予測値ｘは「ｘ−ｎ」に更新される。
【０１０６】
図１６に示す例では、攻撃メッセージは存在しない。ただし、メッセージＭ４およびＭ５は、予定到着時刻よりも早く攻撃検知装置１に到着している。具体的には、メッセージＭ４、Ｍ５は、それぞれカウント領域Ｃ４、Ｃ５に到着することが見込まれていたが、実際には、カウント領域Ｃ３に到着している。なお、攻撃検知処理の開始時において、警告フラグはＯＦＦ状態に初期化されているものとする。
【０１０７】
第１の実施形態と同様に、攻撃検知装置１にメッセージＭ１が到着すると、カウント値ｎがゼロから１にインクリメントされる。また、メッセージＭ１は、カウント領域Ｃ１において攻撃検知装置１に到着しているので、予測部３により算出される予測値ｘは１である。ここで、カウント値ｎは、予測値ｘを超えていない。この場合、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。
【０１０８】
攻撃検知装置１にメッセージＭ２が到着したときも、同様に、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。なお、カウント値ｎは、メッセージＭ２の到着により、１から２にインクリメントされる。
【０１０９】
カウント領域Ｃ３において攻撃検知装置１にメッセージＭ３〜Ｍ５が到着すると、カウント値ｎが２から５にインクリメントされる。一方、カウント領域Ｃ３においては、予測値ｘは３である。即ち、カウント値ｎは予測値ｘを超える。そうすると、判定部５は、カウント値と参照値ｋ１とを比較する。参照値ｋ１は、予測値ｘに早着許容値ｅを加算することで得られる。この実施例では、早着許容値ｅは２である。したがって、この時点での参照値ｋ１は５である。そうすると、カウント値ｎは、条件「ｘ＜ｎ≦ｋ１」を満足するので、判定部５は、警告フラグをＯＦＦ状態からＯＮ状態に変更する。ただし、判定部５は、ネットワーク１００が攻撃されたとは判定しない。
【０１１０】
更に、判定部５は、現在の予測値ｘを開始値ｓとして記録する。そして、判定部５は、この開始値ｓに早着猶予期間ｗを加算することで参照値ｋ２を得る。早着猶予期間ｗは、メッセージの送信周期ＴＣを単位として表される整数であり、この実施例では２である。なお、参照値ｋ２は、判定部５がアクセス可能なメモリに記録される。また、早着猶予期間ｗは、早着許容値ｅ以上であることが好ましく、特に、早着許容値ｅと同じであることが好ましい。
【０１１１】
開始値ｓは、メッセージの到着に起因してカウント値ｎが条件「ｘ＜ｎ≦ｋ１」を満足する状態となったタイミングに相当する。したがって、早着猶予期間ｗが早着許容値ｅ以上であるときは、開始値ｓに早着猶予期間ｗを加算することで得られる参照値ｋ２は、攻撃メッセージが存在しない場合において、カウント値ｎが予測値ｘと一致する状態が回復すると見込まれるタイミングに相当する。
【０１１２】
カウント領域Ｃ６において攻撃検知装置１にメッセージＭ６が到着すると、カウント値ｎが５から６にインクリメントされる。一方、カウント領域Ｃ６においては、予測値ｘは６である。すなわち、カウント値ｎは、予測値ｘを超えていない。よって、判定部５は、ネットワーク１００は攻撃を受けていないと判定する。また、判定部５は、警告フラグをＯＮ状態からＯＦＦ状態に変更する。
【０１１３】
さらに、カウント値ｎが閾値ｒ以上であり、且つ、警告フラグがＯＦＦ状態なので、判定部５は再設定処理を実行する。第２の実施形態では、カウント値ｎ、予測値ｘ、および開始値ｓが再設定される。カウント値ｎはゼロに更新され、予測値ｘは「ｘ−ｎ」に更新され、開始値ｓは「ｓ−ｎ」に更新される。
【０１１４】
このように、カウント値ｎが予測値ｘより大きくなると、警告フラグがＯＦＦ状態からＯＮ状態に変更される。ただし、第１の実施形態と同様に、この時点では、攻撃検知装置１は、正規メッセージが早着したのか、攻撃メッセージが入力されたのかを判定しない。そして、攻撃検知装置１は、後続のメッセージを受信したときに、正規メッセージが早着したのか、攻撃メッセージが入力されたのかを判定する。図１６に示す例では、攻撃検知装置１は、カウント領域Ｃ６において次のメッセージ（即ち、メッセージＭ６）を受信している。この場合、メッセージＭ５が到着したときからメッセージＭ６が到着するまでの間に予測値が３から６へインクリメントされる。この結果、カウント値ｎは予測値ｘ以下となり、判定部５は、ネットワーク１００は攻撃されていないと判定する。したがって、第２の実施形態においても、正規メッセージの早着に起因する誤検知が回避または抑制される。
【０１１５】
加えて、第２の実施形態では、カウント値ｎと参照値ｋ１との比較に基づいて攻撃メッセージがモニタされる。ここで、参照値ｋ１は、予測値ｘに早着許容値ｅを加算することで得られる。よって、早着メッセージの数がｅ個以下であれば、それらの早着メッセージは攻撃メッセージとは判定されない。
【０１１６】
図１７に示す例では、攻撃検知装置１は、図１６に示すメッセージＭ１〜Ｍ１０に加えて、攻撃メッセージＭＸを受信する。攻撃メッセージＭＸは、カウント領域Ｃ３において攻撃検知装置１に到着する。すなわち、早着メッセージＭ４〜Ｍ５および攻撃メッセージＭＸが同じカウント領域において攻撃検知装置１に到着する。
【０１１７】
カウント領域Ｃ３において攻撃検知装置１に攻撃メッセージＭＸおよび正規メッセージＭ３〜Ｍ５が到着すると、カウント値ｎが２から６にインクリメントされる。一方、カウント領域Ｃ３においては、予測値ｘは３である。すなわち、カウント値ｎは予測値ｘよりも大きい。そうすると、判定部５は、カウント値と参照値ｋ１とを比較する。この実施例では早着許容値ｅは２なので、参照値ｋ１は５である。すなわち、この時点で、カウント値ｎは参照値ｋ１よりも大きい。この場合、判定部５は、ネットワーク１００が攻撃されたと判定する。このように、早着許容値ｅより多くの過剰なメッセージ（上述の例では、攻撃メッセージＭＸおよび早着メッセージＭ４〜Ｍ５）が短い期間内に集中して到着すると、カウント値ｎが参照値ｋ１より大きくなり、ネットワーク１００が攻撃を受けたと判定される。
【０１１８】
図１８に示す例でも、攻撃検知装置１は、図１６に示すメッセージＭ１〜Ｍ１０に加えて、攻撃メッセージＭＸを受信する。ただし、攻撃メッセージＭＸは、カウント領域Ｃ４において攻撃検知装置１に到着する。すなわち、早着メッセージが到着したカウント領域よりも後のカウント領域において攻撃メッセージＭＸが到着する。
【０１１９】
このケースでは、カウント領域Ｃ３において攻撃検知装置１に正規メッセージＭ３〜Ｍ５が到着すると、カウント値ｎが２から５にインクリメントされる。ここで、カウント領域Ｃ３における予測値ｘは３なので、カウント値ｎは予測値ｘより大きい。そうすると、判定部５は、カウント値ｎと参照値ｋ１とを比較する。このとき、早着許容値ｅは２なので、参照値ｋ１は５である。すなわち、カウント値ｎは、条件「ｘ＜ｎ≦ｋ１」を満足するので、判定部５は、警告フラグをＯＦＦ状態からＯＮ状態に変更する。ただし、判定部５は、ネットワーク１００が攻撃を受けたとは判定しない。
【０１２０】
更に、判定部５は、現在の予測値ｘを開始値ｓとして記録する。そして、判定部５は、この開始値ｓに早着猶予期間ｗを加算することで参照値ｋ２を得る。この実施例では、早着猶予期間ｗは２である。よって、参照値ｋ２は５である。なお、参照値ｋ２は、判定部５がアクセス可能なメモリに記録される。
【０１２１】
カウント領域Ｃ４において攻撃検知装置１に攻撃メッセージＭＸが到着すると、カウント値ｎが５から６にインクリメントされる。ここで、カウント領域Ｃ４における予測値ｘは４なので、カウント値ｎは予測値ｘよりも大きい。そうすると、判定部５は、カウント値と参照値ｋ１とを比較する。参照値ｋ１は、予測値ｘに２を加算することで得られるので、６である。すなわち、カウント値ｎは、条件「ｘ＜ｎ≦ｋ１」を満足する。
【０１２２】
このとき、警告フラグはＯＮ状態である。そうすると、判定部５は、予測値ｘと参照値ｋ２とを比較する。参照値ｋ２は、カウント領域Ｃ３において算出したように５である。そして、予測値ｘ（＝４）は、参照値ｋ２以下である。この場合、判定部５は、ネットワーク１００は攻撃が受けたとは判定しない。また、判定部５は、警告フラグをＯＮ状態のまま維持する。
【０１２３】
ここで、参照値ｋ２は、上述したように、カウント値ｎが予測値ｘと一致する状態が回復すると見込まれるタイミングに相当する。よって、予測値ｘが参照値ｋ２以下であるときは、判定部５は、カウント値ｎが予測値ｘと一致する状態が未だ回復していないと判定する。しがたって、判定部５は、ネットワーク１００が攻撃されたか否かについての判定を行わない。
【０１２４】
カウント領域Ｃ６において攻撃検知装置１にメッセージＭ６が到着すると、カウント値ｎが６から７にインクリメントされる。ここで、カウント領域Ｃ６における予測値ｘは６なので、カウント値ｎは予測値ｘよりも大きい。そうすると、判定部５は、カウント値と参照値ｋ１とを比較する。参照値ｋ１は、予測値ｘに２を加算することで得られるので、８である。すなわち、カウント値ｎは、条件「ｘ＜ｎ≦ｋ１」を満足する。
【０１２５】
このとき、警告フラグはＯＮ状態である。そうすると、判定部５は、予測値ｘと参照値ｋ２とを比較する。参照値ｋ２は、カウント領域Ｃ３において算出したように５である。そして、予測値ｘ（＝６）は、参照値ｋ２よりも大きい。この場合、判定部５は、ネットワーク１００が攻撃を受けたと判定する。また、判定部５は、警告フラグをＯＮ状態からＯＦＦ状態に変更する。
【０１２６】
ここで、参照値ｋ２は、上述したように、カウント値ｎが予測値ｘと一致する状態が回復すると見込まれるタイミングに相当する。よって、予測値ｘが参照値ｋ２よりも大きくなったときは、判定部５は、カウント値ｎが予測値ｘと一致する状態が回復していると判定する。しがたって、判定部５は、ネットワーク１００が攻撃されたか否かについての判定を実行する。
【０１２７】
さらに、カウント値ｎが閾値ｒ以上であり、且つ、警告フラグがＯＦＦ状態なので、判定部５は再設定処理を実行する。第２の実施形態では、カウント値ｎ、予測値ｘ、および開始値が再設定される。カウント値ｎはゼロに更新され、予測値ｘは「ｘ−ｎ」に更新され、開始値ｓは「ｓ−ｎ」に更新される。
【０１２８】
このように、警告フラグがＯＮ状態であるときに攻撃メッセージＭＸが到着すると、カウント値ｎが予測値ｘより大きくなり（或いは、条件「ｘ＜ｎ≦ｋ１」を満足）、且つ、予測値ｘが参照値ｋ２より大きくなるので、ネットワーク１００への攻撃が検知される。ただし、ネットワーク１００への攻撃は、攻撃メッセージＭＸが到着したときに検知されるとは限らず、後続のメッセージが到着したときに検知されることもある。図１８に示す例では、カウント領域Ｃ４において攻撃メッセージが到着し、カウント領域Ｃ６において攻撃が検知されている。
【０１２９】
図１９は、第２の実施形態の攻撃検知方法の一例を示すフローチャートである。このフローチャートの処理は、例えば、検知対象ＩＤが指定されたときに攻撃検知装置１により実行される。
【０１３０】
第２の実施形態の攻撃検知方法の手順は、図１２に示す第１の実施形態の攻撃検知方法とほぼ同じである。ただし、第２の実施形態では、Ｓ１において攻撃検知装置１が取得する制御パラメータは、送信周期ＴＣ、閾値ｒ、タイミングパラメータｐに加えて、上述した早着許容値ｅおよび早着猶予期間ｗを含む。
【０１３１】
また、第２の実施形態では、図１２に示すＳ７の代わりに、Ｓ４１の判定処理が実行される。Ｓ４１の判定処理については、図２０を参照しながら後で説明する。更に、第２の実施形態では、図１２に示すＳ１０の代わりに、Ｓ４２の再設定処理が実行される。Ｓ４２の再設定処理においては、予測値ｘ、カウント値ｎ、次のモニタ期間の終了時刻ｔ(i)に加えて、開始値ｓが再設定される。開始値ｓは、再設定において「現在の開始値ｓ−カウント値ｎ」に更新される。ただし、開始値ｓは、後述する図２０のＳ５６で更新されるので、再設定処理の中で更新されなくてもよい。或いは、開始値ｓは、再設定において更新された予測値ｘと同じ値に設定されるようにしてもよい。
【０１３２】
このように、第２の実施形態においては、攻撃検知装置１に新たなメッセージが到着する毎に、Ｓ４〜Ｓ６、Ｓ４１、Ｓ８〜Ｓ９、Ｓ４２が実行され、ネットワーク１００が攻撃されたか否かが判定される。なお、第２の実施形態においても、再設定制御部６は、図１４に示すＳ１１または図１５に示すＳ１２を実行してもよい。
【０１３３】
図２０は、第２の実施形態の判定処理の一例を示すフローチャートである。この判定処理は、図１９に示すＳ４１に相当し、攻撃検知装置１にメッセージ（正規メッセージおよび攻撃メッセージを含む）が到着するごとに実行される。
【０１３４】
Ｓ５１において、判定部５は、カウント値ｎと予測値ｘとを比較する。そして、カウント値ｎが予測値ｘ以下であれば、Ｓ５２において、判定部５は、ネットワーク１００は攻撃されていないと判定する。続いて、Ｓ５３において、判定部５は、警告フラグをＯＦＦ状態に設定する。一方、カウント値ｎが予測値ｘよりも大きいときは、Ｓ５４において、カウント値ｘが条件「ｘ＜ｎ≦ｋ１」を満足するか否かを判定する。参照値ｋ１は、予測値ｘに早着許容値ｅを加算することで得られる。早着許容値ｅは、この実施例では、２以上の整数である。
【０１３５】
カウント値ｘが条件「ｘ＜ｎ≦ｋ１」を満足するときには、Ｓ５５において、判定部５は、警告フラグの状態をチェックする。警告フラグがＯＦＦ状態であれば、Ｓ５６において、判定部５は、開始値ｓを設定する。この実施例では、開始値ｓは、予測値ｘと同じ値に設定される。Ｓ５７において、判定部５は、ネットワーク１００は攻撃されていないと判定する。また、Ｓ５８において、判定部５は、警告フラグをＯＮ状態に設定する。
【０１３６】
警告フラグがＯＮ状態であれば（Ｓ５５：Ｙｅｓ）、Ｓ６１において、判定部５は、予測値ｘが参照値ｋ２よりも大きいか否かを判定する。参照値ｋ２は、開始値に早着猶予期間ｗを加算することで得られる。よって、Ｓ６１では、実質的に、警告フラグがＯＮ状態に設定されたときから早着猶予期間ｗが経過しているか否かが判定される。そして、予測値ｘが参照値ｋ２以下であれば、Ｓ６２において、判定部５は、ネットワーク１００は攻撃されていないと判定する。すなわち、警告フラグがＯＮ状態に設定されたときから早着猶予期間ｗが経過していない場合には、判定部５は、ネットワーク１００が攻撃されたか否かの判定を実行しない。この後、判定部５は、Ｓ５８において、警告フラグをＯＮ状態に設定する。
【０１３７】
予測値ｘが参照値ｋ２よりも大きいときは（Ｓ６１：Ｙｅｓ）、Ｓ６３において、判定部５は、ネットワーク１００が攻撃されたと判定する。具体的には、予測値ｘが参照値ｋ２よりも大きいときは（即ち、警告フラグがＯＮ状態に設定されたときから早着猶予期間ｗが経過した場合には）、判定部５は、ネットワーク１００が攻撃されたか否かの判定を実行する。すなわち、判定部５は、カウント値ｎと予測値ｘとを比較する。ここで、Ｓ６１が実行されるときは、カウント値ｘが条件「ｘ＜ｎ≦ｋ１」を満足しているので、カウント値ｎは予測値ｘよりも大きい。したがって、判定部５は、ネットワーク１００が攻撃されたと判定する。さらに、判定部５は、カウント値ｎを１だけデクリメントする。
【０１３８】
Ｓ６４において、判定部５は、Ｓ６３で更新されたカウント値ｎと予測値ｘとを比較する。そして、カウント値ｎが予測値ｘ以下であれば、Ｓ６５において、判定部５は、警告フラグをＯＮ状態からＯＦＦ状態に変更する。一方、カウント値ｎが予測値ｘより大きいときは、判定部５は、Ｓ５８において、警告フラグをＯＮ状態に設定する。
【０１３９】
カウント値ｎが参照値ｋ１より大きいときは（Ｓ５４：Ｎｏ）、Ｓ６６において、判定部５は、ネットワーク１００が攻撃されたと判定する。また、判定部５は、カウント値ｎを１だけデクリメントする。
【０１４０】
このように、第２の実施形態では、早着許容値ｅおよび早着猶予期間ｗを用いて攻撃の有無を判定するので、早着メッセージの数が増加しても、誤検知を回避できる。例えば、ｅ＝ｗである場合、早着メッセージの数がｅ個以下であれば、攻撃検知装置１は、ネットワーク１００が攻撃を受けたと判定しない。
【０１４１】
ただし、早着許容値ｅ及び／又は早着猶予期間ｗを大きくすると、攻撃の検知に要する時間が長くなることがある。したがって、早着許容値ｅおよび早着猶予期間ｗは、メッセージの早着を許容すべき個数と攻撃検知に要する時間の双方を考慮して決定することが好ましい。
【０１４２】
なお、第１の実施形態の攻撃検知方法は、第２の実施形態において早着許容値ｅおよび早着猶予期間ｗをそれぞれ１に設定した場合と等価である。即ち、第１の実施形態は、第２の実施形態に包含される。ただし、図１３および図２０に示すように、第１の実施形態においては、第２の実施形態と比較して処理ステップの数が少なくなるので、攻撃検知の高速化またはプロセッサの負荷の軽減が見込まれる。
【０１４３】
＜第３の実施形態＞
図２１は、第３の実施形態の判定処理の一例を示すフローチャートである。この判定処理は、図１９に示すＳ４１に相当し、攻撃検知装置１にメッセージ（正規メッセージおよび攻撃メッセージを含む）が到着するごとに実行される。すなわち、第３の実施形態の攻撃検知方法は、判定処理を除き、第２の実施形態と同じである。
【０１４４】
第３の実施形態の判定処理は、図２０に示す第２の実施形態とほぼ同じである。但し、第３の実施形態では、図２０に示すＳ６１の代わりに、Ｓ７１が実行される。
【０１４５】
Ｓ７１は、カウント値ｎが条件「ｘ＜ｎ≦ｋ１」を満足し、且つ、警告フラグがＯＮ状態であるときに実行される。Ｓ７１において、判定部５は、カウント値ｎが参照値ｋ２より大きいか否かを判定する。参照値ｋ２は、第２の実施形態と同様に、開始値に早着猶予期間ｗを加算することで得られる。そして、カウント値ｎが参照値ｋ２以下であれば、Ｓ６２において、判定部５は、ネットワーク１００は攻撃されていないと判定する。一方、カウント値ｎが参照値ｋ２よりも大きいときは（Ｓ７１：Ｙｅｓ）、Ｓ６３において、判定部５は、ネットワーク１００が攻撃されたと判定すると共に、カウント値ｎを１だけデクリメントする。
【０１４６】
図２２は、第３の実施形態における攻撃検知方法の動作例を示す。なお、メッセージＭ１〜Ｍ１０および攻撃メッセージＭＸが攻撃検知装置１に到着するタイミングは、図１８および図２２において同じである。
【０１４７】
メッセージＭ１〜Ｍ５が到着したときの攻撃検知装置１の動作は、図１８および図２２において実質的に同じである。即ち、メッセージＭ５に対する処理が終了した時点で、各パラメータは以下の通りである。
カウント値ｎ：５
予測値ｘ：３
参照値ｋ１（ｋ１＝ｘ＋２）：５
参照値ｋ２（ｋ２＝開始値ｓ＋２）：５
警告フラグ：ＯＮ
【０１４８】
カウント領域Ｃ４において攻撃検知装置１に攻撃メッセージＭＸが到着すると、カウント値ｎが５から６にインクリメントされる。ここで、カウント領域Ｃ４における予測値ｘは４なので、カウント値ｎは予測値ｘよりも大きい。そうすると、判定部５は、カウント値と参照値ｋ１とを比較する。参照値ｋ１は、予測値ｘに２を加算することで得られるので、６である。すなわち、カウント値ｎは、条件「ｘ＜ｎ≦ｋ１」を満足する。
【０１４９】
このとき、警告フラグはＯＮ状態である。そうすると、判定部５は、Ｓ７１において、カウント値ｎと参照値ｋ２とを比較する。参照値ｋ２は、カウント領域Ｃ３において算出したように５である。そして、カウント値ｎ（＝６）は、参照値ｋ２より大きい。この場合、判定部５は、ネットワーク１００が攻撃を受けたと判定する。このとき、カウント値ｎは、Ｓ６３において１だけデクリメントされる。ただし、デクリメント後のカウント値ｎは、予測値ｘより大きいので（Ｓ６４：Ｎｏ）、警告フラグはＯＮ状態のまま維持される。
【０１５０】
カウント領域Ｃ６において攻撃検知装置１にメッセージＭ６が到着すると、カウント値ｎが５から６にインクリメントされる。ここで、カウント領域Ｃ４における予測値ｘは６なので、カウント値ｎは予測値ｘ以下である。この場合、判定部５は、Ｓ５２において、ネットワーク１００は攻撃を受けていないと判定する。また、判定部５は、Ｓ５３において、警告フラグをＯＮ状態からＯＦＦ状態に変更する。
【０１５１】
このように、第３の実施形態では、警告フラグがＯＮ状態であるときに、カウント値ｎが条件「ｘ＜ｎ≦ｋ１」を満足すると、カウント値ｎと参照値ｋ２（すなわち、開始値ｓ＋ｗ）との比較に基づいて、ネットワーク１００が攻撃されたか否かが判定される。この結果、第３の実施形態の攻撃検知方法によれば、第２の実施形態と比較して、ネットワーク１００に攻撃メッセージが入力されたときから攻撃が検知されるまでの時間が短縮されることがある。例えば、図１８に示す第２の実施形態では、カウント領域Ｃ６において攻撃が検知されるが、図２２に示す第３の実施形態では、カウント領域Ｃ４において攻撃が検知されている。
【０１５２】
＜実施例１＞
図２３に示す実施例１では、第１の実施形態に従って攻撃を検知する。すなわち、攻撃検知装置１にメッセージが到着する毎に、図１２〜図１３に示すフローチャートの処理が実行される。実施例１においては以下のパラメータが使用される。
送信周期ＴＣ：１０ｍ秒
閾値ｒ：５
タイミングパラメータｐ：０．５
【０１５３】
また、メッセージＭ１〜Ｍ５、Ｍ８〜Ｍ１０は正規メッセージであり、メッセージＭ６〜Ｍ７は攻撃メッセージである。メッセージＭ５は、予定時刻よりも早く攻撃検知装置１に到着する。
【０１５４】
（１）時刻１０（＝ＲＴ(1)）においてメッセージＭ１が到着すると、攻撃検知装置１は攻撃検知を開始する。具体的には、攻撃検知装置１は、以下のようにパラメータを設定する。
モニタ期間の終了時刻ｔ(1)：２５ｍ秒（t(1)=RT(1)+1.5×10）
カウント値ｎ：ゼロ
予測値ｘ：１
警告フラグ：ＯＦＦ
【０１５５】
（２）時刻２０（＝ＲＴ(2)）においてメッセージＭ２が到着すると、カウント値ｎがゼロから１にインクリメントされる。ここで、メッセージＭ２はｔ(1)よりも前に到着しているので、予測値ｘは変化しない。そして、カウント値ｎは予測値ｘ以下なので、攻撃検知装置１は、ネットワークは攻撃されていないと判定する。なお、警告フラグは、ＯＦＦ状態を維持する。
【０１５６】
（３）時刻３０（＝ＲＴ(3)）においてメッセージＭ３が到着すると、カウント値ｎが１から２にインクリメントされる。ここで、メッセージＭ３は、ｔ(1)よりも後に到着している。よって、予測値ｘが１から２に更新される。また、下式により次のモニタ期間の終了時刻ｔ(2)が計算される。
t(2)＝t(1)+10＝35
【０１５７】
カウント値ｎは、予測値ｘ以下である。したがって、攻撃検知装置１は、ネットワークは攻撃されていないと判定する。なお、警告フラグは、ＯＦＦ状態を維持する。
【０１５８】
（４）時刻４０（＝ＲＴ(4)）においてメッセージＭ４が到着すると、カウント値ｎが２から３にインクリメントされる。ここで、メッセージＭ４は、ｔ(2)よりも後に到着している。よって、予測値ｘが２から３に更新される。また、下式により次のモニタ期間の終了時刻ｔ(3)が計算される。
t(3)＝t(2)+10＝45
【０１５９】
カウント値ｎは、予測値ｘ以下である。したがって、攻撃検知装置１は、ネットワークは攻撃されていないと判定する。なお、警告フラグは、ＯＦＦ状態を維持する。
【０１６０】
（５）時刻４２（＝ＲＴ(5)）においてメッセージＭ５が到着すると、カウント値ｎが３から４にインクリメントされる。ここで、メッセージＭ５はｔ(3)よりも前に到着しているので、予測値ｘは変化しない。すなわち、予測値ｘは３である。そうすると、カウント値ｎは条件「ｎ＝ｘ＋１」を満足するので、警告フラグがチェックされる。ここで、警告フラグはＯＦＦ状態なので、攻撃検知装置１は、ネットワークは攻撃されていないと判定する。ただし、警告フラグは、ＯＦＦ状態からＯＮ状態に変更される。
【０１６１】
（６）時刻４９（＝ＲＴ(6)）においてメッセージＭ６が到着すると、カウント値ｎが４から５にインクリメントされる。ここで、メッセージＭ６はｔ(3)よりも後に到着している。よって、予測値ｘが３から４に更新される。また、下式により次のモニタ期間の終了時刻ｔ(4)が計算される。
t(4)＝t(3)+10＝55
【０１６２】
カウント値ｎは条件「ｎ＝ｘ＋１」を満足するので、警告フラグがチェックされる。ここで、警告フラグはＯＮ状態なので、攻撃検知装置１は、ネットワークが攻撃されたと判定する。この後、カウント値ｎは５から４に更新され、警告フラグはＯＮ状態からＯＦＦ状態に変更される。
【０１６３】
（７）時刻５３（＝ＲＴ(7)）においてメッセージＭ７が到着すると、カウント値ｎが４から５にインクリメントされる。ここで、メッセージＭ７はｔ(4)よりも前に到着しているので、予測値ｘは変化しない。すなわち、予測値ｘは４である。そうすると、カウント値ｎは条件「ｎ＝ｘ＋１」を満足するので、警告フラグがチェックされる。ここで、警告フラグはＯＦＦ状態なので、攻撃検知装置１は、ネットワークは攻撃されていないと判定する。ただし、警告フラグは、ＯＦＦ状態からＯＮ状態に変更される。
【０１６４】
カウント値ｎが閾値ｒに達しているので、警告フラグがチェックされる。ただし、警告フラグはＯＮ状態なので、再設定は実行されない。
【０１６５】
（８）時刻６０（＝ＲＴ(8)）においてメッセージＭ８が到着すると、カウント値ｎが５から６にインクリメントされる。ここで、メッセージＭ８はｔ(4)よりも後に到着している。よって、予測値ｘが４から５に更新される。また、下式により次のモニタ期間の終了時刻ｔ(5)が計算される。
t(5)＝t(4)+10＝65
【０１６６】
カウント値ｎは条件「ｎ＝ｘ＋１」を満足するので、警告フラグがチェックされる。ここで、警告フラグはＯＮ状態なので、攻撃検知装置１は、ネットワークが攻撃されたと判定する。この後、カウント値ｎは６から５に更新され、警告フラグはＯＮ状態からＯＦＦ状態に変更される。
【０１６７】
カウント値ｎが閾値ｒに達しているので、警告フラグがチェックされる。ここで、警告フラグはＯＦＦ状態なので、再設定が実行される。すなわち、カウント値ｎは５からゼロに更新され、予測値ｘも５からゼロに更新される。
【０１６８】
（９）時刻７０（＝ＲＴ(9)）においてメッセージＭ９が到着すると、カウント値ｎがゼロから１にインクリメントされる。ここで、メッセージＭ９はｔ(5)よりも後に到着している。よって、予測値ｘがゼロから１に更新される。また、下式により次のモニタ期間の終了時刻ｔ(6)が計算される。
t(6)＝t(5)+10＝75
【０１６９】
カウント値ｎは、予測値ｘ以下である。したがって、攻撃検知装置１は、ネットワークは攻撃されていないと判定する。なお、警告フラグは、ＯＦＦ状態を維持する。
【０１７０】
（１０）時刻８０（＝ＲＴ(10)）においてメッセージＭ１０が到着すると、カウント値ｎが１から２にインクリメントされる。ここで、メッセージＭ１０はｔ(6)よりも後に到着している。よって、予測値ｘが１から２に更新される。また、下式により次のモニタ期間の終了時刻ｔ(7)が計算される。
t(7)＝t(6)+10＝85
【０１７１】
カウント値ｎは、予測値ｘ以下である。したがって、攻撃検知装置１は、ネットワークは攻撃されていないと判定する。なお、警告フラグは、ＯＦＦ状態を維持する。
【０１７２】
＜実施例２＞
図２４に示す実施例２では、第２の実施形態に従って攻撃を検知する。すなわち、攻撃検知装置１にメッセージが到着する毎に、図１９〜図２０に示すフローチャートの処理が実行される。実施例２においては以下のパラメータが使用される。
送信周期ＴＣ：１０ｍ秒
閾値ｒ：５
タイミングパラメータｐ：０．５
早着許容値ｅ：２
早着猶予期間ｗ：２
参照値ｋ１：予測値ｘ＋早着許容値ｅ
参照値ｋ２：開始値ｓ＋早着猶予期間ｗ
【０１７３】
なお、警告フラグがＯＦＦ状態であり、且つ、カウント値ｎが条件「ｎ＝ｘ＋１」を満足するときの予測値ｘが開始値ｓとして使用される。また、メッセージＭ１〜Ｍ６、Ｍ８〜Ｍ９は正規メッセージであり、メッセージＭ７は攻撃メッセージである。メッセージＭ５〜Ｍ６は、予定時刻よりも早く攻撃検知装置１に到着する。
【０１７４】
メッセージＭ１〜Ｍ４が到着したときの攻撃検知装置１の処理は、図２３に示す実施例１および図２４に示す実施例２において同じである。すなわち、実施例２においても、図２３を参照して説明した処理（１）〜（４）が実行される。したがって、メッセージＭ４に対する処理が終了した時点で、以下の状態が得られる。
カウント値ｎ：３
予測値ｘ：３
警告フラグ：ＯＦＦ
【０１７５】
なお、実施例２では、参照値ｋ１および参照値ｋ２が使用される。参照値ｋ１は、予測値ｘに早着許容値ｅを加算することで得られる。参照値ｋ２は、開始値ｓに早着猶予期間ｗを加算することで得られる。開始値ｓは、この実施例では、警告フラグがＯＦＦ状態であり、且つ、カウント値ｎが条件「ｎ＝ｘ＋１」を満足するときの予測値ｘと同じである。また、早着許容値ｅおよび早着猶予期間ｗは、それぞれ２である。
【０１７６】
（５）時刻４２（＝ＲＴ(5)）においてメッセージＭ５が到着すると、カウント値ｎが３から４にインクリメントされる。ここで、メッセージＭ５はｔ(3)よりも前に到着しているので、予測値ｘは変化しない。すなわち、予測値ｘは３である。そうすると、カウント値ｎが条件「ｘ＜ｎ≦ｋ１」を満足するので、警告フラグがチェックされる。ここで、警告フラグはＯＦＦ状態なので、攻撃検知装置１は、ネットワークは攻撃されていないと判定する。ただし、開始値ｓが記録される。開始値ｓは、メッセージＭ５が到着した時点での予測値ｘと同じ（すなわち、３）である。よって、この開始値ｓに早着猶予期間ｗを加算することにより、参照値ｋ２として５が得られる。さらに、警告フラグは、ＯＦＦ状態からＯＮ状態に変更される。
【０１７７】
（６）時刻４４（＝ＲＴ(6)）においてメッセージＭ６が到着すると、カウント値ｎが４から５にインクリメントされる。ここで、メッセージＭ６はｔ(3)よりも前に到着しているので、予測値ｘは変化しない。すなわち、予測値ｘは３である。そうすると、カウント値ｎが条件「ｘ＜ｎ≦ｋ１」を満足するので、警告フラグがチェックされる。ここで、警告フラグはＯＮ状態なので、予測値ｘと参照値ｋ２とが比較される。この実施例では、予測値ｘは参照値ｋ２（開始値ｓ＋ｗ）以下である。したがって、攻撃検知装置１は、ネットワークは攻撃されていないと判定する。なお、カウント値ｎが閾値ｒに達しているので、警告フラグがチェックされる。ただし、警告フラグがＯＮ状態なので、再設定は実行されない。
【０１７８】
（７）時刻５３（＝ＲＴ(7)）においてメッセージＭ７が到着すると、カウント値ｎが５から６にインクリメントされる。ここで、メッセージＭ７はｔ(3)よりも後に到着している。よって、予測値ｘが３から４に更新され、参照値ｋ１が５から６に更新される。また、下式により次のモニタ期間の終了時刻ｔ(4)が計算される。
t(4)＝t(3)+10＝55
【０１７９】
カウント値ｎが条件「ｘ＜ｎ≦ｋ１」を満足するので、警告フラグがチェックされる。ここで、警告フラグはＯＮ状態なので、予測値ｘと参照値ｋ２とが比較される。この例では、予測値ｘは参照値ｋ２（開始値ｓ＋ｗ）以下である。したがって、攻撃検知装置１は、ネットワークは攻撃されていないと判定する。なお、カウント値ｎが閾値ｒよりも大きいので、警告フラグがチェックされる。ただし、警告フラグはＯＮ状態なので、再設定は実行されない。
【０１８０】
（８）時刻７０（＝ＲＴ(8)）においてメッセージＭ８が到着すると、カウント値ｎが６から７にインクリメントされる。ここで、メッセージＭ８はｔ(4)よりも後に到着している。よって、予測値ｘが４から５に更新される。また、下式により次のモニタ期間の終了時刻ｔ(5)が計算される。
t(5)＝t(4)+10＝65
【０１８１】
しかし、メッセージＭ８はｔ(5)よりも後に到着している。よって、予測値ｘが５から６に更新される。また、下式により次のモニタ期間の終了時刻ｔ(6)が計算される。
t(6)＝t(5)+10＝75
【０１８２】
カウント値ｎが条件「ｘ＜ｎ≦ｋ１」を満足するので、警告フラグがチェックされる。ここで、警告フラグはＯＮ状態なので、予測値ｘと参照値ｋ２とが比較される。予測値ｘは６であり、参照値ｋ２（開始値ｓ＋ｗ）は５である。すなわち、予測値ｘは参照値ｋ２よりも大きい。したがって、攻撃検知装置１は、ネットワークが攻撃されたと判定する。この後、カウント値ｎは７から６に更新される。また、更新されたカウント値ｎは、予測値ｘ以下なので、警告フラグはＯＮ状態からＯＦＦ状態に変更される。
【０１８３】
カウント値ｎが閾値ｒよりも大きいので、警告フラグがチェックされる。そして、警告フラグはＯＦＦ状態なので、再設定が実行される。具体的には、カウント値ｎは６からゼロに更新され、予測値ｘは６からゼロに更新される。なお、この実施例では、モニタ期間の終了時刻ｔ(i)および開始値ｓの更新は省略されている。
【０１８４】
（９）時刻８０（＝ＲＴ(9)）においてメッセージＭ９が到着すると、カウント値ｎがゼロから１にインクリメントされる。ここで、メッセージＭ９はｔ(6)よりも後に到着している。よって、予測値ｘがゼロから１に更新される。また、下式により次のモニタ期間の終了時刻ｔ(7)が計算される。
t(7)＝t(6)+10＝85
【０１８５】
カウント値ｎは予測値ｘ以下である。したがって、攻撃検知装置１は、ネットワークは攻撃されていないと判定する。なお、警告フラグは、ＯＦＦ状態を維持する。
【０１８６】
このように、早着許容値ｅおよび早着猶予期間ｗが２であるときは、２個のメッセージが予定時刻よりも早く到着しても、攻撃検知装置１はネットワークが攻撃されたとは判定しない。その後、攻撃メッセージが入力されると、攻撃検知装置１は、ネットワークが攻撃されたと判定する。
【０１８７】
＜実施例３＞
図２５に示す実施例３では、第３の実施形態に従って攻撃を検知する。すなわち、攻撃検知装置１にメッセージが到着する毎に、図１９および図２１に示すフローチャートの処理が実行される。なお、攻撃検知装置１に与えられるパラメータは、実施例２および実施例３において同じである。また、攻撃検知装置１に到着するメッセージＭ１〜Ｍ１０も、実施例２および実施例３において同じである。
【０１８８】
メッセージＭ１〜Ｍ６が到着したときの攻撃検知装置１の処理は、図２４に示す実施例２および図２５に示す実施例３において同じである。即ち、実施例３においても、図２３〜図２４を参照して説明した処理（１）〜（６）が実行される。したがって、メッセージＭ６に対する処理が終了した時点で、以下の状態が得られる。
カウント値ｎ：５
予測値ｘ：３
警告フラグ：ＯＮ
参照値ｋ１：５
開始値ｓ：３
参照値ｋ２（開始値ｓ＋ｗ）：５
【０１８９】
（７）時刻５３（＝ＲＴ(7)）においてメッセージＭ７が到着すると、カウント値ｎが５から６にインクリメントされる。ここで、メッセージＭ７はｔ(3)よりも後に到着している。よって、予測値ｘが３から４に更新され、参照値ｋ１が５から６に更新される。また、下式により次のモニタ期間の終了時刻ｔ(4)が計算される。
t(4)＝t(3)+10＝55
【０１９０】
カウント値ｎが条件「ｘ＜ｎ≦ｋ１」を満足するので、警告フラグがチェックされる。ここで、警告フラグはＯＮ状態なので、カウント値ｎと参照値ｋ２とが比較される。この例では、カウント値ｎは６であり、参照値ｋ２は５である。すなわち、カウント値ｎは参照値ｋ２よりも大きい。したがって、攻撃検知装置１は、ネットワークが攻撃されたと判定する。この後、カウント値ｎは６から５に更新される。また、更新されたカウント値ｎは、予測値ｘ以下なので、警告フラグはＯＮ状態からＯＦＦ状態に変更される。
【０１９１】
カウント値ｎが閾値ｒよりも大きいので、警告フラグがチェックされる。そして、警告フラグはＯＦＦ状態なので、再設定が実行される。具体的には、カウント値ｎは５からゼロに更新され、予測値ｘは４から−１に更新される。なお、この実施例では、モニタ期間の終了時刻ｔ(i)および開始値ｓの更新は省略されている。
【０１９２】
（８）時刻７０（＝ＲＴ(8)）においてメッセージＭ８が到着すると、カウント値ｎがゼロから１にインクリメントされる。ここで、メッセージＭ８はｔ(4)よりも後に到着している。よって、予測値ｘが−１からゼロに更新される。また、下式により次のモニタ期間の終了時刻ｔ(5)が計算される。
t(5)＝t(4)+10＝65
【０１９３】
しかし、メッセージＭ８はｔ(5)よりも後に到着している。よって、予測値ｘがゼロから１に更新される。また、下式により次のモニタ期間の終了時刻ｔ(6)が計算される。
t(6)＝t(5)+10＝75
【０１９４】
カウント値ｎは予測値ｘ以下である。したがって、攻撃検知装置１は、ネットワークは攻撃されていないと判定する。なお、警告フラグは、ＯＦＦ状態を維持する。
【０１９５】
（９）時刻８０（＝ＲＴ(9)）においてメッセージＭ９が到着すると、カウント値ｎが１から２にインクリメントされる。ここで、メッセージＭ９はｔ(6)よりも後に到着している。よって、予測値ｘが１から２に更新される。また、下式により次のモニタ期間の終了時刻ｔ(7)が計算される。
t(7)＝t(6)+10＝85
【０１９６】
カウント値ｎは予測値ｘ以下である。したがって、攻撃検知装置１は、ネットワークは攻撃されていないと判定する。なお、警告フラグは、ＯＦＦ状態を維持する。
【０１９７】
このように、実施例２と比較すると、実施例３では、参照値ｋ２を比較するパラメータが異なる。この結果、実施例２と実施例３とでは、攻撃が検知されるタイミングが異なることがある。
【０１９８】
上述の実施例を含む実施形態に関し、さらに下記の付記を開示する。
（付記１）
ネットワーク内で送信される識別情報を含むメッセージを受信する受信部と、
所定のモニタ期間内に前記受信部が受信するメッセージの個数を前記メッセージの前記識別情報に対応する送信周期に基づいて予測する予測部と、
前記モニタ期間内に前記受信部が受信したメッセージの個数をカウントするカウント部と、
前記予測部により得られる予測値、前記予測値に予め指定される早着許容値を加算することで得られる第１の参照値、および前記カウント部により得られるカウント値を用いて、前記ネットワークが攻撃されたか否かを判定する判定部と、を備え、
前記判定部は、前記カウント値が前記予測値よりも大きく且つ前記第１の参照値以下である状態を検出したときは、前記早着許容値に対応する早着猶予期間が経過した後に、前記カウント値と前記予測値との比較の結果に基づいて、前記ネットワークが攻撃されたか否かを判定する
ことを特徴とする攻撃検知措置。
（付記２）
前記早着猶予期間は、前記周期を単位とする整数で表され、
前記判定部は、
前記カウント値が前記予測値以下であるときは、警告フラグをオフ状態に設定し、
前記カウント値が前記予測値よりも大きく且つ前記第１の参照値以下であり、且つ、前記警告フラグがオフ状態であるときは、前記予測値を開始値として記録すると共に、前記警告フラグをオフ状態からオン状態に変更し、
前記カウント値が前記予測値よりも大きく且つ前記第１の参照値以下であり、且つ、前記警告フラグがオン状態であり、且つ、前記予測値が前記開始値に前記早着猶予期間を加算することで得られる第２の参照値よりも大きいときは、前記ネットワークが攻撃されたと判定する
ことを特徴とする付記１に記載の攻撃検知装置。
（付記３）
前記判定部は、前記ネットワークが攻撃されたと判定したときは、前記カウント値を１だけ減算する
ことを特徴とする付記２に記載の攻撃検知装置。
（付記４）
前記カウント値が前記予測値よりも大きく且つ前記第１の参照値以下であり、且つ、前記警告フラグがオン状態であり、且つ、前記予測値が前記第２の参照値よりも大きく、且つ、前記カウント値が前記予測値以下であるときは、前記判定部は、前記警告フラグをオン状態からオフ状態に変更する
ことを特徴とする付記２に記載の攻撃検知装置。
（付記５）
前記カウント値が前記第１の参照値よりも大きいときは、前記判定部は、前記ネットワークが攻撃されたと判定する
ことを特徴とする付記２に記載の攻撃検知装置。
（付記６）
前記早着猶予期間は、前記周期を単位として表され、
前記判定部は、
前記カウント値が前記予測値以下であるときは、警告フラグをオフ状態に設定し、
前記カウント値が前記予測値よりも大きく且つ前記第１の参照値以下であり、且つ、前記警告フラグがオフ状態であるときは、前記予測値を開始値として記録すると共に、前記警告フラグをオフ状態からオン状態に変更し、
前記カウント値が前記予測値よりも大きく且つ前記第１の参照値以下であり、且つ、前記警告フラグがオン状態であり、且つ、前記カウント値が前記開始値に前記早着猶予期間を加算することで得られる第２の参照値よりも大きいときは、前記ネットワークが攻撃されたと判定する
ことを特徴とする付記１に記載の攻撃検知装置。
（付記７）
ネットワーク内で送信される識別情報を含むメッセージを受信する受信部と、
所定のモニタ期間内に前記受信部が受信するメッセージの個数を前記メッセージの前記識別情報に対応する送信周期に基づいて予測する予測部と、
前記モニタ期間内に前記受信部が受信したメッセージの個数をカウントするカウント部と、
前記予測部により得られる予測値と前記カウント部により得られるカウント値との比較の結果に基づいて、前記ネットワークが攻撃されたか否かを判定する判定部と、を備え、
前記判定部は、
前記カウント値が前記予測値以下であるときは、警告フラグをオフ状態に設定し、
前記カウント値が前記予測値に１を加算することで得られる参照値と一致し、且つ、前記警告フラグがオフ状態であるときは、前記警告フラグをオフ状態からオン状態に変更し、
前記カウント値が前記参照値と一致し、且つ、前記警告フラグがオン状態であるときは、前記ネットワークが攻撃されたと判定する
ことを特徴とする攻撃検知装置。
（付記８）
前記判定部は、前記ネットワークが攻撃されたと判定したときは、前記カウント値を１だけ減算すると共に、前記警告フラグをオン状態からオフ状態に変更する
ことを特徴とする付記７に記載の攻撃検知装置。
（付記９）
前記カウント値が前記参照値よりも大きいときは、前記判定部は、前記ネットワークが攻撃されたと判定する
ことを特徴とする付記７に記載の攻撃検知装置。
（付記１０）
前記カウント値が所定の閾値以上であるときに、前記カウント値をゼロに更新し、前記予測値を前記予測値から前記カウント値を減算することで得られる値に更新する再設定処理を行う再設定制御部をさらに備える
ことを特徴とする付記７〜９のいずれか１つに記載の攻撃検知装置。
（付記１１）
前記カウント値が前記閾値以上であり、且つ、前記受信部がメッセージを受信した時刻が、目標受信時刻に対して設定される許容範囲内であるときに、前記再設定制御部は、前記再設定処理を行う
ことを特徴とする付記１０に記載の攻撃検知装置。
（付記１２）
前記カウント値が前記閾値以上であり、且つ、前記受信部により受信される連続する２個のメッセージの受信時刻の差分が、前記送信周期に対して設定される許容範囲内であるときに、前記再設定制御部は、前記再設定処理を行う
ことを特徴とする付記１０に記載の攻撃検知装置。
（付記１３）
ネットワーク内で送信される識別情報を含むメッセージを、受信器を用いて受信し、
所定のモニタ期間内に前記受信器が受信するメッセージの個数を前記メッセージの前記識別情報に対応する送信周期に基づいて予測し、
前記モニタ期間内に前記受信器が受信したメッセージの個数をカウントし、
カウントされたメッセージの個数を表すカウント値が、予測されたメッセージの個数を表す予測値よりも大きく且つ前記予測値に予め指定される早着許容値を加算することで得られる参照値以下である状態が検出されたときは、前記早着許容値に対応する早着猶予期間が経過した後に、前記カウント値と前記予測値との比較の結果に基づいて、前記ネットワークが攻撃されたか否かを判定する
ことを特徴とする攻撃検知方法。
（付記１４）
ネットワーク内で送信される識別情報を含むメッセージを、受信器を用いて受信し、
所定のモニタ期間内に前記受信器が受信するメッセージの個数を前記メッセージの前記識別情報に対応する送信周期に基づいて予測し、
前記モニタ期間内に前記受信器が受信したメッセージの個数をカウントし、
カウントされたメッセージの個数を表すカウント値が予測されたメッセージの個数を表す予測値以下であるときは、警告フラグをオフ状態に設定し、
前記カウント値が前記予測値に１を加算することで得られる参照値と一致し、且つ、前記警告フラグがオフ状態であるときは、前記警告フラグをオフ状態からオン状態に変更し、
前記カウント値が前記参照値と一致し、且つ、前記警告フラグがオン状態であるときは、前記ネットワークが攻撃されたと判定する
ことを特徴とする攻撃検知方法。
（付記１５）
ネットワーク内で送信される識別情報を含むメッセージを、受信器を用いて受信し、
所定のモニタ期間内に前記受信器が受信するメッセージの個数を前記メッセージの前記識別情報に対応する送信周期に基づいて予測し、
前記モニタ期間内に前記受信器が受信したメッセージの個数をカウントし、
カウントされたメッセージの個数を表すカウント値が、予測されたメッセージの個数を表す予測値よりも大きく且つ前記予測値に予め指定される早着許容値を加算することで得られる参照値以下である状態が検出されたときは、前記早着許容値に対応する早着猶予期間が経過した後に、前記カウント値と前記予測値との比較の結果に基づいて、前記ネットワークが攻撃されたか否かを判定する
処理をプロセッサに実行させる攻撃検知プログラム。
（付記１６）
ネットワーク内で送信される識別情報を含むメッセージを、受信器を用いて受信し、
所定のモニタ期間内に前記受信器が受信するメッセージの個数を前記メッセージの前記識別情報に対応する送信周期に基づいて予測し、
前記モニタ期間内に前記受信器が受信したメッセージの個数をカウントし、
カウントされたメッセージの個数を表すカウント値が予測されたメッセージの個数を表す予測値以下であるときは、警告フラグをオフ状態に設定し、
前記カウント値が前記予測値に１を加算することで得られる参照値と一致し、且つ、前記警告フラグがオフ状態であるときは、前記警告フラグをオフ状態からオン状態に変更し、
前記カウント値が前記参照値と一致し、且つ、前記警告フラグがオン状態であるときは、前記ネットワークが攻撃されたと判定する
処理をプロセッサに実行させる攻撃検知プログラム。
【符号の説明】
【０１９９】
１  攻撃検知装置
２  受信部
３  予測部
４  カウント部
５  判定部
６  再設定制御部
１４  プロセッサ
１００  ネットワーク
【図１】
2019126004.tif 000003
【図２】
2019126004.tif 000004
【図３】
2019126004.tif 000005
【図４】
2019126004.tif 000006
【図５】
2019126004.tif 000007
【図６】
2019126004.tif 000008
【図７】
2019126004.tif 000009
【図８】
2019126004.tif 000010
【図９】
2019126004.tif 000011
【図１０】
2019126004.tif 000012
【図１１】
2019126004.tif 000013
【図１２】
2019126004.tif 000014
【図１３】
2019126004.tif 000015
【図１４】
2019126004.tif 000016
【図１５】
2019126004.tif 000017
【図１６】
2019126004.tif 000018
【図１７】
2019126004.tif 000019
【図１８】
2019126004.tif 000020
【図１９】
2019126004.tif 000021
【図２０】
2019126004.tif 000022
【図２１】
2019126004.tif 000023
【図２２】
2019126004.tif 000024
【図２３】
2019126004.tif 000025
【図２４】
2019126004.tif 000026
【図２５】
2019126004.tif 000027