JP6798280B2 - 攻撃検知装置、攻撃検知方法、および、攻撃検知プログラム - Google Patents
攻撃検知装置、攻撃検知方法、および、攻撃検知プログラム Download PDFInfo
- Publication number
- JP6798280B2 JP6798280B2 JP2016230868A JP2016230868A JP6798280B2 JP 6798280 B2 JP6798280 B2 JP 6798280B2 JP 2016230868 A JP2016230868 A JP 2016230868A JP 2016230868 A JP2016230868 A JP 2016230868A JP 6798280 B2 JP6798280 B2 JP 6798280B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- reception
- transmission
- attack detection
- periodic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、攻撃検知装置、攻撃検知方法、および、攻撃検知プログラムに関する。
自動車の車載ネットワークやファクトリーオートメーションなどに使用される装置間で、データや制御情報を送受信するために、CAN(Controller Area Network)と呼ばれるネットワーク技術が使用されることがある。CANが用いられるシステムは、複数のECU(electronic control unit)を含む。ECU同士はデータフレーム(メッセージ)を送受信することにより通信を行う。CANでは、通信に使用されるデータフレームには、データフレームの識別に使用される識別情報(ID)が含まれている。また、各ECUは、受信するデータフレームのIDを予め記憶している。CANでは、データフレームはブロードキャストされるため、複数のデータフレームが同時にCANに接続されたECUに到達する。データフレームの送信タイミングが複数のデータフレームで一致した場合には、データフレームに含まれているIDの値によってデータフレームの優先順位が決定され、優先されるデータフレームが先に送信される。優先されないデータフレームは、優先されるデータフレームの送信後に、ブロードキャストされる。データフレームがブロードキャストされると、各ECUは、ECUが受信するように設定されたIDを含むデータフレームを受信するが、受信対象に設定されていないIDを含むデータフレームは破棄する。
しかし、各ECUは、そのECUが受信するように設定されたIDを含むデータフレームを用いてネットワークへの攻撃が行われた場合、攻撃に使用されるフレームを受信してしまう。攻撃に使用されるフレームを受信したECUは、フレームの受信に起因して、本来は行わない動作を行ってしまうおそれがある。そこで、攻撃によって送信されているフレームを特定するための試みが行われてきている。例えば、データフレームの送信周期に関する所定ルールに適合しないデータフレームを受信すると、データフレーム中の特定識別子を検証して、データフレームが攻撃によるものかを判定することが提案されている(例えば、特許文献1)。
周期的に送信されるメッセージと、周期ごとには送信されないメッセージの両方が送信されるシステムでは、攻撃に使用されるフレームの特定が困難な場合がある。背景技術に述べた技術では、送信周期以外で送信されるメッセージの送信後に、そのメッセージの送信時刻を基準として、周期的にメッセージを送信する場合に、周期的に送信されたメッセージを攻撃に使用されるフレームと誤認してしまうことがある。
本発明は、1つの側面として、攻撃検知の精度を向上することを目的とする。
ある1つの態様にかかる攻撃検知装置は、送受信部と計算部を備える。送受信部は、ネットワーク中の通信装置からメッセージを受信する。計算部は、周期的に送信される周期メッセージの第1のメッセージの受信時刻を用いて、前記第1のメッセージ以降に受信する周期メッセージの受信期間を計算する。前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第2のメッセージを、前記送受信部が前記第1のメッセージの受信後の前記受信期間外に受信する。すると、前記計算部は、前記第2のメッセージの受信時刻と前記送信周期を用いて、前記第2のメッセージ以降に受信する周期メッセージの受信期間を更新する。
攻撃検知の精度が向上する。
図1は、実施形態にかかる攻撃検知方法の例を説明する図である。図1では、黒い三角(▲)は周期的に送信されるデータフレーム(周期メッセージ)を攻撃検知装置が受信したタイミングを示し、白い三角(△)は周期に関係なく送信されるデータフレーム(非周期メッセージ)を攻撃検知装置が受信したタイミングを示す。ケースC1では、周期的に送信されるメッセージであるメッセージM1とM4の間に、非周期で送信されるメッセージM2とM3が送信され、その後、周期的なメッセージM5とM6が送信されている。このとき、周期の基準は、メッセージM1の送信時点から変更されない。一方、ケースC2では、周期的に送信されるメッセージであるメッセージM11とM12の後に、非周期で送信されるメッセージM13が送信され、その後、メッセージM13の送信時刻を周期の基準として周期的なメッセージM14とM15が送信されている。
実施形態にかかる方法では、データフレームを送信する通信装置(送信装置)は、送信対象のメッセージを、前回送信したメッセージの送信時刻からの経過時刻が周期よりも短い状態で送信しているかを、攻撃検知装置に認識させるための処理を行う。この処理は、メッセージが周期的に送信されているか、非周期的に送信されているかに関わらず行われる。例えば、送信装置は、送信対象のフレーム中に、周期よりも短い間隔で送信しているメッセージであるかの判定に使用するフラグ(短間隔フラグ)を含めることができる。図1の説明では、送信装置は、周期よりも短い送信間隔で送信するメッセージは短間隔フラグ=1、周期どおりに送信するメッセージは短間隔フラグ=0に設定するとする。
例えば、送信周期がTである場合、ケースC2では、送信装置は、メッセージM13をメッセージM12の送信時刻からメッセージの送信周期が経過する前に送信している。このため、送信装置は、メッセージM13において、短間隔フラグを1に設定する。一方、送信装置は、メッセージM13の送信時刻から送信周期が経過すると、メッセージM14を送信し、メッセージM14の送信時刻から送信周期が経過するとメッセージM15を送信している。このため、メッセージM14とM15では、短間隔フラグは0に設定される。同様に、メッセージM12でも短間隔フラグは0に設定される。
攻撃検知装置は、受信メッセージが前回のメッセージの送信時刻からメッセージの送信周期が経過する前に送信されたメッセージである場合、受信メッセージを基準として、以後のメッセージが周期的に送信された場合の受信時刻を予測する。一方、受信メッセージが前回のメッセージの送信時刻からメッセージの送信周期どおりに送信されたメッセージである場合、攻撃検知装置は、メッセージの受信時刻が予測した受信期間内に含まれていれば、攻撃に使用されたフレームではないと判定する。
例えば、攻撃検知装置は、メッセージM12の受信後にメッセージM13を受信する。メッセージM13では短間隔フラグ=1であるため、攻撃検知装置は、メッセージM13の受信時刻からメッセージの送信間隔Tが経過した時刻の周辺の期間を、メッセージM13の次に受信するメッセージの受信期間として計算する。ここで、メッセージM13の次に受信するメッセージの受信期間を矢印Pxで表わす。
攻撃検知装置は、メッセージM13の次に、短間隔フラグ=0に設定されているメッセージM14を受信する。ケースC2の例では、メッセージM14の受信時刻は、メッセージM14に対して予測した受信期間(矢印Px)の範囲内である。そこで、攻撃検知装置は、メッセージM14は攻撃用のフレームではないと判定する。すると、攻撃検知装置は、メッセージM14の受信時刻と送信周期Tを用いて、メッセージM14の次に受信するメッセージの受信期間を計算する。ここで、メッセージM14の次に受信するメッセージの受信期間を矢印Pyで表わす。攻撃検知装置は、メッセージM14の次に、短間隔フラグ=0に設定されているメッセージM15を、予測した受信期間(矢印Py)に受信する。そこで、攻撃検知装置は、メッセージM15は攻撃用のフレームではないと判定する。
このように、実施形態にかかる方法では、攻撃検知装置は、受信したメッセージが送信装置から周期よりも短い間隔で送信されたメッセージであるかを、短間隔フラグなどを用いて特定することができる。このため、ケースC2のように、非周期的に送信されたメッセージの後に、非周期的に送信されたメッセージを基準として周期的なメッセージの送信が行われても、周期的なメッセージが攻撃用のフレームであるかを判定できる。車両に搭載されるCANなどでは、ケースC2のように、非周期的に送信されたメッセージを基準として周期的なメッセージの送信が行われるシステムが多いので、実施形態にかかる方法は、車両に搭載されるCANなどに適用しやすい。
実施形態にかかる方法は、ケースC2の場合だけでなく、ケースC1に示すように周期的なメッセージの間に非周期メッセージの送信が行われるケースであっても、周期的なメッセージが攻撃用のフレームであるかを判定できる。
例えば、送信周期がTである場合、ケースC1では、送信装置は、メッセージM2、M3、M4を、前回のメッセージの送信時刻からメッセージの送信周期が経過する前に送信している。このため、送信装置は、メッセージM2、M3、M4において、短間隔フラグを1に設定する。一方、送信装置は、メッセージM4の送信時刻から送信周期が経過すると、メッセージM5を送信し、メッセージM5の送信時刻から送信周期が経過するとメッセージM6を送信している。このため、メッセージM5とM6では、短間隔フラグは0に設定される。
一方、攻撃検知装置は、メッセージM1の受信後にメッセージM2を受信する。メッセージM2では短間隔フラグ=1であるため、攻撃検知装置は、メッセージM2の受信時刻とメッセージの送信間隔Tを用いて、メッセージM2の次に受信するメッセージの受信期間を計算する。攻撃検知装置は、メッセージM2の次にメッセージM3を受信するが、メッセージM3でも短間隔フラグ=1に設定されているので、メッセージM3の次に受信するメッセージの受信期間を計算する。攻撃検知装置は、メッセージM3の次にメッセージM4を受信するが、メッセージM4でも短間隔フラグ=1に設定されているので、メッセージM4の次に受信するメッセージの受信期間を計算する。ここで、メッセージM4の次に受信するメッセージの受信期間を矢印Paで表わす。
攻撃検知装置は、メッセージM4の次に、短間隔フラグ=0に設定されているメッセージM5を受信する。ケースC1の例では、メッセージM5の受信時刻はメッセージM5に対して予測した受信期間(矢印Pa)の範囲内であるので、攻撃検知装置は、メッセージM5は攻撃用のフレームではないと判定する。すると、攻撃検知装置は、メッセージM5の受信時刻と送信周期Tを用いて、メッセージM5の次に受信するメッセージの受信期間を計算する。メッセージM5の次に受信するメッセージの受信期間を矢印Pbで表わす。攻撃検知装置は、メッセージM5の次に、短間隔フラグ=0に設定されているメッセージM6を、予測した受信期間(矢印Pb)に受信したとする。すると、攻撃検知装置は、メッセージM6は攻撃用のフレームではないと判定する。
このように、実施形態にかかる方法は、周期メッセージの周期の基準となる時刻が非周期メッセージの送信時刻によって変動するシステムと、周期メッセージの周期の基準となる時刻が非周期メッセージによって変動しないシステムのいずれにも適用できる。このため、周期的に送信されるデータフレームと、周期ごとには送信されないデータフレームの両方が送信されるシステムにおける攻撃検知の精度が向上する。実施形態にかかる方法により、特に、周期メッセージを装った攻撃の検出精度が向上する。
<装置構成とネットワークの例>
図2は、攻撃検知装置10の構成の例を説明する図である。攻撃検知装置10は、送受信部11、制御部20、記憶部30を備える。制御部20は、計算部21と判定部22を備える。記憶部30は、送信条件31、受信状況情報32、受信予測33を保持する。
図2は、攻撃検知装置10の構成の例を説明する図である。攻撃検知装置10は、送受信部11、制御部20、記憶部30を備える。制御部20は、計算部21と判定部22を備える。記憶部30は、送信条件31、受信状況情報32、受信予測33を保持する。
送信条件31は、攻撃検知装置10が受信する周期メッセージに含まれているIDと、そのIDで識別される周期メッセージの送信周期を対応付けている。受信状況情報32は、攻撃検知装置10が受信した最新のメッセージの受信時刻を記録する。送信条件31と受信状況情報32の例は後述する。
計算部21は、送信条件31や受信状況情報32を用いて、IDごとに、周期メッセージの受信予測を計算する。計算部21は、得られた計算結果を受信予測33に格納する。このため、受信予測33もIDごとに生成される。受信予測33の例も後述する。判定部22は、受信したメッセージ中の短間隔フラグと受信予測33を用いて、ネットワークに対する攻撃が発生したかを判定する。
図3は、送信装置40の構成の例を説明する図である。送信装置40は、送受信部11、制御部50、記憶部60を備える。制御部50は、データ生成部51、フラグ設定部52、フレーム生成部53を有する。記憶部60は、送信条件61とフラグ設定条件62を保持する。
送信条件61は、送信装置40が送信する周期メッセージに含まれているIDと、そのIDで識別される周期メッセージの送信周期を対応付けている。フラグ設定条件62は、短間隔フラグの設定条件を表わしている。ここで、短間隔フラグは、送信対象のフレームと同じ識別情報を有する前回の送信フレームの送信時刻から、送信する対象のフレームの送信時刻までの経過時間が、送信周期よりも短いかを表わすフラグである。
データ生成部51は、送信フレームに含めるデータを生成する。フラグ設定部52は、短間隔フラグを設定する。フレーム生成部53は、データ生成部51が生成したデータとフラグ設定部52での短間隔フラグの設定結果を用いて、送信対象のフレームを生成する。送受信部11は、他の装置との間でフレームの送受信を行う。
図4は、攻撃検知装置10と送信装置40のハードウェア構成の例を説明する図である。図4の例では、攻撃検知装置10と送信装置40は、ECU100として実現されている。ECU100は、CANトランシーバ101、CANコントローラ102、処理回路103を含む。処理回路103は、プロセッサ104とメモリ105を備える。
CANトランシーバ101は、適宜、バス電圧の調整など、ECU100がCANネットワーク中の他の装置と通信するための処理を行う。CANコントローラ102は、受信したフレームに対するCRC(Cyclic Redundancy Check)チェックやビットスタッフィングなどの処理を行うことにより、データを抽出する。CANコントローラ102は、データをプロセッサ104に出力する。プロセッサ104は、任意の処理回路であり、例えば、CPU(Central Processing Unit)とすることができる。プロセッサは、メモリ105に格納されたプログラムを読み込んで、処理を行う。なお、ECU100は、記憶媒体からプログラムやデータを読み出すための装置を備えていても良い。この場合、プログラムは、任意の記憶媒体に記録されていても良く、ECU100によって、記憶媒体から適宜、読み出される。
攻撃検知装置10では、CANトランシーバ101とCANコントローラ102により、送受信部11が実現される。プロセッサ104は、制御部20として動作する。メモリ105は記憶部30として動作する。送信装置40では、CANトランシーバ101とCANコントローラ102により、送受信部11が実現される。プロセッサ104は、制御部50として動作する。メモリ105は記憶部60として動作する。
<ネットワークとフレームの例>
図5は、ネットワークの例を説明する図である。図5に示すネットワークN1では、複数のECU100(ECU0〜ECUk)が1本のバスで互いにフレームの送受信が可能になるように接続されている。図5のネットワークに含まれるECU100のうちの1つ以上が攻撃検知装置10として動作するものとする。例えば、1つの攻撃検知装置10がネットワーク中で送受信される全ての周期メッセージに対する攻撃を検知しても良い。また、複数の攻撃検知装置10を用いて全ての周期メッセージに対する攻撃を検知するように検知対象が攻撃検知装置10ごとに決められていても良い。また、図5のネットワークに含まれるECU100のうちの1つ以上が送信装置40として動作する。
図5は、ネットワークの例を説明する図である。図5に示すネットワークN1では、複数のECU100(ECU0〜ECUk)が1本のバスで互いにフレームの送受信が可能になるように接続されている。図5のネットワークに含まれるECU100のうちの1つ以上が攻撃検知装置10として動作するものとする。例えば、1つの攻撃検知装置10がネットワーク中で送受信される全ての周期メッセージに対する攻撃を検知しても良い。また、複数の攻撃検知装置10を用いて全ての周期メッセージに対する攻撃を検知するように検知対象が攻撃検知装置10ごとに決められていても良い。また、図5のネットワークに含まれるECU100のうちの1つ以上が送信装置40として動作する。
周期メッセージの送信タイミングと、攻撃検知装置10での受信タイミングの例も図5に示す。図5の例では、ECU0が攻撃検知装置10として動作することにより、ID=A、B、Cの各々の周期メッセージに対する攻撃を検知するものとする。この場合、攻撃検知装置10として動作するECU0では、ID=A、B、Cの各々の周期メッセージを受信対象として取得する。一方、ECU1はID=Aの周期メッセージを送信し、ECU2はID=Bの周期メッセージを送信するとする。また、ECU3はID=Cの周期メッセージを送信するものとする。
図5のタイミング図に示すように、ID=A、B、Cの各周期メッセージは送信されたタイミングとほぼ同時に、ECU0で受信される。ECU0では、受信したメッセージの受信タイミングを、そのメッセージ中のIDに対応付けて解析することにより、攻撃を検知する。攻撃の検知の詳細については後述する。
図6は、送受信されるフレームのフォーマットの例を示す図である。図6のF11は、一般仕様のフレームのフォーマット例であり、F12は拡張仕様で使用されるフレームのフォーマット例である。
一般仕様のフレームは、SOF(Start of Frame)、調停(arbitration)フィールド、コントロールフィールド、データフィールド、CRCフィールド、ACKフィールド、EOF(End of Frame)を含む。調停フィールドには、IDとRTR(Remote Transmission Request)が含まれる。ここで、IDは、データフレームの識別に使用される識別情報である。コントロールフィールドには、IDE(Identifier Extension)、予約ビット、DLC(Data Length Code)が含まれる。CRCフィールドは、CRCシーケンスとCRCデリミタを含む。ACKフィールドは、ACKスロットとACKデリミタを含む。なお、各フィールドに含まれる情報要素のビット長は、F11の一番下の行に記載したとおりである。例えば、IDの長さは11ビットであり、データフィールドの長さは0〜64ビットの可変長である。
拡張仕様で使用されるデータフレーム(F12)も、SOF、調停フィールド、コントロールフィールド、データフィールド、CRCフィールド、ACKフィールド、EOFを含む。拡張仕様の調停フィールドは、IDベース、SRR(Substitute Remote Request Bit)、IDE、ID拡張、RTRを含む。拡張仕様では、IDベースとして格納されたビット列の次に、ID拡張として格納されたビット列をつなげて得られるビット列により、データフレームの識別情報(ID)を表わす。コントロールフィールドからEOFまでは、拡張仕様のフォーマットでも、一般仕様のフォーマットと同様である。また、各フィールドに含まれる情報要素のビット長は、F12の一番下の行に記載したとおりである。このため、拡張フォーマットでは、送信元の識別情報として、IDベースの11ビットとID拡張の18ビットを合わせた29ビットのビット列が使用される。
システム中で送受信されるフレームのフォーマットがF11とF12のいずれであっても、短間隔フラグは、データフィールド中に含められる。また、送信装置40と攻撃検知装置10は、予め、データフィールド中で短間隔フラグが記録されている領域を記憶しているものとする。例えば、短間隔フラグの設定位置は、送信条件31、送信条件61、フラグ設定条件62などに含まれていても良い。
以下、図6のF11に示すフォーマットを用いたデータフレームが送受信される場合を例として、各実施形態で行われる処理の例を説明する。なお、通信に使用されるデータフレームが拡張仕様の場合でも、同様に処理が行われる。
<第1の実施形態>
以下、第1の実施形態を、送信装置40からのフレームの送信と、攻撃検知装置10での判定処理に分けて説明する。
以下、第1の実施形態を、送信装置40からのフレームの送信と、攻撃検知装置10での判定処理に分けて説明する。
(1)送信装置40からのフレームの送信
図7は、送信装置40が保持する情報の例を示す図である。送信条件61は、送信装置40が送信するメッセージに含まれるID、送信周期、短間隔フラグの位置を含む。送信周期は、エントリ中のIDで識別される周期メッセージが送信される周期である。短間隔フラグの位置は、エントリ中のIDで識別されるメッセージの短間隔フラグとして使用されるデータフィールドの領域を指定する情報である。例えば、図7中の送信条件61には、ID=0x123の周期メッセージが100m秒周期で送信されることと、ID=0x123を有するメッセージでは、データフィールドの先頭ビットが短間隔フラグとして使用されることが示されている。
図7は、送信装置40が保持する情報の例を示す図である。送信条件61は、送信装置40が送信するメッセージに含まれるID、送信周期、短間隔フラグの位置を含む。送信周期は、エントリ中のIDで識別される周期メッセージが送信される周期である。短間隔フラグの位置は、エントリ中のIDで識別されるメッセージの短間隔フラグとして使用されるデータフィールドの領域を指定する情報である。例えば、図7中の送信条件61には、ID=0x123の周期メッセージが100m秒周期で送信されることと、ID=0x123を有するメッセージでは、データフィールドの先頭ビットが短間隔フラグとして使用されることが示されている。
フラグ設定条件62には、短間隔フラグの値ごとに、その値が設定されるときの条件が対応付けられている。図7の例では、あるIDで識別されるメッセージについて、前回のメッセージの送信時刻から今回のメッセージの送信時刻までの期間が周期と一致する場合は、短間隔フラグ=0に設定されることがフラグ設定条件62に記録されている。一方、あるIDで識別されるメッセージについて、前回のメッセージの送信時刻から今回のメッセージの送信時刻までの期間が周期よりも短い場合は、短間隔フラグ=1に設定される。例えば、フラグ設定部52は、送信処理を行うフレームのIDごとにフレームの送信間隔を計測するためのタイマを保持していて、タイマのカウント値を用いて、短間隔フラグの設定値を決定することできる。
図8は、送信処理の例を説明するフローチャートである。図8の例では、タイマは、そのタイマで送信間隔の測定を行っているメッセージ(データフレーム)に含まれているIDに対応付けられている送信周期で満了するように設定されているとする。例えば、送信装置40が図7に示す送信条件61を保持している場合、ID=0x123のメッセージの処理に用いられるタイマは100msで満了するように設定されている。
フラグ設定部52は、タイマを初期化する(ステップS1)。その後、フラグ設定部52は、タイマが満了しているかを判定する(ステップS2)。タイマが満了していない場合、フラグ設定部52は、メッセージを送信するイベントが発生しているかを判定する(ステップS2でNo、ステップS3)。メッセージを送信するイベントが発生していない場合、フラグ設定部52は、タイマをカウントアップし、ステップS2に戻る(ステップS3でNo、ステップS4)。
一方、メッセージを送信するイベントが発生している場合、非周期的に送信されるメッセージの送信処理が行われる(ステップS3でYes)。フラグ設定部52は、短間隔フラグを1に設定する(ステップS5)。フラグ設定部52は、短間隔フラグの値をフレーム生成部53に通知する。フレーム生成部53は、データ生成部51で生成されたデータと、フラグ設定部52から取得した短間隔フラグの値、短間隔フラグの位置情報を用いて、送信メッセージを生成する(ステップS7)。送受信部11は、生成されたメッセージを送信し、ステップS1に戻る(ステップS8)。
ステップS2においてタイマが満了している場合、周期的に送信されるメッセージの送信処理が行われる(ステップS2でYes)。フラグ設定部52は、短間隔フラグを0に設定する(ステップS6)。その後、フラグ設定部52は、短間隔フラグの値をフレーム生成部53に通知する。このため、ステップS6の処理後も、ステップS7とS8の処理が行われる。
なお、図8は送信装置40の処理の一例であって、実装に応じて変更され得る。例えば、図1のケースC1に示すように、周期メッセージの基準を変更せずに非周期メッセージが送信されるシステムでは、送信装置40の処理は、ステップS8の処理後にステップS2に戻るように変形される。
(2)攻撃検知装置10での判定処理
図9は、攻撃検知装置10が保持する情報の例を説明する図である。攻撃検知装置10は、予め、送信条件31を記憶している。送信条件31は、攻撃検知装置10が受信するメッセージに含まれるID、送信周期、マージン、短間隔フラグの位置を含む。送信周期は、エントリ中のIDで識別される周期メッセージが送信される周期である。マージンは、エントリ中のIDで識別される周期メッセージの受信期間を予測する際に、送信周期からずれる範囲の許容値として使用する値である。短間隔フラグの位置は、エントリ中のIDで識別されるメッセージのデータフィールド中で、短間隔フラグとして使用される領域を特定する情報である。
図9は、攻撃検知装置10が保持する情報の例を説明する図である。攻撃検知装置10は、予め、送信条件31を記憶している。送信条件31は、攻撃検知装置10が受信するメッセージに含まれるID、送信周期、マージン、短間隔フラグの位置を含む。送信周期は、エントリ中のIDで識別される周期メッセージが送信される周期である。マージンは、エントリ中のIDで識別される周期メッセージの受信期間を予測する際に、送信周期からずれる範囲の許容値として使用する値である。短間隔フラグの位置は、エントリ中のIDで識別されるメッセージのデータフィールド中で、短間隔フラグとして使用される領域を特定する情報である。
図9中の送信条件31には、ID=0x123の周期メッセージが100m秒周期で送信されることと、ID=0x123の周期メッセージについての受信期間の予測には、10m秒のマージンが使用されることが示されている。さらに、ID=0x123を有するメッセージでは、データフィールドの先頭ビットが短間隔フラグとして使用されることも送信条件31に含まれている。
受信状況情報32には、受信期間の計算に使用可能なメッセージの受信時刻が、受信期間の計算に使用可能なメッセージに含まれているIDと対応付けて記録されている。ここで、受信期間の計算に使用可能なメッセージとして、攻撃に使用されていないと判定された周期メッセージと、周期よりも短い間隔で送信されたメッセージが使用される。判定部22は、受信期間の計算に使用可能なメッセージのうちで最後に受信したメッセージの受信時刻を受信状況情報32に記録する。図9に受信状況情報32の記録例を示す。図9の例では、ID=0x123を含むメッセージを攻撃検知装置10が受信した時刻は50msである。なお、判定部22での判定処理については、図10を参照しながら説明する。
計算部21は、受信状況情報32が更新されると、送信条件31に記録されている送信周期とマージンを用いて、IDごとに、受信予測33を生成する。図9には、ID=0x123の周期メッセージについて生成された受信予測33の例を示している。受信期間の計算に使用可能なメッセージが50msに受信されているので、送信周期Tに従って送信されたメッセージを受信可能な期間(受信期間)は、50ms+100ms±10msと計算される。従って、ID=0x123で短間隔フラグ=0に設定されているメッセージを次に受信する場合、受信するメッセージが攻撃によるフレームでなければ、受信期間である140ms〜160msに受信すると予想される。
図10は、第1の実施形態にかかる攻撃検知方法の例を説明する図である。図10では、黒い下向きの三角形(▼)は、短間隔フラグ=0に設定されたメッセージを攻撃検知装置10が受信したタイミングを示し、白い下向きの三角形(▽)は短間隔フラグ=1に設定されたメッセージを攻撃検知装置10が受信したタイミングを示す。なお、図10では、メッセージM21〜M23と攻撃に使用されたフレームAT1のいずれも、ID=0x123で識別されるものとする。
ケースC11の0msの時点において、攻撃検知装置10は受信期間の計算に使用可能なメッセージを1つも受信していないとする。この場合、受信状況情報32と受信予測33には、データが記録されていない。
その後、50msにおいてID=0x123を含むメッセージM21が攻撃検知装置10に到達したとする。この時点では、受信予測33が求められていないので、判定部22は、メッセージM21を攻撃によるフレームではないと判定する。判定部22は、メッセージM21の受信時刻を受信状況情報32(図9)に記録する。
計算部21は、受信状況情報32が更新されると、送信条件31(図9)に記録されている送信周期とマージンを用いて、送信周期Tに従って送信されたメッセージを受信可能な期間(受信期間)を計算する。なお、送信周期Tに従って送信されたメッセージでは、短間隔フラグ=0である。計算部21は、図9を参照しながら説明した処理により、短間隔フラグ=0を含むメッセージの受信期間を、140ms〜160msと計算する。メッセージM21の次に受信するメッセージについて計算部21が計算した受信期間を、矢印P1で示す。
148msにおいて、ID=0x123で識別されるメッセージM22が攻撃検知装置10に到達したとする。判定部22は、メッセージM22の受信時刻が受信予測33中の情報と合致しているかを判定する。受信予測33は矢印P1で示すように140ms〜160msであるので、メッセージM22の受信時刻が受信予測33中の情報と合致している。そこで、判定部22は、メッセージM22を攻撃によるフレームではないと判定する。判定部22は、メッセージM22の受信時刻を用いて受信状況情報32を更新する。
計算部21は、受信状況情報32が更新されると、送信周期とマージンを用いて、次に受信するメッセージが短間隔フラグ=0である場合の受信期間を計算する。メッセージM22の受信時刻が148msであるので、計算部21は、短間隔フラグ=0を含むメッセージの受信期間を、148ms+100ms±10ms=238ms〜258msと計算したとする。メッセージM22の次に受信するメッセージについて計算部21が計算した受信期間を、矢印P2で示す。計算部21は、得られた計算結果で受信予測33を更新する。
ケースC12は、ケースC11の後で、メッセージM23が攻撃検知装置10に到達した場合を示す。200msにID=0x123で識別されるメッセージM23が攻撃検知装置10に到達したとする。判定部22は、メッセージM23の受信時刻が受信予測33中の情報と合致しているかを判定する。受信予測33は矢印P2で示すように238ms〜258msであるので、メッセージM23の受信時刻は受信予測33中の情報と合致していない。
そこで、判定部22は、メッセージM23に含まれている短間隔フラグの値を特定する。このとき、判定部22は、送信条件31中の短間隔フラグの位置の情報を用いる。短間隔フラグは、メッセージM23のデータフィールドの先頭ビットである。ここで、メッセージM23のデータフィールドの先頭ビットの値が1であるとする。この場合、短間隔フラグの値は1であるので、メッセージM23は、メッセージM22の送信から送信周期である100msが経過する前に送信されている。そこで、判定部22は、メッセージM23を攻撃に使用されているフレームではないと判定する。判定部22は、メッセージM23の受信時刻で受信状況情報32を更新する。換言すると、判定部22は、メッセージM23の受信により、破線の矢印P2に示す期間には、短間隔フラグ=0のメッセージを受信しないことを認識できる。
計算部21は、受信状況情報32が更新されると、送信周期とマージンを用いて、次に受信するメッセージが短間隔フラグ=0である場合の受信期間を計算する。メッセージM23の受信時刻が200msであるので、計算部21は、短間隔フラグ=0を含むメッセージの受信期間を、200ms+100ms±10ms=290ms〜310msと計算したとする。メッセージM23の次に受信するメッセージについて計算部21が計算した受信期間を、矢印P3で示す。計算部21は、得られた計算結果で受信予測33を更新する。
ケースC13は、ケースC12の後で、攻撃用フレームAT1が攻撃検知装置10に到達した場合を示す。250msにID=0x123で識別される攻撃用フレームAT1が攻撃検知装置10に到達したとする。判定部22は、攻撃用フレームAT1の受信時刻が受信予測33中の情報と合致しているかを判定する。受信予測33は矢印P3で示すように290ms〜310msであるので、攻撃用フレームAT1の受信時刻は受信予測33中の情報と合致していない。
そこで、判定部22は、攻撃用フレームAT1に含まれている短間隔フラグの値を特定する。攻撃用フレームAT1のデータフィールドの先頭ビットの値が0であるとする。この場合、短間隔フラグの値は0であるので、攻撃用フレームAT1は、メッセージM23の送信から送信周期Tである100msが経過してから送信されていることになるが、攻撃用フレームAT1の受信時間は受信予測33と合致しない。そこで、判定部22は、攻撃用フレームAT1を攻撃に使用されているフレームであると判定する。
図11は、攻撃検知装置の処理の例を説明するフローチャートである。なお、図11は一例であり、実装に応じて処理の順序が変更されうる。例えば、ステップS15とS16の順序は任意に変更され得る。
送受信部11は、メッセージを受信する(ステップS11)。判定部22は、メッセージの受信時刻を用いて、受信予測33として予期された期間中の受信であるかを判定する(ステップS12)。受信予測33として予期された期間中の受信ではない場合、判定部22は、メッセージの短間隔フラグの値が1に設定されているかを判定する(ステップS12でNo、ステップS13)。メッセージの短間隔フラグの値が1に設定されていない場合、判定部22は、メッセージが攻撃用のフレームであると判定して、メッセージを破棄する(ステップS13でNo、ステップS14)。
一方、メッセージの短間隔フラグの値が1に設定されている場合、計算部21は、メッセージの受信時刻を用いて、次の周期で受信するメッセージの受信時刻を予測する(ステップS13でYes、ステップS15)。この場合、判定部22は、メッセージを正常受信したと判定する(ステップS16)。なお、ステップS12において、受信予測33として予期された期間中の受信であると判定された場合も、ステップS15とS16の処理が行われる。
なお、図11は、攻撃検知装置10が行う処理の一例であり、実装に応じて処理は変更されうる。例えば、判定部22は、受信予測33として予期された期間中でのメッセージの受信を検出すると(ステップS12でYes)、受信メッセージ中の短間隔フラグの値が0に設定されているかを判定するように設定されても良い。
このように、第1の実施形態にかかる方法では、攻撃検知装置10は、受信したメッセージが送信装置から周期よりも短い間隔で送信されたメッセージであるかを、短間隔フラグを用いて特定することができる。攻撃検知装置10は、受信予測33として予測した期間中に受信したメッセージか、短間隔フラグによって送信周期よりも短い間隔で送信されたことが確認されたメッセージを用いて、次の周期のメッセージの受信時刻を予測する。このため、第1の実施形態にかかる方法では、周期メッセージの周期の基準となる時刻が非周期メッセージの送信時刻によって変動するシステムと、周期メッセージの周期の基準となる時刻が非周期メッセージによって変動しないシステムのいずれにも適用できる。従って、第1の実施形態により、周期的に送信されるメッセージと、周期ごとには送信されないメッセージの両方が送信されるシステムにおける攻撃検知の精度が向上する。
<第2の実施形態>
第2の実施形態では、フレームの送信タイミングが重なったことなどに起因して周期メッセージの送信タイミングなどが変動した場合でも、誤検出を防ぐために、マージンを広く取った場合の処理について説明する。
第2の実施形態では、フレームの送信タイミングが重なったことなどに起因して周期メッセージの送信タイミングなどが変動した場合でも、誤検出を防ぐために、マージンを広く取った場合の処理について説明する。
図12は、マージンが適切ではないときに発生する問題の例を説明する図である。ケースC21では、いずれのフレームもID=0x123を含むものとする。ケースC21では、100msの周期で周期メッセージが送信され、マージンは10m秒に設定されているとする。攻撃検知装置10は、1つ目の周期メッセージM31を0msに受信したとする。すると、攻撃検知装置10は、マージンを用いて、周期メッセージM31の受信から90ms〜110msの期間(Z1)に周期メッセージM32を受信すれば、周期メッセージM32が攻撃ではないと判定する。攻撃検知装置10は、2つ目の周期メッセージM32を101msに受信したとする。すると、周期メッセージM31と周期メッセージM32の受信時刻の差は、101msであり、マージンを用いて計算した範囲内であるので、攻撃検知装置10は、周期メッセージM32を攻撃では無いと判定する。攻撃検知装置10は、周期メッセージM32の受信時刻に基づいて、3つ目の周期メッセージを受信する期間を、191ms〜211msの期間(Z2)と予測する。
次に、他のメッセージとの送信との関係で、3つ目の周期メッセージM33が送信されるタイミングが遅れたとする。このため、攻撃検知装置10は、3つ目の周期メッセージM33を240msに受信したとする。この場合、周期メッセージM32と周期メッセージM33の受信時刻の差は139msであり、マージンを用いて計算したときに許容される範囲(Z2)に含まれていない。このため、攻撃検知装置10は、周期メッセージM33を攻撃だと誤検知してしまう。さらに、攻撃検知装置10は、周期メッセージM33の受信時刻を基準として、受信間隔を計算する。ケースC21に示すように、4つ目の周期メッセージを301msに受信すると、攻撃検知装置10は周期メッセージM33と周期メッセージM34の受信時刻の差は61msであり、マージンを用いて計算したときに許容される範囲に含まれないと判定する。このため、攻撃検知装置10は、周期メッセージM34も攻撃だと誤検知してしまう。
しかし、マージンを広く取ると、誤検出を防止することはできるが、攻撃を見逃してしまう場合もある。ケースC22では、ID=0x123を含むフレームとして、周期メッセージM41、周期メッセージM42、攻撃用フレームAT2、周期メッセージM43、周期メッセージM44が送信されているとする。攻撃検知装置10において、送信周期は100ms、マージンは40msに設定されており、各フレームは以下のタイミングで受信されているとする。
周期メッセージM41:0ms
周期メッセージM42:101ms
攻撃用フレームAT2:161ms
周期メッセージM43:240ms
周期メッセージM44:301ms
周期メッセージM41:0ms
周期メッセージM42:101ms
攻撃用フレームAT2:161ms
周期メッセージM43:240ms
周期メッセージM44:301ms
ケースC22では、攻撃検知装置10は、2つのフレームの受信時刻の間が送信周期±マージンの期間内であれば、攻撃が発生していないと判定する。送信周期±マージンは60ms〜140msである。攻撃検知装置10は、周期メッセージM41を受信すると、P11に示す期間を、周期メッセージM42の受信期間として予測する。周期メッセージM42の受信時刻は、周期メッセージM41の受信から101msであり、周期メッセージM41の受信時刻から60ms〜140msが経過した期間(P11)に含まれている。このため、攻撃検知装置10は、攻撃が発生していないと判定する。
次に、攻撃検知装置10は、周期メッセージM42の受信時刻から60ms〜140msが経過した期間(P12)を、周期メッセージM43の受信期間として予測する。攻撃検知装置10は、攻撃用フレームAT2を受信すると、周期メッセージM42から60msで攻撃用フレームAT2を受信していることから、P12の期間中にフレームを受信したと判定する。このため、攻撃検知装置10は、攻撃が発生していないと判定する。
攻撃検知装置10は、攻撃用フレームAT2の受信時刻から60ms〜140msが経過した期間(P13)を、周期メッセージM44の受信期間として予測する。攻撃検知装置10は、周期メッセージM43を受信すると、攻撃用フレームAT2の受信から79msで周期メッセージM43を受信していることから、P13の期間中にフレームを受信したと判定する。このため、攻撃検知装置10は、攻撃が発生していないと判定する。
同様に、攻撃検知装置10は、周期メッセージM43の受信時刻から60ms〜140msが経過した期間(P14)を、周期メッセージM45の受信期間として予測する。攻撃検知装置10は、周期メッセージM44を受信すると、周期メッセージM43の受信から61msで周期メッセージM44を受信していることから、P14の期間中にフレームを受信したと判定する。このため、攻撃検知装置10は、攻撃が発生していないと判定する。このように、ケースC22の検出方法では、マージンを広くとっているために、攻撃用フレームAT2による攻撃が起こっていることを見逃してしまう。
そこで、第2の実施形態では、マージンを広くとっても、攻撃に使用されているフレームの見落としを防ぎ、攻撃の誤検出も防止可能な攻撃検知方法について説明する。
図13は、攻撃検知装置70の構成の例を説明する図である。攻撃検知装置70は、送受信部11、制御部71、記憶部75を有する。制御部71は、計算部72、判定部73、基準更新処理部74を備える。記憶部75は、基準時刻76、受信予測77、送信条件31を保持し、オプションとして、受信状況情報32を保持する。
基準更新処理部74は、受信予測77の計算の基準となるメッセージを選択する。受信予測77の計算の基準となるメッセージとして、送信周期よりも短い間隔で送信されたメッセージが使用される。さらに、基準更新処理部74は、定期的に基準メッセージを更新することによって誤差の蓄積を解消するために、周期メッセージ中から基準メッセージを選択することもある。基準更新処理部74は、基準メッセージとして選択したメッセージの受信時刻を基準時刻76として記憶部75に格納する。
計算部72は、基準時刻76と送信条件31を用いて、IDごとに、複数の周期メッセージの受信予測を計算する。計算部72は、得られた計算結果を受信予測77に格納する。このため、受信予測77もIDごとに生成される。受信予測77の例は後述する。
図14は、第2の実施形態にかかる攻撃検知方法の例を説明する図である。ステップS21において、基準更新処理部74は、周期メッセージから選択されたメッセージか、短間隔フラグ=1のメッセージを、基準メッセージとして選択する。基準メッセージは、同じIDの他のメッセージを受信する期間の予測の基準とされるメッセージである。攻撃検知装置70は、基準メッセージと同じIDで識別される複数のメッセージについて、短間隔フラグ=0に設定されている場合の受信期間を計算し、基準メッセージからの順序に対応付ける(ステップS22)。ステップS22での計算には、基準メッセージに含まれているIDに対応付けられた送信周期と基準メッセージの受信時刻が使用される。
その後、送受信部11は、基準メッセージと同じIDを有するn番目のメッセージを受信する(ステップS23)。判定部73は、n番目のメッセージの短間隔フラグが1に設定されているかを判定する(ステップS24)。n番目のメッセージの短間隔フラグが1に設定されている場合、基準更新処理部74は、n番目のメッセージを新たな基準メッセージに設定して、ステップS22に戻る(ステップS24でYes、ステップS25)。n番目のメッセージの短間隔フラグが1に設定されていない場合、判定部73は、n番目のメッセージの受信時刻は、n番目の周期メッセージの受信期間として予測された期間中であるかを判定する(ステップS24でNo、ステップS26)。n番目のメッセージの受信時刻が、n番目の周期メッセージの受信期間として予測された期間中に含まれていない場合、判定部73は、攻撃を検出したと判定する(ステップS26でNo、ステップS27)。
一方、n番目のメッセージの受信時刻がn番目の周期メッセージの受信期間として予測された期間中である場合、判定部73は、攻撃を検出していないと判定し、処理を終了する(ステップS26でYes)。
図14には、図12と同様にメッセージM41〜M43と攻撃用フレームAT2が送信されたケースを示す。ここで、基準更新処理部74は、メッセージM41を基準メッセージに選択したとする。すると、計算部72は、メッセージM41の受信時刻(0ms)と送信周期(100ms)、マージンを用いて、複数のメッセージについて、各メッセージが短間隔フラグ=0の場合の受信期間を計算する。例えば、メッセージM41から1番目のメッセージは、短間隔フラグ=0の場合に矢印P21に示す期間での受信が予想される。同様に、メッセージM41から2番目の短間隔フラグ=0のメッセージは、矢印P22に示す期間での受信が予想され、メッセージM41から3番目の短間隔フラグ=0のメッセージは、矢印P23に示す期間での受信が予想される。
その後、送受信部11は、メッセージM42を受信したとする。判定部73は、メッセージM42を基準メッセージM41から1番目のメッセージとして扱う。判定部73は、メッセージM42が矢印P21の期間中に受信されているので、攻撃を検出しない。次に、送受信部11は攻撃用フレームAT2を受信したとする。判定部73は、攻撃用フレームAT2を基準メッセージM41から2番目のメッセージとして扱う。判定部73は、攻撃用フレームAT2が矢印P22の期間中に受信されているので、この時点では攻撃を検出しない。さらに、送受信部11はメッセージM43を受信したとする。判定部73は、メッセージM43を基準メッセージM41から3番目のメッセージとして扱う。判定部73は、メッセージM43が矢印P23の期間中に受信されていないので、攻撃を検出する。
このように、実施形態にかかる方法では、基準とするメッセージから複数周期分後のメッセージの受信期間を予測すると共に、予測した受信期間が基準メッセージから何番目のメッセージであるかを考慮して攻撃の有無を判定する。このため、メッセージの遅延に対応するためにマージンを広く取っていても、攻撃を検出できる。
以下、攻撃検知装置70が保持する情報の具体例を用いて、攻撃検知装置70の処理の例を詳しく説明する。
図15は、攻撃検知装置70が保持する情報の例を説明する図である。
攻撃検知装置70は、予め、送信条件31を記憶している。送信条件31は、攻撃検知装置10が保持する送信条件31と同様であり、受信対象の周期メッセージに含まれるID、送信周期、マージン、短間隔フラグの位置を含む。図15中の送信条件31には、ID=0x123の周期メッセージが100m秒周期で送信されることと、ID=0x123の周期メッセージについての受信期間の予測には、40m秒のマージンが使用されることが示されている。さらに、ID=0x123を有するメッセージでは、データフィールドの先頭ビットが短間隔フラグとして使用されることも送信条件31に含まれている。
攻撃検知装置70は、予め、送信条件31を記憶している。送信条件31は、攻撃検知装置10が保持する送信条件31と同様であり、受信対象の周期メッセージに含まれるID、送信周期、マージン、短間隔フラグの位置を含む。図15中の送信条件31には、ID=0x123の周期メッセージが100m秒周期で送信されることと、ID=0x123の周期メッセージについての受信期間の予測には、40m秒のマージンが使用されることが示されている。さらに、ID=0x123を有するメッセージでは、データフィールドの先頭ビットが短間隔フラグとして使用されることも送信条件31に含まれている。
基準時刻76は、基準メッセージとして選択されたメッセージの受信時刻を、基準メッセージに含まれているIDと対応付けて記録する。基準メッセージは、送信周期で送信されたメッセージのうちで受信期間の計算の基準点とするメッセージとして基準更新処理部74で選択されたメッセージと、送信周期よりも短い間隔で送信されたメッセージのうち、後に受信されたメッセージである。
計算部72は、基準時刻76が更新されると、送信条件31に記録されている送信周期とマージンを用いて、IDごとに、受信予測77を生成する。図15には、ID=0x123の周期メッセージについて生成された受信予測77の例を示す。基準メッセージが50msに受信されているので、基準メッセージを0番目のメッセージとすると、基準メッセージからn番目に受信する周期メッセージを受信可能な期間(受信期間)は、50ms+100ms×n±40msとなる。従って、基準メッセージの次に受信するID=0x123の周期メッセージの受信期間は、110ms〜190msとなる。同様に、基準メッセージから2番目の周期メッセージの受信期間は210ms〜290ms、基準メッセージから3番目の周期メッセージの受信期間は310ms〜390msとなる。計算部72は、各周期メッセージについて基準メッセージを0番目のメッセージとしたときの基準メッセージからの受信順序と、受信期間を対応付けて、受信予測77に記録する。
図16は、第2の実施形態にかかる攻撃検知方法の例を説明する図である。以下、攻撃検知装置70が図15に示す情報を保持している場合を例として説明する。なお、図16では、短間隔フラグ=0に設定されているフレームを黒い三角(▼)で表わし、短間隔フラグ=1に設定されているフレームを白い三角(▽)で表わす。さらに、基準更新処理部74は、短間隔フラグ=1のメッセージの受信時のほかに、基準メッセージを変更しない状態で短間隔フラグ=0のメッセージを10個受信すると、基準メッセージを変更するように設定されているとする。
ケースC31は、攻撃検知装置70が50msにメッセージM51を受信し、メッセージM51が基準メッセージに選択された場合の例である。制御部71は、メッセージM51を基準にしたときの短間隔フラグ=0のメッセージの受信期間を、図15を参照しながら説明した手順で計算し、受信予測77として格納したとする。ケースC31には、メッセージM51から1〜3番目のメッセージについての受信期間の計算値を示す。矢印P52はメッセージM51から1番目のメッセージの受信期間、矢印P53はメッセージM51から2番目のメッセージの受信期間、矢印P53はメッセージM51から3番目のメッセージの受信期間である。
その後、送受信部11が148msにメッセージM52を受信したとする。判定部73は、メッセージM52の短間隔フラグが0に設定されていることを特定すると、予測された期間中にメッセージM52を受信しているかを判定する。判定部73は、メッセージM52の受信時刻が148msであることと、メッセージM51から1番目の短間隔フラグ=0のメッセージの受信期間が110ms〜190msであることから、予測された期間中にメッセージM52を受信したと判定する。すると、判定部73は、攻撃を検出しない。メッセージM52はメッセージM51から1番目の短間隔フラグ=0のメッセージであるため、計算部72は、メッセージM52以降のメッセージの受信期間を更新しない。
ケースC32において、送受信部11は、200msにメッセージM53を受信する。判定部73は、メッセージM53の短間隔フラグが1に設定されていることを特定する。すると、基準更新処理部74は、メッセージM53を新たな基準メッセージとすると共に、メッセージM51を基準として計算した受信期間を破棄する。このため、ケースC32に点線の矢印で示すように、ケースC31の時点でメッセージM51を基準として計算された矢印P53やP54の受信期間は破棄される。基準更新処理部74は、メッセージM53の受信時刻を基準時刻76に設定する。計算部72は、基準時刻76が更新されたので、メッセージM53を基準として計算した受信期間で受信予測77を更新する。メッセージM53の受信時刻が200msであるので、送信条件31(図15)より、計算部72は、メッセージM53から1番目に受信する短間隔フラグ=0のメッセージの受信期間を、200ms+1×100ms±40ms=260ms〜340msとする。計算部72は、同様の処理により、後続のメッセージについても受信期間を計算する。メッセージM53を新たな基準メッセージとして計算した受信期間の例を、矢印P53aに示す。
ケースC33において、送受信部11は、250msに攻撃用フレームAT3を受信したとする。判定部73は、攻撃用フレームAT3の短間隔フラグが0に設定されていることを特定すると、予測された期間中に攻撃用フレームAT3を受信しているかを判定する。判定部73は、攻撃用フレームAT3を基準メッセージM53から1番目のメッセージとして扱う。判定部73は、攻撃用フレームAT3の受信時刻が250msであることと、メッセージM53から1番目の短間隔フラグ=0のメッセージの受信期間が260ms〜340msであることから、予測された期間中に攻撃用フレームAT3を受信していないと判定する。すると、判定部73は、攻撃を検出したと判定する。
図17は、攻撃検知装置70の処理の例を説明するフローチャートである。図17では、基準メッセージを変更せずに処理しているメッセージの数の計数を行うために、変数kを用いる。
計算部72は、送信周期T、マージンM、予測回数nを取得する(ステップS31)。このとき、計算部72は、送信周期TとマージンMを送信条件31から読み出す。予測回数nは、基準メッセージを変更しない状況で、判定処理を行う短間隔フラグ=0のメッセージの最大数である。その後、送受信部11は、メッセージを受信する。基準更新処理部74は、攻撃検知装置70が起動された後にメッセージを受信すると、最初に受信したメッセージを基準メッセージとし、メッセージの受信時刻をt0に設定する(ステップS32)。
ステップS33において、計算部72は、受信時刻t0とステップS31で取得した情報を用いて、n個分のメッセージが全て送信周期どおりに送信された場合の受信期間を計算する。このとき、x番目のメッセージの受信期間は、r(x)=t0+xT±Mとして計算される。さらに、基準更新処理部74は、変数kを1に設定する。
送受信部11は、さらにメッセージを受信する。判定部73は、メッセージの受信時刻をt(k)とする(ステップS34)。判定部73は、受信メッセージの短間隔フラグが1に設定されているかを判定する(ステップS35)。受信メッセージの短間隔フラグが1に設定されていない場合、受信メッセージは送信周期に沿って送信されているので、判定部73は、t(k)がr(k)の範囲内に含まれるかを判定する(ステップS35でNo、ステップS36)。t(k)がr(k)の範囲内に含まれていない場合、判定部73は、攻撃を検知する(ステップS36でNo、ステップS40)。
一方、t(k)がr(k)の範囲内に含まれている場合、基準更新処理部74は、変数kが予測回数nと等しいかを判定する(ステップS36でYes、ステップS37)。変数kが予測回数nより小さい間は、変数kは予測回数nと等しくない(ステップS37でNo)。この場合、基準更新処理部74は、変数kを1つインクリメントし、ステップS34に戻る(ステップS38)。ステップS34以降の処理が繰り返されることにより、変数kが予測回数nと等しくなると、基準更新処理部74は、基準メッセージを受信メッセージで更新し、受信時刻t(k)を基準メッセージの受信時刻t(0)に設定する(ステップS37でYes、ステップS39)。このとき、基準更新処理部74は、基準時刻76を更新する。すると、ステップS33の処理が行われる。すなわち、計算部72は、更新後の基準時刻76を用いて、新たな基準メッセージからn個先のメッセージまでが送信周期で送信された場合の受信期間を計算する。また、基準更新処理部74は、変数kを1に更新する。
受信メッセージの短間隔フラグが1に設定されている場合、基準更新処理部74は、基準メッセージを受信メッセージで更新し、受信時刻t(k)を基準メッセージの受信時刻t(0)に設定する(ステップS35でYes、ステップS39)。その後、ステップS33以降の処理が行われる。
図18は、第2の実施形態の変形例での、攻撃検知装置70の処理の例を説明するフローチャートである。図18では、メッセージの受信時刻が受信期間に含まれているかの判定を、短間隔フラグの値の判定の前に行っている。
ステップS41〜S44の処理は、図17を参照しながら説明したステップS31〜S34と同様である。ステップS45において、判定部73は、t(k)がr(k)の範囲内に含まれるかを判定する。t(k)がr(k)の範囲内に含まれていない場合、判定部73は、受信メッセージの短間隔フラグが1に設定されているかを判定する(ステップS45でNo、ステップS49)。受信メッセージの短間隔フラグが1に設定されていない場合、判定部73は、攻撃を検知する(ステップS49でNo、ステップS51)。
一方、受信メッセージの短間隔フラグが1に設定されている場合、判定部73は、基準メッセージを受信メッセージで更新し、受信時刻t(k)を基準メッセージの受信時刻t(0)に設定する(ステップS49でYes、ステップS50)。このとき、基準更新処理部74は、基準時刻76を更新する。すると、ステップS43以降の処理が行われる。
ステップS45において、t(k)がr(k)の範囲内に含まれていると判定した場合も、判定部73は、受信メッセージの短間隔フラグが1に設定されているかを判定する(ステップS45でYes、ステップS46)。受信メッセージの短間隔フラグが1に設定されている場合、判定部73は、基準メッセージを受信メッセージで更新し、受信時刻t(k)を基準メッセージの受信時刻t(0)に設定する(ステップS46でYes、ステップS50)。
t(k)がr(k)の範囲内に含まれていると判定され、さらに、受信メッセージの短間隔フラグが1に設定されていないと判定されると、基準更新処理部74は、変数kが予測回数nと等しいかを判定する(ステップS46でNo、ステップS47)。変数kが予測回数nより小さい間は、変数kは予測回数nと等しくない(ステップS47でNo)。この場合、基準更新処理部74は、変数kを1つインクリメントし、ステップS44に戻る(ステップS48)。ステップS44以降の処理が繰り返されることにより、変数kが予測回数nと等しくなると、基準更新処理部74は、基準メッセージを受信メッセージで更新し、受信時刻t(k)を基準メッセージの受信時刻t(0)に設定する(ステップS47でYes、ステップS50)。ステップS50の処理の後で、ステップS43以降の処理が行われる。
このように、第2の実施形態にかかる方法でも、第1の実施形態と同様に、攻撃検知装置70は、送信装置から周期よりも短い間隔で送信されたメッセージであるかを、短間隔フラグを用いて特定することができる。さらに、攻撃検知装置70は、予測した受信期間中に受信したメッセージから選択されたメッセージか、送信周期よりも短い間隔で送信されたことが確認されたメッセージを用いて、次の周期のメッセージの受信時刻を予測する。このため、第2の実施形態にかかる方法も、周期メッセージの周期の基準となる時刻が非周期メッセージの送信時刻によって変動するシステムと、周期メッセージの周期の基準となる時刻が非周期メッセージによって変動しないシステムのいずれにも適用できる。
さらに、第2の実施形態では、マージンを広く取ることで誤検出を防止する。このときに、攻撃検知装置70は、基準とするメッセージから複数周期分後のメッセージの受信期間を予測すると共に、予測した受信期間が基準メッセージから何番目のメッセージであるかを考慮して攻撃の有無を判定することで、攻撃の見逃しを防止できる。従って、第2の実施形態により、周期的に送信されるデータフレームと、周期ごとには送信されないデータフレームの両方が送信されるシステムにおける攻撃検知の精度が向上する。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
以上の説明では、データの先頭ビットの値が使用される場合を例として説明したが、短間隔フラグとして使用される情報の位置は、データフィールドの任意の位置である。また、短間隔フラグとして複数のビットが使用されても良い。この場合、送信周期よりも短い間隔でフレームを送信する際に、送信装置40は、短間隔フラグとして使用する領域の値をインクリメントしてもよい。同様に、送信装置40は、送信周期よりも短い間隔でフレームを送信する際に、短間隔フラグとして使用する領域の値をデクリメントしてもよい。また、送信周期よりも短い間隔でフレームを送信する際に、送信装置40は、短間隔フラグとして使用する領域の値を変化させても良い。この場合、送信装置40は、送信周期と同じ間隔でフレームを送信する際に、短間隔フラグとして使用する領域の値が変化しないように設定する。攻撃検知装置10中の判定部22や判定部73は、前に受信したメッセージ中の短間隔フラグの値を記憶しており、新たに受信したメッセージ中の短間隔フラグの値と比較することで、新たに受信したメッセージが送信周期に沿って送信されたかを判定する。
さらに、判定部73は、予め対応付けられている他のIDにおいて、周期が変動したことを短間隔フラグとして用いても良い。例えば、常にID=0x110の一定時間後にID=0x123のメッセージを受信する性質がある場合、ID=0x110の受信後に一定時間後±マージンの範囲外で0x123のメッセージを受信した場合に、短間隔であると判断しても良い。例えば、ID=0x110でのメッセージの送信周期を判定部73がモニタしているとする。この場合、判定部73は、ID=0x110でのメッセージの送信周期の変動が発生した直後に受信したID=0x123でのメッセージは、送信周期よりも短い周期で送信されていると判定しても良い。また、ID=0x110でのメッセージのデータ中の特定の領域が短間隔フラグとして用いられ、ID=0x110で短間隔フラグ=1と設定された場合に、判定部73は、ID=0x123でのメッセージは、送信周期よりも短い周期で送信されていると判定しても良い。
また、判定部73は、CANネットワークが搭載されている車両などの状態や、CANネットワークと外部の装置との間の接続状態を、短間隔フラグの代用として用いても良い。
これらの条件を複数同時に用いても良い。このとき、複数の性質のAND条件でも良いし、OR条件でもよい。
以上の説明では、攻撃検知装置(10、70)と送信装置40が異なる装置である場合を例として説明したが、1つの装置があるIDに対しては攻撃検知装置10、70として動作し、他のIDに対しては送信装置40として動作しても良い。この場合、攻撃検知とメッセージの送信の両方を行う装置は、攻撃検知装置10と送信装置40の両方として動作するので、送受信部11、制御部20、記憶部30、制御部50、記憶部60を備える。また、攻撃検知装置70としての処理と送信装置40の両方として動作する装置は、送受信部11、制御部71、記憶部75、制御部50、記憶部60を備える。また、本発明で開示した手法はCAN−FD(CAN with Flexible Data Rate)と呼ばれる拡張仕様にも適用可能である。
上述の第1および第2の実施形態を含む実施形態に関し、以下の付記を開示する。
(付記1)
ネットワーク中の通信装置からメッセージを受信する送受信部と、
周期的に送信される周期メッセージの第1のメッセージの受信時刻を用いて、前記第1のメッセージ以降に受信する周期メッセージの受信期間を計算する計算部
を備え、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第2のメッセージを、前記送受信部が前記第1のメッセージの受信後の前記受信期間外に受信すると、前記計算部は、前記第2のメッセージの受信時刻と前記送信周期を用いて前記第2のメッセージ以降に受信する周期メッセージの受信期間を更新する
ことを特徴とする攻撃検知装置。
(付記2)
前記ネットワークに対する攻撃が発生したかを判定する判定部
をさらに備え、
前記通信装置から送信されるメッセージ中のデータは、当該メッセージが前記送信周期より短い送信間隔で送信されたかを表わすフラグを含み、
前記判定部は、前記送信周期と同じ送信間隔で送信されたことを表すフラグを有するメッセージの受信時刻が前記受信期間に含まれない場合、前記ネットワークに対する攻撃が発生したと判定する
ことを特徴とする付記1に記載の攻撃検知装置。
(付記3)
前記受信期間を記憶する記憶部
をさらに備え、
前記計算部は、前記第2のメッセージを基準として、前記第2のメッセージの後に送信される複数の周期メッセージの受信期間を計算し、
前記記憶部は、前記第2のメッセージの後に送信される前記複数の周期メッセージのそれぞれに対応する前記受信期間を記憶し、
前記判定部は、前記第2のメッセージの後に送信される前記周期メッセージの受信時刻が、対応付けられた受信期間に含まれない場合、前記ネットワークに対する攻撃を検出したと判定する
ことを特徴とする付記2に記載の攻撃検知装置。
(付記4)
ネットワーク中の通信装置からメッセージを受信し、
周期的に送信される周期メッセージの第1のメッセージの受信時刻を用いて、前記第1のメッセージ以降に受信する周期メッセージの受信期間を計算し、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第2のメッセージを、前記第1のメッセージの受信後の前記受信期間外に受信すると、前記第2のメッセージの受信時刻と前記送信周期を用いて、前記第2のメッセージ以降に受信する周期メッセージの受信期間を更新する
処理を攻撃検知装置が行うことを特徴とする攻撃検知方法。
(付記5)
前記通信装置から送信されるメッセージ中のデータは、当該メッセージが前記送信周期より短い送信間隔で送信されたかを表わすフラグを含み、
前記攻撃検知装置は、前記送信周期と同じ送信間隔で送信されたことを表すフラグを有するメッセージの受信時刻が前記受信期間に含まれない場合、前記ネットワークに対する攻撃が発生したと判定する
ことを特徴とする付記4に記載の攻撃検知方法。
(付記6)
前記攻撃検知装置は、
前記第2のメッセージを基準として、前記第2のメッセージの後に送信される複数の周期メッセージの受信期間を計算し、
前記第2のメッセージの後に送信される前記複数の周期メッセージのそれぞれに対応する前記受信期間を記憶し、
前記第2のメッセージの後に送信される前記周期メッセージの受信時刻が、対応付けられた受信期間に含まれない場合、前記ネットワークに対する攻撃を検出したと判定する
ことを特徴とする付記4または5に記載の攻撃検知方法。
(付記7)
ネットワーク中の通信装置からメッセージを受信し、
周期的に送信される周期メッセージの第1のメッセージの受信時刻を用いて、前記第1のメッセージ以降に受信する周期メッセージの受信期間を計算し、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第2のメッセージを、前記第1のメッセージの受信後の前記受信期間外に受信すると、前記第2のメッセージの受信時刻と前記送信周期を用いて前記第2のメッセージ以降に受信する周期メッセージの受信期間を更新する
処理を攻撃検知装置に行わせることを特徴とする攻撃検知プログラム。
(付記8)
前記通信装置から送信されるメッセージ中のデータは、当該メッセージが前記送信周期より短い送信間隔で送信されたかを表わすフラグを含み、
前記攻撃検知装置に、前記送信周期と同じ送信間隔で送信されたことを表すフラグを有するメッセージの受信時刻が前記受信期間に含まれない場合、前記ネットワークに対する攻撃が発生したと判定する
処理を行わせることを特徴とする付記7に記載の攻撃検知プログラム。
(付記9)
前記攻撃検知装置に、
前記第2のメッセージを基準として、前記第2のメッセージの後に送信される複数の周期メッセージの受信期間を計算し、
前記第2のメッセージの後に送信される前記複数の周期メッセージのそれぞれに対応する受信期間を記憶し、
前記第2のメッセージの後に送信される前記周期メッセージの受信時刻が、対応付けられた受信期間に含まれない場合、前記ネットワークに対する攻撃を検出したと判定する
処理を行わせることを特徴とする付記7または8に記載の攻撃検知プログラム。
(付記1)
ネットワーク中の通信装置からメッセージを受信する送受信部と、
周期的に送信される周期メッセージの第1のメッセージの受信時刻を用いて、前記第1のメッセージ以降に受信する周期メッセージの受信期間を計算する計算部
を備え、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第2のメッセージを、前記送受信部が前記第1のメッセージの受信後の前記受信期間外に受信すると、前記計算部は、前記第2のメッセージの受信時刻と前記送信周期を用いて前記第2のメッセージ以降に受信する周期メッセージの受信期間を更新する
ことを特徴とする攻撃検知装置。
(付記2)
前記ネットワークに対する攻撃が発生したかを判定する判定部
をさらに備え、
前記通信装置から送信されるメッセージ中のデータは、当該メッセージが前記送信周期より短い送信間隔で送信されたかを表わすフラグを含み、
前記判定部は、前記送信周期と同じ送信間隔で送信されたことを表すフラグを有するメッセージの受信時刻が前記受信期間に含まれない場合、前記ネットワークに対する攻撃が発生したと判定する
ことを特徴とする付記1に記載の攻撃検知装置。
(付記3)
前記受信期間を記憶する記憶部
をさらに備え、
前記計算部は、前記第2のメッセージを基準として、前記第2のメッセージの後に送信される複数の周期メッセージの受信期間を計算し、
前記記憶部は、前記第2のメッセージの後に送信される前記複数の周期メッセージのそれぞれに対応する前記受信期間を記憶し、
前記判定部は、前記第2のメッセージの後に送信される前記周期メッセージの受信時刻が、対応付けられた受信期間に含まれない場合、前記ネットワークに対する攻撃を検出したと判定する
ことを特徴とする付記2に記載の攻撃検知装置。
(付記4)
ネットワーク中の通信装置からメッセージを受信し、
周期的に送信される周期メッセージの第1のメッセージの受信時刻を用いて、前記第1のメッセージ以降に受信する周期メッセージの受信期間を計算し、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第2のメッセージを、前記第1のメッセージの受信後の前記受信期間外に受信すると、前記第2のメッセージの受信時刻と前記送信周期を用いて、前記第2のメッセージ以降に受信する周期メッセージの受信期間を更新する
処理を攻撃検知装置が行うことを特徴とする攻撃検知方法。
(付記5)
前記通信装置から送信されるメッセージ中のデータは、当該メッセージが前記送信周期より短い送信間隔で送信されたかを表わすフラグを含み、
前記攻撃検知装置は、前記送信周期と同じ送信間隔で送信されたことを表すフラグを有するメッセージの受信時刻が前記受信期間に含まれない場合、前記ネットワークに対する攻撃が発生したと判定する
ことを特徴とする付記4に記載の攻撃検知方法。
(付記6)
前記攻撃検知装置は、
前記第2のメッセージを基準として、前記第2のメッセージの後に送信される複数の周期メッセージの受信期間を計算し、
前記第2のメッセージの後に送信される前記複数の周期メッセージのそれぞれに対応する前記受信期間を記憶し、
前記第2のメッセージの後に送信される前記周期メッセージの受信時刻が、対応付けられた受信期間に含まれない場合、前記ネットワークに対する攻撃を検出したと判定する
ことを特徴とする付記4または5に記載の攻撃検知方法。
(付記7)
ネットワーク中の通信装置からメッセージを受信し、
周期的に送信される周期メッセージの第1のメッセージの受信時刻を用いて、前記第1のメッセージ以降に受信する周期メッセージの受信期間を計算し、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第2のメッセージを、前記第1のメッセージの受信後の前記受信期間外に受信すると、前記第2のメッセージの受信時刻と前記送信周期を用いて前記第2のメッセージ以降に受信する周期メッセージの受信期間を更新する
処理を攻撃検知装置に行わせることを特徴とする攻撃検知プログラム。
(付記8)
前記通信装置から送信されるメッセージ中のデータは、当該メッセージが前記送信周期より短い送信間隔で送信されたかを表わすフラグを含み、
前記攻撃検知装置に、前記送信周期と同じ送信間隔で送信されたことを表すフラグを有するメッセージの受信時刻が前記受信期間に含まれない場合、前記ネットワークに対する攻撃が発生したと判定する
処理を行わせることを特徴とする付記7に記載の攻撃検知プログラム。
(付記9)
前記攻撃検知装置に、
前記第2のメッセージを基準として、前記第2のメッセージの後に送信される複数の周期メッセージの受信期間を計算し、
前記第2のメッセージの後に送信される前記複数の周期メッセージのそれぞれに対応する受信期間を記憶し、
前記第2のメッセージの後に送信される前記周期メッセージの受信時刻が、対応付けられた受信期間に含まれない場合、前記ネットワークに対する攻撃を検出したと判定する
処理を行わせることを特徴とする付記7または8に記載の攻撃検知プログラム。
10、70 攻撃検知装置
11 送受信部
20、50、71 制御部
21、72 計算部
22、73 判定部
30、60、75 記憶部
31、61 送信条件
32 受信状況情報
33、77 受信予測
40 送信装置
51 データ生成部
52 フラグ設定部
53 フレーム生成部
62 フラグ設定条件
74 基準更新処理部
76 基準時刻
100 ECU
101 CANトランシーバ
102 CANコントローラ
103 処理回路
104 プロセッサ
105 メモリ
11 送受信部
20、50、71 制御部
21、72 計算部
22、73 判定部
30、60、75 記憶部
31、61 送信条件
32 受信状況情報
33、77 受信予測
40 送信装置
51 データ生成部
52 フラグ設定部
53 フレーム生成部
62 フラグ設定条件
74 基準更新処理部
76 基準時刻
100 ECU
101 CANトランシーバ
102 CANコントローラ
103 処理回路
104 プロセッサ
105 メモリ
Claims (5)
- ネットワーク中の通信装置からメッセージを受信する送受信部と、
周期的に送信される周期メッセージの第1のメッセージの受信時刻を用いて、前記第1のメッセージ以降に受信する周期メッセージの受信期間を計算する計算部
を備え、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第2のメッセージを、前記送受信部が前記第1のメッセージの受信後の前記受信期間外に受信すると、前記計算部は、前記第2のメッセージの受信時刻と前記送信周期を用いて前記第2のメッセージ以降に受信する周期メッセージの受信期間を更新する
ことを特徴とする攻撃検知装置。 - 前記ネットワークに対する攻撃が発生したかを判定する判定部
をさらに備え、
前記通信装置から送信されるメッセージ中のデータは、当該メッセージが前記送信周期より短い送信間隔で送信されたかを表わすフラグを含み、
前記判定部は、前記送信周期と同じ送信間隔で送信されたことを表すフラグを有するメッセージの受信時刻が前記受信期間に含まれない場合、前記ネットワークに対する攻撃が発生したと判定する
ことを特徴とする請求項1に記載の攻撃検知装置。 - 前記受信期間を記憶する記憶部
をさらに備え、
前記計算部は、前記第2のメッセージを基準として、前記第2のメッセージの後に送信される複数の周期メッセージの受信期間を計算し、
前記記憶部は、前記第2のメッセージの後に送信される前記複数の周期メッセージのそれぞれに対応する前記受信期間を記憶し、
前記判定部は、前記第2のメッセージの後に送信される前記周期メッセージの受信時刻が、対応付けられた受信期間に含まれない場合、前記ネットワークに対する攻撃を検出したと判定する
ことを特徴とする請求項2に記載の攻撃検知装置。 - ネットワーク中の通信装置からメッセージを受信し、
周期的に送信される周期メッセージの第1のメッセージの受信時刻を用いて、前記第1のメッセージ以降に受信する周期メッセージの受信期間を計算し、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第2のメッセージを、前記第1のメッセージの受信後の前記受信期間外に受信すると、前記第2のメッセージの受信時刻と前記送信周期を用いて、前記第2のメッセージ以降に受信する周期メッセージの受信期間を更新する
処理を攻撃検知装置が行うことを特徴とする攻撃検知方法。 - ネットワーク中の通信装置からメッセージを受信し、
周期的に送信される周期メッセージの第1のメッセージの受信時刻を用いて、前記第1のメッセージ以降に受信する周期メッセージの受信期間を計算し、
前記送信周期より短い送信間隔で送信されたことを表わす情報に対応付けられた第2のメッセージを、前記第1のメッセージの受信後の前記受信期間外に受信すると、前記第2のメッセージの受信時刻と前記送信周期を用いて前記第2のメッセージ以降に受信する周期メッセージの受信期間を更新する
処理を攻撃検知装置に行わせることを特徴とする攻撃検知プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016230868A JP6798280B2 (ja) | 2016-11-29 | 2016-11-29 | 攻撃検知装置、攻撃検知方法、および、攻撃検知プログラム |
US15/813,864 US10567401B2 (en) | 2016-11-29 | 2017-11-15 | Device and method for detecting attack in network |
DE102017220859.7A DE102017220859A1 (de) | 2016-11-29 | 2017-11-22 | Vorrichtung und Verfahren zum Detektieren eines Angriffs in einem Netzwerk |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016230868A JP6798280B2 (ja) | 2016-11-29 | 2016-11-29 | 攻撃検知装置、攻撃検知方法、および、攻撃検知プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018088616A JP2018088616A (ja) | 2018-06-07 |
JP6798280B2 true JP6798280B2 (ja) | 2020-12-09 |
Family
ID=62118072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016230868A Active JP6798280B2 (ja) | 2016-11-29 | 2016-11-29 | 攻撃検知装置、攻撃検知方法、および、攻撃検知プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US10567401B2 (ja) |
JP (1) | JP6798280B2 (ja) |
DE (1) | DE102017220859A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11711384B2 (en) * | 2018-08-27 | 2023-07-25 | Lear Corporation | Method and system for detecting message injection anomalies |
CN110912860B (zh) * | 2018-09-18 | 2022-02-18 | 北京数安鑫云信息技术有限公司 | 一种检测伪周期性访问行为的方法及装置 |
CN112889246B (zh) * | 2019-02-08 | 2023-09-22 | 松下电器(美国)知识产权公司 | 异常判定方法、异常判定装置以及程序 |
JP7138083B2 (ja) * | 2019-06-21 | 2022-09-15 | 国立大学法人東海国立大学機構 | 車載通信システム、車載通信装置及び送信周期算出方法 |
JP7175858B2 (ja) | 2019-08-07 | 2022-11-21 | 株式会社日立製作所 | 情報処理装置および正規通信判定方法 |
DE102020214945A1 (de) * | 2020-11-27 | 2022-06-02 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum Überprüfen einer Nachricht in einem Kommunikationssystem |
WO2022185370A1 (ja) * | 2021-03-01 | 2022-09-09 | 株式会社オートネットワーク技術研究所 | 車載装置、プログラム及び情報処理方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19950433A1 (de) * | 1999-10-19 | 2001-04-26 | Philips Corp Intellectual Pty | Netzwerk mit mehreren Netzknoten zur Medienzugangsprüfung |
US7475426B2 (en) * | 2001-11-30 | 2009-01-06 | Lancope, Inc. | Flow-based detection of network intrusions |
US20050041586A1 (en) * | 2003-08-24 | 2005-02-24 | Sam Shiaw-Shiang Jiang | Method of controlling a receiver and a transmitter in a wireless communication system to handle a transmission window size change procedure |
US20060050679A1 (en) * | 2004-09-09 | 2006-03-09 | Sam Shiaw-Shiang Jiang | Method for On-Line Recovery of Parameter Synchronization for Ciphering Applications |
CN102204174A (zh) * | 2008-11-04 | 2011-09-28 | 株式会社自动网络技术研究所 | 通信装置、中继装置、通信***及通信方法 |
JP4941500B2 (ja) * | 2009-04-17 | 2012-05-30 | 株式会社デンソー | ノード装置および車両ネットワークシステム |
JP5712783B2 (ja) * | 2011-05-13 | 2015-05-07 | トヨタ自動車株式会社 | 電子制御ユニット、車載ネットワーク、データ送信方法 |
US8542069B2 (en) * | 2011-09-23 | 2013-09-24 | Infineon Technologies Ag | Method for trimming an adjustable oscillator to match a CAN-bus and a CAN-bus communication controller |
CN103999410B (zh) * | 2011-12-22 | 2017-04-12 | 丰田自动车株式会社 | 通信***及通信方法 |
JP6085962B2 (ja) * | 2012-12-13 | 2017-03-01 | 東芝ライテック株式会社 | 管理装置及びアドレス管理方法 |
US9241016B2 (en) * | 2013-03-05 | 2016-01-19 | Cisco Technology, Inc. | System and associated methodology for detecting same-room presence using ultrasound as an out-of-band channel |
US9203476B2 (en) * | 2013-03-15 | 2015-12-01 | Google Inc. | System and method for code communication |
US20150312278A1 (en) * | 2014-04-29 | 2015-10-29 | Qualcomm Incorporated | Remote station protection |
CN111181732A (zh) * | 2014-05-08 | 2020-05-19 | 松下电器(美国)知识产权公司 | 车载网络***、电子控制单元及不正常检测方法 |
US9794335B2 (en) * | 2014-06-02 | 2017-10-17 | The Boeing Company | Computer system synchronization |
WO2016080422A1 (ja) * | 2014-11-20 | 2016-05-26 | 国立大学法人名古屋大学 | 通信制御装置及び通信システム |
JP6601085B2 (ja) * | 2015-09-15 | 2019-11-06 | 株式会社リコー | データ管理システム、データ管理方法 |
US9705697B1 (en) * | 2016-03-14 | 2017-07-11 | Cypress Semiconductor Corporation | Transceiver for communication and method for controlling communication |
-
2016
- 2016-11-29 JP JP2016230868A patent/JP6798280B2/ja active Active
-
2017
- 2017-11-15 US US15/813,864 patent/US10567401B2/en active Active
- 2017-11-22 DE DE102017220859.7A patent/DE102017220859A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20180152464A1 (en) | 2018-05-31 |
US10567401B2 (en) | 2020-02-18 |
JP2018088616A (ja) | 2018-06-07 |
DE102017220859A1 (de) | 2018-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6798280B2 (ja) | 攻撃検知装置、攻撃検知方法、および、攻撃検知プログラム | |
JP6891671B2 (ja) | 攻撃検知装置および攻撃検知方法 | |
JP7172043B2 (ja) | 攻撃検知装置および攻撃検知方法 | |
CN104283956B (zh) | 强一致性分布式数据存储方法、装置及*** | |
RU2596582C2 (ru) | Способ и устройство для адаптируемой к размерам памяти последовательной передачи данных | |
JP6488702B2 (ja) | 通信制御装置、通信制御方法、および、通信制御プログラム | |
US20230048058A1 (en) | Anomaly determination method, anomaly determination device, and recording medium | |
CN105940751A (zh) | 无线通信***、无线通信装置、无线通信方法和程序 | |
US20160173397A1 (en) | Communication control device, method of communicating a frame, and storage medium | |
US10567400B2 (en) | Attack detection device, attack detection method, and non-transitory computer-readable recording medium | |
KR101689077B1 (ko) | 시간 동기화 방법 및 그 장치 | |
JP2016100842A (ja) | 通信制御装置、通信制御方法、および、通信制御プログラム | |
JP7006295B2 (ja) | 攻撃検知装置および攻撃検知方法 | |
CN117061143A (zh) | 使用动态生成的波特率保护网络访问 | |
JP7223590B2 (ja) | 攻撃検知装置および攻撃検知方法 | |
CN112866767B (zh) | 一种投屏控制方法、装置、电子设备及存储介质 | |
JP7110950B2 (ja) | ネットワークシステム | |
JP2018056980A (ja) | 攻撃検知装置、攻撃検知方法、および、攻撃検知プログラム | |
CN100593293C (zh) | 同步发射设备和接收设备中的存储区的方法以及接收设备 | |
JP2018061118A (ja) | 通信装置及び通信システム | |
JP7453061B2 (ja) | 通信制御システム及び通信制御方法 | |
CN116483678B (zh) | 一种信息处理方法和相关装置 | |
US11595144B2 (en) | Electronic control apparatus | |
CN116366499B (zh) | 数据传输方法、装置、电子设备和介质 | |
CN108093002B (zh) | 基于数据状态确定的待同步信息的同步方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190807 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20201020 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201102 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6798280 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |