(57)【要約】【課題】攻撃検知の精度を向上する。【解決手段】攻撃検知装置は、送受信部と計算部を備える。送受信部は、ネットワーク中の通信装置からメッセージを受信する。計算部は、周期的に送信される周期メッセージの第１のメッセージの受信時刻を用いて、第１のメッセージ以降に受信する周期メッセージの受信期間を計算する。送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第２のメッセージを、送受信部が第１のメッセージの受信後の受信期間外に受信する。すると、計算部は、第２のメッセージの受信時刻と送信周期を用いて、第２のメッセージ以降に受信する周期メッセージの受信期間を更新する。【選択図】図１
2018088616.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク中の通信装置からメッセージを受信する送受信部と、
周期的に送信される周期メッセージの第１のメッセージの受信時刻を用いて、前記第１のメッセージ以降に受信する周期メッセージの受信期間を計算する計算部
を備え、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第２のメッセージを、前記送受信部が前記第１のメッセージの受信後の前記受信期間外に受信すると、前記計算部は、前記第２のメッセージの受信時刻と前記送信周期を用いて前記第２のメッセージ以降に受信する周期メッセージの受信期間を更新する
ことを特徴とする攻撃検知装置。
【請求項２】
前記ネットワークに対する攻撃が発生したかを判定する判定部
をさらに備え、
前記通信装置から送信されるメッセージ中のデータは、当該メッセージが前記送信周期より短い送信間隔で送信されたかを表わすフラグを含み、
前記判定部は、前記送信周期と同じ送信間隔で送信されたことを表すフラグを有するメッセージの受信時刻が前記受信期間に含まれない場合、前記ネットワークに対する攻撃が発生したと判定する
ことを特徴とする請求項１に記載の攻撃検知装置。
【請求項３】
前記受信期間を記憶する記憶部
をさらに備え、
前記計算部は、前記第２のメッセージを基準として、前記第２のメッセージの後に送信される複数の周期メッセージの受信期間を計算し、
前記記憶部は、前記第２のメッセージの後に送信される前記複数の周期メッセージのそれぞれに対応する前記受信期間を記憶し、
前記判定部は、前記第２のメッセージの後に送信される前記周期メッセージの受信時刻が、対応付けられた受信期間に含まれない場合、前記ネットワークに対する攻撃を検出したと判定する
ことを特徴とする請求項２に記載の攻撃検知装置。
【請求項４】
ネットワーク中の通信装置からメッセージを受信し、
周期的に送信される周期メッセージの第１のメッセージの受信時刻を用いて、前記第１のメッセージ以降に受信する周期メッセージの受信期間を計算し、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第２のメッセージを、前記第１のメッセージの受信後の前記受信期間外に受信すると、前記第２のメッセージの受信時刻と前記送信周期を用いて、前記第２のメッセージ以降に受信する周期メッセージの受信期間を更新する
処理を攻撃検知装置が行うことを特徴とする攻撃検知方法。
【請求項５】
ネットワーク中の通信装置からメッセージを受信し、
周期的に送信される周期メッセージの第１のメッセージの受信時刻を用いて、前記第１のメッセージ以降に受信する周期メッセージの受信期間を計算し、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第２のメッセージを、前記第１のメッセージの受信後の前記受信期間外に受信すると、前記第２のメッセージの受信時刻と前記送信周期を用いて前記第２のメッセージ以降に受信する周期メッセージの受信期間を更新する
処理を攻撃検知装置に行わせることを特徴とする攻撃検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、攻撃検知装置、攻撃検知方法、および、攻撃検知プログラムに関する。
【背景技術】
【０００２】
自動車の車載ネットワークやファクトリーオートメーションなどに使用される装置間で、データや制御情報を送受信するために、ＣＡＮ（Controller Area Network）と呼ばれるネットワーク技術が使用されることがある。ＣＡＮが用いられるシステムは、複数のＥＣＵ（electronic control unit）を含む。ＥＣＵ同士はデータフレーム（メッセージ）を送受信することにより通信を行う。ＣＡＮでは、通信に使用されるデータフレームには、データフレームの識別に使用される識別情報（ＩＤ）が含まれている。また、各ＥＣＵは、受信するデータフレームのＩＤを予め記憶している。ＣＡＮでは、データフレームはブロードキャストされるため、複数のデータフレームが同時にＣＡＮに接続されたＥＣＵに到達する。データフレームの送信タイミングが複数のデータフレームで一致した場合には、データフレームに含まれているＩＤの値によってデータフレームの優先順位が決定され、優先されるデータフレームが先に送信される。優先されないデータフレームは、優先されるデータフレームの送信後に、ブロードキャストされる。データフレームがブロードキャストされると、各ＥＣＵは、ＥＣＵが受信するように設定されたＩＤを含むデータフレームを受信するが、受信対象に設定されていないＩＤを含むデータフレームは破棄する。
【０００３】
しかし、各ＥＣＵは、そのＥＣＵが受信するように設定されたＩＤを含むデータフレームを用いてネットワークへの攻撃が行われた場合、攻撃に使用されるフレームを受信してしまう。攻撃に使用されるフレームを受信したＥＣＵは、フレームの受信に起因して、本来は行わない動作を行ってしまうおそれがある。そこで、攻撃によって送信されているフレームを特定するための試みが行われてきている。例えば、データフレームの送信周期に関する所定ルールに適合しないデータフレームを受信すると、データフレーム中の特定識別子を検証して、データフレームが攻撃によるものかを判定することが提案されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１５／１７０４５１号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
周期的に送信されるメッセージと、周期ごとには送信されないメッセージの両方が送信されるシステムでは、攻撃に使用されるフレームの特定が困難な場合がある。背景技術に述べた技術では、送信周期以外で送信されるメッセージの送信後に、そのメッセージの送信時刻を基準として、周期的にメッセージを送信する場合に、周期的に送信されたメッセージを攻撃に使用されるフレームと誤認してしまうことがある。
【０００６】
本発明は、１つの側面として、攻撃検知の精度を向上することを目的とする。
【課題を解決するための手段】
【０００７】
ある１つの態様にかかる攻撃検知装置は、送受信部と計算部を備える。送受信部は、ネットワーク中の通信装置からメッセージを受信する。計算部は、周期的に送信される周期メッセージの第１のメッセージの受信時刻を用いて、前記第１のメッセージ以降に受信する周期メッセージの受信期間を計算する。前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第２のメッセージを、前記送受信部が前記第１のメッセージの受信後の前記受信期間外に受信する。すると、前記計算部は、前記第２のメッセージの受信時刻と前記送信周期を用いて、前記第２のメッセージ以降に受信する周期メッセージの受信期間を更新する。
【発明の効果】
【０００８】
攻撃検知の精度が向上する。
【図面の簡単な説明】
【０００９】
【図１】実施形態にかかる攻撃検知方法の例を説明する図である。
【図２】攻撃検知装置の構成の例を説明する図である。
【図３】送信装置の構成の例を説明する図である。
【図４】ハードウェア構成の例を説明する図である。
【図５】ネットワークの例を説明する図である。
【図６】送受信されるフレームのフォーマットの例を示す図である。
【図７】送信装置が保持する情報の例を示す図である。
【図８】送信処理の例を説明するフローチャートである。
【図９】攻撃検知装置が保持する情報の例を説明する図である。
【図１０】第１の実施形態にかかる攻撃検知方法の例を説明する図である。
【図１１】攻撃検知装置の処理の例を説明するフローチャートである。
【図１２】マージンが適切ではないときに発生する問題の例を説明する図である。
【図１３】攻撃検知装置の構成の例を説明する図である。
【図１４】第２の実施形態にかかる攻撃検知方法の例を説明する図である。
【図１５】攻撃検知装置が保持する情報の例を説明する図である。
【図１６】第２の実施形態にかかる攻撃検知方法の例を説明する図である。
【図１７】攻撃検知装置の処理の例を説明するフローチャートである。
【図１８】攻撃検知装置の処理の例を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
図１は、実施形態にかかる攻撃検知方法の例を説明する図である。図１では、黒い三角（▲）は周期的に送信されるデータフレーム（周期メッセージ）を攻撃検知装置が受信したタイミングを示し、白い三角（△）は周期に関係なく送信されるデータフレーム（非周期メッセージ）を攻撃検知装置が受信したタイミングを示す。ケースＣ１では、周期的に送信されるメッセージであるメッセージＭ１とＭ４の間に、非周期で送信されるメッセージＭ２とＭ３が送信され、その後、周期的なメッセージＭ５とＭ６が送信されている。このとき、周期の基準は、メッセージＭ１の送信時点から変更されない。一方、ケースＣ２では、周期的に送信されるメッセージであるメッセージＭ１１とＭ１２の後に、非周期で送信されるメッセージＭ１３が送信され、その後、メッセージＭ１３の送信時刻を周期の基準として周期的なメッセージＭ１４とＭ１５が送信されている。
【００１１】
実施形態にかかる方法では、データフレームを送信する通信装置（送信装置）は、送信対象のメッセージを、前回送信したメッセージの送信時刻からの経過時刻が周期よりも短い状態で送信しているかを、攻撃検知装置に認識させるための処理を行う。この処理は、メッセージが周期的に送信されているか、非周期的に送信されているかに関わらず行われる。例えば、送信装置は、送信対象のフレーム中に、周期よりも短い間隔で送信しているメッセージであるかの判定に使用するフラグ（短間隔フラグ）を含めることができる。図１の説明では、送信装置は、周期よりも短い送信間隔で送信するメッセージは短間隔フラグ＝１、周期どおりに送信するメッセージは短間隔フラグ＝０に設定するとする。
【００１２】
例えば、送信周期がＴである場合、ケースＣ２では、送信装置は、メッセージＭ１３をメッセージＭ１２の送信時刻からメッセージの送信周期が経過する前に送信している。このため、送信装置は、メッセージＭ１３において、短間隔フラグを１に設定する。一方、送信装置は、メッセージＭ１３の送信時刻から送信周期が経過すると、メッセージＭ１４を送信し、メッセージＭ１４の送信時刻から送信周期が経過するとメッセージＭ１５を送信している。このため、メッセージＭ１４とＭ１５では、短間隔フラグは０に設定される。同様に、メッセージＭ１２でも短間隔フラグは０に設定される。
【００１３】
攻撃検知装置は、受信メッセージが前回のメッセージの送信時刻からメッセージの送信周期が経過する前に送信されたメッセージである場合、受信メッセージを基準として、以後のメッセージが周期的に送信された場合の受信時刻を予測する。一方、受信メッセージが前回のメッセージの送信時刻からメッセージの送信周期どおりに送信されたメッセージである場合、攻撃検知装置は、メッセージの受信時刻が予測した受信期間内に含まれていれば、攻撃に使用されたフレームではないと判定する。
【００１４】
例えば、攻撃検知装置は、メッセージＭ１２の受信後にメッセージＭ１３を受信する。メッセージＭ１３では短間隔フラグ＝１であるため、攻撃検知装置は、メッセージＭ１３の受信時刻からメッセージの送信間隔Ｔが経過した時刻の周辺の期間を、メッセージＭ１３の次に受信するメッセージの受信期間として計算する。ここで、メッセージＭ１３の次に受信するメッセージの受信期間を矢印Ｐｘで表わす。
【００１５】
攻撃検知装置は、メッセージＭ１３の次に、短間隔フラグ＝０に設定されているメッセージＭ１４を受信する。ケースＣ２の例では、メッセージＭ１４の受信時刻は、メッセージＭ１４に対して予測した受信期間（矢印Ｐｘ）の範囲内である。そこで、攻撃検知装置は、メッセージＭ１４は攻撃用のフレームではないと判定する。すると、攻撃検知装置は、メッセージＭ１４の受信時刻と送信周期Ｔを用いて、メッセージＭ１４の次に受信するメッセージの受信期間を計算する。ここで、メッセージＭ１４の次に受信するメッセージの受信期間を矢印Ｐｙで表わす。攻撃検知装置は、メッセージＭ１４の次に、短間隔フラグ＝０に設定されているメッセージＭ１５を、予測した受信期間（矢印Ｐｙ）に受信する。そこで、攻撃検知装置は、メッセージＭ１５は攻撃用のフレームではないと判定する。
【００１６】
このように、実施形態にかかる方法では、攻撃検知装置は、受信したメッセージが送信装置から周期よりも短い間隔で送信されたメッセージであるかを、短間隔フラグなどを用いて特定することができる。このため、ケースＣ２のように、非周期的に送信されたメッセージの後に、非周期的に送信されたメッセージを基準として周期的なメッセージの送信が行われても、周期的なメッセージが攻撃用のフレームであるかを判定できる。車両に搭載されるＣＡＮなどでは、ケースＣ２のように、非周期的に送信されたメッセージを基準として周期的なメッセージの送信が行われるシステムが多いので、実施形態にかかる方法は、車両に搭載されるＣＡＮなどに適用しやすい。
【００１７】
実施形態にかかる方法は、ケースＣ２の場合だけでなく、ケースＣ１に示すように周期的なメッセージの間に非周期メッセージの送信が行われるケースであっても、周期的なメッセージが攻撃用のフレームであるかを判定できる。
【００１８】
例えば、送信周期がＴである場合、ケースＣ１では、送信装置は、メッセージＭ２、Ｍ３、Ｍ４を、前回のメッセージの送信時刻からメッセージの送信周期が経過する前に送信している。このため、送信装置は、メッセージＭ２、Ｍ３、Ｍ４において、短間隔フラグを１に設定する。一方、送信装置は、メッセージＭ４の送信時刻から送信周期が経過すると、メッセージＭ５を送信し、メッセージＭ５の送信時刻から送信周期が経過するとメッセージＭ６を送信している。このため、メッセージＭ５とＭ６では、短間隔フラグは０に設定される。
【００１９】
一方、攻撃検知装置は、メッセージＭ１の受信後にメッセージＭ２を受信する。メッセージＭ２では短間隔フラグ＝１であるため、攻撃検知装置は、メッセージＭ２の受信時刻とメッセージの送信間隔Ｔを用いて、メッセージＭ２の次に受信するメッセージの受信期間を計算する。攻撃検知装置は、メッセージＭ２の次にメッセージＭ３を受信するが、メッセージＭ３でも短間隔フラグ＝１に設定されているので、メッセージＭ３の次に受信するメッセージの受信期間を計算する。攻撃検知装置は、メッセージＭ３の次にメッセージＭ４を受信するが、メッセージＭ４でも短間隔フラグ＝１に設定されているので、メッセージＭ４の次に受信するメッセージの受信期間を計算する。ここで、メッセージＭ４の次に受信するメッセージの受信期間を矢印Ｐａで表わす。
【００２０】
攻撃検知装置は、メッセージＭ４の次に、短間隔フラグ＝０に設定されているメッセージＭ５を受信する。ケースＣ１の例では、メッセージＭ５の受信時刻はメッセージＭ５に対して予測した受信期間（矢印Ｐａ）の範囲内であるので、攻撃検知装置は、メッセージＭ５は攻撃用のフレームではないと判定する。すると、攻撃検知装置は、メッセージＭ５の受信時刻と送信周期Ｔを用いて、メッセージＭ５の次に受信するメッセージの受信期間を計算する。メッセージＭ５の次に受信するメッセージの受信期間を矢印Ｐｂで表わす。攻撃検知装置は、メッセージＭ５の次に、短間隔フラグ＝０に設定されているメッセージＭ６を、予測した受信期間（矢印Ｐｂ）に受信したとする。すると、攻撃検知装置は、メッセージＭ６は攻撃用のフレームではないと判定する。
【００２１】
このように、実施形態にかかる方法は、周期メッセージの周期の基準となる時刻が非周期メッセージの送信時刻によって変動するシステムと、周期メッセージの周期の基準となる時刻が非周期メッセージによって変動しないシステムのいずれにも適用できる。このため、周期的に送信されるデータフレームと、周期ごとには送信されないデータフレームの両方が送信されるシステムにおける攻撃検知の精度が向上する。実施形態にかかる方法により、特に、周期メッセージを装った攻撃の検出精度が向上する。
【００２２】
＜装置構成とネットワークの例＞
図２は、攻撃検知装置１０の構成の例を説明する図である。攻撃検知装置１０は、送受信部１１、制御部２０、記憶部３０を備える。制御部２０は、計算部２１と判定部２２を備える。記憶部３０は、送信条件３１、受信状況情報３２、受信予測３３を保持する。
【００２３】
送信条件３１は、攻撃検知装置１０が受信する周期メッセージに含まれているＩＤと、そのＩＤで識別される周期メッセージの送信周期を対応付けている。受信状況情報３２は、攻撃検知装置１０が受信した最新のメッセージの受信時刻を記録する。送信条件３１と受信状況情報３２の例は後述する。
【００２４】
計算部２１は、送信条件３１や受信状況情報３２を用いて、ＩＤごとに、周期メッセージの受信予測を計算する。計算部２１は、得られた計算結果を受信予測３３に格納する。このため、受信予測３３もＩＤごとに生成される。受信予測３３の例も後述する。判定部２２は、受信したメッセージ中の短間隔フラグと受信予測３３を用いて、ネットワークに対する攻撃が発生したかを判定する。
【００２５】
図３は、送信装置４０の構成の例を説明する図である。送信装置４０は、送受信部１１、制御部５０、記憶部６０を備える。制御部５０は、データ生成部５１、フラグ設定部５２、フレーム生成部５３を有する。記憶部６０は、送信条件６１とフラグ設定条件６２を保持する。
【００２６】
送信条件６１は、送信装置４０が送信する周期メッセージに含まれているＩＤと、そのＩＤで識別される周期メッセージの送信周期を対応付けている。フラグ設定条件６２は、短間隔フラグの設定条件を表わしている。ここで、短間隔フラグは、送信対象のフレームと同じ識別情報を有する前回の送信フレームの送信時刻から、送信する対象のフレームの送信時刻までの経過時間が、送信周期よりも短いかを表わすフラグである。
【００２７】
データ生成部５１は、送信フレームに含めるデータを生成する。フラグ設定部５２は、短間隔フラグを設定する。フレーム生成部５３は、データ生成部５１が生成したデータとフラグ設定部５２での短間隔フラグの設定結果を用いて、送信対象のフレームを生成する。送受信部１１は、他の装置との間でフレームの送受信を行う。
【００２８】
図４は、攻撃検知装置１０と送信装置４０のハードウェア構成の例を説明する図である。図４の例では、攻撃検知装置１０と送信装置４０は、ＥＣＵ１００として実現されている。ＥＣＵ１００は、ＣＡＮトランシーバ１０１、ＣＡＮコントローラ１０２、処理回路１０３を含む。処理回路１０３は、プロセッサ１０４とメモリ１０５を備える。
【００２９】
ＣＡＮトランシーバ１０１は、適宜、バス電圧の調整など、ＥＣＵ１００がＣＡＮネットワーク中の他の装置と通信するための処理を行う。ＣＡＮコントローラ１０２は、受信したフレームに対するＣＲＣ（Cyclic Redundancy Check）チェックやビットスタッフィングなどの処理を行うことにより、データを抽出する。ＣＡＮコントローラ１０２は、データをプロセッサ１０４に出力する。プロセッサ１０４は、任意の処理回路であり、例えば、ＣＰＵ（Central Processing Unit）とすることができる。プロセッサは、メモリ１０５に格納されたプログラムを読み込んで、処理を行う。なお、ＥＣＵ１００は、記憶媒体からプログラムやデータを読み出すための装置を備えていても良い。この場合、プログラムは、任意の記憶媒体に記録されていても良く、ＥＣＵ１００によって、記憶媒体から適宜、読み出される。
【００３０】
攻撃検知装置１０では、ＣＡＮトランシーバ１０１とＣＡＮコントローラ１０２により、送受信部１１が実現される。プロセッサ１０４は、制御部２０として動作する。メモリ１０５は記憶部３０として動作する。送信装置４０では、ＣＡＮトランシーバ１０１とＣＡＮコントローラ１０２により、送受信部１１が実現される。プロセッサ１０４は、制御部５０として動作する。メモリ１０５は記憶部６０として動作する。
【００３１】
＜ネットワークとフレームの例＞
図５は、ネットワークの例を説明する図である。図５に示すネットワークＮ１では、複数のＥＣＵ１００（ＥＣＵ０〜ＥＣＵｋ）が１本のバスで互いにフレームの送受信が可能になるように接続されている。図５のネットワークに含まれるＥＣＵ１００のうちの１つ以上が攻撃検知装置１０として動作するものとする。例えば、１つの攻撃検知装置１０がネットワーク中で送受信される全ての周期メッセージに対する攻撃を検知しても良い。また、複数の攻撃検知装置１０を用いて全ての周期メッセージに対する攻撃を検知するように検知対象が攻撃検知装置１０ごとに決められていても良い。また、図５のネットワークに含まれるＥＣＵ１００のうちの１つ以上が送信装置４０として動作する。
【００３２】
周期メッセージの送信タイミングと、攻撃検知装置１０での受信タイミングの例も図５に示す。図５の例では、ＥＣＵ０が攻撃検知装置１０として動作することにより、ＩＤ＝Ａ、Ｂ、Ｃの各々の周期メッセージに対する攻撃を検知するものとする。この場合、攻撃検知装置１０として動作するＥＣＵ０では、ＩＤ＝Ａ、Ｂ、Ｃの各々の周期メッセージを受信対象として取得する。一方、ＥＣＵ１はＩＤ＝Ａの周期メッセージを送信し、ＥＣＵ２はＩＤ＝Ｂの周期メッセージを送信するとする。また、ＥＣＵ３はＩＤ＝Ｃの周期メッセージを送信するものとする。
【００３３】
図５のタイミング図に示すように、ＩＤ＝Ａ、Ｂ、Ｃの各周期メッセージは送信されたタイミングとほぼ同時に、ＥＣＵ０で受信される。ＥＣＵ０では、受信したメッセージの受信タイミングを、そのメッセージ中のＩＤに対応付けて解析することにより、攻撃を検知する。攻撃の検知の詳細については後述する。
【００３４】
図６は、送受信されるフレームのフォーマットの例を示す図である。図６のＦ１１は、一般仕様のフレームのフォーマット例であり、Ｆ１２は拡張仕様で使用されるフレームのフォーマット例である。
【００３５】
一般仕様のフレームは、ＳＯＦ（Start of Frame）、調停（arbitration）フィールド、コントロールフィールド、データフィールド、ＣＲＣフィールド、ＡＣＫフィールド、ＥＯＦ（End of Frame）を含む。調停フィールドには、ＩＤとＲＴＲ（Remote Transmission Request）が含まれる。ここで、ＩＤは、データフレームの識別に使用される識別情報である。コントロールフィールドには、ＩＤＥ（Identifier Extension）、予約ビット、ＤＬＣ（Data Length Code）が含まれる。ＣＲＣフィールドは、ＣＲＣシーケンスとＣＲＣデリミタを含む。ＡＣＫフィールドは、ＡＣＫスロットとＡＣＫデリミタを含む。なお、各フィールドに含まれる情報要素のビット長は、Ｆ１１の一番下の行に記載したとおりである。例えば、ＩＤの長さは１１ビットであり、データフィールドの長さは０〜６４ビットの可変長である。
【００３６】
拡張仕様で使用されるデータフレーム（Ｆ１２）も、ＳＯＦ、調停フィールド、コントロールフィールド、データフィールド、ＣＲＣフィールド、ＡＣＫフィールド、ＥＯＦを含む。拡張仕様の調停フィールドは、ＩＤベース、ＳＲＲ（Substitute Remote Request Bit）、ＩＤＥ、ＩＤ拡張、ＲＴＲを含む。拡張仕様では、ＩＤベースとして格納されたビット列の次に、ＩＤ拡張として格納されたビット列をつなげて得られるビット列により、データフレームの識別情報（ＩＤ）を表わす。コントロールフィールドからＥＯＦまでは、拡張仕様のフォーマットでも、一般仕様のフォーマットと同様である。また、各フィールドに含まれる情報要素のビット長は、Ｆ１２の一番下の行に記載したとおりである。このため、拡張フォーマットでは、送信元の識別情報として、ＩＤベースの１１ビットとＩＤ拡張の１８ビットを合わせた２９ビットのビット列が使用される。
【００３７】
システム中で送受信されるフレームのフォーマットがＦ１１とＦ１２のいずれであっても、短間隔フラグは、データフィールド中に含められる。また、送信装置４０と攻撃検知装置１０は、予め、データフィールド中で短間隔フラグが記録されている領域を記憶しているものとする。例えば、短間隔フラグの設定位置は、送信条件３１、送信条件６１、フラグ設定条件６２などに含まれていても良い。
【００３８】
以下、図６のＦ１１に示すフォーマットを用いたデータフレームが送受信される場合を例として、各実施形態で行われる処理の例を説明する。なお、通信に使用されるデータフレームが拡張仕様の場合でも、同様に処理が行われる。
【００３９】
＜第１の実施形態＞
以下、第１の実施形態を、送信装置４０からのフレームの送信と、攻撃検知装置１０での判定処理に分けて説明する。
【００４０】
（１）送信装置４０からのフレームの送信
図７は、送信装置４０が保持する情報の例を示す図である。送信条件６１は、送信装置４０が送信するメッセージに含まれるＩＤ、送信周期、短間隔フラグの位置を含む。送信周期は、エントリ中のＩＤで識別される周期メッセージが送信される周期である。短間隔フラグの位置は、エントリ中のＩＤで識別されるメッセージの短間隔フラグとして使用されるデータフィールドの領域を指定する情報である。例えば、図７中の送信条件６１には、ＩＤ＝０ｘ１２３の周期メッセージが１００ｍ秒周期で送信されることと、ＩＤ＝０ｘ１２３を有するメッセージでは、データフィールドの先頭ビットが短間隔フラグとして使用されることが示されている。
【００４１】
フラグ設定条件６２には、短間隔フラグの値ごとに、その値が設定されるときの条件が対応付けられている。図７の例では、あるＩＤで識別されるメッセージについて、前回のメッセージの送信時刻から今回のメッセージの送信時刻までの期間が周期と一致する場合は、短間隔フラグ＝０に設定されることがフラグ設定条件６２に記録されている。一方、あるＩＤで識別されるメッセージについて、前回のメッセージの送信時刻から今回のメッセージの送信時刻までの期間が周期よりも短い場合は、短間隔フラグ＝１に設定される。例えば、フラグ設定部５２は、送信処理を行うフレームのＩＤごとにフレームの送信間隔を計測するためのタイマを保持していて、タイマのカウント値を用いて、短間隔フラグの設定値を決定することできる。
【００４２】
図８は、送信処理の例を説明するフローチャートである。図８の例では、タイマは、そのタイマで送信間隔の測定を行っているメッセージ（データフレーム）に含まれているＩＤに対応付けられている送信周期で満了するように設定されているとする。例えば、送信装置４０が図７に示す送信条件６１を保持している場合、ＩＤ＝０ｘ１２３のメッセージの処理に用いられるタイマは１００ｍｓで満了するように設定されている。
【００４３】
フラグ設定部５２は、タイマを初期化する（ステップＳ１）。その後、フラグ設定部５２は、タイマが満了しているかを判定する（ステップＳ２）。タイマが満了していない場合、フラグ設定部５２は、メッセージを送信するイベントが発生しているかを判定する（ステップＳ２でＮｏ、ステップＳ３）。メッセージを送信するイベントが発生していない場合、フラグ設定部５２は、タイマをカウントアップし、ステップＳ２に戻る（ステップＳ３でＮｏ、ステップＳ４）。
【００４４】
一方、メッセージを送信するイベントが発生している場合、非周期的に送信されるメッセージの送信処理が行われる（ステップＳ３でＹｅｓ）。フラグ設定部５２は、短間隔フラグを１に設定する（ステップＳ５）。フラグ設定部５２は、短間隔フラグの値をフレーム生成部５３に通知する。フレーム生成部５３は、データ生成部５１で生成されたデータと、フラグ設定部５２から取得した短間隔フラグの値、短間隔フラグの位置情報を用いて、送信メッセージを生成する（ステップＳ７）。送受信部１１は、生成されたメッセージを送信し、ステップＳ１に戻る（ステップＳ８）。
【００４５】
ステップＳ２においてタイマが満了している場合、周期的に送信されるメッセージの送信処理が行われる（ステップＳ２でＹｅｓ）。フラグ設定部５２は、短間隔フラグを０に設定する（ステップＳ６）。その後、フラグ設定部５２は、短間隔フラグの値をフレーム生成部５３に通知する。このため、ステップＳ６の処理後も、ステップＳ７とＳ８の処理が行われる。
【００４６】
なお、図８は送信装置４０の処理の一例であって、実装に応じて変更され得る。例えば、図１のケースＣ１に示すように、周期メッセージの基準を変更せずに非周期メッセージが送信されるシステムでは、送信装置４０の処理は、ステップＳ８の処理後にステップＳ２に戻るように変形される。
【００４７】
（２）攻撃検知装置１０での判定処理
図９は、攻撃検知装置１０が保持する情報の例を説明する図である。攻撃検知装置１０は、予め、送信条件３１を記憶している。送信条件３１は、攻撃検知装置１０が受信するメッセージに含まれるＩＤ、送信周期、マージン、短間隔フラグの位置を含む。送信周期は、エントリ中のＩＤで識別される周期メッセージが送信される周期である。マージンは、エントリ中のＩＤで識別される周期メッセージの受信期間を予測する際に、送信周期からずれる範囲の許容値として使用する値である。短間隔フラグの位置は、エントリ中のＩＤで識別されるメッセージのデータフィールド中で、短間隔フラグとして使用される領域を特定する情報である。
【００４８】
図９中の送信条件３１には、ＩＤ＝０ｘ１２３の周期メッセージが１００ｍ秒周期で送信されることと、ＩＤ＝０ｘ１２３の周期メッセージについての受信期間の予測には、１０ｍ秒のマージンが使用されることが示されている。さらに、ＩＤ＝０ｘ１２３を有するメッセージでは、データフィールドの先頭ビットが短間隔フラグとして使用されることも送信条件３１に含まれている。
【００４９】
受信状況情報３２には、受信期間の計算に使用可能なメッセージの受信時刻が、受信期間の計算に使用可能なメッセージに含まれているＩＤと対応付けて記録されている。ここで、受信期間の計算に使用可能なメッセージとして、攻撃に使用されていないと判定された周期メッセージと、周期よりも短い間隔で送信されたメッセージが使用される。判定部２２は、受信期間の計算に使用可能なメッセージのうちで最後に受信したメッセージの受信時刻を受信状況情報３２に記録する。図９に受信状況情報３２の記録例を示す。図９の例では、ＩＤ＝０ｘ１２３を含むメッセージを攻撃検知装置１０が受信した時刻は５０ｍｓである。なお、判定部２２での判定処理については、図１０を参照しながら説明する。
【００５０】
計算部２１は、受信状況情報３２が更新されると、送信条件３１に記録されている送信周期とマージンを用いて、ＩＤごとに、受信予測３３を生成する。図９には、ＩＤ＝０ｘ１２３の周期メッセージについて生成された受信予測３３の例を示している。受信期間の計算に使用可能なメッセージが５０ｍｓに受信されているので、送信周期Ｔに従って送信されたメッセージを受信可能な期間（受信期間）は、５０ｍｓ＋１００ｍｓ±１０ｍｓと計算される。従って、ＩＤ＝０ｘ１２３で短間隔フラグ＝０に設定されているメッセージを次に受信する場合、受信するメッセージが攻撃によるフレームでなければ、受信期間である１４０ｍｓ〜１６０ｍｓに受信すると予想される。
【００５１】
図１０は、第１の実施形態にかかる攻撃検知方法の例を説明する図である。図１０では、黒い下向きの三角形（▼）は、短間隔フラグ＝０に設定されたメッセージを攻撃検知装置１０が受信したタイミングを示し、白い下向きの三角形（▽）は短間隔フラグ＝１に設定されたメッセージを攻撃検知装置１０が受信したタイミングを示す。なお、図１０では、メッセージＭ２１〜Ｍ２３と攻撃に使用されたフレームＡＴ１のいずれも、ＩＤ＝０ｘ１２３で識別されるものとする。
【００５２】
ケースＣ１１の０ｍｓの時点において、攻撃検知装置１０は受信期間の計算に使用可能なメッセージを１つも受信していないとする。この場合、受信状況情報３２と受信予測３３には、データが記録されていない。
【００５３】
その後、５０ｍｓにおいてＩＤ＝０ｘ１２３を含むメッセージＭ２１が攻撃検知装置１０に到達したとする。この時点では、受信予測３３が求められていないので、判定部２２は、メッセージＭ２１を攻撃によるフレームではないと判定する。判定部２２は、メッセージＭ２１の受信時刻を受信状況情報３２（図９）に記録する。
【００５４】
計算部２１は、受信状況情報３２が更新されると、送信条件３１（図９）に記録されている送信周期とマージンを用いて、送信周期Ｔに従って送信されたメッセージを受信可能な期間（受信期間）を計算する。なお、送信周期Ｔに従って送信されたメッセージでは、短間隔フラグ＝０である。計算部２１は、図９を参照しながら説明した処理により、短間隔フラグ＝０を含むメッセージの受信期間を、１４０ｍｓ〜１６０ｍｓと計算する。メッセージＭ２１の次に受信するメッセージについて計算部２１が計算した受信期間を、矢印Ｐ１で示す。
【００５５】
１４８ｍｓにおいて、ＩＤ＝０ｘ１２３で識別されるメッセージＭ２２が攻撃検知装置１０に到達したとする。判定部２２は、メッセージＭ２２の受信時刻が受信予測３３中の情報と合致しているかを判定する。受信予測３３は矢印Ｐ１で示すように１４０ｍｓ〜１６０ｍｓであるので、メッセージＭ２２の受信時刻が受信予測３３中の情報と合致している。そこで、判定部２２は、メッセージＭ２２を攻撃によるフレームではないと判定する。判定部２２は、メッセージＭ２２の受信時刻を用いて受信状況情報３２を更新する。
【００５６】
計算部２１は、受信状況情報３２が更新されると、送信周期とマージンを用いて、次に受信するメッセージが短間隔フラグ＝０である場合の受信期間を計算する。メッセージＭ２２の受信時刻が１４８ｍｓであるので、計算部２１は、短間隔フラグ＝０を含むメッセージの受信期間を、１４８ｍｓ＋１００ｍｓ±１０ｍｓ＝２３８ｍｓ〜２５８ｍｓと計算したとする。メッセージＭ２２の次に受信するメッセージについて計算部２１が計算した受信期間を、矢印Ｐ２で示す。計算部２１は、得られた計算結果で受信予測３３を更新する。
【００５７】
ケースＣ１２は、ケースＣ１１の後で、メッセージＭ２３が攻撃検知装置１０に到達した場合を示す。２００ｍｓにＩＤ＝０ｘ１２３で識別されるメッセージＭ２３が攻撃検知装置１０に到達したとする。判定部２２は、メッセージＭ２３の受信時刻が受信予測３３中の情報と合致しているかを判定する。受信予測３３は矢印Ｐ２で示すように２３８ｍｓ〜２５８ｍｓであるので、メッセージＭ２３の受信時刻は受信予測３３中の情報と合致していない。
【００５８】
そこで、判定部２２は、メッセージＭ２３に含まれている短間隔フラグの値を特定する。このとき、判定部２２は、送信条件３１中の短間隔フラグの位置の情報を用いる。短間隔フラグは、メッセージＭ２３のデータフィールドの先頭ビットである。ここで、メッセージＭ２３のデータフィールドの先頭ビットの値が１であるとする。この場合、短間隔フラグの値は１であるので、メッセージＭ２３は、メッセージＭ２２の送信から送信周期である１００ｍｓが経過する前に送信されている。そこで、判定部２２は、メッセージＭ２３を攻撃に使用されているフレームではないと判定する。判定部２２は、メッセージＭ２３の受信時刻で受信状況情報３２を更新する。換言すると、判定部２２は、メッセージＭ２３の受信により、破線の矢印Ｐ２に示す期間には、短間隔フラグ＝０のメッセージを受信しないことを認識できる。
【００５９】
計算部２１は、受信状況情報３２が更新されると、送信周期とマージンを用いて、次に受信するメッセージが短間隔フラグ＝０である場合の受信期間を計算する。メッセージＭ２３の受信時刻が２００ｍｓであるので、計算部２１は、短間隔フラグ＝０を含むメッセージの受信期間を、２００ｍｓ＋１００ｍｓ±１０ｍｓ＝２９０ｍｓ〜３１０ｍｓと計算したとする。メッセージＭ２３の次に受信するメッセージについて計算部２１が計算した受信期間を、矢印Ｐ３で示す。計算部２１は、得られた計算結果で受信予測３３を更新する。
【００６０】
ケースＣ１３は、ケースＣ１２の後で、攻撃用フレームＡＴ１が攻撃検知装置１０に到達した場合を示す。２５０ｍｓにＩＤ＝０ｘ１２３で識別される攻撃用フレームＡＴ１が攻撃検知装置１０に到達したとする。判定部２２は、攻撃用フレームＡＴ１の受信時刻が受信予測３３中の情報と合致しているかを判定する。受信予測３３は矢印Ｐ３で示すように２９０ｍｓ〜３１０ｍｓであるので、攻撃用フレームＡＴ１の受信時刻は受信予測３３中の情報と合致していない。
【００６１】
そこで、判定部２２は、攻撃用フレームＡＴ１に含まれている短間隔フラグの値を特定する。攻撃用フレームＡＴ１のデータフィールドの先頭ビットの値が０であるとする。この場合、短間隔フラグの値は０であるので、攻撃用フレームＡＴ１は、メッセージＭ２３の送信から送信周期Ｔである１００ｍｓが経過してから送信されていることになるが、攻撃用フレームＡＴ１の受信時間は受信予測３３と合致しない。そこで、判定部２２は、攻撃用フレームＡＴ１を攻撃に使用されているフレームであると判定する。
【００６２】
図１１は、攻撃検知装置の処理の例を説明するフローチャートである。なお、図１１は一例であり、実装に応じて処理の順序が変更されうる。例えば、ステップＳ１５とＳ１６の順序は任意に変更され得る。
【００６３】
送受信部１１は、メッセージを受信する（ステップＳ１１）。判定部２２は、メッセージの受信時刻を用いて、受信予測３３として予期された期間中の受信であるかを判定する（ステップＳ１２）。受信予測３３として予期された期間中の受信ではない場合、判定部２２は、メッセージの短間隔フラグの値が１に設定されているかを判定する（ステップＳ１２でＮｏ、ステップＳ１３）。メッセージの短間隔フラグの値が１に設定されていない場合、判定部２２は、メッセージが攻撃用のフレームであると判定して、メッセージを破棄する（ステップＳ１３でＮｏ、ステップＳ１４）。
【００６４】
一方、メッセージの短間隔フラグの値が１に設定されている場合、計算部２１は、メッセージの受信時刻を用いて、次の周期で受信するメッセージの受信時刻を予測する（ステップＳ１３でＹｅｓ、ステップＳ１５）。この場合、判定部２２は、メッセージを正常受信したと判定する（ステップＳ１６）。なお、ステップＳ１２において、受信予測３３として予期された期間中の受信であると判定された場合も、ステップＳ１５とＳ１６の処理が行われる。
【００６５】
なお、図１１は、攻撃検知装置１０が行う処理の一例であり、実装に応じて処理は変更されうる。例えば、判定部２２は、受信予測３３として予期された期間中でのメッセージの受信を検出すると（ステップＳ１２でＹｅｓ）、受信メッセージ中の短間隔フラグの値が０に設定されているかを判定するように設定されても良い。
【００６６】
このように、第１の実施形態にかかる方法では、攻撃検知装置１０は、受信したメッセージが送信装置から周期よりも短い間隔で送信されたメッセージであるかを、短間隔フラグを用いて特定することができる。攻撃検知装置１０は、受信予測３３として予測した期間中に受信したメッセージか、短間隔フラグによって送信周期よりも短い間隔で送信されたことが確認されたメッセージを用いて、次の周期のメッセージの受信時刻を予測する。このため、第１の実施形態にかかる方法では、周期メッセージの周期の基準となる時刻が非周期メッセージの送信時刻によって変動するシステムと、周期メッセージの周期の基準となる時刻が非周期メッセージによって変動しないシステムのいずれにも適用できる。従って、第１の実施形態により、周期的に送信されるメッセージと、周期ごとには送信されないメッセージの両方が送信されるシステムにおける攻撃検知の精度が向上する。
【００６７】
＜第２の実施形態＞
第２の実施形態では、フレームの送信タイミングが重なったことなどに起因して周期メッセージの送信タイミングなどが変動した場合でも、誤検出を防ぐために、マージンを広く取った場合の処理について説明する。
【００６８】
図１２は、マージンが適切ではないときに発生する問題の例を説明する図である。ケースＣ２１では、いずれのフレームもＩＤ＝０ｘ１２３を含むものとする。ケースＣ２１では、１００ｍｓの周期で周期メッセージが送信され、マージンは１０ｍ秒に設定されているとする。攻撃検知装置１０は、１つ目の周期メッセージＭ３１を０ｍｓに受信したとする。すると、攻撃検知装置１０は、マージンを用いて、周期メッセージＭ３１の受信から９０ｍｓ〜１１０ｍｓの期間（Ｚ１）に周期メッセージＭ３２を受信すれば、周期メッセージＭ３２が攻撃ではないと判定する。攻撃検知装置１０は、２つ目の周期メッセージＭ３２を１０１ｍｓに受信したとする。すると、周期メッセージＭ３１と周期メッセージＭ３２の受信時刻の差は、１０１ｍｓであり、マージンを用いて計算した範囲内であるので、攻撃検知装置１０は、周期メッセージＭ３２を攻撃では無いと判定する。攻撃検知装置１０は、周期メッセージＭ３２の受信時刻に基づいて、３つ目の周期メッセージを受信する期間を、１９１ｍｓ〜２１１ｍｓの期間（Ｚ２）と予測する。
【００６９】
次に、他のメッセージとの送信との関係で、３つ目の周期メッセージＭ３３が送信されるタイミングが遅れたとする。このため、攻撃検知装置１０は、３つ目の周期メッセージＭ３３を２４０ｍｓに受信したとする。この場合、周期メッセージＭ３２と周期メッセージＭ３３の受信時刻の差は１３９ｍｓであり、マージンを用いて計算したときに許容される範囲（Ｚ２）に含まれていない。このため、攻撃検知装置１０は、周期メッセージＭ３３を攻撃だと誤検知してしまう。さらに、攻撃検知装置１０は、周期メッセージＭ３３の受信時刻を基準として、受信間隔を計算する。ケースＣ２１に示すように、４つ目の周期メッセージを３０１ｍｓに受信すると、攻撃検知装置１０は周期メッセージＭ３３と周期メッセージＭ３４の受信時刻の差は６１ｍｓであり、マージンを用いて計算したときに許容される範囲に含まれないと判定する。このため、攻撃検知装置１０は、周期メッセージＭ３４も攻撃だと誤検知してしまう。
【００７０】
しかし、マージンを広く取ると、誤検出を防止することはできるが、攻撃を見逃してしまう場合もある。ケースＣ２２では、ＩＤ＝０ｘ１２３を含むフレームとして、周期メッセージＭ４１、周期メッセージＭ４２、攻撃用フレームＡＴ２、周期メッセージＭ４３、周期メッセージＭ４４が送信されているとする。攻撃検知装置１０において、送信周期は１００ｍｓ、マージンは４０ｍｓに設定されており、各フレームは以下のタイミングで受信されているとする。
周期メッセージＭ４１：０ｍｓ
周期メッセージＭ４２：１０１ｍｓ
攻撃用フレームＡＴ２：１６１ｍｓ
周期メッセージＭ４３：２４０ｍｓ
周期メッセージＭ４４：３０１ｍｓ
【００７１】
ケースＣ２２では、攻撃検知装置１０は、２つのフレームの受信時刻の間が送信周期±マージンの期間内であれば、攻撃が発生していないと判定する。送信周期±マージンは６０ｍｓ〜１４０ｍｓである。攻撃検知装置１０は、周期メッセージＭ４１を受信すると、Ｐ１１に示す期間を、周期メッセージＭ４２の受信期間として予測する。周期メッセージＭ４２の受信時刻は、周期メッセージＭ４１の受信から１０１ｍｓであり、周期メッセージＭ４１の受信時刻から６０ｍｓ〜１４０ｍｓが経過した期間（Ｐ１１）に含まれている。このため、攻撃検知装置１０は、攻撃が発生していないと判定する。
【００７２】
次に、攻撃検知装置１０は、周期メッセージＭ４２の受信時刻から６０ｍｓ〜１４０ｍｓが経過した期間（Ｐ１２）を、周期メッセージＭ４３の受信期間として予測する。攻撃検知装置１０は、攻撃用フレームＡＴ２を受信すると、周期メッセージＭ４２から６０ｍｓで攻撃用フレームＡＴ２を受信していることから、Ｐ１２の期間中にフレームを受信したと判定する。このため、攻撃検知装置１０は、攻撃が発生していないと判定する。
【００７３】
攻撃検知装置１０は、攻撃用フレームＡＴ２の受信時刻から６０ｍｓ〜１４０ｍｓが経過した期間（Ｐ１３）を、周期メッセージＭ４４の受信期間として予測する。攻撃検知装置１０は、周期メッセージＭ４３を受信すると、攻撃用フレームＡＴ２の受信から７９ｍｓで周期メッセージＭ４３を受信していることから、Ｐ１３の期間中にフレームを受信したと判定する。このため、攻撃検知装置１０は、攻撃が発生していないと判定する。
【００７４】
同様に、攻撃検知装置１０は、周期メッセージＭ４３の受信時刻から６０ｍｓ〜１４０ｍｓが経過した期間（Ｐ１４）を、周期メッセージＭ４５の受信期間として予測する。攻撃検知装置１０は、周期メッセージＭ４４を受信すると、周期メッセージＭ４３の受信から６１ｍｓで周期メッセージＭ４４を受信していることから、Ｐ１４の期間中にフレームを受信したと判定する。このため、攻撃検知装置１０は、攻撃が発生していないと判定する。このように、ケースＣ２２の検出方法では、マージンを広くとっているために、攻撃用フレームＡＴ２による攻撃が起こっていることを見逃してしまう。
【００７５】
そこで、第２の実施形態では、マージンを広くとっても、攻撃に使用されているフレームの見落としを防ぎ、攻撃の誤検出も防止可能な攻撃検知方法について説明する。
【００７６】
図１３は、攻撃検知装置７０の構成の例を説明する図である。攻撃検知装置７０は、送受信部１１、制御部７１、記憶部７５を有する。制御部７１は、計算部７２、判定部７３、基準更新処理部７４を備える。記憶部７５は、基準時刻７６、受信予測７７、送信条件３１を保持し、オプションとして、受信状況情報３２を保持する。
【００７７】
基準更新処理部７４は、受信予測７７の計算の基準となるメッセージを選択する。受信予測７７の計算の基準となるメッセージとして、送信周期よりも短い間隔で送信されたメッセージが使用される。さらに、基準更新処理部７４は、定期的に基準メッセージを更新することによって誤差の蓄積を解消するために、周期メッセージ中から基準メッセージを選択することもある。基準更新処理部７４は、基準メッセージとして選択したメッセージの受信時刻を基準時刻７６として記憶部７５に格納する。
【００７８】
計算部７２は、基準時刻７６と送信条件３１を用いて、ＩＤごとに、複数の周期メッセージの受信予測を計算する。計算部７２は、得られた計算結果を受信予測７７に格納する。このため、受信予測７７もＩＤごとに生成される。受信予測７７の例は後述する。
【００７９】
図１４は、第２の実施形態にかかる攻撃検知方法の例を説明する図である。ステップＳ２１において、基準更新処理部７４は、周期メッセージから選択されたメッセージか、短間隔フラグ＝１のメッセージを、基準メッセージとして選択する。基準メッセージは、同じＩＤの他のメッセージを受信する期間の予測の基準とされるメッセージである。攻撃検知装置７０は、基準メッセージと同じＩＤで識別される複数のメッセージについて、短間隔フラグ＝０に設定されている場合の受信期間を計算し、基準メッセージからの順序に対応付ける（ステップＳ２２）。ステップＳ２２での計算には、基準メッセージに含まれているＩＤに対応付けられた送信周期と基準メッセージの受信時刻が使用される。
【００８０】
その後、送受信部１１は、基準メッセージと同じＩＤを有するｎ番目のメッセージを受信する（ステップＳ２３）。判定部７３は、ｎ番目のメッセージの短間隔フラグが１に設定されているかを判定する（ステップＳ２４）。ｎ番目のメッセージの短間隔フラグが１に設定されている場合、基準更新処理部７４は、ｎ番目のメッセージを新たな基準メッセージに設定して、ステップＳ２２に戻る（ステップＳ２４でＹｅｓ、ステップＳ２５）。ｎ番目のメッセージの短間隔フラグが１に設定されていない場合、判定部７３は、ｎ番目のメッセージの受信時刻は、ｎ番目の周期メッセージの受信期間として予測された期間中であるかを判定する（ステップＳ２４でＮｏ、ステップＳ２６）。ｎ番目のメッセージの受信時刻が、ｎ番目の周期メッセージの受信期間として予測された期間中に含まれていない場合、判定部７３は、攻撃を検出したと判定する（ステップＳ２６でＮｏ、ステップＳ２７）。
【００８１】
一方、ｎ番目のメッセージの受信時刻がｎ番目の周期メッセージの受信期間として予測された期間中である場合、判定部７３は、攻撃を検出していないと判定し、処理を終了する（ステップＳ２６でＹｅｓ）。
【００８２】
図１４には、図１２と同様にメッセージＭ４１〜Ｍ４３と攻撃用フレームＡＴ２が送信されたケースを示す。ここで、基準更新処理部７４は、メッセージＭ４１を基準メッセージに選択したとする。すると、計算部７２は、メッセージＭ４１の受信時刻（０ｍｓ）と送信周期（１００ｍｓ）、マージンを用いて、複数のメッセージについて、各メッセージが短間隔フラグ＝０の場合の受信期間を計算する。例えば、メッセージＭ４１から１番目のメッセージは、短間隔フラグ＝０の場合に矢印Ｐ２１に示す期間での受信が予想される。同様に、メッセージＭ４１から２番目の短間隔フラグ＝０のメッセージは、矢印Ｐ２２に示す期間での受信が予想され、メッセージＭ４１から３番目の短間隔フラグ＝０のメッセージは、矢印Ｐ２３に示す期間での受信が予想される。
【００８３】
その後、送受信部１１は、メッセージＭ４２を受信したとする。判定部７３は、メッセージＭ４２を基準メッセージＭ４１から１番目のメッセージとして扱う。判定部７３は、メッセージＭ４２が矢印Ｐ２１の期間中に受信されているので、攻撃を検出しない。次に、送受信部１１は攻撃用フレームＡＴ２を受信したとする。判定部７３は、攻撃用フレームＡＴ２を基準メッセージＭ４１から２番目のメッセージとして扱う。判定部７３は、攻撃用フレームＡＴ２が矢印Ｐ２２の期間中に受信されているので、この時点では攻撃を検出しない。さらに、送受信部１１はメッセージＭ４３を受信したとする。判定部７３は、メッセージＭ４３を基準メッセージＭ４１から３番目のメッセージとして扱う。判定部７３は、メッセージＭ４３が矢印Ｐ２３の期間中に受信されていないので、攻撃を検出する。
【００８４】
このように、実施形態にかかる方法では、基準とするメッセージから複数周期分後のメッセージの受信期間を予測すると共に、予測した受信期間が基準メッセージから何番目のメッセージであるかを考慮して攻撃の有無を判定する。このため、メッセージの遅延に対応するためにマージンを広く取っていても、攻撃を検出できる。
【００８５】
以下、攻撃検知装置７０が保持する情報の具体例を用いて、攻撃検知装置７０の処理の例を詳しく説明する。
【００８６】
図１５は、攻撃検知装置７０が保持する情報の例を説明する図である。
攻撃検知装置７０は、予め、送信条件３１を記憶している。送信条件３１は、攻撃検知装置１０が保持する送信条件３１と同様であり、受信対象の周期メッセージに含まれるＩＤ、送信周期、マージン、短間隔フラグの位置を含む。図１５中の送信条件３１には、ＩＤ＝０ｘ１２３の周期メッセージが１００ｍ秒周期で送信されることと、ＩＤ＝０ｘ１２３の周期メッセージについての受信期間の予測には、４０ｍ秒のマージンが使用されることが示されている。さらに、ＩＤ＝０ｘ１２３を有するメッセージでは、データフィールドの先頭ビットが短間隔フラグとして使用されることも送信条件３１に含まれている。
【００８７】
基準時刻７６は、基準メッセージとして選択されたメッセージの受信時刻を、基準メッセージに含まれているＩＤと対応付けて記録する。基準メッセージは、送信周期で送信されたメッセージのうちで受信期間の計算の基準点とするメッセージとして基準更新処理部７４で選択されたメッセージと、送信周期よりも短い間隔で送信されたメッセージのうち、後に受信されたメッセージである。
【００８８】
計算部７２は、基準時刻７６が更新されると、送信条件３１に記録されている送信周期とマージンを用いて、ＩＤごとに、受信予測７７を生成する。図１５には、ＩＤ＝０ｘ１２３の周期メッセージについて生成された受信予測７７の例を示す。基準メッセージが５０ｍｓに受信されているので、基準メッセージを０番目のメッセージとすると、基準メッセージからｎ番目に受信する周期メッセージを受信可能な期間（受信期間）は、５０ｍｓ＋１００ｍｓ×ｎ±４０ｍｓとなる。従って、基準メッセージの次に受信するＩＤ＝０ｘ１２３の周期メッセージの受信期間は、１１０ｍｓ〜１９０ｍｓとなる。同様に、基準メッセージから２番目の周期メッセージの受信期間は２１０ｍｓ〜２９０ｍｓ、基準メッセージから３番目の周期メッセージの受信期間は３１０ｍｓ〜３９０ｍｓとなる。計算部７２は、各周期メッセージについて基準メッセージを０番目のメッセージとしたときの基準メッセージからの受信順序と、受信期間を対応付けて、受信予測７７に記録する。
【００８９】
図１６は、第２の実施形態にかかる攻撃検知方法の例を説明する図である。以下、攻撃検知装置７０が図１５に示す情報を保持している場合を例として説明する。なお、図１６では、短間隔フラグ＝０に設定されているフレームを黒い三角（▼）で表わし、短間隔フラグ＝１に設定されているフレームを白い三角（▽）で表わす。さらに、基準更新処理部７４は、短間隔フラグ＝１のメッセージの受信時のほかに、基準メッセージを変更しない状態で短間隔フラグ＝０のメッセージを１０個受信すると、基準メッセージを変更するように設定されているとする。
【００９０】
ケースＣ３１は、攻撃検知装置７０が５０ｍｓにメッセージＭ５１を受信し、メッセージＭ５１が基準メッセージに選択された場合の例である。制御部７１は、メッセージＭ５１を基準にしたときの短間隔フラグ＝０のメッセージの受信期間を、図１５を参照しながら説明した手順で計算し、受信予測７７として格納したとする。ケースＣ３１には、メッセージＭ５１から１〜３番目のメッセージについての受信期間の計算値を示す。矢印Ｐ５２はメッセージＭ５１から１番目のメッセージの受信期間、矢印Ｐ５３はメッセージＭ５１から２番目のメッセージの受信期間、矢印Ｐ５３はメッセージＭ５１から３番目のメッセージの受信期間である。
【００９１】
その後、送受信部１１が１４８ｍｓにメッセージＭ５２を受信したとする。判定部７３は、メッセージＭ５２の短間隔フラグが０に設定されていることを特定すると、予測された期間中にメッセージＭ５２を受信しているかを判定する。判定部７３は、メッセージＭ５２の受信時刻が１４８ｍｓであることと、メッセージＭ５１から１番目の短間隔フラグ＝０のメッセージの受信期間が１１０ｍｓ〜１９０ｍｓであることから、予測された期間中にメッセージＭ５２を受信したと判定する。すると、判定部７３は、攻撃を検出しない。メッセージＭ５２はメッセージＭ５１から１番目の短間隔フラグ＝０のメッセージであるため、計算部７２は、メッセージＭ５２以降のメッセージの受信期間を更新しない。
【００９２】
ケースＣ３２において、送受信部１１は、２００ｍｓにメッセージＭ５３を受信する。判定部７３は、メッセージＭ５３の短間隔フラグが１に設定されていることを特定する。すると、基準更新処理部７４は、メッセージＭ５３を新たな基準メッセージとすると共に、メッセージＭ５１を基準として計算した受信期間を破棄する。このため、ケースＣ３２に点線の矢印で示すように、ケースＣ３１の時点でメッセージＭ５１を基準として計算された矢印Ｐ５３やＰ５４の受信期間は破棄される。基準更新処理部７４は、メッセージＭ５３の受信時刻を基準時刻７６に設定する。計算部７２は、基準時刻７６が更新されたので、メッセージＭ５３を基準として計算した受信期間で受信予測７７を更新する。メッセージＭ５３の受信時刻が２００ｍｓであるので、送信条件３１（図１５）より、計算部７２は、メッセージＭ５３から１番目に受信する短間隔フラグ＝０のメッセージの受信期間を、２００ｍｓ＋１×１００ｍｓ±４０ｍｓ＝２６０ｍｓ〜３４０ｍｓとする。計算部７２は、同様の処理により、後続のメッセージについても受信期間を計算する。メッセージＭ５３を新たな基準メッセージとして計算した受信期間の例を、矢印Ｐ５３ａに示す。
【００９３】
ケースＣ３３において、送受信部１１は、２５０ｍｓに攻撃用フレームＡＴ３を受信したとする。判定部７３は、攻撃用フレームＡＴ３の短間隔フラグが０に設定されていることを特定すると、予測された期間中に攻撃用フレームＡＴ３を受信しているかを判定する。判定部７３は、攻撃用フレームＡＴ３を基準メッセージＭ５３から１番目のメッセージとして扱う。判定部７３は、攻撃用フレームＡＴ３の受信時刻が２５０ｍｓであることと、メッセージＭ５３から１番目の短間隔フラグ＝０のメッセージの受信期間が２６０ｍｓ〜３４０ｍｓであることから、予測された期間中に攻撃用フレームＡＴ３を受信していないと判定する。すると、判定部７３は、攻撃を検出したと判定する。
【００９４】
図１７は、攻撃検知装置７０の処理の例を説明するフローチャートである。図１７では、基準メッセージを変更せずに処理しているメッセージの数の計数を行うために、変数ｋを用いる。
【００９５】
計算部７２は、送信周期Ｔ、マージンＭ、予測回数ｎを取得する（ステップＳ３１）。このとき、計算部７２は、送信周期ＴとマージンＭを送信条件３１から読み出す。予測回数ｎは、基準メッセージを変更しない状況で、判定処理を行う短間隔フラグ＝０のメッセージの最大数である。その後、送受信部１１は、メッセージを受信する。基準更新処理部７４は、攻撃検知装置７０が起動された後にメッセージを受信すると、最初に受信したメッセージを基準メッセージとし、メッセージの受信時刻をｔ０に設定する（ステップＳ３２）。
【００９６】
ステップＳ３３において、計算部７２は、受信時刻ｔ０とステップＳ３１で取得した情報を用いて、ｎ個分のメッセージが全て送信周期どおりに送信された場合の受信期間を計算する。このとき、ｘ番目のメッセージの受信期間は、ｒ（ｘ）＝ｔ０＋ｘＴ±Ｍとして計算される。さらに、基準更新処理部７４は、変数ｋを１に設定する。
【００９７】
送受信部１１は、さらにメッセージを受信する。判定部７３は、メッセージの受信時刻をｔ（ｋ）とする（ステップＳ３４）。判定部７３は、受信メッセージの短間隔フラグが１に設定されているかを判定する（ステップＳ３５）。受信メッセージの短間隔フラグが１に設定されていない場合、受信メッセージは送信周期に沿って送信されているので、判定部７３は、ｔ（ｋ）がｒ（ｋ）の範囲内に含まれるかを判定する（ステップＳ３５でＮｏ、ステップＳ３６）。ｔ（ｋ）がｒ（ｋ）の範囲内に含まれていない場合、判定部７３は、攻撃を検知する（ステップＳ３６でＮｏ、ステップＳ４０）。
【００９８】
一方、ｔ（ｋ）がｒ（ｋ）の範囲内に含まれている場合、基準更新処理部７４は、変数ｋが予測回数ｎと等しいかを判定する（ステップＳ３６でＹｅｓ、ステップＳ３７）。変数ｋが予測回数ｎより小さい間は、変数ｋは予測回数ｎと等しくない（ステップＳ３７でＮｏ）。この場合、基準更新処理部７４は、変数ｋを１つインクリメントし、ステップＳ３４に戻る（ステップＳ３８）。ステップＳ３４以降の処理が繰り返されることにより、変数ｋが予測回数ｎと等しくなると、基準更新処理部７４は、基準メッセージを受信メッセージで更新し、受信時刻ｔ（ｋ）を基準メッセージの受信時刻ｔ（０）に設定する（ステップＳ３７でＹｅｓ、ステップＳ３９）。このとき、基準更新処理部７４は、基準時刻７６を更新する。すると、ステップＳ３３の処理が行われる。すなわち、計算部７２は、更新後の基準時刻７６を用いて、新たな基準メッセージからｎ個先のメッセージまでが送信周期で送信された場合の受信期間を計算する。また、基準更新処理部７４は、変数ｋを１に更新する。
【００９９】
受信メッセージの短間隔フラグが１に設定されている場合、基準更新処理部７４は、基準メッセージを受信メッセージで更新し、受信時刻ｔ（ｋ）を基準メッセージの受信時刻ｔ（０）に設定する（ステップＳ３５でＹｅｓ、ステップＳ３９）。その後、ステップＳ３３以降の処理が行われる。
【０１００】
図１８は、第２の実施形態の変形例での、攻撃検知装置７０の処理の例を説明するフローチャートである。図１８では、メッセージの受信時刻が受信期間に含まれているかの判定を、短間隔フラグの値の判定の前に行っている。
【０１０１】
ステップＳ４１〜Ｓ４４の処理は、図１７を参照しながら説明したステップＳ３１〜Ｓ３４と同様である。ステップＳ４５において、判定部７３は、ｔ（ｋ）がｒ（ｋ）の範囲内に含まれるかを判定する。ｔ（ｋ）がｒ（ｋ）の範囲内に含まれていない場合、判定部７３は、受信メッセージの短間隔フラグが１に設定されているかを判定する（ステップＳ４５でＮｏ、ステップＳ４９）。受信メッセージの短間隔フラグが１に設定されていない場合、判定部７３は、攻撃を検知する（ステップＳ４９でＮｏ、ステップＳ５１）。
【０１０２】
一方、受信メッセージの短間隔フラグが１に設定されている場合、判定部７３は、基準メッセージを受信メッセージで更新し、受信時刻ｔ（ｋ）を基準メッセージの受信時刻ｔ（０）に設定する（ステップＳ４９でＹｅｓ、ステップＳ５０）。このとき、基準更新処理部７４は、基準時刻７６を更新する。すると、ステップＳ４３以降の処理が行われる。
【０１０３】
ステップＳ４５において、ｔ（ｋ）がｒ（ｋ）の範囲内に含まれていると判定した場合も、判定部７３は、受信メッセージの短間隔フラグが１に設定されているかを判定する（ステップＳ４５でＹｅｓ、ステップＳ４６）。受信メッセージの短間隔フラグが１に設定されている場合、判定部７３は、基準メッセージを受信メッセージで更新し、受信時刻ｔ（ｋ）を基準メッセージの受信時刻ｔ（０）に設定する（ステップＳ４６でＹｅｓ、ステップＳ５０）。
【０１０４】
ｔ（ｋ）がｒ（ｋ）の範囲内に含まれていると判定され、さらに、受信メッセージの短間隔フラグが１に設定されていないと判定されると、基準更新処理部７４は、変数ｋが予測回数ｎと等しいかを判定する（ステップＳ４６でＮｏ、ステップＳ４７）。変数ｋが予測回数ｎより小さい間は、変数ｋは予測回数ｎと等しくない（ステップＳ４７でＮｏ）。この場合、基準更新処理部７４は、変数ｋを１つインクリメントし、ステップＳ４４に戻る（ステップＳ４８）。ステップＳ４４以降の処理が繰り返されることにより、変数ｋが予測回数ｎと等しくなると、基準更新処理部７４は、基準メッセージを受信メッセージで更新し、受信時刻ｔ（ｋ）を基準メッセージの受信時刻ｔ（０）に設定する（ステップＳ４７でＹｅｓ、ステップＳ５０）。ステップＳ５０の処理の後で、ステップＳ４３以降の処理が行われる。
【０１０５】
このように、第２の実施形態にかかる方法でも、第１の実施形態と同様に、攻撃検知装置７０は、送信装置から周期よりも短い間隔で送信されたメッセージであるかを、短間隔フラグを用いて特定することができる。さらに、攻撃検知装置７０は、予測した受信期間中に受信したメッセージから選択されたメッセージか、送信周期よりも短い間隔で送信されたことが確認されたメッセージを用いて、次の周期のメッセージの受信時刻を予測する。このため、第２の実施形態にかかる方法も、周期メッセージの周期の基準となる時刻が非周期メッセージの送信時刻によって変動するシステムと、周期メッセージの周期の基準となる時刻が非周期メッセージによって変動しないシステムのいずれにも適用できる。
【０１０６】
さらに、第２の実施形態では、マージンを広く取ることで誤検出を防止する。このときに、攻撃検知装置７０は、基準とするメッセージから複数周期分後のメッセージの受信期間を予測すると共に、予測した受信期間が基準メッセージから何番目のメッセージであるかを考慮して攻撃の有無を判定することで、攻撃の見逃しを防止できる。従って、第２の実施形態により、周期的に送信されるデータフレームと、周期ごとには送信されないデータフレームの両方が送信されるシステムにおける攻撃検知の精度が向上する。
【０１０７】
＜その他＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【０１０８】
以上の説明では、データの先頭ビットの値が使用される場合を例として説明したが、短間隔フラグとして使用される情報の位置は、データフィールドの任意の位置である。また、短間隔フラグとして複数のビットが使用されても良い。この場合、送信周期よりも短い間隔でフレームを送信する際に、送信装置４０は、短間隔フラグとして使用する領域の値をインクリメントしてもよい。同様に、送信装置４０は、送信周期よりも短い間隔でフレームを送信する際に、短間隔フラグとして使用する領域の値をデクリメントしてもよい。また、送信周期よりも短い間隔でフレームを送信する際に、送信装置４０は、短間隔フラグとして使用する領域の値を変化させても良い。この場合、送信装置４０は、送信周期と同じ間隔でフレームを送信する際に、短間隔フラグとして使用する領域の値が変化しないように設定する。攻撃検知装置１０中の判定部２２や判定部７３は、前に受信したメッセージ中の短間隔フラグの値を記憶しており、新たに受信したメッセージ中の短間隔フラグの値と比較することで、新たに受信したメッセージが送信周期に沿って送信されたかを判定する。
【０１０９】
さらに、判定部７３は、予め対応付けられている他のＩＤにおいて、周期が変動したことを短間隔フラグとして用いても良い。例えば、常にＩＤ＝０ｘ１１０の一定時間後にＩＤ＝０ｘ１２３のメッセージを受信する性質がある場合、ＩＤ＝０ｘ１１０の受信後に一定時間後±マージンの範囲外で０ｘ１２３のメッセージを受信した場合に、短間隔であると判断しても良い。例えば、ＩＤ＝０ｘ１１０でのメッセージの送信周期を判定部７３がモニタしているとする。この場合、判定部７３は、ＩＤ＝０ｘ１１０でのメッセージの送信周期の変動が発生した直後に受信したＩＤ＝０ｘ１２３でのメッセージは、送信周期よりも短い周期で送信されていると判定しても良い。また、ＩＤ＝０ｘ１１０でのメッセージのデータ中の特定の領域が短間隔フラグとして用いられ、ＩＤ＝０ｘ１１０で短間隔フラグ＝１と設定された場合に、判定部７３は、ＩＤ＝０ｘ１２３でのメッセージは、送信周期よりも短い周期で送信されていると判定しても良い。
【０１１０】
また、判定部７３は、ＣＡＮネットワークが搭載されている車両などの状態や、ＣＡＮネットワークと外部の装置との間の接続状態を、短間隔フラグの代用として用いても良い。
【０１１１】
これらの条件を複数同時に用いても良い。このとき、複数の性質のＡＮＤ条件でも良いし、ＯＲ条件でもよい。
【０１１２】
以上の説明では、攻撃検知装置（１０、７０）と送信装置４０が異なる装置である場合を例として説明したが、１つの装置があるＩＤに対しては攻撃検知装置１０、７０として動作し、他のＩＤに対しては送信装置４０として動作しても良い。この場合、攻撃検知とメッセージの送信の両方を行う装置は、攻撃検知装置１０と送信装置４０の両方として動作するので、送受信部１１、制御部２０、記憶部３０、制御部５０、記憶部６０を備える。また、攻撃検知装置７０としての処理と送信装置４０の両方として動作する装置は、送受信部１１、制御部７１、記憶部７５、制御部５０、記憶部６０を備える。また、本発明で開示した手法はＣＡＮ−ＦＤ（CAN with Flexible Data Rate）と呼ばれる拡張仕様にも適用可能である。
【０１１３】
上述の第１および第２の実施形態を含む実施形態に関し、以下の付記を開示する。
（付記１）
ネットワーク中の通信装置からメッセージを受信する送受信部と、
周期的に送信される周期メッセージの第１のメッセージの受信時刻を用いて、前記第１のメッセージ以降に受信する周期メッセージの受信期間を計算する計算部
を備え、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第２のメッセージを、前記送受信部が前記第１のメッセージの受信後の前記受信期間外に受信すると、前記計算部は、前記第２のメッセージの受信時刻と前記送信周期を用いて前記第２のメッセージ以降に受信する周期メッセージの受信期間を更新する
ことを特徴とする攻撃検知装置。
（付記２）
前記ネットワークに対する攻撃が発生したかを判定する判定部
をさらに備え、
前記通信装置から送信されるメッセージ中のデータは、当該メッセージが前記送信周期より短い送信間隔で送信されたかを表わすフラグを含み、
前記判定部は、前記送信周期と同じ送信間隔で送信されたことを表すフラグを有するメッセージの受信時刻が前記受信期間に含まれない場合、前記ネットワークに対する攻撃が発生したと判定する
ことを特徴とする付記１に記載の攻撃検知装置。
（付記３）
前記受信期間を記憶する記憶部
をさらに備え、
前記計算部は、前記第２のメッセージを基準として、前記第２のメッセージの後に送信される複数の周期メッセージの受信期間を計算し、
前記記憶部は、前記第２のメッセージの後に送信される前記複数の周期メッセージのそれぞれに対応する前記受信期間を記憶し、
前記判定部は、前記第２のメッセージの後に送信される前記周期メッセージの受信時刻が、対応付けられた受信期間に含まれない場合、前記ネットワークに対する攻撃を検出したと判定する
ことを特徴とする付記２に記載の攻撃検知装置。
（付記４）
ネットワーク中の通信装置からメッセージを受信し、
周期的に送信される周期メッセージの第１のメッセージの受信時刻を用いて、前記第１のメッセージ以降に受信する周期メッセージの受信期間を計算し、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第２のメッセージを、前記第１のメッセージの受信後の前記受信期間外に受信すると、前記第２のメッセージの受信時刻と前記送信周期を用いて、前記第２のメッセージ以降に受信する周期メッセージの受信期間を更新する
処理を攻撃検知装置が行うことを特徴とする攻撃検知方法。
（付記５）
前記通信装置から送信されるメッセージ中のデータは、当該メッセージが前記送信周期より短い送信間隔で送信されたかを表わすフラグを含み、
前記攻撃検知装置は、前記送信周期と同じ送信間隔で送信されたことを表すフラグを有するメッセージの受信時刻が前記受信期間に含まれない場合、前記ネットワークに対する攻撃が発生したと判定する
ことを特徴とする付記４に記載の攻撃検知方法。
（付記６）
前記攻撃検知装置は、
前記第２のメッセージを基準として、前記第２のメッセージの後に送信される複数の周期メッセージの受信期間を計算し、
前記第２のメッセージの後に送信される前記複数の周期メッセージのそれぞれに対応する前記受信期間を記憶し、
前記第２のメッセージの後に送信される前記周期メッセージの受信時刻が、対応付けられた受信期間に含まれない場合、前記ネットワークに対する攻撃を検出したと判定する
ことを特徴とする付記４または５に記載の攻撃検知方法。
（付記７）
ネットワーク中の通信装置からメッセージを受信し、
周期的に送信される周期メッセージの第１のメッセージの受信時刻を用いて、前記第１のメッセージ以降に受信する周期メッセージの受信期間を計算し、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第２のメッセージを、前記第１のメッセージの受信後の前記受信期間外に受信すると、前記第２のメッセージの受信時刻と前記送信周期を用いて前記第２のメッセージ以降に受信する周期メッセージの受信期間を更新する
処理を攻撃検知装置に行わせることを特徴とする攻撃検知プログラム。
（付記８）
前記通信装置から送信されるメッセージ中のデータは、当該メッセージが前記送信周期より短い送信間隔で送信されたかを表わすフラグを含み、
前記攻撃検知装置に、前記送信周期と同じ送信間隔で送信されたことを表すフラグを有するメッセージの受信時刻が前記受信期間に含まれない場合、前記ネットワークに対する攻撃が発生したと判定する
処理を行わせることを特徴とする付記７に記載の攻撃検知プログラム。
（付記９）
前記攻撃検知装置に、
前記第２のメッセージを基準として、前記第２のメッセージの後に送信される複数の周期メッセージの受信期間を計算し、
前記第２のメッセージの後に送信される前記複数の周期メッセージのそれぞれに対応する受信期間を記憶し、
前記第２のメッセージの後に送信される前記周期メッセージの受信時刻が、対応付けられた受信期間に含まれない場合、前記ネットワークに対する攻撃を検出したと判定する
処理を行わせることを特徴とする付記７または８に記載の攻撃検知プログラム。
【符号の説明】
【０１１４】
１０、７０  攻撃検知装置
１１  送受信部
２０、５０、７１  制御部
２１、７２  計算部
２２、７３  判定部
３０、６０、７５  記憶部
３１、６１  送信条件
３２  受信状況情報
３３、７７  受信予測
４０  送信装置
５１  データ生成部
５２  フラグ設定部
５３  フレーム生成部
６２  フラグ設定条件
７４  基準更新処理部
７６  基準時刻
１００  ＥＣＵ
１０１  ＣＡＮトランシーバ
１０２  ＣＡＮコントローラ
１０３  処理回路
１０４  プロセッサ
１０５  メモリ
【図１】
2018088616.tif 000003
【図２】
2018088616.tif 000004
【図３】
2018088616.tif 000005
【図４】
2018088616.tif 000006
【図５】
2018088616.tif 000007
【図６】
2018088616.tif 000008
【図７】
2018088616.tif 000009
【図８】
2018088616.tif 000010
【図９】
2018088616.tif 000011
【図１０】
2018088616.tif 000012
【図１１】
2018088616.tif 000013
【図１２】
2018088616.tif 000014
【図１３】
2018088616.tif 000015
【図１４】
2018088616.tif 000016
【図１５】
2018088616.tif 000017
【図１６】
2018088616.tif 000018
【図１７】
2018088616.tif 000019
【図１８】
2018088616.tif 000020