(57)【要約】【課題】ネットワーク上での攻撃を検知する精度を向上させる。【解決手段】攻撃検知装置は、ネットワーク中の通信装置から周期的に送信されるメッセージを受信する受信部と、所定のモニタ期間内に受信部が受信するメッセージの個数をメッセージの送信周期に基づいて予測する予測部と、モニタ期間内に受信部が受信したメッセージの個数をカウントするカウント部と、予測部により得られる予測値とカウント部により得られるカウント値との比較の結果に基づいて、ネットワークに対する攻撃を検出する検出部と、を備える。【選択図】図４
2019012899.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で表される。
【００３７】
さらに、予測部３は、モニタ期間内に受信部２が受信すると見込まれるメッセージの個数を予測する。すなわち、モニタ期間に対して予測値ｘが生成される。この例では、最初のモニタ期間（時刻ＴＳ〜ｔ(1)）に対して予測値ｘとして「１」が算出され、２番目のモニタ期間（時刻ＴＳ〜ｔ(2)）に対して予測値ｘとして「２」が算出される。同様に、ｉ番目のモニタ期間（時刻ＴＳ〜ｔ(i)）に対して予測値ｘとして「ｉ」が算出される。
【００３８】
検出部５は、各モニタ期間の終了時刻において、ネットワーク１００に攻撃メッセージが入力された否かを判定する。なお、攻撃メッセージには、正規メッセージと同様に、検知対象ＩＤが付与されているものとする。
【００３９】
検出部５は、最初のモニタ期間の終了時刻ｔ(1)において、予測値ｘとカウント値ｎとを比較する。図６に示す例では、受信部２は、最初のモニタ期間内に１個のメッセージを受信している。また、最初のモニタ期間に対応する予測値ｘは、１である。すなわち、カウント値ｎは、予測値ｘを超えていない。この場合、検出部５は、ネットワーク１００は攻撃を受けていないと判定する。なお、図６に示す「ＯＫ」は、攻撃が検知されなかった状態を表す。
【００４０】
続いて、検出部５は、２番目のモニタ期間の終了時刻ｔ(2)において、予測値ｘとカウント値ｎとを比較する。図６に示す例では、時刻ｔ(1)と時刻ｔ(2)との間に、受信部２が１個のメッセージを受信し、カウント値ｎは、１から２にインクリメントされる。また、２番目のモニタ期間に対応する予測値ｘは、２である。すなわち、カウント値ｎは、予測値ｘを超えていない。この場合、検出部５は、ネットワーク１００は攻撃を受けていないと判定する。
【００４１】
同様に、検出部５は、各モニタ期間の終了時刻において、ネットワーク１００に攻撃メッセージが入力された否かを判定する。ただし、検出部５は、誤差の蓄積を解消するために、定期的に、予測値ｘおよびカウント値ｎを再設定する。例えば、受信時刻の精度がマイクロ秒であったとき、１０ｍ秒などと周期を設定すると、マイクロ秒以下の単位の誤差が生じ得る（１００００．５マイクロ秒、９９９９．８マイクロ秒など）。この小数点以下の誤差は受信を繰り返すと蓄積され、いずれ攻撃検知に影響を与えるほどの大きな誤差になるおそれがある。よって、攻撃検知装置１は、これを防ぐために、定期的に再設定を行う機能を備える。
【００４２】
具体的には、カウント値ｎが所定の閾値ｒ以上になったときに、予測値ｘおよびカウント値ｎが再設定される。閾値ｒは、図６に示す例では、５である。そして、カウント値ｎが閾値ｒ以上になると、カウンタ値ｎは、ゼロに初期化される。予測値ｘは、「ｘ」から「ｘ−ｎ」に更新される。図６に示す例では、予測値ｘは、「５」から「ゼロ」に更新されている。但し、予測値ｘは、ケースによっては、ゼロ以外の値に更新されることがある。
【００４３】
このように、攻撃検知装置１は、モニタ期間ごとに、受信部２が受信したメッセージの個数を表すカウント値ｎとその予測値ｘとを比較する。そして、カウント値ｎが予測値ｘ以下であるときは、攻撃検知装置１は、ネットワーク１００は攻撃を受けていないと判定する。
【００４４】
図７は、第１の実施形態における攻撃検知方法の他の例を示す。図７に示す例では、カウント領域Ｃ６において、受信部２が攻撃メッセージを受信している。なお、攻撃メッセージは、図７において、▲印で表されている。
【００４５】
このケースでは、カウント領域Ｃ５の終了時点でカウント値ｎおよび予測値ｘがそれぞれゼロに初期化されている。その後、受信部２は、カウント領域Ｃ６において正常メッセージおよび攻撃メッセージを受信する。この場合、カウント領域Ｃ６の終了時点で、予測値ｘは１である。これに対して、カウント値ｎは２である。すなわち、カウント値ｎは、予測値ｘを超えている。そうすると、検出部５は、ネットワーク１００が攻撃を受けたと判定する。なお、図７に示す「ＮＧ」は、攻撃が検知された状態を表す。このように、攻撃検知装置１は、受信部２が受信したメッセージの個数を表すカウント値ｎとその予測値ｘとを比較することにより、ネットワーク１００への攻撃を検知できる。
【００４６】
なお、上述の例では、各カウント領域の終了時点で攻撃の有無の判断が行われるが、本実施形態はこの方法に限定されるものではない。すなわち、攻撃検知装置１は、メッセージの受信時に、その時点でのカウンタが予測値を超えているかどうかを逐次的に判断してもよい。
【００４７】
図８は、第１の実施形態の攻撃検知方法の一例を示すフローチャートである。このフローチャートの処理は、例えば、検知対象ＩＤが指定されたときに攻撃検知装置１により実行される。
【００４８】
Ｓ１において、攻撃検知装置１は、制御パラメータを取得する。制御パラメータは、検知対象ＩＤの送信周期ＴＣ、再設定を実行する周期を表す閾値ｒ、タイミングパラメータｐを含む。なお、制御パラメータは、例えば、図５に示すメモリ１５に予め格納されている。或いは、制御パラメータは、ユーザまたはネットワーク管理者から与えられる。
【００４９】
Ｓ２において、受信部２は、基準メッセージを受信する。なお、基準メッセージは、例えば、図８に示すフローチャートの処理が開始された後に最初に受信したメッセージであってもよい。このとき、受信部２は、基準メッセージの受信時刻ＲＴ(0)を記録する。
【００５０】
Ｓ３において、カウント部４は、カウント値ｎをゼロに初期化する。予測部３は、最初のモニタ期間の終了時刻ｔ(i)を算出する。この実施例では、最初のモニタ期間の終了時刻ｔ(i)は、基準メッセージの受信時刻ＲＴ(0)に（１＋ｐ）×ＴＣを加算することにより算出される。ＴＣは、検知対象ＩＤの送信周期を表し、ｐは、予め決められたタイミングパラメータ（例えば、0.5）を表す。さらに、予測部３は、予測値ｘに１を設定する。
【００５１】
Ｓ４において、受信部２は、メッセージを受信する。このとき、受信部２は、このメッセージの受信時刻ＲＴ(i)を検出する。また、カウント部４は、カウント値ｎを１だけインクリメントする。
【００５２】
Ｓ５〜Ｓ６において、攻撃検知装置１は、メッセージの受信時刻ＲＴ(i)がモニタ期間の終了時刻ｔ(i)よりも前であるか判定する。そして、メッセージの受信時刻ＲＴ(i)がモニタ期間の終了時刻ｔ(i)よりも前でないときは、攻撃検知装置１は、予測値ｘを１だけインクリメントすると共に、終了時刻ｔ(i)に送信周期ＴＣを加算する。なお、Ｓ５〜Ｓ６の処理は、モニタ期間の終了時刻ｔ(i)がメッセージの受信時刻ＲＴ(i)より後ろになるまで繰返し実行される。そして、モニタ期間の終了時刻ｔ(i)がメッセージの受信時刻ＲＴ(i)よりも後ろになると、攻撃検知装置１の処理はＳ７に進む。
【００５３】
Ｓ７〜Ｓ９において、検出部５は、カウント値ｎと予測値ｘとを比較する。そして、カウント値ｎが予測値ｘ以下であれば、検出部５は、ネットワーク１００は攻撃されていないと判定する。一方、カウント値ｎが予測値ｘより大きいときは、検出部５は、ネットワーク１００が攻撃されていると判定する。この場合、カウント部４は、カウント値ｎを１だけデクリメントする。図７に示す例では、カウント領域Ｃ６において攻撃が検出されると、カウント値ｎは「２」から「１」に更新される。このように、カウント値ｎは、攻撃メッセージであると判断した場合にはカウントしない。すなわち、カウント値ｎは、正規メッセージの個数をカウントする。
【００５４】
なお、ネットワーク１００が攻撃されていると判定されたときは、攻撃検知装置１は、アラーム信号を出力する。アラーム信号は、ネットワーク１００が攻撃されていることをユーザに通知する。このとき、攻撃検知装置１は、ネットワーク１００と外部ネットワークとを切断してもよい。また、ネットワーク１００が車載ネットワークである場合、攻撃検知装置１は、車両を停止するための制御信号を出力してもよい。
【００５５】
Ｓ１０において、再設定制御部６は、カウント値ｎと再設定を実行する周期を表す閾値ｒとを比較する。そして、カウント値ｎが閾値ｒよりも小さければ、攻撃検知装置１の処理はＳ４に戻る。一方、カウント値ｎが閾値ｒ以上であれば、再設定制御部６は、Ｓ１１において再設定処理を実行する。再設定処理では、予測値ｘは、「ｘ」から「ｘ−ｎ」に更新される。カウント値ｎは、ゼロに初期化される。次のモニタ期間の終了時刻ｔ(i)として、ＲＴ(i)＋ｐ×ＴＣが設定される。ＲＴ(i)は、受信部２が直前に受信したメッセージの受信時刻を表す。ＴＣは、検知対象ＩＤの送信周期を表し、ｐは、タイミングパラメータを表す。この後、攻撃検知装置１の処理はＳ４に戻る。
【００５６】
上述の攻撃検知方法において、正規メッセージに加えて、ネットワーク１００に攻撃メッセージが入力されると、受信メッセージの個数を表すカウント値ｎが予測値ｘを超えると想定される。この場合、Ｓ７の判定結果が「Ｙｅｓ」となるので、ネットワーク１００への攻撃が検出される。
【００５７】
例えば、図７に示す例では、カウント領域Ｃ６において、受信部２は、正規メッセージおよび攻撃メッセージを受信している。ここで、カウント領域Ｃ６の終了時刻ｔ(6)において、カウント値ｎは２であり、予測値ｘは１である。すなわち、カウント値ｎは、予測値ｘよりも大きい。この場合、検出部５は、図８のＳ７〜Ｓ９において、ネットワーク１００が攻撃を受けたと判定する。このとき、カウント部４は、Ｓ９において、カウント値ｎを１だけデクリメントする。図７に示す例では、受信部２が攻撃メッセージを受信したときに、Ｓ４によりカウント値ｎは１から２にカウントアップされるが、その後、Ｓ９によりカウント値ｎは２から１にデクリメントされる。よって、受信部２が次のメッセージを受信したときには、図７に示すように、カウント値ｎは２である。このように、カウント値ｎは、攻撃メッセージの受信によってはカウントアップされない。すなわち、カウント値ｎは、実質的には、正規メッセージの個数をカウントする。
【００５８】
なお、予測値ｘは、Ｓ６に示すように、メッセージの受信時刻ＲＴ(i)が、カウント領域の終了時刻ｔ(i)を超えていたときに、メッセージの受信時のＳ６の処理にてインクリメントされる。または、各モニタ期間の終了時刻ｔ(i)においてインクリメントされてもよい。ここで、各モニタ期間の終了時刻ｔ(i)は、上述したように、タイミングパラメータｐに依存する。したがって、予測値ｘをインクリメントするタイミングは、タイミングパラメータｐに依存する。すなわち、タイミングパラメータｐは、予測値ｘをインクリメントするタイミングを指定する。具体的には、周期的に送信されるメッセージの理想的な受信時刻が、各カウント領域のほぼ中心に位置するように、タイミングパラメータｐが決定される。したがって、一般的にはタイミングパラメータｐは、0.5であることが好ましいが、ネットワークの状態に応じて中心よりも前半側または後半側に設定しても良い。
【００５９】
なお、Ｓ５においてメッセージの受信時刻ＲＴ(i)がモニタ期間の終了時刻ｔ(i)と同じまたは前であるときに、Ｓ６が実行されるようにしてもよい。また、攻撃検知装置１は、複数の検知対象ＩＤについてそれぞれ攻撃検知を実行することができる。この場合、攻撃検知装置１は、図８に示すフローチャートの処理を並列に実行してもよい。
【００６０】
＜第２の実施形態＞
第１の実施形態の攻撃検知方法においては、図８に示すＳ１１の再設定処理が実行されるタイミングで攻撃メッセージが入力されると、再設定後に検知精度が低下するおそれがある。第２の実施形態では、この課題に対処するために、再設定を実行するための条件が追加されている。
【００６１】
図９は、第２の実施形態の攻撃検知方法の一例を示すフローチャートである。攻撃検知方法の手順は、第１の実施形態および第２の実施形態においてほぼ同じである。ただし、第２の実施形態では、Ｓ１において、攻撃検知装置１は、送信周期ＴＣ、閾値ｒ、タイミングパラメータｐに加えて、後述する目標受信時刻に対する許容範囲を表す情報も取得する。また、第２の実施形態の攻撃検知方法では、図８に示すＳ１〜Ｓ１１に加えてＳ２１が実行される。Ｓ２１の処理は、カウント値ｎが閾値ｒ以上であるときに実行される。
【００６２】
Ｓ２１において、再設定制御部６は、Ｓ４で受信したメッセージの受信時刻ＲＴ(i)が目標受信時刻に対する許容範囲内であるか判定する。目標受信時刻は、メッセージの理想的な受信時刻を表す。理想的な受信時刻は、各カウント領域の中心である。例えば、図６に示す例において、カウント領域Ｃ５の開始時刻ｔ(4)および終了時刻ｔ(5)は、下式で計算される。なお、送信周期ＴＣは１００ｍ秒であり、タイミングパラメータｐは0.5であるものとする。
ｔ(4)＝52＋4.5×100＝502
ｔ(5)＝52＋5.5×100＝602
この場合、カウント領域Ｃ５に対する目標受信時刻は、５５２ｍ秒である。或いは、カウント領域Ｃ５に対する目標受信時刻は、カウント領域Ｃ５の終了時刻から「ｐ×ＴＣ」を減算することで算出してもよい。
【００６３】
許容範囲は、特に限定されるものではないが、例えば、送信周期ＴＣの±２０パーセントである。そして、Ｓ４で受信したメッセージの受信時刻ＲＴ(i)が目標受信時刻に対する許容範囲内であれば、再設定制御部６は、Ｓ１１の再設定処理を実行する。一方、受信時刻ＲＴ(i)が許容範囲内でなければ、Ｓ１１の再設定処理はスキップされる。
【００６４】
このように、第２の実施形態では、カウント値ｎが閾値ｒ以上であり、且つ、メッセージの受信時刻が目標受信時刻に近いときに、再設定が実行される。ここで、メッセージの受信時刻が目標受信時刻に近いときは、そのメッセージは正規メッセージである可能性が高いと考えられる。したがって、第２の実施形態によれは、攻撃メッセージに起因する再設定が回避または削減される。この結果、攻撃検知装置１の検知精度が向上する。
【００６５】
＜第３の実施形態＞
図１０は、第３の実施形態の攻撃検知方法の一例を示すフローチャートである。第２の実施形態では、受信メッセージの到着時刻が目標受信時刻に対する許容範囲内であるか否かに基づいて再設定処理が制御される。これに対して、第３の実施形態では、直前に受信した２個のメッセージの受信時刻の差分に基づいて再設定処理が制御される。なお、第２の実施形態と同様に、第３の実施形態のＳ１においても、攻撃検知装置１は、送信周期ＴＣ、閾値ｒ、タイミングパラメータｐに加えて、許容範囲を表す情報も取得する。また、第３の実施形態の攻撃検知方法では、図８に示すＳ１〜Ｓ１１に加えてＳ３１〜Ｓ３３が実行される。
【００６６】
第３の実施形態では、Ｓ２において受信部２が基準メッセージを受信したときに、Ｓ３１が実行される。Ｓ３１においては、基準メッセージの受信時刻ＲＴ(0)が基準時刻ＴＲとして記録される。例えば、図６に示す例では、受信部２は、時刻５２ｍ秒に基準メッセージを受信している。この場合、基準時刻ＴＲとして「５２ｍ秒」が記録される。
【００６７】
Ｓ３２の処理は、受信メッセージに対する処理（Ｓ５〜Ｓ１１、Ｓ３３）が終了したときに実行される。Ｓ３２においては、再設定制御部６は、直前に受信したメッセージの受信時刻ＲＴ(i)を基準時刻ＴＲとして記録する。このとき、先に記録されている基準時刻ＴＲは、新たに受信したメッセージの受信時刻に更新される。なお、Ｓ３２の処理は、攻撃メッセージが検出されたか否かにかかわらず実行される。
【００６８】
Ｓ３３の処理は、カウント値ｎが閾値ｒ以上であるときに実行される。Ｓ３３においては、再設定制御部６は、受信部２により直前に受信された２個のメッセージの受信時刻の差分が所定の許容範囲内であるか判定する。この差分は、受信時刻ＲＴ(i)から基準時刻ＴＲを引算することで算出される。なお、許容範囲は、例えば、検知対象ＩＤの送信周期ＴＣに対して±２０パーセントである。この場合、許容範囲は、0.8TC〜1.2TCである。
【００６９】
図６に示す例では、受信部２が時刻４５０ｍ秒にメッセージを受信する。そうすると、Ｓ３２において、基準時刻ＴＲとして「４５０」が記録される。続いて、受信部２は、時刻５４８ｍ秒において新たなメッセージを受信する。このとき、カウント値ｎ（ｎ＝５）が閾値ｒ（ｒ＝５）に達しているので、Ｓ３３が実行される。ここで、検知対象ＩＤの送信周期ＴＣは１００ｍ秒であり、許容範囲は８０〜１２０ｍ秒であるものとする。この場合、上記２個のメッセージの受信間隔の差分は、９８ｍ秒であり、許容範囲内である。したがって、Ｓ１１の再設定処理が実行される。すなわち、カウント値ｎおよび予測値ｘが再設定される。
【００７０】
図１１に示す例では、時刻５４０ｍ秒に受信されたメッセージ（ここでは、攻撃メッセージ）に対して、Ｓ３２により基準時刻ＴＲとして「５４０」が記録される。続いて、受信部２が時刻５４８ｍ秒においてメッセージを受信すると、カウント値ｎ（ｎ＝６）が閾値ｒ（ｒ＝５）以上なので、Ｓ３３が実行される。ただし、上記２個のメッセージの受信間隔の差分は、８ｍ秒であり、許容範囲から外れている。この場合、Ｓ１１の再設定処理は実行されない。すなわち、カウント値ｎおよび予測値ｘは、再設定されない。この後、Ｓ３２において、基準時刻ＴＲが「５４０」から「５４８」に更新される。
【００７１】
続いて、受信部２が時刻６５２ｍ秒においてメッセージを受信すると、カウント値ｎが閾値ｒに達しているので、Ｓ３３が実行される。このとき、上記２個のメッセージの受信間隔の差分は、１０４ｍ秒であり、許容範囲内である。この場合、Ｓ１１の再設定処理が実行される。すなわち、カウント値ｎおよび予測値ｘが再設定される。
【００７２】
このように、第３の実施形態では、受信部２が直前に受信した２個のメッセージの受信時刻の差分が、送信周期ＴＣとほぼ同じであるか判定される。そして、この差分が、送信周期ＴＣから大きくずれているときは、攻撃メッセージを受信したものと判定し、再設定処理を実行しない。この結果、攻撃検知アルゴリズムの動作が不安定になる状態が回避される。
【００７３】
＜第４の実施形態＞
上述したように、攻撃検知装置１は、検知対象ＩＤの送信周期ＴＣに基づいてモニタ期間を設定し、モニタ期間内に受信したメッセージの個数とその予測値とを比較することで攻撃メッセージを検知する。このとき、攻撃検知装置１は、１つのカウント領域において１個の正常メッセージを受信することを想定して攻撃検知を行う。
【００７４】
ところが、各デバイスは、誤差を有する。たとえば、送信周期ＴＣが１００ｍ秒であるときに、送信元ＥＣＵが９９．９９ｍ秒間隔でメッセージを送信するかも知れない。そして、この誤差が蓄積すると、攻撃検知装置１は、攻撃メッセージを精度よく検知できないことがある。或いは、攻撃検知装置１は、正規メッセージを攻撃メッセージと判定するおそれがある。
【００７５】
この問題は、カウント値ｎおよび予測値ｘを定期的に再設定することで回避される。換言すれば、何らかの理由でカウント値ｎおよび予測値ｘを適切に再設定できない状況が継続すると、攻撃検知精度が低下し得る。
【００７６】
図１２は、再設定が実行されないケースの一例を示す。この例では、メッセージのＭ１の次に攻撃メッセージが到着する。この後、送信遅延が発生し、メッセージＭ２〜Ｍ４が短い期間内に集中して到着する。この結果、カウント領域Ｃ５の終了時刻において、予測値ｘは５であり、カウント値ｎは６である。よって、攻撃メッセージが検知される。ここで、カウント値ｎが閾値ｒを超えているので、図１０に示すＳ３３の処理が実行される。ただし、メッセージＭ５の受信時刻とメッセージＭ６の受信時刻との差分（すなわち、ＲＴ(i)−ＴＲ）は、送信周期ＴＣに対して大幅に小さい。したがって、Ｓ１１の再設定は実行されない。
【００７７】
つづいて、カウント領域Ｃ６において、メッセージＭ６および１個の攻撃メッセージが到着するものとする。この場合、カウント値ｎは、６から７にインクリメントされる。なお、実際には、２個のメッセージを受信することによりカウント値ｎは７から８にインクリメントされるが、攻撃メッセージが検出されると、カウント値が１だけデクリメントされる。すなわち、カウント値ｎは、実質的には、正規メッセージの個数をカウントする。よって、図１２では、攻撃メッセージが検出されるときには、カウント値ｎは、正規メッセージのみをカウントするものとする。他方、カウント領域Ｃ６の終了時刻において、予測値ｘは、５から６に１だけインクリメントされる。
【００７８】
このように、カウントＣ６の終了時刻において、カウント値ｎは予測値ｘより大きい。よって、攻撃メッセージが検知される。また、カウント値ｎが閾値ｒを超えているので、Ｓ３３の処理が実行される。ただし、この例では、メッセージＭ６の受信時刻とその直前のメッセージの受信時刻との差分も、送信周期ＴＣに対して大幅に小さい。したがって、Ｓ１１の再設定は実行されない。この結果、カウント領域Ｃ６の終了時刻において、カウント値ｎと予測値ｘとの差分は１である。
【００７９】
以降、図１２に示すようにメッセージが到着すると、カウント領域Ｃ７〜Ｃ１０においてカウント値ｎおよび予測値ｘは再設定されない。そして、カウント値ｎおよび予測値ｘが再設定されないと、上述したように、誤差の蓄積に起因して検知精度が低下するおそれがある。
【００８０】
このように、カウント値ｎおよび予測値ｘが再設定されない期間は、カウント値ｎと予測値ｘの差分がゼロでないことがある。そこで、第４の実施形態の攻撃検知装置は、カウント値ｎと予測値ｘの差分をモニタし、その差分に応じて再設定を制御する。
【００８１】
図１３〜図１４は、第４の実施形態の攻撃検知方法の一例を示すフローチャートである。第４の実施形態のＳ４１〜Ｓ４７は、第１〜第３の実施形態のＳ１〜Ｓ６、Ｓ３１とほぼ同じである。ただし、Ｓ４４では、フラグｆが１に設定される。フラグｆは、カウント値ｎと予測値ｘとが一致するか否かを表す。この例では、ｆ＝１は、カウント値ｎと予測値ｘとが互いに異なる状態を表し、ｆ＝０は、カウント値ｎと予測値ｘとが互いに一致する状態を表す。
【００８２】
Ｓ５１〜Ｓ５３は、第１〜第３の実施形態のＳ７〜Ｓ９と同じである。すなわち、検出部５は、カウント値ｎと予測値ｘとを比較する。そして、カウント値ｎが予測値ｘ以下であれば、検出部５は、ネットワーク１００は攻撃されていないと判定する。一方、カウント値ｎが予測値ｘよりも大きいときは、検出部５は、ネットワーク１００が攻撃されていると判定する。この場合、カウント部４は、カウント値ｎを１だけデクリメントする。
【００８３】
攻撃がないと判定されたときは、再設定制御部６は、Ｓ５４において、カウント値ｎと予測値ｘとを比較する。そして、カウント値ｎと予測値ｘとが互いに一致していれば、再設定制御部６は、Ｓ５５において、フラグｆをゼロに設定する。一方、カウント値ｎと予測値ｘとが互いに異なっていれば、Ｓ５５はスキップされる。
【００８４】
Ｓ５６において、再設定制御部６は、カウント値ｎと再設定を実行する周期を表す閾値ｒとを比較する。そして、カウント値ｎが閾値ｒよりも小さければ、攻撃検知装置１の処理はＳ６１に進む。一方、カウント値ｎが閾値ｒ以上であれば、再設定制御部６は、Ｓ５７において、受信部２により直前に受信された２個のメッセージの受信時刻の差分が所定の許容範囲内であるか判定する。この差分は、受信時刻ＲＴ(i)から基準時刻ＴＲを引算することで算出される。なお、許容範囲は、この例では、検知対象ＩＤの送信周期ＴＣに対して±２０パーセントである。すなわち、許容範囲は、0.8TC〜1.2TCである。
【００８５】
２個のメッセージの受信時刻の差分が許容範囲から外れていれば、攻撃検知装置１の処理はＳ６１に進む。一方、２個のメッセージの受信時刻の差分が許容範囲内であれば、再設定制御部６は、Ｓ５８において、フラグｆの値をチェックする。
【００８６】
フラグｆがゼロであるときは、再設定制御部６は、所定の期間に渡って、カウント値ｎと予測値ｘとが最低１箇所は互いに一致していたと判定する。この場合、攻撃検知装置１は、Ｓ５９の再設定処理を実行する。なお、Ｓ５９の再設定処理は、第１〜第３の実施形態のＳ１１と同じである。尚、この例では、所定の期間は、受信部２がｒ個のメッセージを受信する期間に相当する。一方、フラグｆが１であるときは、再設定制御部６は、上述した所定の期間内に、カウント値ｎと予測値ｘとが互いに異なる期間が継続していたと判定する。この場合、攻撃検知装置１は、Ｓ６０の再設定処理を実行する。Ｓ６０においては、カウント値ｎおよび予測値ｘは、いずれもゼロに初期化される。
【００８７】
この後、Ｓ６１の処理が実行される。Ｓ６１において、再設定制御部６は、直前に受信したメッセージの受信時刻ＲＴ(i)を基準時刻ＴＲとして記録する。
【００８８】
このように、第４の実施形態の基本動作は、以下の通りである。
（１）受信部２がメッセージを受信すると、カウント部４は、カウント値ｎを１だけインクリメントする。
（２）予測値ｘは、送信周期ＴＣ毎に１ずつインクリメントされる。ただし、最初のカウント領域の長さは、1.5ＴＣである。
（３）カウント値ｎが予測値ｘを超えたときは、検出部５は、ネットワーク１００が攻撃されたと判定する。
【００８９】
そして、再設定制御部６は、下記の３つの条件が満たされたときに再設定（リフレッシュ）を実行する。
（１）前回の再設定から現在までの間に、受信部２がｒ個以上のメッセージを受信した
（２）受信部２が直前に受信した２個のメッセージの受信時刻の差分が送信周期ＴＣとほぼ同じである（許容範囲内）
（３）前回の再設定から現在までの間の少なくとも１つのカウント領域においてカウント値ｎおよび予測値ｘが互いに一致している
【００９０】
再設定処理においては、予測値ｘが「ｘ」から「ｘ−ｎ」に更新され、カウント値がゼロに初期化される。また、最新のメッセージの受信時刻に対して送信周期ＴＣの２分の１の期間が経過した時刻が、予測値ｘを次にインクリメントするタイミングに設定される。ただし、前回の再設定から現在までの間のすべてのカウント領域においてカウント値ｎが予測値ｘに一致しないときは、予測値ｘはゼロに初期化される。この場合、カウント値ｎおよび予測値ｘの双方がゼロに初期化されるので、誤差の蓄積に起因する検知精度の低下は回避または抑制される。
【００９１】
なお、図１３〜図１４に示す実施例において、攻撃検知装置１は、Ｓ５１の前にＳ５４の処理を実行してもよい。また、図１３〜図１４に示す例では、受信部２がｒ個のメッセージを受信する期間に渡って、カウント値ｎと予測値ｘとが互いに一致しているかモニタされるが、この期間は、ｒより長くてもよいし、ｒより短くてもよい。さらに、攻撃検知装置１は、Ｓ５７の処理をスキップしてもよい。
【００９２】
＜第５の実施形態＞
図１３〜図１４に示す実施例では、カウント値ｎと予測値ｘとが互いに異なっている状態がモニタされ、そのモニタ結果に応じて再設定処理が制御される。ここで、カウント値ｎと予測値ｘとが互いに異なっているときは、多くのケースにおいて、カウント値ｎと予測値ｘとの差分が一定であると考えられる。そこで、第５の実施形態では、攻撃検知装置１は、カウント値ｎと予測値ｘとの差分がゼロ以外の値で一定である状態をモニタし、そのモニタ結果に応じて再設定処理を制御する。
【００９３】
図１５は、第５の実施形態の攻撃検知方法の一例を示すフローチャートである。尚、Ｓ５１の前の処理は、第４の実施形態および第５の実施形態において実質的に同じなので、説明を省略する。ただし、第５の実施形態では、変数ｄｃおよび変数ｃが設定される。変数ｄｃは、カウント値ｎと予測値ｘとの差分を表す。また、変数ｃは、変数ｄｃが一定である区間（即ち、カウント領域）をカウントする。また、第５の実施形態の攻撃検知方法は、第４の実施形態の手順に加えて、Ｓ７１〜Ｓ７６の処理を実行する。
【００９４】
Ｓ７１において、再設定制御部６は、カウント値ｎが１であるか否かを判定する。カウント値ｎが１であるときは、再設定制御部６は、Ｓ７２において、カウント値ｎと予測値ｘとの差分を変数ｄｃに与える。また、再設定制御部６は、変数ｃを１だけインクリメントする。
【００９５】
カウント値ｎが１でないときは、再設定制御部６は、Ｓ７３において、変数ｄｃがカウント値ｎと予測値ｘとの差分と一致しているか判定する。すなわち、カウント値ｎと予測値ｘとの差分が変化したか否かが判定される。そして、この差分が変化していなければ、再設定制御部６は、Ｓ７４において、変数ｃを１だけインクリメントする。上記差分が変化していれば、再設定制御部６は、Ｓ７５において、変数ｃを１に初期化する。また、再設定制御部６は、カウント値ｎと予測値ｘとの差分を変数ｄｃに与える。
【００９６】
上述のＳ７１〜Ｓ７５の処理は、受信部２がメッセージを受信する毎に実行される。そして、カウント値ｎと予測値ｘとの差分が一定であれば、変数ｃがカウントアップされてゆく。
【００９７】
Ｓ７６の処理は、カウント値ｎが閾値ｒ以上であるときに実行される。そして、Ｓ７６において、再設定制御部６は、変数ｃと所定の閾値ｋとを比較する。この結果、変数ｃが閾値ｋよりも小さいときは、攻撃検知装置１の処理はＳ４５に戻る。一方、変数ｃが閾値ｋ以上であれば、再設定制御部６は、Ｓ５９またはＳ６０の再設定処理を実行する。すなわち、カウント値ｎが閾値ｒ以上であり、且つ、カウント値ｎと予測値ｘとの差分が一定である状態が直近のｋ周期以上継続すると、再設定が実行される。なお、第５の実施形態では、Ｓ５９またはＳ６０の再設定処理において、変数ｃがゼロに初期化される。
【００９８】
図１５に示す例では、カウント値ｎと予測値ｘとの差分が一定であるか否かがモニタされるが、第５の実施形態はこの方法に限定されるものではない。例えば、カウント値ｎと予測値ｘとの差分が所定の範囲内に維持されているか否かがモニタされるようにしてもよい。
【００９９】
＜第６の実施形態＞
第４〜第５の実施形態では、カウント値ｎと予測値ｘとの差分に基づいて再設定処理が制御される。これに対して、第６の実施形態では、受信部２が直前に受信した２個のメッセージの受信時刻の差分を考慮して再設定処理が制御される。
【０１００】
図１６は、第６の実施形態の攻撃検知方法の一例を示すフローチャートである。尚、Ｓ５１の前の処理は、第４の実施形態および第６の実施形態において実質的に同じなので、説明を省略する。ただし、第６の実施形態では、変数ｃが設定される。変数ｃは、直前に受信した２個のメッセージの受信時刻の差分が一定の範囲に収まっている区間（即ち、カウント領域）をカウントする。また、第６の実施形態の攻撃検知方法は、第４の実施形態の手順に加えて、Ｓ８１〜Ｓ８４の処理を実行する。
【０１０１】
Ｓ８１において、再設定制御部６は、受信部２が直前に受信した２個のメッセージの受信時刻の差分（ＲＴ(i)−ＴＲ）が送信周期ＴＣに対して許容範囲内であるか判定する。そして、この差分が許容範囲内であるときは、再設定制御部６は、Ｓ８２において、変数ｃを１だけインクリメントする。一方、この差分が送信周期ＴＣから大きくずれているときは、再設定制御部６は、Ｓ８３において、変数ｃをゼロに初期化する。ここで、この差分が許容範囲内であるときは、攻撃検知装置１に攻撃メッセージが到着していないと考えられる。したがって、変数ｃは、連続して正規メッセージが到着する区間の長さを表す。
【０１０２】
Ｓ８４の処理は、カウント値ｎが閾値ｒ以上であるときに実行される。そして、Ｓ８４において、再設定制御部６は、変数ｃと所定の閾値ｋとを比較する。この結果、変数ｃが閾値ｋよりも小さいときは、攻撃検知装置１の処理はＳ４５に戻る。一方、変数ｃが閾値ｋ以上であれば、再設定制御部６は、Ｓ５９またはＳ６０の再設定処理を実行する。すなわち、カウント値ｎが閾値ｒ以上であり、且つ、ｋ区間以上連続して正規メッセージが到着したときに、再設定が実行される。なお、第６の実施形態では、Ｓ５９またはＳ６０の再設定処理において、変数ｃがゼロに初期化される。
【０１０３】
次に、攻撃検知方法の実施例を説明する。以下では、攻撃検知装置１は、第２の実施形態に基づいて検知処理を実行する。検知対象ＩＤの送信周期ＴＣは１００ｍ秒である。再設定を実行する周期を表す閾値ｒは５である。タイミングパラメータｐは0.5である。図９のＳ２１で使用される許容範囲は、送信周期ＴＣの±２０パーセントである。検知対象ＩＤが付与されていないメッセージは、無視するものとする。
【０１０４】
＜第１の実施例＞
第１の実施例では、図７に示すように攻撃検知装置１にメッセージが到着するものとする。
【０１０５】
（１）受信部２は、時刻５２ｍ秒において、最初のメッセージ（基準メッセージ）を受信する。この受信時刻は、ＲＴ(0)として記録される。カウント値ｎはゼロに初期化される。予測値ｘは１に設定される。そして、最初のモニタ期間の終了時刻ｔ(1)が下式により算出される。なお、ｔ(1)は、カウント領域Ｃ１の終了時刻に相当する。
ｔ(1)＝ＲＴ(0)＋（1+p）ＴＣ＝52＋1.5×100＝202
【０１０６】
（２）受信部２は、時刻１４８ｍ秒（＝ＲＴ(1)）に次のメッセージを受信する。カウント値ｎはゼロから１に更新される。ここで、受信時刻ＲＴ(1)は、カウント領域Ｃ１の終了時刻ｔ(1)よりも前なので、Ｓ６が実行されることなく、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは１であり、予測値ｘも１である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１０７】
（３）受信部２は、時刻２５３ｍ秒（＝ＲＴ(2)）に次のメッセージを受信する。カウント値ｎは１から２に更新される。ここで、受信時刻ＲＴ(1)は、カウント領域Ｃ１の終了時刻ｔ(1)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは１から２に更新される。また、次のモニタ期間の終了時刻ｔ(2)が下式により算出される。ｔ(2)は、カウント領域Ｃ２の終了時刻に相当する。
ｔ(2)＝ｔ(1)＋ＴＣ＝202＋100＝302
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは２であり、予測値ｘも２である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１０８】
（４）受信部２は、時刻３６０ｍ秒（＝ＲＴ(3)）に次のメッセージを受信する。カウント値ｎは２から３に更新される。ここで、受信時刻ＲＴ(3)は、カウント領域Ｃ２の終了時刻ｔ(2)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは２から３に更新される。また、次のモニタ期間の終了時刻ｔ(3)が下式により算出される。ｔ(3)は、カウント領域Ｃ３の終了時刻に相当する。
ｔ(3)＝ｔ(2)＋ＴＣ＝302＋100＝402
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは３であり、予測値ｘも３である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１０９】
（５）受信部２は、時刻４５０ｍ秒（＝ＲＴ(4)）に次のメッセージを受信する。カウント値ｎは３から４に更新される。ここで、受信時刻ＲＴ(4)は、カウント領域Ｃ３の終了時刻ｔ(3)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは３から４に更新される。また、次のモニタ期間の終了時刻ｔ(4)が下式により算出される。ｔ(4)は、カウント領域Ｃ４の終了時刻に相当する。
ｔ(4)＝ｔ(3)＋ＴＣ＝402＋100＝502
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは４であり、予測値ｘも４である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１１０】
（６）受信部２は、時刻５４８ｍ秒（＝ＲＴ(5)）に次のメッセージを受信する。カウント値ｎは４から５に更新される。ここで、受信時刻ＲＴ(5)は、カウント領域Ｃ４の終了時刻ｔ(4)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは４から５に更新される。また、次のモニタ期間の終了時刻ｔ(5)が下式により算出される。ｔ(5)は、カウント領域Ｃ５の終了時刻に相当する。
ｔ(5)＝ｔ(4)＋ＴＣ＝502＋100＝602
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは５であり、予測値ｘも５である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。ただし、カウント値ｎは５であり、閾値ｒと同じなので、Ｓ２１が実行される。
【０１１１】
（６ａ）カウント領域Ｃ５に対する目標受信時刻は、カウント領域Ｃ５の中心であり、カウント領域Ｃ５の終了時刻ｔ(5)から５０を減算することで得られる。即ち、目標受信時刻は５５２ｍ秒である。この場合、許容範囲は、５３２〜５７２ｍ秒である。そうすると、メッセージの受信時刻ＲＴ(5)は、許容範囲内であり、Ｓ１１の再設定が実行される。この結果、カウント値ｎは、「５」から「ゼロ」に更新される。予測値ｘは、「５」から「ゼロ（＝ｘ−ｎ）」に更新される。さらに、次のモニタ期間の終了時刻ｔ(5)が下式により再計算される。
ｔ(5)＝ＲＴ(5)＋ｐ×ＴＣ＝548＋50＝598
【０１１２】
（７）受信部２は、時刻６５２ｍ秒（＝ＲＴ(6)）に次のメッセージを受信する。カウント値ｎはゼロから１に更新される。ここで、受信時刻ＲＴ(6)は、カウント領域Ｃ５の終了時刻ｔ(5)よりも後なので、Ｓ６が実行される。この結果、予測値ｘはゼロから１に更新される。また、次のモニタ期間の終了時刻ｔ(6)が下式により算出される。ｔ(6)は、カウント領域Ｃ６の終了時刻に相当する。
ｔ(6)＝ｔ(5)＋ＴＣ＝598＋100＝698
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは１であり、予測値ｘも１である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１１３】
（８）受信部２は、時刻６７８ｍ秒（＝ＲＴ(6x)）に次のメッセージを受信する。カウント値ｎは１から２に更新される。ここで、受信時刻ＲＴ(6x)は、カウント領域Ｃ６の終了時刻ｔ(6)よりも前なので、Ｓ６が実行されることなく、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは２であり、予測値ｘは１である。すなわち、「ｎ＞ｘ」である。よって、判定結果は「攻撃あり」である。この場合、カウント値ｎが１だけデクリメントされる。すなわち、カウント値ｎは、２から１に更新される。なお、更新後のカウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１１４】
（９）受信部２は、時刻７５０ｍ秒（＝ＲＴ(7)）に次のメッセージを受信する。カウント値ｎは１から２に更新される。ここで、受信時刻ＲＴ(7)は、カウント領域Ｃ６の終了時刻ｔ(6)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは１から２に更新される。また、次のモニタ期間の終了時刻ｔ(7)が下式により算出される。ｔ(7)は、カウント領域Ｃ７の終了時刻に相当する。
ｔ(7)＝ｔ(6)＋ＴＣ＝698＋100＝798
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは２であり、予測値ｘも２である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１１５】
（１０）受信部２は、時刻８５２ｍ秒（＝ＲＴ(8)）に次のメッセージを受信する。カウント値ｎは２から３に更新される。ここで、受信時刻ＲＴ(8)は、カウント領域Ｃ７の終了時刻ｔ(7)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは２から３に更新される。また、次のモニタ期間の終了時刻ｔ(8)が下式により算出される。ｔ(8)は、カウント領域Ｃ８の終了時刻に相当する。
ｔ(8)＝ｔ(7)＋ＴＣ＝798＋100＝898
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは３であり、予測値ｘも３である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１１６】
（１１）受信部２は、時刻９４０ｍ秒（＝ＲＴ(9)）に次のメッセージを受信する。カウント値ｎは３から４に更新される。ここで、受信時刻ＲＴ(9)は、カウント領域Ｃ８の終了時刻ｔ(8)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは３から４に更新される。また、次のモニタ期間の終了時刻ｔ(9)が下式により算出される。ｔ(9)は、カウント領域Ｃ９の終了時刻に相当する。
ｔ(9)＝ｔ(8)＋ＴＣ＝898＋100＝998
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは４であり、予測値ｘも４である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１１７】
（１２）受信部２は、時刻１０５０ｍ秒（＝ＲＴ(10)）に次のメッセージを受信する。カウント値ｎは４から５に更新される。ここで、受信時刻ＲＴ(10)は、カウント領域Ｃ９の終了時刻ｔ(9)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは４から５に更新される。また、次のモニタ期間の終了時刻ｔ(10)が下式により算出される。ｔ(10)は、カウント領域Ｃ１０の終了時刻に相当する。
ｔ(10)＝ｔ(9)＋ＴＣ＝998＋100＝1098
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは５であり、予測値ｘも５である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。ただし、カウント値ｎは５であり、閾値ｒと同じなので、Ｓ２１が実行される。
【０１１８】
（１２ａ）カウント領域Ｃ１０に対する目標受信時刻は、カウント領域Ｃ１０の中心であり、カウント領域Ｃ１０の終了時刻ｔ(10)から５０を減算することで得られる。即ち、目標受信時刻は１０５２ｍ秒である。この場合、許容範囲は、１０３２〜１０７２ｍ秒である。そうすると、メッセージの受信時刻ＲＴ(10)は、許容範囲内であり、Ｓ１１の再設定が実行される。この結果、カウント値ｎは、「５」から「ゼロ」に更新される。予測値ｘは、「５」から「ゼロ（＝ｘ−ｎ）」に更新される。さらに、次のモニタ期間の終了時刻ｔ(10)が下式により再計算される。
ｔ(10)＝ＲＴ(10)＋ｐ×ＴＣ＝１０５０＋５０＝１１００
【０１１９】
以下、同様に、攻撃検知装置１にメッセージが到着する毎に、図９に示すフローチャートの処理が実行され、ネットワーク１００への攻撃が検知される。
【０１２０】
＜第２の実施例＞
第２の実施例では、図１７に示すように攻撃検知装置１にメッセージが到着するものとする。第２の実施例では、メッセージの送信遅延が発生したケースに相当する。
【０１２１】
（１）図７に示す第１の実施例と同様に、受信部２は、時刻５２ｍ秒に基準メッセージを受信する。続いて、受信部２は、時刻１４８ｍ秒、時刻２５３ｍ秒、時刻３６０ｍ秒にそれぞれメッセージを受信する。この結果、カウント値ｎは３であり、予測値ｘも３である。また、カウント領域Ｃ３の終了時刻ｔ(3)は、４０２ｍ秒である。この後、メッセージの送信遅延が発生し、攻撃検知装置１は、約３００ｍ秒間に渡ってメッセージを受信しない。
【０１２２】
（２）受信部２は、時刻６６０ｍ秒（＝ＲＴ(4)）に次のメッセージを受信する。カウント値ｎは３から４に更新される。ここで、受信時刻ＲＴ(4)は、カウント領域Ｃ３の終了時刻ｔ(3)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは３から４に更新される。また、次のモニタ期間の終了時刻ｔ(4)が下式により算出される。ｔ(4)は、カウント領域Ｃ４の終了時刻に相当する。
ｔ(4)＝ｔ(3)＋ＴＣ＝402＋100＝502
【０１２３】
（２ａ）受信時刻ＲＴ(4)は、カウント領域Ｃ４の終了時刻ｔ(4)よりも後である。よって、もう一度Ｓ６が実行される。この結果、予測値ｘは４から５に更新される。また、次のモニタ期間の終了時刻ｔ(5)が下式により算出される。ｔ(5)は、カウント領域Ｃ５の終了時刻に相当する。
ｔ(5)＝ｔ(4)＋ＴＣ＝502＋100＝602
【０１２４】
（２ｂ）受信時刻ＲＴ(4)は、カウント領域Ｃ５の終了時刻ｔ(5)よりも後である。よって、さらにもう一度Ｓ６が実行される。この結果、予測値ｘは５から６に更新される。また、次のモニタ期間の終了時刻ｔ(6)が下式により算出される。ｔ(6)は、カウント領域Ｃ６の終了時刻に相当する。
ｔ(6)＝ｔ(5)＋ＴＣ＝602＋100＝702
【０１２５】
（２ｃ）受信時刻ＲＴ(4)は、カウント領域Ｃ６の終了時刻ｔ(6)よりも前なので、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは４であり、予測値ｘは６である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１２６】
（３）受信部２は、時刻６７０ｍ秒（＝ＲＴ(5)）に次のメッセージを受信する。カウント値ｎは４から５に更新される。ここで、受信時刻ＲＴ(5)は、カウント領域Ｃ６の終了時刻ｔ(6)よりも前なので、Ｓ６が実行されることなく、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは５であり、予測値ｘは６である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。ただし、カウント値ｎは６であり、閾値ｒよりも大きいので、Ｓ２１が実行される。
【０１２７】
（３ａ）カウント領域Ｃ６に対する目標受信時刻は、カウント領域Ｃ６の中心であり、カウント領域Ｃ６の終了時刻ｔ(6)から５０を減算することで得られる。即ち、目標受信時刻は６５２ｍ秒である。この場合、許容範囲は、６３２〜６７２ｍ秒である。そうすると、メッセージの受信時刻ＲＴ(5)は、許容範囲内であり、Ｓ１１の再設定が実行される。この結果、カウント値ｎは、「５」から「ゼロ」に更新される。予測値ｘは、「６」から「１（＝ｘ−ｎ）」に更新される。さらに、次のモニタ期間の終了時刻ｔ(6)が下式により再計算される。
ｔ(6)＝ＲＴ(5)＋ｐ×ＴＣ＝670＋50＝720
【０１２８】
（４）受信部２は、時刻７１０ｍ秒（＝ＲＴ(6)）に次のメッセージを受信する。カウント値ｎはゼロから１に更新される。ここで、受信時刻ＲＴ(6)は、カウント領域Ｃ６の終了時刻ｔ(2)よりも前なので、Ｓ６が実行されることなく、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは１であり、予測値ｘも１である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１２９】
（５）受信部２は、時刻７５０ｍ秒（＝ＲＴ(7)）に次のメッセージを受信する。カウント値ｎは１から２に更新される。ここで、受信時刻ＲＴ(7)は、カウント領域Ｃ６の終了時刻ｔ(6)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは１から２に更新される。また、次のモニタ期間の終了時刻ｔ(7)が下式により算出される。ｔ(7)は、カウント領域Ｃ７の終了時刻に相当する。
ｔ(7)＝ｔ(6)＋ＴＣ＝720＋100＝820
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは２であり、予測値ｘも２である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１３０】
（６）受信部２は、時刻８５２ｍ秒（＝ＲＴ(8)）に次のメッセージを受信する。カウント値ｎは２から３に更新される。ここで、受信時刻ＲＴ(8)は、カウント領域Ｃ７の終了時刻ｔ(7)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは２から３に更新される。また、次のモニタ期間の終了時刻ｔ(8)が下式により算出される。ｔ(8)は、カウント領域Ｃ８の終了時刻に相当する。
ｔ(8)＝ｔ(7)＋ＴＣ＝820＋100＝920
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは３であり、予測値ｘも３である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１３１】
（７）受信部２は、時刻９４８ｍ秒（＝ＲＴ(9)）に次のメッセージを受信する。カウント値ｎは３から４に更新される。ここで、受信時刻ＲＴ(9)は、カウント領域Ｃ８の終了時刻ｔ(8)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは３から４に更新される。また、次のモニタ期間の終了時刻ｔ(9)が下式により算出される。ｔ(9)は、カウント領域Ｃ９の終了時刻に相当する。
ｔ(9)＝ｔ(8)＋ＴＣ＝920＋100＝1020
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは４であり、予測値ｘも４である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１３２】
以下、同様に、攻撃検知装置１にメッセージが到着する毎に、図９に示すフローチャートの処理が実行され、ネットワーク１００への攻撃が検知される。このように、メッセージの送信遅延等に起因して受信タイミングが後ろにシフトする場合であっても、攻撃検知装置１は、正規メッセージを攻撃メッセージと判定することはない。すなわち、誤検知が抑制される。
【０１３３】
＜第３の実施例＞
第３の実施例では、図１８に示すように攻撃検知装置１にメッセージが到着するものとする。第３の実施例では、ネットワーク１００に攻撃メッセージが入力され、且つ、メッセージの送信遅延が発生したケースに相当する。
【０１３４】
（１）図７に示す第１の実施例と同様に、受信部２は、時刻５２ｍ秒に基準メッセージを受信する。続いて、受信部２は、時刻１４８ｍ秒にメッセージを受信する。この結果、カウント値ｎは１であり、予測値ｘも１である。カウント領域Ｃ１の終了時刻ｔ(1)は、２０２ｍ秒である。
【０１３５】
（２）受信部２は、時刻２１５ｍ秒（＝ＲＴ(1x)）に次のメッセージを受信する。カウント値ｎは１から２に更新される。ここで、受信時刻ＲＴ(1x)は、カウント領域Ｃ１の終了時刻ｔ(1)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは１から２に更新される。また、次のモニタ期間の終了時刻ｔ(2)が下式により算出される。ｔ(2)は、カウント領域Ｃ２の終了時刻に相当する。
ｔ(2)＝ｔ(1)＋ＴＣ＝202＋100＝302
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは２であり、予測値ｘも２である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１３６】
この例では、時刻２１５ｍ秒に攻撃検知装置１に到着したメッセージは、正規メッセージではなく、攻撃メッセージである。ただし、現時点では、カウント値ｎは予測値ｘ以下なので、検出部５は、ネットワーク１００が攻撃された状態を検出しない。この後、メッセージの送信遅延が発生し、攻撃検知装置１は、約３００ｍ秒間に渡ってメッセージを受信しない。
【０１３７】
（３）受信部２は、時刻５１３ｍ秒（＝ＲＴ(2)）に次のメッセージを受信する。カウント値ｎは２から３に更新される。ここで、受信時刻ＲＴ(2)は、カウント領域Ｃ２の終了時刻ｔ(2)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは２から３に更新される。また、次のモニタ期間の終了時刻ｔ(3)が下式により算出される。ｔ(3)は、カウント領域Ｃ３の終了時刻に相当する。
ｔ(3)＝ｔ(2)＋ＴＣ＝302＋100＝402
【０１３８】
（３ａ）受信時刻ＲＴ(2)は、カウント領域Ｃ３の終了時刻ｔ(3)よりも後である。よって、もう一度Ｓ６が実行される。この結果、予測値ｘは３から４に更新される。また、次のモニタ期間の終了時刻ｔ(4)が下式により算出される。ｔ(4)は、カウント領域Ｃ４の終了時刻に相当する。
ｔ(4)＝ｔ(3)＋ＴＣ＝402＋100＝502
【０１３９】
（３ｂ）受信時刻ＲＴ(2)は、カウント領域Ｃ４の終了時刻ｔ(4)よりも後である。よって、さらにもう一度Ｓ６が実行される。この結果、予測値ｘは４から５に更新される。また、次のモニタ期間の終了時刻ｔ(5)が下式により算出される。ｔ(5)は、カウント領域Ｃ５の終了時刻に相当する。
ｔ(5)＝ｔ(4)＋ＴＣ＝502＋100＝602
【０１４０】
（３ｃ）受信時刻ＲＴ(2)は、カウント領域Ｃ５の終了時刻ｔ(5)よりも前なので、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは３であり、予測値ｘは５である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１４１】
（４）受信部２は、時刻５９８ｍ秒（＝ＲＴ(3)）に次のメッセージを受信する。カウント値ｎは３から４に更新される。ここで、受信時刻ＲＴ(3)は、カウント領域Ｃ５の終了時刻ｔ(5)よりも前なので、Ｓ６が実行されることなく、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは４であり、予測値ｘは５である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１４２】
（５）受信部２は、時刻６１３ｍ秒（＝ＲＴ(4)）に次のメッセージを受信する。カウント値ｎは４から５に更新される。ここで、受信時刻ＲＴ(4)は、カウント領域Ｃ５の終了時刻ｔ(5)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは５から６に更新される。また、次のモニタ期間の終了時刻ｔ(6)が下式により算出される。ｔ(6)は、カウント領域Ｃ６の終了時刻に相当する。
ｔ(6)＝ｔ(5)＋ＴＣ＝602＋100＝702
【０１４３】
（５ａ）受信時刻ＲＴ(4)は、カウント領域Ｃ６の終了時刻ｔ(6)よりも前なので、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは５であり、予測値ｘは６である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。ただし、カウント値ｎは５であり、閾値ｒと同じなので、Ｓ２１が実行される。
【０１４４】
（５ｂ）カウント領域Ｃ６に対する目標受信時刻は、カウント領域Ｃ６の中心であり、カウント領域Ｃ６の終了時刻ｔ(6)から５０を減算することで得られる。すなわち、目標受信時刻は６５２ｍ秒である。この場合、許容範囲は、６３２〜６７２ｍ秒である。そうすると、メッセージの受信時刻ＲＴ(4)は、許容範囲から外れており、再設定は実行されない。
【０１４５】
（６）受信部２は、時刻６９５ｍ秒（＝ＲＴ(5)）に次のメッセージを受信する。カウント値ｎは５から６に更新される。ここで、受信時刻ＲＴ(5)は、カウント領域Ｃ６の終了時刻ｔ(6)よりも前なので、Ｓ６が実行されることなく、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは６であり、予測値ｘも６である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。ただし、カウント値ｎは６であり、閾値ｒよりも大きいので、Ｓ２１が実行される。
【０１４６】
（６ａ）カウント領域Ｃ６に対する目標受信時刻は、上述したように、６５２ｍ秒である。また、許容範囲は、６３２〜６７２ｍ秒である。そうすると、メッセージの受信時刻ＲＴ(5)は、許容範囲から外れており、再設定は実行されない。
【０１４７】
（７）受信部２は、時刻７２０ｍ秒（＝ＲＴ(6)）に次のメッセージを受信する。カウント値ｎは６から７に更新される。ここで、受信時刻ＲＴ(7)は、カウント領域Ｃ６の終了時刻ｔ(6)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは６から７に更新される。また、次のモニタ期間の終了時刻ｔ(7)が下式により算出される。ｔ(7)は、カウント領域Ｃ７の終了時刻に相当する。
ｔ(7)＝ｔ(6)＋ＴＣ＝702＋100＝802
【０１４８】
（７ａ）受信時刻ＲＴ(6)は、カウント領域Ｃ６の終了時刻ｔ(6)よりも前なので、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは７であり、予測値ｘは７である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。ただし、カウント値ｎは７であり、閾値ｒよりも大きいので、Ｓ２１が実行される。
【０１４９】
（７ｂ）カウント領域Ｃ７に対する目標受信時刻は、カウント領域Ｃ７の中心であり、カウント領域Ｃ７の終了時刻ｔ(7)から５０を減算することで得られる。すなわち、目標受信時刻は７５２ｍ秒である。この場合、許容範囲は、７３２〜７７２ｍ秒である。そうすると、メッセージの受信時刻ＲＴ(6)は、許容範囲から外れており、再設定は実行されない。
【０１５０】
（８）受信部２は、時刻７８０ｍ秒（＝ＲＴ(7)）に次のメッセージを受信する。カウント値ｎは７から８に更新される。ここで、受信時刻ＲＴ(7)は、カウント領域Ｃ７の終了時刻ｔ(7)よりも前なので、Ｓ６が実行されることなく、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは８であり、予測値ｘは７である。すなわち、「ｎ＞ｘ」である。よって、判定結果は「攻撃あり」である。この場合、カウント値ｎが１だけデクリメントされる。すなわち、カウント値ｎは、８から７に更新される。また、更新後のカウント値ｎは７であり、閾値ｒよりも大きいので、Ｓ２１が実行される。ただし、カウント領域Ｃ７に対する目標受信時刻は、上述したように、７５２ｍ秒であり、許容範囲は７３２〜７７２ｍ秒である。そうすると、メッセージの受信時刻ＲＴ(7)は、許容範囲から外れているので、再設定は実行されない。
【０１５１】
（９）受信部２は、時刻８５０ｍ秒（＝ＲＴ(8)）に次のメッセージを受信する。カウント値ｎは７から８に更新される。ここで、受信時刻ＲＴ(8)は、カウント領域Ｃ７の終了時刻ｔ(7)よりも後なので、Ｓ６が実行される。この結果、予測値ｘは７から８に更新される。また、次のモニタ期間の終了時刻ｔ(8)が下式により算出される。ｔ(8)は、カウント領域Ｃ８の終了時刻に相当する。
ｔ(8)＝ｔ(7)＋ＴＣ＝802＋100＝902
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは８であり、予測値ｘも８である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。ただし、カウント値ｎは８であり、閾値ｒよりも大きいので、Ｓ２１が実行される。
【０１５２】
（９ａ）カウント領域Ｃ８に対する目標受信時刻は、カウント領域Ｃ８の中心であり、カウント領域Ｃ８の終了時刻ｔ(8)から５０を減算することで得られる。すなわち、目標受信時刻は８５２ｍ秒である。この場合、許容範囲は８３２〜８７２ｍ秒である。そうすると、メッセージの受信時刻ＲＴ(8)は、許容範囲内であり、Ｓ１１の再設定が実行される。この結果、カウント値ｎは、「８」から「ゼロ」に更新される。予測値ｘは、「８」から「ゼロ（＝ｘ−ｎ）」に更新される。さらに、次のモニタ期間の終了時刻ｔ(8)が下式により再計算される。
ｔ(8)＝ＲＴ(8)＋ｐ×ＴＣ＝850＋50＝900
【０１５３】
（１０）受信部２は、時刻９４８ｍ秒（＝ＲＴ(9)）に次のメッセージを受信する。カウント値ｎはゼロから１に更新される。ここで、受信時刻ＲＴ(9)は、カウント領域Ｃ８の終了時刻ｔ(8)よりも後なので、Ｓ６が実行される。この結果、予測値ｘはゼロから１に更新される。また、次のモニタ期間の終了時刻ｔ(9)が下式により算出される。ｔ(9)は、カウント領域Ｃ９の終了時刻に相当する。
ｔ(9)＝ｔ(8)＋ＴＣ＝900＋100＝1000
この後、Ｓ７〜Ｓ９の判定が行われる。このとき、カウント値ｎは１であり、予測値ｘも１である。すなわち、「ｎ＞ｘ」ではない。よって、判定結果は「攻撃なし」である。なお、カウント値ｎは閾値ｒよりも小さいので、再設定は実行されない。
【０１５４】
以下、同様に、攻撃検知装置１にメッセージが到着する毎に、図９に示すフローチャートの処理が実行され、ネットワーク１００への攻撃が検知される。このように、メッセージの送信遅延等に起因して受信タイミングが後ろにシフトする場合であっても、攻撃検知装置１は、ネットワーク１００に対する攻撃を精度よく検知できる。
【符号の説明】
【０１５５】
１  攻撃検知装置
２  受信部
３  予測部
４  カウント部
５  検出部
６  再設定制御部
１４  プロセッサ
１００  ネットワーク
【図１】
2019012899.tif 000003
【図２】
2019012899.tif 000004
【図３】
2019012899.tif 000005
【図４】
2019012899.tif 000006
【図５】
2019012899.tif 000007
【図６】
2019012899.tif 000008
【図７】
2019012899.tif 000009
【図８】
2019012899.tif 000010
【図９】
2019012899.tif 000011
【図１０】
2019012899.tif 000012
【図１１】
2019012899.tif 000013
【図１２】
2019012899.tif 000014
【図１３】
2019012899.tif 000015
【図１４】
2019012899.tif 000016
【図１５】
2019012899.tif 000017
【図１６】
2019012899.tif 000018
【図１７】
2019012899.tif 000019
【図１８】
2019012899.tif 000020